simplicity/jet/init/
bitcoin.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 crate::jet::bitcoin::BitcoinEnv;
14
15/// The Bitcoin jet family.
16#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Debug, Hash)]
17pub enum Bitcoin {
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    Bip0340Verify,
32    Ch1,
33    Ch16,
34    Ch32,
35    Ch64,
36    Ch8,
37    CheckLockDistance,
38    CheckLockDuration,
39    CheckLockHeight,
40    CheckLockTime,
41    CheckSigVerify,
42    Complement1,
43    Complement16,
44    Complement32,
45    Complement64,
46    Complement8,
47    CurrentAnnexHash,
48    CurrentIndex,
49    CurrentPrevOutpoint,
50    CurrentScriptSigHash,
51    CurrentSequence,
52    CurrentValue,
53    Decompress,
54    Decrement16,
55    Decrement32,
56    Decrement64,
57    Decrement8,
58    DivMod128_64,
59    DivMod16,
60    DivMod32,
61    DivMod64,
62    DivMod8,
63    Divide16,
64    Divide32,
65    Divide64,
66    Divide8,
67    Divides16,
68    Divides32,
69    Divides64,
70    Divides8,
71    Eq1,
72    Eq16,
73    Eq256,
74    Eq32,
75    Eq64,
76    Eq8,
77    FeAdd,
78    FeInvert,
79    FeIsOdd,
80    FeIsZero,
81    FeMultiply,
82    FeMultiplyBeta,
83    FeNegate,
84    FeNormalize,
85    FeSquare,
86    FeSquareRoot,
87    FullAdd16,
88    FullAdd32,
89    FullAdd64,
90    FullAdd8,
91    FullDecrement16,
92    FullDecrement32,
93    FullDecrement64,
94    FullDecrement8,
95    FullIncrement16,
96    FullIncrement32,
97    FullIncrement64,
98    FullIncrement8,
99    FullLeftShift16_1,
100    FullLeftShift16_2,
101    FullLeftShift16_4,
102    FullLeftShift16_8,
103    FullLeftShift32_1,
104    FullLeftShift32_16,
105    FullLeftShift32_2,
106    FullLeftShift32_4,
107    FullLeftShift32_8,
108    FullLeftShift64_1,
109    FullLeftShift64_16,
110    FullLeftShift64_2,
111    FullLeftShift64_32,
112    FullLeftShift64_4,
113    FullLeftShift64_8,
114    FullLeftShift8_1,
115    FullLeftShift8_2,
116    FullLeftShift8_4,
117    FullMultiply16,
118    FullMultiply32,
119    FullMultiply64,
120    FullMultiply8,
121    FullRightShift16_1,
122    FullRightShift16_2,
123    FullRightShift16_4,
124    FullRightShift16_8,
125    FullRightShift32_1,
126    FullRightShift32_16,
127    FullRightShift32_2,
128    FullRightShift32_4,
129    FullRightShift32_8,
130    FullRightShift64_1,
131    FullRightShift64_16,
132    FullRightShift64_2,
133    FullRightShift64_32,
134    FullRightShift64_4,
135    FullRightShift64_8,
136    FullRightShift8_1,
137    FullRightShift8_2,
138    FullRightShift8_4,
139    FullSubtract16,
140    FullSubtract32,
141    FullSubtract64,
142    FullSubtract8,
143    GeIsOnCurve,
144    GeNegate,
145    GejAdd,
146    GejDouble,
147    GejEquiv,
148    GejGeAdd,
149    GejGeAddEx,
150    GejGeEquiv,
151    GejInfinity,
152    GejIsInfinity,
153    GejIsOnCurve,
154    GejNegate,
155    GejNormalize,
156    GejRescale,
157    GejXEquiv,
158    GejYIsOdd,
159    Generate,
160    HashToCurve,
161    High1,
162    High16,
163    High32,
164    High64,
165    High8,
166    Increment16,
167    Increment32,
168    Increment64,
169    Increment8,
170    InputAnnexHash,
171    InputPrevOutpoint,
172    InputScriptSigHash,
173    InputSequence,
174    InputValue,
175    InternalKey,
176    IsOne16,
177    IsOne32,
178    IsOne64,
179    IsOne8,
180    IsZero16,
181    IsZero32,
182    IsZero64,
183    IsZero8,
184    Le16,
185    Le32,
186    Le64,
187    Le8,
188    LeftExtend16_32,
189    LeftExtend16_64,
190    LeftExtend1_16,
191    LeftExtend1_32,
192    LeftExtend1_64,
193    LeftExtend1_8,
194    LeftExtend32_64,
195    LeftExtend8_16,
196    LeftExtend8_32,
197    LeftExtend8_64,
198    LeftPadHigh16_32,
199    LeftPadHigh16_64,
200    LeftPadHigh1_16,
201    LeftPadHigh1_32,
202    LeftPadHigh1_64,
203    LeftPadHigh1_8,
204    LeftPadHigh32_64,
205    LeftPadHigh8_16,
206    LeftPadHigh8_32,
207    LeftPadHigh8_64,
208    LeftPadLow16_32,
209    LeftPadLow16_64,
210    LeftPadLow1_16,
211    LeftPadLow1_32,
212    LeftPadLow1_64,
213    LeftPadLow1_8,
214    LeftPadLow32_64,
215    LeftPadLow8_16,
216    LeftPadLow8_32,
217    LeftPadLow8_64,
218    LeftRotate16,
219    LeftRotate32,
220    LeftRotate64,
221    LeftRotate8,
222    LeftShift16,
223    LeftShift32,
224    LeftShift64,
225    LeftShift8,
226    LeftShiftWith16,
227    LeftShiftWith32,
228    LeftShiftWith64,
229    LeftShiftWith8,
230    Leftmost16_1,
231    Leftmost16_2,
232    Leftmost16_4,
233    Leftmost16_8,
234    Leftmost32_1,
235    Leftmost32_16,
236    Leftmost32_2,
237    Leftmost32_4,
238    Leftmost32_8,
239    Leftmost64_1,
240    Leftmost64_16,
241    Leftmost64_2,
242    Leftmost64_32,
243    Leftmost64_4,
244    Leftmost64_8,
245    Leftmost8_1,
246    Leftmost8_2,
247    Leftmost8_4,
248    LinearCombination1,
249    LinearVerify1,
250    LockTime,
251    Low1,
252    Low16,
253    Low32,
254    Low64,
255    Low8,
256    Lt16,
257    Lt32,
258    Lt64,
259    Lt8,
260    Maj1,
261    Maj16,
262    Maj32,
263    Maj64,
264    Maj8,
265    Max16,
266    Max32,
267    Max64,
268    Max8,
269    Median16,
270    Median32,
271    Median64,
272    Median8,
273    Min16,
274    Min32,
275    Min64,
276    Min8,
277    Modulo16,
278    Modulo32,
279    Modulo64,
280    Modulo8,
281    Multiply16,
282    Multiply32,
283    Multiply64,
284    Multiply8,
285    Negate16,
286    Negate32,
287    Negate64,
288    Negate8,
289    NumInputs,
290    NumOutputs,
291    One16,
292    One32,
293    One64,
294    One8,
295    Or1,
296    Or16,
297    Or32,
298    Or64,
299    Or8,
300    OutputScriptHash,
301    OutputValue,
302    ParseLock,
303    ParseSequence,
304    PointVerify1,
305    RightExtend16_32,
306    RightExtend16_64,
307    RightExtend32_64,
308    RightExtend8_16,
309    RightExtend8_32,
310    RightExtend8_64,
311    RightPadHigh16_32,
312    RightPadHigh16_64,
313    RightPadHigh1_16,
314    RightPadHigh1_32,
315    RightPadHigh1_64,
316    RightPadHigh1_8,
317    RightPadHigh32_64,
318    RightPadHigh8_16,
319    RightPadHigh8_32,
320    RightPadHigh8_64,
321    RightPadLow16_32,
322    RightPadLow16_64,
323    RightPadLow1_16,
324    RightPadLow1_32,
325    RightPadLow1_64,
326    RightPadLow1_8,
327    RightPadLow32_64,
328    RightPadLow8_16,
329    RightPadLow8_32,
330    RightPadLow8_64,
331    RightRotate16,
332    RightRotate32,
333    RightRotate64,
334    RightRotate8,
335    RightShift16,
336    RightShift32,
337    RightShift64,
338    RightShift8,
339    RightShiftWith16,
340    RightShiftWith32,
341    RightShiftWith64,
342    RightShiftWith8,
343    Rightmost16_1,
344    Rightmost16_2,
345    Rightmost16_4,
346    Rightmost16_8,
347    Rightmost32_1,
348    Rightmost32_16,
349    Rightmost32_2,
350    Rightmost32_4,
351    Rightmost32_8,
352    Rightmost64_1,
353    Rightmost64_16,
354    Rightmost64_2,
355    Rightmost64_32,
356    Rightmost64_4,
357    Rightmost64_8,
358    Rightmost8_1,
359    Rightmost8_2,
360    Rightmost8_4,
361    ScalarAdd,
362    ScalarInvert,
363    ScalarIsZero,
364    ScalarMultiply,
365    ScalarMultiplyLambda,
366    ScalarNegate,
367    ScalarNormalize,
368    ScalarSquare,
369    Scale,
370    ScriptCMR,
371    Sha256Block,
372    Sha256Ctx8Add1,
373    Sha256Ctx8Add128,
374    Sha256Ctx8Add16,
375    Sha256Ctx8Add2,
376    Sha256Ctx8Add256,
377    Sha256Ctx8Add32,
378    Sha256Ctx8Add4,
379    Sha256Ctx8Add512,
380    Sha256Ctx8Add64,
381    Sha256Ctx8Add8,
382    Sha256Ctx8AddBuffer511,
383    Sha256Ctx8Finalize,
384    Sha256Ctx8Init,
385    Sha256Iv,
386    Some1,
387    Some16,
388    Some32,
389    Some64,
390    Some8,
391    Subtract16,
392    Subtract32,
393    Subtract64,
394    Subtract8,
395    Swu,
396    TapdataInit,
397    TapleafVersion,
398    Tappath,
399    TotalInputValue,
400    TotalOutputValue,
401    TxIsFinal,
402    TxLockDistance,
403    TxLockDuration,
404    TxLockHeight,
405    TxLockTime,
406    Verify,
407    Version,
408    Xor1,
409    Xor16,
410    Xor32,
411    Xor64,
412    Xor8,
413    XorXor1,
414    XorXor16,
415    XorXor32,
416    XorXor64,
417    XorXor8,
418}
419
420impl Bitcoin {
421    /// Array of all Bitcoin jets.
422    pub const ALL: [Self; 400] = [
423        Self::Add16,
424        Self::Add32,
425        Self::Add64,
426        Self::Add8,
427        Self::All16,
428        Self::All32,
429        Self::All64,
430        Self::All8,
431        Self::And1,
432        Self::And16,
433        Self::And32,
434        Self::And64,
435        Self::And8,
436        Self::Bip0340Verify,
437        Self::Ch1,
438        Self::Ch16,
439        Self::Ch32,
440        Self::Ch64,
441        Self::Ch8,
442        Self::CheckLockDistance,
443        Self::CheckLockDuration,
444        Self::CheckLockHeight,
445        Self::CheckLockTime,
446        Self::CheckSigVerify,
447        Self::Complement1,
448        Self::Complement16,
449        Self::Complement32,
450        Self::Complement64,
451        Self::Complement8,
452        Self::CurrentAnnexHash,
453        Self::CurrentIndex,
454        Self::CurrentPrevOutpoint,
455        Self::CurrentScriptSigHash,
456        Self::CurrentSequence,
457        Self::CurrentValue,
458        Self::Decompress,
459        Self::Decrement16,
460        Self::Decrement32,
461        Self::Decrement64,
462        Self::Decrement8,
463        Self::DivMod128_64,
464        Self::DivMod16,
465        Self::DivMod32,
466        Self::DivMod64,
467        Self::DivMod8,
468        Self::Divide16,
469        Self::Divide32,
470        Self::Divide64,
471        Self::Divide8,
472        Self::Divides16,
473        Self::Divides32,
474        Self::Divides64,
475        Self::Divides8,
476        Self::Eq1,
477        Self::Eq16,
478        Self::Eq256,
479        Self::Eq32,
480        Self::Eq64,
481        Self::Eq8,
482        Self::FeAdd,
483        Self::FeInvert,
484        Self::FeIsOdd,
485        Self::FeIsZero,
486        Self::FeMultiply,
487        Self::FeMultiplyBeta,
488        Self::FeNegate,
489        Self::FeNormalize,
490        Self::FeSquare,
491        Self::FeSquareRoot,
492        Self::FullAdd16,
493        Self::FullAdd32,
494        Self::FullAdd64,
495        Self::FullAdd8,
496        Self::FullDecrement16,
497        Self::FullDecrement32,
498        Self::FullDecrement64,
499        Self::FullDecrement8,
500        Self::FullIncrement16,
501        Self::FullIncrement32,
502        Self::FullIncrement64,
503        Self::FullIncrement8,
504        Self::FullLeftShift16_1,
505        Self::FullLeftShift16_2,
506        Self::FullLeftShift16_4,
507        Self::FullLeftShift16_8,
508        Self::FullLeftShift32_1,
509        Self::FullLeftShift32_16,
510        Self::FullLeftShift32_2,
511        Self::FullLeftShift32_4,
512        Self::FullLeftShift32_8,
513        Self::FullLeftShift64_1,
514        Self::FullLeftShift64_16,
515        Self::FullLeftShift64_2,
516        Self::FullLeftShift64_32,
517        Self::FullLeftShift64_4,
518        Self::FullLeftShift64_8,
519        Self::FullLeftShift8_1,
520        Self::FullLeftShift8_2,
521        Self::FullLeftShift8_4,
522        Self::FullMultiply16,
523        Self::FullMultiply32,
524        Self::FullMultiply64,
525        Self::FullMultiply8,
526        Self::FullRightShift16_1,
527        Self::FullRightShift16_2,
528        Self::FullRightShift16_4,
529        Self::FullRightShift16_8,
530        Self::FullRightShift32_1,
531        Self::FullRightShift32_16,
532        Self::FullRightShift32_2,
533        Self::FullRightShift32_4,
534        Self::FullRightShift32_8,
535        Self::FullRightShift64_1,
536        Self::FullRightShift64_16,
537        Self::FullRightShift64_2,
538        Self::FullRightShift64_32,
539        Self::FullRightShift64_4,
540        Self::FullRightShift64_8,
541        Self::FullRightShift8_1,
542        Self::FullRightShift8_2,
543        Self::FullRightShift8_4,
544        Self::FullSubtract16,
545        Self::FullSubtract32,
546        Self::FullSubtract64,
547        Self::FullSubtract8,
548        Self::GeIsOnCurve,
549        Self::GeNegate,
550        Self::GejAdd,
551        Self::GejDouble,
552        Self::GejEquiv,
553        Self::GejGeAdd,
554        Self::GejGeAddEx,
555        Self::GejGeEquiv,
556        Self::GejInfinity,
557        Self::GejIsInfinity,
558        Self::GejIsOnCurve,
559        Self::GejNegate,
560        Self::GejNormalize,
561        Self::GejRescale,
562        Self::GejXEquiv,
563        Self::GejYIsOdd,
564        Self::Generate,
565        Self::HashToCurve,
566        Self::High1,
567        Self::High16,
568        Self::High32,
569        Self::High64,
570        Self::High8,
571        Self::Increment16,
572        Self::Increment32,
573        Self::Increment64,
574        Self::Increment8,
575        Self::InputAnnexHash,
576        Self::InputPrevOutpoint,
577        Self::InputScriptSigHash,
578        Self::InputSequence,
579        Self::InputValue,
580        Self::InternalKey,
581        Self::IsOne16,
582        Self::IsOne32,
583        Self::IsOne64,
584        Self::IsOne8,
585        Self::IsZero16,
586        Self::IsZero32,
587        Self::IsZero64,
588        Self::IsZero8,
589        Self::Le16,
590        Self::Le32,
591        Self::Le64,
592        Self::Le8,
593        Self::LeftExtend16_32,
594        Self::LeftExtend16_64,
595        Self::LeftExtend1_16,
596        Self::LeftExtend1_32,
597        Self::LeftExtend1_64,
598        Self::LeftExtend1_8,
599        Self::LeftExtend32_64,
600        Self::LeftExtend8_16,
601        Self::LeftExtend8_32,
602        Self::LeftExtend8_64,
603        Self::LeftPadHigh16_32,
604        Self::LeftPadHigh16_64,
605        Self::LeftPadHigh1_16,
606        Self::LeftPadHigh1_32,
607        Self::LeftPadHigh1_64,
608        Self::LeftPadHigh1_8,
609        Self::LeftPadHigh32_64,
610        Self::LeftPadHigh8_16,
611        Self::LeftPadHigh8_32,
612        Self::LeftPadHigh8_64,
613        Self::LeftPadLow16_32,
614        Self::LeftPadLow16_64,
615        Self::LeftPadLow1_16,
616        Self::LeftPadLow1_32,
617        Self::LeftPadLow1_64,
618        Self::LeftPadLow1_8,
619        Self::LeftPadLow32_64,
620        Self::LeftPadLow8_16,
621        Self::LeftPadLow8_32,
622        Self::LeftPadLow8_64,
623        Self::LeftRotate16,
624        Self::LeftRotate32,
625        Self::LeftRotate64,
626        Self::LeftRotate8,
627        Self::LeftShift16,
628        Self::LeftShift32,
629        Self::LeftShift64,
630        Self::LeftShift8,
631        Self::LeftShiftWith16,
632        Self::LeftShiftWith32,
633        Self::LeftShiftWith64,
634        Self::LeftShiftWith8,
635        Self::Leftmost16_1,
636        Self::Leftmost16_2,
637        Self::Leftmost16_4,
638        Self::Leftmost16_8,
639        Self::Leftmost32_1,
640        Self::Leftmost32_16,
641        Self::Leftmost32_2,
642        Self::Leftmost32_4,
643        Self::Leftmost32_8,
644        Self::Leftmost64_1,
645        Self::Leftmost64_16,
646        Self::Leftmost64_2,
647        Self::Leftmost64_32,
648        Self::Leftmost64_4,
649        Self::Leftmost64_8,
650        Self::Leftmost8_1,
651        Self::Leftmost8_2,
652        Self::Leftmost8_4,
653        Self::LinearCombination1,
654        Self::LinearVerify1,
655        Self::LockTime,
656        Self::Low1,
657        Self::Low16,
658        Self::Low32,
659        Self::Low64,
660        Self::Low8,
661        Self::Lt16,
662        Self::Lt32,
663        Self::Lt64,
664        Self::Lt8,
665        Self::Maj1,
666        Self::Maj16,
667        Self::Maj32,
668        Self::Maj64,
669        Self::Maj8,
670        Self::Max16,
671        Self::Max32,
672        Self::Max64,
673        Self::Max8,
674        Self::Median16,
675        Self::Median32,
676        Self::Median64,
677        Self::Median8,
678        Self::Min16,
679        Self::Min32,
680        Self::Min64,
681        Self::Min8,
682        Self::Modulo16,
683        Self::Modulo32,
684        Self::Modulo64,
685        Self::Modulo8,
686        Self::Multiply16,
687        Self::Multiply32,
688        Self::Multiply64,
689        Self::Multiply8,
690        Self::Negate16,
691        Self::Negate32,
692        Self::Negate64,
693        Self::Negate8,
694        Self::NumInputs,
695        Self::NumOutputs,
696        Self::One16,
697        Self::One32,
698        Self::One64,
699        Self::One8,
700        Self::Or1,
701        Self::Or16,
702        Self::Or32,
703        Self::Or64,
704        Self::Or8,
705        Self::OutputScriptHash,
706        Self::OutputValue,
707        Self::ParseLock,
708        Self::ParseSequence,
709        Self::PointVerify1,
710        Self::RightExtend16_32,
711        Self::RightExtend16_64,
712        Self::RightExtend32_64,
713        Self::RightExtend8_16,
714        Self::RightExtend8_32,
715        Self::RightExtend8_64,
716        Self::RightPadHigh16_32,
717        Self::RightPadHigh16_64,
718        Self::RightPadHigh1_16,
719        Self::RightPadHigh1_32,
720        Self::RightPadHigh1_64,
721        Self::RightPadHigh1_8,
722        Self::RightPadHigh32_64,
723        Self::RightPadHigh8_16,
724        Self::RightPadHigh8_32,
725        Self::RightPadHigh8_64,
726        Self::RightPadLow16_32,
727        Self::RightPadLow16_64,
728        Self::RightPadLow1_16,
729        Self::RightPadLow1_32,
730        Self::RightPadLow1_64,
731        Self::RightPadLow1_8,
732        Self::RightPadLow32_64,
733        Self::RightPadLow8_16,
734        Self::RightPadLow8_32,
735        Self::RightPadLow8_64,
736        Self::RightRotate16,
737        Self::RightRotate32,
738        Self::RightRotate64,
739        Self::RightRotate8,
740        Self::RightShift16,
741        Self::RightShift32,
742        Self::RightShift64,
743        Self::RightShift8,
744        Self::RightShiftWith16,
745        Self::RightShiftWith32,
746        Self::RightShiftWith64,
747        Self::RightShiftWith8,
748        Self::Rightmost16_1,
749        Self::Rightmost16_2,
750        Self::Rightmost16_4,
751        Self::Rightmost16_8,
752        Self::Rightmost32_1,
753        Self::Rightmost32_16,
754        Self::Rightmost32_2,
755        Self::Rightmost32_4,
756        Self::Rightmost32_8,
757        Self::Rightmost64_1,
758        Self::Rightmost64_16,
759        Self::Rightmost64_2,
760        Self::Rightmost64_32,
761        Self::Rightmost64_4,
762        Self::Rightmost64_8,
763        Self::Rightmost8_1,
764        Self::Rightmost8_2,
765        Self::Rightmost8_4,
766        Self::ScalarAdd,
767        Self::ScalarInvert,
768        Self::ScalarIsZero,
769        Self::ScalarMultiply,
770        Self::ScalarMultiplyLambda,
771        Self::ScalarNegate,
772        Self::ScalarNormalize,
773        Self::ScalarSquare,
774        Self::Scale,
775        Self::ScriptCMR,
776        Self::Sha256Block,
777        Self::Sha256Ctx8Add1,
778        Self::Sha256Ctx8Add128,
779        Self::Sha256Ctx8Add16,
780        Self::Sha256Ctx8Add2,
781        Self::Sha256Ctx8Add256,
782        Self::Sha256Ctx8Add32,
783        Self::Sha256Ctx8Add4,
784        Self::Sha256Ctx8Add512,
785        Self::Sha256Ctx8Add64,
786        Self::Sha256Ctx8Add8,
787        Self::Sha256Ctx8AddBuffer511,
788        Self::Sha256Ctx8Finalize,
789        Self::Sha256Ctx8Init,
790        Self::Sha256Iv,
791        Self::Some1,
792        Self::Some16,
793        Self::Some32,
794        Self::Some64,
795        Self::Some8,
796        Self::Subtract16,
797        Self::Subtract32,
798        Self::Subtract64,
799        Self::Subtract8,
800        Self::Swu,
801        Self::TapdataInit,
802        Self::TapleafVersion,
803        Self::Tappath,
804        Self::TotalInputValue,
805        Self::TotalOutputValue,
806        Self::TxIsFinal,
807        Self::TxLockDistance,
808        Self::TxLockDuration,
809        Self::TxLockHeight,
810        Self::TxLockTime,
811        Self::Verify,
812        Self::Version,
813        Self::Xor1,
814        Self::Xor16,
815        Self::Xor32,
816        Self::Xor64,
817        Self::Xor8,
818        Self::XorXor1,
819        Self::XorXor16,
820        Self::XorXor32,
821        Self::XorXor64,
822        Self::XorXor8,
823    ];
824}
825
826impl Jet for Bitcoin {
827
828    type Environment = BitcoinEnv;
829    type CJetEnvironment = ();
830
831    fn c_jet_env(_env: &Self::Environment) -> &Self::CJetEnvironment {
832        unimplemented!("Unspecified CJetEnvironment for Bitcoin jets")
833    }
834
835    fn cmr(&self) -> Cmr {
836        unimplemented!("Bitcoin jet CMRs weights have not yet been implemented.")
837    }
838
839    fn source_ty(&self) -> TypeName {
840        let name: &'static [u8] = match self {
841            Bitcoin::Add16 => b"i",
842            Bitcoin::Add32 => b"l",
843            Bitcoin::Add64 => b"*ll",
844            Bitcoin::Add8 => b"****22*22**22*22***22*22**22*22",
845            Bitcoin::All16 => b"****22*22**22*22***22*22**22*22",
846            Bitcoin::All32 => b"i",
847            Bitcoin::All64 => b"l",
848            Bitcoin::All8 => b"***22*22**22*22",
849            Bitcoin::And1 => b"*22",
850            Bitcoin::And16 => b"i",
851            Bitcoin::And32 => b"l",
852            Bitcoin::And64 => b"*ll",
853            Bitcoin::And8 => b"****22*22**22*22***22*22**22*22",
854            Bitcoin::Bip0340Verify => b"**hh*hh",
855            Bitcoin::Ch1 => b"*2*22",
856            Bitcoin::Ch16 => b"*****22*22**22*22***22*22**22*22i",
857            Bitcoin::Ch32 => b"*il",
858            Bitcoin::Ch64 => b"*l*ll",
859            Bitcoin::Ch8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
860            Bitcoin::CheckLockDistance => b"****22*22**22*22***22*22**22*22",
861            Bitcoin::CheckLockDuration => b"****22*22**22*22***22*22**22*22",
862            Bitcoin::CheckLockHeight => b"i",
863            Bitcoin::CheckLockTime => b"i",
864            Bitcoin::CheckSigVerify => b"**h*hh*hh",
865            Bitcoin::Complement1 => b"2",
866            Bitcoin::Complement16 => b"****22*22**22*22***22*22**22*22",
867            Bitcoin::Complement32 => b"i",
868            Bitcoin::Complement64 => b"l",
869            Bitcoin::Complement8 => b"***22*22**22*22",
870            Bitcoin::CurrentAnnexHash => b"1",
871            Bitcoin::CurrentIndex => b"1",
872            Bitcoin::CurrentPrevOutpoint => b"1",
873            Bitcoin::CurrentScriptSigHash => b"1",
874            Bitcoin::CurrentSequence => b"1",
875            Bitcoin::CurrentValue => b"1",
876            Bitcoin::Decompress => b"*2h",
877            Bitcoin::Decrement16 => b"****22*22**22*22***22*22**22*22",
878            Bitcoin::Decrement32 => b"i",
879            Bitcoin::Decrement64 => b"l",
880            Bitcoin::Decrement8 => b"***22*22**22*22",
881            Bitcoin::DivMod128_64 => b"**lll",
882            Bitcoin::DivMod16 => b"i",
883            Bitcoin::DivMod32 => b"l",
884            Bitcoin::DivMod64 => b"*ll",
885            Bitcoin::DivMod8 => b"****22*22**22*22***22*22**22*22",
886            Bitcoin::Divide16 => b"i",
887            Bitcoin::Divide32 => b"l",
888            Bitcoin::Divide64 => b"*ll",
889            Bitcoin::Divide8 => b"****22*22**22*22***22*22**22*22",
890            Bitcoin::Divides16 => b"i",
891            Bitcoin::Divides32 => b"l",
892            Bitcoin::Divides64 => b"*ll",
893            Bitcoin::Divides8 => b"****22*22**22*22***22*22**22*22",
894            Bitcoin::Eq1 => b"*22",
895            Bitcoin::Eq16 => b"i",
896            Bitcoin::Eq256 => b"*hh",
897            Bitcoin::Eq32 => b"l",
898            Bitcoin::Eq64 => b"*ll",
899            Bitcoin::Eq8 => b"****22*22**22*22***22*22**22*22",
900            Bitcoin::FeAdd => b"*hh",
901            Bitcoin::FeInvert => b"h",
902            Bitcoin::FeIsOdd => b"h",
903            Bitcoin::FeIsZero => b"h",
904            Bitcoin::FeMultiply => b"*hh",
905            Bitcoin::FeMultiplyBeta => b"h",
906            Bitcoin::FeNegate => b"h",
907            Bitcoin::FeNormalize => b"h",
908            Bitcoin::FeSquare => b"h",
909            Bitcoin::FeSquareRoot => b"h",
910            Bitcoin::FullAdd16 => b"*2i",
911            Bitcoin::FullAdd32 => b"*2l",
912            Bitcoin::FullAdd64 => b"*2*ll",
913            Bitcoin::FullAdd8 => b"*2****22*22**22*22***22*22**22*22",
914            Bitcoin::FullDecrement16 => b"*2****22*22**22*22***22*22**22*22",
915            Bitcoin::FullDecrement32 => b"*2i",
916            Bitcoin::FullDecrement64 => b"*2l",
917            Bitcoin::FullDecrement8 => b"*2***22*22**22*22",
918            Bitcoin::FullIncrement16 => b"*2****22*22**22*22***22*22**22*22",
919            Bitcoin::FullIncrement32 => b"*2i",
920            Bitcoin::FullIncrement64 => b"*2l",
921            Bitcoin::FullIncrement8 => b"*2***22*22**22*22",
922            Bitcoin::FullLeftShift16_1 => b"*****22*22**22*22***22*22**22*222",
923            Bitcoin::FullLeftShift16_2 => b"*****22*22**22*22***22*22**22*22*22",
924            Bitcoin::FullLeftShift16_4 => b"*****22*22**22*22***22*22**22*22**22*22",
925            Bitcoin::FullLeftShift16_8 => b"*****22*22**22*22***22*22**22*22***22*22**22*22",
926            Bitcoin::FullLeftShift32_1 => b"*i2",
927            Bitcoin::FullLeftShift32_16 => b"*i****22*22**22*22***22*22**22*22",
928            Bitcoin::FullLeftShift32_2 => b"*i*22",
929            Bitcoin::FullLeftShift32_4 => b"*i**22*22",
930            Bitcoin::FullLeftShift32_8 => b"*i***22*22**22*22",
931            Bitcoin::FullLeftShift64_1 => b"*l2",
932            Bitcoin::FullLeftShift64_16 => b"*l****22*22**22*22***22*22**22*22",
933            Bitcoin::FullLeftShift64_2 => b"*l*22",
934            Bitcoin::FullLeftShift64_32 => b"*li",
935            Bitcoin::FullLeftShift64_4 => b"*l**22*22",
936            Bitcoin::FullLeftShift64_8 => b"*l***22*22**22*22",
937            Bitcoin::FullLeftShift8_1 => b"****22*22**22*222",
938            Bitcoin::FullLeftShift8_2 => b"****22*22**22*22*22",
939            Bitcoin::FullLeftShift8_4 => b"****22*22**22*22**22*22",
940            Bitcoin::FullMultiply16 => b"l",
941            Bitcoin::FullMultiply32 => b"*ll",
942            Bitcoin::FullMultiply64 => b"h",
943            Bitcoin::FullMultiply8 => b"i",
944            Bitcoin::FullRightShift16_1 => b"*2****22*22**22*22***22*22**22*22",
945            Bitcoin::FullRightShift16_2 => b"**22****22*22**22*22***22*22**22*22",
946            Bitcoin::FullRightShift16_4 => b"***22*22****22*22**22*22***22*22**22*22",
947            Bitcoin::FullRightShift16_8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
948            Bitcoin::FullRightShift32_1 => b"*2i",
949            Bitcoin::FullRightShift32_16 => b"*****22*22**22*22***22*22**22*22i",
950            Bitcoin::FullRightShift32_2 => b"**22i",
951            Bitcoin::FullRightShift32_4 => b"***22*22i",
952            Bitcoin::FullRightShift32_8 => b"****22*22**22*22i",
953            Bitcoin::FullRightShift64_1 => b"*2l",
954            Bitcoin::FullRightShift64_16 => b"*****22*22**22*22***22*22**22*22l",
955            Bitcoin::FullRightShift64_2 => b"**22l",
956            Bitcoin::FullRightShift64_32 => b"*il",
957            Bitcoin::FullRightShift64_4 => b"***22*22l",
958            Bitcoin::FullRightShift64_8 => b"****22*22**22*22l",
959            Bitcoin::FullRightShift8_1 => b"*2***22*22**22*22",
960            Bitcoin::FullRightShift8_2 => b"**22***22*22**22*22",
961            Bitcoin::FullRightShift8_4 => b"***22*22***22*22**22*22",
962            Bitcoin::FullSubtract16 => b"*2i",
963            Bitcoin::FullSubtract32 => b"*2l",
964            Bitcoin::FullSubtract64 => b"*2*ll",
965            Bitcoin::FullSubtract8 => b"*2****22*22**22*22***22*22**22*22",
966            Bitcoin::GeIsOnCurve => b"*hh",
967            Bitcoin::GeNegate => b"*hh",
968            Bitcoin::GejAdd => b"***hhh**hhh",
969            Bitcoin::GejDouble => b"**hhh",
970            Bitcoin::GejEquiv => b"***hhh**hhh",
971            Bitcoin::GejGeAdd => b"***hhh*hh",
972            Bitcoin::GejGeAddEx => b"***hhh*hh",
973            Bitcoin::GejGeEquiv => b"***hhh*hh",
974            Bitcoin::GejInfinity => b"1",
975            Bitcoin::GejIsInfinity => b"**hhh",
976            Bitcoin::GejIsOnCurve => b"**hhh",
977            Bitcoin::GejNegate => b"**hhh",
978            Bitcoin::GejNormalize => b"**hhh",
979            Bitcoin::GejRescale => b"***hhhh",
980            Bitcoin::GejXEquiv => b"*h**hhh",
981            Bitcoin::GejYIsOdd => b"**hhh",
982            Bitcoin::Generate => b"h",
983            Bitcoin::HashToCurve => b"h",
984            Bitcoin::High1 => b"1",
985            Bitcoin::High16 => b"1",
986            Bitcoin::High32 => b"1",
987            Bitcoin::High64 => b"1",
988            Bitcoin::High8 => b"1",
989            Bitcoin::Increment16 => b"****22*22**22*22***22*22**22*22",
990            Bitcoin::Increment32 => b"i",
991            Bitcoin::Increment64 => b"l",
992            Bitcoin::Increment8 => b"***22*22**22*22",
993            Bitcoin::InputAnnexHash => b"i",
994            Bitcoin::InputPrevOutpoint => b"i",
995            Bitcoin::InputScriptSigHash => b"i",
996            Bitcoin::InputSequence => b"i",
997            Bitcoin::InputValue => b"i",
998            Bitcoin::InternalKey => b"1",
999            Bitcoin::IsOne16 => b"****22*22**22*22***22*22**22*22",
1000            Bitcoin::IsOne32 => b"i",
1001            Bitcoin::IsOne64 => b"l",
1002            Bitcoin::IsOne8 => b"***22*22**22*22",
1003            Bitcoin::IsZero16 => b"****22*22**22*22***22*22**22*22",
1004            Bitcoin::IsZero32 => b"i",
1005            Bitcoin::IsZero64 => b"l",
1006            Bitcoin::IsZero8 => b"***22*22**22*22",
1007            Bitcoin::Le16 => b"i",
1008            Bitcoin::Le32 => b"l",
1009            Bitcoin::Le64 => b"*ll",
1010            Bitcoin::Le8 => b"****22*22**22*22***22*22**22*22",
1011            Bitcoin::LeftExtend16_32 => b"****22*22**22*22***22*22**22*22",
1012            Bitcoin::LeftExtend16_64 => b"****22*22**22*22***22*22**22*22",
1013            Bitcoin::LeftExtend1_16 => b"2",
1014            Bitcoin::LeftExtend1_32 => b"2",
1015            Bitcoin::LeftExtend1_64 => b"2",
1016            Bitcoin::LeftExtend1_8 => b"2",
1017            Bitcoin::LeftExtend32_64 => b"i",
1018            Bitcoin::LeftExtend8_16 => b"***22*22**22*22",
1019            Bitcoin::LeftExtend8_32 => b"***22*22**22*22",
1020            Bitcoin::LeftExtend8_64 => b"***22*22**22*22",
1021            Bitcoin::LeftPadHigh16_32 => b"****22*22**22*22***22*22**22*22",
1022            Bitcoin::LeftPadHigh16_64 => b"****22*22**22*22***22*22**22*22",
1023            Bitcoin::LeftPadHigh1_16 => b"2",
1024            Bitcoin::LeftPadHigh1_32 => b"2",
1025            Bitcoin::LeftPadHigh1_64 => b"2",
1026            Bitcoin::LeftPadHigh1_8 => b"2",
1027            Bitcoin::LeftPadHigh32_64 => b"i",
1028            Bitcoin::LeftPadHigh8_16 => b"***22*22**22*22",
1029            Bitcoin::LeftPadHigh8_32 => b"***22*22**22*22",
1030            Bitcoin::LeftPadHigh8_64 => b"***22*22**22*22",
1031            Bitcoin::LeftPadLow16_32 => b"****22*22**22*22***22*22**22*22",
1032            Bitcoin::LeftPadLow16_64 => b"****22*22**22*22***22*22**22*22",
1033            Bitcoin::LeftPadLow1_16 => b"2",
1034            Bitcoin::LeftPadLow1_32 => b"2",
1035            Bitcoin::LeftPadLow1_64 => b"2",
1036            Bitcoin::LeftPadLow1_8 => b"2",
1037            Bitcoin::LeftPadLow32_64 => b"i",
1038            Bitcoin::LeftPadLow8_16 => b"***22*22**22*22",
1039            Bitcoin::LeftPadLow8_32 => b"***22*22**22*22",
1040            Bitcoin::LeftPadLow8_64 => b"***22*22**22*22",
1041            Bitcoin::LeftRotate16 => b"***22*22****22*22**22*22***22*22**22*22",
1042            Bitcoin::LeftRotate32 => b"****22*22**22*22i",
1043            Bitcoin::LeftRotate64 => b"****22*22**22*22l",
1044            Bitcoin::LeftRotate8 => b"***22*22***22*22**22*22",
1045            Bitcoin::LeftShift16 => b"***22*22****22*22**22*22***22*22**22*22",
1046            Bitcoin::LeftShift32 => b"****22*22**22*22i",
1047            Bitcoin::LeftShift64 => b"****22*22**22*22l",
1048            Bitcoin::LeftShift8 => b"***22*22***22*22**22*22",
1049            Bitcoin::LeftShiftWith16 => b"*2***22*22****22*22**22*22***22*22**22*22",
1050            Bitcoin::LeftShiftWith32 => b"*2****22*22**22*22i",
1051            Bitcoin::LeftShiftWith64 => b"*2****22*22**22*22l",
1052            Bitcoin::LeftShiftWith8 => b"*2***22*22***22*22**22*22",
1053            Bitcoin::Leftmost16_1 => b"****22*22**22*22***22*22**22*22",
1054            Bitcoin::Leftmost16_2 => b"****22*22**22*22***22*22**22*22",
1055            Bitcoin::Leftmost16_4 => b"****22*22**22*22***22*22**22*22",
1056            Bitcoin::Leftmost16_8 => b"****22*22**22*22***22*22**22*22",
1057            Bitcoin::Leftmost32_1 => b"i",
1058            Bitcoin::Leftmost32_16 => b"i",
1059            Bitcoin::Leftmost32_2 => b"i",
1060            Bitcoin::Leftmost32_4 => b"i",
1061            Bitcoin::Leftmost32_8 => b"i",
1062            Bitcoin::Leftmost64_1 => b"l",
1063            Bitcoin::Leftmost64_16 => b"l",
1064            Bitcoin::Leftmost64_2 => b"l",
1065            Bitcoin::Leftmost64_32 => b"l",
1066            Bitcoin::Leftmost64_4 => b"l",
1067            Bitcoin::Leftmost64_8 => b"l",
1068            Bitcoin::Leftmost8_1 => b"***22*22**22*22",
1069            Bitcoin::Leftmost8_2 => b"***22*22**22*22",
1070            Bitcoin::Leftmost8_4 => b"***22*22**22*22",
1071            Bitcoin::LinearCombination1 => b"**h**hhhh",
1072            Bitcoin::LinearVerify1 => b"***h*hhh*hh",
1073            Bitcoin::LockTime => b"1",
1074            Bitcoin::Low1 => b"1",
1075            Bitcoin::Low16 => b"1",
1076            Bitcoin::Low32 => b"1",
1077            Bitcoin::Low64 => b"1",
1078            Bitcoin::Low8 => b"1",
1079            Bitcoin::Lt16 => b"i",
1080            Bitcoin::Lt32 => b"l",
1081            Bitcoin::Lt64 => b"*ll",
1082            Bitcoin::Lt8 => b"****22*22**22*22***22*22**22*22",
1083            Bitcoin::Maj1 => b"*2*22",
1084            Bitcoin::Maj16 => b"*****22*22**22*22***22*22**22*22i",
1085            Bitcoin::Maj32 => b"*il",
1086            Bitcoin::Maj64 => b"*l*ll",
1087            Bitcoin::Maj8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
1088            Bitcoin::Max16 => b"i",
1089            Bitcoin::Max32 => b"l",
1090            Bitcoin::Max64 => b"*ll",
1091            Bitcoin::Max8 => b"****22*22**22*22***22*22**22*22",
1092            Bitcoin::Median16 => b"*****22*22**22*22***22*22**22*22i",
1093            Bitcoin::Median32 => b"*il",
1094            Bitcoin::Median64 => b"*l*ll",
1095            Bitcoin::Median8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
1096            Bitcoin::Min16 => b"i",
1097            Bitcoin::Min32 => b"l",
1098            Bitcoin::Min64 => b"*ll",
1099            Bitcoin::Min8 => b"****22*22**22*22***22*22**22*22",
1100            Bitcoin::Modulo16 => b"i",
1101            Bitcoin::Modulo32 => b"l",
1102            Bitcoin::Modulo64 => b"*ll",
1103            Bitcoin::Modulo8 => b"****22*22**22*22***22*22**22*22",
1104            Bitcoin::Multiply16 => b"i",
1105            Bitcoin::Multiply32 => b"l",
1106            Bitcoin::Multiply64 => b"*ll",
1107            Bitcoin::Multiply8 => b"****22*22**22*22***22*22**22*22",
1108            Bitcoin::Negate16 => b"****22*22**22*22***22*22**22*22",
1109            Bitcoin::Negate32 => b"i",
1110            Bitcoin::Negate64 => b"l",
1111            Bitcoin::Negate8 => b"***22*22**22*22",
1112            Bitcoin::NumInputs => b"1",
1113            Bitcoin::NumOutputs => b"1",
1114            Bitcoin::One16 => b"1",
1115            Bitcoin::One32 => b"1",
1116            Bitcoin::One64 => b"1",
1117            Bitcoin::One8 => b"1",
1118            Bitcoin::Or1 => b"*22",
1119            Bitcoin::Or16 => b"i",
1120            Bitcoin::Or32 => b"l",
1121            Bitcoin::Or64 => b"*ll",
1122            Bitcoin::Or8 => b"****22*22**22*22***22*22**22*22",
1123            Bitcoin::OutputScriptHash => b"i",
1124            Bitcoin::OutputValue => b"i",
1125            Bitcoin::ParseLock => b"i",
1126            Bitcoin::ParseSequence => b"i",
1127            Bitcoin::PointVerify1 => b"***h*2hh*2h",
1128            Bitcoin::RightExtend16_32 => b"****22*22**22*22***22*22**22*22",
1129            Bitcoin::RightExtend16_64 => b"****22*22**22*22***22*22**22*22",
1130            Bitcoin::RightExtend32_64 => b"i",
1131            Bitcoin::RightExtend8_16 => b"***22*22**22*22",
1132            Bitcoin::RightExtend8_32 => b"***22*22**22*22",
1133            Bitcoin::RightExtend8_64 => b"***22*22**22*22",
1134            Bitcoin::RightPadHigh16_32 => b"****22*22**22*22***22*22**22*22",
1135            Bitcoin::RightPadHigh16_64 => b"****22*22**22*22***22*22**22*22",
1136            Bitcoin::RightPadHigh1_16 => b"2",
1137            Bitcoin::RightPadHigh1_32 => b"2",
1138            Bitcoin::RightPadHigh1_64 => b"2",
1139            Bitcoin::RightPadHigh1_8 => b"2",
1140            Bitcoin::RightPadHigh32_64 => b"i",
1141            Bitcoin::RightPadHigh8_16 => b"***22*22**22*22",
1142            Bitcoin::RightPadHigh8_32 => b"***22*22**22*22",
1143            Bitcoin::RightPadHigh8_64 => b"***22*22**22*22",
1144            Bitcoin::RightPadLow16_32 => b"****22*22**22*22***22*22**22*22",
1145            Bitcoin::RightPadLow16_64 => b"****22*22**22*22***22*22**22*22",
1146            Bitcoin::RightPadLow1_16 => b"2",
1147            Bitcoin::RightPadLow1_32 => b"2",
1148            Bitcoin::RightPadLow1_64 => b"2",
1149            Bitcoin::RightPadLow1_8 => b"2",
1150            Bitcoin::RightPadLow32_64 => b"i",
1151            Bitcoin::RightPadLow8_16 => b"***22*22**22*22",
1152            Bitcoin::RightPadLow8_32 => b"***22*22**22*22",
1153            Bitcoin::RightPadLow8_64 => b"***22*22**22*22",
1154            Bitcoin::RightRotate16 => b"***22*22****22*22**22*22***22*22**22*22",
1155            Bitcoin::RightRotate32 => b"****22*22**22*22i",
1156            Bitcoin::RightRotate64 => b"****22*22**22*22l",
1157            Bitcoin::RightRotate8 => b"***22*22***22*22**22*22",
1158            Bitcoin::RightShift16 => b"***22*22****22*22**22*22***22*22**22*22",
1159            Bitcoin::RightShift32 => b"****22*22**22*22i",
1160            Bitcoin::RightShift64 => b"****22*22**22*22l",
1161            Bitcoin::RightShift8 => b"***22*22***22*22**22*22",
1162            Bitcoin::RightShiftWith16 => b"*2***22*22****22*22**22*22***22*22**22*22",
1163            Bitcoin::RightShiftWith32 => b"*2****22*22**22*22i",
1164            Bitcoin::RightShiftWith64 => b"*2****22*22**22*22l",
1165            Bitcoin::RightShiftWith8 => b"*2***22*22***22*22**22*22",
1166            Bitcoin::Rightmost16_1 => b"****22*22**22*22***22*22**22*22",
1167            Bitcoin::Rightmost16_2 => b"****22*22**22*22***22*22**22*22",
1168            Bitcoin::Rightmost16_4 => b"****22*22**22*22***22*22**22*22",
1169            Bitcoin::Rightmost16_8 => b"****22*22**22*22***22*22**22*22",
1170            Bitcoin::Rightmost32_1 => b"i",
1171            Bitcoin::Rightmost32_16 => b"i",
1172            Bitcoin::Rightmost32_2 => b"i",
1173            Bitcoin::Rightmost32_4 => b"i",
1174            Bitcoin::Rightmost32_8 => b"i",
1175            Bitcoin::Rightmost64_1 => b"l",
1176            Bitcoin::Rightmost64_16 => b"l",
1177            Bitcoin::Rightmost64_2 => b"l",
1178            Bitcoin::Rightmost64_32 => b"l",
1179            Bitcoin::Rightmost64_4 => b"l",
1180            Bitcoin::Rightmost64_8 => b"l",
1181            Bitcoin::Rightmost8_1 => b"***22*22**22*22",
1182            Bitcoin::Rightmost8_2 => b"***22*22**22*22",
1183            Bitcoin::Rightmost8_4 => b"***22*22**22*22",
1184            Bitcoin::ScalarAdd => b"*hh",
1185            Bitcoin::ScalarInvert => b"h",
1186            Bitcoin::ScalarIsZero => b"h",
1187            Bitcoin::ScalarMultiply => b"*hh",
1188            Bitcoin::ScalarMultiplyLambda => b"h",
1189            Bitcoin::ScalarNegate => b"h",
1190            Bitcoin::ScalarNormalize => b"h",
1191            Bitcoin::ScalarSquare => b"h",
1192            Bitcoin::Scale => b"*h**hhh",
1193            Bitcoin::ScriptCMR => b"1",
1194            Bitcoin::Sha256Block => b"*h*hh",
1195            Bitcoin::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",
1196            Bitcoin::Sha256Ctx8Add128 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh**hh*hh",
1197            Bitcoin::Sha256Ctx8Add16 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh*ll",
1198            Bitcoin::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",
1199            Bitcoin::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",
1200            Bitcoin::Sha256Ctx8Add32 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lhh",
1201            Bitcoin::Sha256Ctx8Add4 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lhi",
1202            Bitcoin::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",
1203            Bitcoin::Sha256Ctx8Add64 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh*hh",
1204            Bitcoin::Sha256Ctx8Add8 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lhl",
1205            Bitcoin::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",
1206            Bitcoin::Sha256Ctx8Finalize => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1207            Bitcoin::Sha256Ctx8Init => b"1",
1208            Bitcoin::Sha256Iv => b"1",
1209            Bitcoin::Some1 => b"2",
1210            Bitcoin::Some16 => b"****22*22**22*22***22*22**22*22",
1211            Bitcoin::Some32 => b"i",
1212            Bitcoin::Some64 => b"l",
1213            Bitcoin::Some8 => b"***22*22**22*22",
1214            Bitcoin::Subtract16 => b"i",
1215            Bitcoin::Subtract32 => b"l",
1216            Bitcoin::Subtract64 => b"*ll",
1217            Bitcoin::Subtract8 => b"****22*22**22*22***22*22**22*22",
1218            Bitcoin::Swu => b"h",
1219            Bitcoin::TapdataInit => b"1",
1220            Bitcoin::TapleafVersion => b"1",
1221            Bitcoin::Tappath => b"***22*22**22*22",
1222            Bitcoin::TotalInputValue => b"1",
1223            Bitcoin::TotalOutputValue => b"1",
1224            Bitcoin::TxIsFinal => b"1",
1225            Bitcoin::TxLockDistance => b"1",
1226            Bitcoin::TxLockDuration => b"1",
1227            Bitcoin::TxLockHeight => b"1",
1228            Bitcoin::TxLockTime => b"1",
1229            Bitcoin::Verify => b"2",
1230            Bitcoin::Version => b"1",
1231            Bitcoin::Xor1 => b"*22",
1232            Bitcoin::Xor16 => b"i",
1233            Bitcoin::Xor32 => b"l",
1234            Bitcoin::Xor64 => b"*ll",
1235            Bitcoin::Xor8 => b"****22*22**22*22***22*22**22*22",
1236            Bitcoin::XorXor1 => b"*2*22",
1237            Bitcoin::XorXor16 => b"*****22*22**22*22***22*22**22*22i",
1238            Bitcoin::XorXor32 => b"*il",
1239            Bitcoin::XorXor64 => b"*l*ll",
1240            Bitcoin::XorXor8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
1241        };
1242
1243        TypeName(name)
1244    }
1245
1246    fn target_ty(&self) -> TypeName {
1247        let name: &'static [u8] = match self {
1248            Bitcoin::Add16 => b"*2****22*22**22*22***22*22**22*22",
1249            Bitcoin::Add32 => b"*2i",
1250            Bitcoin::Add64 => b"*2l",
1251            Bitcoin::Add8 => b"*2***22*22**22*22",
1252            Bitcoin::All16 => b"2",
1253            Bitcoin::All32 => b"2",
1254            Bitcoin::All64 => b"2",
1255            Bitcoin::All8 => b"2",
1256            Bitcoin::And1 => b"2",
1257            Bitcoin::And16 => b"****22*22**22*22***22*22**22*22",
1258            Bitcoin::And32 => b"i",
1259            Bitcoin::And64 => b"l",
1260            Bitcoin::And8 => b"***22*22**22*22",
1261            Bitcoin::Bip0340Verify => b"1",
1262            Bitcoin::Ch1 => b"2",
1263            Bitcoin::Ch16 => b"****22*22**22*22***22*22**22*22",
1264            Bitcoin::Ch32 => b"i",
1265            Bitcoin::Ch64 => b"l",
1266            Bitcoin::Ch8 => b"***22*22**22*22",
1267            Bitcoin::CheckLockDistance => b"1",
1268            Bitcoin::CheckLockDuration => b"1",
1269            Bitcoin::CheckLockHeight => b"1",
1270            Bitcoin::CheckLockTime => b"1",
1271            Bitcoin::CheckSigVerify => b"1",
1272            Bitcoin::Complement1 => b"2",
1273            Bitcoin::Complement16 => b"****22*22**22*22***22*22**22*22",
1274            Bitcoin::Complement32 => b"i",
1275            Bitcoin::Complement64 => b"l",
1276            Bitcoin::Complement8 => b"***22*22**22*22",
1277            Bitcoin::CurrentAnnexHash => b"+1h",
1278            Bitcoin::CurrentIndex => b"i",
1279            Bitcoin::CurrentPrevOutpoint => b"*hi",
1280            Bitcoin::CurrentScriptSigHash => b"h",
1281            Bitcoin::CurrentSequence => b"i",
1282            Bitcoin::CurrentValue => b"l",
1283            Bitcoin::Decompress => b"+1*hh",
1284            Bitcoin::Decrement16 => b"*2****22*22**22*22***22*22**22*22",
1285            Bitcoin::Decrement32 => b"*2i",
1286            Bitcoin::Decrement64 => b"*2l",
1287            Bitcoin::Decrement8 => b"*2***22*22**22*22",
1288            Bitcoin::DivMod128_64 => b"*ll",
1289            Bitcoin::DivMod16 => b"i",
1290            Bitcoin::DivMod32 => b"l",
1291            Bitcoin::DivMod64 => b"*ll",
1292            Bitcoin::DivMod8 => b"****22*22**22*22***22*22**22*22",
1293            Bitcoin::Divide16 => b"****22*22**22*22***22*22**22*22",
1294            Bitcoin::Divide32 => b"i",
1295            Bitcoin::Divide64 => b"l",
1296            Bitcoin::Divide8 => b"***22*22**22*22",
1297            Bitcoin::Divides16 => b"2",
1298            Bitcoin::Divides32 => b"2",
1299            Bitcoin::Divides64 => b"2",
1300            Bitcoin::Divides8 => b"2",
1301            Bitcoin::Eq1 => b"2",
1302            Bitcoin::Eq16 => b"2",
1303            Bitcoin::Eq256 => b"2",
1304            Bitcoin::Eq32 => b"2",
1305            Bitcoin::Eq64 => b"2",
1306            Bitcoin::Eq8 => b"2",
1307            Bitcoin::FeAdd => b"h",
1308            Bitcoin::FeInvert => b"h",
1309            Bitcoin::FeIsOdd => b"2",
1310            Bitcoin::FeIsZero => b"2",
1311            Bitcoin::FeMultiply => b"h",
1312            Bitcoin::FeMultiplyBeta => b"h",
1313            Bitcoin::FeNegate => b"h",
1314            Bitcoin::FeNormalize => b"h",
1315            Bitcoin::FeSquare => b"h",
1316            Bitcoin::FeSquareRoot => b"+1h",
1317            Bitcoin::FullAdd16 => b"*2****22*22**22*22***22*22**22*22",
1318            Bitcoin::FullAdd32 => b"*2i",
1319            Bitcoin::FullAdd64 => b"*2l",
1320            Bitcoin::FullAdd8 => b"*2***22*22**22*22",
1321            Bitcoin::FullDecrement16 => b"*2****22*22**22*22***22*22**22*22",
1322            Bitcoin::FullDecrement32 => b"*2i",
1323            Bitcoin::FullDecrement64 => b"*2l",
1324            Bitcoin::FullDecrement8 => b"*2***22*22**22*22",
1325            Bitcoin::FullIncrement16 => b"*2****22*22**22*22***22*22**22*22",
1326            Bitcoin::FullIncrement32 => b"*2i",
1327            Bitcoin::FullIncrement64 => b"*2l",
1328            Bitcoin::FullIncrement8 => b"*2***22*22**22*22",
1329            Bitcoin::FullLeftShift16_1 => b"*2****22*22**22*22***22*22**22*22",
1330            Bitcoin::FullLeftShift16_2 => b"**22****22*22**22*22***22*22**22*22",
1331            Bitcoin::FullLeftShift16_4 => b"***22*22****22*22**22*22***22*22**22*22",
1332            Bitcoin::FullLeftShift16_8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
1333            Bitcoin::FullLeftShift32_1 => b"*2i",
1334            Bitcoin::FullLeftShift32_16 => b"*****22*22**22*22***22*22**22*22i",
1335            Bitcoin::FullLeftShift32_2 => b"**22i",
1336            Bitcoin::FullLeftShift32_4 => b"***22*22i",
1337            Bitcoin::FullLeftShift32_8 => b"****22*22**22*22i",
1338            Bitcoin::FullLeftShift64_1 => b"*2l",
1339            Bitcoin::FullLeftShift64_16 => b"*****22*22**22*22***22*22**22*22l",
1340            Bitcoin::FullLeftShift64_2 => b"**22l",
1341            Bitcoin::FullLeftShift64_32 => b"*il",
1342            Bitcoin::FullLeftShift64_4 => b"***22*22l",
1343            Bitcoin::FullLeftShift64_8 => b"****22*22**22*22l",
1344            Bitcoin::FullLeftShift8_1 => b"*2***22*22**22*22",
1345            Bitcoin::FullLeftShift8_2 => b"**22***22*22**22*22",
1346            Bitcoin::FullLeftShift8_4 => b"***22*22***22*22**22*22",
1347            Bitcoin::FullMultiply16 => b"i",
1348            Bitcoin::FullMultiply32 => b"l",
1349            Bitcoin::FullMultiply64 => b"*ll",
1350            Bitcoin::FullMultiply8 => b"****22*22**22*22***22*22**22*22",
1351            Bitcoin::FullRightShift16_1 => b"*****22*22**22*22***22*22**22*222",
1352            Bitcoin::FullRightShift16_2 => b"*****22*22**22*22***22*22**22*22*22",
1353            Bitcoin::FullRightShift16_4 => b"*****22*22**22*22***22*22**22*22**22*22",
1354            Bitcoin::FullRightShift16_8 => b"*****22*22**22*22***22*22**22*22***22*22**22*22",
1355            Bitcoin::FullRightShift32_1 => b"*i2",
1356            Bitcoin::FullRightShift32_16 => b"*i****22*22**22*22***22*22**22*22",
1357            Bitcoin::FullRightShift32_2 => b"*i*22",
1358            Bitcoin::FullRightShift32_4 => b"*i**22*22",
1359            Bitcoin::FullRightShift32_8 => b"*i***22*22**22*22",
1360            Bitcoin::FullRightShift64_1 => b"*l2",
1361            Bitcoin::FullRightShift64_16 => b"*l****22*22**22*22***22*22**22*22",
1362            Bitcoin::FullRightShift64_2 => b"*l*22",
1363            Bitcoin::FullRightShift64_32 => b"*li",
1364            Bitcoin::FullRightShift64_4 => b"*l**22*22",
1365            Bitcoin::FullRightShift64_8 => b"*l***22*22**22*22",
1366            Bitcoin::FullRightShift8_1 => b"****22*22**22*222",
1367            Bitcoin::FullRightShift8_2 => b"****22*22**22*22*22",
1368            Bitcoin::FullRightShift8_4 => b"****22*22**22*22**22*22",
1369            Bitcoin::FullSubtract16 => b"*2****22*22**22*22***22*22**22*22",
1370            Bitcoin::FullSubtract32 => b"*2i",
1371            Bitcoin::FullSubtract64 => b"*2l",
1372            Bitcoin::FullSubtract8 => b"*2***22*22**22*22",
1373            Bitcoin::GeIsOnCurve => b"2",
1374            Bitcoin::GeNegate => b"*hh",
1375            Bitcoin::GejAdd => b"**hhh",
1376            Bitcoin::GejDouble => b"**hhh",
1377            Bitcoin::GejEquiv => b"2",
1378            Bitcoin::GejGeAdd => b"**hhh",
1379            Bitcoin::GejGeAddEx => b"*h**hhh",
1380            Bitcoin::GejGeEquiv => b"2",
1381            Bitcoin::GejInfinity => b"**hhh",
1382            Bitcoin::GejIsInfinity => b"2",
1383            Bitcoin::GejIsOnCurve => b"2",
1384            Bitcoin::GejNegate => b"**hhh",
1385            Bitcoin::GejNormalize => b"+1*hh",
1386            Bitcoin::GejRescale => b"**hhh",
1387            Bitcoin::GejXEquiv => b"2",
1388            Bitcoin::GejYIsOdd => b"2",
1389            Bitcoin::Generate => b"**hhh",
1390            Bitcoin::HashToCurve => b"*hh",
1391            Bitcoin::High1 => b"2",
1392            Bitcoin::High16 => b"****22*22**22*22***22*22**22*22",
1393            Bitcoin::High32 => b"i",
1394            Bitcoin::High64 => b"l",
1395            Bitcoin::High8 => b"***22*22**22*22",
1396            Bitcoin::Increment16 => b"*2****22*22**22*22***22*22**22*22",
1397            Bitcoin::Increment32 => b"*2i",
1398            Bitcoin::Increment64 => b"*2l",
1399            Bitcoin::Increment8 => b"*2***22*22**22*22",
1400            Bitcoin::InputAnnexHash => b"+1+1h",
1401            Bitcoin::InputPrevOutpoint => b"+1*hi",
1402            Bitcoin::InputScriptSigHash => b"+1h",
1403            Bitcoin::InputSequence => b"+1i",
1404            Bitcoin::InputValue => b"+1l",
1405            Bitcoin::InternalKey => b"h",
1406            Bitcoin::IsOne16 => b"2",
1407            Bitcoin::IsOne32 => b"2",
1408            Bitcoin::IsOne64 => b"2",
1409            Bitcoin::IsOne8 => b"2",
1410            Bitcoin::IsZero16 => b"2",
1411            Bitcoin::IsZero32 => b"2",
1412            Bitcoin::IsZero64 => b"2",
1413            Bitcoin::IsZero8 => b"2",
1414            Bitcoin::Le16 => b"2",
1415            Bitcoin::Le32 => b"2",
1416            Bitcoin::Le64 => b"2",
1417            Bitcoin::Le8 => b"2",
1418            Bitcoin::LeftExtend16_32 => b"i",
1419            Bitcoin::LeftExtend16_64 => b"l",
1420            Bitcoin::LeftExtend1_16 => b"****22*22**22*22***22*22**22*22",
1421            Bitcoin::LeftExtend1_32 => b"i",
1422            Bitcoin::LeftExtend1_64 => b"l",
1423            Bitcoin::LeftExtend1_8 => b"***22*22**22*22",
1424            Bitcoin::LeftExtend32_64 => b"l",
1425            Bitcoin::LeftExtend8_16 => b"****22*22**22*22***22*22**22*22",
1426            Bitcoin::LeftExtend8_32 => b"i",
1427            Bitcoin::LeftExtend8_64 => b"l",
1428            Bitcoin::LeftPadHigh16_32 => b"i",
1429            Bitcoin::LeftPadHigh16_64 => b"l",
1430            Bitcoin::LeftPadHigh1_16 => b"****22*22**22*22***22*22**22*22",
1431            Bitcoin::LeftPadHigh1_32 => b"i",
1432            Bitcoin::LeftPadHigh1_64 => b"l",
1433            Bitcoin::LeftPadHigh1_8 => b"***22*22**22*22",
1434            Bitcoin::LeftPadHigh32_64 => b"l",
1435            Bitcoin::LeftPadHigh8_16 => b"****22*22**22*22***22*22**22*22",
1436            Bitcoin::LeftPadHigh8_32 => b"i",
1437            Bitcoin::LeftPadHigh8_64 => b"l",
1438            Bitcoin::LeftPadLow16_32 => b"i",
1439            Bitcoin::LeftPadLow16_64 => b"l",
1440            Bitcoin::LeftPadLow1_16 => b"****22*22**22*22***22*22**22*22",
1441            Bitcoin::LeftPadLow1_32 => b"i",
1442            Bitcoin::LeftPadLow1_64 => b"l",
1443            Bitcoin::LeftPadLow1_8 => b"***22*22**22*22",
1444            Bitcoin::LeftPadLow32_64 => b"l",
1445            Bitcoin::LeftPadLow8_16 => b"****22*22**22*22***22*22**22*22",
1446            Bitcoin::LeftPadLow8_32 => b"i",
1447            Bitcoin::LeftPadLow8_64 => b"l",
1448            Bitcoin::LeftRotate16 => b"****22*22**22*22***22*22**22*22",
1449            Bitcoin::LeftRotate32 => b"i",
1450            Bitcoin::LeftRotate64 => b"l",
1451            Bitcoin::LeftRotate8 => b"***22*22**22*22",
1452            Bitcoin::LeftShift16 => b"****22*22**22*22***22*22**22*22",
1453            Bitcoin::LeftShift32 => b"i",
1454            Bitcoin::LeftShift64 => b"l",
1455            Bitcoin::LeftShift8 => b"***22*22**22*22",
1456            Bitcoin::LeftShiftWith16 => b"****22*22**22*22***22*22**22*22",
1457            Bitcoin::LeftShiftWith32 => b"i",
1458            Bitcoin::LeftShiftWith64 => b"l",
1459            Bitcoin::LeftShiftWith8 => b"***22*22**22*22",
1460            Bitcoin::Leftmost16_1 => b"2",
1461            Bitcoin::Leftmost16_2 => b"*22",
1462            Bitcoin::Leftmost16_4 => b"**22*22",
1463            Bitcoin::Leftmost16_8 => b"***22*22**22*22",
1464            Bitcoin::Leftmost32_1 => b"2",
1465            Bitcoin::Leftmost32_16 => b"****22*22**22*22***22*22**22*22",
1466            Bitcoin::Leftmost32_2 => b"*22",
1467            Bitcoin::Leftmost32_4 => b"**22*22",
1468            Bitcoin::Leftmost32_8 => b"***22*22**22*22",
1469            Bitcoin::Leftmost64_1 => b"2",
1470            Bitcoin::Leftmost64_16 => b"****22*22**22*22***22*22**22*22",
1471            Bitcoin::Leftmost64_2 => b"*22",
1472            Bitcoin::Leftmost64_32 => b"i",
1473            Bitcoin::Leftmost64_4 => b"**22*22",
1474            Bitcoin::Leftmost64_8 => b"***22*22**22*22",
1475            Bitcoin::Leftmost8_1 => b"2",
1476            Bitcoin::Leftmost8_2 => b"*22",
1477            Bitcoin::Leftmost8_4 => b"**22*22",
1478            Bitcoin::LinearCombination1 => b"**hhh",
1479            Bitcoin::LinearVerify1 => b"1",
1480            Bitcoin::LockTime => b"i",
1481            Bitcoin::Low1 => b"2",
1482            Bitcoin::Low16 => b"****22*22**22*22***22*22**22*22",
1483            Bitcoin::Low32 => b"i",
1484            Bitcoin::Low64 => b"l",
1485            Bitcoin::Low8 => b"***22*22**22*22",
1486            Bitcoin::Lt16 => b"2",
1487            Bitcoin::Lt32 => b"2",
1488            Bitcoin::Lt64 => b"2",
1489            Bitcoin::Lt8 => b"2",
1490            Bitcoin::Maj1 => b"2",
1491            Bitcoin::Maj16 => b"****22*22**22*22***22*22**22*22",
1492            Bitcoin::Maj32 => b"i",
1493            Bitcoin::Maj64 => b"l",
1494            Bitcoin::Maj8 => b"***22*22**22*22",
1495            Bitcoin::Max16 => b"****22*22**22*22***22*22**22*22",
1496            Bitcoin::Max32 => b"i",
1497            Bitcoin::Max64 => b"l",
1498            Bitcoin::Max8 => b"***22*22**22*22",
1499            Bitcoin::Median16 => b"****22*22**22*22***22*22**22*22",
1500            Bitcoin::Median32 => b"i",
1501            Bitcoin::Median64 => b"l",
1502            Bitcoin::Median8 => b"***22*22**22*22",
1503            Bitcoin::Min16 => b"****22*22**22*22***22*22**22*22",
1504            Bitcoin::Min32 => b"i",
1505            Bitcoin::Min64 => b"l",
1506            Bitcoin::Min8 => b"***22*22**22*22",
1507            Bitcoin::Modulo16 => b"****22*22**22*22***22*22**22*22",
1508            Bitcoin::Modulo32 => b"i",
1509            Bitcoin::Modulo64 => b"l",
1510            Bitcoin::Modulo8 => b"***22*22**22*22",
1511            Bitcoin::Multiply16 => b"i",
1512            Bitcoin::Multiply32 => b"l",
1513            Bitcoin::Multiply64 => b"*ll",
1514            Bitcoin::Multiply8 => b"****22*22**22*22***22*22**22*22",
1515            Bitcoin::Negate16 => b"*2****22*22**22*22***22*22**22*22",
1516            Bitcoin::Negate32 => b"*2i",
1517            Bitcoin::Negate64 => b"*2l",
1518            Bitcoin::Negate8 => b"*2***22*22**22*22",
1519            Bitcoin::NumInputs => b"i",
1520            Bitcoin::NumOutputs => b"i",
1521            Bitcoin::One16 => b"****22*22**22*22***22*22**22*22",
1522            Bitcoin::One32 => b"i",
1523            Bitcoin::One64 => b"l",
1524            Bitcoin::One8 => b"***22*22**22*22",
1525            Bitcoin::Or1 => b"2",
1526            Bitcoin::Or16 => b"****22*22**22*22***22*22**22*22",
1527            Bitcoin::Or32 => b"i",
1528            Bitcoin::Or64 => b"l",
1529            Bitcoin::Or8 => b"***22*22**22*22",
1530            Bitcoin::OutputScriptHash => b"+1h",
1531            Bitcoin::OutputValue => b"+1l",
1532            Bitcoin::ParseLock => b"+ii",
1533            Bitcoin::ParseSequence => b"+1+****22*22**22*22***22*22**22*22****22*22**22*22***22*22**22*22",
1534            Bitcoin::PointVerify1 => b"1",
1535            Bitcoin::RightExtend16_32 => b"i",
1536            Bitcoin::RightExtend16_64 => b"l",
1537            Bitcoin::RightExtend32_64 => b"l",
1538            Bitcoin::RightExtend8_16 => b"****22*22**22*22***22*22**22*22",
1539            Bitcoin::RightExtend8_32 => b"i",
1540            Bitcoin::RightExtend8_64 => b"l",
1541            Bitcoin::RightPadHigh16_32 => b"i",
1542            Bitcoin::RightPadHigh16_64 => b"l",
1543            Bitcoin::RightPadHigh1_16 => b"****22*22**22*22***22*22**22*22",
1544            Bitcoin::RightPadHigh1_32 => b"i",
1545            Bitcoin::RightPadHigh1_64 => b"l",
1546            Bitcoin::RightPadHigh1_8 => b"***22*22**22*22",
1547            Bitcoin::RightPadHigh32_64 => b"l",
1548            Bitcoin::RightPadHigh8_16 => b"****22*22**22*22***22*22**22*22",
1549            Bitcoin::RightPadHigh8_32 => b"i",
1550            Bitcoin::RightPadHigh8_64 => b"l",
1551            Bitcoin::RightPadLow16_32 => b"i",
1552            Bitcoin::RightPadLow16_64 => b"l",
1553            Bitcoin::RightPadLow1_16 => b"****22*22**22*22***22*22**22*22",
1554            Bitcoin::RightPadLow1_32 => b"i",
1555            Bitcoin::RightPadLow1_64 => b"l",
1556            Bitcoin::RightPadLow1_8 => b"***22*22**22*22",
1557            Bitcoin::RightPadLow32_64 => b"l",
1558            Bitcoin::RightPadLow8_16 => b"****22*22**22*22***22*22**22*22",
1559            Bitcoin::RightPadLow8_32 => b"i",
1560            Bitcoin::RightPadLow8_64 => b"l",
1561            Bitcoin::RightRotate16 => b"****22*22**22*22***22*22**22*22",
1562            Bitcoin::RightRotate32 => b"i",
1563            Bitcoin::RightRotate64 => b"l",
1564            Bitcoin::RightRotate8 => b"***22*22**22*22",
1565            Bitcoin::RightShift16 => b"****22*22**22*22***22*22**22*22",
1566            Bitcoin::RightShift32 => b"i",
1567            Bitcoin::RightShift64 => b"l",
1568            Bitcoin::RightShift8 => b"***22*22**22*22",
1569            Bitcoin::RightShiftWith16 => b"****22*22**22*22***22*22**22*22",
1570            Bitcoin::RightShiftWith32 => b"i",
1571            Bitcoin::RightShiftWith64 => b"l",
1572            Bitcoin::RightShiftWith8 => b"***22*22**22*22",
1573            Bitcoin::Rightmost16_1 => b"2",
1574            Bitcoin::Rightmost16_2 => b"*22",
1575            Bitcoin::Rightmost16_4 => b"**22*22",
1576            Bitcoin::Rightmost16_8 => b"***22*22**22*22",
1577            Bitcoin::Rightmost32_1 => b"2",
1578            Bitcoin::Rightmost32_16 => b"****22*22**22*22***22*22**22*22",
1579            Bitcoin::Rightmost32_2 => b"*22",
1580            Bitcoin::Rightmost32_4 => b"**22*22",
1581            Bitcoin::Rightmost32_8 => b"***22*22**22*22",
1582            Bitcoin::Rightmost64_1 => b"2",
1583            Bitcoin::Rightmost64_16 => b"****22*22**22*22***22*22**22*22",
1584            Bitcoin::Rightmost64_2 => b"*22",
1585            Bitcoin::Rightmost64_32 => b"i",
1586            Bitcoin::Rightmost64_4 => b"**22*22",
1587            Bitcoin::Rightmost64_8 => b"***22*22**22*22",
1588            Bitcoin::Rightmost8_1 => b"2",
1589            Bitcoin::Rightmost8_2 => b"*22",
1590            Bitcoin::Rightmost8_4 => b"**22*22",
1591            Bitcoin::ScalarAdd => b"h",
1592            Bitcoin::ScalarInvert => b"h",
1593            Bitcoin::ScalarIsZero => b"2",
1594            Bitcoin::ScalarMultiply => b"h",
1595            Bitcoin::ScalarMultiplyLambda => b"h",
1596            Bitcoin::ScalarNegate => b"h",
1597            Bitcoin::ScalarNormalize => b"h",
1598            Bitcoin::ScalarSquare => b"h",
1599            Bitcoin::Scale => b"**hhh",
1600            Bitcoin::ScriptCMR => b"h",
1601            Bitcoin::Sha256Block => b"h",
1602            Bitcoin::Sha256Ctx8Add1 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1603            Bitcoin::Sha256Ctx8Add128 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1604            Bitcoin::Sha256Ctx8Add16 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1605            Bitcoin::Sha256Ctx8Add2 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1606            Bitcoin::Sha256Ctx8Add256 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1607            Bitcoin::Sha256Ctx8Add32 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1608            Bitcoin::Sha256Ctx8Add4 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1609            Bitcoin::Sha256Ctx8Add512 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1610            Bitcoin::Sha256Ctx8Add64 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1611            Bitcoin::Sha256Ctx8Add8 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1612            Bitcoin::Sha256Ctx8AddBuffer511 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1613            Bitcoin::Sha256Ctx8Finalize => b"h",
1614            Bitcoin::Sha256Ctx8Init => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1615            Bitcoin::Sha256Iv => b"h",
1616            Bitcoin::Some1 => b"2",
1617            Bitcoin::Some16 => b"2",
1618            Bitcoin::Some32 => b"2",
1619            Bitcoin::Some64 => b"2",
1620            Bitcoin::Some8 => b"2",
1621            Bitcoin::Subtract16 => b"*2****22*22**22*22***22*22**22*22",
1622            Bitcoin::Subtract32 => b"*2i",
1623            Bitcoin::Subtract64 => b"*2l",
1624            Bitcoin::Subtract8 => b"*2***22*22**22*22",
1625            Bitcoin::Swu => b"*hh",
1626            Bitcoin::TapdataInit => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1627            Bitcoin::TapleafVersion => b"***22*22**22*22",
1628            Bitcoin::Tappath => b"+1h",
1629            Bitcoin::TotalInputValue => b"l",
1630            Bitcoin::TotalOutputValue => b"l",
1631            Bitcoin::TxIsFinal => b"2",
1632            Bitcoin::TxLockDistance => b"****22*22**22*22***22*22**22*22",
1633            Bitcoin::TxLockDuration => b"****22*22**22*22***22*22**22*22",
1634            Bitcoin::TxLockHeight => b"i",
1635            Bitcoin::TxLockTime => b"i",
1636            Bitcoin::Verify => b"1",
1637            Bitcoin::Version => b"i",
1638            Bitcoin::Xor1 => b"2",
1639            Bitcoin::Xor16 => b"****22*22**22*22***22*22**22*22",
1640            Bitcoin::Xor32 => b"i",
1641            Bitcoin::Xor64 => b"l",
1642            Bitcoin::Xor8 => b"***22*22**22*22",
1643            Bitcoin::XorXor1 => b"2",
1644            Bitcoin::XorXor16 => b"****22*22**22*22***22*22**22*22",
1645            Bitcoin::XorXor32 => b"i",
1646            Bitcoin::XorXor64 => b"l",
1647            Bitcoin::XorXor8 => b"***22*22**22*22",
1648        };
1649
1650        TypeName(name)
1651    }
1652
1653    fn encode<W: Write>(&self, w: &mut BitWriter<W>) -> std::io::Result<usize> {
1654        let (n, len) = match self {
1655            Bitcoin::Verify => (0, 3),
1656            Bitcoin::Low1 => (8, 6),
1657            Bitcoin::Low8 => (37, 8),
1658            Bitcoin::Low16 => (304, 11),
1659            Bitcoin::Low32 => (305, 11),
1660            Bitcoin::Low64 => (306, 11),
1661            Bitcoin::High1 => (10, 6),
1662            Bitcoin::High8 => (45, 8),
1663            Bitcoin::High16 => (368, 11),
1664            Bitcoin::High32 => (369, 11),
1665            Bitcoin::High64 => (370, 11),
1666            Bitcoin::Complement1 => (96, 9),
1667            Bitcoin::Complement8 => (389, 11),
1668            Bitcoin::Complement16 => (3120, 14),
1669            Bitcoin::Complement32 => (3121, 14),
1670            Bitcoin::Complement64 => (3122, 14),
1671            Bitcoin::And1 => (98, 9),
1672            Bitcoin::And8 => (397, 11),
1673            Bitcoin::And16 => (3184, 14),
1674            Bitcoin::And32 => (3185, 14),
1675            Bitcoin::And64 => (3186, 14),
1676            Bitcoin::Or1 => (100, 9),
1677            Bitcoin::Or8 => (405, 11),
1678            Bitcoin::Or16 => (3248, 14),
1679            Bitcoin::Or32 => (3249, 14),
1680            Bitcoin::Or64 => (3250, 14),
1681            Bitcoin::Xor1 => (102, 9),
1682            Bitcoin::Xor8 => (413, 11),
1683            Bitcoin::Xor16 => (3312, 14),
1684            Bitcoin::Xor32 => (3313, 14),
1685            Bitcoin::Xor64 => (3314, 14),
1686            Bitcoin::Maj1 => (208, 10),
1687            Bitcoin::Maj8 => (837, 12),
1688            Bitcoin::Maj16 => (6704, 15),
1689            Bitcoin::Maj32 => (6705, 15),
1690            Bitcoin::Maj64 => (6706, 15),
1691            Bitcoin::XorXor1 => (210, 10),
1692            Bitcoin::XorXor8 => (845, 12),
1693            Bitcoin::XorXor16 => (6768, 15),
1694            Bitcoin::XorXor32 => (6769, 15),
1695            Bitcoin::XorXor64 => (6770, 15),
1696            Bitcoin::Ch1 => (212, 10),
1697            Bitcoin::Ch8 => (853, 12),
1698            Bitcoin::Ch16 => (6832, 15),
1699            Bitcoin::Ch32 => (6833, 15),
1700            Bitcoin::Ch64 => (6834, 15),
1701            Bitcoin::Some1 => (214, 10),
1702            Bitcoin::Some8 => (861, 12),
1703            Bitcoin::Some16 => (6896, 15),
1704            Bitcoin::Some32 => (6897, 15),
1705            Bitcoin::Some64 => (6898, 15),
1706            Bitcoin::All8 => (869, 12),
1707            Bitcoin::All16 => (6960, 15),
1708            Bitcoin::All32 => (6961, 15),
1709            Bitcoin::All64 => (6962, 15),
1710            Bitcoin::Eq1 => (218, 10),
1711            Bitcoin::Eq8 => (877, 12),
1712            Bitcoin::Eq16 => (7024, 15),
1713            Bitcoin::Eq32 => (7025, 15),
1714            Bitcoin::Eq64 => (7026, 15),
1715            Bitcoin::Eq256 => (14056, 16),
1716            Bitcoin::FullLeftShift8_1 => (1765, 13),
1717            Bitcoin::FullLeftShift16_1 => (14128, 16),
1718            Bitcoin::FullLeftShift32_1 => (14129, 16),
1719            Bitcoin::FullLeftShift64_1 => (14130, 16),
1720            Bitcoin::FullLeftShift8_2 => (7076, 15),
1721            Bitcoin::FullLeftShift16_2 => (7077, 15),
1722            Bitcoin::FullLeftShift32_2 => (56624, 18),
1723            Bitcoin::FullLeftShift64_2 => (56625, 18),
1724            Bitcoin::FullLeftShift8_4 => (1770, 13),
1725            Bitcoin::FullLeftShift16_4 => (7084, 15),
1726            Bitcoin::FullLeftShift32_4 => (7085, 15),
1727            Bitcoin::FullLeftShift64_4 => (56688, 18),
1728            Bitcoin::FullLeftShift16_8 => (14176, 16),
1729            Bitcoin::FullLeftShift32_8 => (56708, 18),
1730            Bitcoin::FullLeftShift64_8 => (56709, 18),
1731            Bitcoin::FullLeftShift32_16 => (14178, 16),
1732            Bitcoin::FullLeftShift64_16 => (56716, 18),
1733            Bitcoin::FullLeftShift64_32 => (14180, 16),
1734            Bitcoin::FullRightShift8_1 => (1781, 13),
1735            Bitcoin::FullRightShift16_1 => (14256, 16),
1736            Bitcoin::FullRightShift32_1 => (14257, 16),
1737            Bitcoin::FullRightShift64_1 => (14258, 16),
1738            Bitcoin::FullRightShift8_2 => (7140, 15),
1739            Bitcoin::FullRightShift16_2 => (7141, 15),
1740            Bitcoin::FullRightShift32_2 => (57136, 18),
1741            Bitcoin::FullRightShift64_2 => (57137, 18),
1742            Bitcoin::FullRightShift8_4 => (1786, 13),
1743            Bitcoin::FullRightShift16_4 => (7148, 15),
1744            Bitcoin::FullRightShift32_4 => (7149, 15),
1745            Bitcoin::FullRightShift64_4 => (57200, 18),
1746            Bitcoin::FullRightShift16_8 => (14304, 16),
1747            Bitcoin::FullRightShift32_8 => (57220, 18),
1748            Bitcoin::FullRightShift64_8 => (57221, 18),
1749            Bitcoin::FullRightShift32_16 => (14306, 16),
1750            Bitcoin::FullRightShift64_16 => (57228, 18),
1751            Bitcoin::FullRightShift64_32 => (14308, 16),
1752            Bitcoin::Leftmost8_1 => (28677, 17),
1753            Bitcoin::Leftmost16_1 => (229424, 20),
1754            Bitcoin::Leftmost32_1 => (229425, 20),
1755            Bitcoin::Leftmost64_1 => (229426, 20),
1756            Bitcoin::Leftmost8_2 => (114724, 19),
1757            Bitcoin::Leftmost16_2 => (114725, 19),
1758            Bitcoin::Leftmost32_2 => (917808, 22),
1759            Bitcoin::Leftmost64_2 => (917809, 22),
1760            Bitcoin::Leftmost8_4 => (28682, 17),
1761            Bitcoin::Leftmost16_4 => (114732, 19),
1762            Bitcoin::Leftmost32_4 => (114733, 19),
1763            Bitcoin::Leftmost64_4 => (917872, 22),
1764            Bitcoin::Leftmost16_8 => (229472, 20),
1765            Bitcoin::Leftmost32_8 => (917892, 22),
1766            Bitcoin::Leftmost64_8 => (917893, 22),
1767            Bitcoin::Leftmost32_16 => (229474, 20),
1768            Bitcoin::Leftmost64_16 => (917900, 22),
1769            Bitcoin::Leftmost64_32 => (229476, 20),
1770            Bitcoin::Rightmost8_1 => (28693, 17),
1771            Bitcoin::Rightmost16_1 => (229552, 20),
1772            Bitcoin::Rightmost32_1 => (229553, 20),
1773            Bitcoin::Rightmost64_1 => (229554, 20),
1774            Bitcoin::Rightmost8_2 => (114788, 19),
1775            Bitcoin::Rightmost16_2 => (114789, 19),
1776            Bitcoin::Rightmost32_2 => (918320, 22),
1777            Bitcoin::Rightmost64_2 => (918321, 22),
1778            Bitcoin::Rightmost8_4 => (28698, 17),
1779            Bitcoin::Rightmost16_4 => (114796, 19),
1780            Bitcoin::Rightmost32_4 => (114797, 19),
1781            Bitcoin::Rightmost64_4 => (918384, 22),
1782            Bitcoin::Rightmost16_8 => (229600, 20),
1783            Bitcoin::Rightmost32_8 => (918404, 22),
1784            Bitcoin::Rightmost64_8 => (918405, 22),
1785            Bitcoin::Rightmost32_16 => (229602, 20),
1786            Bitcoin::Rightmost64_16 => (918412, 22),
1787            Bitcoin::Rightmost64_32 => (229604, 20),
1788            Bitcoin::LeftPadLow1_8 => (28709, 17),
1789            Bitcoin::LeftPadLow1_16 => (229680, 20),
1790            Bitcoin::LeftPadLow1_32 => (229681, 20),
1791            Bitcoin::LeftPadLow1_64 => (229682, 20),
1792            Bitcoin::LeftPadLow8_16 => (229728, 20),
1793            Bitcoin::LeftPadLow8_32 => (918916, 22),
1794            Bitcoin::LeftPadLow8_64 => (918917, 22),
1795            Bitcoin::LeftPadLow16_32 => (229730, 20),
1796            Bitcoin::LeftPadLow16_64 => (918924, 22),
1797            Bitcoin::LeftPadLow32_64 => (229732, 20),
1798            Bitcoin::LeftPadHigh1_8 => (28725, 17),
1799            Bitcoin::LeftPadHigh1_16 => (229808, 20),
1800            Bitcoin::LeftPadHigh1_32 => (229809, 20),
1801            Bitcoin::LeftPadHigh1_64 => (229810, 20),
1802            Bitcoin::LeftPadHigh8_16 => (229856, 20),
1803            Bitcoin::LeftPadHigh8_32 => (919428, 22),
1804            Bitcoin::LeftPadHigh8_64 => (919429, 22),
1805            Bitcoin::LeftPadHigh16_32 => (229858, 20),
1806            Bitcoin::LeftPadHigh16_64 => (919436, 22),
1807            Bitcoin::LeftPadHigh32_64 => (229860, 20),
1808            Bitcoin::LeftExtend1_8 => (28741, 17),
1809            Bitcoin::LeftExtend1_16 => (229936, 20),
1810            Bitcoin::LeftExtend1_32 => (229937, 20),
1811            Bitcoin::LeftExtend1_64 => (229938, 20),
1812            Bitcoin::LeftExtend8_16 => (229984, 20),
1813            Bitcoin::LeftExtend8_32 => (919940, 22),
1814            Bitcoin::LeftExtend8_64 => (919941, 22),
1815            Bitcoin::LeftExtend16_32 => (229986, 20),
1816            Bitcoin::LeftExtend16_64 => (919948, 22),
1817            Bitcoin::LeftExtend32_64 => (229988, 20),
1818            Bitcoin::RightPadLow1_8 => (28757, 17),
1819            Bitcoin::RightPadLow1_16 => (230064, 20),
1820            Bitcoin::RightPadLow1_32 => (230065, 20),
1821            Bitcoin::RightPadLow1_64 => (230066, 20),
1822            Bitcoin::RightPadLow8_16 => (230112, 20),
1823            Bitcoin::RightPadLow8_32 => (920452, 22),
1824            Bitcoin::RightPadLow8_64 => (920453, 22),
1825            Bitcoin::RightPadLow16_32 => (230114, 20),
1826            Bitcoin::RightPadLow16_64 => (920460, 22),
1827            Bitcoin::RightPadLow32_64 => (230116, 20),
1828            Bitcoin::RightPadHigh1_8 => (28773, 17),
1829            Bitcoin::RightPadHigh1_16 => (230192, 20),
1830            Bitcoin::RightPadHigh1_32 => (230193, 20),
1831            Bitcoin::RightPadHigh1_64 => (230194, 20),
1832            Bitcoin::RightPadHigh8_16 => (230240, 20),
1833            Bitcoin::RightPadHigh8_32 => (920964, 22),
1834            Bitcoin::RightPadHigh8_64 => (920965, 22),
1835            Bitcoin::RightPadHigh16_32 => (230242, 20),
1836            Bitcoin::RightPadHigh16_64 => (920972, 22),
1837            Bitcoin::RightPadHigh32_64 => (230244, 20),
1838            Bitcoin::RightExtend8_16 => (230368, 20),
1839            Bitcoin::RightExtend8_32 => (921476, 22),
1840            Bitcoin::RightExtend8_64 => (921477, 22),
1841            Bitcoin::RightExtend16_32 => (230370, 20),
1842            Bitcoin::RightExtend16_64 => (921484, 22),
1843            Bitcoin::RightExtend32_64 => (230372, 20),
1844            Bitcoin::LeftShiftWith8 => (14405, 16),
1845            Bitcoin::LeftShiftWith16 => (115248, 19),
1846            Bitcoin::LeftShiftWith32 => (115249, 19),
1847            Bitcoin::LeftShiftWith64 => (115250, 19),
1848            Bitcoin::RightShiftWith8 => (14413, 16),
1849            Bitcoin::RightShiftWith16 => (115312, 19),
1850            Bitcoin::RightShiftWith32 => (115313, 19),
1851            Bitcoin::RightShiftWith64 => (115314, 19),
1852            Bitcoin::LeftShift8 => (14421, 16),
1853            Bitcoin::LeftShift16 => (115376, 19),
1854            Bitcoin::LeftShift32 => (115377, 19),
1855            Bitcoin::LeftShift64 => (115378, 19),
1856            Bitcoin::RightShift8 => (14429, 16),
1857            Bitcoin::RightShift16 => (115440, 19),
1858            Bitcoin::RightShift32 => (115441, 19),
1859            Bitcoin::RightShift64 => (115442, 19),
1860            Bitcoin::LeftRotate8 => (14437, 16),
1861            Bitcoin::LeftRotate16 => (115504, 19),
1862            Bitcoin::LeftRotate32 => (115505, 19),
1863            Bitcoin::LeftRotate64 => (115506, 19),
1864            Bitcoin::RightRotate8 => (14445, 16),
1865            Bitcoin::RightRotate16 => (115568, 19),
1866            Bitcoin::RightRotate32 => (115569, 19),
1867            Bitcoin::RightRotate64 => (115570, 19),
1868            Bitcoin::One8 => (69, 8),
1869            Bitcoin::One16 => (560, 11),
1870            Bitcoin::One32 => (561, 11),
1871            Bitcoin::One64 => (562, 11),
1872            Bitcoin::FullAdd8 => (293, 10),
1873            Bitcoin::FullAdd16 => (2352, 13),
1874            Bitcoin::FullAdd32 => (2353, 13),
1875            Bitcoin::FullAdd64 => (2354, 13),
1876            Bitcoin::Add8 => (301, 10),
1877            Bitcoin::Add16 => (2416, 13),
1878            Bitcoin::Add32 => (2417, 13),
1879            Bitcoin::Add64 => (2418, 13),
1880            Bitcoin::FullIncrement8 => (2437, 13),
1881            Bitcoin::FullIncrement16 => (19504, 16),
1882            Bitcoin::FullIncrement32 => (19505, 16),
1883            Bitcoin::FullIncrement64 => (19506, 16),
1884            Bitcoin::Increment8 => (2445, 13),
1885            Bitcoin::Increment16 => (19568, 16),
1886            Bitcoin::Increment32 => (19569, 16),
1887            Bitcoin::Increment64 => (19570, 16),
1888            Bitcoin::FullSubtract8 => (2461, 13),
1889            Bitcoin::FullSubtract16 => (19696, 16),
1890            Bitcoin::FullSubtract32 => (19697, 16),
1891            Bitcoin::FullSubtract64 => (19698, 16),
1892            Bitcoin::Subtract8 => (4933, 14),
1893            Bitcoin::Subtract16 => (39472, 17),
1894            Bitcoin::Subtract32 => (39473, 17),
1895            Bitcoin::Subtract64 => (39474, 17),
1896            Bitcoin::Negate8 => (4941, 14),
1897            Bitcoin::Negate16 => (39536, 17),
1898            Bitcoin::Negate32 => (39537, 17),
1899            Bitcoin::Negate64 => (39538, 17),
1900            Bitcoin::FullDecrement8 => (4949, 14),
1901            Bitcoin::FullDecrement16 => (39600, 17),
1902            Bitcoin::FullDecrement32 => (39601, 17),
1903            Bitcoin::FullDecrement64 => (39602, 17),
1904            Bitcoin::Decrement8 => (4957, 14),
1905            Bitcoin::Decrement16 => (39664, 17),
1906            Bitcoin::Decrement32 => (39665, 17),
1907            Bitcoin::Decrement64 => (39666, 17),
1908            Bitcoin::FullMultiply8 => (4965, 14),
1909            Bitcoin::FullMultiply16 => (39728, 17),
1910            Bitcoin::FullMultiply32 => (39729, 17),
1911            Bitcoin::FullMultiply64 => (39730, 17),
1912            Bitcoin::Multiply8 => (4973, 14),
1913            Bitcoin::Multiply16 => (39792, 17),
1914            Bitcoin::Multiply32 => (39793, 17),
1915            Bitcoin::Multiply64 => (39794, 17),
1916            Bitcoin::IsZero8 => (4981, 14),
1917            Bitcoin::IsZero16 => (39856, 17),
1918            Bitcoin::IsZero32 => (39857, 17),
1919            Bitcoin::IsZero64 => (39858, 17),
1920            Bitcoin::IsOne8 => (4989, 14),
1921            Bitcoin::IsOne16 => (39920, 17),
1922            Bitcoin::IsOne32 => (39921, 17),
1923            Bitcoin::IsOne64 => (39922, 17),
1924            Bitcoin::Le8 => (79877, 18),
1925            Bitcoin::Le16 => (639024, 21),
1926            Bitcoin::Le32 => (639025, 21),
1927            Bitcoin::Le64 => (639026, 21),
1928            Bitcoin::Lt8 => (79885, 18),
1929            Bitcoin::Lt16 => (639088, 21),
1930            Bitcoin::Lt32 => (639089, 21),
1931            Bitcoin::Lt64 => (639090, 21),
1932            Bitcoin::Min8 => (79893, 18),
1933            Bitcoin::Min16 => (639152, 21),
1934            Bitcoin::Min32 => (639153, 21),
1935            Bitcoin::Min64 => (639154, 21),
1936            Bitcoin::Max8 => (79901, 18),
1937            Bitcoin::Max16 => (639216, 21),
1938            Bitcoin::Max32 => (639217, 21),
1939            Bitcoin::Max64 => (639218, 21),
1940            Bitcoin::Median8 => (79909, 18),
1941            Bitcoin::Median16 => (639280, 21),
1942            Bitcoin::Median32 => (639281, 21),
1943            Bitcoin::Median64 => (639282, 21),
1944            Bitcoin::DivMod128_64 => (639346, 21),
1945            Bitcoin::DivMod8 => (79925, 18),
1946            Bitcoin::DivMod16 => (639408, 21),
1947            Bitcoin::DivMod32 => (639409, 21),
1948            Bitcoin::DivMod64 => (639410, 21),
1949            Bitcoin::Divide8 => (79933, 18),
1950            Bitcoin::Divide16 => (639472, 21),
1951            Bitcoin::Divide32 => (639473, 21),
1952            Bitcoin::Divide64 => (639474, 21),
1953            Bitcoin::Modulo8 => (79941, 18),
1954            Bitcoin::Modulo16 => (639536, 21),
1955            Bitcoin::Modulo32 => (639537, 21),
1956            Bitcoin::Modulo64 => (639538, 21),
1957            Bitcoin::Divides8 => (79949, 18),
1958            Bitcoin::Divides16 => (639600, 21),
1959            Bitcoin::Divides32 => (639601, 21),
1960            Bitcoin::Divides64 => (639602, 21),
1961            Bitcoin::Sha256Block => (20, 6),
1962            Bitcoin::Sha256Iv => (84, 8),
1963            Bitcoin::Sha256Ctx8Add1 => (170, 9),
1964            Bitcoin::Sha256Ctx8Add2 => (684, 11),
1965            Bitcoin::Sha256Ctx8Add4 => (685, 11),
1966            Bitcoin::Sha256Ctx8Add8 => (5488, 14),
1967            Bitcoin::Sha256Ctx8Add16 => (5489, 14),
1968            Bitcoin::Sha256Ctx8Add32 => (5490, 14),
1969            Bitcoin::Sha256Ctx8Add64 => (5491, 14),
1970            Bitcoin::Sha256Ctx8Add128 => (10984, 15),
1971            Bitcoin::Sha256Ctx8Add256 => (10985, 15),
1972            Bitcoin::Sha256Ctx8Add512 => (10986, 15),
1973            Bitcoin::Sha256Ctx8AddBuffer511 => (688, 11),
1974            Bitcoin::Sha256Ctx8Finalize => (689, 11),
1975            Bitcoin::Sha256Ctx8Init => (690, 11),
1976            Bitcoin::PointVerify1 => (192, 9),
1977            Bitcoin::Decompress => (388, 10),
1978            Bitcoin::LinearVerify1 => (778, 11),
1979            Bitcoin::LinearCombination1 => (6240, 14),
1980            Bitcoin::Scale => (3121, 13),
1981            Bitcoin::Generate => (3122, 13),
1982            Bitcoin::GejInfinity => (3123, 13),
1983            Bitcoin::GejNormalize => (6248, 14),
1984            Bitcoin::GejNegate => (6249, 14),
1985            Bitcoin::GeNegate => (6250, 14),
1986            Bitcoin::GejDouble => (6251, 14),
1987            Bitcoin::GejAdd => (6252, 14),
1988            Bitcoin::GejGeAddEx => (6253, 14),
1989            Bitcoin::GejGeAdd => (6254, 14),
1990            Bitcoin::GejRescale => (6255, 14),
1991            Bitcoin::GejIsInfinity => (100096, 18),
1992            Bitcoin::GejEquiv => (100097, 18),
1993            Bitcoin::GejGeEquiv => (100098, 18),
1994            Bitcoin::GejXEquiv => (100099, 18),
1995            Bitcoin::GejYIsOdd => (100100, 18),
1996            Bitcoin::GejIsOnCurve => (100101, 18),
1997            Bitcoin::GeIsOnCurve => (100102, 18),
1998            Bitcoin::ScalarNormalize => (100103, 18),
1999            Bitcoin::ScalarNegate => (100104, 18),
2000            Bitcoin::ScalarAdd => (100105, 18),
2001            Bitcoin::ScalarSquare => (100106, 18),
2002            Bitcoin::ScalarMultiply => (100107, 18),
2003            Bitcoin::ScalarMultiplyLambda => (100108, 18),
2004            Bitcoin::ScalarInvert => (100109, 18),
2005            Bitcoin::ScalarIsZero => (100110, 18),
2006            Bitcoin::FeNormalize => (200227, 19),
2007            Bitcoin::FeNegate => (200228, 19),
2008            Bitcoin::FeAdd => (200229, 19),
2009            Bitcoin::FeSquare => (200230, 19),
2010            Bitcoin::FeMultiply => (200231, 19),
2011            Bitcoin::FeMultiplyBeta => (200232, 19),
2012            Bitcoin::FeInvert => (200233, 19),
2013            Bitcoin::FeSquareRoot => (200234, 19),
2014            Bitcoin::FeIsZero => (200235, 19),
2015            Bitcoin::FeIsOdd => (200236, 19),
2016            Bitcoin::HashToCurve => (200238, 19),
2017            Bitcoin::Swu => (200239, 19),
2018            Bitcoin::CheckSigVerify => (98, 8),
2019            Bitcoin::Bip0340Verify => (396, 10),
2020            Bitcoin::ParseLock => (102, 8),
2021            Bitcoin::ParseSequence => (412, 10),
2022            Bitcoin::TapdataInit => (413, 10),
2023            Bitcoin::CheckLockHeight => (24, 5),
2024            Bitcoin::CheckLockTime => (100, 7),
2025            Bitcoin::CheckLockDistance => (101, 7),
2026            Bitcoin::CheckLockDuration => (816, 10),
2027            Bitcoin::TxLockHeight => (817, 10),
2028            Bitcoin::TxLockTime => (818, 10),
2029            Bitcoin::TxLockDistance => (819, 10),
2030            Bitcoin::TxLockDuration => (1640, 11),
2031            Bitcoin::TxIsFinal => (1641, 11),
2032            Bitcoin::ScriptCMR => (26, 5),
2033            Bitcoin::InternalKey => (108, 7),
2034            Bitcoin::CurrentIndex => (109, 7),
2035            Bitcoin::NumInputs => (880, 10),
2036            Bitcoin::NumOutputs => (881, 10),
2037            Bitcoin::LockTime => (882, 10),
2038            Bitcoin::OutputValue => (1768, 11),
2039            Bitcoin::OutputScriptHash => (1769, 11),
2040            Bitcoin::TotalOutputValue => (1770, 11),
2041            Bitcoin::CurrentPrevOutpoint => (1771, 11),
2042            Bitcoin::CurrentValue => (1772, 11),
2043            Bitcoin::CurrentSequence => (1774, 11),
2044            Bitcoin::CurrentAnnexHash => (1775, 11),
2045            Bitcoin::CurrentScriptSigHash => (28416, 15),
2046            Bitcoin::InputPrevOutpoint => (28417, 15),
2047            Bitcoin::InputValue => (28418, 15),
2048            Bitcoin::InputSequence => (28420, 15),
2049            Bitcoin::InputAnnexHash => (28421, 15),
2050            Bitcoin::InputScriptSigHash => (28422, 15),
2051            Bitcoin::TotalInputValue => (28423, 15),
2052            Bitcoin::TapleafVersion => (28424, 15),
2053            Bitcoin::Tappath => (28425, 15),
2054            Bitcoin::Version => (28426, 15),
2055        };
2056
2057        w.write_bits_be(n, len)
2058    }
2059
2060    fn decode<I: Iterator<Item = u8>>(bits: &mut BitIter<I>) -> Result<Self, decode::Error> {
2061        decode_bits!(bits, {
2062            0 => {
2063                0 => {
2064                    0 => {Bitcoin::Verify},
2065                    1 => {
2066                        0 => {
2067                            0 => {
2068                                0 => {Bitcoin::Low1},
2069                                1 => {
2070                                    0 => {
2071                                        0 => {},
2072                                        1 => {Bitcoin::Low8}
2073                                    },
2074                                    1 => {
2075                                        0 => {
2076                                            0 => {
2077                                                0 => {
2078                                                    0 => {Bitcoin::Low16},
2079                                                    1 => {Bitcoin::Low32}
2080                                                },
2081                                                1 => {
2082                                                    0 => {Bitcoin::Low64},
2083                                                    1 => {}
2084                                                }
2085                                            },
2086                                            1 => {}
2087                                        },
2088                                        1 => {}
2089                                    }
2090                                }
2091                            },
2092                            1 => {
2093                                0 => {Bitcoin::High1},
2094                                1 => {
2095                                    0 => {
2096                                        0 => {},
2097                                        1 => {Bitcoin::High8}
2098                                    },
2099                                    1 => {
2100                                        0 => {
2101                                            0 => {
2102                                                0 => {
2103                                                    0 => {Bitcoin::High16},
2104                                                    1 => {Bitcoin::High32}
2105                                                },
2106                                                1 => {
2107                                                    0 => {Bitcoin::High64},
2108                                                    1 => {}
2109                                                }
2110                                            },
2111                                            1 => {}
2112                                        },
2113                                        1 => {}
2114                                    }
2115                                }
2116                            }
2117                        },
2118                        1 => {
2119                            0 => {
2120                                0 => {
2121                                    0 => {
2122                                        0 => {
2123                                            0 => {Bitcoin::Complement1},
2124                                            1 => {
2125                                                0 => {
2126                                                    0 => {},
2127                                                    1 => {Bitcoin::Complement8}
2128                                                },
2129                                                1 => {
2130                                                    0 => {
2131                                                        0 => {
2132                                                            0 => {
2133                                                                0 => {Bitcoin::Complement16},
2134                                                                1 => {Bitcoin::Complement32}
2135                                                            },
2136                                                            1 => {
2137                                                                0 => {Bitcoin::Complement64},
2138                                                                1 => {}
2139                                                            }
2140                                                        },
2141                                                        1 => {}
2142                                                    },
2143                                                    1 => {}
2144                                                }
2145                                            }
2146                                        },
2147                                        1 => {
2148                                            0 => {Bitcoin::And1},
2149                                            1 => {
2150                                                0 => {
2151                                                    0 => {},
2152                                                    1 => {Bitcoin::And8}
2153                                                },
2154                                                1 => {
2155                                                    0 => {
2156                                                        0 => {
2157                                                            0 => {
2158                                                                0 => {Bitcoin::And16},
2159                                                                1 => {Bitcoin::And32}
2160                                                            },
2161                                                            1 => {
2162                                                                0 => {Bitcoin::And64},
2163                                                                1 => {}
2164                                                            }
2165                                                        },
2166                                                        1 => {}
2167                                                    },
2168                                                    1 => {}
2169                                                }
2170                                            }
2171                                        }
2172                                    },
2173                                    1 => {
2174                                        0 => {
2175                                            0 => {Bitcoin::Or1},
2176                                            1 => {
2177                                                0 => {
2178                                                    0 => {},
2179                                                    1 => {Bitcoin::Or8}
2180                                                },
2181                                                1 => {
2182                                                    0 => {
2183                                                        0 => {
2184                                                            0 => {
2185                                                                0 => {Bitcoin::Or16},
2186                                                                1 => {Bitcoin::Or32}
2187                                                            },
2188                                                            1 => {
2189                                                                0 => {Bitcoin::Or64},
2190                                                                1 => {}
2191                                                            }
2192                                                        },
2193                                                        1 => {}
2194                                                    },
2195                                                    1 => {}
2196                                                }
2197                                            }
2198                                        },
2199                                        1 => {
2200                                            0 => {Bitcoin::Xor1},
2201                                            1 => {
2202                                                0 => {
2203                                                    0 => {},
2204                                                    1 => {Bitcoin::Xor8}
2205                                                },
2206                                                1 => {
2207                                                    0 => {
2208                                                        0 => {
2209                                                            0 => {
2210                                                                0 => {Bitcoin::Xor16},
2211                                                                1 => {Bitcoin::Xor32}
2212                                                            },
2213                                                            1 => {
2214                                                                0 => {Bitcoin::Xor64},
2215                                                                1 => {}
2216                                                            }
2217                                                        },
2218                                                        1 => {}
2219                                                    },
2220                                                    1 => {}
2221                                                }
2222                                            }
2223                                        }
2224                                    }
2225                                },
2226                                1 => {
2227                                    0 => {
2228                                        0 => {
2229                                            0 => {
2230                                                0 => {Bitcoin::Maj1},
2231                                                1 => {
2232                                                    0 => {
2233                                                        0 => {},
2234                                                        1 => {Bitcoin::Maj8}
2235                                                    },
2236                                                    1 => {
2237                                                        0 => {
2238                                                            0 => {
2239                                                                0 => {
2240                                                                    0 => {Bitcoin::Maj16},
2241                                                                    1 => {Bitcoin::Maj32}
2242                                                                },
2243                                                                1 => {
2244                                                                    0 => {Bitcoin::Maj64},
2245                                                                    1 => {}
2246                                                                }
2247                                                            },
2248                                                            1 => {}
2249                                                        },
2250                                                        1 => {}
2251                                                    }
2252                                                }
2253                                            },
2254                                            1 => {
2255                                                0 => {Bitcoin::XorXor1},
2256                                                1 => {
2257                                                    0 => {
2258                                                        0 => {},
2259                                                        1 => {Bitcoin::XorXor8}
2260                                                    },
2261                                                    1 => {
2262                                                        0 => {
2263                                                            0 => {
2264                                                                0 => {
2265                                                                    0 => {Bitcoin::XorXor16},
2266                                                                    1 => {Bitcoin::XorXor32}
2267                                                                },
2268                                                                1 => {
2269                                                                    0 => {Bitcoin::XorXor64},
2270                                                                    1 => {}
2271                                                                }
2272                                                            },
2273                                                            1 => {}
2274                                                        },
2275                                                        1 => {}
2276                                                    }
2277                                                }
2278                                            }
2279                                        },
2280                                        1 => {
2281                                            0 => {
2282                                                0 => {Bitcoin::Ch1},
2283                                                1 => {
2284                                                    0 => {
2285                                                        0 => {},
2286                                                        1 => {Bitcoin::Ch8}
2287                                                    },
2288                                                    1 => {
2289                                                        0 => {
2290                                                            0 => {
2291                                                                0 => {
2292                                                                    0 => {Bitcoin::Ch16},
2293                                                                    1 => {Bitcoin::Ch32}
2294                                                                },
2295                                                                1 => {
2296                                                                    0 => {Bitcoin::Ch64},
2297                                                                    1 => {}
2298                                                                }
2299                                                            },
2300                                                            1 => {}
2301                                                        },
2302                                                        1 => {}
2303                                                    }
2304                                                }
2305                                            },
2306                                            1 => {
2307                                                0 => {Bitcoin::Some1},
2308                                                1 => {
2309                                                    0 => {
2310                                                        0 => {},
2311                                                        1 => {Bitcoin::Some8}
2312                                                    },
2313                                                    1 => {
2314                                                        0 => {
2315                                                            0 => {
2316                                                                0 => {
2317                                                                    0 => {Bitcoin::Some16},
2318                                                                    1 => {Bitcoin::Some32}
2319                                                                },
2320                                                                1 => {
2321                                                                    0 => {Bitcoin::Some64},
2322                                                                    1 => {}
2323                                                                }
2324                                                            },
2325                                                            1 => {}
2326                                                        },
2327                                                        1 => {}
2328                                                    }
2329                                                }
2330                                            }
2331                                        }
2332                                    },
2333                                    1 => {
2334                                        0 => {
2335                                            0 => {
2336                                                0 => {},
2337                                                1 => {
2338                                                    0 => {
2339                                                        0 => {},
2340                                                        1 => {Bitcoin::All8}
2341                                                    },
2342                                                    1 => {
2343                                                        0 => {
2344                                                            0 => {
2345                                                                0 => {
2346                                                                    0 => {Bitcoin::All16},
2347                                                                    1 => {Bitcoin::All32}
2348                                                                },
2349                                                                1 => {
2350                                                                    0 => {Bitcoin::All64},
2351                                                                    1 => {}
2352                                                                }
2353                                                            },
2354                                                            1 => {}
2355                                                        },
2356                                                        1 => {}
2357                                                    }
2358                                                }
2359                                            },
2360                                            1 => {
2361                                                0 => {Bitcoin::Eq1},
2362                                                1 => {
2363                                                    0 => {
2364                                                        0 => {},
2365                                                        1 => {Bitcoin::Eq8}
2366                                                    },
2367                                                    1 => {
2368                                                        0 => {
2369                                                            0 => {
2370                                                                0 => {
2371                                                                    0 => {Bitcoin::Eq16},
2372                                                                    1 => {Bitcoin::Eq32}
2373                                                                },
2374                                                                1 => {
2375                                                                    0 => {Bitcoin::Eq64},
2376                                                                    1 => {}
2377                                                                }
2378                                                            },
2379                                                            1 => {
2380                                                                0 => {
2381                                                                    0 => {
2382                                                                        0 => {Bitcoin::Eq256},
2383                                                                        1 => {}
2384                                                                    },
2385                                                                    1 => {}
2386                                                                },
2387                                                                1 => {}
2388                                                            }
2389                                                        },
2390                                                        1 => {}
2391                                                    }
2392                                                }
2393                                            }
2394                                        },
2395                                        1 => {
2396                                            0 => {
2397                                                0 => {
2398                                                    0 => {},
2399                                                    1 => {
2400                                                        0 => {
2401                                                            0 => {},
2402                                                            1 => {Bitcoin::FullLeftShift8_1}
2403                                                        },
2404                                                        1 => {
2405                                                            0 => {
2406                                                                0 => {
2407                                                                    0 => {
2408                                                                        0 => {Bitcoin::FullLeftShift16_1},
2409                                                                        1 => {Bitcoin::FullLeftShift32_1}
2410                                                                    },
2411                                                                    1 => {
2412                                                                        0 => {Bitcoin::FullLeftShift64_1},
2413                                                                        1 => {}
2414                                                                    }
2415                                                                },
2416                                                                1 => {}
2417                                                            },
2418                                                            1 => {}
2419                                                        }
2420                                                    }
2421                                                },
2422                                                1 => {
2423                                                    0 => {
2424                                                        0 => {
2425                                                            0 => {},
2426                                                            1 => {
2427                                                                0 => {
2428                                                                    0 => {Bitcoin::FullLeftShift8_2},
2429                                                                    1 => {Bitcoin::FullLeftShift16_2}
2430                                                                },
2431                                                                1 => {
2432                                                                    0 => {
2433                                                                        0 => {
2434                                                                            0 => {
2435                                                                                0 => {Bitcoin::FullLeftShift32_2},
2436                                                                                1 => {Bitcoin::FullLeftShift64_2}
2437                                                                            },
2438                                                                            1 => {}
2439                                                                        },
2440                                                                        1 => {}
2441                                                                    },
2442                                                                    1 => {}
2443                                                                }
2444                                                            }
2445                                                        },
2446                                                        1 => {
2447                                                            0 => {Bitcoin::FullLeftShift8_4},
2448                                                            1 => {
2449                                                                0 => {
2450                                                                    0 => {Bitcoin::FullLeftShift16_4},
2451                                                                    1 => {Bitcoin::FullLeftShift32_4}
2452                                                                },
2453                                                                1 => {
2454                                                                    0 => {
2455                                                                        0 => {
2456                                                                            0 => {
2457                                                                                0 => {Bitcoin::FullLeftShift64_4},
2458                                                                                1 => {}
2459                                                                            },
2460                                                                            1 => {}
2461                                                                        },
2462                                                                        1 => {}
2463                                                                    },
2464                                                                    1 => {}
2465                                                                }
2466                                                            }
2467                                                        }
2468                                                    },
2469                                                    1 => {
2470                                                        0 => {
2471                                                            0 => {
2472                                                                0 => {
2473                                                                    0 => {
2474                                                                        0 => {Bitcoin::FullLeftShift16_8},
2475                                                                        1 => {
2476                                                                            0 => {
2477                                                                                0 => {Bitcoin::FullLeftShift32_8},
2478                                                                                1 => {Bitcoin::FullLeftShift64_8}
2479                                                                            },
2480                                                                            1 => {}
2481                                                                        }
2482                                                                    },
2483                                                                    1 => {
2484                                                                        0 => {Bitcoin::FullLeftShift32_16},
2485                                                                        1 => {
2486                                                                            0 => {
2487                                                                                0 => {Bitcoin::FullLeftShift64_16},
2488                                                                                1 => {}
2489                                                                            },
2490                                                                            1 => {}
2491                                                                        }
2492                                                                    }
2493                                                                },
2494                                                                1 => {
2495                                                                    0 => {
2496                                                                        0 => {Bitcoin::FullLeftShift64_32},
2497                                                                        1 => {}
2498                                                                    },
2499                                                                    1 => {}
2500                                                                }
2501                                                            },
2502                                                            1 => {}
2503                                                        },
2504                                                        1 => {}
2505                                                    }
2506                                                }
2507                                            },
2508                                            1 => {
2509                                                0 => {
2510                                                    0 => {},
2511                                                    1 => {
2512                                                        0 => {
2513                                                            0 => {},
2514                                                            1 => {Bitcoin::FullRightShift8_1}
2515                                                        },
2516                                                        1 => {
2517                                                            0 => {
2518                                                                0 => {
2519                                                                    0 => {
2520                                                                        0 => {Bitcoin::FullRightShift16_1},
2521                                                                        1 => {Bitcoin::FullRightShift32_1}
2522                                                                    },
2523                                                                    1 => {
2524                                                                        0 => {Bitcoin::FullRightShift64_1},
2525                                                                        1 => {}
2526                                                                    }
2527                                                                },
2528                                                                1 => {}
2529                                                            },
2530                                                            1 => {}
2531                                                        }
2532                                                    }
2533                                                },
2534                                                1 => {
2535                                                    0 => {
2536                                                        0 => {
2537                                                            0 => {},
2538                                                            1 => {
2539                                                                0 => {
2540                                                                    0 => {Bitcoin::FullRightShift8_2},
2541                                                                    1 => {Bitcoin::FullRightShift16_2}
2542                                                                },
2543                                                                1 => {
2544                                                                    0 => {
2545                                                                        0 => {
2546                                                                            0 => {
2547                                                                                0 => {Bitcoin::FullRightShift32_2},
2548                                                                                1 => {Bitcoin::FullRightShift64_2}
2549                                                                            },
2550                                                                            1 => {}
2551                                                                        },
2552                                                                        1 => {}
2553                                                                    },
2554                                                                    1 => {}
2555                                                                }
2556                                                            }
2557                                                        },
2558                                                        1 => {
2559                                                            0 => {Bitcoin::FullRightShift8_4},
2560                                                            1 => {
2561                                                                0 => {
2562                                                                    0 => {Bitcoin::FullRightShift16_4},
2563                                                                    1 => {Bitcoin::FullRightShift32_4}
2564                                                                },
2565                                                                1 => {
2566                                                                    0 => {
2567                                                                        0 => {
2568                                                                            0 => {
2569                                                                                0 => {Bitcoin::FullRightShift64_4},
2570                                                                                1 => {}
2571                                                                            },
2572                                                                            1 => {}
2573                                                                        },
2574                                                                        1 => {}
2575                                                                    },
2576                                                                    1 => {}
2577                                                                }
2578                                                            }
2579                                                        }
2580                                                    },
2581                                                    1 => {
2582                                                        0 => {
2583                                                            0 => {
2584                                                                0 => {
2585                                                                    0 => {
2586                                                                        0 => {Bitcoin::FullRightShift16_8},
2587                                                                        1 => {
2588                                                                            0 => {
2589                                                                                0 => {Bitcoin::FullRightShift32_8},
2590                                                                                1 => {Bitcoin::FullRightShift64_8}
2591                                                                            },
2592                                                                            1 => {}
2593                                                                        }
2594                                                                    },
2595                                                                    1 => {
2596                                                                        0 => {Bitcoin::FullRightShift32_16},
2597                                                                        1 => {
2598                                                                            0 => {
2599                                                                                0 => {Bitcoin::FullRightShift64_16},
2600                                                                                1 => {}
2601                                                                            },
2602                                                                            1 => {}
2603                                                                        }
2604                                                                    }
2605                                                                },
2606                                                                1 => {
2607                                                                    0 => {
2608                                                                        0 => {Bitcoin::FullRightShift64_32},
2609                                                                        1 => {}
2610                                                                    },
2611                                                                    1 => {}
2612                                                                }
2613                                                            },
2614                                                            1 => {}
2615                                                        },
2616                                                        1 => {}
2617                                                    }
2618                                                }
2619                                            }
2620                                        }
2621                                    }
2622                                }
2623                            },
2624                            1 => {
2625                                0 => {
2626                                    0 => {
2627                                        0 => {
2628                                            0 => {
2629                                                0 => {
2630                                                    0 => {
2631                                                        0 => {
2632                                                            0 => {
2633                                                                0 => {
2634                                                                    0 => {},
2635                                                                    1 => {
2636                                                                        0 => {
2637                                                                            0 => {},
2638                                                                            1 => {Bitcoin::Leftmost8_1}
2639                                                                        },
2640                                                                        1 => {
2641                                                                            0 => {
2642                                                                                0 => {
2643                                                                                    0 => {
2644                                                                                        0 => {Bitcoin::Leftmost16_1},
2645                                                                                        1 => {Bitcoin::Leftmost32_1}
2646                                                                                    },
2647                                                                                    1 => {
2648                                                                                        0 => {Bitcoin::Leftmost64_1},
2649                                                                                        1 => {}
2650                                                                                    }
2651                                                                                },
2652                                                                                1 => {}
2653                                                                            },
2654                                                                            1 => {}
2655                                                                        }
2656                                                                    }
2657                                                                },
2658                                                                1 => {
2659                                                                    0 => {
2660                                                                        0 => {
2661                                                                            0 => {},
2662                                                                            1 => {
2663                                                                                0 => {
2664                                                                                    0 => {Bitcoin::Leftmost8_2},
2665                                                                                    1 => {Bitcoin::Leftmost16_2}
2666                                                                                },
2667                                                                                1 => {
2668                                                                                    0 => {
2669                                                                                        0 => {
2670                                                                                            0 => {
2671                                                                                                0 => {Bitcoin::Leftmost32_2},
2672                                                                                                1 => {Bitcoin::Leftmost64_2}
2673                                                                                            },
2674                                                                                            1 => {}
2675                                                                                        },
2676                                                                                        1 => {}
2677                                                                                    },
2678                                                                                    1 => {}
2679                                                                                }
2680                                                                            }
2681                                                                        },
2682                                                                        1 => {
2683                                                                            0 => {Bitcoin::Leftmost8_4},
2684                                                                            1 => {
2685                                                                                0 => {
2686                                                                                    0 => {Bitcoin::Leftmost16_4},
2687                                                                                    1 => {Bitcoin::Leftmost32_4}
2688                                                                                },
2689                                                                                1 => {
2690                                                                                    0 => {
2691                                                                                        0 => {
2692                                                                                            0 => {
2693                                                                                                0 => {Bitcoin::Leftmost64_4},
2694                                                                                                1 => {}
2695                                                                                            },
2696                                                                                            1 => {}
2697                                                                                        },
2698                                                                                        1 => {}
2699                                                                                    },
2700                                                                                    1 => {}
2701                                                                                }
2702                                                                            }
2703                                                                        }
2704                                                                    },
2705                                                                    1 => {
2706                                                                        0 => {
2707                                                                            0 => {
2708                                                                                0 => {
2709                                                                                    0 => {
2710                                                                                        0 => {Bitcoin::Leftmost16_8},
2711                                                                                        1 => {
2712                                                                                            0 => {
2713                                                                                                0 => {Bitcoin::Leftmost32_8},
2714                                                                                                1 => {Bitcoin::Leftmost64_8}
2715                                                                                            },
2716                                                                                            1 => {}
2717                                                                                        }
2718                                                                                    },
2719                                                                                    1 => {
2720                                                                                        0 => {Bitcoin::Leftmost32_16},
2721                                                                                        1 => {
2722                                                                                            0 => {
2723                                                                                                0 => {Bitcoin::Leftmost64_16},
2724                                                                                                1 => {}
2725                                                                                            },
2726                                                                                            1 => {}
2727                                                                                        }
2728                                                                                    }
2729                                                                                },
2730                                                                                1 => {
2731                                                                                    0 => {
2732                                                                                        0 => {Bitcoin::Leftmost64_32},
2733                                                                                        1 => {}
2734                                                                                    },
2735                                                                                    1 => {}
2736                                                                                }
2737                                                                            },
2738                                                                            1 => {}
2739                                                                        },
2740                                                                        1 => {}
2741                                                                    }
2742                                                                }
2743                                                            },
2744                                                            1 => {
2745                                                                0 => {
2746                                                                    0 => {},
2747                                                                    1 => {
2748                                                                        0 => {
2749                                                                            0 => {},
2750                                                                            1 => {Bitcoin::Rightmost8_1}
2751                                                                        },
2752                                                                        1 => {
2753                                                                            0 => {
2754                                                                                0 => {
2755                                                                                    0 => {
2756                                                                                        0 => {Bitcoin::Rightmost16_1},
2757                                                                                        1 => {Bitcoin::Rightmost32_1}
2758                                                                                    },
2759                                                                                    1 => {
2760                                                                                        0 => {Bitcoin::Rightmost64_1},
2761                                                                                        1 => {}
2762                                                                                    }
2763                                                                                },
2764                                                                                1 => {}
2765                                                                            },
2766                                                                            1 => {}
2767                                                                        }
2768                                                                    }
2769                                                                },
2770                                                                1 => {
2771                                                                    0 => {
2772                                                                        0 => {
2773                                                                            0 => {},
2774                                                                            1 => {
2775                                                                                0 => {
2776                                                                                    0 => {Bitcoin::Rightmost8_2},
2777                                                                                    1 => {Bitcoin::Rightmost16_2}
2778                                                                                },
2779                                                                                1 => {
2780                                                                                    0 => {
2781                                                                                        0 => {
2782                                                                                            0 => {
2783                                                                                                0 => {Bitcoin::Rightmost32_2},
2784                                                                                                1 => {Bitcoin::Rightmost64_2}
2785                                                                                            },
2786                                                                                            1 => {}
2787                                                                                        },
2788                                                                                        1 => {}
2789                                                                                    },
2790                                                                                    1 => {}
2791                                                                                }
2792                                                                            }
2793                                                                        },
2794                                                                        1 => {
2795                                                                            0 => {Bitcoin::Rightmost8_4},
2796                                                                            1 => {
2797                                                                                0 => {
2798                                                                                    0 => {Bitcoin::Rightmost16_4},
2799                                                                                    1 => {Bitcoin::Rightmost32_4}
2800                                                                                },
2801                                                                                1 => {
2802                                                                                    0 => {
2803                                                                                        0 => {
2804                                                                                            0 => {
2805                                                                                                0 => {Bitcoin::Rightmost64_4},
2806                                                                                                1 => {}
2807                                                                                            },
2808                                                                                            1 => {}
2809                                                                                        },
2810                                                                                        1 => {}
2811                                                                                    },
2812                                                                                    1 => {}
2813                                                                                }
2814                                                                            }
2815                                                                        }
2816                                                                    },
2817                                                                    1 => {
2818                                                                        0 => {
2819                                                                            0 => {
2820                                                                                0 => {
2821                                                                                    0 => {
2822                                                                                        0 => {Bitcoin::Rightmost16_8},
2823                                                                                        1 => {
2824                                                                                            0 => {
2825                                                                                                0 => {Bitcoin::Rightmost32_8},
2826                                                                                                1 => {Bitcoin::Rightmost64_8}
2827                                                                                            },
2828                                                                                            1 => {}
2829                                                                                        }
2830                                                                                    },
2831                                                                                    1 => {
2832                                                                                        0 => {Bitcoin::Rightmost32_16},
2833                                                                                        1 => {
2834                                                                                            0 => {
2835                                                                                                0 => {Bitcoin::Rightmost64_16},
2836                                                                                                1 => {}
2837                                                                                            },
2838                                                                                            1 => {}
2839                                                                                        }
2840                                                                                    }
2841                                                                                },
2842                                                                                1 => {
2843                                                                                    0 => {
2844                                                                                        0 => {Bitcoin::Rightmost64_32},
2845                                                                                        1 => {}
2846                                                                                    },
2847                                                                                    1 => {}
2848                                                                                }
2849                                                                            },
2850                                                                            1 => {}
2851                                                                        },
2852                                                                        1 => {}
2853                                                                    }
2854                                                                }
2855                                                            }
2856                                                        },
2857                                                        1 => {
2858                                                            0 => {
2859                                                                0 => {
2860                                                                    0 => {},
2861                                                                    1 => {
2862                                                                        0 => {
2863                                                                            0 => {},
2864                                                                            1 => {Bitcoin::LeftPadLow1_8}
2865                                                                        },
2866                                                                        1 => {
2867                                                                            0 => {
2868                                                                                0 => {
2869                                                                                    0 => {
2870                                                                                        0 => {Bitcoin::LeftPadLow1_16},
2871                                                                                        1 => {Bitcoin::LeftPadLow1_32}
2872                                                                                    },
2873                                                                                    1 => {
2874                                                                                        0 => {Bitcoin::LeftPadLow1_64},
2875                                                                                        1 => {}
2876                                                                                    }
2877                                                                                },
2878                                                                                1 => {}
2879                                                                            },
2880                                                                            1 => {}
2881                                                                        }
2882                                                                    }
2883                                                                },
2884                                                                1 => {
2885                                                                    0 => {},
2886                                                                    1 => {
2887                                                                        0 => {
2888                                                                            0 => {
2889                                                                                0 => {
2890                                                                                    0 => {
2891                                                                                        0 => {Bitcoin::LeftPadLow8_16},
2892                                                                                        1 => {
2893                                                                                            0 => {
2894                                                                                                0 => {Bitcoin::LeftPadLow8_32},
2895                                                                                                1 => {Bitcoin::LeftPadLow8_64}
2896                                                                                            },
2897                                                                                            1 => {}
2898                                                                                        }
2899                                                                                    },
2900                                                                                    1 => {
2901                                                                                        0 => {Bitcoin::LeftPadLow16_32},
2902                                                                                        1 => {
2903                                                                                            0 => {
2904                                                                                                0 => {Bitcoin::LeftPadLow16_64},
2905                                                                                                1 => {}
2906                                                                                            },
2907                                                                                            1 => {}
2908                                                                                        }
2909                                                                                    }
2910                                                                                },
2911                                                                                1 => {
2912                                                                                    0 => {
2913                                                                                        0 => {Bitcoin::LeftPadLow32_64},
2914                                                                                        1 => {}
2915                                                                                    },
2916                                                                                    1 => {}
2917                                                                                }
2918                                                                            },
2919                                                                            1 => {}
2920                                                                        },
2921                                                                        1 => {}
2922                                                                    }
2923                                                                }
2924                                                            },
2925                                                            1 => {
2926                                                                0 => {
2927                                                                    0 => {},
2928                                                                    1 => {
2929                                                                        0 => {
2930                                                                            0 => {},
2931                                                                            1 => {Bitcoin::LeftPadHigh1_8}
2932                                                                        },
2933                                                                        1 => {
2934                                                                            0 => {
2935                                                                                0 => {
2936                                                                                    0 => {
2937                                                                                        0 => {Bitcoin::LeftPadHigh1_16},
2938                                                                                        1 => {Bitcoin::LeftPadHigh1_32}
2939                                                                                    },
2940                                                                                    1 => {
2941                                                                                        0 => {Bitcoin::LeftPadHigh1_64},
2942                                                                                        1 => {}
2943                                                                                    }
2944                                                                                },
2945                                                                                1 => {}
2946                                                                            },
2947                                                                            1 => {}
2948                                                                        }
2949                                                                    }
2950                                                                },
2951                                                                1 => {
2952                                                                    0 => {},
2953                                                                    1 => {
2954                                                                        0 => {
2955                                                                            0 => {
2956                                                                                0 => {
2957                                                                                    0 => {
2958                                                                                        0 => {Bitcoin::LeftPadHigh8_16},
2959                                                                                        1 => {
2960                                                                                            0 => {
2961                                                                                                0 => {Bitcoin::LeftPadHigh8_32},
2962                                                                                                1 => {Bitcoin::LeftPadHigh8_64}
2963                                                                                            },
2964                                                                                            1 => {}
2965                                                                                        }
2966                                                                                    },
2967                                                                                    1 => {
2968                                                                                        0 => {Bitcoin::LeftPadHigh16_32},
2969                                                                                        1 => {
2970                                                                                            0 => {
2971                                                                                                0 => {Bitcoin::LeftPadHigh16_64},
2972                                                                                                1 => {}
2973                                                                                            },
2974                                                                                            1 => {}
2975                                                                                        }
2976                                                                                    }
2977                                                                                },
2978                                                                                1 => {
2979                                                                                    0 => {
2980                                                                                        0 => {Bitcoin::LeftPadHigh32_64},
2981                                                                                        1 => {}
2982                                                                                    },
2983                                                                                    1 => {}
2984                                                                                }
2985                                                                            },
2986                                                                            1 => {}
2987                                                                        },
2988                                                                        1 => {}
2989                                                                    }
2990                                                                }
2991                                                            }
2992                                                        }
2993                                                    },
2994                                                    1 => {
2995                                                        0 => {
2996                                                            0 => {
2997                                                                0 => {
2998                                                                    0 => {},
2999                                                                    1 => {
3000                                                                        0 => {
3001                                                                            0 => {},
3002                                                                            1 => {Bitcoin::LeftExtend1_8}
3003                                                                        },
3004                                                                        1 => {
3005                                                                            0 => {
3006                                                                                0 => {
3007                                                                                    0 => {
3008                                                                                        0 => {Bitcoin::LeftExtend1_16},
3009                                                                                        1 => {Bitcoin::LeftExtend1_32}
3010                                                                                    },
3011                                                                                    1 => {
3012                                                                                        0 => {Bitcoin::LeftExtend1_64},
3013                                                                                        1 => {}
3014                                                                                    }
3015                                                                                },
3016                                                                                1 => {}
3017                                                                            },
3018                                                                            1 => {}
3019                                                                        }
3020                                                                    }
3021                                                                },
3022                                                                1 => {
3023                                                                    0 => {},
3024                                                                    1 => {
3025                                                                        0 => {
3026                                                                            0 => {
3027                                                                                0 => {
3028                                                                                    0 => {
3029                                                                                        0 => {Bitcoin::LeftExtend8_16},
3030                                                                                        1 => {
3031                                                                                            0 => {
3032                                                                                                0 => {Bitcoin::LeftExtend8_32},
3033                                                                                                1 => {Bitcoin::LeftExtend8_64}
3034                                                                                            },
3035                                                                                            1 => {}
3036                                                                                        }
3037                                                                                    },
3038                                                                                    1 => {
3039                                                                                        0 => {Bitcoin::LeftExtend16_32},
3040                                                                                        1 => {
3041                                                                                            0 => {
3042                                                                                                0 => {Bitcoin::LeftExtend16_64},
3043                                                                                                1 => {}
3044                                                                                            },
3045                                                                                            1 => {}
3046                                                                                        }
3047                                                                                    }
3048                                                                                },
3049                                                                                1 => {
3050                                                                                    0 => {
3051                                                                                        0 => {Bitcoin::LeftExtend32_64},
3052                                                                                        1 => {}
3053                                                                                    },
3054                                                                                    1 => {}
3055                                                                                }
3056                                                                            },
3057                                                                            1 => {}
3058                                                                        },
3059                                                                        1 => {}
3060                                                                    }
3061                                                                }
3062                                                            },
3063                                                            1 => {
3064                                                                0 => {
3065                                                                    0 => {},
3066                                                                    1 => {
3067                                                                        0 => {
3068                                                                            0 => {},
3069                                                                            1 => {Bitcoin::RightPadLow1_8}
3070                                                                        },
3071                                                                        1 => {
3072                                                                            0 => {
3073                                                                                0 => {
3074                                                                                    0 => {
3075                                                                                        0 => {Bitcoin::RightPadLow1_16},
3076                                                                                        1 => {Bitcoin::RightPadLow1_32}
3077                                                                                    },
3078                                                                                    1 => {
3079                                                                                        0 => {Bitcoin::RightPadLow1_64},
3080                                                                                        1 => {}
3081                                                                                    }
3082                                                                                },
3083                                                                                1 => {}
3084                                                                            },
3085                                                                            1 => {}
3086                                                                        }
3087                                                                    }
3088                                                                },
3089                                                                1 => {
3090                                                                    0 => {},
3091                                                                    1 => {
3092                                                                        0 => {
3093                                                                            0 => {
3094                                                                                0 => {
3095                                                                                    0 => {
3096                                                                                        0 => {Bitcoin::RightPadLow8_16},
3097                                                                                        1 => {
3098                                                                                            0 => {
3099                                                                                                0 => {Bitcoin::RightPadLow8_32},
3100                                                                                                1 => {Bitcoin::RightPadLow8_64}
3101                                                                                            },
3102                                                                                            1 => {}
3103                                                                                        }
3104                                                                                    },
3105                                                                                    1 => {
3106                                                                                        0 => {Bitcoin::RightPadLow16_32},
3107                                                                                        1 => {
3108                                                                                            0 => {
3109                                                                                                0 => {Bitcoin::RightPadLow16_64},
3110                                                                                                1 => {}
3111                                                                                            },
3112                                                                                            1 => {}
3113                                                                                        }
3114                                                                                    }
3115                                                                                },
3116                                                                                1 => {
3117                                                                                    0 => {
3118                                                                                        0 => {Bitcoin::RightPadLow32_64},
3119                                                                                        1 => {}
3120                                                                                    },
3121                                                                                    1 => {}
3122                                                                                }
3123                                                                            },
3124                                                                            1 => {}
3125                                                                        },
3126                                                                        1 => {}
3127                                                                    }
3128                                                                }
3129                                                            }
3130                                                        },
3131                                                        1 => {
3132                                                            0 => {
3133                                                                0 => {
3134                                                                    0 => {},
3135                                                                    1 => {
3136                                                                        0 => {
3137                                                                            0 => {},
3138                                                                            1 => {Bitcoin::RightPadHigh1_8}
3139                                                                        },
3140                                                                        1 => {
3141                                                                            0 => {
3142                                                                                0 => {
3143                                                                                    0 => {
3144                                                                                        0 => {Bitcoin::RightPadHigh1_16},
3145                                                                                        1 => {Bitcoin::RightPadHigh1_32}
3146                                                                                    },
3147                                                                                    1 => {
3148                                                                                        0 => {Bitcoin::RightPadHigh1_64},
3149                                                                                        1 => {}
3150                                                                                    }
3151                                                                                },
3152                                                                                1 => {}
3153                                                                            },
3154                                                                            1 => {}
3155                                                                        }
3156                                                                    }
3157                                                                },
3158                                                                1 => {
3159                                                                    0 => {},
3160                                                                    1 => {
3161                                                                        0 => {
3162                                                                            0 => {
3163                                                                                0 => {
3164                                                                                    0 => {
3165                                                                                        0 => {Bitcoin::RightPadHigh8_16},
3166                                                                                        1 => {
3167                                                                                            0 => {
3168                                                                                                0 => {Bitcoin::RightPadHigh8_32},
3169                                                                                                1 => {Bitcoin::RightPadHigh8_64}
3170                                                                                            },
3171                                                                                            1 => {}
3172                                                                                        }
3173                                                                                    },
3174                                                                                    1 => {
3175                                                                                        0 => {Bitcoin::RightPadHigh16_32},
3176                                                                                        1 => {
3177                                                                                            0 => {
3178                                                                                                0 => {Bitcoin::RightPadHigh16_64},
3179                                                                                                1 => {}
3180                                                                                            },
3181                                                                                            1 => {}
3182                                                                                        }
3183                                                                                    }
3184                                                                                },
3185                                                                                1 => {
3186                                                                                    0 => {
3187                                                                                        0 => {Bitcoin::RightPadHigh32_64},
3188                                                                                        1 => {}
3189                                                                                    },
3190                                                                                    1 => {}
3191                                                                                }
3192                                                                            },
3193                                                                            1 => {}
3194                                                                        },
3195                                                                        1 => {}
3196                                                                    }
3197                                                                }
3198                                                            },
3199                                                            1 => {
3200                                                                0 => {},
3201                                                                1 => {
3202                                                                    0 => {},
3203                                                                    1 => {
3204                                                                        0 => {
3205                                                                            0 => {
3206                                                                                0 => {
3207                                                                                    0 => {
3208                                                                                        0 => {Bitcoin::RightExtend8_16},
3209                                                                                        1 => {
3210                                                                                            0 => {
3211                                                                                                0 => {Bitcoin::RightExtend8_32},
3212                                                                                                1 => {Bitcoin::RightExtend8_64}
3213                                                                                            },
3214                                                                                            1 => {}
3215                                                                                        }
3216                                                                                    },
3217                                                                                    1 => {
3218                                                                                        0 => {Bitcoin::RightExtend16_32},
3219                                                                                        1 => {
3220                                                                                            0 => {
3221                                                                                                0 => {Bitcoin::RightExtend16_64},
3222                                                                                                1 => {}
3223                                                                                            },
3224                                                                                            1 => {}
3225                                                                                        }
3226                                                                                    }
3227                                                                                },
3228                                                                                1 => {
3229                                                                                    0 => {
3230                                                                                        0 => {Bitcoin::RightExtend32_64},
3231                                                                                        1 => {}
3232                                                                                    },
3233                                                                                    1 => {}
3234                                                                                }
3235                                                                            },
3236                                                                            1 => {}
3237                                                                        },
3238                                                                        1 => {}
3239                                                                    }
3240                                                                }
3241                                                            }
3242                                                        }
3243                                                    }
3244                                                },
3245                                                1 => {
3246                                                    0 => {
3247                                                        0 => {
3248                                                            0 => {
3249                                                                0 => {},
3250                                                                1 => {
3251                                                                    0 => {
3252                                                                        0 => {},
3253                                                                        1 => {Bitcoin::LeftShiftWith8}
3254                                                                    },
3255                                                                    1 => {
3256                                                                        0 => {
3257                                                                            0 => {
3258                                                                                0 => {
3259                                                                                    0 => {Bitcoin::LeftShiftWith16},
3260                                                                                    1 => {Bitcoin::LeftShiftWith32}
3261                                                                                },
3262                                                                                1 => {
3263                                                                                    0 => {Bitcoin::LeftShiftWith64},
3264                                                                                    1 => {}
3265                                                                                }
3266                                                                            },
3267                                                                            1 => {}
3268                                                                        },
3269                                                                        1 => {}
3270                                                                    }
3271                                                                }
3272                                                            },
3273                                                            1 => {
3274                                                                0 => {},
3275                                                                1 => {
3276                                                                    0 => {
3277                                                                        0 => {},
3278                                                                        1 => {Bitcoin::RightShiftWith8}
3279                                                                    },
3280                                                                    1 => {
3281                                                                        0 => {
3282                                                                            0 => {
3283                                                                                0 => {
3284                                                                                    0 => {Bitcoin::RightShiftWith16},
3285                                                                                    1 => {Bitcoin::RightShiftWith32}
3286                                                                                },
3287                                                                                1 => {
3288                                                                                    0 => {Bitcoin::RightShiftWith64},
3289                                                                                    1 => {}
3290                                                                                }
3291                                                                            },
3292                                                                            1 => {}
3293                                                                        },
3294                                                                        1 => {}
3295                                                                    }
3296                                                                }
3297                                                            }
3298                                                        },
3299                                                        1 => {
3300                                                            0 => {
3301                                                                0 => {},
3302                                                                1 => {
3303                                                                    0 => {
3304                                                                        0 => {},
3305                                                                        1 => {Bitcoin::LeftShift8}
3306                                                                    },
3307                                                                    1 => {
3308                                                                        0 => {
3309                                                                            0 => {
3310                                                                                0 => {
3311                                                                                    0 => {Bitcoin::LeftShift16},
3312                                                                                    1 => {Bitcoin::LeftShift32}
3313                                                                                },
3314                                                                                1 => {
3315                                                                                    0 => {Bitcoin::LeftShift64},
3316                                                                                    1 => {}
3317                                                                                }
3318                                                                            },
3319                                                                            1 => {}
3320                                                                        },
3321                                                                        1 => {}
3322                                                                    }
3323                                                                }
3324                                                            },
3325                                                            1 => {
3326                                                                0 => {},
3327                                                                1 => {
3328                                                                    0 => {
3329                                                                        0 => {},
3330                                                                        1 => {Bitcoin::RightShift8}
3331                                                                    },
3332                                                                    1 => {
3333                                                                        0 => {
3334                                                                            0 => {
3335                                                                                0 => {
3336                                                                                    0 => {Bitcoin::RightShift16},
3337                                                                                    1 => {Bitcoin::RightShift32}
3338                                                                                },
3339                                                                                1 => {
3340                                                                                    0 => {Bitcoin::RightShift64},
3341                                                                                    1 => {}
3342                                                                                }
3343                                                                            },
3344                                                                            1 => {}
3345                                                                        },
3346                                                                        1 => {}
3347                                                                    }
3348                                                                }
3349                                                            }
3350                                                        }
3351                                                    },
3352                                                    1 => {
3353                                                        0 => {
3354                                                            0 => {
3355                                                                0 => {},
3356                                                                1 => {
3357                                                                    0 => {
3358                                                                        0 => {},
3359                                                                        1 => {Bitcoin::LeftRotate8}
3360                                                                    },
3361                                                                    1 => {
3362                                                                        0 => {
3363                                                                            0 => {
3364                                                                                0 => {
3365                                                                                    0 => {Bitcoin::LeftRotate16},
3366                                                                                    1 => {Bitcoin::LeftRotate32}
3367                                                                                },
3368                                                                                1 => {
3369                                                                                    0 => {Bitcoin::LeftRotate64},
3370                                                                                    1 => {}
3371                                                                                }
3372                                                                            },
3373                                                                            1 => {}
3374                                                                        },
3375                                                                        1 => {}
3376                                                                    }
3377                                                                }
3378                                                            },
3379                                                            1 => {
3380                                                                0 => {},
3381                                                                1 => {
3382                                                                    0 => {
3383                                                                        0 => {},
3384                                                                        1 => {Bitcoin::RightRotate8}
3385                                                                    },
3386                                                                    1 => {
3387                                                                        0 => {
3388                                                                            0 => {
3389                                                                                0 => {
3390                                                                                    0 => {Bitcoin::RightRotate16},
3391                                                                                    1 => {Bitcoin::RightRotate32}
3392                                                                                },
3393                                                                                1 => {
3394                                                                                    0 => {Bitcoin::RightRotate64},
3395                                                                                    1 => {}
3396                                                                                }
3397                                                                            },
3398                                                                            1 => {}
3399                                                                        },
3400                                                                        1 => {}
3401                                                                    }
3402                                                                }
3403                                                            }
3404                                                        },
3405                                                        1 => {}
3406                                                    }
3407                                                }
3408                                            },
3409                                            1 => {}
3410                                        },
3411                                        1 => {}
3412                                    },
3413                                    1 => {}
3414                                },
3415                                1 => {}
3416                            }
3417                        }
3418                    }
3419                },
3420                1 => {
3421                    0 => {
3422                        0 => {
3423                            0 => {
3424                                0 => {},
3425                                1 => {
3426                                    0 => {
3427                                        0 => {},
3428                                        1 => {Bitcoin::One8}
3429                                    },
3430                                    1 => {
3431                                        0 => {
3432                                            0 => {
3433                                                0 => {
3434                                                    0 => {Bitcoin::One16},
3435                                                    1 => {Bitcoin::One32}
3436                                                },
3437                                                1 => {
3438                                                    0 => {Bitcoin::One64},
3439                                                    1 => {}
3440                                                }
3441                                            },
3442                                            1 => {}
3443                                        },
3444                                        1 => {}
3445                                    }
3446                                }
3447                            },
3448                            1 => {
3449                                0 => {
3450                                    0 => {
3451                                        0 => {},
3452                                        1 => {
3453                                            0 => {
3454                                                0 => {},
3455                                                1 => {Bitcoin::FullAdd8}
3456                                            },
3457                                            1 => {
3458                                                0 => {
3459                                                    0 => {
3460                                                        0 => {
3461                                                            0 => {Bitcoin::FullAdd16},
3462                                                            1 => {Bitcoin::FullAdd32}
3463                                                        },
3464                                                        1 => {
3465                                                            0 => {Bitcoin::FullAdd64},
3466                                                            1 => {}
3467                                                        }
3468                                                    },
3469                                                    1 => {}
3470                                                },
3471                                                1 => {}
3472                                            }
3473                                        }
3474                                    },
3475                                    1 => {
3476                                        0 => {},
3477                                        1 => {
3478                                            0 => {
3479                                                0 => {},
3480                                                1 => {Bitcoin::Add8}
3481                                            },
3482                                            1 => {
3483                                                0 => {
3484                                                    0 => {
3485                                                        0 => {
3486                                                            0 => {Bitcoin::Add16},
3487                                                            1 => {Bitcoin::Add32}
3488                                                        },
3489                                                        1 => {
3490                                                            0 => {Bitcoin::Add64},
3491                                                            1 => {}
3492                                                        }
3493                                                    },
3494                                                    1 => {}
3495                                                },
3496                                                1 => {}
3497                                            }
3498                                        }
3499                                    }
3500                                },
3501                                1 => {
3502                                    0 => {
3503                                        0 => {
3504                                            0 => {
3505                                                0 => {
3506                                                    0 => {},
3507                                                    1 => {
3508                                                        0 => {
3509                                                            0 => {},
3510                                                            1 => {Bitcoin::FullIncrement8}
3511                                                        },
3512                                                        1 => {
3513                                                            0 => {
3514                                                                0 => {
3515                                                                    0 => {
3516                                                                        0 => {Bitcoin::FullIncrement16},
3517                                                                        1 => {Bitcoin::FullIncrement32}
3518                                                                    },
3519                                                                    1 => {
3520                                                                        0 => {Bitcoin::FullIncrement64},
3521                                                                        1 => {}
3522                                                                    }
3523                                                                },
3524                                                                1 => {}
3525                                                            },
3526                                                            1 => {}
3527                                                        }
3528                                                    }
3529                                                },
3530                                                1 => {
3531                                                    0 => {},
3532                                                    1 => {
3533                                                        0 => {
3534                                                            0 => {},
3535                                                            1 => {Bitcoin::Increment8}
3536                                                        },
3537                                                        1 => {
3538                                                            0 => {
3539                                                                0 => {
3540                                                                    0 => {
3541                                                                        0 => {Bitcoin::Increment16},
3542                                                                        1 => {Bitcoin::Increment32}
3543                                                                    },
3544                                                                    1 => {
3545                                                                        0 => {Bitcoin::Increment64},
3546                                                                        1 => {}
3547                                                                    }
3548                                                                },
3549                                                                1 => {}
3550                                                            },
3551                                                            1 => {}
3552                                                        }
3553                                                    }
3554                                                }
3555                                            },
3556                                            1 => {
3557                                                0 => {},
3558                                                1 => {
3559                                                    0 => {},
3560                                                    1 => {
3561                                                        0 => {
3562                                                            0 => {},
3563                                                            1 => {Bitcoin::FullSubtract8}
3564                                                        },
3565                                                        1 => {
3566                                                            0 => {
3567                                                                0 => {
3568                                                                    0 => {
3569                                                                        0 => {Bitcoin::FullSubtract16},
3570                                                                        1 => {Bitcoin::FullSubtract32}
3571                                                                    },
3572                                                                    1 => {
3573                                                                        0 => {Bitcoin::FullSubtract64},
3574                                                                        1 => {}
3575                                                                    }
3576                                                                },
3577                                                                1 => {}
3578                                                            },
3579                                                            1 => {}
3580                                                        }
3581                                                    }
3582                                                }
3583                                            }
3584                                        },
3585                                        1 => {
3586                                            0 => {
3587                                                0 => {
3588                                                    0 => {
3589                                                        0 => {},
3590                                                        1 => {
3591                                                            0 => {
3592                                                                0 => {},
3593                                                                1 => {Bitcoin::Subtract8}
3594                                                            },
3595                                                            1 => {
3596                                                                0 => {
3597                                                                    0 => {
3598                                                                        0 => {
3599                                                                            0 => {Bitcoin::Subtract16},
3600                                                                            1 => {Bitcoin::Subtract32}
3601                                                                        },
3602                                                                        1 => {
3603                                                                            0 => {Bitcoin::Subtract64},
3604                                                                            1 => {}
3605                                                                        }
3606                                                                    },
3607                                                                    1 => {}
3608                                                                },
3609                                                                1 => {}
3610                                                            }
3611                                                        }
3612                                                    },
3613                                                    1 => {
3614                                                        0 => {},
3615                                                        1 => {
3616                                                            0 => {
3617                                                                0 => {},
3618                                                                1 => {Bitcoin::Negate8}
3619                                                            },
3620                                                            1 => {
3621                                                                0 => {
3622                                                                    0 => {
3623                                                                        0 => {
3624                                                                            0 => {Bitcoin::Negate16},
3625                                                                            1 => {Bitcoin::Negate32}
3626                                                                        },
3627                                                                        1 => {
3628                                                                            0 => {Bitcoin::Negate64},
3629                                                                            1 => {}
3630                                                                        }
3631                                                                    },
3632                                                                    1 => {}
3633                                                                },
3634                                                                1 => {}
3635                                                            }
3636                                                        }
3637                                                    }
3638                                                },
3639                                                1 => {
3640                                                    0 => {
3641                                                        0 => {},
3642                                                        1 => {
3643                                                            0 => {
3644                                                                0 => {},
3645                                                                1 => {Bitcoin::FullDecrement8}
3646                                                            },
3647                                                            1 => {
3648                                                                0 => {
3649                                                                    0 => {
3650                                                                        0 => {
3651                                                                            0 => {Bitcoin::FullDecrement16},
3652                                                                            1 => {Bitcoin::FullDecrement32}
3653                                                                        },
3654                                                                        1 => {
3655                                                                            0 => {Bitcoin::FullDecrement64},
3656                                                                            1 => {}
3657                                                                        }
3658                                                                    },
3659                                                                    1 => {}
3660                                                                },
3661                                                                1 => {}
3662                                                            }
3663                                                        }
3664                                                    },
3665                                                    1 => {
3666                                                        0 => {},
3667                                                        1 => {
3668                                                            0 => {
3669                                                                0 => {},
3670                                                                1 => {Bitcoin::Decrement8}
3671                                                            },
3672                                                            1 => {
3673                                                                0 => {
3674                                                                    0 => {
3675                                                                        0 => {
3676                                                                            0 => {Bitcoin::Decrement16},
3677                                                                            1 => {Bitcoin::Decrement32}
3678                                                                        },
3679                                                                        1 => {
3680                                                                            0 => {Bitcoin::Decrement64},
3681                                                                            1 => {}
3682                                                                        }
3683                                                                    },
3684                                                                    1 => {}
3685                                                                },
3686                                                                1 => {}
3687                                                            }
3688                                                        }
3689                                                    }
3690                                                }
3691                                            },
3692                                            1 => {
3693                                                0 => {
3694                                                    0 => {
3695                                                        0 => {},
3696                                                        1 => {
3697                                                            0 => {
3698                                                                0 => {},
3699                                                                1 => {Bitcoin::FullMultiply8}
3700                                                            },
3701                                                            1 => {
3702                                                                0 => {
3703                                                                    0 => {
3704                                                                        0 => {
3705                                                                            0 => {Bitcoin::FullMultiply16},
3706                                                                            1 => {Bitcoin::FullMultiply32}
3707                                                                        },
3708                                                                        1 => {
3709                                                                            0 => {Bitcoin::FullMultiply64},
3710                                                                            1 => {}
3711                                                                        }
3712                                                                    },
3713                                                                    1 => {}
3714                                                                },
3715                                                                1 => {}
3716                                                            }
3717                                                        }
3718                                                    },
3719                                                    1 => {
3720                                                        0 => {},
3721                                                        1 => {
3722                                                            0 => {
3723                                                                0 => {},
3724                                                                1 => {Bitcoin::Multiply8}
3725                                                            },
3726                                                            1 => {
3727                                                                0 => {
3728                                                                    0 => {
3729                                                                        0 => {
3730                                                                            0 => {Bitcoin::Multiply16},
3731                                                                            1 => {Bitcoin::Multiply32}
3732                                                                        },
3733                                                                        1 => {
3734                                                                            0 => {Bitcoin::Multiply64},
3735                                                                            1 => {}
3736                                                                        }
3737                                                                    },
3738                                                                    1 => {}
3739                                                                },
3740                                                                1 => {}
3741                                                            }
3742                                                        }
3743                                                    }
3744                                                },
3745                                                1 => {
3746                                                    0 => {
3747                                                        0 => {},
3748                                                        1 => {
3749                                                            0 => {
3750                                                                0 => {},
3751                                                                1 => {Bitcoin::IsZero8}
3752                                                            },
3753                                                            1 => {
3754                                                                0 => {
3755                                                                    0 => {
3756                                                                        0 => {
3757                                                                            0 => {Bitcoin::IsZero16},
3758                                                                            1 => {Bitcoin::IsZero32}
3759                                                                        },
3760                                                                        1 => {
3761                                                                            0 => {Bitcoin::IsZero64},
3762                                                                            1 => {}
3763                                                                        }
3764                                                                    },
3765                                                                    1 => {}
3766                                                                },
3767                                                                1 => {}
3768                                                            }
3769                                                        }
3770                                                    },
3771                                                    1 => {
3772                                                        0 => {},
3773                                                        1 => {
3774                                                            0 => {
3775                                                                0 => {},
3776                                                                1 => {Bitcoin::IsOne8}
3777                                                            },
3778                                                            1 => {
3779                                                                0 => {
3780                                                                    0 => {
3781                                                                        0 => {
3782                                                                            0 => {Bitcoin::IsOne16},
3783                                                                            1 => {Bitcoin::IsOne32}
3784                                                                        },
3785                                                                        1 => {
3786                                                                            0 => {Bitcoin::IsOne64},
3787                                                                            1 => {}
3788                                                                        }
3789                                                                    },
3790                                                                    1 => {}
3791                                                                },
3792                                                                1 => {}
3793                                                            }
3794                                                        }
3795                                                    }
3796                                                }
3797                                            }
3798                                        }
3799                                    },
3800                                    1 => {
3801                                        0 => {
3802                                            0 => {
3803                                                0 => {
3804                                                    0 => {
3805                                                        0 => {
3806                                                            0 => {
3807                                                                0 => {
3808                                                                    0 => {
3809                                                                        0 => {},
3810                                                                        1 => {
3811                                                                            0 => {
3812                                                                                0 => {},
3813                                                                                1 => {Bitcoin::Le8}
3814                                                                            },
3815                                                                            1 => {
3816                                                                                0 => {
3817                                                                                    0 => {
3818                                                                                        0 => {
3819                                                                                            0 => {Bitcoin::Le16},
3820                                                                                            1 => {Bitcoin::Le32}
3821                                                                                        },
3822                                                                                        1 => {
3823                                                                                            0 => {Bitcoin::Le64},
3824                                                                                            1 => {}
3825                                                                                        }
3826                                                                                    },
3827                                                                                    1 => {}
3828                                                                                },
3829                                                                                1 => {}
3830                                                                            }
3831                                                                        }
3832                                                                    },
3833                                                                    1 => {
3834                                                                        0 => {},
3835                                                                        1 => {
3836                                                                            0 => {
3837                                                                                0 => {},
3838                                                                                1 => {Bitcoin::Lt8}
3839                                                                            },
3840                                                                            1 => {
3841                                                                                0 => {
3842                                                                                    0 => {
3843                                                                                        0 => {
3844                                                                                            0 => {Bitcoin::Lt16},
3845                                                                                            1 => {Bitcoin::Lt32}
3846                                                                                        },
3847                                                                                        1 => {
3848                                                                                            0 => {Bitcoin::Lt64},
3849                                                                                            1 => {}
3850                                                                                        }
3851                                                                                    },
3852                                                                                    1 => {}
3853                                                                                },
3854                                                                                1 => {}
3855                                                                            }
3856                                                                        }
3857                                                                    }
3858                                                                },
3859                                                                1 => {
3860                                                                    0 => {
3861                                                                        0 => {},
3862                                                                        1 => {
3863                                                                            0 => {
3864                                                                                0 => {},
3865                                                                                1 => {Bitcoin::Min8}
3866                                                                            },
3867                                                                            1 => {
3868                                                                                0 => {
3869                                                                                    0 => {
3870                                                                                        0 => {
3871                                                                                            0 => {Bitcoin::Min16},
3872                                                                                            1 => {Bitcoin::Min32}
3873                                                                                        },
3874                                                                                        1 => {
3875                                                                                            0 => {Bitcoin::Min64},
3876                                                                                            1 => {}
3877                                                                                        }
3878                                                                                    },
3879                                                                                    1 => {}
3880                                                                                },
3881                                                                                1 => {}
3882                                                                            }
3883                                                                        }
3884                                                                    },
3885                                                                    1 => {
3886                                                                        0 => {},
3887                                                                        1 => {
3888                                                                            0 => {
3889                                                                                0 => {},
3890                                                                                1 => {Bitcoin::Max8}
3891                                                                            },
3892                                                                            1 => {
3893                                                                                0 => {
3894                                                                                    0 => {
3895                                                                                        0 => {
3896                                                                                            0 => {Bitcoin::Max16},
3897                                                                                            1 => {Bitcoin::Max32}
3898                                                                                        },
3899                                                                                        1 => {
3900                                                                                            0 => {Bitcoin::Max64},
3901                                                                                            1 => {}
3902                                                                                        }
3903                                                                                    },
3904                                                                                    1 => {}
3905                                                                                },
3906                                                                                1 => {}
3907                                                                            }
3908                                                                        }
3909                                                                    }
3910                                                                }
3911                                                            },
3912                                                            1 => {
3913                                                                0 => {
3914                                                                    0 => {
3915                                                                        0 => {},
3916                                                                        1 => {
3917                                                                            0 => {
3918                                                                                0 => {},
3919                                                                                1 => {Bitcoin::Median8}
3920                                                                            },
3921                                                                            1 => {
3922                                                                                0 => {
3923                                                                                    0 => {
3924                                                                                        0 => {
3925                                                                                            0 => {Bitcoin::Median16},
3926                                                                                            1 => {Bitcoin::Median32}
3927                                                                                        },
3928                                                                                        1 => {
3929                                                                                            0 => {Bitcoin::Median64},
3930                                                                                            1 => {}
3931                                                                                        }
3932                                                                                    },
3933                                                                                    1 => {}
3934                                                                                },
3935                                                                                1 => {}
3936                                                                            }
3937                                                                        }
3938                                                                    },
3939                                                                    1 => {
3940                                                                        0 => {},
3941                                                                        1 => {
3942                                                                            0 => {},
3943                                                                            1 => {
3944                                                                                0 => {
3945                                                                                    0 => {
3946                                                                                        0 => {},
3947                                                                                        1 => {
3948                                                                                            0 => {Bitcoin::DivMod128_64},
3949                                                                                            1 => {}
3950                                                                                        }
3951                                                                                    },
3952                                                                                    1 => {}
3953                                                                                },
3954                                                                                1 => {}
3955                                                                            }
3956                                                                        }
3957                                                                    }
3958                                                                },
3959                                                                1 => {
3960                                                                    0 => {
3961                                                                        0 => {},
3962                                                                        1 => {
3963                                                                            0 => {
3964                                                                                0 => {},
3965                                                                                1 => {Bitcoin::DivMod8}
3966                                                                            },
3967                                                                            1 => {
3968                                                                                0 => {
3969                                                                                    0 => {
3970                                                                                        0 => {
3971                                                                                            0 => {Bitcoin::DivMod16},
3972                                                                                            1 => {Bitcoin::DivMod32}
3973                                                                                        },
3974                                                                                        1 => {
3975                                                                                            0 => {Bitcoin::DivMod64},
3976                                                                                            1 => {}
3977                                                                                        }
3978                                                                                    },
3979                                                                                    1 => {}
3980                                                                                },
3981                                                                                1 => {}
3982                                                                            }
3983                                                                        }
3984                                                                    },
3985                                                                    1 => {
3986                                                                        0 => {},
3987                                                                        1 => {
3988                                                                            0 => {
3989                                                                                0 => {},
3990                                                                                1 => {Bitcoin::Divide8}
3991                                                                            },
3992                                                                            1 => {
3993                                                                                0 => {
3994                                                                                    0 => {
3995                                                                                        0 => {
3996                                                                                            0 => {Bitcoin::Divide16},
3997                                                                                            1 => {Bitcoin::Divide32}
3998                                                                                        },
3999                                                                                        1 => {
4000                                                                                            0 => {Bitcoin::Divide64},
4001                                                                                            1 => {}
4002                                                                                        }
4003                                                                                    },
4004                                                                                    1 => {}
4005                                                                                },
4006                                                                                1 => {}
4007                                                                            }
4008                                                                        }
4009                                                                    }
4010                                                                }
4011                                                            }
4012                                                        },
4013                                                        1 => {
4014                                                            0 => {
4015                                                                0 => {
4016                                                                    0 => {
4017                                                                        0 => {},
4018                                                                        1 => {
4019                                                                            0 => {
4020                                                                                0 => {},
4021                                                                                1 => {Bitcoin::Modulo8}
4022                                                                            },
4023                                                                            1 => {
4024                                                                                0 => {
4025                                                                                    0 => {
4026                                                                                        0 => {
4027                                                                                            0 => {Bitcoin::Modulo16},
4028                                                                                            1 => {Bitcoin::Modulo32}
4029                                                                                        },
4030                                                                                        1 => {
4031                                                                                            0 => {Bitcoin::Modulo64},
4032                                                                                            1 => {}
4033                                                                                        }
4034                                                                                    },
4035                                                                                    1 => {}
4036                                                                                },
4037                                                                                1 => {}
4038                                                                            }
4039                                                                        }
4040                                                                    },
4041                                                                    1 => {
4042                                                                        0 => {},
4043                                                                        1 => {
4044                                                                            0 => {
4045                                                                                0 => {},
4046                                                                                1 => {Bitcoin::Divides8}
4047                                                                            },
4048                                                                            1 => {
4049                                                                                0 => {
4050                                                                                    0 => {
4051                                                                                        0 => {
4052                                                                                            0 => {Bitcoin::Divides16},
4053                                                                                            1 => {Bitcoin::Divides32}
4054                                                                                        },
4055                                                                                        1 => {
4056                                                                                            0 => {Bitcoin::Divides64},
4057                                                                                            1 => {}
4058                                                                                        }
4059                                                                                    },
4060                                                                                    1 => {}
4061                                                                                },
4062                                                                                1 => {}
4063                                                                            }
4064                                                                        }
4065                                                                    }
4066                                                                },
4067                                                                1 => {}
4068                                                            },
4069                                                            1 => {}
4070                                                        }
4071                                                    },
4072                                                    1 => {}
4073                                                },
4074                                                1 => {}
4075                                            },
4076                                            1 => {}
4077                                        },
4078                                        1 => {}
4079                                    }
4080                                }
4081                            }
4082                        },
4083                        1 => {
4084                            0 => {
4085                                0 => {Bitcoin::Sha256Block},
4086                                1 => {
4087                                    0 => {
4088                                        0 => {Bitcoin::Sha256Iv},
4089                                        1 => {
4090                                            0 => {Bitcoin::Sha256Ctx8Add1},
4091                                            1 => {
4092                                                0 => {
4093                                                    0 => {Bitcoin::Sha256Ctx8Add2},
4094                                                    1 => {Bitcoin::Sha256Ctx8Add4}
4095                                                },
4096                                                1 => {
4097                                                    0 => {
4098                                                        0 => {
4099                                                            0 => {
4100                                                                0 => {Bitcoin::Sha256Ctx8Add8},
4101                                                                1 => {Bitcoin::Sha256Ctx8Add16}
4102                                                            },
4103                                                            1 => {
4104                                                                0 => {Bitcoin::Sha256Ctx8Add32},
4105                                                                1 => {Bitcoin::Sha256Ctx8Add64}
4106                                                            }
4107                                                        },
4108                                                        1 => {
4109                                                            0 => {
4110                                                                0 => {
4111                                                                    0 => {Bitcoin::Sha256Ctx8Add128},
4112                                                                    1 => {Bitcoin::Sha256Ctx8Add256}
4113                                                                },
4114                                                                1 => {
4115                                                                    0 => {Bitcoin::Sha256Ctx8Add512},
4116                                                                    1 => {}
4117                                                                }
4118                                                            },
4119                                                            1 => {}
4120                                                        }
4121                                                    },
4122                                                    1 => {}
4123                                                }
4124                                            }
4125                                        }
4126                                    },
4127                                    1 => {
4128                                        0 => {
4129                                            0 => {
4130                                                0 => {
4131                                                    0 => {Bitcoin::Sha256Ctx8AddBuffer511},
4132                                                    1 => {Bitcoin::Sha256Ctx8Finalize}
4133                                                },
4134                                                1 => {
4135                                                    0 => {Bitcoin::Sha256Ctx8Init},
4136                                                    1 => {}
4137                                                }
4138                                            },
4139                                            1 => {}
4140                                        },
4141                                        1 => {}
4142                                    }
4143                                }
4144                            },
4145                            1 => {}
4146                        }
4147                    },
4148                    1 => {
4149                        0 => {
4150                            0 => {
4151                                0 => {
4152                                    0 => {
4153                                        0 => {
4154                                            0 => {Bitcoin::PointVerify1},
4155                                            1 => {}
4156                                        },
4157                                        1 => {
4158                                            0 => {
4159                                                0 => {Bitcoin::Decompress},
4160                                                1 => {
4161                                                    0 => {Bitcoin::LinearVerify1},
4162                                                    1 => {}
4163                                                }
4164                                            },
4165                                            1 => {
4166                                                0 => {
4167                                                    0 => {
4168                                                        0 => {
4169                                                            0 => {
4170                                                                0 => {Bitcoin::LinearCombination1},
4171                                                                1 => {}
4172                                                            },
4173                                                            1 => {Bitcoin::Scale}
4174                                                        },
4175                                                        1 => {
4176                                                            0 => {Bitcoin::Generate},
4177                                                            1 => {Bitcoin::GejInfinity}
4178                                                        }
4179                                                    },
4180                                                    1 => {
4181                                                        0 => {
4182                                                            0 => {
4183                                                                0 => {Bitcoin::GejNormalize},
4184                                                                1 => {Bitcoin::GejNegate}
4185                                                            },
4186                                                            1 => {
4187                                                                0 => {Bitcoin::GeNegate},
4188                                                                1 => {Bitcoin::GejDouble}
4189                                                            }
4190                                                        },
4191                                                        1 => {
4192                                                            0 => {
4193                                                                0 => {Bitcoin::GejAdd},
4194                                                                1 => {Bitcoin::GejGeAddEx}
4195                                                            },
4196                                                            1 => {
4197                                                                0 => {Bitcoin::GejGeAdd},
4198                                                                1 => {Bitcoin::GejRescale}
4199                                                            }
4200                                                        }
4201                                                    }
4202                                                },
4203                                                1 => {
4204                                                    0 => {
4205                                                        0 => {
4206                                                            0 => {
4207                                                                0 => {
4208                                                                    0 => {
4209                                                                        0 => {
4210                                                                            0 => {
4211                                                                                0 => {Bitcoin::GejIsInfinity},
4212                                                                                1 => {Bitcoin::GejEquiv}
4213                                                                            },
4214                                                                            1 => {
4215                                                                                0 => {Bitcoin::GejGeEquiv},
4216                                                                                1 => {Bitcoin::GejXEquiv}
4217                                                                            }
4218                                                                        },
4219                                                                        1 => {
4220                                                                            0 => {
4221                                                                                0 => {Bitcoin::GejYIsOdd},
4222                                                                                1 => {Bitcoin::GejIsOnCurve}
4223                                                                            },
4224                                                                            1 => {
4225                                                                                0 => {Bitcoin::GeIsOnCurve},
4226                                                                                1 => {Bitcoin::ScalarNormalize}
4227                                                                            }
4228                                                                        }
4229                                                                    },
4230                                                                    1 => {
4231                                                                        0 => {
4232                                                                            0 => {
4233                                                                                0 => {Bitcoin::ScalarNegate},
4234                                                                                1 => {Bitcoin::ScalarAdd}
4235                                                                            },
4236                                                                            1 => {
4237                                                                                0 => {Bitcoin::ScalarSquare},
4238                                                                                1 => {Bitcoin::ScalarMultiply}
4239                                                                            }
4240                                                                        },
4241                                                                        1 => {
4242                                                                            0 => {
4243                                                                                0 => {Bitcoin::ScalarMultiplyLambda},
4244                                                                                1 => {Bitcoin::ScalarInvert}
4245                                                                            },
4246                                                                            1 => {
4247                                                                                0 => {Bitcoin::ScalarIsZero},
4248                                                                                1 => {}
4249                                                                            }
4250                                                                        }
4251                                                                    }
4252                                                                },
4253                                                                1 => {
4254                                                                    0 => {
4255                                                                        0 => {
4256                                                                            0 => {
4257                                                                                0 => {},
4258                                                                                1 => {
4259                                                                                    0 => {},
4260                                                                                    1 => {Bitcoin::FeNormalize}
4261                                                                                }
4262                                                                            },
4263                                                                            1 => {
4264                                                                                0 => {
4265                                                                                    0 => {Bitcoin::FeNegate},
4266                                                                                    1 => {Bitcoin::FeAdd}
4267                                                                                },
4268                                                                                1 => {
4269                                                                                    0 => {Bitcoin::FeSquare},
4270                                                                                    1 => {Bitcoin::FeMultiply}
4271                                                                                }
4272                                                                            }
4273                                                                        },
4274                                                                        1 => {
4275                                                                            0 => {
4276                                                                                0 => {
4277                                                                                    0 => {Bitcoin::FeMultiplyBeta},
4278                                                                                    1 => {Bitcoin::FeInvert}
4279                                                                                },
4280                                                                                1 => {
4281                                                                                    0 => {Bitcoin::FeSquareRoot},
4282                                                                                    1 => {Bitcoin::FeIsZero}
4283                                                                                }
4284                                                                            },
4285                                                                            1 => {
4286                                                                                0 => {
4287                                                                                    0 => {Bitcoin::FeIsOdd},
4288                                                                                    1 => {}
4289                                                                                },
4290                                                                                1 => {
4291                                                                                    0 => {Bitcoin::HashToCurve},
4292                                                                                    1 => {Bitcoin::Swu}
4293                                                                                }
4294                                                                            }
4295                                                                        }
4296                                                                    },
4297                                                                    1 => {}
4298                                                                }
4299                                                            },
4300                                                            1 => {}
4301                                                        },
4302                                                        1 => {}
4303                                                    },
4304                                                    1 => {}
4305                                                }
4306                                            }
4307                                        }
4308                                    },
4309                                    1 => {
4310                                        0 => {Bitcoin::CheckSigVerify},
4311                                        1 => {
4312                                            0 => {
4313                                                0 => {Bitcoin::Bip0340Verify},
4314                                                1 => {}
4315                                            },
4316                                            1 => {}
4317                                        }
4318                                    }
4319                                },
4320                                1 => {
4321                                    0 => {},
4322                                    1 => {
4323                                        0 => {Bitcoin::ParseLock},
4324                                        1 => {
4325                                            0 => {
4326                                                0 => {Bitcoin::ParseSequence},
4327                                                1 => {Bitcoin::TapdataInit}
4328                                            },
4329                                            1 => {}
4330                                        }
4331                                    }
4332                                }
4333                            },
4334                            1 => {}
4335                        },
4336                        1 => {}
4337                    }
4338                }
4339            },
4340            1 => {
4341                0 => {},
4342                1 => {
4343                    0 => {
4344                        0 => {
4345                            0 => {Bitcoin::CheckLockHeight},
4346                            1 => {
4347                                0 => {
4348                                    0 => {Bitcoin::CheckLockTime},
4349                                    1 => {Bitcoin::CheckLockDistance}
4350                                },
4351                                1 => {
4352                                    0 => {
4353                                        0 => {
4354                                            0 => {
4355                                                0 => {Bitcoin::CheckLockDuration},
4356                                                1 => {Bitcoin::TxLockHeight}
4357                                            },
4358                                            1 => {
4359                                                0 => {Bitcoin::TxLockTime},
4360                                                1 => {Bitcoin::TxLockDistance}
4361                                            }
4362                                        },
4363                                        1 => {
4364                                            0 => {
4365                                                0 => {
4366                                                    0 => {Bitcoin::TxLockDuration},
4367                                                    1 => {Bitcoin::TxIsFinal}
4368                                                },
4369                                                1 => {}
4370                                            },
4371                                            1 => {}
4372                                        }
4373                                    },
4374                                    1 => {}
4375                                }
4376                            }
4377                        },
4378                        1 => {
4379                            0 => {Bitcoin::ScriptCMR},
4380                            1 => {
4381                                0 => {
4382                                    0 => {Bitcoin::InternalKey},
4383                                    1 => {Bitcoin::CurrentIndex}
4384                                },
4385                                1 => {
4386                                    0 => {
4387                                        0 => {
4388                                            0 => {
4389                                                0 => {Bitcoin::NumInputs},
4390                                                1 => {Bitcoin::NumOutputs}
4391                                            },
4392                                            1 => {
4393                                                0 => {Bitcoin::LockTime},
4394                                                1 => {}
4395                                            }
4396                                        },
4397                                        1 => {
4398                                            0 => {
4399                                                0 => {
4400                                                    0 => {Bitcoin::OutputValue},
4401                                                    1 => {Bitcoin::OutputScriptHash}
4402                                                },
4403                                                1 => {
4404                                                    0 => {Bitcoin::TotalOutputValue},
4405                                                    1 => {Bitcoin::CurrentPrevOutpoint}
4406                                                }
4407                                            },
4408                                            1 => {
4409                                                0 => {
4410                                                    0 => {Bitcoin::CurrentValue},
4411                                                    1 => {}
4412                                                },
4413                                                1 => {
4414                                                    0 => {Bitcoin::CurrentSequence},
4415                                                    1 => {Bitcoin::CurrentAnnexHash}
4416                                                }
4417                                            }
4418                                        }
4419                                    },
4420                                    1 => {
4421                                        0 => {
4422                                            0 => {
4423                                                0 => {
4424                                                    0 => {
4425                                                        0 => {
4426                                                            0 => {
4427                                                                0 => {
4428                                                                    0 => {Bitcoin::CurrentScriptSigHash},
4429                                                                    1 => {Bitcoin::InputPrevOutpoint}
4430                                                                },
4431                                                                1 => {
4432                                                                    0 => {Bitcoin::InputValue},
4433                                                                    1 => {}
4434                                                                }
4435                                                            },
4436                                                            1 => {
4437                                                                0 => {
4438                                                                    0 => {Bitcoin::InputSequence},
4439                                                                    1 => {Bitcoin::InputAnnexHash}
4440                                                                },
4441                                                                1 => {
4442                                                                    0 => {Bitcoin::InputScriptSigHash},
4443                                                                    1 => {Bitcoin::TotalInputValue}
4444                                                                }
4445                                                            }
4446                                                        },
4447                                                        1 => {
4448                                                            0 => {
4449                                                                0 => {
4450                                                                    0 => {Bitcoin::TapleafVersion},
4451                                                                    1 => {Bitcoin::Tappath}
4452                                                                },
4453                                                                1 => {
4454                                                                    0 => {Bitcoin::Version},
4455                                                                    1 => {}
4456                                                                }
4457                                                            },
4458                                                            1 => {}
4459                                                        }
4460                                                    },
4461                                                    1 => {}
4462                                                },
4463                                                1 => {}
4464                                            },
4465                                            1 => {}
4466                                        },
4467                                        1 => {}
4468                                    }
4469                                }
4470                            }
4471                        }
4472                    },
4473                    1 => {}
4474                }
4475            }
4476        })
4477    }
4478
4479    fn c_jet_ptr(&self) -> &dyn Fn(&mut CFrameItem, CFrameItem, &Self::CJetEnvironment) -> bool {
4480        unimplemented!("Bitcoin jets have not yet been implemented.")
4481    }
4482
4483    fn cost(&self) -> Cost {
4484        unimplemented!("Unspecified cost of Bitcoin jets")
4485    }
4486}
4487
4488impl fmt::Display for Bitcoin {
4489    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
4490        match self {
4491            Bitcoin::Add16 => f.write_str("add_16"),
4492            Bitcoin::Add32 => f.write_str("add_32"),
4493            Bitcoin::Add64 => f.write_str("add_64"),
4494            Bitcoin::Add8 => f.write_str("add_8"),
4495            Bitcoin::All16 => f.write_str("all_16"),
4496            Bitcoin::All32 => f.write_str("all_32"),
4497            Bitcoin::All64 => f.write_str("all_64"),
4498            Bitcoin::All8 => f.write_str("all_8"),
4499            Bitcoin::And1 => f.write_str("and_1"),
4500            Bitcoin::And16 => f.write_str("and_16"),
4501            Bitcoin::And32 => f.write_str("and_32"),
4502            Bitcoin::And64 => f.write_str("and_64"),
4503            Bitcoin::And8 => f.write_str("and_8"),
4504            Bitcoin::Bip0340Verify => f.write_str("bip_0340_verify"),
4505            Bitcoin::Ch1 => f.write_str("ch_1"),
4506            Bitcoin::Ch16 => f.write_str("ch_16"),
4507            Bitcoin::Ch32 => f.write_str("ch_32"),
4508            Bitcoin::Ch64 => f.write_str("ch_64"),
4509            Bitcoin::Ch8 => f.write_str("ch_8"),
4510            Bitcoin::CheckLockDistance => f.write_str("check_lock_distance"),
4511            Bitcoin::CheckLockDuration => f.write_str("check_lock_duration"),
4512            Bitcoin::CheckLockHeight => f.write_str("check_lock_height"),
4513            Bitcoin::CheckLockTime => f.write_str("check_lock_time"),
4514            Bitcoin::CheckSigVerify => f.write_str("check_sig_verify"),
4515            Bitcoin::Complement1 => f.write_str("complement_1"),
4516            Bitcoin::Complement16 => f.write_str("complement_16"),
4517            Bitcoin::Complement32 => f.write_str("complement_32"),
4518            Bitcoin::Complement64 => f.write_str("complement_64"),
4519            Bitcoin::Complement8 => f.write_str("complement_8"),
4520            Bitcoin::CurrentAnnexHash => f.write_str("current_annex_hash"),
4521            Bitcoin::CurrentIndex => f.write_str("current_index"),
4522            Bitcoin::CurrentPrevOutpoint => f.write_str("current_prev_outpoint"),
4523            Bitcoin::CurrentScriptSigHash => f.write_str("current_script_sig_hash"),
4524            Bitcoin::CurrentSequence => f.write_str("current_sequence"),
4525            Bitcoin::CurrentValue => f.write_str("current_value"),
4526            Bitcoin::Decompress => f.write_str("decompress"),
4527            Bitcoin::Decrement16 => f.write_str("decrement_16"),
4528            Bitcoin::Decrement32 => f.write_str("decrement_32"),
4529            Bitcoin::Decrement64 => f.write_str("decrement_64"),
4530            Bitcoin::Decrement8 => f.write_str("decrement_8"),
4531            Bitcoin::DivMod128_64 => f.write_str("div_mod_128_64"),
4532            Bitcoin::DivMod16 => f.write_str("div_mod_16"),
4533            Bitcoin::DivMod32 => f.write_str("div_mod_32"),
4534            Bitcoin::DivMod64 => f.write_str("div_mod_64"),
4535            Bitcoin::DivMod8 => f.write_str("div_mod_8"),
4536            Bitcoin::Divide16 => f.write_str("divide_16"),
4537            Bitcoin::Divide32 => f.write_str("divide_32"),
4538            Bitcoin::Divide64 => f.write_str("divide_64"),
4539            Bitcoin::Divide8 => f.write_str("divide_8"),
4540            Bitcoin::Divides16 => f.write_str("divides_16"),
4541            Bitcoin::Divides32 => f.write_str("divides_32"),
4542            Bitcoin::Divides64 => f.write_str("divides_64"),
4543            Bitcoin::Divides8 => f.write_str("divides_8"),
4544            Bitcoin::Eq1 => f.write_str("eq_1"),
4545            Bitcoin::Eq16 => f.write_str("eq_16"),
4546            Bitcoin::Eq256 => f.write_str("eq_256"),
4547            Bitcoin::Eq32 => f.write_str("eq_32"),
4548            Bitcoin::Eq64 => f.write_str("eq_64"),
4549            Bitcoin::Eq8 => f.write_str("eq_8"),
4550            Bitcoin::FeAdd => f.write_str("fe_add"),
4551            Bitcoin::FeInvert => f.write_str("fe_invert"),
4552            Bitcoin::FeIsOdd => f.write_str("fe_is_odd"),
4553            Bitcoin::FeIsZero => f.write_str("fe_is_zero"),
4554            Bitcoin::FeMultiply => f.write_str("fe_multiply"),
4555            Bitcoin::FeMultiplyBeta => f.write_str("fe_multiply_beta"),
4556            Bitcoin::FeNegate => f.write_str("fe_negate"),
4557            Bitcoin::FeNormalize => f.write_str("fe_normalize"),
4558            Bitcoin::FeSquare => f.write_str("fe_square"),
4559            Bitcoin::FeSquareRoot => f.write_str("fe_square_root"),
4560            Bitcoin::FullAdd16 => f.write_str("full_add_16"),
4561            Bitcoin::FullAdd32 => f.write_str("full_add_32"),
4562            Bitcoin::FullAdd64 => f.write_str("full_add_64"),
4563            Bitcoin::FullAdd8 => f.write_str("full_add_8"),
4564            Bitcoin::FullDecrement16 => f.write_str("full_decrement_16"),
4565            Bitcoin::FullDecrement32 => f.write_str("full_decrement_32"),
4566            Bitcoin::FullDecrement64 => f.write_str("full_decrement_64"),
4567            Bitcoin::FullDecrement8 => f.write_str("full_decrement_8"),
4568            Bitcoin::FullIncrement16 => f.write_str("full_increment_16"),
4569            Bitcoin::FullIncrement32 => f.write_str("full_increment_32"),
4570            Bitcoin::FullIncrement64 => f.write_str("full_increment_64"),
4571            Bitcoin::FullIncrement8 => f.write_str("full_increment_8"),
4572            Bitcoin::FullLeftShift16_1 => f.write_str("full_left_shift_16_1"),
4573            Bitcoin::FullLeftShift16_2 => f.write_str("full_left_shift_16_2"),
4574            Bitcoin::FullLeftShift16_4 => f.write_str("full_left_shift_16_4"),
4575            Bitcoin::FullLeftShift16_8 => f.write_str("full_left_shift_16_8"),
4576            Bitcoin::FullLeftShift32_1 => f.write_str("full_left_shift_32_1"),
4577            Bitcoin::FullLeftShift32_16 => f.write_str("full_left_shift_32_16"),
4578            Bitcoin::FullLeftShift32_2 => f.write_str("full_left_shift_32_2"),
4579            Bitcoin::FullLeftShift32_4 => f.write_str("full_left_shift_32_4"),
4580            Bitcoin::FullLeftShift32_8 => f.write_str("full_left_shift_32_8"),
4581            Bitcoin::FullLeftShift64_1 => f.write_str("full_left_shift_64_1"),
4582            Bitcoin::FullLeftShift64_16 => f.write_str("full_left_shift_64_16"),
4583            Bitcoin::FullLeftShift64_2 => f.write_str("full_left_shift_64_2"),
4584            Bitcoin::FullLeftShift64_32 => f.write_str("full_left_shift_64_32"),
4585            Bitcoin::FullLeftShift64_4 => f.write_str("full_left_shift_64_4"),
4586            Bitcoin::FullLeftShift64_8 => f.write_str("full_left_shift_64_8"),
4587            Bitcoin::FullLeftShift8_1 => f.write_str("full_left_shift_8_1"),
4588            Bitcoin::FullLeftShift8_2 => f.write_str("full_left_shift_8_2"),
4589            Bitcoin::FullLeftShift8_4 => f.write_str("full_left_shift_8_4"),
4590            Bitcoin::FullMultiply16 => f.write_str("full_multiply_16"),
4591            Bitcoin::FullMultiply32 => f.write_str("full_multiply_32"),
4592            Bitcoin::FullMultiply64 => f.write_str("full_multiply_64"),
4593            Bitcoin::FullMultiply8 => f.write_str("full_multiply_8"),
4594            Bitcoin::FullRightShift16_1 => f.write_str("full_right_shift_16_1"),
4595            Bitcoin::FullRightShift16_2 => f.write_str("full_right_shift_16_2"),
4596            Bitcoin::FullRightShift16_4 => f.write_str("full_right_shift_16_4"),
4597            Bitcoin::FullRightShift16_8 => f.write_str("full_right_shift_16_8"),
4598            Bitcoin::FullRightShift32_1 => f.write_str("full_right_shift_32_1"),
4599            Bitcoin::FullRightShift32_16 => f.write_str("full_right_shift_32_16"),
4600            Bitcoin::FullRightShift32_2 => f.write_str("full_right_shift_32_2"),
4601            Bitcoin::FullRightShift32_4 => f.write_str("full_right_shift_32_4"),
4602            Bitcoin::FullRightShift32_8 => f.write_str("full_right_shift_32_8"),
4603            Bitcoin::FullRightShift64_1 => f.write_str("full_right_shift_64_1"),
4604            Bitcoin::FullRightShift64_16 => f.write_str("full_right_shift_64_16"),
4605            Bitcoin::FullRightShift64_2 => f.write_str("full_right_shift_64_2"),
4606            Bitcoin::FullRightShift64_32 => f.write_str("full_right_shift_64_32"),
4607            Bitcoin::FullRightShift64_4 => f.write_str("full_right_shift_64_4"),
4608            Bitcoin::FullRightShift64_8 => f.write_str("full_right_shift_64_8"),
4609            Bitcoin::FullRightShift8_1 => f.write_str("full_right_shift_8_1"),
4610            Bitcoin::FullRightShift8_2 => f.write_str("full_right_shift_8_2"),
4611            Bitcoin::FullRightShift8_4 => f.write_str("full_right_shift_8_4"),
4612            Bitcoin::FullSubtract16 => f.write_str("full_subtract_16"),
4613            Bitcoin::FullSubtract32 => f.write_str("full_subtract_32"),
4614            Bitcoin::FullSubtract64 => f.write_str("full_subtract_64"),
4615            Bitcoin::FullSubtract8 => f.write_str("full_subtract_8"),
4616            Bitcoin::GeIsOnCurve => f.write_str("ge_is_on_curve"),
4617            Bitcoin::GeNegate => f.write_str("ge_negate"),
4618            Bitcoin::GejAdd => f.write_str("gej_add"),
4619            Bitcoin::GejDouble => f.write_str("gej_double"),
4620            Bitcoin::GejEquiv => f.write_str("gej_equiv"),
4621            Bitcoin::GejGeAdd => f.write_str("gej_ge_add"),
4622            Bitcoin::GejGeAddEx => f.write_str("gej_ge_add_ex"),
4623            Bitcoin::GejGeEquiv => f.write_str("gej_ge_equiv"),
4624            Bitcoin::GejInfinity => f.write_str("gej_infinity"),
4625            Bitcoin::GejIsInfinity => f.write_str("gej_is_infinity"),
4626            Bitcoin::GejIsOnCurve => f.write_str("gej_is_on_curve"),
4627            Bitcoin::GejNegate => f.write_str("gej_negate"),
4628            Bitcoin::GejNormalize => f.write_str("gej_normalize"),
4629            Bitcoin::GejRescale => f.write_str("gej_rescale"),
4630            Bitcoin::GejXEquiv => f.write_str("gej_x_equiv"),
4631            Bitcoin::GejYIsOdd => f.write_str("gej_y_is_odd"),
4632            Bitcoin::Generate => f.write_str("generate"),
4633            Bitcoin::HashToCurve => f.write_str("hash_to_curve"),
4634            Bitcoin::High1 => f.write_str("high_1"),
4635            Bitcoin::High16 => f.write_str("high_16"),
4636            Bitcoin::High32 => f.write_str("high_32"),
4637            Bitcoin::High64 => f.write_str("high_64"),
4638            Bitcoin::High8 => f.write_str("high_8"),
4639            Bitcoin::Increment16 => f.write_str("increment_16"),
4640            Bitcoin::Increment32 => f.write_str("increment_32"),
4641            Bitcoin::Increment64 => f.write_str("increment_64"),
4642            Bitcoin::Increment8 => f.write_str("increment_8"),
4643            Bitcoin::InputAnnexHash => f.write_str("input_annex_hash"),
4644            Bitcoin::InputPrevOutpoint => f.write_str("input_prev_outpoint"),
4645            Bitcoin::InputScriptSigHash => f.write_str("input_script_sig_hash"),
4646            Bitcoin::InputSequence => f.write_str("input_sequence"),
4647            Bitcoin::InputValue => f.write_str("input_value"),
4648            Bitcoin::InternalKey => f.write_str("internal_key"),
4649            Bitcoin::IsOne16 => f.write_str("is_one_16"),
4650            Bitcoin::IsOne32 => f.write_str("is_one_32"),
4651            Bitcoin::IsOne64 => f.write_str("is_one_64"),
4652            Bitcoin::IsOne8 => f.write_str("is_one_8"),
4653            Bitcoin::IsZero16 => f.write_str("is_zero_16"),
4654            Bitcoin::IsZero32 => f.write_str("is_zero_32"),
4655            Bitcoin::IsZero64 => f.write_str("is_zero_64"),
4656            Bitcoin::IsZero8 => f.write_str("is_zero_8"),
4657            Bitcoin::Le16 => f.write_str("le_16"),
4658            Bitcoin::Le32 => f.write_str("le_32"),
4659            Bitcoin::Le64 => f.write_str("le_64"),
4660            Bitcoin::Le8 => f.write_str("le_8"),
4661            Bitcoin::LeftExtend16_32 => f.write_str("left_extend_16_32"),
4662            Bitcoin::LeftExtend16_64 => f.write_str("left_extend_16_64"),
4663            Bitcoin::LeftExtend1_16 => f.write_str("left_extend_1_16"),
4664            Bitcoin::LeftExtend1_32 => f.write_str("left_extend_1_32"),
4665            Bitcoin::LeftExtend1_64 => f.write_str("left_extend_1_64"),
4666            Bitcoin::LeftExtend1_8 => f.write_str("left_extend_1_8"),
4667            Bitcoin::LeftExtend32_64 => f.write_str("left_extend_32_64"),
4668            Bitcoin::LeftExtend8_16 => f.write_str("left_extend_8_16"),
4669            Bitcoin::LeftExtend8_32 => f.write_str("left_extend_8_32"),
4670            Bitcoin::LeftExtend8_64 => f.write_str("left_extend_8_64"),
4671            Bitcoin::LeftPadHigh16_32 => f.write_str("left_pad_high_16_32"),
4672            Bitcoin::LeftPadHigh16_64 => f.write_str("left_pad_high_16_64"),
4673            Bitcoin::LeftPadHigh1_16 => f.write_str("left_pad_high_1_16"),
4674            Bitcoin::LeftPadHigh1_32 => f.write_str("left_pad_high_1_32"),
4675            Bitcoin::LeftPadHigh1_64 => f.write_str("left_pad_high_1_64"),
4676            Bitcoin::LeftPadHigh1_8 => f.write_str("left_pad_high_1_8"),
4677            Bitcoin::LeftPadHigh32_64 => f.write_str("left_pad_high_32_64"),
4678            Bitcoin::LeftPadHigh8_16 => f.write_str("left_pad_high_8_16"),
4679            Bitcoin::LeftPadHigh8_32 => f.write_str("left_pad_high_8_32"),
4680            Bitcoin::LeftPadHigh8_64 => f.write_str("left_pad_high_8_64"),
4681            Bitcoin::LeftPadLow16_32 => f.write_str("left_pad_low_16_32"),
4682            Bitcoin::LeftPadLow16_64 => f.write_str("left_pad_low_16_64"),
4683            Bitcoin::LeftPadLow1_16 => f.write_str("left_pad_low_1_16"),
4684            Bitcoin::LeftPadLow1_32 => f.write_str("left_pad_low_1_32"),
4685            Bitcoin::LeftPadLow1_64 => f.write_str("left_pad_low_1_64"),
4686            Bitcoin::LeftPadLow1_8 => f.write_str("left_pad_low_1_8"),
4687            Bitcoin::LeftPadLow32_64 => f.write_str("left_pad_low_32_64"),
4688            Bitcoin::LeftPadLow8_16 => f.write_str("left_pad_low_8_16"),
4689            Bitcoin::LeftPadLow8_32 => f.write_str("left_pad_low_8_32"),
4690            Bitcoin::LeftPadLow8_64 => f.write_str("left_pad_low_8_64"),
4691            Bitcoin::LeftRotate16 => f.write_str("left_rotate_16"),
4692            Bitcoin::LeftRotate32 => f.write_str("left_rotate_32"),
4693            Bitcoin::LeftRotate64 => f.write_str("left_rotate_64"),
4694            Bitcoin::LeftRotate8 => f.write_str("left_rotate_8"),
4695            Bitcoin::LeftShift16 => f.write_str("left_shift_16"),
4696            Bitcoin::LeftShift32 => f.write_str("left_shift_32"),
4697            Bitcoin::LeftShift64 => f.write_str("left_shift_64"),
4698            Bitcoin::LeftShift8 => f.write_str("left_shift_8"),
4699            Bitcoin::LeftShiftWith16 => f.write_str("left_shift_with_16"),
4700            Bitcoin::LeftShiftWith32 => f.write_str("left_shift_with_32"),
4701            Bitcoin::LeftShiftWith64 => f.write_str("left_shift_with_64"),
4702            Bitcoin::LeftShiftWith8 => f.write_str("left_shift_with_8"),
4703            Bitcoin::Leftmost16_1 => f.write_str("leftmost_16_1"),
4704            Bitcoin::Leftmost16_2 => f.write_str("leftmost_16_2"),
4705            Bitcoin::Leftmost16_4 => f.write_str("leftmost_16_4"),
4706            Bitcoin::Leftmost16_8 => f.write_str("leftmost_16_8"),
4707            Bitcoin::Leftmost32_1 => f.write_str("leftmost_32_1"),
4708            Bitcoin::Leftmost32_16 => f.write_str("leftmost_32_16"),
4709            Bitcoin::Leftmost32_2 => f.write_str("leftmost_32_2"),
4710            Bitcoin::Leftmost32_4 => f.write_str("leftmost_32_4"),
4711            Bitcoin::Leftmost32_8 => f.write_str("leftmost_32_8"),
4712            Bitcoin::Leftmost64_1 => f.write_str("leftmost_64_1"),
4713            Bitcoin::Leftmost64_16 => f.write_str("leftmost_64_16"),
4714            Bitcoin::Leftmost64_2 => f.write_str("leftmost_64_2"),
4715            Bitcoin::Leftmost64_32 => f.write_str("leftmost_64_32"),
4716            Bitcoin::Leftmost64_4 => f.write_str("leftmost_64_4"),
4717            Bitcoin::Leftmost64_8 => f.write_str("leftmost_64_8"),
4718            Bitcoin::Leftmost8_1 => f.write_str("leftmost_8_1"),
4719            Bitcoin::Leftmost8_2 => f.write_str("leftmost_8_2"),
4720            Bitcoin::Leftmost8_4 => f.write_str("leftmost_8_4"),
4721            Bitcoin::LinearCombination1 => f.write_str("linear_combination_1"),
4722            Bitcoin::LinearVerify1 => f.write_str("linear_verify_1"),
4723            Bitcoin::LockTime => f.write_str("lock_time"),
4724            Bitcoin::Low1 => f.write_str("low_1"),
4725            Bitcoin::Low16 => f.write_str("low_16"),
4726            Bitcoin::Low32 => f.write_str("low_32"),
4727            Bitcoin::Low64 => f.write_str("low_64"),
4728            Bitcoin::Low8 => f.write_str("low_8"),
4729            Bitcoin::Lt16 => f.write_str("lt_16"),
4730            Bitcoin::Lt32 => f.write_str("lt_32"),
4731            Bitcoin::Lt64 => f.write_str("lt_64"),
4732            Bitcoin::Lt8 => f.write_str("lt_8"),
4733            Bitcoin::Maj1 => f.write_str("maj_1"),
4734            Bitcoin::Maj16 => f.write_str("maj_16"),
4735            Bitcoin::Maj32 => f.write_str("maj_32"),
4736            Bitcoin::Maj64 => f.write_str("maj_64"),
4737            Bitcoin::Maj8 => f.write_str("maj_8"),
4738            Bitcoin::Max16 => f.write_str("max_16"),
4739            Bitcoin::Max32 => f.write_str("max_32"),
4740            Bitcoin::Max64 => f.write_str("max_64"),
4741            Bitcoin::Max8 => f.write_str("max_8"),
4742            Bitcoin::Median16 => f.write_str("median_16"),
4743            Bitcoin::Median32 => f.write_str("median_32"),
4744            Bitcoin::Median64 => f.write_str("median_64"),
4745            Bitcoin::Median8 => f.write_str("median_8"),
4746            Bitcoin::Min16 => f.write_str("min_16"),
4747            Bitcoin::Min32 => f.write_str("min_32"),
4748            Bitcoin::Min64 => f.write_str("min_64"),
4749            Bitcoin::Min8 => f.write_str("min_8"),
4750            Bitcoin::Modulo16 => f.write_str("modulo_16"),
4751            Bitcoin::Modulo32 => f.write_str("modulo_32"),
4752            Bitcoin::Modulo64 => f.write_str("modulo_64"),
4753            Bitcoin::Modulo8 => f.write_str("modulo_8"),
4754            Bitcoin::Multiply16 => f.write_str("multiply_16"),
4755            Bitcoin::Multiply32 => f.write_str("multiply_32"),
4756            Bitcoin::Multiply64 => f.write_str("multiply_64"),
4757            Bitcoin::Multiply8 => f.write_str("multiply_8"),
4758            Bitcoin::Negate16 => f.write_str("negate_16"),
4759            Bitcoin::Negate32 => f.write_str("negate_32"),
4760            Bitcoin::Negate64 => f.write_str("negate_64"),
4761            Bitcoin::Negate8 => f.write_str("negate_8"),
4762            Bitcoin::NumInputs => f.write_str("num_inputs"),
4763            Bitcoin::NumOutputs => f.write_str("num_outputs"),
4764            Bitcoin::One16 => f.write_str("one_16"),
4765            Bitcoin::One32 => f.write_str("one_32"),
4766            Bitcoin::One64 => f.write_str("one_64"),
4767            Bitcoin::One8 => f.write_str("one_8"),
4768            Bitcoin::Or1 => f.write_str("or_1"),
4769            Bitcoin::Or16 => f.write_str("or_16"),
4770            Bitcoin::Or32 => f.write_str("or_32"),
4771            Bitcoin::Or64 => f.write_str("or_64"),
4772            Bitcoin::Or8 => f.write_str("or_8"),
4773            Bitcoin::OutputScriptHash => f.write_str("output_script_hash"),
4774            Bitcoin::OutputValue => f.write_str("output_value"),
4775            Bitcoin::ParseLock => f.write_str("parse_lock"),
4776            Bitcoin::ParseSequence => f.write_str("parse_sequence"),
4777            Bitcoin::PointVerify1 => f.write_str("point_verify_1"),
4778            Bitcoin::RightExtend16_32 => f.write_str("right_extend_16_32"),
4779            Bitcoin::RightExtend16_64 => f.write_str("right_extend_16_64"),
4780            Bitcoin::RightExtend32_64 => f.write_str("right_extend_32_64"),
4781            Bitcoin::RightExtend8_16 => f.write_str("right_extend_8_16"),
4782            Bitcoin::RightExtend8_32 => f.write_str("right_extend_8_32"),
4783            Bitcoin::RightExtend8_64 => f.write_str("right_extend_8_64"),
4784            Bitcoin::RightPadHigh16_32 => f.write_str("right_pad_high_16_32"),
4785            Bitcoin::RightPadHigh16_64 => f.write_str("right_pad_high_16_64"),
4786            Bitcoin::RightPadHigh1_16 => f.write_str("right_pad_high_1_16"),
4787            Bitcoin::RightPadHigh1_32 => f.write_str("right_pad_high_1_32"),
4788            Bitcoin::RightPadHigh1_64 => f.write_str("right_pad_high_1_64"),
4789            Bitcoin::RightPadHigh1_8 => f.write_str("right_pad_high_1_8"),
4790            Bitcoin::RightPadHigh32_64 => f.write_str("right_pad_high_32_64"),
4791            Bitcoin::RightPadHigh8_16 => f.write_str("right_pad_high_8_16"),
4792            Bitcoin::RightPadHigh8_32 => f.write_str("right_pad_high_8_32"),
4793            Bitcoin::RightPadHigh8_64 => f.write_str("right_pad_high_8_64"),
4794            Bitcoin::RightPadLow16_32 => f.write_str("right_pad_low_16_32"),
4795            Bitcoin::RightPadLow16_64 => f.write_str("right_pad_low_16_64"),
4796            Bitcoin::RightPadLow1_16 => f.write_str("right_pad_low_1_16"),
4797            Bitcoin::RightPadLow1_32 => f.write_str("right_pad_low_1_32"),
4798            Bitcoin::RightPadLow1_64 => f.write_str("right_pad_low_1_64"),
4799            Bitcoin::RightPadLow1_8 => f.write_str("right_pad_low_1_8"),
4800            Bitcoin::RightPadLow32_64 => f.write_str("right_pad_low_32_64"),
4801            Bitcoin::RightPadLow8_16 => f.write_str("right_pad_low_8_16"),
4802            Bitcoin::RightPadLow8_32 => f.write_str("right_pad_low_8_32"),
4803            Bitcoin::RightPadLow8_64 => f.write_str("right_pad_low_8_64"),
4804            Bitcoin::RightRotate16 => f.write_str("right_rotate_16"),
4805            Bitcoin::RightRotate32 => f.write_str("right_rotate_32"),
4806            Bitcoin::RightRotate64 => f.write_str("right_rotate_64"),
4807            Bitcoin::RightRotate8 => f.write_str("right_rotate_8"),
4808            Bitcoin::RightShift16 => f.write_str("right_shift_16"),
4809            Bitcoin::RightShift32 => f.write_str("right_shift_32"),
4810            Bitcoin::RightShift64 => f.write_str("right_shift_64"),
4811            Bitcoin::RightShift8 => f.write_str("right_shift_8"),
4812            Bitcoin::RightShiftWith16 => f.write_str("right_shift_with_16"),
4813            Bitcoin::RightShiftWith32 => f.write_str("right_shift_with_32"),
4814            Bitcoin::RightShiftWith64 => f.write_str("right_shift_with_64"),
4815            Bitcoin::RightShiftWith8 => f.write_str("right_shift_with_8"),
4816            Bitcoin::Rightmost16_1 => f.write_str("rightmost_16_1"),
4817            Bitcoin::Rightmost16_2 => f.write_str("rightmost_16_2"),
4818            Bitcoin::Rightmost16_4 => f.write_str("rightmost_16_4"),
4819            Bitcoin::Rightmost16_8 => f.write_str("rightmost_16_8"),
4820            Bitcoin::Rightmost32_1 => f.write_str("rightmost_32_1"),
4821            Bitcoin::Rightmost32_16 => f.write_str("rightmost_32_16"),
4822            Bitcoin::Rightmost32_2 => f.write_str("rightmost_32_2"),
4823            Bitcoin::Rightmost32_4 => f.write_str("rightmost_32_4"),
4824            Bitcoin::Rightmost32_8 => f.write_str("rightmost_32_8"),
4825            Bitcoin::Rightmost64_1 => f.write_str("rightmost_64_1"),
4826            Bitcoin::Rightmost64_16 => f.write_str("rightmost_64_16"),
4827            Bitcoin::Rightmost64_2 => f.write_str("rightmost_64_2"),
4828            Bitcoin::Rightmost64_32 => f.write_str("rightmost_64_32"),
4829            Bitcoin::Rightmost64_4 => f.write_str("rightmost_64_4"),
4830            Bitcoin::Rightmost64_8 => f.write_str("rightmost_64_8"),
4831            Bitcoin::Rightmost8_1 => f.write_str("rightmost_8_1"),
4832            Bitcoin::Rightmost8_2 => f.write_str("rightmost_8_2"),
4833            Bitcoin::Rightmost8_4 => f.write_str("rightmost_8_4"),
4834            Bitcoin::ScalarAdd => f.write_str("scalar_add"),
4835            Bitcoin::ScalarInvert => f.write_str("scalar_invert"),
4836            Bitcoin::ScalarIsZero => f.write_str("scalar_is_zero"),
4837            Bitcoin::ScalarMultiply => f.write_str("scalar_multiply"),
4838            Bitcoin::ScalarMultiplyLambda => f.write_str("scalar_multiply_lambda"),
4839            Bitcoin::ScalarNegate => f.write_str("scalar_negate"),
4840            Bitcoin::ScalarNormalize => f.write_str("scalar_normalize"),
4841            Bitcoin::ScalarSquare => f.write_str("scalar_square"),
4842            Bitcoin::Scale => f.write_str("scale"),
4843            Bitcoin::ScriptCMR => f.write_str("script_cmr"),
4844            Bitcoin::Sha256Block => f.write_str("sha_256_block"),
4845            Bitcoin::Sha256Ctx8Add1 => f.write_str("sha_256_ctx_8_add_1"),
4846            Bitcoin::Sha256Ctx8Add128 => f.write_str("sha_256_ctx_8_add_128"),
4847            Bitcoin::Sha256Ctx8Add16 => f.write_str("sha_256_ctx_8_add_16"),
4848            Bitcoin::Sha256Ctx8Add2 => f.write_str("sha_256_ctx_8_add_2"),
4849            Bitcoin::Sha256Ctx8Add256 => f.write_str("sha_256_ctx_8_add_256"),
4850            Bitcoin::Sha256Ctx8Add32 => f.write_str("sha_256_ctx_8_add_32"),
4851            Bitcoin::Sha256Ctx8Add4 => f.write_str("sha_256_ctx_8_add_4"),
4852            Bitcoin::Sha256Ctx8Add512 => f.write_str("sha_256_ctx_8_add_512"),
4853            Bitcoin::Sha256Ctx8Add64 => f.write_str("sha_256_ctx_8_add_64"),
4854            Bitcoin::Sha256Ctx8Add8 => f.write_str("sha_256_ctx_8_add_8"),
4855            Bitcoin::Sha256Ctx8AddBuffer511 => f.write_str("sha_256_ctx_8_add_buffer_511"),
4856            Bitcoin::Sha256Ctx8Finalize => f.write_str("sha_256_ctx_8_finalize"),
4857            Bitcoin::Sha256Ctx8Init => f.write_str("sha_256_ctx_8_init"),
4858            Bitcoin::Sha256Iv => f.write_str("sha_256_iv"),
4859            Bitcoin::Some1 => f.write_str("some_1"),
4860            Bitcoin::Some16 => f.write_str("some_16"),
4861            Bitcoin::Some32 => f.write_str("some_32"),
4862            Bitcoin::Some64 => f.write_str("some_64"),
4863            Bitcoin::Some8 => f.write_str("some_8"),
4864            Bitcoin::Subtract16 => f.write_str("subtract_16"),
4865            Bitcoin::Subtract32 => f.write_str("subtract_32"),
4866            Bitcoin::Subtract64 => f.write_str("subtract_64"),
4867            Bitcoin::Subtract8 => f.write_str("subtract_8"),
4868            Bitcoin::Swu => f.write_str("swu"),
4869            Bitcoin::TapdataInit => f.write_str("tapdata_init"),
4870            Bitcoin::TapleafVersion => f.write_str("tapleaf_version"),
4871            Bitcoin::Tappath => f.write_str("tappath"),
4872            Bitcoin::TotalInputValue => f.write_str("total_input_value"),
4873            Bitcoin::TotalOutputValue => f.write_str("total_output_value"),
4874            Bitcoin::TxIsFinal => f.write_str("tx_is_final"),
4875            Bitcoin::TxLockDistance => f.write_str("tx_lock_distance"),
4876            Bitcoin::TxLockDuration => f.write_str("tx_lock_duration"),
4877            Bitcoin::TxLockHeight => f.write_str("tx_lock_height"),
4878            Bitcoin::TxLockTime => f.write_str("tx_lock_time"),
4879            Bitcoin::Verify => f.write_str("verify"),
4880            Bitcoin::Version => f.write_str("version"),
4881            Bitcoin::Xor1 => f.write_str("xor_1"),
4882            Bitcoin::Xor16 => f.write_str("xor_16"),
4883            Bitcoin::Xor32 => f.write_str("xor_32"),
4884            Bitcoin::Xor64 => f.write_str("xor_64"),
4885            Bitcoin::Xor8 => f.write_str("xor_8"),
4886            Bitcoin::XorXor1 => f.write_str("xor_xor_1"),
4887            Bitcoin::XorXor16 => f.write_str("xor_xor_16"),
4888            Bitcoin::XorXor32 => f.write_str("xor_xor_32"),
4889            Bitcoin::XorXor64 => f.write_str("xor_xor_64"),
4890            Bitcoin::XorXor8 => f.write_str("xor_xor_8"),
4891        }
4892    }
4893}
4894
4895impl str::FromStr for Bitcoin {
4896    type Err = crate::Error;
4897
4898    fn from_str(s: &str) -> Result<Self, Self::Err> {
4899        match s {
4900            "add_16" => Ok(Bitcoin::Add16),
4901            "add_32" => Ok(Bitcoin::Add32),
4902            "add_64" => Ok(Bitcoin::Add64),
4903            "add_8" => Ok(Bitcoin::Add8),
4904            "all_16" => Ok(Bitcoin::All16),
4905            "all_32" => Ok(Bitcoin::All32),
4906            "all_64" => Ok(Bitcoin::All64),
4907            "all_8" => Ok(Bitcoin::All8),
4908            "and_1" => Ok(Bitcoin::And1),
4909            "and_16" => Ok(Bitcoin::And16),
4910            "and_32" => Ok(Bitcoin::And32),
4911            "and_64" => Ok(Bitcoin::And64),
4912            "and_8" => Ok(Bitcoin::And8),
4913            "bip_0340_verify" => Ok(Bitcoin::Bip0340Verify),
4914            "ch_1" => Ok(Bitcoin::Ch1),
4915            "ch_16" => Ok(Bitcoin::Ch16),
4916            "ch_32" => Ok(Bitcoin::Ch32),
4917            "ch_64" => Ok(Bitcoin::Ch64),
4918            "ch_8" => Ok(Bitcoin::Ch8),
4919            "check_lock_distance" => Ok(Bitcoin::CheckLockDistance),
4920            "check_lock_duration" => Ok(Bitcoin::CheckLockDuration),
4921            "check_lock_height" => Ok(Bitcoin::CheckLockHeight),
4922            "check_lock_time" => Ok(Bitcoin::CheckLockTime),
4923            "check_sig_verify" => Ok(Bitcoin::CheckSigVerify),
4924            "complement_1" => Ok(Bitcoin::Complement1),
4925            "complement_16" => Ok(Bitcoin::Complement16),
4926            "complement_32" => Ok(Bitcoin::Complement32),
4927            "complement_64" => Ok(Bitcoin::Complement64),
4928            "complement_8" => Ok(Bitcoin::Complement8),
4929            "current_annex_hash" => Ok(Bitcoin::CurrentAnnexHash),
4930            "current_index" => Ok(Bitcoin::CurrentIndex),
4931            "current_prev_outpoint" => Ok(Bitcoin::CurrentPrevOutpoint),
4932            "current_script_sig_hash" => Ok(Bitcoin::CurrentScriptSigHash),
4933            "current_sequence" => Ok(Bitcoin::CurrentSequence),
4934            "current_value" => Ok(Bitcoin::CurrentValue),
4935            "decompress" => Ok(Bitcoin::Decompress),
4936            "decrement_16" => Ok(Bitcoin::Decrement16),
4937            "decrement_32" => Ok(Bitcoin::Decrement32),
4938            "decrement_64" => Ok(Bitcoin::Decrement64),
4939            "decrement_8" => Ok(Bitcoin::Decrement8),
4940            "div_mod_128_64" => Ok(Bitcoin::DivMod128_64),
4941            "div_mod_16" => Ok(Bitcoin::DivMod16),
4942            "div_mod_32" => Ok(Bitcoin::DivMod32),
4943            "div_mod_64" => Ok(Bitcoin::DivMod64),
4944            "div_mod_8" => Ok(Bitcoin::DivMod8),
4945            "divide_16" => Ok(Bitcoin::Divide16),
4946            "divide_32" => Ok(Bitcoin::Divide32),
4947            "divide_64" => Ok(Bitcoin::Divide64),
4948            "divide_8" => Ok(Bitcoin::Divide8),
4949            "divides_16" => Ok(Bitcoin::Divides16),
4950            "divides_32" => Ok(Bitcoin::Divides32),
4951            "divides_64" => Ok(Bitcoin::Divides64),
4952            "divides_8" => Ok(Bitcoin::Divides8),
4953            "eq_1" => Ok(Bitcoin::Eq1),
4954            "eq_16" => Ok(Bitcoin::Eq16),
4955            "eq_256" => Ok(Bitcoin::Eq256),
4956            "eq_32" => Ok(Bitcoin::Eq32),
4957            "eq_64" => Ok(Bitcoin::Eq64),
4958            "eq_8" => Ok(Bitcoin::Eq8),
4959            "fe_add" => Ok(Bitcoin::FeAdd),
4960            "fe_invert" => Ok(Bitcoin::FeInvert),
4961            "fe_is_odd" => Ok(Bitcoin::FeIsOdd),
4962            "fe_is_zero" => Ok(Bitcoin::FeIsZero),
4963            "fe_multiply" => Ok(Bitcoin::FeMultiply),
4964            "fe_multiply_beta" => Ok(Bitcoin::FeMultiplyBeta),
4965            "fe_negate" => Ok(Bitcoin::FeNegate),
4966            "fe_normalize" => Ok(Bitcoin::FeNormalize),
4967            "fe_square" => Ok(Bitcoin::FeSquare),
4968            "fe_square_root" => Ok(Bitcoin::FeSquareRoot),
4969            "full_add_16" => Ok(Bitcoin::FullAdd16),
4970            "full_add_32" => Ok(Bitcoin::FullAdd32),
4971            "full_add_64" => Ok(Bitcoin::FullAdd64),
4972            "full_add_8" => Ok(Bitcoin::FullAdd8),
4973            "full_decrement_16" => Ok(Bitcoin::FullDecrement16),
4974            "full_decrement_32" => Ok(Bitcoin::FullDecrement32),
4975            "full_decrement_64" => Ok(Bitcoin::FullDecrement64),
4976            "full_decrement_8" => Ok(Bitcoin::FullDecrement8),
4977            "full_increment_16" => Ok(Bitcoin::FullIncrement16),
4978            "full_increment_32" => Ok(Bitcoin::FullIncrement32),
4979            "full_increment_64" => Ok(Bitcoin::FullIncrement64),
4980            "full_increment_8" => Ok(Bitcoin::FullIncrement8),
4981            "full_left_shift_16_1" => Ok(Bitcoin::FullLeftShift16_1),
4982            "full_left_shift_16_2" => Ok(Bitcoin::FullLeftShift16_2),
4983            "full_left_shift_16_4" => Ok(Bitcoin::FullLeftShift16_4),
4984            "full_left_shift_16_8" => Ok(Bitcoin::FullLeftShift16_8),
4985            "full_left_shift_32_1" => Ok(Bitcoin::FullLeftShift32_1),
4986            "full_left_shift_32_16" => Ok(Bitcoin::FullLeftShift32_16),
4987            "full_left_shift_32_2" => Ok(Bitcoin::FullLeftShift32_2),
4988            "full_left_shift_32_4" => Ok(Bitcoin::FullLeftShift32_4),
4989            "full_left_shift_32_8" => Ok(Bitcoin::FullLeftShift32_8),
4990            "full_left_shift_64_1" => Ok(Bitcoin::FullLeftShift64_1),
4991            "full_left_shift_64_16" => Ok(Bitcoin::FullLeftShift64_16),
4992            "full_left_shift_64_2" => Ok(Bitcoin::FullLeftShift64_2),
4993            "full_left_shift_64_32" => Ok(Bitcoin::FullLeftShift64_32),
4994            "full_left_shift_64_4" => Ok(Bitcoin::FullLeftShift64_4),
4995            "full_left_shift_64_8" => Ok(Bitcoin::FullLeftShift64_8),
4996            "full_left_shift_8_1" => Ok(Bitcoin::FullLeftShift8_1),
4997            "full_left_shift_8_2" => Ok(Bitcoin::FullLeftShift8_2),
4998            "full_left_shift_8_4" => Ok(Bitcoin::FullLeftShift8_4),
4999            "full_multiply_16" => Ok(Bitcoin::FullMultiply16),
5000            "full_multiply_32" => Ok(Bitcoin::FullMultiply32),
5001            "full_multiply_64" => Ok(Bitcoin::FullMultiply64),
5002            "full_multiply_8" => Ok(Bitcoin::FullMultiply8),
5003            "full_right_shift_16_1" => Ok(Bitcoin::FullRightShift16_1),
5004            "full_right_shift_16_2" => Ok(Bitcoin::FullRightShift16_2),
5005            "full_right_shift_16_4" => Ok(Bitcoin::FullRightShift16_4),
5006            "full_right_shift_16_8" => Ok(Bitcoin::FullRightShift16_8),
5007            "full_right_shift_32_1" => Ok(Bitcoin::FullRightShift32_1),
5008            "full_right_shift_32_16" => Ok(Bitcoin::FullRightShift32_16),
5009            "full_right_shift_32_2" => Ok(Bitcoin::FullRightShift32_2),
5010            "full_right_shift_32_4" => Ok(Bitcoin::FullRightShift32_4),
5011            "full_right_shift_32_8" => Ok(Bitcoin::FullRightShift32_8),
5012            "full_right_shift_64_1" => Ok(Bitcoin::FullRightShift64_1),
5013            "full_right_shift_64_16" => Ok(Bitcoin::FullRightShift64_16),
5014            "full_right_shift_64_2" => Ok(Bitcoin::FullRightShift64_2),
5015            "full_right_shift_64_32" => Ok(Bitcoin::FullRightShift64_32),
5016            "full_right_shift_64_4" => Ok(Bitcoin::FullRightShift64_4),
5017            "full_right_shift_64_8" => Ok(Bitcoin::FullRightShift64_8),
5018            "full_right_shift_8_1" => Ok(Bitcoin::FullRightShift8_1),
5019            "full_right_shift_8_2" => Ok(Bitcoin::FullRightShift8_2),
5020            "full_right_shift_8_4" => Ok(Bitcoin::FullRightShift8_4),
5021            "full_subtract_16" => Ok(Bitcoin::FullSubtract16),
5022            "full_subtract_32" => Ok(Bitcoin::FullSubtract32),
5023            "full_subtract_64" => Ok(Bitcoin::FullSubtract64),
5024            "full_subtract_8" => Ok(Bitcoin::FullSubtract8),
5025            "ge_is_on_curve" => Ok(Bitcoin::GeIsOnCurve),
5026            "ge_negate" => Ok(Bitcoin::GeNegate),
5027            "gej_add" => Ok(Bitcoin::GejAdd),
5028            "gej_double" => Ok(Bitcoin::GejDouble),
5029            "gej_equiv" => Ok(Bitcoin::GejEquiv),
5030            "gej_ge_add" => Ok(Bitcoin::GejGeAdd),
5031            "gej_ge_add_ex" => Ok(Bitcoin::GejGeAddEx),
5032            "gej_ge_equiv" => Ok(Bitcoin::GejGeEquiv),
5033            "gej_infinity" => Ok(Bitcoin::GejInfinity),
5034            "gej_is_infinity" => Ok(Bitcoin::GejIsInfinity),
5035            "gej_is_on_curve" => Ok(Bitcoin::GejIsOnCurve),
5036            "gej_negate" => Ok(Bitcoin::GejNegate),
5037            "gej_normalize" => Ok(Bitcoin::GejNormalize),
5038            "gej_rescale" => Ok(Bitcoin::GejRescale),
5039            "gej_x_equiv" => Ok(Bitcoin::GejXEquiv),
5040            "gej_y_is_odd" => Ok(Bitcoin::GejYIsOdd),
5041            "generate" => Ok(Bitcoin::Generate),
5042            "hash_to_curve" => Ok(Bitcoin::HashToCurve),
5043            "high_1" => Ok(Bitcoin::High1),
5044            "high_16" => Ok(Bitcoin::High16),
5045            "high_32" => Ok(Bitcoin::High32),
5046            "high_64" => Ok(Bitcoin::High64),
5047            "high_8" => Ok(Bitcoin::High8),
5048            "increment_16" => Ok(Bitcoin::Increment16),
5049            "increment_32" => Ok(Bitcoin::Increment32),
5050            "increment_64" => Ok(Bitcoin::Increment64),
5051            "increment_8" => Ok(Bitcoin::Increment8),
5052            "input_annex_hash" => Ok(Bitcoin::InputAnnexHash),
5053            "input_prev_outpoint" => Ok(Bitcoin::InputPrevOutpoint),
5054            "input_script_sig_hash" => Ok(Bitcoin::InputScriptSigHash),
5055            "input_sequence" => Ok(Bitcoin::InputSequence),
5056            "input_value" => Ok(Bitcoin::InputValue),
5057            "internal_key" => Ok(Bitcoin::InternalKey),
5058            "is_one_16" => Ok(Bitcoin::IsOne16),
5059            "is_one_32" => Ok(Bitcoin::IsOne32),
5060            "is_one_64" => Ok(Bitcoin::IsOne64),
5061            "is_one_8" => Ok(Bitcoin::IsOne8),
5062            "is_zero_16" => Ok(Bitcoin::IsZero16),
5063            "is_zero_32" => Ok(Bitcoin::IsZero32),
5064            "is_zero_64" => Ok(Bitcoin::IsZero64),
5065            "is_zero_8" => Ok(Bitcoin::IsZero8),
5066            "le_16" => Ok(Bitcoin::Le16),
5067            "le_32" => Ok(Bitcoin::Le32),
5068            "le_64" => Ok(Bitcoin::Le64),
5069            "le_8" => Ok(Bitcoin::Le8),
5070            "left_extend_16_32" => Ok(Bitcoin::LeftExtend16_32),
5071            "left_extend_16_64" => Ok(Bitcoin::LeftExtend16_64),
5072            "left_extend_1_16" => Ok(Bitcoin::LeftExtend1_16),
5073            "left_extend_1_32" => Ok(Bitcoin::LeftExtend1_32),
5074            "left_extend_1_64" => Ok(Bitcoin::LeftExtend1_64),
5075            "left_extend_1_8" => Ok(Bitcoin::LeftExtend1_8),
5076            "left_extend_32_64" => Ok(Bitcoin::LeftExtend32_64),
5077            "left_extend_8_16" => Ok(Bitcoin::LeftExtend8_16),
5078            "left_extend_8_32" => Ok(Bitcoin::LeftExtend8_32),
5079            "left_extend_8_64" => Ok(Bitcoin::LeftExtend8_64),
5080            "left_pad_high_16_32" => Ok(Bitcoin::LeftPadHigh16_32),
5081            "left_pad_high_16_64" => Ok(Bitcoin::LeftPadHigh16_64),
5082            "left_pad_high_1_16" => Ok(Bitcoin::LeftPadHigh1_16),
5083            "left_pad_high_1_32" => Ok(Bitcoin::LeftPadHigh1_32),
5084            "left_pad_high_1_64" => Ok(Bitcoin::LeftPadHigh1_64),
5085            "left_pad_high_1_8" => Ok(Bitcoin::LeftPadHigh1_8),
5086            "left_pad_high_32_64" => Ok(Bitcoin::LeftPadHigh32_64),
5087            "left_pad_high_8_16" => Ok(Bitcoin::LeftPadHigh8_16),
5088            "left_pad_high_8_32" => Ok(Bitcoin::LeftPadHigh8_32),
5089            "left_pad_high_8_64" => Ok(Bitcoin::LeftPadHigh8_64),
5090            "left_pad_low_16_32" => Ok(Bitcoin::LeftPadLow16_32),
5091            "left_pad_low_16_64" => Ok(Bitcoin::LeftPadLow16_64),
5092            "left_pad_low_1_16" => Ok(Bitcoin::LeftPadLow1_16),
5093            "left_pad_low_1_32" => Ok(Bitcoin::LeftPadLow1_32),
5094            "left_pad_low_1_64" => Ok(Bitcoin::LeftPadLow1_64),
5095            "left_pad_low_1_8" => Ok(Bitcoin::LeftPadLow1_8),
5096            "left_pad_low_32_64" => Ok(Bitcoin::LeftPadLow32_64),
5097            "left_pad_low_8_16" => Ok(Bitcoin::LeftPadLow8_16),
5098            "left_pad_low_8_32" => Ok(Bitcoin::LeftPadLow8_32),
5099            "left_pad_low_8_64" => Ok(Bitcoin::LeftPadLow8_64),
5100            "left_rotate_16" => Ok(Bitcoin::LeftRotate16),
5101            "left_rotate_32" => Ok(Bitcoin::LeftRotate32),
5102            "left_rotate_64" => Ok(Bitcoin::LeftRotate64),
5103            "left_rotate_8" => Ok(Bitcoin::LeftRotate8),
5104            "left_shift_16" => Ok(Bitcoin::LeftShift16),
5105            "left_shift_32" => Ok(Bitcoin::LeftShift32),
5106            "left_shift_64" => Ok(Bitcoin::LeftShift64),
5107            "left_shift_8" => Ok(Bitcoin::LeftShift8),
5108            "left_shift_with_16" => Ok(Bitcoin::LeftShiftWith16),
5109            "left_shift_with_32" => Ok(Bitcoin::LeftShiftWith32),
5110            "left_shift_with_64" => Ok(Bitcoin::LeftShiftWith64),
5111            "left_shift_with_8" => Ok(Bitcoin::LeftShiftWith8),
5112            "leftmost_16_1" => Ok(Bitcoin::Leftmost16_1),
5113            "leftmost_16_2" => Ok(Bitcoin::Leftmost16_2),
5114            "leftmost_16_4" => Ok(Bitcoin::Leftmost16_4),
5115            "leftmost_16_8" => Ok(Bitcoin::Leftmost16_8),
5116            "leftmost_32_1" => Ok(Bitcoin::Leftmost32_1),
5117            "leftmost_32_16" => Ok(Bitcoin::Leftmost32_16),
5118            "leftmost_32_2" => Ok(Bitcoin::Leftmost32_2),
5119            "leftmost_32_4" => Ok(Bitcoin::Leftmost32_4),
5120            "leftmost_32_8" => Ok(Bitcoin::Leftmost32_8),
5121            "leftmost_64_1" => Ok(Bitcoin::Leftmost64_1),
5122            "leftmost_64_16" => Ok(Bitcoin::Leftmost64_16),
5123            "leftmost_64_2" => Ok(Bitcoin::Leftmost64_2),
5124            "leftmost_64_32" => Ok(Bitcoin::Leftmost64_32),
5125            "leftmost_64_4" => Ok(Bitcoin::Leftmost64_4),
5126            "leftmost_64_8" => Ok(Bitcoin::Leftmost64_8),
5127            "leftmost_8_1" => Ok(Bitcoin::Leftmost8_1),
5128            "leftmost_8_2" => Ok(Bitcoin::Leftmost8_2),
5129            "leftmost_8_4" => Ok(Bitcoin::Leftmost8_4),
5130            "linear_combination_1" => Ok(Bitcoin::LinearCombination1),
5131            "linear_verify_1" => Ok(Bitcoin::LinearVerify1),
5132            "lock_time" => Ok(Bitcoin::LockTime),
5133            "low_1" => Ok(Bitcoin::Low1),
5134            "low_16" => Ok(Bitcoin::Low16),
5135            "low_32" => Ok(Bitcoin::Low32),
5136            "low_64" => Ok(Bitcoin::Low64),
5137            "low_8" => Ok(Bitcoin::Low8),
5138            "lt_16" => Ok(Bitcoin::Lt16),
5139            "lt_32" => Ok(Bitcoin::Lt32),
5140            "lt_64" => Ok(Bitcoin::Lt64),
5141            "lt_8" => Ok(Bitcoin::Lt8),
5142            "maj_1" => Ok(Bitcoin::Maj1),
5143            "maj_16" => Ok(Bitcoin::Maj16),
5144            "maj_32" => Ok(Bitcoin::Maj32),
5145            "maj_64" => Ok(Bitcoin::Maj64),
5146            "maj_8" => Ok(Bitcoin::Maj8),
5147            "max_16" => Ok(Bitcoin::Max16),
5148            "max_32" => Ok(Bitcoin::Max32),
5149            "max_64" => Ok(Bitcoin::Max64),
5150            "max_8" => Ok(Bitcoin::Max8),
5151            "median_16" => Ok(Bitcoin::Median16),
5152            "median_32" => Ok(Bitcoin::Median32),
5153            "median_64" => Ok(Bitcoin::Median64),
5154            "median_8" => Ok(Bitcoin::Median8),
5155            "min_16" => Ok(Bitcoin::Min16),
5156            "min_32" => Ok(Bitcoin::Min32),
5157            "min_64" => Ok(Bitcoin::Min64),
5158            "min_8" => Ok(Bitcoin::Min8),
5159            "modulo_16" => Ok(Bitcoin::Modulo16),
5160            "modulo_32" => Ok(Bitcoin::Modulo32),
5161            "modulo_64" => Ok(Bitcoin::Modulo64),
5162            "modulo_8" => Ok(Bitcoin::Modulo8),
5163            "multiply_16" => Ok(Bitcoin::Multiply16),
5164            "multiply_32" => Ok(Bitcoin::Multiply32),
5165            "multiply_64" => Ok(Bitcoin::Multiply64),
5166            "multiply_8" => Ok(Bitcoin::Multiply8),
5167            "negate_16" => Ok(Bitcoin::Negate16),
5168            "negate_32" => Ok(Bitcoin::Negate32),
5169            "negate_64" => Ok(Bitcoin::Negate64),
5170            "negate_8" => Ok(Bitcoin::Negate8),
5171            "num_inputs" => Ok(Bitcoin::NumInputs),
5172            "num_outputs" => Ok(Bitcoin::NumOutputs),
5173            "one_16" => Ok(Bitcoin::One16),
5174            "one_32" => Ok(Bitcoin::One32),
5175            "one_64" => Ok(Bitcoin::One64),
5176            "one_8" => Ok(Bitcoin::One8),
5177            "or_1" => Ok(Bitcoin::Or1),
5178            "or_16" => Ok(Bitcoin::Or16),
5179            "or_32" => Ok(Bitcoin::Or32),
5180            "or_64" => Ok(Bitcoin::Or64),
5181            "or_8" => Ok(Bitcoin::Or8),
5182            "output_script_hash" => Ok(Bitcoin::OutputScriptHash),
5183            "output_value" => Ok(Bitcoin::OutputValue),
5184            "parse_lock" => Ok(Bitcoin::ParseLock),
5185            "parse_sequence" => Ok(Bitcoin::ParseSequence),
5186            "point_verify_1" => Ok(Bitcoin::PointVerify1),
5187            "right_extend_16_32" => Ok(Bitcoin::RightExtend16_32),
5188            "right_extend_16_64" => Ok(Bitcoin::RightExtend16_64),
5189            "right_extend_32_64" => Ok(Bitcoin::RightExtend32_64),
5190            "right_extend_8_16" => Ok(Bitcoin::RightExtend8_16),
5191            "right_extend_8_32" => Ok(Bitcoin::RightExtend8_32),
5192            "right_extend_8_64" => Ok(Bitcoin::RightExtend8_64),
5193            "right_pad_high_16_32" => Ok(Bitcoin::RightPadHigh16_32),
5194            "right_pad_high_16_64" => Ok(Bitcoin::RightPadHigh16_64),
5195            "right_pad_high_1_16" => Ok(Bitcoin::RightPadHigh1_16),
5196            "right_pad_high_1_32" => Ok(Bitcoin::RightPadHigh1_32),
5197            "right_pad_high_1_64" => Ok(Bitcoin::RightPadHigh1_64),
5198            "right_pad_high_1_8" => Ok(Bitcoin::RightPadHigh1_8),
5199            "right_pad_high_32_64" => Ok(Bitcoin::RightPadHigh32_64),
5200            "right_pad_high_8_16" => Ok(Bitcoin::RightPadHigh8_16),
5201            "right_pad_high_8_32" => Ok(Bitcoin::RightPadHigh8_32),
5202            "right_pad_high_8_64" => Ok(Bitcoin::RightPadHigh8_64),
5203            "right_pad_low_16_32" => Ok(Bitcoin::RightPadLow16_32),
5204            "right_pad_low_16_64" => Ok(Bitcoin::RightPadLow16_64),
5205            "right_pad_low_1_16" => Ok(Bitcoin::RightPadLow1_16),
5206            "right_pad_low_1_32" => Ok(Bitcoin::RightPadLow1_32),
5207            "right_pad_low_1_64" => Ok(Bitcoin::RightPadLow1_64),
5208            "right_pad_low_1_8" => Ok(Bitcoin::RightPadLow1_8),
5209            "right_pad_low_32_64" => Ok(Bitcoin::RightPadLow32_64),
5210            "right_pad_low_8_16" => Ok(Bitcoin::RightPadLow8_16),
5211            "right_pad_low_8_32" => Ok(Bitcoin::RightPadLow8_32),
5212            "right_pad_low_8_64" => Ok(Bitcoin::RightPadLow8_64),
5213            "right_rotate_16" => Ok(Bitcoin::RightRotate16),
5214            "right_rotate_32" => Ok(Bitcoin::RightRotate32),
5215            "right_rotate_64" => Ok(Bitcoin::RightRotate64),
5216            "right_rotate_8" => Ok(Bitcoin::RightRotate8),
5217            "right_shift_16" => Ok(Bitcoin::RightShift16),
5218            "right_shift_32" => Ok(Bitcoin::RightShift32),
5219            "right_shift_64" => Ok(Bitcoin::RightShift64),
5220            "right_shift_8" => Ok(Bitcoin::RightShift8),
5221            "right_shift_with_16" => Ok(Bitcoin::RightShiftWith16),
5222            "right_shift_with_32" => Ok(Bitcoin::RightShiftWith32),
5223            "right_shift_with_64" => Ok(Bitcoin::RightShiftWith64),
5224            "right_shift_with_8" => Ok(Bitcoin::RightShiftWith8),
5225            "rightmost_16_1" => Ok(Bitcoin::Rightmost16_1),
5226            "rightmost_16_2" => Ok(Bitcoin::Rightmost16_2),
5227            "rightmost_16_4" => Ok(Bitcoin::Rightmost16_4),
5228            "rightmost_16_8" => Ok(Bitcoin::Rightmost16_8),
5229            "rightmost_32_1" => Ok(Bitcoin::Rightmost32_1),
5230            "rightmost_32_16" => Ok(Bitcoin::Rightmost32_16),
5231            "rightmost_32_2" => Ok(Bitcoin::Rightmost32_2),
5232            "rightmost_32_4" => Ok(Bitcoin::Rightmost32_4),
5233            "rightmost_32_8" => Ok(Bitcoin::Rightmost32_8),
5234            "rightmost_64_1" => Ok(Bitcoin::Rightmost64_1),
5235            "rightmost_64_16" => Ok(Bitcoin::Rightmost64_16),
5236            "rightmost_64_2" => Ok(Bitcoin::Rightmost64_2),
5237            "rightmost_64_32" => Ok(Bitcoin::Rightmost64_32),
5238            "rightmost_64_4" => Ok(Bitcoin::Rightmost64_4),
5239            "rightmost_64_8" => Ok(Bitcoin::Rightmost64_8),
5240            "rightmost_8_1" => Ok(Bitcoin::Rightmost8_1),
5241            "rightmost_8_2" => Ok(Bitcoin::Rightmost8_2),
5242            "rightmost_8_4" => Ok(Bitcoin::Rightmost8_4),
5243            "scalar_add" => Ok(Bitcoin::ScalarAdd),
5244            "scalar_invert" => Ok(Bitcoin::ScalarInvert),
5245            "scalar_is_zero" => Ok(Bitcoin::ScalarIsZero),
5246            "scalar_multiply" => Ok(Bitcoin::ScalarMultiply),
5247            "scalar_multiply_lambda" => Ok(Bitcoin::ScalarMultiplyLambda),
5248            "scalar_negate" => Ok(Bitcoin::ScalarNegate),
5249            "scalar_normalize" => Ok(Bitcoin::ScalarNormalize),
5250            "scalar_square" => Ok(Bitcoin::ScalarSquare),
5251            "scale" => Ok(Bitcoin::Scale),
5252            "script_cmr" => Ok(Bitcoin::ScriptCMR),
5253            "sha_256_block" => Ok(Bitcoin::Sha256Block),
5254            "sha_256_ctx_8_add_1" => Ok(Bitcoin::Sha256Ctx8Add1),
5255            "sha_256_ctx_8_add_128" => Ok(Bitcoin::Sha256Ctx8Add128),
5256            "sha_256_ctx_8_add_16" => Ok(Bitcoin::Sha256Ctx8Add16),
5257            "sha_256_ctx_8_add_2" => Ok(Bitcoin::Sha256Ctx8Add2),
5258            "sha_256_ctx_8_add_256" => Ok(Bitcoin::Sha256Ctx8Add256),
5259            "sha_256_ctx_8_add_32" => Ok(Bitcoin::Sha256Ctx8Add32),
5260            "sha_256_ctx_8_add_4" => Ok(Bitcoin::Sha256Ctx8Add4),
5261            "sha_256_ctx_8_add_512" => Ok(Bitcoin::Sha256Ctx8Add512),
5262            "sha_256_ctx_8_add_64" => Ok(Bitcoin::Sha256Ctx8Add64),
5263            "sha_256_ctx_8_add_8" => Ok(Bitcoin::Sha256Ctx8Add8),
5264            "sha_256_ctx_8_add_buffer_511" => Ok(Bitcoin::Sha256Ctx8AddBuffer511),
5265            "sha_256_ctx_8_finalize" => Ok(Bitcoin::Sha256Ctx8Finalize),
5266            "sha_256_ctx_8_init" => Ok(Bitcoin::Sha256Ctx8Init),
5267            "sha_256_iv" => Ok(Bitcoin::Sha256Iv),
5268            "some_1" => Ok(Bitcoin::Some1),
5269            "some_16" => Ok(Bitcoin::Some16),
5270            "some_32" => Ok(Bitcoin::Some32),
5271            "some_64" => Ok(Bitcoin::Some64),
5272            "some_8" => Ok(Bitcoin::Some8),
5273            "subtract_16" => Ok(Bitcoin::Subtract16),
5274            "subtract_32" => Ok(Bitcoin::Subtract32),
5275            "subtract_64" => Ok(Bitcoin::Subtract64),
5276            "subtract_8" => Ok(Bitcoin::Subtract8),
5277            "swu" => Ok(Bitcoin::Swu),
5278            "tapdata_init" => Ok(Bitcoin::TapdataInit),
5279            "tapleaf_version" => Ok(Bitcoin::TapleafVersion),
5280            "tappath" => Ok(Bitcoin::Tappath),
5281            "total_input_value" => Ok(Bitcoin::TotalInputValue),
5282            "total_output_value" => Ok(Bitcoin::TotalOutputValue),
5283            "tx_is_final" => Ok(Bitcoin::TxIsFinal),
5284            "tx_lock_distance" => Ok(Bitcoin::TxLockDistance),
5285            "tx_lock_duration" => Ok(Bitcoin::TxLockDuration),
5286            "tx_lock_height" => Ok(Bitcoin::TxLockHeight),
5287            "tx_lock_time" => Ok(Bitcoin::TxLockTime),
5288            "verify" => Ok(Bitcoin::Verify),
5289            "version" => Ok(Bitcoin::Version),
5290            "xor_1" => Ok(Bitcoin::Xor1),
5291            "xor_16" => Ok(Bitcoin::Xor16),
5292            "xor_32" => Ok(Bitcoin::Xor32),
5293            "xor_64" => Ok(Bitcoin::Xor64),
5294            "xor_8" => Ok(Bitcoin::Xor8),
5295            "xor_xor_1" => Ok(Bitcoin::XorXor1),
5296            "xor_xor_16" => Ok(Bitcoin::XorXor16),
5297            "xor_xor_32" => Ok(Bitcoin::XorXor32),
5298            "xor_xor_64" => Ok(Bitcoin::XorXor64),
5299            "xor_xor_8" => Ok(Bitcoin::XorXor8),
5300            x => Err(crate::Error::InvalidJetName(x.to_owned())),
5301        }
5302    }
5303}