Skip to main content

simplicity/jet/init/
core.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 simplicity_sys::CFrameItem;
10use std::io::Write;
11use std::{fmt, str};
12
13/// The Core jet family.
14#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Debug, Hash)]
15pub enum Core {
16    Add16,
17    Add32,
18    Add64,
19    Add8,
20    All16,
21    All32,
22    All64,
23    All8,
24    And1,
25    And16,
26    And32,
27    And64,
28    And8,
29    Bip0340Verify,
30    Ch1,
31    Ch16,
32    Ch32,
33    Ch64,
34    Ch8,
35    CheckSigVerify,
36    Complement1,
37    Complement16,
38    Complement32,
39    Complement64,
40    Complement8,
41    Decompress,
42    Decrement16,
43    Decrement32,
44    Decrement64,
45    Decrement8,
46    DivMod128_64,
47    DivMod16,
48    DivMod32,
49    DivMod64,
50    DivMod8,
51    Divide16,
52    Divide32,
53    Divide64,
54    Divide8,
55    Divides16,
56    Divides32,
57    Divides64,
58    Divides8,
59    Eq1,
60    Eq16,
61    Eq256,
62    Eq32,
63    Eq64,
64    Eq8,
65    FeAdd,
66    FeInvert,
67    FeIsOdd,
68    FeIsZero,
69    FeMultiply,
70    FeMultiplyBeta,
71    FeNegate,
72    FeNormalize,
73    FeSquare,
74    FeSquareRoot,
75    FullAdd16,
76    FullAdd32,
77    FullAdd64,
78    FullAdd8,
79    FullDecrement16,
80    FullDecrement32,
81    FullDecrement64,
82    FullDecrement8,
83    FullIncrement16,
84    FullIncrement32,
85    FullIncrement64,
86    FullIncrement8,
87    FullLeftShift16_1,
88    FullLeftShift16_2,
89    FullLeftShift16_4,
90    FullLeftShift16_8,
91    FullLeftShift32_1,
92    FullLeftShift32_16,
93    FullLeftShift32_2,
94    FullLeftShift32_4,
95    FullLeftShift32_8,
96    FullLeftShift64_1,
97    FullLeftShift64_16,
98    FullLeftShift64_2,
99    FullLeftShift64_32,
100    FullLeftShift64_4,
101    FullLeftShift64_8,
102    FullLeftShift8_1,
103    FullLeftShift8_2,
104    FullLeftShift8_4,
105    FullMultiply16,
106    FullMultiply32,
107    FullMultiply64,
108    FullMultiply8,
109    FullRightShift16_1,
110    FullRightShift16_2,
111    FullRightShift16_4,
112    FullRightShift16_8,
113    FullRightShift32_1,
114    FullRightShift32_16,
115    FullRightShift32_2,
116    FullRightShift32_4,
117    FullRightShift32_8,
118    FullRightShift64_1,
119    FullRightShift64_16,
120    FullRightShift64_2,
121    FullRightShift64_32,
122    FullRightShift64_4,
123    FullRightShift64_8,
124    FullRightShift8_1,
125    FullRightShift8_2,
126    FullRightShift8_4,
127    FullSubtract16,
128    FullSubtract32,
129    FullSubtract64,
130    FullSubtract8,
131    GeIsOnCurve,
132    GeNegate,
133    GejAdd,
134    GejDouble,
135    GejEquiv,
136    GejGeAdd,
137    GejGeAddEx,
138    GejGeEquiv,
139    GejInfinity,
140    GejIsInfinity,
141    GejIsOnCurve,
142    GejNegate,
143    GejNormalize,
144    GejRescale,
145    GejXEquiv,
146    GejYIsOdd,
147    Generate,
148    HashToCurve,
149    High1,
150    High16,
151    High32,
152    High64,
153    High8,
154    Increment16,
155    Increment32,
156    Increment64,
157    Increment8,
158    IsOne16,
159    IsOne32,
160    IsOne64,
161    IsOne8,
162    IsZero16,
163    IsZero32,
164    IsZero64,
165    IsZero8,
166    Le16,
167    Le32,
168    Le64,
169    Le8,
170    LeftExtend16_32,
171    LeftExtend16_64,
172    LeftExtend1_16,
173    LeftExtend1_32,
174    LeftExtend1_64,
175    LeftExtend1_8,
176    LeftExtend32_64,
177    LeftExtend8_16,
178    LeftExtend8_32,
179    LeftExtend8_64,
180    LeftPadHigh16_32,
181    LeftPadHigh16_64,
182    LeftPadHigh1_16,
183    LeftPadHigh1_32,
184    LeftPadHigh1_64,
185    LeftPadHigh1_8,
186    LeftPadHigh32_64,
187    LeftPadHigh8_16,
188    LeftPadHigh8_32,
189    LeftPadHigh8_64,
190    LeftPadLow16_32,
191    LeftPadLow16_64,
192    LeftPadLow1_16,
193    LeftPadLow1_32,
194    LeftPadLow1_64,
195    LeftPadLow1_8,
196    LeftPadLow32_64,
197    LeftPadLow8_16,
198    LeftPadLow8_32,
199    LeftPadLow8_64,
200    LeftRotate16,
201    LeftRotate32,
202    LeftRotate64,
203    LeftRotate8,
204    LeftShift16,
205    LeftShift32,
206    LeftShift64,
207    LeftShift8,
208    LeftShiftWith16,
209    LeftShiftWith32,
210    LeftShiftWith64,
211    LeftShiftWith8,
212    Leftmost16_1,
213    Leftmost16_2,
214    Leftmost16_4,
215    Leftmost16_8,
216    Leftmost32_1,
217    Leftmost32_16,
218    Leftmost32_2,
219    Leftmost32_4,
220    Leftmost32_8,
221    Leftmost64_1,
222    Leftmost64_16,
223    Leftmost64_2,
224    Leftmost64_32,
225    Leftmost64_4,
226    Leftmost64_8,
227    Leftmost8_1,
228    Leftmost8_2,
229    Leftmost8_4,
230    LinearCombination1,
231    LinearVerify1,
232    Low1,
233    Low16,
234    Low32,
235    Low64,
236    Low8,
237    Lt16,
238    Lt32,
239    Lt64,
240    Lt8,
241    Maj1,
242    Maj16,
243    Maj32,
244    Maj64,
245    Maj8,
246    Max16,
247    Max32,
248    Max64,
249    Max8,
250    Median16,
251    Median32,
252    Median64,
253    Median8,
254    Min16,
255    Min32,
256    Min64,
257    Min8,
258    Modulo16,
259    Modulo32,
260    Modulo64,
261    Modulo8,
262    Multiply16,
263    Multiply32,
264    Multiply64,
265    Multiply8,
266    Negate16,
267    Negate32,
268    Negate64,
269    Negate8,
270    One16,
271    One32,
272    One64,
273    One8,
274    Or1,
275    Or16,
276    Or32,
277    Or64,
278    Or8,
279    ParseLock,
280    ParseSequence,
281    PointVerify1,
282    RightExtend16_32,
283    RightExtend16_64,
284    RightExtend32_64,
285    RightExtend8_16,
286    RightExtend8_32,
287    RightExtend8_64,
288    RightPadHigh16_32,
289    RightPadHigh16_64,
290    RightPadHigh1_16,
291    RightPadHigh1_32,
292    RightPadHigh1_64,
293    RightPadHigh1_8,
294    RightPadHigh32_64,
295    RightPadHigh8_16,
296    RightPadHigh8_32,
297    RightPadHigh8_64,
298    RightPadLow16_32,
299    RightPadLow16_64,
300    RightPadLow1_16,
301    RightPadLow1_32,
302    RightPadLow1_64,
303    RightPadLow1_8,
304    RightPadLow32_64,
305    RightPadLow8_16,
306    RightPadLow8_32,
307    RightPadLow8_64,
308    RightRotate16,
309    RightRotate32,
310    RightRotate64,
311    RightRotate8,
312    RightShift16,
313    RightShift32,
314    RightShift64,
315    RightShift8,
316    RightShiftWith16,
317    RightShiftWith32,
318    RightShiftWith64,
319    RightShiftWith8,
320    Rightmost16_1,
321    Rightmost16_2,
322    Rightmost16_4,
323    Rightmost16_8,
324    Rightmost32_1,
325    Rightmost32_16,
326    Rightmost32_2,
327    Rightmost32_4,
328    Rightmost32_8,
329    Rightmost64_1,
330    Rightmost64_16,
331    Rightmost64_2,
332    Rightmost64_32,
333    Rightmost64_4,
334    Rightmost64_8,
335    Rightmost8_1,
336    Rightmost8_2,
337    Rightmost8_4,
338    ScalarAdd,
339    ScalarInvert,
340    ScalarIsZero,
341    ScalarMultiply,
342    ScalarMultiplyLambda,
343    ScalarNegate,
344    ScalarNormalize,
345    ScalarSquare,
346    Scale,
347    Sha256Block,
348    Sha256Ctx8Add1,
349    Sha256Ctx8Add128,
350    Sha256Ctx8Add16,
351    Sha256Ctx8Add2,
352    Sha256Ctx8Add256,
353    Sha256Ctx8Add32,
354    Sha256Ctx8Add4,
355    Sha256Ctx8Add512,
356    Sha256Ctx8Add64,
357    Sha256Ctx8Add8,
358    Sha256Ctx8AddBuffer511,
359    Sha256Ctx8Finalize,
360    Sha256Ctx8Init,
361    Sha256Iv,
362    Some1,
363    Some16,
364    Some32,
365    Some64,
366    Some8,
367    Subtract16,
368    Subtract32,
369    Subtract64,
370    Subtract8,
371    Swu,
372    TapdataInit,
373    Verify,
374    Xor1,
375    Xor16,
376    Xor32,
377    Xor64,
378    Xor8,
379    XorXor1,
380    XorXor16,
381    XorXor32,
382    XorXor64,
383    XorXor8,
384}
385
386impl Core {
387    /// Array of all Core jets.
388    pub const ALL: [Self; 368] = [
389        Self::Add16,
390        Self::Add32,
391        Self::Add64,
392        Self::Add8,
393        Self::All16,
394        Self::All32,
395        Self::All64,
396        Self::All8,
397        Self::And1,
398        Self::And16,
399        Self::And32,
400        Self::And64,
401        Self::And8,
402        Self::Bip0340Verify,
403        Self::Ch1,
404        Self::Ch16,
405        Self::Ch32,
406        Self::Ch64,
407        Self::Ch8,
408        Self::CheckSigVerify,
409        Self::Complement1,
410        Self::Complement16,
411        Self::Complement32,
412        Self::Complement64,
413        Self::Complement8,
414        Self::Decompress,
415        Self::Decrement16,
416        Self::Decrement32,
417        Self::Decrement64,
418        Self::Decrement8,
419        Self::DivMod128_64,
420        Self::DivMod16,
421        Self::DivMod32,
422        Self::DivMod64,
423        Self::DivMod8,
424        Self::Divide16,
425        Self::Divide32,
426        Self::Divide64,
427        Self::Divide8,
428        Self::Divides16,
429        Self::Divides32,
430        Self::Divides64,
431        Self::Divides8,
432        Self::Eq1,
433        Self::Eq16,
434        Self::Eq256,
435        Self::Eq32,
436        Self::Eq64,
437        Self::Eq8,
438        Self::FeAdd,
439        Self::FeInvert,
440        Self::FeIsOdd,
441        Self::FeIsZero,
442        Self::FeMultiply,
443        Self::FeMultiplyBeta,
444        Self::FeNegate,
445        Self::FeNormalize,
446        Self::FeSquare,
447        Self::FeSquareRoot,
448        Self::FullAdd16,
449        Self::FullAdd32,
450        Self::FullAdd64,
451        Self::FullAdd8,
452        Self::FullDecrement16,
453        Self::FullDecrement32,
454        Self::FullDecrement64,
455        Self::FullDecrement8,
456        Self::FullIncrement16,
457        Self::FullIncrement32,
458        Self::FullIncrement64,
459        Self::FullIncrement8,
460        Self::FullLeftShift16_1,
461        Self::FullLeftShift16_2,
462        Self::FullLeftShift16_4,
463        Self::FullLeftShift16_8,
464        Self::FullLeftShift32_1,
465        Self::FullLeftShift32_16,
466        Self::FullLeftShift32_2,
467        Self::FullLeftShift32_4,
468        Self::FullLeftShift32_8,
469        Self::FullLeftShift64_1,
470        Self::FullLeftShift64_16,
471        Self::FullLeftShift64_2,
472        Self::FullLeftShift64_32,
473        Self::FullLeftShift64_4,
474        Self::FullLeftShift64_8,
475        Self::FullLeftShift8_1,
476        Self::FullLeftShift8_2,
477        Self::FullLeftShift8_4,
478        Self::FullMultiply16,
479        Self::FullMultiply32,
480        Self::FullMultiply64,
481        Self::FullMultiply8,
482        Self::FullRightShift16_1,
483        Self::FullRightShift16_2,
484        Self::FullRightShift16_4,
485        Self::FullRightShift16_8,
486        Self::FullRightShift32_1,
487        Self::FullRightShift32_16,
488        Self::FullRightShift32_2,
489        Self::FullRightShift32_4,
490        Self::FullRightShift32_8,
491        Self::FullRightShift64_1,
492        Self::FullRightShift64_16,
493        Self::FullRightShift64_2,
494        Self::FullRightShift64_32,
495        Self::FullRightShift64_4,
496        Self::FullRightShift64_8,
497        Self::FullRightShift8_1,
498        Self::FullRightShift8_2,
499        Self::FullRightShift8_4,
500        Self::FullSubtract16,
501        Self::FullSubtract32,
502        Self::FullSubtract64,
503        Self::FullSubtract8,
504        Self::GeIsOnCurve,
505        Self::GeNegate,
506        Self::GejAdd,
507        Self::GejDouble,
508        Self::GejEquiv,
509        Self::GejGeAdd,
510        Self::GejGeAddEx,
511        Self::GejGeEquiv,
512        Self::GejInfinity,
513        Self::GejIsInfinity,
514        Self::GejIsOnCurve,
515        Self::GejNegate,
516        Self::GejNormalize,
517        Self::GejRescale,
518        Self::GejXEquiv,
519        Self::GejYIsOdd,
520        Self::Generate,
521        Self::HashToCurve,
522        Self::High1,
523        Self::High16,
524        Self::High32,
525        Self::High64,
526        Self::High8,
527        Self::Increment16,
528        Self::Increment32,
529        Self::Increment64,
530        Self::Increment8,
531        Self::IsOne16,
532        Self::IsOne32,
533        Self::IsOne64,
534        Self::IsOne8,
535        Self::IsZero16,
536        Self::IsZero32,
537        Self::IsZero64,
538        Self::IsZero8,
539        Self::Le16,
540        Self::Le32,
541        Self::Le64,
542        Self::Le8,
543        Self::LeftExtend16_32,
544        Self::LeftExtend16_64,
545        Self::LeftExtend1_16,
546        Self::LeftExtend1_32,
547        Self::LeftExtend1_64,
548        Self::LeftExtend1_8,
549        Self::LeftExtend32_64,
550        Self::LeftExtend8_16,
551        Self::LeftExtend8_32,
552        Self::LeftExtend8_64,
553        Self::LeftPadHigh16_32,
554        Self::LeftPadHigh16_64,
555        Self::LeftPadHigh1_16,
556        Self::LeftPadHigh1_32,
557        Self::LeftPadHigh1_64,
558        Self::LeftPadHigh1_8,
559        Self::LeftPadHigh32_64,
560        Self::LeftPadHigh8_16,
561        Self::LeftPadHigh8_32,
562        Self::LeftPadHigh8_64,
563        Self::LeftPadLow16_32,
564        Self::LeftPadLow16_64,
565        Self::LeftPadLow1_16,
566        Self::LeftPadLow1_32,
567        Self::LeftPadLow1_64,
568        Self::LeftPadLow1_8,
569        Self::LeftPadLow32_64,
570        Self::LeftPadLow8_16,
571        Self::LeftPadLow8_32,
572        Self::LeftPadLow8_64,
573        Self::LeftRotate16,
574        Self::LeftRotate32,
575        Self::LeftRotate64,
576        Self::LeftRotate8,
577        Self::LeftShift16,
578        Self::LeftShift32,
579        Self::LeftShift64,
580        Self::LeftShift8,
581        Self::LeftShiftWith16,
582        Self::LeftShiftWith32,
583        Self::LeftShiftWith64,
584        Self::LeftShiftWith8,
585        Self::Leftmost16_1,
586        Self::Leftmost16_2,
587        Self::Leftmost16_4,
588        Self::Leftmost16_8,
589        Self::Leftmost32_1,
590        Self::Leftmost32_16,
591        Self::Leftmost32_2,
592        Self::Leftmost32_4,
593        Self::Leftmost32_8,
594        Self::Leftmost64_1,
595        Self::Leftmost64_16,
596        Self::Leftmost64_2,
597        Self::Leftmost64_32,
598        Self::Leftmost64_4,
599        Self::Leftmost64_8,
600        Self::Leftmost8_1,
601        Self::Leftmost8_2,
602        Self::Leftmost8_4,
603        Self::LinearCombination1,
604        Self::LinearVerify1,
605        Self::Low1,
606        Self::Low16,
607        Self::Low32,
608        Self::Low64,
609        Self::Low8,
610        Self::Lt16,
611        Self::Lt32,
612        Self::Lt64,
613        Self::Lt8,
614        Self::Maj1,
615        Self::Maj16,
616        Self::Maj32,
617        Self::Maj64,
618        Self::Maj8,
619        Self::Max16,
620        Self::Max32,
621        Self::Max64,
622        Self::Max8,
623        Self::Median16,
624        Self::Median32,
625        Self::Median64,
626        Self::Median8,
627        Self::Min16,
628        Self::Min32,
629        Self::Min64,
630        Self::Min8,
631        Self::Modulo16,
632        Self::Modulo32,
633        Self::Modulo64,
634        Self::Modulo8,
635        Self::Multiply16,
636        Self::Multiply32,
637        Self::Multiply64,
638        Self::Multiply8,
639        Self::Negate16,
640        Self::Negate32,
641        Self::Negate64,
642        Self::Negate8,
643        Self::One16,
644        Self::One32,
645        Self::One64,
646        Self::One8,
647        Self::Or1,
648        Self::Or16,
649        Self::Or32,
650        Self::Or64,
651        Self::Or8,
652        Self::ParseLock,
653        Self::ParseSequence,
654        Self::PointVerify1,
655        Self::RightExtend16_32,
656        Self::RightExtend16_64,
657        Self::RightExtend32_64,
658        Self::RightExtend8_16,
659        Self::RightExtend8_32,
660        Self::RightExtend8_64,
661        Self::RightPadHigh16_32,
662        Self::RightPadHigh16_64,
663        Self::RightPadHigh1_16,
664        Self::RightPadHigh1_32,
665        Self::RightPadHigh1_64,
666        Self::RightPadHigh1_8,
667        Self::RightPadHigh32_64,
668        Self::RightPadHigh8_16,
669        Self::RightPadHigh8_32,
670        Self::RightPadHigh8_64,
671        Self::RightPadLow16_32,
672        Self::RightPadLow16_64,
673        Self::RightPadLow1_16,
674        Self::RightPadLow1_32,
675        Self::RightPadLow1_64,
676        Self::RightPadLow1_8,
677        Self::RightPadLow32_64,
678        Self::RightPadLow8_16,
679        Self::RightPadLow8_32,
680        Self::RightPadLow8_64,
681        Self::RightRotate16,
682        Self::RightRotate32,
683        Self::RightRotate64,
684        Self::RightRotate8,
685        Self::RightShift16,
686        Self::RightShift32,
687        Self::RightShift64,
688        Self::RightShift8,
689        Self::RightShiftWith16,
690        Self::RightShiftWith32,
691        Self::RightShiftWith64,
692        Self::RightShiftWith8,
693        Self::Rightmost16_1,
694        Self::Rightmost16_2,
695        Self::Rightmost16_4,
696        Self::Rightmost16_8,
697        Self::Rightmost32_1,
698        Self::Rightmost32_16,
699        Self::Rightmost32_2,
700        Self::Rightmost32_4,
701        Self::Rightmost32_8,
702        Self::Rightmost64_1,
703        Self::Rightmost64_16,
704        Self::Rightmost64_2,
705        Self::Rightmost64_32,
706        Self::Rightmost64_4,
707        Self::Rightmost64_8,
708        Self::Rightmost8_1,
709        Self::Rightmost8_2,
710        Self::Rightmost8_4,
711        Self::ScalarAdd,
712        Self::ScalarInvert,
713        Self::ScalarIsZero,
714        Self::ScalarMultiply,
715        Self::ScalarMultiplyLambda,
716        Self::ScalarNegate,
717        Self::ScalarNormalize,
718        Self::ScalarSquare,
719        Self::Scale,
720        Self::Sha256Block,
721        Self::Sha256Ctx8Add1,
722        Self::Sha256Ctx8Add128,
723        Self::Sha256Ctx8Add16,
724        Self::Sha256Ctx8Add2,
725        Self::Sha256Ctx8Add256,
726        Self::Sha256Ctx8Add32,
727        Self::Sha256Ctx8Add4,
728        Self::Sha256Ctx8Add512,
729        Self::Sha256Ctx8Add64,
730        Self::Sha256Ctx8Add8,
731        Self::Sha256Ctx8AddBuffer511,
732        Self::Sha256Ctx8Finalize,
733        Self::Sha256Ctx8Init,
734        Self::Sha256Iv,
735        Self::Some1,
736        Self::Some16,
737        Self::Some32,
738        Self::Some64,
739        Self::Some8,
740        Self::Subtract16,
741        Self::Subtract32,
742        Self::Subtract64,
743        Self::Subtract8,
744        Self::Swu,
745        Self::TapdataInit,
746        Self::Verify,
747        Self::Xor1,
748        Self::Xor16,
749        Self::Xor32,
750        Self::Xor64,
751        Self::Xor8,
752        Self::XorXor1,
753        Self::XorXor16,
754        Self::XorXor32,
755        Self::XorXor64,
756        Self::XorXor8,
757    ];
758}
759
760impl Jet for Core {
761
762    fn cmr(&self) -> Cmr {
763        let bytes = match self {
764            Core::Add16 => [
765                0x49, 0x42, 0x5a, 0x86, 0xe2, 0x0a, 0x67, 0x6d, 0x8b, 0x87, 0xe3, 0xc1, 0xa9, 0xb8,
766                0xea, 0x6e, 0xc7, 0x5d, 0x85, 0x9c, 0x12, 0xc5, 0x1b, 0xcb, 0x7f, 0xa9, 0xf9, 0x69,
767                0x12, 0xc3, 0x49, 0xcf,
768            ],
769            Core::Add32 => [
770                0x46, 0x68, 0xcd, 0x55, 0xe8, 0xd1, 0x59, 0x19, 0x53, 0x32, 0x70, 0x14, 0xec, 0x64,
771                0xc8, 0xe7, 0xd5, 0x2b, 0x86, 0xb5, 0x3e, 0x11, 0xc0, 0x14, 0x57, 0xea, 0xf2, 0xc3,
772                0xd3, 0xce, 0xbf, 0x9f,
773            ],
774            Core::Add64 => [
775                0xbe, 0x2b, 0x75, 0x19, 0x30, 0x3a, 0x67, 0xee, 0xa6, 0xb4, 0x82, 0x95, 0x0e, 0xda,
776                0x83, 0x43, 0x5e, 0x1d, 0xe8, 0x55, 0x9c, 0x39, 0x4a, 0x23, 0x62, 0x22, 0xff, 0x5b,
777                0xf0, 0x89, 0xd3, 0x46,
778            ],
779            Core::Add8 => [
780                0xdf, 0xa1, 0x79, 0xad, 0xf4, 0x55, 0x0b, 0x28, 0x48, 0x73, 0xbf, 0x30, 0x12, 0x3e,
781                0x0d, 0x4e, 0x54, 0x06, 0x9b, 0x08, 0x58, 0x34, 0xce, 0x56, 0x58, 0x15, 0xef, 0x7e,
782                0x45, 0x78, 0x4a, 0xcb,
783            ],
784            Core::All16 => [
785                0x24, 0xf4, 0x82, 0xa5, 0x13, 0xd3, 0x33, 0x62, 0x01, 0x5d, 0x28, 0xdf, 0x4b, 0xb6,
786                0xc3, 0xee, 0x08, 0xab, 0x8a, 0xfb, 0xbd, 0x25, 0x57, 0x1f, 0x0e, 0xa8, 0x9d, 0x8c,
787                0xab, 0xa3, 0x14, 0x04,
788            ],
789            Core::All32 => [
790                0xa7, 0x16, 0x52, 0x2d, 0x0f, 0x37, 0x87, 0xc8, 0xb4, 0xd5, 0x07, 0x64, 0x7f, 0x1f,
791                0x80, 0x7b, 0x67, 0xf3, 0x20, 0xd6, 0xeb, 0x67, 0xb8, 0x4b, 0x60, 0x9c, 0xec, 0x1d,
792                0x2f, 0x12, 0x21, 0x8a,
793            ],
794            Core::All64 => [
795                0x7a, 0xee, 0xfe, 0x2e, 0xce, 0x24, 0xba, 0xb3, 0x7c, 0x6e, 0x54, 0x30, 0xee, 0xd4,
796                0x19, 0xfc, 0xd5, 0xf0, 0x37, 0x91, 0x2d, 0x17, 0x70, 0xcb, 0x7d, 0x65, 0x20, 0xdc,
797                0xe5, 0x25, 0x29, 0x1a,
798            ],
799            Core::All8 => [
800                0x46, 0x37, 0xf4, 0x0e, 0x5f, 0x47, 0x26, 0xb0, 0x05, 0x70, 0x76, 0x5a, 0xc7, 0x94,
801                0xe2, 0x9e, 0xd1, 0xbb, 0x26, 0x55, 0xff, 0xc4, 0x12, 0xb2, 0xdc, 0x41, 0x25, 0x8e,
802                0x41, 0xaa, 0xc6, 0x24,
803            ],
804            Core::And1 => [
805                0x10, 0x68, 0x4d, 0x0d, 0xd7, 0x2c, 0xb0, 0xa8, 0x26, 0xa8, 0x63, 0x83, 0x4e, 0x01,
806                0x1f, 0x50, 0xfa, 0x0d, 0x55, 0x8b, 0xa7, 0x7d, 0x6b, 0x9f, 0x49, 0xa1, 0xac, 0x22,
807                0x90, 0x2a, 0x6a, 0xd0,
808            ],
809            Core::And16 => [
810                0x37, 0x3c, 0x73, 0x0f, 0xad, 0x3e, 0x88, 0x47, 0x99, 0x1a, 0xa4, 0x17, 0xd9, 0xf0,
811                0x80, 0xee, 0x1c, 0xb8, 0x8a, 0x7f, 0x72, 0x06, 0xf3, 0xfa, 0x84, 0x0b, 0x19, 0x50,
812                0x77, 0x61, 0xfb, 0x23,
813            ],
814            Core::And32 => [
815                0x13, 0xb0, 0x2c, 0x4c, 0x60, 0xae, 0x6e, 0xa4, 0x91, 0x16, 0x16, 0x49, 0xac, 0xf9,
816                0xa4, 0x7a, 0x70, 0x25, 0xaf, 0x84, 0x7d, 0x5f, 0x58, 0x1e, 0x6f, 0x1c, 0xcc, 0xfb,
817                0x21, 0xd3, 0x00, 0x1d,
818            ],
819            Core::And64 => [
820                0x92, 0x18, 0x55, 0x35, 0xd4, 0x50, 0x54, 0x07, 0xde, 0xa3, 0xc8, 0xa6, 0x08, 0x26,
821                0xed, 0xe6, 0x4a, 0x8f, 0xbb, 0x3d, 0xb4, 0x86, 0xd5, 0x6f, 0x64, 0x2d, 0x21, 0x7c,
822                0x29, 0xcb, 0xd7, 0x95,
823            ],
824            Core::And8 => [
825                0x26, 0x9a, 0x1b, 0x44, 0x62, 0x66, 0xf8, 0xf4, 0xa4, 0xa3, 0x8f, 0xa7, 0xe7, 0xe3,
826                0x91, 0x82, 0xf1, 0x52, 0x14, 0x36, 0x14, 0x2b, 0xad, 0xed, 0xf3, 0xaa, 0x63, 0xfb,
827                0x2f, 0x17, 0x2d, 0x2f,
828            ],
829            Core::Bip0340Verify => [
830                0x49, 0x15, 0x65, 0xfe, 0x23, 0xa7, 0xbd, 0xc1, 0x84, 0x2b, 0xe7, 0x49, 0x50, 0x93,
831                0x37, 0xf9, 0x68, 0x90, 0xd5, 0xb3, 0x58, 0xb3, 0x65, 0x20, 0x90, 0xda, 0x55, 0x66,
832                0x54, 0xe2, 0x95, 0x49,
833            ],
834            Core::Ch1 => [
835                0x73, 0xb2, 0xa9, 0x81, 0xd7, 0x21, 0x98, 0x6f, 0x8c, 0xde, 0xd6, 0x97, 0xe0, 0x63,
836                0x05, 0xd4, 0x58, 0x54, 0x10, 0x2d, 0xff, 0x20, 0xc0, 0xe5, 0xb9, 0x8a, 0xe1, 0x76,
837                0x23, 0x2f, 0xf2, 0x5b,
838            ],
839            Core::Ch16 => [
840                0x78, 0xde, 0x46, 0x5e, 0x61, 0xd9, 0xa5, 0x0f, 0x78, 0x25, 0x2f, 0xf4, 0xab, 0x23,
841                0xc9, 0xe6, 0x3a, 0xe6, 0x8c, 0x76, 0x9d, 0x36, 0x66, 0x12, 0x71, 0x20, 0x7d, 0xc6,
842                0x93, 0xf4, 0x69, 0xb4,
843            ],
844            Core::Ch32 => [
845                0xed, 0x93, 0xbe, 0xf1, 0xf6, 0x6e, 0x3a, 0x75, 0xe6, 0x12, 0x06, 0x02, 0xec, 0xee,
846                0x67, 0x40, 0x65, 0x3e, 0x7b, 0xd4, 0x6e, 0x07, 0xeb, 0x77, 0x14, 0x4e, 0xf1, 0xbb,
847                0x2c, 0x9d, 0xe5, 0x3d,
848            ],
849            Core::Ch64 => [
850                0xce, 0xd0, 0x07, 0x9b, 0x0b, 0xd1, 0xcc, 0x00, 0x20, 0x9a, 0x7c, 0xbc, 0x23, 0xf1,
851                0x3d, 0xfd, 0x20, 0x28, 0x08, 0xf0, 0xf5, 0x25, 0x7d, 0x8a, 0x50, 0xac, 0x54, 0x3e,
852                0x64, 0xee, 0x3a, 0x05,
853            ],
854            Core::Ch8 => [
855                0xc7, 0x07, 0xca, 0x72, 0x3e, 0x24, 0xf6, 0xb2, 0x5b, 0xf3, 0x94, 0xa9, 0x9a, 0x4d,
856                0x75, 0xe8, 0x13, 0x79, 0xb4, 0x67, 0x84, 0x38, 0xac, 0x78, 0x9d, 0xee, 0x18, 0x8e,
857                0xdc, 0xce, 0x75, 0xfa,
858            ],
859            Core::CheckSigVerify => [
860                0xb5, 0x80, 0x15, 0x54, 0x6d, 0x28, 0x52, 0x66, 0x5d, 0xd2, 0x1b, 0xf1, 0x12, 0x66,
861                0x26, 0x70, 0x20, 0xfa, 0x5e, 0x27, 0x50, 0x01, 0xdd, 0x46, 0x18, 0xfa, 0x41, 0x56,
862                0x25, 0x95, 0x2e, 0x68,
863            ],
864            Core::Complement1 => [
865                0x1b, 0xcf, 0xae, 0x13, 0xd5, 0xd2, 0x37, 0xa0, 0xbb, 0x9b, 0x1d, 0x75, 0x32, 0x04,
866                0x74, 0x62, 0xb2, 0x76, 0x90, 0xde, 0x5c, 0xac, 0x0e, 0x20, 0x19, 0x29, 0x89, 0x64,
867                0x57, 0x93, 0x40, 0x60,
868            ],
869            Core::Complement16 => [
870                0x81, 0xad, 0x4d, 0x2c, 0x3d, 0x16, 0xbf, 0x34, 0x0a, 0xf3, 0x88, 0x6d, 0x35, 0x5c,
871                0xc5, 0xbd, 0x1d, 0x59, 0x67, 0xe1, 0x6a, 0xce, 0x92, 0x4f, 0x19, 0xec, 0xf7, 0xd4,
872                0x86, 0xd6, 0xc7, 0xe9,
873            ],
874            Core::Complement32 => [
875                0x13, 0x74, 0x2c, 0x18, 0x04, 0xa9, 0x6e, 0x6c, 0x03, 0x95, 0x28, 0xbf, 0xd0, 0x3b,
876                0x8c, 0xf2, 0xb4, 0x62, 0x52, 0x6b, 0xb1, 0x81, 0xa3, 0xd8, 0xb4, 0x32, 0xf9, 0x9a,
877                0xc4, 0xf5, 0xa7, 0xef,
878            ],
879            Core::Complement64 => [
880                0x65, 0xb7, 0xbd, 0x09, 0x36, 0x39, 0xc5, 0x6d, 0xa2, 0x85, 0xce, 0xfa, 0x2d, 0x04,
881                0x64, 0x64, 0x5e, 0x14, 0xdd, 0x13, 0x64, 0x2f, 0x34, 0x95, 0x7d, 0x47, 0x37, 0xbd,
882                0x52, 0xfa, 0xc5, 0x88,
883            ],
884            Core::Complement8 => [
885                0x95, 0x4b, 0x70, 0xdc, 0xec, 0x53, 0x9e, 0x6b, 0x67, 0xdf, 0xfe, 0xc5, 0x3c, 0xf2,
886                0x4a, 0x66, 0x99, 0x39, 0x60, 0x8b, 0x22, 0x3f, 0x5f, 0x8b, 0x6d, 0x12, 0x9d, 0xaa,
887                0x48, 0xca, 0x1c, 0xf0,
888            ],
889            Core::Decompress => [
890                0x89, 0x00, 0x56, 0xdf, 0x82, 0x8a, 0x76, 0x6e, 0xe9, 0xf6, 0x56, 0x07, 0x22, 0x1e,
891                0x89, 0x46, 0xfa, 0x77, 0xc2, 0x56, 0xbb, 0x96, 0xe2, 0x31, 0xe1, 0x94, 0xd3, 0x00,
892                0x8c, 0xf3, 0x56, 0xf6,
893            ],
894            Core::Decrement16 => [
895                0x35, 0xfd, 0xa3, 0x8b, 0x67, 0x2c, 0x38, 0x31, 0xd8, 0xca, 0x11, 0xa4, 0xf3, 0xa9,
896                0x59, 0x62, 0x22, 0x52, 0x9e, 0xb1, 0xc1, 0x5f, 0x8c, 0x70, 0x50, 0x13, 0x97, 0x7d,
897                0x7d, 0xfb, 0x5d, 0x8b,
898            ],
899            Core::Decrement32 => [
900                0x3b, 0x2b, 0x19, 0x39, 0x55, 0x22, 0x84, 0xf6, 0x14, 0x69, 0x4b, 0xa1, 0x8d, 0xce,
901                0x70, 0xce, 0xe4, 0x76, 0xff, 0x42, 0xdc, 0xd0, 0x89, 0xe1, 0xa3, 0xc0, 0xa4, 0x2b,
902                0xeb, 0xd1, 0x08, 0xf6,
903            ],
904            Core::Decrement64 => [
905                0x7e, 0xf7, 0xbd, 0xd3, 0x5d, 0xb6, 0x85, 0xae, 0x99, 0x05, 0x53, 0x37, 0x35, 0xa2,
906                0xc7, 0xa7, 0xcc, 0xbc, 0x17, 0x08, 0xae, 0x63, 0x6f, 0x93, 0x1b, 0x5c, 0xe0, 0x26,
907                0xe5, 0xa1, 0x7f, 0xed,
908            ],
909            Core::Decrement8 => [
910                0xe3, 0x64, 0xf2, 0xe5, 0xc0, 0x8a, 0xe0, 0x11, 0x8e, 0xbe, 0x99, 0x3e, 0x8b, 0x3c,
911                0x95, 0x8c, 0x2b, 0xcc, 0x60, 0x62, 0xa3, 0x3b, 0xaa, 0xb9, 0x28, 0xc0, 0x4b, 0x3e,
912                0xc9, 0x32, 0xf5, 0x1b,
913            ],
914            Core::DivMod128_64 => [
915                0x9a, 0x94, 0x43, 0xa2, 0xb5, 0x41, 0xe2, 0x9f, 0x27, 0x2f, 0xfd, 0x56, 0x7d, 0x1b,
916                0xf7, 0x42, 0xd6, 0x8c, 0xcb, 0xe9, 0x53, 0x8a, 0x87, 0x29, 0x1b, 0x0c, 0xa6, 0x38,
917                0x15, 0x63, 0xac, 0x2c,
918            ],
919            Core::DivMod16 => [
920                0x39, 0xbc, 0xb5, 0xc0, 0x1d, 0xc1, 0x80, 0x5c, 0x49, 0x19, 0x89, 0x5c, 0xb5, 0x9e,
921                0x8f, 0x3b, 0x41, 0x44, 0x67, 0x17, 0xf7, 0xff, 0x48, 0xfd, 0xc9, 0x37, 0xdd, 0x03,
922                0x80, 0x24, 0xa0, 0x8a,
923            ],
924            Core::DivMod32 => [
925                0xfb, 0x12, 0x02, 0xf4, 0xe8, 0x66, 0x3a, 0x87, 0xf5, 0x68, 0x99, 0x2a, 0x18, 0x50,
926                0x24, 0xc7, 0x0b, 0x4f, 0x07, 0x9f, 0xbe, 0x95, 0x30, 0x01, 0x0f, 0x6d, 0xb2, 0x84,
927                0x21, 0x8a, 0xf6, 0xcd,
928            ],
929            Core::DivMod64 => [
930                0x67, 0x64, 0xdf, 0x5e, 0x2a, 0xa0, 0x30, 0x32, 0x6e, 0xe5, 0x44, 0xc6, 0xe5, 0x3f,
931                0xf3, 0x8e, 0xf0, 0xb2, 0x85, 0x17, 0x91, 0x5e, 0xec, 0x65, 0xc7, 0x2e, 0xa5, 0x7a,
932                0x12, 0x98, 0x28, 0xeb,
933            ],
934            Core::DivMod8 => [
935                0xd3, 0x00, 0x24, 0x4e, 0x48, 0x0d, 0xd9, 0x74, 0x12, 0x13, 0xe4, 0xcb, 0x0e, 0xba,
936                0x83, 0x6d, 0x30, 0x59, 0xe7, 0x78, 0xb8, 0x12, 0x2f, 0x78, 0x90, 0x03, 0x26, 0x73,
937                0x73, 0x9c, 0x6a, 0x2c,
938            ],
939            Core::Divide16 => [
940                0x52, 0xab, 0xfe, 0xf1, 0x79, 0x75, 0x4c, 0x90, 0xf9, 0xa4, 0x26, 0x0f, 0x32, 0x3a,
941                0x8c, 0xa4, 0x95, 0x15, 0x92, 0x90, 0x2b, 0x8e, 0xcb, 0xd6, 0x4b, 0xa4, 0x26, 0x56,
942                0xfa, 0xc0, 0x59, 0x68,
943            ],
944            Core::Divide32 => [
945                0x4a, 0x8a, 0xe5, 0x35, 0x44, 0xe1, 0x47, 0xed, 0x02, 0x25, 0x04, 0x23, 0x79, 0x34,
946                0xcc, 0x25, 0x44, 0x79, 0xbc, 0xf9, 0x3d, 0xe1, 0xe1, 0x97, 0x4d, 0xda, 0xb3, 0xbb,
947                0x51, 0x6e, 0x60, 0x6c,
948            ],
949            Core::Divide64 => [
950                0xd7, 0x02, 0x5d, 0x05, 0xad, 0xfa, 0xe6, 0x6b, 0x47, 0x10, 0xd0, 0xff, 0x1e, 0x87,
951                0xe8, 0x28, 0x15, 0x57, 0x3e, 0x9c, 0xb6, 0x31, 0xb4, 0xc7, 0xd1, 0x3d, 0x2f, 0x1b,
952                0xe4, 0xdd, 0x26, 0xd2,
953            ],
954            Core::Divide8 => [
955                0x40, 0xcd, 0x1d, 0xac, 0xea, 0x24, 0x66, 0x9b, 0x6a, 0x58, 0x9b, 0x61, 0x47, 0x54,
956                0x74, 0xaf, 0x31, 0xd1, 0x4f, 0x8d, 0x46, 0x87, 0x70, 0x84, 0x52, 0xd3, 0xdf, 0x37,
957                0x30, 0x25, 0x31, 0x26,
958            ],
959            Core::Divides16 => [
960                0x10, 0xbb, 0x18, 0x18, 0x0e, 0xab, 0x5b, 0xad, 0xdc, 0x16, 0x5d, 0x03, 0x37, 0xc4,
961                0xad, 0xa0, 0x88, 0xe1, 0x57, 0xb1, 0xaa, 0x67, 0x83, 0x34, 0x2a, 0x45, 0x20, 0xa3,
962                0x24, 0xdd, 0x9d, 0x2b,
963            ],
964            Core::Divides32 => [
965                0xf5, 0xe8, 0xe7, 0x8c, 0x82, 0x76, 0x9a, 0x48, 0xc9, 0x10, 0x3e, 0x44, 0xdd, 0xb4,
966                0x7f, 0x84, 0x1d, 0x76, 0x93, 0xb0, 0x41, 0x9e, 0x5e, 0x7d, 0xa4, 0xe6, 0x8b, 0x78,
967                0xb2, 0x37, 0xa5, 0x72,
968            ],
969            Core::Divides64 => [
970                0x9e, 0xbd, 0x55, 0xfa, 0xe4, 0x18, 0x88, 0x5e, 0xea, 0x04, 0xc3, 0xcd, 0xff, 0xf5,
971                0x31, 0xb7, 0xd7, 0x14, 0xd0, 0x59, 0x4f, 0xa7, 0xda, 0x87, 0xeb, 0x65, 0x55, 0xd3,
972                0x6b, 0x95, 0x3d, 0xb2,
973            ],
974            Core::Divides8 => [
975                0xa2, 0x36, 0xbc, 0x3e, 0x5c, 0xf4, 0xd2, 0x56, 0x40, 0x8b, 0xa3, 0x8c, 0x1e, 0xae,
976                0xe7, 0x36, 0x9a, 0x9c, 0x40, 0x2f, 0x74, 0xbc, 0xd1, 0xc8, 0x02, 0xf9, 0x09, 0x4f,
977                0xbf, 0x36, 0x80, 0x3d,
978            ],
979            Core::Eq1 => [
980                0x65, 0x49, 0xf9, 0x86, 0x20, 0x3a, 0x64, 0x97, 0x35, 0x6e, 0x43, 0x2b, 0x2a, 0xa1,
981                0x60, 0xd6, 0xee, 0x87, 0x0b, 0x11, 0x19, 0x08, 0x65, 0xbd, 0x36, 0xa4, 0x7c, 0xb0,
982                0x47, 0x04, 0x33, 0xa5,
983            ],
984            Core::Eq16 => [
985                0x0c, 0x54, 0x02, 0xb0, 0xad, 0xc8, 0xfc, 0x65, 0x70, 0x1b, 0xb7, 0x5b, 0x32, 0x54,
986                0xc8, 0x35, 0xf8, 0xfe, 0xc1, 0x30, 0x81, 0xcd, 0x35, 0xe1, 0x32, 0x8f, 0x2b, 0xd7,
987                0xdb, 0xd2, 0x3f, 0xa6,
988            ],
989            Core::Eq256 => [
990                0x26, 0x0e, 0x1d, 0x13, 0x6d, 0xd7, 0x44, 0xfc, 0xb0, 0x50, 0x7a, 0x2d, 0x27, 0x70,
991                0x27, 0xa7, 0x72, 0x43, 0x54, 0xeb, 0x17, 0x6b, 0x2f, 0xbf, 0x31, 0xc6, 0xc7, 0xd7,
992                0xfb, 0x3e, 0xcd, 0x6f,
993            ],
994            Core::Eq32 => [
995                0xf5, 0xd6, 0xed, 0xc8, 0xb6, 0x16, 0x4e, 0x12, 0x5b, 0xbb, 0xef, 0x08, 0xc9, 0xe0,
996                0x8a, 0x1e, 0x6f, 0xd4, 0x92, 0xf5, 0xbd, 0xca, 0x6f, 0xdc, 0x8b, 0x5f, 0x5a, 0x6f,
997                0x05, 0xc5, 0xab, 0x96,
998            ],
999            Core::Eq64 => [
1000                0x1f, 0x93, 0xac, 0xb8, 0x09, 0x2f, 0xa0, 0x6d, 0xea, 0xf3, 0xc3, 0x87, 0xf5, 0x4a,
1001                0x18, 0xff, 0xea, 0xa6, 0x9a, 0x47, 0xa6, 0xf5, 0xca, 0xf4, 0xae, 0x49, 0x7e, 0x5c,
1002                0xc2, 0xb3, 0x6c, 0x43,
1003            ],
1004            Core::Eq8 => [
1005                0xd7, 0x52, 0xfa, 0x7f, 0x51, 0x47, 0x30, 0x14, 0xeb, 0xb6, 0x9e, 0x1e, 0x1d, 0x2c,
1006                0x86, 0xd5, 0x11, 0x48, 0xb6, 0xba, 0xa0, 0x21, 0x37, 0xa4, 0x8f, 0x62, 0xd5, 0x7e,
1007                0xaf, 0x8d, 0xf1, 0xcd,
1008            ],
1009            Core::FeAdd => [
1010                0xa6, 0xc9, 0x0e, 0x02, 0xfd, 0xe4, 0xee, 0x6e, 0xef, 0x66, 0x67, 0x37, 0x49, 0x2e,
1011                0x14, 0xaf, 0xc8, 0x76, 0x25, 0x04, 0x97, 0x4a, 0xf5, 0xd5, 0x47, 0x2b, 0xb9, 0x43,
1012                0x3a, 0xd2, 0xd2, 0x94,
1013            ],
1014            Core::FeInvert => [
1015                0x7c, 0x4a, 0xba, 0xce, 0x33, 0xc7, 0x2b, 0x3b, 0xe1, 0xfd, 0x0e, 0xe3, 0x9f, 0xc6,
1016                0xcb, 0x3e, 0xe5, 0xc8, 0xf1, 0x1e, 0xf2, 0x19, 0x98, 0xc0, 0x60, 0x2b, 0x52, 0x15,
1017                0xaa, 0x2a, 0x75, 0xc2,
1018            ],
1019            Core::FeIsOdd => [
1020                0x30, 0xf5, 0x17, 0x1f, 0x58, 0xf1, 0x08, 0x9d, 0x5d, 0xcf, 0xb6, 0xe6, 0x68, 0x3f,
1021                0x5a, 0xde, 0x98, 0x4c, 0x07, 0x99, 0x76, 0x3c, 0xa7, 0x38, 0x3f, 0x75, 0xdf, 0x1c,
1022                0xa0, 0x81, 0x3e, 0xfe,
1023            ],
1024            Core::FeIsZero => [
1025                0xb0, 0xb7, 0x4d, 0x86, 0x51, 0xff, 0x55, 0x7c, 0xa9, 0x60, 0x44, 0xdd, 0x97, 0x28,
1026                0x13, 0x38, 0xa8, 0xf7, 0xd3, 0xac, 0xb3, 0x84, 0x7d, 0x03, 0xac, 0xbf, 0x3d, 0x32,
1027                0xd9, 0x6f, 0xae, 0x55,
1028            ],
1029            Core::FeMultiply => [
1030                0x50, 0x6b, 0x93, 0x19, 0xc1, 0x7a, 0x14, 0xa9, 0x46, 0x9d, 0x46, 0x27, 0x61, 0xa3,
1031                0x30, 0x3a, 0xb4, 0x7d, 0xdb, 0x3a, 0x30, 0x79, 0xfb, 0xa3, 0x40, 0x73, 0xaa, 0x55,
1032                0x42, 0x16, 0xa3, 0x88,
1033            ],
1034            Core::FeMultiplyBeta => [
1035                0x6e, 0x18, 0x0e, 0xea, 0xbe, 0x84, 0x22, 0xb7, 0x99, 0x68, 0xe7, 0x11, 0xdd, 0x00,
1036                0xa4, 0xb6, 0x57, 0x8b, 0xb2, 0x75, 0xbe, 0xf4, 0x7f, 0xe5, 0xff, 0x96, 0x8f, 0x14,
1037                0x72, 0xd7, 0x6f, 0x2a,
1038            ],
1039            Core::FeNegate => [
1040                0xd4, 0x37, 0xea, 0x00, 0x33, 0x98, 0x80, 0xb3, 0x83, 0xd8, 0x5f, 0xb2, 0xae, 0xaf,
1041                0x20, 0x1b, 0xbe, 0x8f, 0xfc, 0x83, 0x70, 0x50, 0x62, 0xf9, 0xc9, 0x68, 0x59, 0x0d,
1042                0x5d, 0xb3, 0x37, 0xf6,
1043            ],
1044            Core::FeNormalize => [
1045                0xec, 0x0c, 0x3d, 0xd9, 0xc5, 0x28, 0x63, 0x64, 0x78, 0xbe, 0xc0, 0xe1, 0x60, 0xe5,
1046                0x0a, 0xd9, 0xbf, 0x45, 0x2c, 0x5b, 0x6f, 0x84, 0xe9, 0x40, 0xe1, 0x65, 0x84, 0xeb,
1047                0x08, 0x5a, 0xce, 0x38,
1048            ],
1049            Core::FeSquare => [
1050                0xb9, 0x04, 0x77, 0x2d, 0x74, 0xa1, 0x85, 0xb8, 0x28, 0xeb, 0x15, 0x47, 0x28, 0xd2,
1051                0x49, 0xc5, 0x08, 0x47, 0x11, 0xe9, 0xa1, 0x83, 0x2b, 0x89, 0xca, 0xf2, 0xaf, 0x59,
1052                0xf9, 0x60, 0xe1, 0x18,
1053            ],
1054            Core::FeSquareRoot => [
1055                0x16, 0xfb, 0x9a, 0xce, 0xbe, 0x8b, 0x5b, 0x87, 0xf2, 0xea, 0x7d, 0xb6, 0xaa, 0x3a,
1056                0x2a, 0xf8, 0x8c, 0xa2, 0xb5, 0x8f, 0x02, 0xcd, 0xc8, 0x7e, 0x7c, 0xe6, 0xbe, 0x0c,
1057                0x1f, 0xfc, 0xe0, 0x14,
1058            ],
1059            Core::FullAdd16 => [
1060                0xc5, 0x03, 0xb0, 0x78, 0xdd, 0xe3, 0x99, 0xc6, 0x3a, 0xc4, 0xa2, 0x32, 0xbd, 0x2a,
1061                0x32, 0x9b, 0x04, 0x30, 0x8c, 0x75, 0xea, 0xec, 0x53, 0xa2, 0xf8, 0x89, 0xb8, 0xdf,
1062                0x0d, 0x03, 0x34, 0x72,
1063            ],
1064            Core::FullAdd32 => [
1065                0xa7, 0xaf, 0xd0, 0x40, 0xfc, 0xb0, 0xb2, 0xf2, 0x71, 0x90, 0x78, 0x1a, 0xe5, 0x3a,
1066                0x6c, 0xca, 0x00, 0xe9, 0xfe, 0x59, 0x53, 0x11, 0x15, 0xc2, 0x58, 0xcc, 0xb6, 0x9d,
1067                0x3b, 0xe5, 0xa2, 0x13,
1068            ],
1069            Core::FullAdd64 => [
1070                0x80, 0xa3, 0xef, 0x6c, 0xdb, 0x84, 0xae, 0x7c, 0x8d, 0xbc, 0xf3, 0xa1, 0x84, 0x24,
1071                0x84, 0xc0, 0x98, 0xdf, 0x6f, 0x19, 0x42, 0x7a, 0x5a, 0x4a, 0xdf, 0xe7, 0x6c, 0xd5,
1072                0xff, 0x28, 0x36, 0xca,
1073            ],
1074            Core::FullAdd8 => [
1075                0x4b, 0x90, 0x76, 0xb8, 0xc1, 0xad, 0x56, 0xc9, 0xdb, 0x6b, 0xb3, 0xba, 0xf5, 0x93,
1076                0x89, 0x54, 0x46, 0xce, 0x61, 0xc7, 0x4f, 0x79, 0x7e, 0xb8, 0xb2, 0x30, 0xd2, 0x05,
1077                0x42, 0x1c, 0x96, 0x17,
1078            ],
1079            Core::FullDecrement16 => [
1080                0xfb, 0xa3, 0xc9, 0x78, 0x6e, 0xa3, 0x07, 0xf6, 0xd8, 0x54, 0x34, 0xfd, 0xa2, 0x56,
1081                0x24, 0x82, 0x43, 0xa0, 0x0b, 0xac, 0x9a, 0x53, 0x53, 0xb6, 0x1e, 0xd3, 0x9c, 0x60,
1082                0x55, 0xb6, 0x93, 0xb0,
1083            ],
1084            Core::FullDecrement32 => [
1085                0x62, 0x3d, 0x21, 0xd0, 0x46, 0x79, 0x22, 0xc0, 0x01, 0xc5, 0x65, 0x68, 0x61, 0xd0,
1086                0xdd, 0xb8, 0x60, 0xc0, 0xc9, 0xa8, 0x6b, 0xd4, 0xcf, 0xdc, 0x37, 0xa1, 0x4c, 0x14,
1087                0x06, 0xe3, 0x44, 0x6e,
1088            ],
1089            Core::FullDecrement64 => [
1090                0x14, 0x8b, 0x3e, 0xe1, 0xf7, 0x49, 0xea, 0x0b, 0xfb, 0xa7, 0x63, 0xbe, 0xe9, 0x99,
1091                0xa2, 0x96, 0x77, 0x45, 0x6e, 0xae, 0x9e, 0xf5, 0x3a, 0xd8, 0x78, 0xf8, 0xb6, 0x14,
1092                0x94, 0xf0, 0x8f, 0x00,
1093            ],
1094            Core::FullDecrement8 => [
1095                0xb4, 0x1a, 0xfe, 0x97, 0x4e, 0xaa, 0x11, 0x82, 0xac, 0x46, 0x10, 0x52, 0x1e, 0x28,
1096                0x27, 0x81, 0x31, 0x8c, 0xe2, 0x95, 0xa3, 0xf2, 0x3f, 0x0b, 0x87, 0x6a, 0xe2, 0x69,
1097                0x67, 0x3f, 0xb1, 0xdf,
1098            ],
1099            Core::FullIncrement16 => [
1100                0xa6, 0x8e, 0xcc, 0xdb, 0x9e, 0xad, 0x29, 0x26, 0xc3, 0xe4, 0x5b, 0x4b, 0xae, 0x43,
1101                0x1c, 0xc4, 0x66, 0xd5, 0x8b, 0x8f, 0xac, 0xc9, 0x5a, 0x1b, 0x48, 0x44, 0xb9, 0x12,
1102                0xdf, 0x56, 0x76, 0xdf,
1103            ],
1104            Core::FullIncrement32 => [
1105                0xd0, 0xeb, 0x0e, 0x94, 0xa5, 0xc2, 0x57, 0x13, 0xeb, 0x94, 0x4c, 0xad, 0x4d, 0x70,
1106                0x1c, 0x6a, 0x96, 0x88, 0x09, 0xbc, 0x1a, 0xf9, 0x03, 0xfd, 0xb1, 0x1e, 0x6f, 0xad,
1107                0x0b, 0xb3, 0x1b, 0x10,
1108            ],
1109            Core::FullIncrement64 => [
1110                0xc0, 0x03, 0xd2, 0xe9, 0xb0, 0xa5, 0x10, 0xc2, 0xdd, 0x78, 0x3e, 0x7d, 0x64, 0xeb,
1111                0x87, 0xb3, 0x38, 0x55, 0xd3, 0x29, 0x90, 0xdf, 0xc2, 0x86, 0x26, 0x6e, 0x47, 0x8d,
1112                0xa4, 0xe7, 0x47, 0x91,
1113            ],
1114            Core::FullIncrement8 => [
1115                0x0b, 0xea, 0x24, 0x29, 0x18, 0xf2, 0xdd, 0x17, 0x64, 0x77, 0x78, 0x11, 0xe4, 0x44,
1116                0x28, 0x63, 0x93, 0x52, 0x25, 0xb0, 0xf8, 0xb2, 0x39, 0xc2, 0x37, 0x52, 0xf9, 0xd8,
1117                0x53, 0x92, 0xa1, 0x39,
1118            ],
1119            Core::FullLeftShift16_1 => [
1120                0xb3, 0x66, 0xa8, 0x16, 0x92, 0x2f, 0xc4, 0x55, 0x01, 0x0f, 0xe8, 0x8a, 0x5f, 0x6a,
1121                0x5c, 0xf2, 0xce, 0xa9, 0x17, 0xe1, 0x2b, 0xd1, 0x40, 0xae, 0x6d, 0x43, 0xb6, 0x41,
1122                0xe5, 0x7f, 0x42, 0xb3,
1123            ],
1124            Core::FullLeftShift16_2 => [
1125                0x27, 0x96, 0x0d, 0x0d, 0xf2, 0xfb, 0xbc, 0x38, 0x99, 0x3d, 0x86, 0xfb, 0x8f, 0x0c,
1126                0xd2, 0xc3, 0x43, 0x4e, 0xdb, 0x11, 0x04, 0x82, 0x13, 0xc1, 0x41, 0x18, 0x93, 0xca,
1127                0x99, 0x33, 0xb2, 0xee,
1128            ],
1129            Core::FullLeftShift16_4 => [
1130                0x65, 0x51, 0x37, 0xbe, 0xc5, 0xc0, 0x36, 0x8f, 0x29, 0xbc, 0x99, 0x2c, 0x88, 0x42,
1131                0x1a, 0x15, 0x98, 0x56, 0x40, 0x39, 0x7b, 0x61, 0x7f, 0xc4, 0x8d, 0x33, 0x21, 0x0f,
1132                0xc0, 0x05, 0x3a, 0xd1,
1133            ],
1134            Core::FullLeftShift16_8 => [
1135                0x16, 0x8f, 0x57, 0x6a, 0xa5, 0x6e, 0xa4, 0x7e, 0x07, 0x06, 0x46, 0xe7, 0x88, 0x96,
1136                0xbe, 0xb2, 0x49, 0x8b, 0x1a, 0xe6, 0xb1, 0xff, 0x9c, 0x78, 0x62, 0x70, 0xe9, 0x55,
1137                0x65, 0x84, 0x19, 0x29,
1138            ],
1139            Core::FullLeftShift32_1 => [
1140                0xd7, 0xcd, 0x52, 0x24, 0x49, 0x11, 0x8e, 0x81, 0x00, 0xa7, 0x66, 0x2f, 0x4d, 0xf0,
1141                0x39, 0xf8, 0xca, 0xeb, 0xf4, 0x33, 0xeb, 0x03, 0x9e, 0xdc, 0x42, 0xe8, 0x82, 0x37,
1142                0x92, 0xcc, 0xea, 0x8a,
1143            ],
1144            Core::FullLeftShift32_16 => [
1145                0x8b, 0xd8, 0x0d, 0x4d, 0x2f, 0x8b, 0x22, 0x46, 0xc1, 0x23, 0x15, 0xc4, 0x28, 0x41,
1146                0xb4, 0xe4, 0x0a, 0x71, 0xae, 0x76, 0x96, 0x6a, 0x08, 0x95, 0x4d, 0x66, 0x6b, 0x86,
1147                0x32, 0x86, 0x74, 0x37,
1148            ],
1149            Core::FullLeftShift32_2 => [
1150                0x13, 0x06, 0x3d, 0x62, 0x93, 0x83, 0x29, 0x31, 0x1f, 0xb7, 0xda, 0xbb, 0x15, 0xc3,
1151                0xfe, 0x58, 0xc2, 0x88, 0x76, 0x83, 0x00, 0x97, 0xec, 0xc6, 0xbf, 0xdd, 0x48, 0x0b,
1152                0xe1, 0x98, 0x81, 0x46,
1153            ],
1154            Core::FullLeftShift32_4 => [
1155                0x25, 0xa1, 0xb5, 0xdd, 0xe5, 0xdb, 0x28, 0x4e, 0x8a, 0x88, 0x21, 0x26, 0x7c, 0x26,
1156                0x53, 0x01, 0x14, 0xbb, 0xe6, 0x71, 0xcf, 0xaf, 0xb4, 0x4a, 0x60, 0xd7, 0x50, 0x27,
1157                0x67, 0xdb, 0x78, 0x2e,
1158            ],
1159            Core::FullLeftShift32_8 => [
1160                0xce, 0x54, 0x70, 0xaf, 0xbf, 0xad, 0xbf, 0xba, 0x68, 0xf9, 0xb2, 0xd5, 0xb0, 0x64,
1161                0x5a, 0x44, 0x08, 0xbe, 0x6f, 0x85, 0xa6, 0x9c, 0x7f, 0x09, 0xd0, 0x96, 0x45, 0x53,
1162                0x68, 0x04, 0x87, 0x64,
1163            ],
1164            Core::FullLeftShift64_1 => [
1165                0x05, 0x1f, 0x36, 0x05, 0x86, 0xc3, 0x79, 0xac, 0x2c, 0xe3, 0x99, 0xcb, 0xeb, 0x68,
1166                0x7e, 0x77, 0x53, 0xb1, 0x5d, 0x73, 0x03, 0xdd, 0x31, 0x6c, 0xbd, 0x12, 0x30, 0x12,
1167                0x08, 0x7c, 0xc6, 0x6f,
1168            ],
1169            Core::FullLeftShift64_16 => [
1170                0xb2, 0x48, 0xbe, 0x4d, 0xfc, 0xb8, 0x8c, 0x5d, 0x89, 0xb1, 0xca, 0x61, 0x86, 0xa0,
1171                0x41, 0xe9, 0x02, 0xb4, 0xc8, 0xa6, 0x2b, 0xb1, 0x6e, 0x09, 0xfe, 0x15, 0x61, 0x6e,
1172                0x0e, 0x3a, 0xbd, 0x6d,
1173            ],
1174            Core::FullLeftShift64_2 => [
1175                0x34, 0xbb, 0x51, 0x62, 0x6b, 0x1d, 0x6b, 0x89, 0x7a, 0xbc, 0x15, 0x5d, 0x03, 0x4f,
1176                0xe0, 0x66, 0x3a, 0x0e, 0xc0, 0xfd, 0x8f, 0x64, 0x0e, 0x5f, 0xe1, 0xbf, 0x3c, 0xb7,
1177                0x67, 0x0a, 0x29, 0x25,
1178            ],
1179            Core::FullLeftShift64_32 => [
1180                0x9d, 0xac, 0x8c, 0xd7, 0xfd, 0x8b, 0x48, 0x88, 0x9e, 0x55, 0xc5, 0xaa, 0x12, 0xfe,
1181                0x97, 0xb7, 0x29, 0xfe, 0xbc, 0x04, 0x1a, 0x9f, 0xff, 0x44, 0xc4, 0xd9, 0xb6, 0xf1,
1182                0xe0, 0x7e, 0xb4, 0x42,
1183            ],
1184            Core::FullLeftShift64_4 => [
1185                0x94, 0xb7, 0x3d, 0xad, 0xc3, 0xee, 0xeb, 0x2e, 0xe4, 0xa4, 0xd4, 0x44, 0xdd, 0x0f,
1186                0x72, 0xac, 0x30, 0x62, 0x01, 0xf2, 0xff, 0xcf, 0x71, 0x4b, 0x8e, 0xbe, 0x79, 0x82,
1187                0x74, 0x4c, 0x0c, 0x7e,
1188            ],
1189            Core::FullLeftShift64_8 => [
1190                0x0e, 0xf7, 0x14, 0x75, 0x7e, 0xcf, 0x11, 0xca, 0x3c, 0x73, 0xce, 0x25, 0xef, 0x24,
1191                0xee, 0x72, 0x95, 0xdd, 0x41, 0x71, 0xcc, 0x16, 0x28, 0x7f, 0xe6, 0x97, 0x1b, 0xd6,
1192                0x7b, 0x47, 0x8b, 0x46,
1193            ],
1194            Core::FullLeftShift8_1 => [
1195                0x9b, 0xfa, 0x48, 0xb7, 0xad, 0x51, 0x00, 0x91, 0xba, 0x60, 0x85, 0x44, 0x62, 0xd8,
1196                0x59, 0xef, 0xd1, 0xa2, 0xaa, 0x18, 0x73, 0x1b, 0x5f, 0x0c, 0x9e, 0x2b, 0xa4, 0xd8,
1197                0x9d, 0x3a, 0xa8, 0x43,
1198            ],
1199            Core::FullLeftShift8_2 => [
1200                0x79, 0x7c, 0x20, 0x87, 0x01, 0xb2, 0xa4, 0xe1, 0x04, 0x9e, 0x83, 0xd6, 0x95, 0xf5,
1201                0x54, 0xb9, 0x84, 0xf5, 0xdb, 0x28, 0x21, 0x52, 0x55, 0x58, 0x7c, 0x37, 0x34, 0x21,
1202                0x51, 0xb7, 0x24, 0x1d,
1203            ],
1204            Core::FullLeftShift8_4 => [
1205                0x37, 0xbd, 0xac, 0x91, 0x53, 0x8f, 0x22, 0x19, 0xcb, 0x89, 0xdf, 0x0e, 0xf9, 0xf1,
1206                0x97, 0xcd, 0x68, 0x03, 0x1f, 0x27, 0x67, 0xe8, 0x94, 0xf0, 0x01, 0xc2, 0x6f, 0xff,
1207                0x5e, 0xeb, 0x58, 0xcd,
1208            ],
1209            Core::FullMultiply16 => [
1210                0x09, 0xba, 0xff, 0x92, 0x1e, 0x9f, 0x14, 0xd1, 0x20, 0x8d, 0x1d, 0xd8, 0x26, 0x4c,
1211                0xf1, 0xf3, 0xb8, 0x54, 0xc9, 0xaf, 0x21, 0xf7, 0x78, 0xb2, 0xb5, 0x5a, 0x8a, 0x42,
1212                0x6d, 0xfe, 0x89, 0x28,
1213            ],
1214            Core::FullMultiply32 => [
1215                0x10, 0xc4, 0xb8, 0xc4, 0xc0, 0xac, 0xd9, 0x73, 0x90, 0xf8, 0x5c, 0xb3, 0xf5, 0xff,
1216                0xe3, 0x6a, 0x29, 0x20, 0x37, 0xc1, 0x90, 0xee, 0xba, 0xb3, 0xe9, 0x89, 0x34, 0xfe,
1217                0x93, 0xb2, 0xed, 0x90,
1218            ],
1219            Core::FullMultiply64 => [
1220                0x2d, 0xb1, 0x9d, 0xba, 0x90, 0xef, 0x86, 0x7b, 0x5a, 0x3e, 0x91, 0x4b, 0x89, 0xfd,
1221                0xa2, 0xda, 0x63, 0x7c, 0xa8, 0x0c, 0x42, 0x67, 0xe1, 0x98, 0x18, 0x37, 0xee, 0x3c,
1222                0x6f, 0xe3, 0xda, 0xf5,
1223            ],
1224            Core::FullMultiply8 => [
1225                0x7f, 0x46, 0xee, 0x72, 0x84, 0xf3, 0x9e, 0x73, 0x42, 0x75, 0xa2, 0x50, 0x9a, 0x0b,
1226                0x73, 0x7e, 0xd9, 0x39, 0x11, 0x5f, 0x02, 0x19, 0xa5, 0x74, 0xd4, 0x69, 0xcd, 0x30,
1227                0xb8, 0x19, 0xef, 0xe3,
1228            ],
1229            Core::FullRightShift16_1 => [
1230                0x7e, 0xbe, 0x0c, 0x66, 0xc3, 0xc7, 0xdc, 0x16, 0xa5, 0x46, 0x9e, 0x91, 0x79, 0x09,
1231                0x84, 0x17, 0xac, 0x5f, 0x20, 0xa3, 0x9c, 0xc4, 0x1a, 0xc3, 0x82, 0xfb, 0x1d, 0xbd,
1232                0x98, 0xe8, 0xe3, 0x0f,
1233            ],
1234            Core::FullRightShift16_2 => [
1235                0x8d, 0xb0, 0xc2, 0x16, 0x19, 0xc6, 0x2d, 0x63, 0xd4, 0xc2, 0x7b, 0xfc, 0xf6, 0x47,
1236                0xd7, 0x09, 0xce, 0x37, 0xbe, 0xd0, 0x57, 0x18, 0xe9, 0x3e, 0x45, 0x15, 0xe2, 0x9e,
1237                0xf3, 0x73, 0x0c, 0xf4,
1238            ],
1239            Core::FullRightShift16_4 => [
1240                0x5c, 0x74, 0xb1, 0x32, 0x06, 0x31, 0x79, 0x17, 0xe0, 0x70, 0xe5, 0xfc, 0x1c, 0x82,
1241                0xf4, 0xc5, 0xc2, 0xfb, 0xe9, 0xf3, 0x1b, 0x81, 0x29, 0x46, 0xba, 0x23, 0x0d, 0x8c,
1242                0x94, 0xd4, 0x06, 0x16,
1243            ],
1244            Core::FullRightShift16_8 => [
1245                0x11, 0x05, 0x81, 0x8a, 0xc9, 0x48, 0xd7, 0xbb, 0x63, 0x47, 0x07, 0xe6, 0x9d, 0xbf,
1246                0x1f, 0x67, 0x90, 0x58, 0xa1, 0x3d, 0x35, 0xfa, 0xc2, 0xa6, 0x4d, 0xf9, 0x72, 0x62,
1247                0xf2, 0x42, 0xb6, 0x3b,
1248            ],
1249            Core::FullRightShift32_1 => [
1250                0x9b, 0x42, 0xc8, 0xf3, 0x3b, 0xc5, 0x75, 0x0e, 0x2a, 0x83, 0xaa, 0xdb, 0xf2, 0x9c,
1251                0xc7, 0xfc, 0xb9, 0x50, 0xfe, 0x5a, 0x40, 0xaa, 0x0e, 0xc5, 0x24, 0x52, 0xe5, 0x33,
1252                0xf8, 0x25, 0xa1, 0x15,
1253            ],
1254            Core::FullRightShift32_16 => [
1255                0x0a, 0xe5, 0x65, 0x9c, 0x2f, 0xa7, 0x57, 0x94, 0x78, 0xeb, 0xd5, 0x7c, 0x4c, 0x98,
1256                0xae, 0xe7, 0x77, 0x01, 0x56, 0x45, 0xb2, 0x84, 0x31, 0x81, 0x64, 0xfc, 0xbd, 0x30,
1257                0x65, 0xfc, 0x87, 0x3c,
1258            ],
1259            Core::FullRightShift32_2 => [
1260                0x57, 0xfb, 0x1c, 0x03, 0xc2, 0xeb, 0x17, 0xf6, 0x23, 0x47, 0x87, 0x34, 0xfd, 0x69,
1261                0x37, 0xf9, 0xe3, 0xef, 0x02, 0x7c, 0x15, 0x60, 0x03, 0x8f, 0xa6, 0x06, 0x69, 0x05,
1262                0x17, 0x89, 0xe3, 0x68,
1263            ],
1264            Core::FullRightShift32_4 => [
1265                0x85, 0x82, 0xcd, 0xfa, 0x74, 0xef, 0x46, 0x6b, 0x81, 0x27, 0xb1, 0x97, 0x88, 0x13,
1266                0x45, 0x93, 0x99, 0x8e, 0x49, 0x69, 0x00, 0xb3, 0x8f, 0x0f, 0x3d, 0x37, 0x58, 0x18,
1267                0xd6, 0x73, 0x45, 0x1e,
1268            ],
1269            Core::FullRightShift32_8 => [
1270                0xd9, 0x05, 0x93, 0x2e, 0xbf, 0xca, 0x2a, 0x38, 0x61, 0x9d, 0x80, 0x7e, 0x28, 0xff,
1271                0x2e, 0x0d, 0x3b, 0xe0, 0x8a, 0x26, 0x06, 0x76, 0xd2, 0x57, 0xef, 0xa0, 0x40, 0xc3,
1272                0x05, 0xaa, 0xdc, 0x33,
1273            ],
1274            Core::FullRightShift64_1 => [
1275                0x3c, 0x15, 0x20, 0x9b, 0x99, 0xd2, 0x84, 0x5e, 0x22, 0x5e, 0x14, 0xe1, 0xe9, 0xe5,
1276                0xe6, 0xa4, 0x87, 0x8b, 0xc8, 0xce, 0xa3, 0xf9, 0xf3, 0x6b, 0x8b, 0x53, 0x5a, 0xc6,
1277                0x83, 0xe2, 0x9d, 0x00,
1278            ],
1279            Core::FullRightShift64_16 => [
1280                0x02, 0x85, 0x25, 0x7b, 0x09, 0x0d, 0x8d, 0xa1, 0x28, 0xef, 0x64, 0xa8, 0x0c, 0x8d,
1281                0x16, 0xfd, 0xc3, 0xbf, 0x5c, 0xe5, 0x0f, 0xcd, 0x56, 0xfe, 0xc5, 0xf9, 0x02, 0x55,
1282                0xd9, 0xc8, 0xdf, 0x47,
1283            ],
1284            Core::FullRightShift64_2 => [
1285                0x7e, 0xc2, 0xdd, 0x65, 0xc9, 0xe0, 0x13, 0xe3, 0xe4, 0xce, 0x90, 0xfb, 0xeb, 0x3f,
1286                0xb1, 0xc7, 0x8c, 0xcc, 0x5d, 0x2a, 0x7d, 0x26, 0xd8, 0xaf, 0x77, 0xf9, 0x9d, 0xe8,
1287                0x4c, 0xf7, 0x29, 0x73,
1288            ],
1289            Core::FullRightShift64_32 => [
1290                0x35, 0x6f, 0x7d, 0xd4, 0x6b, 0xa3, 0x3f, 0x84, 0xb0, 0x66, 0x72, 0xfd, 0xe9, 0xa2,
1291                0x97, 0x2e, 0x80, 0xf3, 0xea, 0x96, 0x5a, 0xe8, 0xbc, 0x0b, 0xff, 0x67, 0xaa, 0x2f,
1292                0x69, 0xf1, 0x0b, 0x56,
1293            ],
1294            Core::FullRightShift64_4 => [
1295                0x05, 0x46, 0x4a, 0x33, 0x35, 0xaf, 0xbb, 0x09, 0xd0, 0x46, 0x82, 0x8a, 0x92, 0x2c,
1296                0x4d, 0xa0, 0xec, 0xee, 0xb1, 0x09, 0x77, 0xe4, 0x68, 0x01, 0xc9, 0x3c, 0xdd, 0x66,
1297                0x8f, 0x22, 0xee, 0x63,
1298            ],
1299            Core::FullRightShift64_8 => [
1300                0x70, 0x17, 0x2e, 0x1a, 0x69, 0x48, 0xbf, 0x40, 0x12, 0x0e, 0x68, 0xfb, 0x8b, 0x4b,
1301                0x23, 0xbc, 0x35, 0x5a, 0x12, 0x00, 0x2c, 0xcc, 0x1d, 0xb6, 0x47, 0xc8, 0x9b, 0x12,
1302                0xd1, 0x0e, 0xc5, 0x06,
1303            ],
1304            Core::FullRightShift8_1 => [
1305                0x56, 0x69, 0xdb, 0xfc, 0xc6, 0x33, 0xec, 0x0b, 0xdf, 0x59, 0xe2, 0x2f, 0x03, 0xed,
1306                0x4b, 0x64, 0x19, 0x20, 0x95, 0xf5, 0xdf, 0x20, 0xff, 0xc1, 0x2d, 0xd9, 0x0d, 0x7c,
1307                0xda, 0x11, 0x37, 0x4f,
1308            ],
1309            Core::FullRightShift8_2 => [
1310                0x1f, 0x94, 0x43, 0x61, 0x09, 0xdf, 0x52, 0xb3, 0x45, 0xfa, 0x3a, 0x89, 0xac, 0x2a,
1311                0x49, 0xed, 0xc9, 0xd2, 0x85, 0xf2, 0x1f, 0x45, 0xed, 0x11, 0xd7, 0x75, 0xf7, 0xf7,
1312                0xf3, 0x9d, 0x3e, 0x8f,
1313            ],
1314            Core::FullRightShift8_4 => [
1315                0x71, 0x46, 0x98, 0xa2, 0x76, 0x84, 0xb5, 0xba, 0xa6, 0xb6, 0x48, 0x0e, 0xe3, 0xb2,
1316                0x57, 0xcb, 0xb7, 0xcd, 0xab, 0x74, 0x72, 0xf3, 0x71, 0xa6, 0x27, 0x06, 0x18, 0xc0,
1317                0xab, 0x12, 0x90, 0x8b,
1318            ],
1319            Core::FullSubtract16 => [
1320                0x40, 0x09, 0x61, 0x52, 0xb5, 0x4e, 0x74, 0x25, 0x45, 0x55, 0xa6, 0x5d, 0xcc, 0xc6,
1321                0x29, 0xdf, 0x57, 0xb9, 0x79, 0xc8, 0x47, 0x00, 0x54, 0x50, 0x36, 0xfe, 0x19, 0x0a,
1322                0x6a, 0xf3, 0xd3, 0x8a,
1323            ],
1324            Core::FullSubtract32 => [
1325                0xe7, 0x93, 0x0d, 0x64, 0x35, 0xa9, 0x68, 0x0b, 0xef, 0xb4, 0x9d, 0xb7, 0xd8, 0x7c,
1326                0x2f, 0x50, 0xaf, 0xd4, 0x6d, 0x98, 0x88, 0x0d, 0xed, 0x50, 0xe5, 0x05, 0x5f, 0xa3,
1327                0x09, 0xe1, 0xaf, 0xca,
1328            ],
1329            Core::FullSubtract64 => [
1330                0xff, 0x28, 0x1d, 0xf8, 0xc4, 0x2a, 0x31, 0x59, 0xd9, 0xff, 0xa9, 0x25, 0x16, 0xca,
1331                0x89, 0x3e, 0x23, 0xb0, 0xeb, 0x93, 0x8b, 0x4c, 0xb0, 0xb3, 0xf1, 0x34, 0x46, 0x8e,
1332                0x9f, 0x4e, 0xbc, 0x46,
1333            ],
1334            Core::FullSubtract8 => [
1335                0x7e, 0x3d, 0xcf, 0xe4, 0x56, 0xae, 0x3c, 0x5c, 0x87, 0xde, 0xbf, 0x04, 0x71, 0x89,
1336                0xc2, 0x74, 0x82, 0xa4, 0xff, 0x4e, 0x8c, 0xfd, 0x1f, 0x17, 0x30, 0xc8, 0x7d, 0x2b,
1337                0x7b, 0xff, 0x73, 0xba,
1338            ],
1339            Core::GeIsOnCurve => [
1340                0x7d, 0x44, 0x87, 0x19, 0xf5, 0xf9, 0x57, 0x2b, 0xf5, 0x40, 0x2e, 0x12, 0xd1, 0x93,
1341                0xaf, 0xf6, 0x77, 0x48, 0x2d, 0x66, 0xff, 0x3d, 0xcf, 0x27, 0x48, 0xf2, 0x5c, 0x6b,
1342                0x73, 0x77, 0x02, 0x8c,
1343            ],
1344            Core::GeNegate => [
1345                0x3d, 0x2c, 0x8d, 0xe4, 0xc7, 0x01, 0x5f, 0xd3, 0x13, 0x26, 0x95, 0xfd, 0x66, 0xdf,
1346                0xcf, 0x0f, 0x17, 0x78, 0xc7, 0x91, 0x85, 0x26, 0x8e, 0x9f, 0xae, 0x77, 0x89, 0xda,
1347                0x53, 0x8e, 0xca, 0x59,
1348            ],
1349            Core::GejAdd => [
1350                0x45, 0xba, 0x7f, 0x3d, 0x1e, 0x1e, 0x6d, 0x34, 0x9f, 0xcf, 0x86, 0x98, 0x7b, 0x0e,
1351                0x7f, 0x7a, 0xce, 0x66, 0x2e, 0x82, 0x20, 0x1d, 0x35, 0x02, 0x60, 0x45, 0x4e, 0x2f,
1352                0xfe, 0xec, 0xb5, 0x4d,
1353            ],
1354            Core::GejDouble => [
1355                0x23, 0xe9, 0x78, 0xf3, 0x41, 0x54, 0x11, 0x9b, 0xde, 0xfc, 0x5d, 0x13, 0xfc, 0xfd,
1356                0x0a, 0x34, 0xa7, 0x5e, 0x37, 0x26, 0xd6, 0xcb, 0x25, 0x81, 0x33, 0x70, 0xad, 0x7d,
1357                0x9d, 0xe5, 0xe1, 0x33,
1358            ],
1359            Core::GejEquiv => [
1360                0xb9, 0x4b, 0x2a, 0xac, 0x73, 0xa6, 0x7f, 0x44, 0x95, 0x85, 0x99, 0x13, 0x4d, 0xe2,
1361                0x30, 0x17, 0x9e, 0x9d, 0x6b, 0xb6, 0x47, 0xfd, 0x06, 0x11, 0x15, 0x8a, 0xab, 0xa7,
1362                0x0b, 0x73, 0xe4, 0x00,
1363            ],
1364            Core::GejGeAdd => [
1365                0xf1, 0x16, 0x0b, 0x6f, 0x5e, 0xe2, 0xc5, 0x82, 0xe4, 0x95, 0x66, 0xe6, 0xc3, 0x86,
1366                0xb3, 0x80, 0x94, 0xab, 0xc1, 0xa7, 0x18, 0x2d, 0x33, 0xa1, 0x50, 0x1f, 0xa2, 0xaa,
1367                0xf0, 0x0a, 0xf3, 0xea,
1368            ],
1369            Core::GejGeAddEx => [
1370                0xc3, 0xd7, 0x34, 0x7f, 0xfe, 0x2d, 0x9c, 0x83, 0x9a, 0xac, 0x56, 0x7e, 0x29, 0x98,
1371                0xe0, 0x16, 0xaf, 0x39, 0x4e, 0x2a, 0x19, 0x29, 0x31, 0x4b, 0x52, 0xe3, 0x1e, 0xed,
1372                0x67, 0x8e, 0x30, 0xbf,
1373            ],
1374            Core::GejGeEquiv => [
1375                0x27, 0xc2, 0x99, 0x69, 0x13, 0x9f, 0x8d, 0x57, 0xed, 0xc9, 0x89, 0x5c, 0x30, 0x40,
1376                0x3d, 0xf0, 0x15, 0xc5, 0x0c, 0xe7, 0x21, 0xc3, 0x81, 0xfb, 0x19, 0x7c, 0x0c, 0x04,
1377                0x03, 0xf1, 0xdb, 0x0c,
1378            ],
1379            Core::GejInfinity => [
1380                0xaa, 0xfb, 0x93, 0x80, 0xd6, 0x1a, 0x7f, 0x14, 0x78, 0x46, 0x80, 0x6b, 0x2c, 0xc3,
1381                0x74, 0xfb, 0xe8, 0x2d, 0xd1, 0xae, 0xd4, 0x85, 0xb9, 0x8a, 0x0f, 0x16, 0x4b, 0x3a,
1382                0x54, 0xc2, 0xc0, 0xb0,
1383            ],
1384            Core::GejIsInfinity => [
1385                0xdb, 0x49, 0x5f, 0xd1, 0x31, 0x42, 0xe9, 0xb3, 0x37, 0x63, 0xfc, 0x6d, 0x48, 0xd2,
1386                0xfb, 0x0e, 0x71, 0xb0, 0xd9, 0xd9, 0x9b, 0xd7, 0x26, 0xf4, 0x7a, 0xd1, 0x3f, 0xc5,
1387                0x56, 0x06, 0x70, 0xa2,
1388            ],
1389            Core::GejIsOnCurve => [
1390                0xbf, 0x4c, 0xa1, 0x3f, 0xf2, 0x12, 0xe3, 0x4b, 0xf1, 0x7d, 0x90, 0xc1, 0x2e, 0x45,
1391                0x3d, 0x08, 0xac, 0x7d, 0xaa, 0x4a, 0x47, 0xd5, 0x7e, 0x85, 0xb4, 0x3f, 0x2d, 0x43,
1392                0x66, 0xd4, 0x3d, 0xda,
1393            ],
1394            Core::GejNegate => [
1395                0x01, 0xbd, 0x1a, 0x35, 0x1f, 0xb8, 0x16, 0x4c, 0x81, 0x3d, 0x91, 0x6d, 0x07, 0x77,
1396                0x49, 0x99, 0x6b, 0x7d, 0xb1, 0x18, 0xd3, 0x15, 0x86, 0xca, 0x9d, 0x75, 0xe7, 0x56,
1397                0x35, 0x18, 0xf4, 0x54,
1398            ],
1399            Core::GejNormalize => [
1400                0xec, 0x59, 0x7d, 0x17, 0xe2, 0xef, 0xb6, 0xd2, 0xa0, 0x02, 0xd5, 0x0e, 0x67, 0x75,
1401                0x27, 0xd3, 0xd4, 0xa2, 0x90, 0x7a, 0x11, 0x9d, 0x68, 0xf1, 0x22, 0x84, 0xb9, 0xa1,
1402                0xb0, 0xd2, 0x30, 0x3a,
1403            ],
1404            Core::GejRescale => [
1405                0x29, 0x77, 0xd9, 0x53, 0xef, 0x7a, 0x11, 0x56, 0xce, 0xc6, 0xdb, 0x2d, 0xc2, 0x92,
1406                0x54, 0x12, 0x75, 0xcb, 0xc8, 0x2f, 0xb8, 0x29, 0xfd, 0x67, 0x1b, 0x97, 0x2e, 0x89,
1407                0xeb, 0xed, 0x0c, 0x24,
1408            ],
1409            Core::GejXEquiv => [
1410                0xf9, 0xf1, 0x89, 0xfc, 0x00, 0xb6, 0x1f, 0x72, 0xf1, 0x0b, 0xaa, 0xa2, 0x1b, 0xcd,
1411                0x88, 0xe5, 0xd2, 0x2e, 0x0a, 0xa9, 0xb7, 0x50, 0x9a, 0xe1, 0x62, 0xa1, 0x83, 0xa4,
1412                0xb6, 0x64, 0xa4, 0xaf,
1413            ],
1414            Core::GejYIsOdd => [
1415                0x9e, 0xb6, 0xe4, 0x53, 0x5f, 0xb6, 0x9b, 0xf6, 0x09, 0x91, 0x65, 0x99, 0xf1, 0x34,
1416                0x5a, 0xd7, 0x73, 0x5d, 0xa3, 0xf3, 0x94, 0x8d, 0x06, 0x86, 0x90, 0x8e, 0x44, 0xf4,
1417                0x5b, 0x2f, 0xf6, 0x0c,
1418            ],
1419            Core::Generate => [
1420                0x14, 0x88, 0x85, 0xac, 0x73, 0x81, 0x31, 0x13, 0xc5, 0x23, 0xe8, 0x09, 0xbe, 0xa4,
1421                0x7f, 0xfd, 0x8b, 0x1d, 0xaf, 0x37, 0x8d, 0x9d, 0xd5, 0x4b, 0xf9, 0x66, 0xcc, 0xb8,
1422                0x83, 0xb1, 0xa9, 0x84,
1423            ],
1424            Core::HashToCurve => [
1425                0xef, 0x4f, 0x54, 0x8b, 0x3c, 0x6c, 0x75, 0x17, 0x5f, 0x2c, 0xe2, 0xd1, 0x99, 0x3b,
1426                0x2d, 0x19, 0x9b, 0xeb, 0x16, 0xc0, 0xa1, 0x40, 0x17, 0x5c, 0x48, 0xa1, 0x27, 0x7e,
1427                0xfc, 0x43, 0xa9, 0x9b,
1428            ],
1429            Core::High1 => [
1430                0xb1, 0x09, 0xcf, 0x1c, 0xce, 0x35, 0xf7, 0xe9, 0xb6, 0x49, 0x67, 0x1a, 0x9b, 0x45,
1431                0xdb, 0xc2, 0x40, 0x99, 0xa7, 0x13, 0xae, 0xb9, 0xa8, 0x9c, 0xc4, 0xcf, 0x6e, 0xf6,
1432                0xed, 0x8b, 0x30, 0x8b,
1433            ],
1434            Core::High16 => [
1435                0x03, 0x5d, 0xad, 0xd9, 0xd7, 0xbf, 0x74, 0x33, 0x64, 0x45, 0xe7, 0x1d, 0xdc, 0x4d,
1436                0x82, 0x02, 0x24, 0xff, 0x7e, 0x38, 0xe0, 0xb8, 0xd5, 0x2b, 0xec, 0x97, 0x29, 0xb5,
1437                0x72, 0xb5, 0x31, 0xf9,
1438            ],
1439            Core::High32 => [
1440                0xc5, 0xf1, 0xdf, 0x0d, 0x64, 0xa2, 0x73, 0x7a, 0x63, 0x1b, 0x3a, 0xae, 0x8f, 0x26,
1441                0x0e, 0x8b, 0x8d, 0xc1, 0x95, 0x7b, 0xd0, 0x92, 0x91, 0x1b, 0x91, 0xd2, 0x07, 0x8a,
1442                0xd2, 0x1e, 0x41, 0x8a,
1443            ],
1444            Core::High64 => [
1445                0xa3, 0x12, 0x63, 0x3e, 0x0a, 0x23, 0x05, 0xe6, 0x9b, 0x3f, 0x34, 0x1d, 0x91, 0xd6,
1446                0x83, 0xdd, 0x94, 0x19, 0x6a, 0x2f, 0x90, 0x05, 0xc9, 0xb1, 0x87, 0x2a, 0x2c, 0x15,
1447                0xad, 0x46, 0xcf, 0x17,
1448            ],
1449            Core::High8 => [
1450                0xcb, 0xd7, 0x8d, 0x50, 0xaf, 0x77, 0x99, 0x85, 0x5a, 0xdc, 0x49, 0x03, 0xdb, 0xbe,
1451                0xfc, 0x13, 0x45, 0xd5, 0x14, 0x84, 0xf0, 0x3d, 0x3c, 0x75, 0x5c, 0xaa, 0xa5, 0xca,
1452                0xa9, 0x7d, 0x4a, 0x14,
1453            ],
1454            Core::Increment16 => [
1455                0x86, 0x77, 0x49, 0x49, 0x39, 0xb2, 0x7b, 0x86, 0xcb, 0x5a, 0x8c, 0x7f, 0x81, 0x72,
1456                0xad, 0x55, 0x50, 0x95, 0x31, 0xc9, 0xb0, 0xe1, 0x1e, 0x99, 0x75, 0x7e, 0x29, 0x6c,
1457                0xc3, 0xc7, 0xc1, 0x92,
1458            ],
1459            Core::Increment32 => [
1460                0x6b, 0xdb, 0xab, 0x7c, 0xfc, 0x16, 0xc5, 0x03, 0x36, 0x3c, 0x2f, 0x07, 0x7e, 0x02,
1461                0xc3, 0x35, 0xda, 0x40, 0x61, 0x75, 0xd1, 0x92, 0xfb, 0xef, 0x50, 0xc0, 0x7f, 0xc2,
1462                0x79, 0xb3, 0xf4, 0x0c,
1463            ],
1464            Core::Increment64 => [
1465                0x20, 0xe7, 0x5e, 0x71, 0x7c, 0xb7, 0x6d, 0x46, 0x95, 0x56, 0x4f, 0x7c, 0x20, 0x22,
1466                0x1b, 0x7a, 0x01, 0x43, 0x13, 0x87, 0x38, 0xf1, 0x51, 0xaa, 0x19, 0x5e, 0xb1, 0x70,
1467                0xec, 0x13, 0xc0, 0x49,
1468            ],
1469            Core::Increment8 => [
1470                0x5f, 0x4e, 0x05, 0x6e, 0xf4, 0xed, 0x8d, 0x68, 0xbf, 0x91, 0x1f, 0xc5, 0xcb, 0x69,
1471                0x03, 0x7e, 0xbf, 0x6c, 0x92, 0x21, 0x73, 0x43, 0xa8, 0x90, 0x5d, 0x38, 0xc4, 0x32,
1472                0xc1, 0x83, 0x23, 0x3c,
1473            ],
1474            Core::IsOne16 => [
1475                0x1b, 0xd3, 0xa2, 0x53, 0xdb, 0x24, 0x3f, 0xca, 0x45, 0x53, 0x37, 0x99, 0xfe, 0x91,
1476                0x48, 0x38, 0xc3, 0x8e, 0x38, 0x06, 0xb1, 0x2b, 0xd7, 0xe8, 0x5c, 0xa7, 0x12, 0x07,
1477                0xa8, 0x84, 0x62, 0xb0,
1478            ],
1479            Core::IsOne32 => [
1480                0x78, 0xb1, 0xba, 0xe0, 0x99, 0xec, 0x9c, 0x59, 0xcb, 0xf4, 0x12, 0x62, 0x51, 0xc1,
1481                0xe9, 0x67, 0x41, 0xb3, 0x50, 0xd5, 0x63, 0xbd, 0x74, 0xd5, 0x44, 0x18, 0xba, 0x78,
1482                0xeb, 0xea, 0x25, 0xbf,
1483            ],
1484            Core::IsOne64 => [
1485                0x81, 0x7b, 0x95, 0xa5, 0x39, 0x5e, 0xfb, 0xec, 0xbb, 0x85, 0x15, 0xa5, 0x5b, 0x3f,
1486                0xfe, 0x1a, 0x4d, 0x7b, 0xac, 0x6e, 0x23, 0xdb, 0xca, 0x54, 0xad, 0x60, 0x66, 0x66,
1487                0x2f, 0x20, 0x2b, 0x93,
1488            ],
1489            Core::IsOne8 => [
1490                0xf6, 0x92, 0x54, 0x91, 0xd3, 0x4b, 0x37, 0x74, 0x2c, 0xb0, 0x8d, 0xec, 0x19, 0x3e,
1491                0xe5, 0x12, 0x5f, 0x93, 0x3c, 0xad, 0xcc, 0x23, 0x2a, 0xed, 0xee, 0xdb, 0x57, 0x2d,
1492                0x12, 0x60, 0xff, 0xd5,
1493            ],
1494            Core::IsZero16 => [
1495                0x1b, 0xa7, 0x21, 0x3b, 0x58, 0x8b, 0xe0, 0x92, 0xb4, 0x46, 0x59, 0x9c, 0x2a, 0x60,
1496                0xff, 0x54, 0x67, 0x13, 0x6a, 0x79, 0x75, 0x99, 0x61, 0x0b, 0xd7, 0xa5, 0xf1, 0x78,
1497                0x04, 0xe3, 0x2a, 0x2c,
1498            ],
1499            Core::IsZero32 => [
1500                0x5e, 0xbf, 0x14, 0x66, 0x93, 0xf0, 0xe2, 0xd2, 0xf9, 0x36, 0x1b, 0x47, 0x6d, 0xba,
1501                0x34, 0x85, 0x8b, 0x83, 0x2d, 0x66, 0xfa, 0xcf, 0x71, 0x3b, 0xfb, 0x32, 0xc3, 0xbb,
1502                0x8d, 0xb9, 0xee, 0xbf,
1503            ],
1504            Core::IsZero64 => [
1505                0x19, 0xab, 0x9a, 0xc0, 0xcf, 0x42, 0x66, 0x82, 0x19, 0xba, 0x6c, 0xb8, 0x97, 0xe4,
1506                0x87, 0xfe, 0x36, 0x80, 0x93, 0x7f, 0xff, 0xa8, 0xd2, 0x03, 0x51, 0x1d, 0xb7, 0x5d,
1507                0xbb, 0x10, 0xc7, 0xe5,
1508            ],
1509            Core::IsZero8 => [
1510                0x8e, 0xff, 0x62, 0x08, 0x44, 0x07, 0xe9, 0xaf, 0xd5, 0x40, 0xf3, 0x18, 0xf6, 0x6b,
1511                0xcf, 0x31, 0xdf, 0x1d, 0x42, 0xa5, 0xc1, 0x61, 0xca, 0xe3, 0x5a, 0x29, 0x48, 0x18,
1512                0x0c, 0xa2, 0xaa, 0x2e,
1513            ],
1514            Core::Le16 => [
1515                0x01, 0x67, 0x05, 0xa7, 0xd7, 0xdc, 0xe1, 0xaf, 0xc6, 0x3e, 0xab, 0x84, 0x20, 0x3f,
1516                0x5f, 0x42, 0xd6, 0xb6, 0xbb, 0xad, 0x75, 0xce, 0xe3, 0x8c, 0xec, 0x5a, 0x51, 0x5b,
1517                0x59, 0x97, 0x48, 0x9f,
1518            ],
1519            Core::Le32 => [
1520                0x53, 0x51, 0xfc, 0x5d, 0xeb, 0xe5, 0xb2, 0x98, 0xad, 0x70, 0x57, 0xe4, 0xa5, 0xa7,
1521                0x6a, 0x3b, 0x9c, 0x65, 0x8a, 0xcd, 0xe7, 0xd1, 0xbb, 0x52, 0xe5, 0x88, 0x9c, 0xa1,
1522                0xe3, 0x8f, 0x5e, 0xfb,
1523            ],
1524            Core::Le64 => [
1525                0xae, 0x2d, 0xe1, 0xe0, 0xcf, 0x73, 0x0d, 0x1d, 0xcc, 0x96, 0xd7, 0xcc, 0xfe, 0x71,
1526                0x16, 0x8a, 0x24, 0x0d, 0xea, 0xf8, 0x04, 0x61, 0x5a, 0x7b, 0xa9, 0x20, 0xdc, 0x16,
1527                0xfd, 0x6e, 0xa4, 0x5f,
1528            ],
1529            Core::Le8 => [
1530                0xaf, 0x29, 0xf6, 0x16, 0x8e, 0xbd, 0xc0, 0x9e, 0xfb, 0xe0, 0xe6, 0x39, 0xcb, 0x75,
1531                0x0b, 0x12, 0x05, 0x78, 0x8f, 0x90, 0x21, 0xd6, 0x66, 0xef, 0xce, 0xfe, 0x13, 0xf1,
1532                0x2f, 0x96, 0x71, 0xf0,
1533            ],
1534            Core::LeftExtend16_32 => [
1535                0x28, 0x99, 0x97, 0xfb, 0xa1, 0xfa, 0xe7, 0xec, 0x1c, 0x45, 0x31, 0xc5, 0x0b, 0xbf,
1536                0x86, 0x71, 0xb8, 0x97, 0x13, 0x9b, 0xdd, 0x3a, 0xad, 0x97, 0xa3, 0x76, 0x39, 0x57,
1537                0x4a, 0x04, 0x7c, 0x80,
1538            ],
1539            Core::LeftExtend16_64 => [
1540                0x5d, 0xff, 0x21, 0xf6, 0xe6, 0x12, 0x47, 0x75, 0xc5, 0x78, 0xea, 0xf4, 0x85, 0x5c,
1541                0x0b, 0x01, 0x64, 0xf7, 0x87, 0x9b, 0x17, 0x60, 0xf9, 0x02, 0x7c, 0xb5, 0x0f, 0x7b,
1542                0x5a, 0xcb, 0x49, 0x18,
1543            ],
1544            Core::LeftExtend1_16 => [
1545                0x8c, 0x87, 0xd7, 0x56, 0xd1, 0x4b, 0xd3, 0xd9, 0xa7, 0x86, 0x90, 0x81, 0x29, 0x12,
1546                0xb8, 0x94, 0x29, 0xc0, 0x17, 0x1a, 0x41, 0x10, 0x3a, 0x58, 0xc6, 0xe9, 0xf2, 0x25,
1547                0x14, 0x1a, 0x02, 0x22,
1548            ],
1549            Core::LeftExtend1_32 => [
1550                0xc8, 0xf1, 0x54, 0xd4, 0x6d, 0x2e, 0x78, 0x95, 0xda, 0x1b, 0x33, 0xc2, 0xb3, 0x15,
1551                0xe6, 0xd4, 0xd4, 0x85, 0x1d, 0xde, 0xe2, 0x8a, 0xef, 0x8b, 0x70, 0x70, 0x90, 0x61,
1552                0x6b, 0xc7, 0xee, 0xa0,
1553            ],
1554            Core::LeftExtend1_64 => [
1555                0xa3, 0x40, 0x4d, 0xf6, 0x8c, 0xc9, 0x20, 0x75, 0x4c, 0x6e, 0x18, 0x47, 0x20, 0x7d,
1556                0xb3, 0x84, 0x5d, 0x11, 0xc7, 0x49, 0x09, 0xd0, 0x7c, 0xa8, 0x2a, 0xd1, 0xf1, 0xcc,
1557                0x67, 0xbf, 0x3a, 0x9b,
1558            ],
1559            Core::LeftExtend1_8 => [
1560                0x3b, 0xca, 0x33, 0x97, 0xb8, 0x3c, 0x27, 0xf3, 0x63, 0x16, 0xf8, 0xb8, 0xb3, 0x03,
1561                0x35, 0x0a, 0xfe, 0x8b, 0xa0, 0x07, 0x8f, 0x77, 0xf1, 0xd4, 0x2a, 0x9b, 0x78, 0x92,
1562                0xb2, 0xa4, 0xdb, 0xee,
1563            ],
1564            Core::LeftExtend32_64 => [
1565                0x42, 0xcb, 0xeb, 0x01, 0xfe, 0x7a, 0x3a, 0x6d, 0xd3, 0x31, 0x1d, 0xb3, 0x36, 0x5f,
1566                0x91, 0xe5, 0xc1, 0x18, 0xc7, 0xe4, 0x1f, 0x03, 0xaa, 0xe7, 0xb2, 0x83, 0xde, 0x6b,
1567                0xb9, 0x05, 0x3e, 0x6b,
1568            ],
1569            Core::LeftExtend8_16 => [
1570                0x9a, 0x57, 0xc9, 0x6a, 0xf5, 0x71, 0x48, 0x96, 0xb7, 0x24, 0xde, 0x45, 0xeb, 0x9f,
1571                0xe9, 0x7d, 0x73, 0x69, 0x7d, 0xe6, 0x2e, 0x8d, 0xad, 0x78, 0x71, 0xeb, 0x58, 0xf5,
1572                0x81, 0xa0, 0x11, 0xbb,
1573            ],
1574            Core::LeftExtend8_32 => [
1575                0xd6, 0x24, 0xbd, 0x40, 0x40, 0x76, 0x3c, 0xb1, 0x3c, 0xca, 0xd4, 0x98, 0xf5, 0x3d,
1576                0x38, 0xc1, 0x12, 0xf1, 0x92, 0x95, 0x68, 0x26, 0xda, 0xfe, 0xc9, 0xac, 0x91, 0x65,
1577                0x79, 0x2b, 0x34, 0x7a,
1578            ],
1579            Core::LeftExtend8_64 => [
1580                0x9d, 0xc4, 0xa2, 0x05, 0x4d, 0x5d, 0x26, 0x34, 0x2a, 0xc5, 0x90, 0xb6, 0x67, 0xf1,
1581                0xb0, 0x1d, 0xf5, 0x4f, 0xd0, 0xcd, 0xaa, 0x40, 0x5e, 0xf8, 0xcb, 0xb7, 0x6f, 0xd8,
1582                0xf9, 0xb0, 0x0e, 0xe5,
1583            ],
1584            Core::LeftPadHigh16_32 => [
1585                0x05, 0x45, 0xc4, 0xb5, 0x8f, 0x00, 0x4a, 0x21, 0xe7, 0xf1, 0x29, 0xa4, 0xc0, 0x51,
1586                0x89, 0x97, 0x17, 0x14, 0xca, 0xa2, 0xd9, 0x1d, 0x1d, 0xfd, 0x5f, 0xad, 0x3e, 0x63,
1587                0x24, 0x49, 0x94, 0x28,
1588            ],
1589            Core::LeftPadHigh16_64 => [
1590                0x1c, 0x61, 0xd0, 0x3d, 0x49, 0x3b, 0xbd, 0x05, 0x82, 0x22, 0x59, 0xd1, 0x73, 0x0a,
1591                0x8d, 0x7a, 0x5f, 0x55, 0xb0, 0xba, 0x2a, 0x93, 0x91, 0xa6, 0xc8, 0x88, 0x1e, 0xb4,
1592                0x75, 0x04, 0xaf, 0xfd,
1593            ],
1594            Core::LeftPadHigh1_16 => [
1595                0x56, 0xfd, 0xf5, 0x4f, 0x1f, 0xcd, 0x19, 0x82, 0x5e, 0x7c, 0x3b, 0x79, 0x06, 0x15,
1596                0xc1, 0xd3, 0xfe, 0x82, 0x88, 0x6c, 0x74, 0x7b, 0xc4, 0x87, 0x59, 0x87, 0xf5, 0x05,
1597                0x16, 0x94, 0x5f, 0xb3,
1598            ],
1599            Core::LeftPadHigh1_32 => [
1600                0xdb, 0x33, 0x05, 0x9a, 0xbe, 0x2d, 0x43, 0x2d, 0x67, 0xf4, 0x2b, 0x1e, 0x94, 0x27,
1601                0x56, 0xdc, 0xa6, 0xcd, 0xe6, 0x37, 0x85, 0xe5, 0xbd, 0x43, 0x0d, 0xc8, 0xf4, 0xae,
1602                0xfc, 0x31, 0xb8, 0xdf,
1603            ],
1604            Core::LeftPadHigh1_64 => [
1605                0x1d, 0x66, 0x9c, 0x1f, 0xa5, 0xfd, 0x3e, 0xf6, 0x6e, 0xb4, 0xae, 0xf6, 0x18, 0x6e,
1606                0x3e, 0xc1, 0x36, 0xee, 0x75, 0x84, 0x10, 0xdf, 0x3e, 0xde, 0xbb, 0x31, 0xbf, 0x26,
1607                0xd4, 0x56, 0x20, 0x51,
1608            ],
1609            Core::LeftPadHigh1_8 => [
1610                0x9a, 0x1b, 0xad, 0x3d, 0x8a, 0xb9, 0x00, 0x30, 0x3d, 0xa2, 0x02, 0xf0, 0xf4, 0x49,
1611                0xf0, 0xb7, 0xe6, 0x79, 0x5c, 0x2a, 0x7c, 0x12, 0x17, 0x18, 0x80, 0x0a, 0xc4, 0x0c,
1612                0x87, 0xd8, 0x27, 0x29,
1613            ],
1614            Core::LeftPadHigh32_64 => [
1615                0x39, 0x20, 0xcc, 0x4b, 0x33, 0xba, 0xf7, 0xef, 0xa5, 0xca, 0xf9, 0xe7, 0x80, 0x01,
1616                0x44, 0x67, 0x06, 0xf6, 0xe4, 0xe8, 0x26, 0x56, 0x74, 0x05, 0x7e, 0xed, 0x87, 0x17,
1617                0x78, 0x08, 0x9e, 0x94,
1618            ],
1619            Core::LeftPadHigh8_16 => [
1620                0x75, 0x2e, 0x29, 0xf2, 0xfe, 0x2b, 0xec, 0xc3, 0xf6, 0x62, 0x90, 0xfe, 0x44, 0xe1,
1621                0xae, 0xb3, 0x78, 0x41, 0x80, 0xdd, 0x90, 0x5e, 0x19, 0x62, 0x4e, 0x19, 0x5f, 0x21,
1622                0x6c, 0x07, 0xc5, 0x7c,
1623            ],
1624            Core::LeftPadHigh8_32 => [
1625                0xbe, 0xe8, 0x8f, 0x1c, 0x8c, 0x30, 0x63, 0x4c, 0x6e, 0x95, 0xca, 0xcc, 0x0e, 0x9a,
1626                0xdd, 0x49, 0x41, 0x32, 0x21, 0xfd, 0xab, 0xbd, 0x8d, 0x4c, 0x0a, 0xcc, 0xf1, 0xca,
1627                0xe2, 0xd2, 0xa7, 0x78,
1628            ],
1629            Core::LeftPadHigh8_64 => [
1630                0x39, 0x23, 0x87, 0xf6, 0xdc, 0x04, 0xbf, 0xc5, 0x4d, 0xd4, 0xa2, 0x81, 0x19, 0xc8,
1631                0x1d, 0x15, 0xd7, 0xa5, 0x80, 0x9b, 0xbf, 0x62, 0xfc, 0xc2, 0x7d, 0xc5, 0x5c, 0xf8,
1632                0x2e, 0x9e, 0x5e, 0xe6,
1633            ],
1634            Core::LeftPadLow16_32 => [
1635                0x4f, 0xfd, 0x6c, 0xb3, 0x40, 0x23, 0x05, 0x82, 0x1d, 0xd8, 0x99, 0x70, 0xd7, 0x22,
1636                0xd1, 0xc1, 0x3f, 0x1f, 0xf7, 0x73, 0x9f, 0xd5, 0xf3, 0x4b, 0xa1, 0x6c, 0x73, 0x65,
1637                0x3b, 0x04, 0x47, 0x18,
1638            ],
1639            Core::LeftPadLow16_64 => [
1640                0xbe, 0x3e, 0xb8, 0x5c, 0x5f, 0x19, 0x91, 0x53, 0xfb, 0x1c, 0x46, 0x13, 0x5c, 0x04,
1641                0xfa, 0xcf, 0xdb, 0xc6, 0xf1, 0xb7, 0x8c, 0x2b, 0xb7, 0xae, 0x75, 0xf1, 0x55, 0xbc,
1642                0x3e, 0xa0, 0x8a, 0x8b,
1643            ],
1644            Core::LeftPadLow1_16 => [
1645                0xdd, 0xd0, 0x15, 0x3e, 0xf3, 0x12, 0xf2, 0x8d, 0x64, 0x2c, 0xd9, 0x4c, 0xb3, 0x6f,
1646                0x32, 0x97, 0x75, 0xb0, 0x0d, 0xa8, 0x8f, 0xcc, 0xc4, 0xce, 0xa1, 0xba, 0xe8, 0x9b,
1647                0xad, 0x13, 0xbe, 0x6b,
1648            ],
1649            Core::LeftPadLow1_32 => [
1650                0xbc, 0x9d, 0x31, 0x14, 0x35, 0x46, 0x7b, 0xc0, 0x8b, 0x10, 0x08, 0xe5, 0x47, 0xaa,
1651                0x7a, 0x07, 0xe8, 0x3b, 0x15, 0x14, 0x68, 0x61, 0xa9, 0xe9, 0xb5, 0x41, 0x3b, 0xe3,
1652                0x1b, 0x82, 0xb6, 0xb5,
1653            ],
1654            Core::LeftPadLow1_64 => [
1655                0x8b, 0xc6, 0x2f, 0x93, 0x60, 0x89, 0x4e, 0x48, 0xa4, 0x73, 0x2c, 0x95, 0x76, 0x9c,
1656                0x8f, 0xaa, 0xe9, 0x56, 0x8f, 0x9d, 0xe8, 0xe8, 0xa2, 0x00, 0x83, 0x6b, 0xd4, 0xe5,
1657                0x0b, 0x02, 0xcd, 0x84,
1658            ],
1659            Core::LeftPadLow1_8 => [
1660                0xf6, 0x6c, 0xd7, 0xa4, 0x2b, 0x32, 0x0f, 0x97, 0xc1, 0x9f, 0x2d, 0x54, 0x16, 0xcd,
1661                0xe0, 0x87, 0x25, 0x3a, 0x27, 0x91, 0x29, 0x65, 0xd5, 0x5b, 0x65, 0x71, 0x2a, 0xd8,
1662                0x09, 0xb8, 0x3c, 0xfd,
1663            ],
1664            Core::LeftPadLow32_64 => [
1665                0xa3, 0x3a, 0x07, 0xb9, 0xbc, 0xf9, 0x45, 0xf6, 0x4f, 0x07, 0x2b, 0x8b, 0x9c, 0x91,
1666                0x48, 0x39, 0xa5, 0x85, 0xbf, 0xa9, 0xf3, 0x42, 0x5b, 0x14, 0x77, 0x54, 0xab, 0x55,
1667                0xa8, 0xba, 0x6c, 0x0f,
1668            ],
1669            Core::LeftPadLow8_16 => [
1670                0x2a, 0x51, 0x6a, 0x79, 0x3f, 0x97, 0xc4, 0x5f, 0xea, 0xeb, 0xb1, 0xcc, 0x96, 0x1a,
1671                0x15, 0x6d, 0x80, 0x35, 0x49, 0x28, 0x79, 0x78, 0x9d, 0x6e, 0xdc, 0x9b, 0x57, 0xe7,
1672                0x2f, 0x11, 0xe5, 0xb5,
1673            ],
1674            Core::LeftPadLow8_32 => [
1675                0x1a, 0xa2, 0xe4, 0xd0, 0x4b, 0xd6, 0x90, 0x55, 0x12, 0x3d, 0xd6, 0xaa, 0xfe, 0x27,
1676                0xf5, 0xf7, 0xf4, 0x7c, 0x3b, 0x30, 0x90, 0xc3, 0xa8, 0x27, 0x29, 0x73, 0xfe, 0x2f,
1677                0x75, 0x16, 0x5a, 0x5d,
1678            ],
1679            Core::LeftPadLow8_64 => [
1680                0xb6, 0x52, 0xe0, 0xae, 0xdd, 0x0f, 0x4f, 0x66, 0xf6, 0xa1, 0xcd, 0x4b, 0xeb, 0xf8,
1681                0x75, 0xff, 0x7b, 0xbb, 0x2d, 0xd9, 0x9b, 0x06, 0x5b, 0x2d, 0xb5, 0xb5, 0xb5, 0x90,
1682                0x53, 0x61, 0x61, 0x4d,
1683            ],
1684            Core::LeftRotate16 => [
1685                0x8a, 0x12, 0xff, 0x6a, 0x4b, 0xf2, 0x37, 0x15, 0xdd, 0x3b, 0x76, 0x6b, 0x99, 0x67,
1686                0xc7, 0x15, 0x8b, 0xf3, 0xed, 0x74, 0xb3, 0xdc, 0xe7, 0x30, 0xaf, 0xfc, 0xf4, 0x66,
1687                0x16, 0x47, 0x8e, 0xcb,
1688            ],
1689            Core::LeftRotate32 => [
1690                0x2f, 0xcb, 0x52, 0x17, 0x2f, 0xd4, 0x9c, 0x36, 0x21, 0x7d, 0xea, 0xe0, 0xc2, 0x37,
1691                0x14, 0x32, 0x1f, 0x69, 0xf5, 0xf1, 0x3f, 0x6e, 0x94, 0xb2, 0xbd, 0xfe, 0x4b, 0x74,
1692                0x88, 0x69, 0x7f, 0xd5,
1693            ],
1694            Core::LeftRotate64 => [
1695                0x72, 0xcc, 0xd6, 0xc4, 0xe5, 0xfd, 0xf6, 0x8a, 0xd3, 0x3b, 0x6d, 0x58, 0xfb, 0x37,
1696                0x2b, 0xe4, 0xf1, 0xb8, 0x0e, 0xef, 0x70, 0x1f, 0x9d, 0xb7, 0xe5, 0xed, 0x85, 0x9b,
1697                0x96, 0xb3, 0x62, 0x09,
1698            ],
1699            Core::LeftRotate8 => [
1700                0x1a, 0xae, 0xc9, 0xf3, 0xb7, 0x5d, 0x89, 0xf8, 0x2a, 0x64, 0x98, 0x45, 0x8c, 0x44,
1701                0x83, 0xcb, 0x9a, 0x78, 0x44, 0x89, 0x05, 0xf3, 0xbb, 0x39, 0xfc, 0x08, 0x3f, 0x14,
1702                0xdd, 0xcc, 0xdc, 0x9b,
1703            ],
1704            Core::LeftShift16 => [
1705                0x37, 0xac, 0x63, 0x87, 0x21, 0xab, 0x09, 0x7a, 0x96, 0x02, 0xba, 0x4d, 0xc9, 0x2e,
1706                0x19, 0xb5, 0xa1, 0x85, 0xb2, 0x32, 0x9f, 0x1a, 0xa6, 0x00, 0xcb, 0x9c, 0x15, 0x61,
1707                0x5a, 0x00, 0x81, 0xf8,
1708            ],
1709            Core::LeftShift32 => [
1710                0x8e, 0x3c, 0x47, 0x3b, 0x28, 0x67, 0xf1, 0x54, 0x73, 0xb3, 0x63, 0x2d, 0xbf, 0xdd,
1711                0x99, 0x77, 0x55, 0x51, 0xef, 0x5f, 0x9d, 0xba, 0x47, 0x5e, 0x9c, 0xf0, 0x90, 0x75,
1712                0x80, 0x70, 0xf0, 0xbf,
1713            ],
1714            Core::LeftShift64 => [
1715                0x50, 0x49, 0xf4, 0x04, 0xd1, 0x73, 0x29, 0x9a, 0x3a, 0xee, 0x04, 0xcb, 0xc2, 0x46,
1716                0x2c, 0xb3, 0x4c, 0x80, 0x69, 0xc1, 0xb6, 0xdb, 0x7f, 0xed, 0x0e, 0x38, 0x8f, 0xf6,
1717                0xd4, 0x67, 0xa0, 0x86,
1718            ],
1719            Core::LeftShift8 => [
1720                0x83, 0x2f, 0x63, 0x6e, 0x63, 0x44, 0x6c, 0xef, 0xba, 0x8d, 0xf3, 0xa4, 0x6e, 0xfb,
1721                0xb3, 0x61, 0x59, 0xc1, 0x88, 0x54, 0x56, 0x77, 0x68, 0xad, 0xc9, 0xb8, 0xdb, 0x8a,
1722                0x07, 0x49, 0x2a, 0x58,
1723            ],
1724            Core::LeftShiftWith16 => [
1725                0xe6, 0x47, 0x62, 0xb1, 0xc5, 0xe6, 0x14, 0x4a, 0x71, 0x81, 0xea, 0xaf, 0x4d, 0xd9,
1726                0xd9, 0xb3, 0xaa, 0x43, 0xaa, 0xd9, 0x55, 0x15, 0x81, 0x98, 0xee, 0x20, 0x90, 0xeb,
1727                0xd9, 0xe4, 0xbb, 0x0d,
1728            ],
1729            Core::LeftShiftWith32 => [
1730                0x64, 0x76, 0xba, 0x89, 0x95, 0xf8, 0x3b, 0x5e, 0xe1, 0xeb, 0xc2, 0x2c, 0xb4, 0x16,
1731                0xf5, 0x58, 0x15, 0x7f, 0x2e, 0x57, 0x69, 0x9a, 0x5c, 0xaf, 0x84, 0x29, 0x1f, 0xf3,
1732                0xfc, 0x14, 0x83, 0xc1,
1733            ],
1734            Core::LeftShiftWith64 => [
1735                0x06, 0xb8, 0xfe, 0x67, 0xcf, 0xc5, 0x86, 0x32, 0x23, 0x97, 0xaf, 0x02, 0x4f, 0xde,
1736                0x29, 0x11, 0xf7, 0xae, 0x87, 0xa0, 0x6a, 0xbc, 0x6c, 0x59, 0x30, 0x93, 0x40, 0x97,
1737                0x15, 0x69, 0x1c, 0x19,
1738            ],
1739            Core::LeftShiftWith8 => [
1740                0xb1, 0xac, 0x9c, 0x68, 0x23, 0x58, 0xc4, 0x5b, 0xab, 0xf4, 0x06, 0x95, 0x56, 0xfe,
1741                0x6e, 0x37, 0x5b, 0x45, 0x54, 0xde, 0x9e, 0x10, 0xc5, 0x91, 0xc1, 0x48, 0x39, 0x84,
1742                0x47, 0xac, 0x18, 0x0e,
1743            ],
1744            Core::Leftmost16_1 => [
1745                0x5b, 0xff, 0x4c, 0xb5, 0x58, 0x76, 0x05, 0xd5, 0xfd, 0x05, 0x9d, 0x77, 0x33, 0x49,
1746                0x0d, 0x7d, 0xd2, 0x2d, 0x27, 0x8b, 0x59, 0x9e, 0x06, 0xd3, 0xb5, 0xdb, 0x6d, 0x79,
1747                0xf3, 0xc9, 0x23, 0xbd,
1748            ],
1749            Core::Leftmost16_2 => [
1750                0x53, 0x6d, 0xb4, 0x86, 0xb1, 0x22, 0x27, 0xe5, 0xb0, 0x9d, 0x6f, 0xeb, 0xd2, 0x77,
1751                0x6b, 0x1a, 0xbb, 0xc6, 0x74, 0x99, 0x96, 0xaa, 0x78, 0x3e, 0xd7, 0xe5, 0x37, 0x44,
1752                0x6b, 0xbf, 0x15, 0x1b,
1753            ],
1754            Core::Leftmost16_4 => [
1755                0xf2, 0x32, 0x13, 0x67, 0x49, 0x6d, 0x1a, 0x77, 0xee, 0xa0, 0x5e, 0x95, 0xe3, 0xb8,
1756                0x07, 0xd3, 0xba, 0x5f, 0x05, 0x13, 0x6c, 0xe0, 0x91, 0x2a, 0xe7, 0x17, 0xc8, 0x3a,
1757                0x02, 0x61, 0xb2, 0xe1,
1758            ],
1759            Core::Leftmost16_8 => [
1760                0x24, 0x14, 0x8e, 0xf3, 0x0a, 0xd4, 0x3e, 0xbe, 0xc5, 0x63, 0x72, 0x83, 0x22, 0xc3,
1761                0xce, 0x11, 0x79, 0xae, 0xd7, 0xa7, 0x82, 0x16, 0xd7, 0x99, 0x88, 0x8b, 0xf1, 0x8b,
1762                0x39, 0x57, 0x06, 0x71,
1763            ],
1764            Core::Leftmost32_1 => [
1765                0xb9, 0x2e, 0x15, 0xec, 0x5d, 0xa0, 0x7e, 0xe8, 0xed, 0x39, 0x7c, 0xb9, 0xf6, 0x0a,
1766                0x4c, 0x5d, 0xa8, 0x38, 0x62, 0x93, 0x1a, 0x90, 0x73, 0x59, 0xd2, 0x7c, 0xae, 0xb6,
1767                0x0e, 0x60, 0xef, 0x8a,
1768            ],
1769            Core::Leftmost32_16 => [
1770                0xad, 0xb0, 0x27, 0xb2, 0x06, 0x56, 0x73, 0x58, 0x53, 0x26, 0xc0, 0x1c, 0x3b, 0xe2,
1771                0xfa, 0xeb, 0x38, 0x63, 0x49, 0xe2, 0x90, 0x09, 0xb6, 0x57, 0x6e, 0xe5, 0x3a, 0x85,
1772                0x55, 0x12, 0xcc, 0x67,
1773            ],
1774            Core::Leftmost32_2 => [
1775                0xb7, 0x5b, 0x31, 0xc5, 0x59, 0x12, 0x3d, 0x3d, 0x63, 0x35, 0x98, 0x59, 0x32, 0xb8,
1776                0xb1, 0xb2, 0x66, 0x4e, 0xe5, 0x97, 0xaf, 0xb1, 0x5f, 0xd1, 0xa4, 0x99, 0xd0, 0x07,
1777                0xcf, 0xf2, 0x75, 0x5c,
1778            ],
1779            Core::Leftmost32_4 => [
1780                0xcb, 0x75, 0x7e, 0x47, 0x1e, 0x9d, 0x9a, 0x40, 0x77, 0x1d, 0xd1, 0xcf, 0x3c, 0x1b,
1781                0xf5, 0xd2, 0x3c, 0x17, 0xed, 0x68, 0xcd, 0xbd, 0xb2, 0x2d, 0xad, 0xa1, 0x7a, 0x73,
1782                0xa7, 0xb4, 0x07, 0xb2,
1783            ],
1784            Core::Leftmost32_8 => [
1785                0xbf, 0xc5, 0x34, 0xb4, 0x9e, 0x06, 0x00, 0x6e, 0x19, 0xf3, 0xb6, 0x8e, 0x0a, 0x02,
1786                0x39, 0x1c, 0x14, 0x9f, 0x9a, 0x34, 0xf4, 0x3e, 0xe3, 0x6b, 0x9f, 0x1d, 0x79, 0xa7,
1787                0x9c, 0x9a, 0x9e, 0x4d,
1788            ],
1789            Core::Leftmost64_1 => [
1790                0x1b, 0x1d, 0x4e, 0x92, 0x38, 0x4b, 0x8b, 0x15, 0x9b, 0xa0, 0xd8, 0x06, 0x55, 0x8b,
1791                0x54, 0x94, 0xe3, 0x61, 0x4e, 0xed, 0xe0, 0x3c, 0x94, 0x6c, 0xea, 0xf1, 0x41, 0xf3,
1792                0x6f, 0x01, 0xc7, 0x9b,
1793            ],
1794            Core::Leftmost64_16 => [
1795                0x0d, 0xeb, 0xdc, 0x1a, 0xa0, 0x43, 0x30, 0x34, 0x42, 0xe1, 0x8f, 0xe0, 0x3d, 0x8a,
1796                0x99, 0xd2, 0xbe, 0x6b, 0xb8, 0xa8, 0x69, 0x1a, 0xba, 0x19, 0x56, 0x62, 0x59, 0xe3,
1797                0x67, 0x60, 0xf7, 0xf9,
1798            ],
1799            Core::Leftmost64_2 => [
1800                0x83, 0x9e, 0xcf, 0xa3, 0x18, 0x70, 0x5c, 0x25, 0x3d, 0x0c, 0x52, 0xff, 0x27, 0xb9,
1801                0x04, 0x64, 0x92, 0x3d, 0x8c, 0x0e, 0x55, 0xa8, 0x2c, 0x0d, 0x16, 0x24, 0x02, 0x39,
1802                0x7f, 0x36, 0x53, 0x78,
1803            ],
1804            Core::Leftmost64_32 => [
1805                0x92, 0x91, 0x97, 0xa9, 0x64, 0x28, 0x61, 0xa7, 0x7b, 0xd6, 0x62, 0x58, 0x05, 0x11,
1806                0x97, 0xbe, 0x86, 0xff, 0x08, 0xe6, 0x28, 0xe3, 0x0f, 0x7e, 0xfc, 0xbd, 0x2c, 0x4d,
1807                0xfe, 0xcf, 0x9b, 0xdd,
1808            ],
1809            Core::Leftmost64_4 => [
1810                0x02, 0xbd, 0x16, 0x45, 0xd5, 0x75, 0xf0, 0x4b, 0x3c, 0xbb, 0xaa, 0x6d, 0x8c, 0xa9,
1811                0x86, 0xef, 0x1c, 0x8c, 0xd0, 0xff, 0xe1, 0x65, 0x89, 0x03, 0x93, 0x9d, 0xb7, 0x64,
1812                0x56, 0x2a, 0x26, 0x47,
1813            ],
1814            Core::Leftmost64_8 => [
1815                0x35, 0x58, 0xb3, 0x1b, 0x3b, 0x6e, 0x8f, 0x9a, 0x28, 0x8f, 0xdc, 0x72, 0xf2, 0x46,
1816                0x02, 0xbe, 0x05, 0x58, 0x19, 0x10, 0x71, 0xa5, 0x4a, 0x99, 0xfa, 0x03, 0xa0, 0x25,
1817                0x34, 0xf8, 0x80, 0x05,
1818            ],
1819            Core::Leftmost8_1 => [
1820                0x28, 0x65, 0xef, 0xd4, 0x29, 0x83, 0xcb, 0xe3, 0xf8, 0x16, 0x37, 0x3a, 0xb8, 0xa8,
1821                0x82, 0xf1, 0x83, 0x17, 0x19, 0x4d, 0xc1, 0xab, 0xa3, 0x8d, 0xa0, 0x30, 0x4b, 0x8c,
1822                0x14, 0x4b, 0x1d, 0xa4,
1823            ],
1824            Core::Leftmost8_2 => [
1825                0x51, 0x96, 0x4c, 0xb0, 0x74, 0x05, 0xa8, 0xd2, 0x3d, 0x21, 0x87, 0x74, 0x1a, 0x9e,
1826                0xd3, 0x04, 0xbc, 0xb4, 0x69, 0xd9, 0xac, 0x9f, 0x5d, 0x92, 0x55, 0x82, 0x5c, 0xfd,
1827                0xa3, 0xda, 0x07, 0xc0,
1828            ],
1829            Core::Leftmost8_4 => [
1830                0x88, 0x3c, 0x94, 0xf8, 0xa2, 0x6c, 0xda, 0xb7, 0xbc, 0x5c, 0xd6, 0x31, 0xe5, 0x22,
1831                0x55, 0xa8, 0x5e, 0xf6, 0xe0, 0x70, 0x76, 0x64, 0x57, 0xf6, 0x32, 0x1e, 0x2c, 0xcb,
1832                0x11, 0x9d, 0x9b, 0x2b,
1833            ],
1834            Core::LinearCombination1 => [
1835                0x34, 0x10, 0xa9, 0xee, 0x33, 0x3d, 0xf8, 0xc8, 0xa0, 0x1c, 0x14, 0x11, 0x5b, 0x54,
1836                0x43, 0x27, 0xe3, 0x24, 0xe2, 0x87, 0xaa, 0x11, 0x07, 0xe0, 0x19, 0x55, 0xbd, 0x20,
1837                0x50, 0x6e, 0xa9, 0x87,
1838            ],
1839            Core::LinearVerify1 => [
1840                0xdc, 0x66, 0xd3, 0x31, 0xc1, 0x7f, 0x3f, 0xdd, 0xa3, 0x99, 0x46, 0x98, 0x1b, 0x39,
1841                0xb3, 0x57, 0xd0, 0x55, 0x5c, 0x35, 0x62, 0xec, 0xae, 0x02, 0xaa, 0x2d, 0xad, 0x16,
1842                0x3e, 0x6c, 0x9a, 0x2e,
1843            ],
1844            Core::Low1 => [
1845                0xfe, 0x62, 0x14, 0xf9, 0x67, 0x15, 0x6d, 0xcd, 0xe6, 0xdd, 0x49, 0xfd, 0xc5, 0x5e,
1846                0xfb, 0x86, 0x50, 0x69, 0xfe, 0xab, 0xff, 0xf0, 0xfe, 0x93, 0x1d, 0xba, 0x85, 0x31,
1847                0x34, 0xee, 0xd1, 0x30,
1848            ],
1849            Core::Low16 => [
1850                0x74, 0x93, 0xcf, 0x69, 0x8a, 0x48, 0x82, 0xe5, 0xc3, 0x57, 0x9d, 0x06, 0x51, 0x8e,
1851                0x7e, 0xca, 0x2b, 0x84, 0x28, 0xf6, 0x2e, 0x2b, 0x51, 0x38, 0x02, 0xab, 0xe6, 0x22,
1852                0x17, 0x0c, 0x20, 0xfe,
1853            ],
1854            Core::Low32 => [
1855                0x36, 0x2d, 0x66, 0xa4, 0xf0, 0xae, 0xb9, 0x65, 0x84, 0xa5, 0x67, 0x57, 0x82, 0x71,
1856                0xb1, 0xf7, 0xbb, 0xfc, 0xc2, 0xde, 0x0d, 0xcf, 0x95, 0x79, 0x6b, 0x6f, 0x7a, 0x82,
1857                0x6b, 0x2a, 0x8a, 0xf7,
1858            ],
1859            Core::Low64 => [
1860                0x97, 0x33, 0x23, 0xbc, 0x2b, 0x92, 0xe4, 0x28, 0x04, 0xd2, 0xe4, 0xf5, 0x8b, 0x86,
1861                0xf6, 0x5b, 0x56, 0xf9, 0x1d, 0xee, 0xb4, 0x81, 0x0e, 0xab, 0x8a, 0x1d, 0xed, 0xa9,
1862                0x69, 0x7a, 0x08, 0x72,
1863            ],
1864            Core::Low8 => [
1865                0xcd, 0x1a, 0x85, 0x58, 0xef, 0x99, 0xa3, 0x22, 0x60, 0x21, 0x7a, 0x76, 0x49, 0xff,
1866                0x51, 0x40, 0xda, 0x69, 0xda, 0x70, 0x06, 0x72, 0x69, 0x0b, 0x27, 0x91, 0x7b, 0x07,
1867                0xd7, 0xc1, 0x4c, 0x67,
1868            ],
1869            Core::Lt16 => [
1870                0x04, 0xac, 0xa8, 0x7e, 0x3e, 0x17, 0xf8, 0x05, 0xa2, 0x1c, 0xf2, 0x91, 0x7a, 0xee,
1871                0x99, 0x57, 0xb9, 0x50, 0xb2, 0xdb, 0x5d, 0x7a, 0xe5, 0xc8, 0x26, 0xd4, 0xac, 0x2e,
1872                0xc9, 0x7b, 0x5a, 0x52,
1873            ],
1874            Core::Lt32 => [
1875                0x23, 0xa0, 0xa5, 0xc1, 0x97, 0x74, 0x7e, 0x3a, 0x95, 0x79, 0xe9, 0x0e, 0x0f, 0x22,
1876                0xf8, 0x4a, 0x29, 0xbf, 0xb5, 0xf0, 0x7b, 0x84, 0xb5, 0x9b, 0x26, 0x68, 0x8a, 0x0c,
1877                0xd5, 0x9d, 0xfe, 0xbd,
1878            ],
1879            Core::Lt64 => [
1880                0xd2, 0x99, 0x90, 0x1c, 0x7b, 0x5b, 0x3a, 0x59, 0xff, 0xc8, 0xdd, 0x09, 0x54, 0x5a,
1881                0x32, 0x38, 0x24, 0xb7, 0x79, 0xa9, 0x9b, 0x2d, 0x1a, 0x2f, 0x87, 0x45, 0x2d, 0x9e,
1882                0x4b, 0xef, 0xaf, 0x30,
1883            ],
1884            Core::Lt8 => [
1885                0xdd, 0x94, 0x41, 0x3b, 0x52, 0x9c, 0x29, 0x8c, 0x16, 0x96, 0xe9, 0xfb, 0x08, 0xe6,
1886                0x67, 0x67, 0xb3, 0xf8, 0x33, 0x7a, 0xc0, 0x2e, 0x44, 0xb0, 0x68, 0xe9, 0x40, 0x14,
1887                0xf7, 0xc4, 0x1f, 0x2a,
1888            ],
1889            Core::Maj1 => [
1890                0x0e, 0x6f, 0xb4, 0x0f, 0xe3, 0x1a, 0x3a, 0x52, 0x6b, 0x44, 0xcf, 0x0b, 0x7c, 0x79,
1891                0x36, 0xc7, 0x77, 0xcb, 0xba, 0x89, 0x65, 0xa7, 0x25, 0x52, 0x32, 0xa7, 0xcf, 0x53,
1892                0xa9, 0x22, 0x88, 0x5a,
1893            ],
1894            Core::Maj16 => [
1895                0x38, 0x66, 0x9c, 0xe5, 0xe1, 0xe1, 0x71, 0x47, 0x54, 0x00, 0x73, 0x1b, 0xee, 0xb6,
1896                0x0b, 0xca, 0xfa, 0xd6, 0x66, 0x04, 0xc9, 0x39, 0x40, 0x16, 0x0c, 0xd7, 0x12, 0x88,
1897                0x35, 0x55, 0x93, 0x42,
1898            ],
1899            Core::Maj32 => [
1900                0x55, 0x54, 0x34, 0x9b, 0x58, 0x4f, 0x5c, 0x38, 0x72, 0xc7, 0xf4, 0xf2, 0x57, 0x82,
1901                0x9e, 0x2a, 0xe8, 0x22, 0xd8, 0x23, 0x42, 0x4c, 0xeb, 0x95, 0x98, 0xf0, 0x83, 0x18,
1902                0x58, 0x6a, 0x88, 0x07,
1903            ],
1904            Core::Maj64 => [
1905                0x73, 0x49, 0x03, 0xba, 0xef, 0xb7, 0x1d, 0x5e, 0xa4, 0x16, 0x48, 0xff, 0x43, 0xee,
1906                0xe6, 0x98, 0x94, 0xe0, 0x63, 0xb3, 0x88, 0xea, 0x42, 0x2f, 0x96, 0xae, 0xde, 0x19,
1907                0x3c, 0xea, 0xb8, 0x39,
1908            ],
1909            Core::Maj8 => [
1910                0xba, 0x47, 0xa3, 0x99, 0xdc, 0x94, 0x35, 0xe1, 0x8e, 0x08, 0x0a, 0x4e, 0x18, 0xaf,
1911                0x7c, 0x65, 0x7f, 0xd3, 0x9f, 0x7c, 0xe7, 0xd6, 0x05, 0x2e, 0x46, 0x90, 0x23, 0x11,
1912                0xb0, 0x78, 0xd5, 0x85,
1913            ],
1914            Core::Max16 => [
1915                0xaa, 0x55, 0x23, 0x74, 0x6c, 0xab, 0xfa, 0xf5, 0x66, 0x8e, 0x9e, 0x07, 0x37, 0xe5,
1916                0x6b, 0x06, 0x06, 0x22, 0x51, 0xd7, 0xe8, 0x0a, 0xb9, 0xb9, 0x10, 0x6d, 0x8f, 0x17,
1917                0x2d, 0xc8, 0x4d, 0xd6,
1918            ],
1919            Core::Max32 => [
1920                0x69, 0x22, 0x96, 0x5d, 0x14, 0x43, 0x45, 0xc9, 0x13, 0xec, 0xb3, 0x0b, 0x5e, 0xd4,
1921                0x7e, 0x88, 0xda, 0xe3, 0x5c, 0x12, 0x21, 0xf2, 0x6a, 0xa9, 0x2d, 0xd5, 0xa5, 0xf6,
1922                0x15, 0xdb, 0xdb, 0x53,
1923            ],
1924            Core::Max64 => [
1925                0x8a, 0x9b, 0xe9, 0x07, 0xb6, 0xa4, 0xc3, 0x0a, 0xbc, 0xc0, 0xf2, 0x2d, 0x01, 0x30,
1926                0x74, 0xc2, 0xd5, 0x6b, 0xb0, 0x81, 0xf2, 0x62, 0x18, 0x57, 0xd5, 0x38, 0xcc, 0x97,
1927                0x13, 0x1e, 0x44, 0x09,
1928            ],
1929            Core::Max8 => [
1930                0xb4, 0xbf, 0x93, 0x23, 0x40, 0x22, 0xe8, 0x60, 0xfe, 0x76, 0xc0, 0xb5, 0x36, 0x0e,
1931                0x8b, 0x36, 0xff, 0x81, 0xee, 0x67, 0x05, 0xb5, 0x93, 0xac, 0xdf, 0x65, 0x5a, 0xc6,
1932                0xe6, 0xd7, 0xae, 0xba,
1933            ],
1934            Core::Median16 => [
1935                0x17, 0xe2, 0xe8, 0x7f, 0x07, 0x60, 0xf4, 0xfb, 0x3c, 0x9f, 0xd0, 0xbe, 0xd0, 0x00,
1936                0xd7, 0x39, 0x73, 0xab, 0x60, 0xf5, 0xe6, 0xc2, 0xc1, 0xfa, 0xb1, 0x7f, 0x9b, 0x23,
1937                0xee, 0x6a, 0xca, 0x48,
1938            ],
1939            Core::Median32 => [
1940                0x11, 0x60, 0xae, 0x8e, 0xa8, 0xd3, 0x0f, 0x9a, 0x22, 0x33, 0xc4, 0x8e, 0x73, 0x12,
1941                0x40, 0xf8, 0x44, 0x93, 0xb8, 0x28, 0xb5, 0x57, 0x93, 0xe2, 0xf4, 0x04, 0x2a, 0x19,
1942                0x82, 0xac, 0x26, 0xa5,
1943            ],
1944            Core::Median64 => [
1945                0xc8, 0x73, 0x73, 0x64, 0x9e, 0x7e, 0x40, 0x50, 0xbb, 0x73, 0x33, 0x7e, 0x08, 0xeb,
1946                0x5d, 0xe4, 0x52, 0x28, 0xab, 0x86, 0xad, 0x4e, 0x1f, 0x41, 0x91, 0xe5, 0x20, 0x2a,
1947                0xa6, 0xaf, 0xa0, 0xc5,
1948            ],
1949            Core::Median8 => [
1950                0xc3, 0xb4, 0xe0, 0x89, 0x8a, 0x21, 0xbd, 0xe9, 0x4d, 0xae, 0xd3, 0x7a, 0x20, 0xad,
1951                0xf9, 0x0c, 0x8b, 0xe5, 0x69, 0x1a, 0x03, 0xb6, 0xa1, 0xe5, 0x56, 0x38, 0x5d, 0x42,
1952                0xeb, 0x19, 0x02, 0x2b,
1953            ],
1954            Core::Min16 => [
1955                0x5f, 0xd0, 0x05, 0x1e, 0xdb, 0x37, 0x19, 0xa6, 0x45, 0xb2, 0x72, 0xa0, 0x21, 0x08,
1956                0xef, 0xbb, 0x3d, 0x9b, 0xc0, 0xf6, 0x06, 0x21, 0xbf, 0x5a, 0x5b, 0xab, 0xe1, 0x16,
1957                0xd5, 0x55, 0xd5, 0x78,
1958            ],
1959            Core::Min32 => [
1960                0xd8, 0x07, 0x82, 0xa2, 0xb5, 0xd8, 0x6a, 0xb6, 0xb9, 0xc9, 0xc3, 0xfb, 0x77, 0x8a,
1961                0x34, 0x73, 0xf6, 0x00, 0xb1, 0x85, 0xfe, 0x19, 0x25, 0xee, 0x9f, 0xc2, 0xe8, 0x77,
1962                0x7e, 0xd2, 0x66, 0x01,
1963            ],
1964            Core::Min64 => [
1965                0xc5, 0xc0, 0x9d, 0x50, 0x13, 0x38, 0xe9, 0xa5, 0x12, 0xcf, 0x89, 0x76, 0xca, 0x4b,
1966                0x32, 0xb9, 0x24, 0x80, 0xbe, 0xf6, 0xae, 0xb2, 0x9d, 0x36, 0xd5, 0x90, 0xd3, 0x5b,
1967                0xf9, 0xf9, 0xec, 0xe1,
1968            ],
1969            Core::Min8 => [
1970                0x81, 0xd2, 0x1e, 0x12, 0x81, 0x42, 0x38, 0x81, 0x80, 0x2c, 0x0e, 0x0c, 0x7d, 0x22,
1971                0xbd, 0x34, 0xd2, 0x6b, 0xd1, 0x2a, 0x4c, 0x4f, 0x1b, 0x70, 0x68, 0xe7, 0xe1, 0x83,
1972                0x82, 0x08, 0x48, 0xe9,
1973            ],
1974            Core::Modulo16 => [
1975                0xb6, 0xb8, 0x7c, 0xfa, 0xb6, 0x7e, 0x55, 0x19, 0xf1, 0xc9, 0x98, 0xda, 0x47, 0x94,
1976                0x37, 0xbb, 0x79, 0xe6, 0x74, 0xf7, 0x15, 0xe9, 0xa2, 0xe5, 0x38, 0xee, 0xc5, 0xec,
1977                0x18, 0xe1, 0x8e, 0xa5,
1978            ],
1979            Core::Modulo32 => [
1980                0x8d, 0x48, 0x6e, 0x83, 0x16, 0x54, 0xf3, 0x8a, 0x32, 0xda, 0x35, 0xeb, 0x7b, 0xb6,
1981                0x55, 0xa6, 0xed, 0x69, 0x4d, 0xbf, 0xa0, 0x58, 0x95, 0x7d, 0x9f, 0x5c, 0xbf, 0xcc,
1982                0x57, 0x92, 0xc6, 0x5b,
1983            ],
1984            Core::Modulo64 => [
1985                0x14, 0xdf, 0x20, 0xd9, 0x3d, 0xfd, 0xef, 0xe2, 0x55, 0x9b, 0xac, 0x50, 0xed, 0x38,
1986                0x19, 0x3b, 0xd7, 0x8b, 0xd6, 0x3f, 0x92, 0x9d, 0x86, 0xfb, 0x4f, 0x29, 0xa7, 0xc5,
1987                0xaf, 0x32, 0x42, 0xad,
1988            ],
1989            Core::Modulo8 => [
1990                0x2c, 0x75, 0x8a, 0x7c, 0x0f, 0x59, 0xe8, 0x00, 0xe9, 0x4f, 0x3d, 0xc5, 0xa0, 0x01,
1991                0xbf, 0x8e, 0xd9, 0x43, 0x5f, 0x75, 0xa2, 0xd9, 0x69, 0x30, 0xc5, 0x7e, 0xaa, 0xb0,
1992                0xcd, 0x80, 0xaf, 0x5c,
1993            ],
1994            Core::Multiply16 => [
1995                0x75, 0xbd, 0x41, 0xf2, 0xd2, 0xb3, 0x39, 0xf0, 0x69, 0xbf, 0xdf, 0xd8, 0x02, 0xd6,
1996                0x1e, 0x6c, 0xa8, 0xe3, 0xba, 0xd6, 0xfb, 0x6d, 0x95, 0xb6, 0x72, 0x09, 0x5b, 0x93,
1997                0x34, 0x5f, 0x04, 0x7f,
1998            ],
1999            Core::Multiply32 => [
2000                0x84, 0xcb, 0xe6, 0xce, 0x87, 0x03, 0x79, 0x92, 0x13, 0x87, 0x7c, 0x1b, 0xd5, 0x05,
2001                0xc7, 0x64, 0x34, 0x33, 0x69, 0x00, 0x2e, 0x50, 0x2c, 0x43, 0xd9, 0x7f, 0x3d, 0x57,
2002                0x77, 0x2d, 0x6c, 0x87,
2003            ],
2004            Core::Multiply64 => [
2005                0x92, 0x98, 0x7b, 0x80, 0x1b, 0x92, 0xf6, 0x79, 0xeb, 0x96, 0x13, 0x68, 0x84, 0x44,
2006                0xa1, 0x78, 0x87, 0x50, 0xa8, 0x50, 0x6e, 0x03, 0xa9, 0x21, 0x8c, 0x21, 0xec, 0xc7,
2007                0x20, 0x82, 0xdc, 0x6a,
2008            ],
2009            Core::Multiply8 => [
2010                0x76, 0x4c, 0xab, 0x71, 0xdb, 0x94, 0x59, 0xa7, 0x69, 0x6d, 0x94, 0x4a, 0x50, 0x09,
2011                0x5b, 0x1a, 0xeb, 0xdf, 0xd9, 0x28, 0x4b, 0xdb, 0x74, 0x96, 0xa7, 0xb3, 0x02, 0x41,
2012                0xcc, 0xba, 0x3e, 0xce,
2013            ],
2014            Core::Negate16 => [
2015                0xe7, 0x60, 0xee, 0x40, 0x29, 0xc3, 0x4f, 0x89, 0x74, 0x06, 0xff, 0xde, 0xa5, 0x55,
2016                0x84, 0x86, 0x62, 0xe8, 0x9c, 0x98, 0x3e, 0x60, 0x70, 0xbd, 0x02, 0x72, 0xad, 0x0f,
2017                0xa3, 0x42, 0xef, 0xa3,
2018            ],
2019            Core::Negate32 => [
2020                0x84, 0x95, 0xb7, 0x40, 0x09, 0xad, 0x07, 0xc9, 0x30, 0x2a, 0x25, 0xae, 0x56, 0xc3,
2021                0xe9, 0x73, 0x3f, 0x00, 0xc2, 0xba, 0xa4, 0x10, 0xea, 0xc4, 0xa5, 0x8e, 0x75, 0xdb,
2022                0x83, 0xaf, 0x1d, 0x22,
2023            ],
2024            Core::Negate64 => [
2025                0x34, 0xe8, 0x9f, 0xaf, 0x34, 0x5a, 0xfd, 0x5e, 0x7b, 0x29, 0x00, 0x14, 0x52, 0xfc,
2026                0x5f, 0xc2, 0xe3, 0x78, 0x3a, 0xf7, 0xf2, 0x10, 0x16, 0x43, 0xbd, 0x76, 0x70, 0x6a,
2027                0x6f, 0xc3, 0xf3, 0x6a,
2028            ],
2029            Core::Negate8 => [
2030                0xe8, 0x1b, 0xe0, 0xb1, 0x5c, 0x67, 0x1a, 0xb8, 0xdf, 0x1f, 0x48, 0x69, 0xc5, 0x7f,
2031                0x11, 0x11, 0x18, 0xcb, 0x66, 0x83, 0x54, 0x97, 0x5c, 0x63, 0x66, 0xec, 0xb2, 0xb8,
2032                0xbb, 0x7c, 0x15, 0xcf,
2033            ],
2034            Core::One16 => [
2035                0x2e, 0x5e, 0x3d, 0x95, 0xe4, 0x53, 0x16, 0x88, 0x8e, 0x4f, 0x37, 0x09, 0xef, 0x83,
2036                0x2b, 0x9f, 0xd9, 0xe1, 0x5f, 0x30, 0x71, 0x9b, 0xf5, 0x5f, 0xc2, 0xe0, 0xe0, 0x9a,
2037                0x36, 0x57, 0xd8, 0x82,
2038            ],
2039            Core::One32 => [
2040                0x06, 0x42, 0x6b, 0x85, 0x3c, 0x1b, 0xcb, 0x33, 0x8a, 0xed, 0xbe, 0x1f, 0x89, 0xa6,
2041                0xd9, 0xb7, 0xa3, 0xda, 0x03, 0x8c, 0xd0, 0x0a, 0x44, 0x71, 0x18, 0x36, 0x93, 0x49,
2042                0x66, 0x9e, 0x29, 0x76,
2043            ],
2044            Core::One64 => [
2045                0xab, 0x1d, 0x2c, 0xd9, 0x96, 0x78, 0xda, 0x3c, 0x12, 0x8d, 0x39, 0xad, 0x9f, 0xe6,
2046                0xff, 0xa9, 0x55, 0xc1, 0x6e, 0x5e, 0xf2, 0xc2, 0x5b, 0xb4, 0x31, 0x83, 0x15, 0x59,
2047                0x69, 0x51, 0xf4, 0x27,
2048            ],
2049            Core::One8 => [
2050                0x3c, 0xc5, 0xf5, 0x23, 0xd6, 0xa6, 0x35, 0x5d, 0xc9, 0x24, 0xee, 0x0a, 0xc1, 0xf5,
2051                0xfe, 0x2c, 0x52, 0x12, 0x75, 0xe3, 0xaa, 0x9f, 0x21, 0xd3, 0x1b, 0x08, 0x2d, 0xb2,
2052                0xac, 0x23, 0x0d, 0x9d,
2053            ],
2054            Core::Or1 => [
2055                0xc4, 0x65, 0x96, 0x43, 0x69, 0xfc, 0xa2, 0x09, 0x7f, 0x83, 0x53, 0x0c, 0x87, 0xbc,
2056                0xbc, 0x90, 0xc3, 0x06, 0x57, 0x9d, 0x9f, 0x3b, 0xfe, 0xdd, 0xf4, 0xa1, 0x72, 0xa4,
2057                0xea, 0x0b, 0x58, 0xec,
2058            ],
2059            Core::Or16 => [
2060                0x5a, 0x98, 0x5e, 0x04, 0x3b, 0x85, 0x27, 0x3b, 0x90, 0xf9, 0x0e, 0x20, 0xf8, 0x2b,
2061                0x75, 0x32, 0x33, 0x51, 0xcf, 0x2a, 0x4e, 0x62, 0xa7, 0xf9, 0xcb, 0x2f, 0x05, 0x96,
2062                0x40, 0x2e, 0x9e, 0x28,
2063            ],
2064            Core::Or32 => [
2065                0x35, 0x52, 0x38, 0x3a, 0x57, 0xff, 0xb4, 0x8d, 0x63, 0xa0, 0x33, 0x7a, 0xf0, 0xdd,
2066                0x6e, 0xfa, 0xb6, 0xb4, 0x6c, 0x5d, 0xe1, 0x72, 0x0e, 0x42, 0x0b, 0xdd, 0x1c, 0x82,
2067                0x27, 0x6b, 0xc9, 0xa9,
2068            ],
2069            Core::Or64 => [
2070                0x51, 0xa1, 0x73, 0xda, 0xdc, 0xa0, 0x1a, 0xc6, 0xf6, 0x2e, 0x75, 0xd5, 0xcd, 0x35,
2071                0x22, 0xf0, 0x9f, 0xde, 0x62, 0xb1, 0x15, 0x13, 0xe0, 0x68, 0x42, 0x28, 0x52, 0xa4,
2072                0x91, 0x67, 0xb6, 0x06,
2073            ],
2074            Core::Or8 => [
2075                0x79, 0xef, 0xbd, 0xcb, 0x53, 0x7b, 0xeb, 0xcb, 0x18, 0x8d, 0x11, 0x16, 0xb7, 0x8a,
2076                0x10, 0x9b, 0xff, 0xbc, 0x2a, 0x6c, 0xe3, 0xd1, 0xf8, 0x70, 0x15, 0x4a, 0x79, 0x56,
2077                0x09, 0x1b, 0x34, 0x2f,
2078            ],
2079            Core::ParseLock => [
2080                0x3d, 0xb8, 0x45, 0x35, 0xfa, 0x3d, 0x90, 0xef, 0x0b, 0x58, 0x1e, 0x22, 0xb6, 0x1d,
2081                0x21, 0x27, 0x84, 0x4b, 0x21, 0x16, 0xe8, 0x4f, 0x81, 0x4a, 0x5c, 0xba, 0xc5, 0x2d,
2082                0xf5, 0x15, 0xf2, 0xd2,
2083            ],
2084            Core::ParseSequence => [
2085                0x38, 0xb2, 0x53, 0x3f, 0x5f, 0xed, 0xe8, 0x69, 0xba, 0xa1, 0x70, 0x69, 0x83, 0xdf,
2086                0x4c, 0x89, 0xd6, 0x2d, 0x5f, 0x90, 0x80, 0x0b, 0x47, 0xea, 0xb2, 0x11, 0x13, 0x31,
2087                0x1a, 0x5a, 0xae, 0xc9,
2088            ],
2089            Core::PointVerify1 => [
2090                0xbe, 0x2a, 0x98, 0x90, 0xf1, 0xd5, 0xb6, 0x15, 0x14, 0x7f, 0x82, 0x41, 0xe0, 0x60,
2091                0x9b, 0x5c, 0xac, 0x01, 0xec, 0xe0, 0xa3, 0xf9, 0x23, 0x68, 0x67, 0xb2, 0xbf, 0xde,
2092                0xa1, 0xb8, 0x04, 0x4e,
2093            ],
2094            Core::RightExtend16_32 => [
2095                0xdb, 0xf1, 0x8d, 0x87, 0xa7, 0x89, 0x21, 0x39, 0xa3, 0x88, 0xe9, 0xa9, 0x83, 0xc4,
2096                0x89, 0x92, 0xac, 0x35, 0xa8, 0x45, 0x56, 0xee, 0x0d, 0xef, 0xc1, 0xda, 0xdf, 0x0c,
2097                0x5f, 0x47, 0x1a, 0x26,
2098            ],
2099            Core::RightExtend16_64 => [
2100                0xd0, 0x11, 0xac, 0xc7, 0x94, 0xe3, 0xc4, 0x78, 0x9a, 0xcc, 0xd0, 0xd5, 0xfe, 0x49,
2101                0x97, 0xd3, 0x34, 0xd9, 0x1f, 0x08, 0x31, 0xa1, 0xeb, 0x35, 0x04, 0xb4, 0xcb, 0x2d,
2102                0xdf, 0x47, 0x97, 0xaf,
2103            ],
2104            Core::RightExtend32_64 => [
2105                0xa5, 0xaa, 0x5d, 0xb1, 0xe5, 0x35, 0xe7, 0x23, 0x2a, 0xd3, 0x6d, 0xaf, 0xba, 0x6d,
2106                0x5a, 0x20, 0x0d, 0x54, 0xeb, 0x85, 0x3b, 0x75, 0xdc, 0x70, 0xa5, 0x94, 0xed, 0x64,
2107                0xaa, 0x6b, 0xd9, 0xab,
2108            ],
2109            Core::RightExtend8_16 => [
2110                0x81, 0x06, 0xd5, 0x8a, 0x80, 0x66, 0xee, 0x6e, 0x15, 0xe5, 0x5c, 0xa5, 0x2c, 0xb7,
2111                0xaf, 0xd8, 0xe3, 0x27, 0x75, 0x87, 0xbf, 0xd7, 0xde, 0xc0, 0xbe, 0x37, 0xd4, 0x06,
2112                0x74, 0x2a, 0x39, 0x31,
2113            ],
2114            Core::RightExtend8_32 => [
2115                0xdf, 0xa4, 0xba, 0xfa, 0x43, 0x2a, 0x53, 0x38, 0xd3, 0x74, 0xde, 0xb6, 0xb7, 0x24,
2116                0xb7, 0xf6, 0xea, 0xe5, 0x58, 0x61, 0xfe, 0x73, 0x1d, 0x43, 0x04, 0x8a, 0xa3, 0x04,
2117                0xd1, 0xf7, 0xf9, 0xa2,
2118            ],
2119            Core::RightExtend8_64 => [
2120                0x62, 0x0a, 0x37, 0x03, 0x8b, 0x6f, 0xa1, 0x27, 0x49, 0x5f, 0x0b, 0x46, 0x49, 0x6f,
2121                0x64, 0x35, 0xdd, 0x2d, 0xad, 0x7e, 0xf0, 0xc0, 0xfd, 0x2c, 0xd6, 0x5f, 0x54, 0xdc,
2122                0x18, 0x5e, 0x99, 0x7b,
2123            ],
2124            Core::RightPadHigh16_32 => [
2125                0x2b, 0x6a, 0xbc, 0x38, 0x32, 0x1a, 0x7c, 0x54, 0x2f, 0xb1, 0x69, 0x74, 0x62, 0x1c,
2126                0xed, 0x80, 0x88, 0x0d, 0xb5, 0x19, 0xbb, 0x48, 0x60, 0x93, 0x42, 0x6e, 0x8c, 0xe1,
2127                0x8e, 0x01, 0x69, 0xb1,
2128            ],
2129            Core::RightPadHigh16_64 => [
2130                0xad, 0x90, 0xd8, 0xff, 0xa5, 0x74, 0x50, 0xb3, 0xb5, 0xe9, 0x09, 0x62, 0x25, 0x34,
2131                0x9e, 0xd8, 0xf0, 0x72, 0xe1, 0x01, 0x72, 0x93, 0xf3, 0x92, 0xef, 0x85, 0x4e, 0x03,
2132                0x19, 0xab, 0xc9, 0x34,
2133            ],
2134            Core::RightPadHigh1_16 => [
2135                0x28, 0x81, 0x58, 0xb1, 0xc9, 0x10, 0x87, 0x7b, 0x7e, 0xea, 0x3d, 0xfc, 0xf2, 0xb2,
2136                0xb7, 0x88, 0x92, 0x28, 0x08, 0xb6, 0xd6, 0xfa, 0x75, 0xf8, 0x96, 0x77, 0x19, 0x04,
2137                0x8b, 0x14, 0x12, 0x49,
2138            ],
2139            Core::RightPadHigh1_32 => [
2140                0xee, 0x2a, 0xd7, 0x7f, 0x66, 0x8d, 0x3d, 0x6a, 0x2e, 0x68, 0x50, 0x6e, 0x49, 0x04,
2141                0xcf, 0x50, 0xa0, 0x84, 0x60, 0xe1, 0xd2, 0xb8, 0x6a, 0x81, 0xe1, 0x4e, 0x41, 0xf8,
2142                0xda, 0x4c, 0xdd, 0xf2,
2143            ],
2144            Core::RightPadHigh1_64 => [
2145                0x3d, 0x6a, 0x7f, 0xe6, 0x9a, 0x11, 0x64, 0x2a, 0xce, 0xd6, 0x84, 0x2b, 0x89, 0xaa,
2146                0x1b, 0xb8, 0x41, 0x3e, 0x39, 0x90, 0x63, 0xcc, 0x16, 0x78, 0x6a, 0xf7, 0xc0, 0x33,
2147                0xda, 0xd5, 0x8b, 0x95,
2148            ],
2149            Core::RightPadHigh1_8 => [
2150                0x28, 0x44, 0xbd, 0xfd, 0x6a, 0xba, 0x29, 0xdf, 0x03, 0xf9, 0x3a, 0xa6, 0xae, 0xb2,
2151                0x1c, 0x06, 0x40, 0x28, 0xdb, 0x05, 0xff, 0x77, 0xd8, 0xd9, 0x1c, 0xfd, 0xcd, 0xef,
2152                0xb1, 0x90, 0xc5, 0xbd,
2153            ],
2154            Core::RightPadHigh32_64 => [
2155                0xb4, 0x32, 0xe5, 0x32, 0x1a, 0xe1, 0x71, 0x4c, 0xe1, 0x95, 0x29, 0xd8, 0x5f, 0x24,
2156                0xff, 0x89, 0x87, 0x91, 0x0e, 0xbc, 0xf0, 0x15, 0xf8, 0x7f, 0x15, 0xbb, 0xed, 0x55,
2157                0xf0, 0xa0, 0xe8, 0x92,
2158            ],
2159            Core::RightPadHigh8_16 => [
2160                0x6f, 0x2d, 0x96, 0xc9, 0x54, 0x13, 0xca, 0x9a, 0xa8, 0xcc, 0x55, 0x0f, 0x25, 0x73,
2161                0xe1, 0x66, 0x99, 0x56, 0xd6, 0x07, 0x69, 0x2c, 0xf1, 0xca, 0x6d, 0xc7, 0x6d, 0x2f,
2162                0x2b, 0x4a, 0x3a, 0xc8,
2163            ],
2164            Core::RightPadHigh8_32 => [
2165                0xdf, 0x2c, 0x7f, 0x92, 0x99, 0x00, 0xa4, 0x49, 0x01, 0xe6, 0xff, 0x65, 0x27, 0x6a,
2166                0x95, 0x1a, 0xeb, 0x95, 0xdf, 0x25, 0x0b, 0x13, 0x97, 0x14, 0xd4, 0x19, 0x54, 0x04,
2167                0xd7, 0x78, 0x98, 0xed,
2168            ],
2169            Core::RightPadHigh8_64 => [
2170                0x79, 0xc0, 0x1d, 0xa3, 0xe6, 0x0b, 0x9c, 0x69, 0x35, 0xce, 0x3e, 0x15, 0x98, 0xb1,
2171                0x78, 0x40, 0xaf, 0x82, 0xdc, 0xb0, 0xdd, 0xc6, 0x3a, 0xef, 0x4a, 0x06, 0xe7, 0xf9,
2172                0xca, 0x5d, 0x27, 0x41,
2173            ],
2174            Core::RightPadLow16_32 => [
2175                0x6f, 0x20, 0x10, 0x27, 0xcc, 0x75, 0x98, 0x02, 0x30, 0xa0, 0x70, 0x85, 0x9c, 0x3e,
2176                0x38, 0x02, 0x36, 0xa1, 0xcb, 0x10, 0xe6, 0x1a, 0x01, 0xaa, 0x1f, 0x6d, 0x23, 0x1d,
2177                0x15, 0x14, 0x2f, 0x25,
2178            ],
2179            Core::RightPadLow16_64 => [
2180                0xb8, 0x6e, 0x1f, 0x0b, 0xfe, 0xc6, 0x55, 0x98, 0xd0, 0xa3, 0xd1, 0xec, 0x96, 0x03,
2181                0x05, 0xb9, 0x67, 0x45, 0x67, 0x3e, 0x1b, 0x16, 0xbf, 0x32, 0x7a, 0x71, 0x68, 0x05,
2182                0x83, 0xd7, 0x1d, 0x90,
2183            ],
2184            Core::RightPadLow1_16 => [
2185                0x05, 0x2a, 0x64, 0x99, 0xc9, 0x3e, 0xe6, 0xbc, 0x1a, 0xe6, 0x57, 0xf8, 0x5f, 0xd4,
2186                0xd4, 0xfe, 0x67, 0x7a, 0xbc, 0xee, 0x54, 0x0d, 0x13, 0x40, 0x33, 0x54, 0x2e, 0x9a,
2187                0xb6, 0x0a, 0x63, 0xdd,
2188            ],
2189            Core::RightPadLow1_32 => [
2190                0x5b, 0x70, 0xd4, 0x28, 0x96, 0x0e, 0x95, 0xcc, 0x40, 0xd5, 0x18, 0x46, 0xf5, 0x3a,
2191                0x4d, 0x0a, 0x35, 0xc9, 0x01, 0x5d, 0x15, 0x00, 0xb6, 0xbc, 0x84, 0x9b, 0x72, 0x83,
2192                0x5e, 0x2b, 0xd4, 0x40,
2193            ],
2194            Core::RightPadLow1_64 => [
2195                0x44, 0xef, 0xeb, 0x87, 0xca, 0x2a, 0xd7, 0xfd, 0x4b, 0x73, 0xf1, 0x63, 0x07, 0xc7,
2196                0xf0, 0x59, 0x02, 0x65, 0x6f, 0x35, 0x09, 0x0f, 0xb0, 0xa4, 0x32, 0x6c, 0x64, 0x89,
2197                0x88, 0xae, 0x1d, 0x39,
2198            ],
2199            Core::RightPadLow1_8 => [
2200                0x93, 0x40, 0x39, 0x8b, 0xcc, 0x8e, 0xa8, 0x3e, 0xc8, 0x40, 0xbe, 0x72, 0x9d, 0xbb,
2201                0x8b, 0x81, 0x20, 0x78, 0x24, 0xee, 0x87, 0x5d, 0x15, 0x82, 0x59, 0xd6, 0xda, 0xd2,
2202                0x0a, 0x83, 0x93, 0x0c,
2203            ],
2204            Core::RightPadLow32_64 => [
2205                0x69, 0x3e, 0x28, 0x10, 0x1e, 0x04, 0xfd, 0xa4, 0x3b, 0x97, 0xe6, 0x11, 0xf0, 0xfe,
2206                0x98, 0x00, 0x0e, 0x14, 0x30, 0x2e, 0x5d, 0xcd, 0x6e, 0xd6, 0x5e, 0xee, 0x42, 0xe3,
2207                0x40, 0x14, 0x24, 0x2f,
2208            ],
2209            Core::RightPadLow8_16 => [
2210                0x09, 0x6b, 0x25, 0xc3, 0xc8, 0x41, 0x5f, 0x04, 0xd8, 0x83, 0x27, 0x43, 0xeb, 0x2f,
2211                0x84, 0x56, 0xd5, 0xf0, 0xa6, 0x44, 0x91, 0x3d, 0x3e, 0xc5, 0x9d, 0x34, 0xf4, 0x55,
2212                0x25, 0x01, 0xfa, 0x20,
2213            ],
2214            Core::RightPadLow8_32 => [
2215                0xfc, 0x7f, 0x57, 0x22, 0xa6, 0x2a, 0xa2, 0x20, 0x18, 0xcc, 0x81, 0xcd, 0x00, 0xa9,
2216                0x32, 0x6c, 0x7f, 0xe9, 0xc6, 0x3a, 0xbc, 0xe2, 0xbd, 0xa4, 0xc0, 0xe6, 0x6a, 0x3f,
2217                0x47, 0xc6, 0x7c, 0x53,
2218            ],
2219            Core::RightPadLow8_64 => [
2220                0xa5, 0xbb, 0x7d, 0x5e, 0xfc, 0xa0, 0xe4, 0x8d, 0x9d, 0x80, 0xc5, 0x02, 0x71, 0x15,
2221                0xb4, 0x85, 0x78, 0x10, 0x51, 0xe0, 0xef, 0x46, 0xe4, 0xd6, 0x08, 0x31, 0x7a, 0x1c,
2222                0x42, 0x61, 0xbc, 0x46,
2223            ],
2224            Core::RightRotate16 => [
2225                0x48, 0x2e, 0xa7, 0xe1, 0x21, 0x45, 0x01, 0xd9, 0x3c, 0x9a, 0xd1, 0x6f, 0xa8, 0xb9,
2226                0x7b, 0xf5, 0xb3, 0x84, 0xfc, 0x2b, 0x54, 0x78, 0x9b, 0x8c, 0xd9, 0xe7, 0x84, 0xcc,
2227                0xd0, 0xeb, 0x9d, 0x57,
2228            ],
2229            Core::RightRotate32 => [
2230                0x09, 0x41, 0xb6, 0xee, 0xea, 0x9a, 0xf8, 0x19, 0x5b, 0x02, 0x8a, 0xfc, 0x0b, 0xd2,
2231                0xa5, 0x34, 0x21, 0x8b, 0xf9, 0x0d, 0x1a, 0x0e, 0x37, 0x3d, 0x74, 0x74, 0x18, 0x54,
2232                0x0b, 0x72, 0x6d, 0x73,
2233            ],
2234            Core::RightRotate64 => [
2235                0x44, 0x4d, 0xbb, 0xc3, 0xdd, 0x2a, 0x11, 0xa5, 0xc7, 0xb0, 0x43, 0x9f, 0xdb, 0xa9,
2236                0x9a, 0xc7, 0x4a, 0x11, 0xb8, 0xee, 0xb2, 0xdb, 0x30, 0x1e, 0x24, 0x3e, 0xa8, 0x91,
2237                0x22, 0x90, 0x71, 0x52,
2238            ],
2239            Core::RightRotate8 => [
2240                0x72, 0x65, 0xa3, 0x0c, 0x2e, 0x83, 0x6e, 0x65, 0x54, 0x4a, 0xba, 0x91, 0x1b, 0x64,
2241                0xd1, 0x8f, 0xa6, 0x9b, 0x17, 0x65, 0x45, 0x85, 0x6c, 0x77, 0xc4, 0xf0, 0xd7, 0x6f,
2242                0xc3, 0xf5, 0x83, 0x51,
2243            ],
2244            Core::RightShift16 => [
2245                0xcd, 0x57, 0xa3, 0xd3, 0xab, 0x2d, 0x92, 0xd4, 0xf0, 0x86, 0x55, 0x04, 0x3a, 0x8b,
2246                0x8b, 0xb6, 0x73, 0x89, 0x81, 0xfa, 0xe6, 0xda, 0x01, 0x34, 0xb4, 0xde, 0xda, 0xce,
2247                0x5f, 0x00, 0x88, 0x60,
2248            ],
2249            Core::RightShift32 => [
2250                0xd6, 0xb3, 0x26, 0xb1, 0xa3, 0x23, 0x57, 0xa3, 0x32, 0x80, 0x7d, 0x3f, 0xa1, 0xb1,
2251                0x56, 0xc2, 0x8b, 0x16, 0x22, 0xf7, 0x38, 0xde, 0xf1, 0x26, 0x81, 0x46, 0x7f, 0x34,
2252                0x9b, 0xd3, 0x49, 0x4b,
2253            ],
2254            Core::RightShift64 => [
2255                0xb2, 0x09, 0x5f, 0x2d, 0x47, 0x33, 0x5d, 0x5f, 0x98, 0xc8, 0x54, 0x34, 0xa2, 0xfa,
2256                0xf5, 0xb0, 0xf7, 0x5c, 0xf8, 0x99, 0x01, 0x2a, 0x34, 0xbb, 0xcd, 0x0a, 0x14, 0xcb,
2257                0xed, 0xb6, 0x11, 0x07,
2258            ],
2259            Core::RightShift8 => [
2260                0x4b, 0x2b, 0x1a, 0xa2, 0xef, 0x73, 0x21, 0x73, 0x17, 0x0d, 0x62, 0x1a, 0x38, 0xde,
2261                0xb2, 0x61, 0xe4, 0x73, 0xc0, 0x7c, 0x55, 0x8b, 0x05, 0x5a, 0x25, 0xa8, 0x6e, 0x4e,
2262                0x32, 0x1a, 0xfc, 0x04,
2263            ],
2264            Core::RightShiftWith16 => [
2265                0x14, 0xb7, 0x76, 0x85, 0x47, 0xb3, 0xd3, 0xf4, 0x7e, 0xe5, 0xc2, 0xb8, 0x0d, 0x9b,
2266                0xda, 0xe2, 0xae, 0xc1, 0xf9, 0xc6, 0x59, 0x4e, 0xd3, 0x12, 0x7b, 0x12, 0x64, 0x5a,
2267                0xdc, 0xf5, 0x97, 0x54,
2268            ],
2269            Core::RightShiftWith32 => [
2270                0x32, 0x7b, 0x6e, 0x98, 0xa6, 0xfd, 0x34, 0x0c, 0x60, 0xcf, 0x83, 0xaa, 0x64, 0x99,
2271                0x33, 0x11, 0x4c, 0xb8, 0xd8, 0x4f, 0x59, 0x0e, 0x01, 0x21, 0x3a, 0x26, 0x10, 0x01,
2272                0x2b, 0x46, 0x07, 0xea,
2273            ],
2274            Core::RightShiftWith64 => [
2275                0x06, 0x2f, 0xa7, 0x4a, 0xf3, 0x47, 0x6e, 0x59, 0x38, 0x7b, 0xe0, 0x8e, 0x69, 0x49,
2276                0xa0, 0x05, 0x43, 0xbc, 0x84, 0xa2, 0xb6, 0x89, 0xea, 0x39, 0xad, 0x6e, 0xed, 0x7f,
2277                0x75, 0x67, 0x85, 0xd4,
2278            ],
2279            Core::RightShiftWith8 => [
2280                0x14, 0x1b, 0xe4, 0x7e, 0x96, 0x7b, 0x2f, 0xd7, 0xc7, 0x12, 0x6c, 0x5a, 0xdf, 0x2d,
2281                0xfe, 0x47, 0x31, 0x5b, 0xbc, 0x10, 0x53, 0xbb, 0xe6, 0x05, 0xb3, 0x88, 0x98, 0xdb,
2282                0xed, 0x49, 0xf2, 0x27,
2283            ],
2284            Core::Rightmost16_1 => [
2285                0x3f, 0x3c, 0x43, 0x46, 0x87, 0x17, 0x42, 0x26, 0x5e, 0x87, 0xf0, 0x01, 0xb4, 0x6d,
2286                0xe7, 0xd1, 0x98, 0x75, 0x1b, 0x34, 0xfa, 0xa1, 0x80, 0x18, 0xde, 0x60, 0xc8, 0x46,
2287                0x8d, 0x9b, 0x98, 0xa4,
2288            ],
2289            Core::Rightmost16_2 => [
2290                0xc1, 0x8b, 0x9f, 0xdd, 0x34, 0x0a, 0x26, 0x7a, 0xc1, 0x6d, 0x4f, 0x39, 0xee, 0x75,
2291                0x43, 0x56, 0x52, 0xaa, 0xca, 0x52, 0x56, 0x50, 0xb5, 0x1a, 0x45, 0x87, 0x98, 0x04,
2292                0x8e, 0x62, 0x7d, 0x51,
2293            ],
2294            Core::Rightmost16_4 => [
2295                0xc6, 0xc5, 0x3f, 0xa7, 0x1e, 0x23, 0x0c, 0xf0, 0x58, 0x51, 0x58, 0xf4, 0x70, 0x58,
2296                0x8b, 0xac, 0x5c, 0x51, 0x8f, 0x84, 0xf9, 0xfc, 0x23, 0x86, 0x52, 0xf1, 0x75, 0xfb,
2297                0x6e, 0xa1, 0x8c, 0x11,
2298            ],
2299            Core::Rightmost16_8 => [
2300                0xee, 0x76, 0x9c, 0x1c, 0xc8, 0xa3, 0xfd, 0xd1, 0x83, 0x8f, 0xc9, 0xf0, 0x49, 0x0c,
2301                0xe7, 0x03, 0x93, 0xfd, 0x91, 0xba, 0x3c, 0xbd, 0x4a, 0xbd, 0x08, 0x64, 0x9f, 0xb9,
2302                0xc4, 0x43, 0x11, 0xbd,
2303            ],
2304            Core::Rightmost32_1 => [
2305                0x1c, 0x44, 0x23, 0x69, 0xfb, 0x81, 0xf6, 0x11, 0xd3, 0x28, 0x01, 0x0b, 0x86, 0x4b,
2306                0xcc, 0xb7, 0xf3, 0x5e, 0xd4, 0x77, 0xdf, 0xa3, 0x85, 0x55, 0x74, 0xc1, 0x35, 0x64,
2307                0xcd, 0xbd, 0xb8, 0x60,
2308            ],
2309            Core::Rightmost32_16 => [
2310                0xad, 0xd2, 0xc3, 0x39, 0x0d, 0x9a, 0xf7, 0xc2, 0x4a, 0x15, 0x9a, 0x37, 0xd6, 0x9d,
2311                0x44, 0x84, 0xd2, 0xc2, 0x4a, 0x2c, 0xb5, 0xb0, 0xeb, 0x2d, 0x3c, 0x49, 0x3d, 0x98,
2312                0x12, 0xac, 0xfd, 0x74,
2313            ],
2314            Core::Rightmost32_2 => [
2315                0x00, 0xb8, 0x81, 0x5a, 0xd7, 0x42, 0x3d, 0xd5, 0x8c, 0xb9, 0x8b, 0xe8, 0x2c, 0xad,
2316                0x26, 0x67, 0x5c, 0x3b, 0xf5, 0x4a, 0x0b, 0xed, 0xba, 0xde, 0x34, 0x64, 0xb4, 0xfe,
2317                0x5a, 0x4e, 0x8c, 0xe6,
2318            ],
2319            Core::Rightmost32_4 => [
2320                0x84, 0xfa, 0x5a, 0x54, 0xf7, 0x72, 0x9f, 0x9d, 0x68, 0x99, 0x4b, 0xea, 0xb9, 0x3a,
2321                0xe7, 0x9b, 0x8c, 0x4a, 0x10, 0xd5, 0xb7, 0xae, 0x97, 0x27, 0xaa, 0x17, 0x16, 0xe5,
2322                0x7d, 0x03, 0x3b, 0x74,
2323            ],
2324            Core::Rightmost32_8 => [
2325                0x7d, 0x38, 0x05, 0xd3, 0xc7, 0x8c, 0x4e, 0xea, 0x91, 0xe3, 0xd3, 0x5e, 0xfd, 0xd4,
2326                0x7e, 0xed, 0xd4, 0x21, 0xaf, 0x84, 0xd2, 0x19, 0x10, 0x32, 0x93, 0x32, 0xa0, 0xb5,
2327                0x48, 0x7f, 0xab, 0x63,
2328            ],
2329            Core::Rightmost64_1 => [
2330                0xd3, 0xb1, 0x64, 0xc5, 0xdc, 0x66, 0xcc, 0x7e, 0xf9, 0x23, 0x4f, 0xed, 0xe4, 0xdc,
2331                0x7f, 0x0d, 0xa5, 0xcd, 0x71, 0xc1, 0xc1, 0xd4, 0xca, 0xd6, 0x0f, 0xb4, 0xec, 0x57,
2332                0x3e, 0x2b, 0x8a, 0x75,
2333            ],
2334            Core::Rightmost64_16 => [
2335                0xea, 0xe4, 0x34, 0x78, 0xf9, 0xf2, 0xf4, 0x52, 0xef, 0xac, 0x15, 0xee, 0xe6, 0x0f,
2336                0x8b, 0x52, 0x53, 0xd8, 0x0a, 0x2d, 0x32, 0x12, 0x9b, 0x4e, 0x5b, 0xa3, 0x83, 0x00,
2337                0xad, 0x98, 0x52, 0xfd,
2338            ],
2339            Core::Rightmost64_2 => [
2340                0x9c, 0xd4, 0xa9, 0x8b, 0xbd, 0xb8, 0xa3, 0x35, 0x85, 0xc0, 0x0f, 0x47, 0xd6, 0xad,
2341                0xab, 0x7a, 0xf5, 0x42, 0x86, 0xfb, 0x8a, 0xe6, 0x0f, 0x72, 0x30, 0x11, 0xfb, 0x84,
2342                0xc0, 0xee, 0x78, 0xf9,
2343            ],
2344            Core::Rightmost64_32 => [
2345                0x7f, 0x24, 0x20, 0xae, 0x5b, 0x0f, 0x5a, 0x3f, 0x6f, 0x2e, 0x60, 0xb6, 0x1f, 0x8a,
2346                0x41, 0x5c, 0x08, 0x8b, 0x94, 0xb2, 0x1c, 0x1a, 0x62, 0xa3, 0xfd, 0xaa, 0xc7, 0x49,
2347                0xdb, 0xdf, 0x4c, 0x71,
2348            ],
2349            Core::Rightmost64_4 => [
2350                0xe2, 0x65, 0x55, 0x2a, 0x24, 0xfb, 0xcd, 0xec, 0x05, 0x83, 0xd7, 0x18, 0x3e, 0x48,
2351                0xeb, 0xc2, 0xff, 0x6d, 0x31, 0x65, 0x57, 0xba, 0xc5, 0x91, 0x5c, 0x03, 0xcb, 0x23,
2352                0x35, 0xd2, 0x32, 0x95,
2353            ],
2354            Core::Rightmost64_8 => [
2355                0x98, 0xcd, 0x95, 0xf9, 0x5d, 0x46, 0x64, 0x1b, 0x04, 0x9e, 0x77, 0xbf, 0x90, 0xee,
2356                0xa5, 0x98, 0xad, 0xf2, 0x9e, 0xe5, 0x00, 0xe6, 0x50, 0x72, 0x87, 0x54, 0x8b, 0xb1,
2357                0xcd, 0xaf, 0x78, 0x4d,
2358            ],
2359            Core::Rightmost8_1 => [
2360                0x08, 0x76, 0xfc, 0xd4, 0x69, 0x85, 0x91, 0xf3, 0x31, 0x91, 0x01, 0x57, 0x4c, 0xe1,
2361                0x53, 0xfc, 0xdf, 0xe9, 0x4f, 0x58, 0x1a, 0xac, 0x5e, 0x75, 0xf3, 0xcd, 0x74, 0x46,
2362                0xdf, 0x56, 0xf3, 0xc7,
2363            ],
2364            Core::Rightmost8_2 => [
2365                0xb9, 0xf7, 0xb2, 0x90, 0xaf, 0xe7, 0xf1, 0x89, 0xe3, 0x2a, 0xeb, 0xf2, 0xcc, 0x4d,
2366                0xdc, 0xa9, 0x6b, 0xb0, 0x07, 0x64, 0xc7, 0xbe, 0x28, 0x87, 0xdc, 0xe0, 0x54, 0xd0,
2367                0x9e, 0x38, 0xc3, 0x53,
2368            ],
2369            Core::Rightmost8_4 => [
2370                0xf2, 0x8e, 0x9a, 0xf5, 0xaf, 0x4c, 0x9c, 0xca, 0x4b, 0x43, 0xcc, 0x6a, 0xdf, 0x9d,
2371                0x9d, 0x8d, 0x16, 0x9c, 0x87, 0xc5, 0x55, 0x9f, 0x9f, 0x3c, 0xca, 0xc8, 0xf2, 0x35,
2372                0x2b, 0x62, 0x9f, 0x18,
2373            ],
2374            Core::ScalarAdd => [
2375                0x11, 0xdd, 0xbe, 0xba, 0xeb, 0xf4, 0x21, 0x80, 0xa0, 0xb7, 0xed, 0xdf, 0xfd, 0xc4,
2376                0x8e, 0xc7, 0x51, 0x13, 0x30, 0xfb, 0x33, 0x15, 0xfa, 0x65, 0xd5, 0x8a, 0xff, 0x66,
2377                0xb9, 0xca, 0xf2, 0xd4,
2378            ],
2379            Core::ScalarInvert => [
2380                0xa6, 0x39, 0x27, 0x25, 0xbb, 0x2d, 0xad, 0xbb, 0x1e, 0x76, 0xdf, 0x2d, 0xec, 0x57,
2381                0xdf, 0x55, 0xc3, 0xfc, 0xc5, 0x77, 0x3b, 0x62, 0x21, 0x8a, 0xec, 0x55, 0xa7, 0x5e,
2382                0x14, 0xf3, 0xd6, 0x0d,
2383            ],
2384            Core::ScalarIsZero => [
2385                0xf7, 0x5e, 0xda, 0x06, 0xce, 0x6a, 0xf0, 0x9f, 0xae, 0x37, 0xdb, 0x4e, 0x62, 0x25,
2386                0xe6, 0xa8, 0xac, 0x86, 0xa2, 0x36, 0x37, 0x62, 0x7d, 0x62, 0x64, 0x09, 0x19, 0x0f,
2387                0xf3, 0xb3, 0x9d, 0x90,
2388            ],
2389            Core::ScalarMultiply => [
2390                0x4a, 0x61, 0x67, 0x2a, 0xce, 0xc4, 0x88, 0x77, 0x56, 0xde, 0x1d, 0xb6, 0x04, 0x21,
2391                0xa1, 0x2b, 0x90, 0x1a, 0x85, 0x8a, 0x6e, 0xe6, 0x35, 0x2e, 0x55, 0x9d, 0x4c, 0xe5,
2392                0x97, 0x33, 0x52, 0xbe,
2393            ],
2394            Core::ScalarMultiplyLambda => [
2395                0x49, 0xea, 0x9c, 0x3f, 0xb1, 0xd8, 0xff, 0x52, 0xd2, 0xdb, 0x03, 0x46, 0x9f, 0xdf,
2396                0xe8, 0x50, 0x50, 0x3f, 0xdd, 0xeb, 0x45, 0xe1, 0x6d, 0x26, 0xe8, 0x92, 0x8a, 0xdd,
2397                0x25, 0x87, 0x0e, 0x91,
2398            ],
2399            Core::ScalarNegate => [
2400                0x1d, 0xbf, 0x8b, 0x49, 0x1e, 0xc6, 0x65, 0x80, 0x3f, 0x63, 0x33, 0x30, 0xd3, 0xff,
2401                0xb0, 0xe7, 0x81, 0xe6, 0x7c, 0x18, 0x01, 0xac, 0x9d, 0x49, 0xbb, 0xf4, 0x35, 0x89,
2402                0xab, 0xf7, 0x82, 0xbf,
2403            ],
2404            Core::ScalarNormalize => [
2405                0x46, 0x33, 0x18, 0x0e, 0xa0, 0x2c, 0x4d, 0xf7, 0x81, 0x9d, 0x3d, 0x54, 0xa4, 0x01,
2406                0x73, 0x4f, 0x96, 0x5b, 0x31, 0xac, 0xc7, 0x84, 0x05, 0x4e, 0xbf, 0xb7, 0x31, 0x68,
2407                0x16, 0xb0, 0x29, 0xec,
2408            ],
2409            Core::ScalarSquare => [
2410                0x8a, 0x27, 0x9e, 0x6f, 0x61, 0x3a, 0xa9, 0xe9, 0x34, 0xf2, 0xf2, 0xa3, 0x43, 0xc0,
2411                0xd3, 0x29, 0x1c, 0x36, 0x70, 0xe2, 0x97, 0xdd, 0xae, 0x20, 0x52, 0x9e, 0x82, 0x50,
2412                0x69, 0xef, 0xea, 0x0e,
2413            ],
2414            Core::Scale => [
2415                0x12, 0x6e, 0x22, 0x12, 0x5b, 0xac, 0x80, 0xb9, 0x9b, 0x7b, 0x73, 0x43, 0xb4, 0xe5,
2416                0xe5, 0x86, 0x60, 0x82, 0x16, 0x10, 0x5d, 0x4d, 0xe6, 0xf7, 0x94, 0xad, 0xd3, 0x4e,
2417                0x23, 0xb1, 0x95, 0xca,
2418            ],
2419            Core::Sha256Block => [
2420                0x45, 0x35, 0xf3, 0xe1, 0xab, 0x9f, 0x1b, 0x75, 0x7a, 0x06, 0x91, 0x37, 0xe1, 0xd5,
2421                0xb1, 0xca, 0xad, 0x8e, 0x31, 0xf7, 0x8d, 0xc5, 0xfb, 0xd0, 0x73, 0x46, 0x49, 0xf9,
2422                0x40, 0xa7, 0xfc, 0x96,
2423            ],
2424            Core::Sha256Ctx8Add1 => [
2425                0x9a, 0x47, 0x11, 0xb8, 0xc5, 0x69, 0x0e, 0x58, 0x7e, 0x5f, 0x79, 0xe6, 0x8d, 0x6e,
2426                0xca, 0x04, 0x74, 0x58, 0xaa, 0x63, 0xb8, 0xbc, 0x9e, 0xe5, 0x68, 0x08, 0x6a, 0x4a,
2427                0x1b, 0x56, 0xd8, 0x34,
2428            ],
2429            Core::Sha256Ctx8Add128 => [
2430                0x1c, 0xb1, 0xdb, 0x8a, 0x05, 0x5b, 0x31, 0x97, 0xac, 0xf0, 0xf0, 0x8c, 0xe9, 0xc6,
2431                0x35, 0xad, 0xd6, 0x95, 0xb6, 0x0f, 0x23, 0x4b, 0x18, 0xe0, 0xb3, 0x23, 0xc9, 0x37,
2432                0xb0, 0x38, 0x5a, 0xea,
2433            ],
2434            Core::Sha256Ctx8Add16 => [
2435                0xe0, 0x84, 0x54, 0x75, 0xeb, 0xb9, 0x01, 0x40, 0xfa, 0x4e, 0x01, 0xaf, 0x8a, 0x94,
2436                0x35, 0x99, 0x1a, 0xd8, 0x7a, 0xf9, 0x8c, 0x08, 0xae, 0xce, 0x11, 0x0e, 0x99, 0xcb,
2437                0xce, 0xcd, 0xee, 0x79,
2438            ],
2439            Core::Sha256Ctx8Add2 => [
2440                0x7d, 0x69, 0x13, 0x8f, 0x1c, 0x94, 0x2b, 0xee, 0x2f, 0xdf, 0x60, 0x0c, 0xe4, 0x4b,
2441                0x36, 0xff, 0x97, 0x83, 0x9d, 0xc2, 0xbb, 0xda, 0xfb, 0xd5, 0xfa, 0xb4, 0xdf, 0xbc,
2442                0x3c, 0x97, 0x6f, 0x29,
2443            ],
2444            Core::Sha256Ctx8Add256 => [
2445                0x4f, 0x5c, 0x29, 0xd5, 0x36, 0x86, 0xc0, 0x60, 0x62, 0xb3, 0x83, 0x24, 0xf8, 0xaf,
2446                0xf1, 0x7e, 0xc5, 0x56, 0xa2, 0x95, 0xff, 0x09, 0x8b, 0x10, 0xe7, 0x05, 0xdd, 0x22,
2447                0xe1, 0x3b, 0xc3, 0xc9,
2448            ],
2449            Core::Sha256Ctx8Add32 => [
2450                0xd5, 0x7b, 0x67, 0xb1, 0x74, 0xe7, 0x8e, 0x38, 0xf9, 0xbc, 0xa8, 0xe0, 0x7a, 0xdd,
2451                0x61, 0xc7, 0x53, 0xe2, 0xc1, 0x56, 0xd8, 0xe9, 0x83, 0x2a, 0xa6, 0x62, 0x04, 0x55,
2452                0x00, 0xf5, 0x1a, 0x80,
2453            ],
2454            Core::Sha256Ctx8Add4 => [
2455                0x95, 0xda, 0x32, 0x99, 0x3f, 0x5c, 0x7d, 0x00, 0x83, 0x06, 0x4c, 0xdf, 0xf1, 0xbe,
2456                0xc3, 0xb9, 0x36, 0xc6, 0x38, 0x33, 0x7a, 0xde, 0xc5, 0x47, 0x48, 0x7a, 0xf2, 0x32,
2457                0xd6, 0x9f, 0xdf, 0x65,
2458            ],
2459            Core::Sha256Ctx8Add512 => [
2460                0x4a, 0xcb, 0x16, 0x3a, 0xa4, 0x8f, 0x09, 0xd5, 0xf2, 0x6d, 0x2b, 0x2a, 0xb1, 0x88,
2461                0xa6, 0xc6, 0xb6, 0xc4, 0xae, 0xdf, 0x23, 0xc9, 0x19, 0x00, 0x1c, 0x02, 0xee, 0x15,
2462                0xb3, 0x37, 0xa9, 0x6e,
2463            ],
2464            Core::Sha256Ctx8Add64 => [
2465                0x52, 0xe5, 0x3e, 0xc5, 0x77, 0x0f, 0x9b, 0xe4, 0x06, 0x9a, 0xee, 0xfc, 0xb2, 0x13,
2466                0x22, 0xb1, 0x3a, 0xb6, 0xe3, 0x94, 0x1f, 0xdc, 0x2c, 0x85, 0xf4, 0xb4, 0x1b, 0xe6,
2467                0x7d, 0x38, 0xea, 0x7e,
2468            ],
2469            Core::Sha256Ctx8Add8 => [
2470                0xc2, 0x6b, 0x28, 0xaf, 0xe5, 0xe8, 0x66, 0xd8, 0x46, 0x16, 0x81, 0x4d, 0x1a, 0x13,
2471                0xfb, 0x86, 0x30, 0xb9, 0xe8, 0x4e, 0x5d, 0x78, 0x15, 0x56, 0xc6, 0xd8, 0x23, 0x6e,
2472                0xfb, 0x45, 0xdf, 0xf9,
2473            ],
2474            Core::Sha256Ctx8AddBuffer511 => [
2475                0xad, 0x69, 0x90, 0x46, 0x48, 0xa8, 0x23, 0x8d, 0x00, 0xd8, 0x51, 0x63, 0xfc, 0xe8,
2476                0x19, 0x63, 0xa0, 0x04, 0x7a, 0xb5, 0x82, 0xbe, 0x97, 0xa4, 0x14, 0x00, 0x65, 0x59,
2477                0x79, 0xcf, 0xdd, 0x28,
2478            ],
2479            Core::Sha256Ctx8Finalize => [
2480                0x8e, 0x45, 0xbd, 0xc3, 0x87, 0xd4, 0xed, 0xfa, 0x73, 0x35, 0x25, 0xf3, 0xab, 0x19,
2481                0xe4, 0x2b, 0x58, 0xec, 0xb1, 0xb5, 0xf6, 0xdc, 0xcf, 0x94, 0xed, 0xbf, 0x59, 0x95,
2482                0x8a, 0xe3, 0xe1, 0x16,
2483            ],
2484            Core::Sha256Ctx8Init => [
2485                0x63, 0x5f, 0x64, 0x05, 0x84, 0x86, 0x85, 0xc0, 0x11, 0xfe, 0xbd, 0x41, 0xfa, 0xac,
2486                0x87, 0x4b, 0xbb, 0xf5, 0xb2, 0x4d, 0x5f, 0xb1, 0x2f, 0xed, 0xbc, 0xb6, 0xcb, 0xff,
2487                0x95, 0xa0, 0xf3, 0x66,
2488            ],
2489            Core::Sha256Iv => [
2490                0x12, 0xe4, 0x59, 0x37, 0x51, 0xc9, 0x46, 0x3b, 0x56, 0x25, 0x03, 0xc1, 0x40, 0xd7,
2491                0x8b, 0x3b, 0x75, 0x7a, 0x1f, 0x4f, 0x16, 0x32, 0x1d, 0x28, 0x62, 0xd3, 0x25, 0x43,
2492                0x85, 0x38, 0x97, 0x1b,
2493            ],
2494            Core::Some1 => [
2495                0x15, 0xca, 0x4e, 0x4b, 0x82, 0xc2, 0xf9, 0x1b, 0x9a, 0x79, 0x29, 0x92, 0xcd, 0xc1,
2496                0xb2, 0x92, 0xab, 0x86, 0xa2, 0xd2, 0x93, 0x9c, 0x9a, 0x64, 0xb5, 0x0b, 0xe6, 0x0b,
2497                0xda, 0x6a, 0xb4, 0xca,
2498            ],
2499            Core::Some16 => [
2500                0xa9, 0xdf, 0xbb, 0xea, 0xb5, 0x9d, 0xf7, 0x2a, 0x45, 0xfc, 0x3f, 0xc7, 0xac, 0x58,
2501                0x1e, 0xc8, 0xda, 0x71, 0x3f, 0x2f, 0x81, 0x03, 0xf7, 0x87, 0xaa, 0x1c, 0xee, 0x4e,
2502                0x0b, 0xa6, 0x48, 0x66,
2503            ],
2504            Core::Some32 => [
2505                0x46, 0x33, 0xa3, 0x97, 0x74, 0x2e, 0xf4, 0x82, 0xbe, 0x2f, 0xa3, 0xfb, 0x64, 0x10,
2506                0xec, 0x79, 0xc3, 0x73, 0x83, 0x65, 0x69, 0xfb, 0xbc, 0xb1, 0xf9, 0x48, 0xec, 0x32,
2507                0x48, 0x73, 0x78, 0xb7,
2508            ],
2509            Core::Some64 => [
2510                0x1d, 0xc2, 0x45, 0xac, 0x6f, 0x5b, 0x42, 0x2b, 0xd1, 0x88, 0x6e, 0xf5, 0x14, 0x4c,
2511                0x4d, 0xc7, 0x2c, 0x96, 0x73, 0x15, 0x59, 0x66, 0x07, 0x6c, 0xd8, 0x39, 0x68, 0x1d,
2512                0x9e, 0xc7, 0xf8, 0xf5,
2513            ],
2514            Core::Some8 => [
2515                0x33, 0xaf, 0xb9, 0xc6, 0x45, 0x4e, 0x59, 0x0e, 0xc1, 0x3e, 0xd7, 0x5e, 0x1b, 0x7d,
2516                0x9c, 0x3a, 0x3d, 0xe6, 0x75, 0x2b, 0xcc, 0x7c, 0x1d, 0x4c, 0xb3, 0x63, 0xfa, 0x51,
2517                0x82, 0x8b, 0xcb, 0x74,
2518            ],
2519            Core::Subtract16 => [
2520                0x4e, 0x06, 0xec, 0x31, 0x37, 0x62, 0x22, 0xe2, 0x5e, 0x27, 0xd0, 0x15, 0x9d, 0xc1,
2521                0xc0, 0x71, 0x4a, 0x44, 0xca, 0x6a, 0xac, 0xf9, 0x50, 0x5c, 0xaa, 0xd2, 0x80, 0xe9,
2522                0x73, 0xfb, 0x5c, 0xab,
2523            ],
2524            Core::Subtract32 => [
2525                0xb9, 0xc0, 0xf3, 0x6e, 0x75, 0x22, 0xa8, 0xd9, 0x49, 0x05, 0x0d, 0x51, 0x6a, 0x05,
2526                0xce, 0x20, 0x3a, 0x1f, 0x9a, 0x9e, 0x37, 0x2f, 0xd2, 0x63, 0xde, 0x38, 0xb0, 0xe9,
2527                0x03, 0x13, 0x41, 0x98,
2528            ],
2529            Core::Subtract64 => [
2530                0x1c, 0xdb, 0x5c, 0x74, 0xad, 0xd1, 0x02, 0xf5, 0x0f, 0x93, 0x8e, 0xd8, 0x86, 0xf4,
2531                0x96, 0xe5, 0xba, 0xb2, 0x75, 0x5c, 0x3c, 0x48, 0x4e, 0x88, 0x87, 0x90, 0x3d, 0x2f,
2532                0x6a, 0x57, 0xf3, 0xaa,
2533            ],
2534            Core::Subtract8 => [
2535                0x4f, 0x21, 0x17, 0xa0, 0xe8, 0x10, 0x59, 0xff, 0x0c, 0xd6, 0x4d, 0x84, 0x88, 0x65,
2536                0x42, 0xe5, 0x75, 0xea, 0x8d, 0x6e, 0xc0, 0x31, 0x08, 0xfd, 0x0b, 0x50, 0x8b, 0x39,
2537                0x20, 0x8c, 0xd0, 0xef,
2538            ],
2539            Core::Swu => [
2540                0x00, 0xf5, 0x1f, 0x4f, 0x4b, 0xec, 0xe7, 0x90, 0x03, 0xec, 0xad, 0x48, 0x1a, 0x12,
2541                0x5a, 0xf7, 0x17, 0x6e, 0x4d, 0xe9, 0x8c, 0x33, 0x92, 0x42, 0x5c, 0xb9, 0x14, 0x66,
2542                0x26, 0xc1, 0x3b, 0x3b,
2543            ],
2544            Core::TapdataInit => [
2545                0xa4, 0xd0, 0x22, 0xef, 0x5c, 0xf4, 0x67, 0xbc, 0xa0, 0x32, 0x5e, 0x46, 0x3f, 0xca,
2546                0xce, 0x7c, 0xbd, 0xd6, 0x4f, 0xf8, 0xf7, 0x1c, 0x5c, 0x7f, 0x63, 0xe6, 0x07, 0x84,
2547                0xaa, 0x0a, 0xc4, 0x86,
2548            ],
2549            Core::Verify => [
2550                0xcd, 0xca, 0x2a, 0x05, 0xe5, 0x2c, 0xef, 0xa5, 0x9d, 0xc7, 0xa5, 0xb0, 0xda, 0xe2,
2551                0x20, 0x98, 0xfb, 0x89, 0x6e, 0x39, 0x13, 0xbf, 0xdd, 0x44, 0x6b, 0x59, 0x4e, 0x1f,
2552                0x92, 0x50, 0x78, 0x3e,
2553            ],
2554            Core::Xor1 => [
2555                0x8c, 0x4e, 0x4e, 0x6e, 0xbf, 0x46, 0x30, 0xb2, 0x9b, 0x5a, 0x57, 0xea, 0x79, 0xf0,
2556                0xc9, 0xaf, 0x6b, 0xff, 0x54, 0xc4, 0xd2, 0xd7, 0x69, 0xbf, 0x51, 0x59, 0x47, 0x74,
2557                0xa5, 0x2b, 0x99, 0xc9,
2558            ],
2559            Core::Xor16 => [
2560                0xd9, 0xf0, 0xaf, 0x3f, 0xe3, 0xfd, 0x24, 0x7c, 0x1d, 0xf3, 0x4a, 0x25, 0x27, 0x13,
2561                0xb2, 0xe9, 0x33, 0xa9, 0x45, 0xa5, 0x67, 0x19, 0x48, 0x7f, 0x8e, 0xd7, 0xf5, 0x63,
2562                0xea, 0x86, 0x1a, 0xb5,
2563            ],
2564            Core::Xor32 => [
2565                0xd5, 0xae, 0x27, 0x12, 0xed, 0xea, 0xf6, 0x76, 0x52, 0x0f, 0xa3, 0xba, 0x0f, 0x40,
2566                0xbf, 0x4a, 0x16, 0x57, 0x43, 0x7e, 0xff, 0xbd, 0x99, 0x86, 0xd0, 0x6a, 0xe8, 0x1b,
2567                0x29, 0xa4, 0xf9, 0x8c,
2568            ],
2569            Core::Xor64 => [
2570                0xc4, 0xdf, 0x1c, 0xcf, 0x33, 0x3e, 0xde, 0xbd, 0xd4, 0x0d, 0xea, 0x9a, 0x0e, 0x6c,
2571                0xbb, 0x83, 0x06, 0x31, 0xe8, 0x3a, 0x94, 0xbb, 0x77, 0x9f, 0xe6, 0x00, 0x7b, 0xc6,
2572                0xcb, 0x53, 0xa5, 0x44,
2573            ],
2574            Core::Xor8 => [
2575                0x4a, 0xb1, 0x4a, 0x81, 0x4a, 0x39, 0x52, 0x8a, 0x80, 0xfd, 0xb4, 0x30, 0x58, 0x9b,
2576                0xa4, 0x50, 0x10, 0x4b, 0x9c, 0x72, 0x09, 0xaa, 0x2f, 0xe2, 0x85, 0xcd, 0x60, 0xc0,
2577                0x90, 0x43, 0x11, 0x4a,
2578            ],
2579            Core::XorXor1 => [
2580                0x18, 0xb9, 0x44, 0x6a, 0x41, 0x66, 0xa3, 0xfe, 0xe2, 0xbc, 0xb2, 0x54, 0x5b, 0xb9,
2581                0x01, 0x18, 0xdc, 0xf0, 0xe8, 0xf8, 0x86, 0xa1, 0x07, 0x6d, 0x4c, 0x38, 0x60, 0x06,
2582                0x0c, 0xde, 0x1a, 0x51,
2583            ],
2584            Core::XorXor16 => [
2585                0x94, 0x6c, 0xde, 0x87, 0x2e, 0x30, 0xe6, 0x50, 0x9d, 0xaf, 0xf4, 0x05, 0xf0, 0xe0,
2586                0xfe, 0xfe, 0x27, 0x55, 0x47, 0xb4, 0x0e, 0xb2, 0x03, 0x84, 0xaf, 0xe9, 0xa8, 0x63,
2587                0x60, 0xfc, 0x80, 0xef,
2588            ],
2589            Core::XorXor32 => [
2590                0x65, 0x27, 0xdf, 0x67, 0xa5, 0x0d, 0x14, 0x8d, 0xb4, 0xfc, 0x8f, 0xee, 0xc7, 0x84,
2591                0x55, 0x64, 0x99, 0xa8, 0xc7, 0xf0, 0xfa, 0x7d, 0x28, 0xe6, 0x27, 0x8e, 0x99, 0x7f,
2592                0x49, 0x59, 0xbe, 0x39,
2593            ],
2594            Core::XorXor64 => [
2595                0xf1, 0x62, 0xf9, 0xe6, 0x56, 0x63, 0xa6, 0x9a, 0xc5, 0xf9, 0x2a, 0x5e, 0xb5, 0x2c,
2596                0x03, 0x32, 0x39, 0x2e, 0xdd, 0x1e, 0xd1, 0xba, 0x35, 0x5e, 0x6f, 0x19, 0x40, 0x6e,
2597                0xab, 0xe3, 0xf6, 0xed,
2598            ],
2599            Core::XorXor8 => [
2600                0xe0, 0x6d, 0x69, 0x4c, 0x5b, 0x40, 0x7d, 0xda, 0xd7, 0xaa, 0x1f, 0x88, 0x07, 0x16,
2601                0xbc, 0xb7, 0x0a, 0xcd, 0xba, 0x75, 0x85, 0xca, 0x40, 0x09, 0x9a, 0x0a, 0x0a, 0x61,
2602                0xf3, 0xad, 0x2d, 0xb5,
2603            ],
2604        };
2605
2606        Cmr::from_byte_array(bytes)
2607    }
2608
2609    fn source_ty(&self) -> TypeName {
2610        let name: &'static [u8] = match self {
2611            Core::Add16 => b"i",
2612            Core::Add32 => b"l",
2613            Core::Add64 => b"*ll",
2614            Core::Add8 => b"****22*22**22*22***22*22**22*22",
2615            Core::All16 => b"****22*22**22*22***22*22**22*22",
2616            Core::All32 => b"i",
2617            Core::All64 => b"l",
2618            Core::All8 => b"***22*22**22*22",
2619            Core::And1 => b"*22",
2620            Core::And16 => b"i",
2621            Core::And32 => b"l",
2622            Core::And64 => b"*ll",
2623            Core::And8 => b"****22*22**22*22***22*22**22*22",
2624            Core::Bip0340Verify => b"**hh*hh",
2625            Core::Ch1 => b"*2*22",
2626            Core::Ch16 => b"*****22*22**22*22***22*22**22*22i",
2627            Core::Ch32 => b"*il",
2628            Core::Ch64 => b"*l*ll",
2629            Core::Ch8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
2630            Core::CheckSigVerify => b"**h*hh*hh",
2631            Core::Complement1 => b"2",
2632            Core::Complement16 => b"****22*22**22*22***22*22**22*22",
2633            Core::Complement32 => b"i",
2634            Core::Complement64 => b"l",
2635            Core::Complement8 => b"***22*22**22*22",
2636            Core::Decompress => b"*2h",
2637            Core::Decrement16 => b"****22*22**22*22***22*22**22*22",
2638            Core::Decrement32 => b"i",
2639            Core::Decrement64 => b"l",
2640            Core::Decrement8 => b"***22*22**22*22",
2641            Core::DivMod128_64 => b"**lll",
2642            Core::DivMod16 => b"i",
2643            Core::DivMod32 => b"l",
2644            Core::DivMod64 => b"*ll",
2645            Core::DivMod8 => b"****22*22**22*22***22*22**22*22",
2646            Core::Divide16 => b"i",
2647            Core::Divide32 => b"l",
2648            Core::Divide64 => b"*ll",
2649            Core::Divide8 => b"****22*22**22*22***22*22**22*22",
2650            Core::Divides16 => b"i",
2651            Core::Divides32 => b"l",
2652            Core::Divides64 => b"*ll",
2653            Core::Divides8 => b"****22*22**22*22***22*22**22*22",
2654            Core::Eq1 => b"*22",
2655            Core::Eq16 => b"i",
2656            Core::Eq256 => b"*hh",
2657            Core::Eq32 => b"l",
2658            Core::Eq64 => b"*ll",
2659            Core::Eq8 => b"****22*22**22*22***22*22**22*22",
2660            Core::FeAdd => b"*hh",
2661            Core::FeInvert => b"h",
2662            Core::FeIsOdd => b"h",
2663            Core::FeIsZero => b"h",
2664            Core::FeMultiply => b"*hh",
2665            Core::FeMultiplyBeta => b"h",
2666            Core::FeNegate => b"h",
2667            Core::FeNormalize => b"h",
2668            Core::FeSquare => b"h",
2669            Core::FeSquareRoot => b"h",
2670            Core::FullAdd16 => b"*2i",
2671            Core::FullAdd32 => b"*2l",
2672            Core::FullAdd64 => b"*2*ll",
2673            Core::FullAdd8 => b"*2****22*22**22*22***22*22**22*22",
2674            Core::FullDecrement16 => b"*2****22*22**22*22***22*22**22*22",
2675            Core::FullDecrement32 => b"*2i",
2676            Core::FullDecrement64 => b"*2l",
2677            Core::FullDecrement8 => b"*2***22*22**22*22",
2678            Core::FullIncrement16 => b"*2****22*22**22*22***22*22**22*22",
2679            Core::FullIncrement32 => b"*2i",
2680            Core::FullIncrement64 => b"*2l",
2681            Core::FullIncrement8 => b"*2***22*22**22*22",
2682            Core::FullLeftShift16_1 => b"*****22*22**22*22***22*22**22*222",
2683            Core::FullLeftShift16_2 => b"*****22*22**22*22***22*22**22*22*22",
2684            Core::FullLeftShift16_4 => b"*****22*22**22*22***22*22**22*22**22*22",
2685            Core::FullLeftShift16_8 => b"*****22*22**22*22***22*22**22*22***22*22**22*22",
2686            Core::FullLeftShift32_1 => b"*i2",
2687            Core::FullLeftShift32_16 => b"*i****22*22**22*22***22*22**22*22",
2688            Core::FullLeftShift32_2 => b"*i*22",
2689            Core::FullLeftShift32_4 => b"*i**22*22",
2690            Core::FullLeftShift32_8 => b"*i***22*22**22*22",
2691            Core::FullLeftShift64_1 => b"*l2",
2692            Core::FullLeftShift64_16 => b"*l****22*22**22*22***22*22**22*22",
2693            Core::FullLeftShift64_2 => b"*l*22",
2694            Core::FullLeftShift64_32 => b"*li",
2695            Core::FullLeftShift64_4 => b"*l**22*22",
2696            Core::FullLeftShift64_8 => b"*l***22*22**22*22",
2697            Core::FullLeftShift8_1 => b"****22*22**22*222",
2698            Core::FullLeftShift8_2 => b"****22*22**22*22*22",
2699            Core::FullLeftShift8_4 => b"****22*22**22*22**22*22",
2700            Core::FullMultiply16 => b"l",
2701            Core::FullMultiply32 => b"*ll",
2702            Core::FullMultiply64 => b"h",
2703            Core::FullMultiply8 => b"i",
2704            Core::FullRightShift16_1 => b"*2****22*22**22*22***22*22**22*22",
2705            Core::FullRightShift16_2 => b"**22****22*22**22*22***22*22**22*22",
2706            Core::FullRightShift16_4 => b"***22*22****22*22**22*22***22*22**22*22",
2707            Core::FullRightShift16_8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
2708            Core::FullRightShift32_1 => b"*2i",
2709            Core::FullRightShift32_16 => b"*****22*22**22*22***22*22**22*22i",
2710            Core::FullRightShift32_2 => b"**22i",
2711            Core::FullRightShift32_4 => b"***22*22i",
2712            Core::FullRightShift32_8 => b"****22*22**22*22i",
2713            Core::FullRightShift64_1 => b"*2l",
2714            Core::FullRightShift64_16 => b"*****22*22**22*22***22*22**22*22l",
2715            Core::FullRightShift64_2 => b"**22l",
2716            Core::FullRightShift64_32 => b"*il",
2717            Core::FullRightShift64_4 => b"***22*22l",
2718            Core::FullRightShift64_8 => b"****22*22**22*22l",
2719            Core::FullRightShift8_1 => b"*2***22*22**22*22",
2720            Core::FullRightShift8_2 => b"**22***22*22**22*22",
2721            Core::FullRightShift8_4 => b"***22*22***22*22**22*22",
2722            Core::FullSubtract16 => b"*2i",
2723            Core::FullSubtract32 => b"*2l",
2724            Core::FullSubtract64 => b"*2*ll",
2725            Core::FullSubtract8 => b"*2****22*22**22*22***22*22**22*22",
2726            Core::GeIsOnCurve => b"*hh",
2727            Core::GeNegate => b"*hh",
2728            Core::GejAdd => b"***hhh**hhh",
2729            Core::GejDouble => b"**hhh",
2730            Core::GejEquiv => b"***hhh**hhh",
2731            Core::GejGeAdd => b"***hhh*hh",
2732            Core::GejGeAddEx => b"***hhh*hh",
2733            Core::GejGeEquiv => b"***hhh*hh",
2734            Core::GejInfinity => b"1",
2735            Core::GejIsInfinity => b"**hhh",
2736            Core::GejIsOnCurve => b"**hhh",
2737            Core::GejNegate => b"**hhh",
2738            Core::GejNormalize => b"**hhh",
2739            Core::GejRescale => b"***hhhh",
2740            Core::GejXEquiv => b"*h**hhh",
2741            Core::GejYIsOdd => b"**hhh",
2742            Core::Generate => b"h",
2743            Core::HashToCurve => b"h",
2744            Core::High1 => b"1",
2745            Core::High16 => b"1",
2746            Core::High32 => b"1",
2747            Core::High64 => b"1",
2748            Core::High8 => b"1",
2749            Core::Increment16 => b"****22*22**22*22***22*22**22*22",
2750            Core::Increment32 => b"i",
2751            Core::Increment64 => b"l",
2752            Core::Increment8 => b"***22*22**22*22",
2753            Core::IsOne16 => b"****22*22**22*22***22*22**22*22",
2754            Core::IsOne32 => b"i",
2755            Core::IsOne64 => b"l",
2756            Core::IsOne8 => b"***22*22**22*22",
2757            Core::IsZero16 => b"****22*22**22*22***22*22**22*22",
2758            Core::IsZero32 => b"i",
2759            Core::IsZero64 => b"l",
2760            Core::IsZero8 => b"***22*22**22*22",
2761            Core::Le16 => b"i",
2762            Core::Le32 => b"l",
2763            Core::Le64 => b"*ll",
2764            Core::Le8 => b"****22*22**22*22***22*22**22*22",
2765            Core::LeftExtend16_32 => b"****22*22**22*22***22*22**22*22",
2766            Core::LeftExtend16_64 => b"****22*22**22*22***22*22**22*22",
2767            Core::LeftExtend1_16 => b"2",
2768            Core::LeftExtend1_32 => b"2",
2769            Core::LeftExtend1_64 => b"2",
2770            Core::LeftExtend1_8 => b"2",
2771            Core::LeftExtend32_64 => b"i",
2772            Core::LeftExtend8_16 => b"***22*22**22*22",
2773            Core::LeftExtend8_32 => b"***22*22**22*22",
2774            Core::LeftExtend8_64 => b"***22*22**22*22",
2775            Core::LeftPadHigh16_32 => b"****22*22**22*22***22*22**22*22",
2776            Core::LeftPadHigh16_64 => b"****22*22**22*22***22*22**22*22",
2777            Core::LeftPadHigh1_16 => b"2",
2778            Core::LeftPadHigh1_32 => b"2",
2779            Core::LeftPadHigh1_64 => b"2",
2780            Core::LeftPadHigh1_8 => b"2",
2781            Core::LeftPadHigh32_64 => b"i",
2782            Core::LeftPadHigh8_16 => b"***22*22**22*22",
2783            Core::LeftPadHigh8_32 => b"***22*22**22*22",
2784            Core::LeftPadHigh8_64 => b"***22*22**22*22",
2785            Core::LeftPadLow16_32 => b"****22*22**22*22***22*22**22*22",
2786            Core::LeftPadLow16_64 => b"****22*22**22*22***22*22**22*22",
2787            Core::LeftPadLow1_16 => b"2",
2788            Core::LeftPadLow1_32 => b"2",
2789            Core::LeftPadLow1_64 => b"2",
2790            Core::LeftPadLow1_8 => b"2",
2791            Core::LeftPadLow32_64 => b"i",
2792            Core::LeftPadLow8_16 => b"***22*22**22*22",
2793            Core::LeftPadLow8_32 => b"***22*22**22*22",
2794            Core::LeftPadLow8_64 => b"***22*22**22*22",
2795            Core::LeftRotate16 => b"***22*22****22*22**22*22***22*22**22*22",
2796            Core::LeftRotate32 => b"****22*22**22*22i",
2797            Core::LeftRotate64 => b"****22*22**22*22l",
2798            Core::LeftRotate8 => b"***22*22***22*22**22*22",
2799            Core::LeftShift16 => b"***22*22****22*22**22*22***22*22**22*22",
2800            Core::LeftShift32 => b"****22*22**22*22i",
2801            Core::LeftShift64 => b"****22*22**22*22l",
2802            Core::LeftShift8 => b"***22*22***22*22**22*22",
2803            Core::LeftShiftWith16 => b"*2***22*22****22*22**22*22***22*22**22*22",
2804            Core::LeftShiftWith32 => b"*2****22*22**22*22i",
2805            Core::LeftShiftWith64 => b"*2****22*22**22*22l",
2806            Core::LeftShiftWith8 => b"*2***22*22***22*22**22*22",
2807            Core::Leftmost16_1 => b"****22*22**22*22***22*22**22*22",
2808            Core::Leftmost16_2 => b"****22*22**22*22***22*22**22*22",
2809            Core::Leftmost16_4 => b"****22*22**22*22***22*22**22*22",
2810            Core::Leftmost16_8 => b"****22*22**22*22***22*22**22*22",
2811            Core::Leftmost32_1 => b"i",
2812            Core::Leftmost32_16 => b"i",
2813            Core::Leftmost32_2 => b"i",
2814            Core::Leftmost32_4 => b"i",
2815            Core::Leftmost32_8 => b"i",
2816            Core::Leftmost64_1 => b"l",
2817            Core::Leftmost64_16 => b"l",
2818            Core::Leftmost64_2 => b"l",
2819            Core::Leftmost64_32 => b"l",
2820            Core::Leftmost64_4 => b"l",
2821            Core::Leftmost64_8 => b"l",
2822            Core::Leftmost8_1 => b"***22*22**22*22",
2823            Core::Leftmost8_2 => b"***22*22**22*22",
2824            Core::Leftmost8_4 => b"***22*22**22*22",
2825            Core::LinearCombination1 => b"**h**hhhh",
2826            Core::LinearVerify1 => b"***h*hhh*hh",
2827            Core::Low1 => b"1",
2828            Core::Low16 => b"1",
2829            Core::Low32 => b"1",
2830            Core::Low64 => b"1",
2831            Core::Low8 => b"1",
2832            Core::Lt16 => b"i",
2833            Core::Lt32 => b"l",
2834            Core::Lt64 => b"*ll",
2835            Core::Lt8 => b"****22*22**22*22***22*22**22*22",
2836            Core::Maj1 => b"*2*22",
2837            Core::Maj16 => b"*****22*22**22*22***22*22**22*22i",
2838            Core::Maj32 => b"*il",
2839            Core::Maj64 => b"*l*ll",
2840            Core::Maj8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
2841            Core::Max16 => b"i",
2842            Core::Max32 => b"l",
2843            Core::Max64 => b"*ll",
2844            Core::Max8 => b"****22*22**22*22***22*22**22*22",
2845            Core::Median16 => b"*****22*22**22*22***22*22**22*22i",
2846            Core::Median32 => b"*il",
2847            Core::Median64 => b"*l*ll",
2848            Core::Median8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
2849            Core::Min16 => b"i",
2850            Core::Min32 => b"l",
2851            Core::Min64 => b"*ll",
2852            Core::Min8 => b"****22*22**22*22***22*22**22*22",
2853            Core::Modulo16 => b"i",
2854            Core::Modulo32 => b"l",
2855            Core::Modulo64 => b"*ll",
2856            Core::Modulo8 => b"****22*22**22*22***22*22**22*22",
2857            Core::Multiply16 => b"i",
2858            Core::Multiply32 => b"l",
2859            Core::Multiply64 => b"*ll",
2860            Core::Multiply8 => b"****22*22**22*22***22*22**22*22",
2861            Core::Negate16 => b"****22*22**22*22***22*22**22*22",
2862            Core::Negate32 => b"i",
2863            Core::Negate64 => b"l",
2864            Core::Negate8 => b"***22*22**22*22",
2865            Core::One16 => b"1",
2866            Core::One32 => b"1",
2867            Core::One64 => b"1",
2868            Core::One8 => b"1",
2869            Core::Or1 => b"*22",
2870            Core::Or16 => b"i",
2871            Core::Or32 => b"l",
2872            Core::Or64 => b"*ll",
2873            Core::Or8 => b"****22*22**22*22***22*22**22*22",
2874            Core::ParseLock => b"i",
2875            Core::ParseSequence => b"i",
2876            Core::PointVerify1 => b"***h*2hh*2h",
2877            Core::RightExtend16_32 => b"****22*22**22*22***22*22**22*22",
2878            Core::RightExtend16_64 => b"****22*22**22*22***22*22**22*22",
2879            Core::RightExtend32_64 => b"i",
2880            Core::RightExtend8_16 => b"***22*22**22*22",
2881            Core::RightExtend8_32 => b"***22*22**22*22",
2882            Core::RightExtend8_64 => b"***22*22**22*22",
2883            Core::RightPadHigh16_32 => b"****22*22**22*22***22*22**22*22",
2884            Core::RightPadHigh16_64 => b"****22*22**22*22***22*22**22*22",
2885            Core::RightPadHigh1_16 => b"2",
2886            Core::RightPadHigh1_32 => b"2",
2887            Core::RightPadHigh1_64 => b"2",
2888            Core::RightPadHigh1_8 => b"2",
2889            Core::RightPadHigh32_64 => b"i",
2890            Core::RightPadHigh8_16 => b"***22*22**22*22",
2891            Core::RightPadHigh8_32 => b"***22*22**22*22",
2892            Core::RightPadHigh8_64 => b"***22*22**22*22",
2893            Core::RightPadLow16_32 => b"****22*22**22*22***22*22**22*22",
2894            Core::RightPadLow16_64 => b"****22*22**22*22***22*22**22*22",
2895            Core::RightPadLow1_16 => b"2",
2896            Core::RightPadLow1_32 => b"2",
2897            Core::RightPadLow1_64 => b"2",
2898            Core::RightPadLow1_8 => b"2",
2899            Core::RightPadLow32_64 => b"i",
2900            Core::RightPadLow8_16 => b"***22*22**22*22",
2901            Core::RightPadLow8_32 => b"***22*22**22*22",
2902            Core::RightPadLow8_64 => b"***22*22**22*22",
2903            Core::RightRotate16 => b"***22*22****22*22**22*22***22*22**22*22",
2904            Core::RightRotate32 => b"****22*22**22*22i",
2905            Core::RightRotate64 => b"****22*22**22*22l",
2906            Core::RightRotate8 => b"***22*22***22*22**22*22",
2907            Core::RightShift16 => b"***22*22****22*22**22*22***22*22**22*22",
2908            Core::RightShift32 => b"****22*22**22*22i",
2909            Core::RightShift64 => b"****22*22**22*22l",
2910            Core::RightShift8 => b"***22*22***22*22**22*22",
2911            Core::RightShiftWith16 => b"*2***22*22****22*22**22*22***22*22**22*22",
2912            Core::RightShiftWith32 => b"*2****22*22**22*22i",
2913            Core::RightShiftWith64 => b"*2****22*22**22*22l",
2914            Core::RightShiftWith8 => b"*2***22*22***22*22**22*22",
2915            Core::Rightmost16_1 => b"****22*22**22*22***22*22**22*22",
2916            Core::Rightmost16_2 => b"****22*22**22*22***22*22**22*22",
2917            Core::Rightmost16_4 => b"****22*22**22*22***22*22**22*22",
2918            Core::Rightmost16_8 => b"****22*22**22*22***22*22**22*22",
2919            Core::Rightmost32_1 => b"i",
2920            Core::Rightmost32_16 => b"i",
2921            Core::Rightmost32_2 => b"i",
2922            Core::Rightmost32_4 => b"i",
2923            Core::Rightmost32_8 => b"i",
2924            Core::Rightmost64_1 => b"l",
2925            Core::Rightmost64_16 => b"l",
2926            Core::Rightmost64_2 => b"l",
2927            Core::Rightmost64_32 => b"l",
2928            Core::Rightmost64_4 => b"l",
2929            Core::Rightmost64_8 => b"l",
2930            Core::Rightmost8_1 => b"***22*22**22*22",
2931            Core::Rightmost8_2 => b"***22*22**22*22",
2932            Core::Rightmost8_4 => b"***22*22**22*22",
2933            Core::ScalarAdd => b"*hh",
2934            Core::ScalarInvert => b"h",
2935            Core::ScalarIsZero => b"h",
2936            Core::ScalarMultiply => b"*hh",
2937            Core::ScalarMultiplyLambda => b"h",
2938            Core::ScalarNegate => b"h",
2939            Core::ScalarNormalize => b"h",
2940            Core::ScalarSquare => b"h",
2941            Core::Scale => b"*h**hhh",
2942            Core::Sha256Block => b"*h*hh",
2943            Core::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",
2944            Core::Sha256Ctx8Add128 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh**hh*hh",
2945            Core::Sha256Ctx8Add16 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh*ll",
2946            Core::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",
2947            Core::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",
2948            Core::Sha256Ctx8Add32 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lhh",
2949            Core::Sha256Ctx8Add4 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lhi",
2950            Core::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",
2951            Core::Sha256Ctx8Add64 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh*hh",
2952            Core::Sha256Ctx8Add8 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lhl",
2953            Core::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",
2954            Core::Sha256Ctx8Finalize => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
2955            Core::Sha256Ctx8Init => b"1",
2956            Core::Sha256Iv => b"1",
2957            Core::Some1 => b"2",
2958            Core::Some16 => b"****22*22**22*22***22*22**22*22",
2959            Core::Some32 => b"i",
2960            Core::Some64 => b"l",
2961            Core::Some8 => b"***22*22**22*22",
2962            Core::Subtract16 => b"i",
2963            Core::Subtract32 => b"l",
2964            Core::Subtract64 => b"*ll",
2965            Core::Subtract8 => b"****22*22**22*22***22*22**22*22",
2966            Core::Swu => b"h",
2967            Core::TapdataInit => b"1",
2968            Core::Verify => b"2",
2969            Core::Xor1 => b"*22",
2970            Core::Xor16 => b"i",
2971            Core::Xor32 => b"l",
2972            Core::Xor64 => b"*ll",
2973            Core::Xor8 => b"****22*22**22*22***22*22**22*22",
2974            Core::XorXor1 => b"*2*22",
2975            Core::XorXor16 => b"*****22*22**22*22***22*22**22*22i",
2976            Core::XorXor32 => b"*il",
2977            Core::XorXor64 => b"*l*ll",
2978            Core::XorXor8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
2979        };
2980
2981        TypeName(name)
2982    }
2983
2984    fn target_ty(&self) -> TypeName {
2985        let name: &'static [u8] = match self {
2986            Core::Add16 => b"*2****22*22**22*22***22*22**22*22",
2987            Core::Add32 => b"*2i",
2988            Core::Add64 => b"*2l",
2989            Core::Add8 => b"*2***22*22**22*22",
2990            Core::All16 => b"2",
2991            Core::All32 => b"2",
2992            Core::All64 => b"2",
2993            Core::All8 => b"2",
2994            Core::And1 => b"2",
2995            Core::And16 => b"****22*22**22*22***22*22**22*22",
2996            Core::And32 => b"i",
2997            Core::And64 => b"l",
2998            Core::And8 => b"***22*22**22*22",
2999            Core::Bip0340Verify => b"1",
3000            Core::Ch1 => b"2",
3001            Core::Ch16 => b"****22*22**22*22***22*22**22*22",
3002            Core::Ch32 => b"i",
3003            Core::Ch64 => b"l",
3004            Core::Ch8 => b"***22*22**22*22",
3005            Core::CheckSigVerify => b"1",
3006            Core::Complement1 => b"2",
3007            Core::Complement16 => b"****22*22**22*22***22*22**22*22",
3008            Core::Complement32 => b"i",
3009            Core::Complement64 => b"l",
3010            Core::Complement8 => b"***22*22**22*22",
3011            Core::Decompress => b"+1*hh",
3012            Core::Decrement16 => b"*2****22*22**22*22***22*22**22*22",
3013            Core::Decrement32 => b"*2i",
3014            Core::Decrement64 => b"*2l",
3015            Core::Decrement8 => b"*2***22*22**22*22",
3016            Core::DivMod128_64 => b"*ll",
3017            Core::DivMod16 => b"i",
3018            Core::DivMod32 => b"l",
3019            Core::DivMod64 => b"*ll",
3020            Core::DivMod8 => b"****22*22**22*22***22*22**22*22",
3021            Core::Divide16 => b"****22*22**22*22***22*22**22*22",
3022            Core::Divide32 => b"i",
3023            Core::Divide64 => b"l",
3024            Core::Divide8 => b"***22*22**22*22",
3025            Core::Divides16 => b"2",
3026            Core::Divides32 => b"2",
3027            Core::Divides64 => b"2",
3028            Core::Divides8 => b"2",
3029            Core::Eq1 => b"2",
3030            Core::Eq16 => b"2",
3031            Core::Eq256 => b"2",
3032            Core::Eq32 => b"2",
3033            Core::Eq64 => b"2",
3034            Core::Eq8 => b"2",
3035            Core::FeAdd => b"h",
3036            Core::FeInvert => b"h",
3037            Core::FeIsOdd => b"2",
3038            Core::FeIsZero => b"2",
3039            Core::FeMultiply => b"h",
3040            Core::FeMultiplyBeta => b"h",
3041            Core::FeNegate => b"h",
3042            Core::FeNormalize => b"h",
3043            Core::FeSquare => b"h",
3044            Core::FeSquareRoot => b"+1h",
3045            Core::FullAdd16 => b"*2****22*22**22*22***22*22**22*22",
3046            Core::FullAdd32 => b"*2i",
3047            Core::FullAdd64 => b"*2l",
3048            Core::FullAdd8 => b"*2***22*22**22*22",
3049            Core::FullDecrement16 => b"*2****22*22**22*22***22*22**22*22",
3050            Core::FullDecrement32 => b"*2i",
3051            Core::FullDecrement64 => b"*2l",
3052            Core::FullDecrement8 => b"*2***22*22**22*22",
3053            Core::FullIncrement16 => b"*2****22*22**22*22***22*22**22*22",
3054            Core::FullIncrement32 => b"*2i",
3055            Core::FullIncrement64 => b"*2l",
3056            Core::FullIncrement8 => b"*2***22*22**22*22",
3057            Core::FullLeftShift16_1 => b"*2****22*22**22*22***22*22**22*22",
3058            Core::FullLeftShift16_2 => b"**22****22*22**22*22***22*22**22*22",
3059            Core::FullLeftShift16_4 => b"***22*22****22*22**22*22***22*22**22*22",
3060            Core::FullLeftShift16_8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
3061            Core::FullLeftShift32_1 => b"*2i",
3062            Core::FullLeftShift32_16 => b"*****22*22**22*22***22*22**22*22i",
3063            Core::FullLeftShift32_2 => b"**22i",
3064            Core::FullLeftShift32_4 => b"***22*22i",
3065            Core::FullLeftShift32_8 => b"****22*22**22*22i",
3066            Core::FullLeftShift64_1 => b"*2l",
3067            Core::FullLeftShift64_16 => b"*****22*22**22*22***22*22**22*22l",
3068            Core::FullLeftShift64_2 => b"**22l",
3069            Core::FullLeftShift64_32 => b"*il",
3070            Core::FullLeftShift64_4 => b"***22*22l",
3071            Core::FullLeftShift64_8 => b"****22*22**22*22l",
3072            Core::FullLeftShift8_1 => b"*2***22*22**22*22",
3073            Core::FullLeftShift8_2 => b"**22***22*22**22*22",
3074            Core::FullLeftShift8_4 => b"***22*22***22*22**22*22",
3075            Core::FullMultiply16 => b"i",
3076            Core::FullMultiply32 => b"l",
3077            Core::FullMultiply64 => b"*ll",
3078            Core::FullMultiply8 => b"****22*22**22*22***22*22**22*22",
3079            Core::FullRightShift16_1 => b"*****22*22**22*22***22*22**22*222",
3080            Core::FullRightShift16_2 => b"*****22*22**22*22***22*22**22*22*22",
3081            Core::FullRightShift16_4 => b"*****22*22**22*22***22*22**22*22**22*22",
3082            Core::FullRightShift16_8 => b"*****22*22**22*22***22*22**22*22***22*22**22*22",
3083            Core::FullRightShift32_1 => b"*i2",
3084            Core::FullRightShift32_16 => b"*i****22*22**22*22***22*22**22*22",
3085            Core::FullRightShift32_2 => b"*i*22",
3086            Core::FullRightShift32_4 => b"*i**22*22",
3087            Core::FullRightShift32_8 => b"*i***22*22**22*22",
3088            Core::FullRightShift64_1 => b"*l2",
3089            Core::FullRightShift64_16 => b"*l****22*22**22*22***22*22**22*22",
3090            Core::FullRightShift64_2 => b"*l*22",
3091            Core::FullRightShift64_32 => b"*li",
3092            Core::FullRightShift64_4 => b"*l**22*22",
3093            Core::FullRightShift64_8 => b"*l***22*22**22*22",
3094            Core::FullRightShift8_1 => b"****22*22**22*222",
3095            Core::FullRightShift8_2 => b"****22*22**22*22*22",
3096            Core::FullRightShift8_4 => b"****22*22**22*22**22*22",
3097            Core::FullSubtract16 => b"*2****22*22**22*22***22*22**22*22",
3098            Core::FullSubtract32 => b"*2i",
3099            Core::FullSubtract64 => b"*2l",
3100            Core::FullSubtract8 => b"*2***22*22**22*22",
3101            Core::GeIsOnCurve => b"2",
3102            Core::GeNegate => b"*hh",
3103            Core::GejAdd => b"**hhh",
3104            Core::GejDouble => b"**hhh",
3105            Core::GejEquiv => b"2",
3106            Core::GejGeAdd => b"**hhh",
3107            Core::GejGeAddEx => b"*h**hhh",
3108            Core::GejGeEquiv => b"2",
3109            Core::GejInfinity => b"**hhh",
3110            Core::GejIsInfinity => b"2",
3111            Core::GejIsOnCurve => b"2",
3112            Core::GejNegate => b"**hhh",
3113            Core::GejNormalize => b"+1*hh",
3114            Core::GejRescale => b"**hhh",
3115            Core::GejXEquiv => b"2",
3116            Core::GejYIsOdd => b"2",
3117            Core::Generate => b"**hhh",
3118            Core::HashToCurve => b"*hh",
3119            Core::High1 => b"2",
3120            Core::High16 => b"****22*22**22*22***22*22**22*22",
3121            Core::High32 => b"i",
3122            Core::High64 => b"l",
3123            Core::High8 => b"***22*22**22*22",
3124            Core::Increment16 => b"*2****22*22**22*22***22*22**22*22",
3125            Core::Increment32 => b"*2i",
3126            Core::Increment64 => b"*2l",
3127            Core::Increment8 => b"*2***22*22**22*22",
3128            Core::IsOne16 => b"2",
3129            Core::IsOne32 => b"2",
3130            Core::IsOne64 => b"2",
3131            Core::IsOne8 => b"2",
3132            Core::IsZero16 => b"2",
3133            Core::IsZero32 => b"2",
3134            Core::IsZero64 => b"2",
3135            Core::IsZero8 => b"2",
3136            Core::Le16 => b"2",
3137            Core::Le32 => b"2",
3138            Core::Le64 => b"2",
3139            Core::Le8 => b"2",
3140            Core::LeftExtend16_32 => b"i",
3141            Core::LeftExtend16_64 => b"l",
3142            Core::LeftExtend1_16 => b"****22*22**22*22***22*22**22*22",
3143            Core::LeftExtend1_32 => b"i",
3144            Core::LeftExtend1_64 => b"l",
3145            Core::LeftExtend1_8 => b"***22*22**22*22",
3146            Core::LeftExtend32_64 => b"l",
3147            Core::LeftExtend8_16 => b"****22*22**22*22***22*22**22*22",
3148            Core::LeftExtend8_32 => b"i",
3149            Core::LeftExtend8_64 => b"l",
3150            Core::LeftPadHigh16_32 => b"i",
3151            Core::LeftPadHigh16_64 => b"l",
3152            Core::LeftPadHigh1_16 => b"****22*22**22*22***22*22**22*22",
3153            Core::LeftPadHigh1_32 => b"i",
3154            Core::LeftPadHigh1_64 => b"l",
3155            Core::LeftPadHigh1_8 => b"***22*22**22*22",
3156            Core::LeftPadHigh32_64 => b"l",
3157            Core::LeftPadHigh8_16 => b"****22*22**22*22***22*22**22*22",
3158            Core::LeftPadHigh8_32 => b"i",
3159            Core::LeftPadHigh8_64 => b"l",
3160            Core::LeftPadLow16_32 => b"i",
3161            Core::LeftPadLow16_64 => b"l",
3162            Core::LeftPadLow1_16 => b"****22*22**22*22***22*22**22*22",
3163            Core::LeftPadLow1_32 => b"i",
3164            Core::LeftPadLow1_64 => b"l",
3165            Core::LeftPadLow1_8 => b"***22*22**22*22",
3166            Core::LeftPadLow32_64 => b"l",
3167            Core::LeftPadLow8_16 => b"****22*22**22*22***22*22**22*22",
3168            Core::LeftPadLow8_32 => b"i",
3169            Core::LeftPadLow8_64 => b"l",
3170            Core::LeftRotate16 => b"****22*22**22*22***22*22**22*22",
3171            Core::LeftRotate32 => b"i",
3172            Core::LeftRotate64 => b"l",
3173            Core::LeftRotate8 => b"***22*22**22*22",
3174            Core::LeftShift16 => b"****22*22**22*22***22*22**22*22",
3175            Core::LeftShift32 => b"i",
3176            Core::LeftShift64 => b"l",
3177            Core::LeftShift8 => b"***22*22**22*22",
3178            Core::LeftShiftWith16 => b"****22*22**22*22***22*22**22*22",
3179            Core::LeftShiftWith32 => b"i",
3180            Core::LeftShiftWith64 => b"l",
3181            Core::LeftShiftWith8 => b"***22*22**22*22",
3182            Core::Leftmost16_1 => b"2",
3183            Core::Leftmost16_2 => b"*22",
3184            Core::Leftmost16_4 => b"**22*22",
3185            Core::Leftmost16_8 => b"***22*22**22*22",
3186            Core::Leftmost32_1 => b"2",
3187            Core::Leftmost32_16 => b"****22*22**22*22***22*22**22*22",
3188            Core::Leftmost32_2 => b"*22",
3189            Core::Leftmost32_4 => b"**22*22",
3190            Core::Leftmost32_8 => b"***22*22**22*22",
3191            Core::Leftmost64_1 => b"2",
3192            Core::Leftmost64_16 => b"****22*22**22*22***22*22**22*22",
3193            Core::Leftmost64_2 => b"*22",
3194            Core::Leftmost64_32 => b"i",
3195            Core::Leftmost64_4 => b"**22*22",
3196            Core::Leftmost64_8 => b"***22*22**22*22",
3197            Core::Leftmost8_1 => b"2",
3198            Core::Leftmost8_2 => b"*22",
3199            Core::Leftmost8_4 => b"**22*22",
3200            Core::LinearCombination1 => b"**hhh",
3201            Core::LinearVerify1 => b"1",
3202            Core::Low1 => b"2",
3203            Core::Low16 => b"****22*22**22*22***22*22**22*22",
3204            Core::Low32 => b"i",
3205            Core::Low64 => b"l",
3206            Core::Low8 => b"***22*22**22*22",
3207            Core::Lt16 => b"2",
3208            Core::Lt32 => b"2",
3209            Core::Lt64 => b"2",
3210            Core::Lt8 => b"2",
3211            Core::Maj1 => b"2",
3212            Core::Maj16 => b"****22*22**22*22***22*22**22*22",
3213            Core::Maj32 => b"i",
3214            Core::Maj64 => b"l",
3215            Core::Maj8 => b"***22*22**22*22",
3216            Core::Max16 => b"****22*22**22*22***22*22**22*22",
3217            Core::Max32 => b"i",
3218            Core::Max64 => b"l",
3219            Core::Max8 => b"***22*22**22*22",
3220            Core::Median16 => b"****22*22**22*22***22*22**22*22",
3221            Core::Median32 => b"i",
3222            Core::Median64 => b"l",
3223            Core::Median8 => b"***22*22**22*22",
3224            Core::Min16 => b"****22*22**22*22***22*22**22*22",
3225            Core::Min32 => b"i",
3226            Core::Min64 => b"l",
3227            Core::Min8 => b"***22*22**22*22",
3228            Core::Modulo16 => b"****22*22**22*22***22*22**22*22",
3229            Core::Modulo32 => b"i",
3230            Core::Modulo64 => b"l",
3231            Core::Modulo8 => b"***22*22**22*22",
3232            Core::Multiply16 => b"i",
3233            Core::Multiply32 => b"l",
3234            Core::Multiply64 => b"*ll",
3235            Core::Multiply8 => b"****22*22**22*22***22*22**22*22",
3236            Core::Negate16 => b"*2****22*22**22*22***22*22**22*22",
3237            Core::Negate32 => b"*2i",
3238            Core::Negate64 => b"*2l",
3239            Core::Negate8 => b"*2***22*22**22*22",
3240            Core::One16 => b"****22*22**22*22***22*22**22*22",
3241            Core::One32 => b"i",
3242            Core::One64 => b"l",
3243            Core::One8 => b"***22*22**22*22",
3244            Core::Or1 => b"2",
3245            Core::Or16 => b"****22*22**22*22***22*22**22*22",
3246            Core::Or32 => b"i",
3247            Core::Or64 => b"l",
3248            Core::Or8 => b"***22*22**22*22",
3249            Core::ParseLock => b"+ii",
3250            Core::ParseSequence => b"+1+****22*22**22*22***22*22**22*22****22*22**22*22***22*22**22*22",
3251            Core::PointVerify1 => b"1",
3252            Core::RightExtend16_32 => b"i",
3253            Core::RightExtend16_64 => b"l",
3254            Core::RightExtend32_64 => b"l",
3255            Core::RightExtend8_16 => b"****22*22**22*22***22*22**22*22",
3256            Core::RightExtend8_32 => b"i",
3257            Core::RightExtend8_64 => b"l",
3258            Core::RightPadHigh16_32 => b"i",
3259            Core::RightPadHigh16_64 => b"l",
3260            Core::RightPadHigh1_16 => b"****22*22**22*22***22*22**22*22",
3261            Core::RightPadHigh1_32 => b"i",
3262            Core::RightPadHigh1_64 => b"l",
3263            Core::RightPadHigh1_8 => b"***22*22**22*22",
3264            Core::RightPadHigh32_64 => b"l",
3265            Core::RightPadHigh8_16 => b"****22*22**22*22***22*22**22*22",
3266            Core::RightPadHigh8_32 => b"i",
3267            Core::RightPadHigh8_64 => b"l",
3268            Core::RightPadLow16_32 => b"i",
3269            Core::RightPadLow16_64 => b"l",
3270            Core::RightPadLow1_16 => b"****22*22**22*22***22*22**22*22",
3271            Core::RightPadLow1_32 => b"i",
3272            Core::RightPadLow1_64 => b"l",
3273            Core::RightPadLow1_8 => b"***22*22**22*22",
3274            Core::RightPadLow32_64 => b"l",
3275            Core::RightPadLow8_16 => b"****22*22**22*22***22*22**22*22",
3276            Core::RightPadLow8_32 => b"i",
3277            Core::RightPadLow8_64 => b"l",
3278            Core::RightRotate16 => b"****22*22**22*22***22*22**22*22",
3279            Core::RightRotate32 => b"i",
3280            Core::RightRotate64 => b"l",
3281            Core::RightRotate8 => b"***22*22**22*22",
3282            Core::RightShift16 => b"****22*22**22*22***22*22**22*22",
3283            Core::RightShift32 => b"i",
3284            Core::RightShift64 => b"l",
3285            Core::RightShift8 => b"***22*22**22*22",
3286            Core::RightShiftWith16 => b"****22*22**22*22***22*22**22*22",
3287            Core::RightShiftWith32 => b"i",
3288            Core::RightShiftWith64 => b"l",
3289            Core::RightShiftWith8 => b"***22*22**22*22",
3290            Core::Rightmost16_1 => b"2",
3291            Core::Rightmost16_2 => b"*22",
3292            Core::Rightmost16_4 => b"**22*22",
3293            Core::Rightmost16_8 => b"***22*22**22*22",
3294            Core::Rightmost32_1 => b"2",
3295            Core::Rightmost32_16 => b"****22*22**22*22***22*22**22*22",
3296            Core::Rightmost32_2 => b"*22",
3297            Core::Rightmost32_4 => b"**22*22",
3298            Core::Rightmost32_8 => b"***22*22**22*22",
3299            Core::Rightmost64_1 => b"2",
3300            Core::Rightmost64_16 => b"****22*22**22*22***22*22**22*22",
3301            Core::Rightmost64_2 => b"*22",
3302            Core::Rightmost64_32 => b"i",
3303            Core::Rightmost64_4 => b"**22*22",
3304            Core::Rightmost64_8 => b"***22*22**22*22",
3305            Core::Rightmost8_1 => b"2",
3306            Core::Rightmost8_2 => b"*22",
3307            Core::Rightmost8_4 => b"**22*22",
3308            Core::ScalarAdd => b"h",
3309            Core::ScalarInvert => b"h",
3310            Core::ScalarIsZero => b"2",
3311            Core::ScalarMultiply => b"h",
3312            Core::ScalarMultiplyLambda => b"h",
3313            Core::ScalarNegate => b"h",
3314            Core::ScalarNormalize => b"h",
3315            Core::ScalarSquare => b"h",
3316            Core::Scale => b"**hhh",
3317            Core::Sha256Block => b"h",
3318            Core::Sha256Ctx8Add1 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3319            Core::Sha256Ctx8Add128 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3320            Core::Sha256Ctx8Add16 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3321            Core::Sha256Ctx8Add2 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3322            Core::Sha256Ctx8Add256 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3323            Core::Sha256Ctx8Add32 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3324            Core::Sha256Ctx8Add4 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3325            Core::Sha256Ctx8Add512 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3326            Core::Sha256Ctx8Add64 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3327            Core::Sha256Ctx8Add8 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3328            Core::Sha256Ctx8AddBuffer511 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3329            Core::Sha256Ctx8Finalize => b"h",
3330            Core::Sha256Ctx8Init => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3331            Core::Sha256Iv => b"h",
3332            Core::Some1 => b"2",
3333            Core::Some16 => b"2",
3334            Core::Some32 => b"2",
3335            Core::Some64 => b"2",
3336            Core::Some8 => b"2",
3337            Core::Subtract16 => b"*2****22*22**22*22***22*22**22*22",
3338            Core::Subtract32 => b"*2i",
3339            Core::Subtract64 => b"*2l",
3340            Core::Subtract8 => b"*2***22*22**22*22",
3341            Core::Swu => b"*hh",
3342            Core::TapdataInit => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3343            Core::Verify => b"1",
3344            Core::Xor1 => b"2",
3345            Core::Xor16 => b"****22*22**22*22***22*22**22*22",
3346            Core::Xor32 => b"i",
3347            Core::Xor64 => b"l",
3348            Core::Xor8 => b"***22*22**22*22",
3349            Core::XorXor1 => b"2",
3350            Core::XorXor16 => b"****22*22**22*22***22*22**22*22",
3351            Core::XorXor32 => b"i",
3352            Core::XorXor64 => b"l",
3353            Core::XorXor8 => b"***22*22**22*22",
3354        };
3355
3356        TypeName(name)
3357    }
3358
3359    fn encode(&self, w: &mut BitWriter<&mut dyn Write>) -> std::io::Result<usize> {
3360        let (n, len) = match self {
3361            Core::Verify => (0, 2),
3362            Core::Low1 => (8, 5),
3363            Core::Low8 => (37, 7),
3364            Core::Low16 => (304, 10),
3365            Core::Low32 => (305, 10),
3366            Core::Low64 => (306, 10),
3367            Core::High1 => (10, 5),
3368            Core::High8 => (45, 7),
3369            Core::High16 => (368, 10),
3370            Core::High32 => (369, 10),
3371            Core::High64 => (370, 10),
3372            Core::Complement1 => (96, 8),
3373            Core::Complement8 => (389, 10),
3374            Core::Complement16 => (3120, 13),
3375            Core::Complement32 => (3121, 13),
3376            Core::Complement64 => (3122, 13),
3377            Core::And1 => (98, 8),
3378            Core::And8 => (397, 10),
3379            Core::And16 => (3184, 13),
3380            Core::And32 => (3185, 13),
3381            Core::And64 => (3186, 13),
3382            Core::Or1 => (100, 8),
3383            Core::Or8 => (405, 10),
3384            Core::Or16 => (3248, 13),
3385            Core::Or32 => (3249, 13),
3386            Core::Or64 => (3250, 13),
3387            Core::Xor1 => (102, 8),
3388            Core::Xor8 => (413, 10),
3389            Core::Xor16 => (3312, 13),
3390            Core::Xor32 => (3313, 13),
3391            Core::Xor64 => (3314, 13),
3392            Core::Maj1 => (208, 9),
3393            Core::Maj8 => (837, 11),
3394            Core::Maj16 => (6704, 14),
3395            Core::Maj32 => (6705, 14),
3396            Core::Maj64 => (6706, 14),
3397            Core::XorXor1 => (210, 9),
3398            Core::XorXor8 => (845, 11),
3399            Core::XorXor16 => (6768, 14),
3400            Core::XorXor32 => (6769, 14),
3401            Core::XorXor64 => (6770, 14),
3402            Core::Ch1 => (212, 9),
3403            Core::Ch8 => (853, 11),
3404            Core::Ch16 => (6832, 14),
3405            Core::Ch32 => (6833, 14),
3406            Core::Ch64 => (6834, 14),
3407            Core::Some1 => (214, 9),
3408            Core::Some8 => (861, 11),
3409            Core::Some16 => (6896, 14),
3410            Core::Some32 => (6897, 14),
3411            Core::Some64 => (6898, 14),
3412            Core::All8 => (869, 11),
3413            Core::All16 => (6960, 14),
3414            Core::All32 => (6961, 14),
3415            Core::All64 => (6962, 14),
3416            Core::Eq1 => (218, 9),
3417            Core::Eq8 => (877, 11),
3418            Core::Eq16 => (7024, 14),
3419            Core::Eq32 => (7025, 14),
3420            Core::Eq64 => (7026, 14),
3421            Core::Eq256 => (14056, 15),
3422            Core::FullLeftShift8_1 => (1765, 12),
3423            Core::FullLeftShift16_1 => (14128, 15),
3424            Core::FullLeftShift32_1 => (14129, 15),
3425            Core::FullLeftShift64_1 => (14130, 15),
3426            Core::FullLeftShift8_2 => (7076, 14),
3427            Core::FullLeftShift16_2 => (7077, 14),
3428            Core::FullLeftShift32_2 => (56624, 17),
3429            Core::FullLeftShift64_2 => (56625, 17),
3430            Core::FullLeftShift8_4 => (1770, 12),
3431            Core::FullLeftShift16_4 => (7084, 14),
3432            Core::FullLeftShift32_4 => (7085, 14),
3433            Core::FullLeftShift64_4 => (56688, 17),
3434            Core::FullLeftShift16_8 => (14176, 15),
3435            Core::FullLeftShift32_8 => (56708, 17),
3436            Core::FullLeftShift64_8 => (56709, 17),
3437            Core::FullLeftShift32_16 => (14178, 15),
3438            Core::FullLeftShift64_16 => (56716, 17),
3439            Core::FullLeftShift64_32 => (14180, 15),
3440            Core::FullRightShift8_1 => (1781, 12),
3441            Core::FullRightShift16_1 => (14256, 15),
3442            Core::FullRightShift32_1 => (14257, 15),
3443            Core::FullRightShift64_1 => (14258, 15),
3444            Core::FullRightShift8_2 => (7140, 14),
3445            Core::FullRightShift16_2 => (7141, 14),
3446            Core::FullRightShift32_2 => (57136, 17),
3447            Core::FullRightShift64_2 => (57137, 17),
3448            Core::FullRightShift8_4 => (1786, 12),
3449            Core::FullRightShift16_4 => (7148, 14),
3450            Core::FullRightShift32_4 => (7149, 14),
3451            Core::FullRightShift64_4 => (57200, 17),
3452            Core::FullRightShift16_8 => (14304, 15),
3453            Core::FullRightShift32_8 => (57220, 17),
3454            Core::FullRightShift64_8 => (57221, 17),
3455            Core::FullRightShift32_16 => (14306, 15),
3456            Core::FullRightShift64_16 => (57228, 17),
3457            Core::FullRightShift64_32 => (14308, 15),
3458            Core::Leftmost8_1 => (28677, 16),
3459            Core::Leftmost16_1 => (229424, 19),
3460            Core::Leftmost32_1 => (229425, 19),
3461            Core::Leftmost64_1 => (229426, 19),
3462            Core::Leftmost8_2 => (114724, 18),
3463            Core::Leftmost16_2 => (114725, 18),
3464            Core::Leftmost32_2 => (917808, 21),
3465            Core::Leftmost64_2 => (917809, 21),
3466            Core::Leftmost8_4 => (28682, 16),
3467            Core::Leftmost16_4 => (114732, 18),
3468            Core::Leftmost32_4 => (114733, 18),
3469            Core::Leftmost64_4 => (917872, 21),
3470            Core::Leftmost16_8 => (229472, 19),
3471            Core::Leftmost32_8 => (917892, 21),
3472            Core::Leftmost64_8 => (917893, 21),
3473            Core::Leftmost32_16 => (229474, 19),
3474            Core::Leftmost64_16 => (917900, 21),
3475            Core::Leftmost64_32 => (229476, 19),
3476            Core::Rightmost8_1 => (28693, 16),
3477            Core::Rightmost16_1 => (229552, 19),
3478            Core::Rightmost32_1 => (229553, 19),
3479            Core::Rightmost64_1 => (229554, 19),
3480            Core::Rightmost8_2 => (114788, 18),
3481            Core::Rightmost16_2 => (114789, 18),
3482            Core::Rightmost32_2 => (918320, 21),
3483            Core::Rightmost64_2 => (918321, 21),
3484            Core::Rightmost8_4 => (28698, 16),
3485            Core::Rightmost16_4 => (114796, 18),
3486            Core::Rightmost32_4 => (114797, 18),
3487            Core::Rightmost64_4 => (918384, 21),
3488            Core::Rightmost16_8 => (229600, 19),
3489            Core::Rightmost32_8 => (918404, 21),
3490            Core::Rightmost64_8 => (918405, 21),
3491            Core::Rightmost32_16 => (229602, 19),
3492            Core::Rightmost64_16 => (918412, 21),
3493            Core::Rightmost64_32 => (229604, 19),
3494            Core::LeftPadLow1_8 => (28709, 16),
3495            Core::LeftPadLow1_16 => (229680, 19),
3496            Core::LeftPadLow1_32 => (229681, 19),
3497            Core::LeftPadLow1_64 => (229682, 19),
3498            Core::LeftPadLow8_16 => (229728, 19),
3499            Core::LeftPadLow8_32 => (918916, 21),
3500            Core::LeftPadLow8_64 => (918917, 21),
3501            Core::LeftPadLow16_32 => (229730, 19),
3502            Core::LeftPadLow16_64 => (918924, 21),
3503            Core::LeftPadLow32_64 => (229732, 19),
3504            Core::LeftPadHigh1_8 => (28725, 16),
3505            Core::LeftPadHigh1_16 => (229808, 19),
3506            Core::LeftPadHigh1_32 => (229809, 19),
3507            Core::LeftPadHigh1_64 => (229810, 19),
3508            Core::LeftPadHigh8_16 => (229856, 19),
3509            Core::LeftPadHigh8_32 => (919428, 21),
3510            Core::LeftPadHigh8_64 => (919429, 21),
3511            Core::LeftPadHigh16_32 => (229858, 19),
3512            Core::LeftPadHigh16_64 => (919436, 21),
3513            Core::LeftPadHigh32_64 => (229860, 19),
3514            Core::LeftExtend1_8 => (28741, 16),
3515            Core::LeftExtend1_16 => (229936, 19),
3516            Core::LeftExtend1_32 => (229937, 19),
3517            Core::LeftExtend1_64 => (229938, 19),
3518            Core::LeftExtend8_16 => (229984, 19),
3519            Core::LeftExtend8_32 => (919940, 21),
3520            Core::LeftExtend8_64 => (919941, 21),
3521            Core::LeftExtend16_32 => (229986, 19),
3522            Core::LeftExtend16_64 => (919948, 21),
3523            Core::LeftExtend32_64 => (229988, 19),
3524            Core::RightPadLow1_8 => (28757, 16),
3525            Core::RightPadLow1_16 => (230064, 19),
3526            Core::RightPadLow1_32 => (230065, 19),
3527            Core::RightPadLow1_64 => (230066, 19),
3528            Core::RightPadLow8_16 => (230112, 19),
3529            Core::RightPadLow8_32 => (920452, 21),
3530            Core::RightPadLow8_64 => (920453, 21),
3531            Core::RightPadLow16_32 => (230114, 19),
3532            Core::RightPadLow16_64 => (920460, 21),
3533            Core::RightPadLow32_64 => (230116, 19),
3534            Core::RightPadHigh1_8 => (28773, 16),
3535            Core::RightPadHigh1_16 => (230192, 19),
3536            Core::RightPadHigh1_32 => (230193, 19),
3537            Core::RightPadHigh1_64 => (230194, 19),
3538            Core::RightPadHigh8_16 => (230240, 19),
3539            Core::RightPadHigh8_32 => (920964, 21),
3540            Core::RightPadHigh8_64 => (920965, 21),
3541            Core::RightPadHigh16_32 => (230242, 19),
3542            Core::RightPadHigh16_64 => (920972, 21),
3543            Core::RightPadHigh32_64 => (230244, 19),
3544            Core::RightExtend8_16 => (230368, 19),
3545            Core::RightExtend8_32 => (921476, 21),
3546            Core::RightExtend8_64 => (921477, 21),
3547            Core::RightExtend16_32 => (230370, 19),
3548            Core::RightExtend16_64 => (921484, 21),
3549            Core::RightExtend32_64 => (230372, 19),
3550            Core::LeftShiftWith8 => (14405, 15),
3551            Core::LeftShiftWith16 => (115248, 18),
3552            Core::LeftShiftWith32 => (115249, 18),
3553            Core::LeftShiftWith64 => (115250, 18),
3554            Core::RightShiftWith8 => (14413, 15),
3555            Core::RightShiftWith16 => (115312, 18),
3556            Core::RightShiftWith32 => (115313, 18),
3557            Core::RightShiftWith64 => (115314, 18),
3558            Core::LeftShift8 => (14421, 15),
3559            Core::LeftShift16 => (115376, 18),
3560            Core::LeftShift32 => (115377, 18),
3561            Core::LeftShift64 => (115378, 18),
3562            Core::RightShift8 => (14429, 15),
3563            Core::RightShift16 => (115440, 18),
3564            Core::RightShift32 => (115441, 18),
3565            Core::RightShift64 => (115442, 18),
3566            Core::LeftRotate8 => (14437, 15),
3567            Core::LeftRotate16 => (115504, 18),
3568            Core::LeftRotate32 => (115505, 18),
3569            Core::LeftRotate64 => (115506, 18),
3570            Core::RightRotate8 => (14445, 15),
3571            Core::RightRotate16 => (115568, 18),
3572            Core::RightRotate32 => (115569, 18),
3573            Core::RightRotate64 => (115570, 18),
3574            Core::One8 => (69, 7),
3575            Core::One16 => (560, 10),
3576            Core::One32 => (561, 10),
3577            Core::One64 => (562, 10),
3578            Core::FullAdd8 => (293, 9),
3579            Core::FullAdd16 => (2352, 12),
3580            Core::FullAdd32 => (2353, 12),
3581            Core::FullAdd64 => (2354, 12),
3582            Core::Add8 => (301, 9),
3583            Core::Add16 => (2416, 12),
3584            Core::Add32 => (2417, 12),
3585            Core::Add64 => (2418, 12),
3586            Core::FullIncrement8 => (2437, 12),
3587            Core::FullIncrement16 => (19504, 15),
3588            Core::FullIncrement32 => (19505, 15),
3589            Core::FullIncrement64 => (19506, 15),
3590            Core::Increment8 => (2445, 12),
3591            Core::Increment16 => (19568, 15),
3592            Core::Increment32 => (19569, 15),
3593            Core::Increment64 => (19570, 15),
3594            Core::FullSubtract8 => (2461, 12),
3595            Core::FullSubtract16 => (19696, 15),
3596            Core::FullSubtract32 => (19697, 15),
3597            Core::FullSubtract64 => (19698, 15),
3598            Core::Subtract8 => (4933, 13),
3599            Core::Subtract16 => (39472, 16),
3600            Core::Subtract32 => (39473, 16),
3601            Core::Subtract64 => (39474, 16),
3602            Core::Negate8 => (4941, 13),
3603            Core::Negate16 => (39536, 16),
3604            Core::Negate32 => (39537, 16),
3605            Core::Negate64 => (39538, 16),
3606            Core::FullDecrement8 => (4949, 13),
3607            Core::FullDecrement16 => (39600, 16),
3608            Core::FullDecrement32 => (39601, 16),
3609            Core::FullDecrement64 => (39602, 16),
3610            Core::Decrement8 => (4957, 13),
3611            Core::Decrement16 => (39664, 16),
3612            Core::Decrement32 => (39665, 16),
3613            Core::Decrement64 => (39666, 16),
3614            Core::FullMultiply8 => (4965, 13),
3615            Core::FullMultiply16 => (39728, 16),
3616            Core::FullMultiply32 => (39729, 16),
3617            Core::FullMultiply64 => (39730, 16),
3618            Core::Multiply8 => (4973, 13),
3619            Core::Multiply16 => (39792, 16),
3620            Core::Multiply32 => (39793, 16),
3621            Core::Multiply64 => (39794, 16),
3622            Core::IsZero8 => (4981, 13),
3623            Core::IsZero16 => (39856, 16),
3624            Core::IsZero32 => (39857, 16),
3625            Core::IsZero64 => (39858, 16),
3626            Core::IsOne8 => (4989, 13),
3627            Core::IsOne16 => (39920, 16),
3628            Core::IsOne32 => (39921, 16),
3629            Core::IsOne64 => (39922, 16),
3630            Core::Le8 => (79877, 17),
3631            Core::Le16 => (639024, 20),
3632            Core::Le32 => (639025, 20),
3633            Core::Le64 => (639026, 20),
3634            Core::Lt8 => (79885, 17),
3635            Core::Lt16 => (639088, 20),
3636            Core::Lt32 => (639089, 20),
3637            Core::Lt64 => (639090, 20),
3638            Core::Min8 => (79893, 17),
3639            Core::Min16 => (639152, 20),
3640            Core::Min32 => (639153, 20),
3641            Core::Min64 => (639154, 20),
3642            Core::Max8 => (79901, 17),
3643            Core::Max16 => (639216, 20),
3644            Core::Max32 => (639217, 20),
3645            Core::Max64 => (639218, 20),
3646            Core::Median8 => (79909, 17),
3647            Core::Median16 => (639280, 20),
3648            Core::Median32 => (639281, 20),
3649            Core::Median64 => (639282, 20),
3650            Core::DivMod128_64 => (639346, 20),
3651            Core::DivMod8 => (79925, 17),
3652            Core::DivMod16 => (639408, 20),
3653            Core::DivMod32 => (639409, 20),
3654            Core::DivMod64 => (639410, 20),
3655            Core::Divide8 => (79933, 17),
3656            Core::Divide16 => (639472, 20),
3657            Core::Divide32 => (639473, 20),
3658            Core::Divide64 => (639474, 20),
3659            Core::Modulo8 => (79941, 17),
3660            Core::Modulo16 => (639536, 20),
3661            Core::Modulo32 => (639537, 20),
3662            Core::Modulo64 => (639538, 20),
3663            Core::Divides8 => (79949, 17),
3664            Core::Divides16 => (639600, 20),
3665            Core::Divides32 => (639601, 20),
3666            Core::Divides64 => (639602, 20),
3667            Core::Sha256Block => (20, 5),
3668            Core::Sha256Iv => (84, 7),
3669            Core::Sha256Ctx8Add1 => (170, 8),
3670            Core::Sha256Ctx8Add2 => (684, 10),
3671            Core::Sha256Ctx8Add4 => (685, 10),
3672            Core::Sha256Ctx8Add8 => (5488, 13),
3673            Core::Sha256Ctx8Add16 => (5489, 13),
3674            Core::Sha256Ctx8Add32 => (5490, 13),
3675            Core::Sha256Ctx8Add64 => (5491, 13),
3676            Core::Sha256Ctx8Add128 => (10984, 14),
3677            Core::Sha256Ctx8Add256 => (10985, 14),
3678            Core::Sha256Ctx8Add512 => (10986, 14),
3679            Core::Sha256Ctx8AddBuffer511 => (688, 10),
3680            Core::Sha256Ctx8Finalize => (689, 10),
3681            Core::Sha256Ctx8Init => (690, 10),
3682            Core::PointVerify1 => (192, 8),
3683            Core::Decompress => (388, 9),
3684            Core::LinearVerify1 => (778, 10),
3685            Core::LinearCombination1 => (6240, 13),
3686            Core::Scale => (3121, 12),
3687            Core::Generate => (3122, 12),
3688            Core::GejInfinity => (3123, 12),
3689            Core::GejNormalize => (6248, 13),
3690            Core::GejNegate => (6249, 13),
3691            Core::GeNegate => (6250, 13),
3692            Core::GejDouble => (6251, 13),
3693            Core::GejAdd => (6252, 13),
3694            Core::GejGeAddEx => (6253, 13),
3695            Core::GejGeAdd => (6254, 13),
3696            Core::GejRescale => (6255, 13),
3697            Core::GejIsInfinity => (100096, 17),
3698            Core::GejEquiv => (100097, 17),
3699            Core::GejGeEquiv => (100098, 17),
3700            Core::GejXEquiv => (100099, 17),
3701            Core::GejYIsOdd => (100100, 17),
3702            Core::GejIsOnCurve => (100101, 17),
3703            Core::GeIsOnCurve => (100102, 17),
3704            Core::ScalarNormalize => (100103, 17),
3705            Core::ScalarNegate => (100104, 17),
3706            Core::ScalarAdd => (100105, 17),
3707            Core::ScalarSquare => (100106, 17),
3708            Core::ScalarMultiply => (100107, 17),
3709            Core::ScalarMultiplyLambda => (100108, 17),
3710            Core::ScalarInvert => (100109, 17),
3711            Core::ScalarIsZero => (100110, 17),
3712            Core::FeNormalize => (200227, 18),
3713            Core::FeNegate => (200228, 18),
3714            Core::FeAdd => (200229, 18),
3715            Core::FeSquare => (200230, 18),
3716            Core::FeMultiply => (200231, 18),
3717            Core::FeMultiplyBeta => (200232, 18),
3718            Core::FeInvert => (200233, 18),
3719            Core::FeSquareRoot => (200234, 18),
3720            Core::FeIsZero => (200235, 18),
3721            Core::FeIsOdd => (200236, 18),
3722            Core::HashToCurve => (200238, 18),
3723            Core::Swu => (200239, 18),
3724            Core::CheckSigVerify => (98, 7),
3725            Core::Bip0340Verify => (396, 9),
3726            Core::ParseLock => (102, 7),
3727            Core::ParseSequence => (412, 9),
3728            Core::TapdataInit => (413, 9),
3729        };
3730
3731        w.write_bits_be(n, len)
3732    }
3733
3734    fn decode<I: Iterator<Item = u8>>(bits: &mut BitIter<I>) -> Result<Self, decode::Error> where Self: Sized {
3735        decode_bits!(bits, {
3736            0 => {
3737                0 => {Core::Verify},
3738                1 => {
3739                    0 => {
3740                        0 => {
3741                            0 => {Core::Low1},
3742                            1 => {
3743                                0 => {
3744                                    0 => {},
3745                                    1 => {Core::Low8}
3746                                },
3747                                1 => {
3748                                    0 => {
3749                                        0 => {
3750                                            0 => {
3751                                                0 => {Core::Low16},
3752                                                1 => {Core::Low32}
3753                                            },
3754                                            1 => {
3755                                                0 => {Core::Low64},
3756                                                1 => {}
3757                                            }
3758                                        },
3759                                        1 => {}
3760                                    },
3761                                    1 => {}
3762                                }
3763                            }
3764                        },
3765                        1 => {
3766                            0 => {Core::High1},
3767                            1 => {
3768                                0 => {
3769                                    0 => {},
3770                                    1 => {Core::High8}
3771                                },
3772                                1 => {
3773                                    0 => {
3774                                        0 => {
3775                                            0 => {
3776                                                0 => {Core::High16},
3777                                                1 => {Core::High32}
3778                                            },
3779                                            1 => {
3780                                                0 => {Core::High64},
3781                                                1 => {}
3782                                            }
3783                                        },
3784                                        1 => {}
3785                                    },
3786                                    1 => {}
3787                                }
3788                            }
3789                        }
3790                    },
3791                    1 => {
3792                        0 => {
3793                            0 => {
3794                                0 => {
3795                                    0 => {
3796                                        0 => {Core::Complement1},
3797                                        1 => {
3798                                            0 => {
3799                                                0 => {},
3800                                                1 => {Core::Complement8}
3801                                            },
3802                                            1 => {
3803                                                0 => {
3804                                                    0 => {
3805                                                        0 => {
3806                                                            0 => {Core::Complement16},
3807                                                            1 => {Core::Complement32}
3808                                                        },
3809                                                        1 => {
3810                                                            0 => {Core::Complement64},
3811                                                            1 => {}
3812                                                        }
3813                                                    },
3814                                                    1 => {}
3815                                                },
3816                                                1 => {}
3817                                            }
3818                                        }
3819                                    },
3820                                    1 => {
3821                                        0 => {Core::And1},
3822                                        1 => {
3823                                            0 => {
3824                                                0 => {},
3825                                                1 => {Core::And8}
3826                                            },
3827                                            1 => {
3828                                                0 => {
3829                                                    0 => {
3830                                                        0 => {
3831                                                            0 => {Core::And16},
3832                                                            1 => {Core::And32}
3833                                                        },
3834                                                        1 => {
3835                                                            0 => {Core::And64},
3836                                                            1 => {}
3837                                                        }
3838                                                    },
3839                                                    1 => {}
3840                                                },
3841                                                1 => {}
3842                                            }
3843                                        }
3844                                    }
3845                                },
3846                                1 => {
3847                                    0 => {
3848                                        0 => {Core::Or1},
3849                                        1 => {
3850                                            0 => {
3851                                                0 => {},
3852                                                1 => {Core::Or8}
3853                                            },
3854                                            1 => {
3855                                                0 => {
3856                                                    0 => {
3857                                                        0 => {
3858                                                            0 => {Core::Or16},
3859                                                            1 => {Core::Or32}
3860                                                        },
3861                                                        1 => {
3862                                                            0 => {Core::Or64},
3863                                                            1 => {}
3864                                                        }
3865                                                    },
3866                                                    1 => {}
3867                                                },
3868                                                1 => {}
3869                                            }
3870                                        }
3871                                    },
3872                                    1 => {
3873                                        0 => {Core::Xor1},
3874                                        1 => {
3875                                            0 => {
3876                                                0 => {},
3877                                                1 => {Core::Xor8}
3878                                            },
3879                                            1 => {
3880                                                0 => {
3881                                                    0 => {
3882                                                        0 => {
3883                                                            0 => {Core::Xor16},
3884                                                            1 => {Core::Xor32}
3885                                                        },
3886                                                        1 => {
3887                                                            0 => {Core::Xor64},
3888                                                            1 => {}
3889                                                        }
3890                                                    },
3891                                                    1 => {}
3892                                                },
3893                                                1 => {}
3894                                            }
3895                                        }
3896                                    }
3897                                }
3898                            },
3899                            1 => {
3900                                0 => {
3901                                    0 => {
3902                                        0 => {
3903                                            0 => {Core::Maj1},
3904                                            1 => {
3905                                                0 => {
3906                                                    0 => {},
3907                                                    1 => {Core::Maj8}
3908                                                },
3909                                                1 => {
3910                                                    0 => {
3911                                                        0 => {
3912                                                            0 => {
3913                                                                0 => {Core::Maj16},
3914                                                                1 => {Core::Maj32}
3915                                                            },
3916                                                            1 => {
3917                                                                0 => {Core::Maj64},
3918                                                                1 => {}
3919                                                            }
3920                                                        },
3921                                                        1 => {}
3922                                                    },
3923                                                    1 => {}
3924                                                }
3925                                            }
3926                                        },
3927                                        1 => {
3928                                            0 => {Core::XorXor1},
3929                                            1 => {
3930                                                0 => {
3931                                                    0 => {},
3932                                                    1 => {Core::XorXor8}
3933                                                },
3934                                                1 => {
3935                                                    0 => {
3936                                                        0 => {
3937                                                            0 => {
3938                                                                0 => {Core::XorXor16},
3939                                                                1 => {Core::XorXor32}
3940                                                            },
3941                                                            1 => {
3942                                                                0 => {Core::XorXor64},
3943                                                                1 => {}
3944                                                            }
3945                                                        },
3946                                                        1 => {}
3947                                                    },
3948                                                    1 => {}
3949                                                }
3950                                            }
3951                                        }
3952                                    },
3953                                    1 => {
3954                                        0 => {
3955                                            0 => {Core::Ch1},
3956                                            1 => {
3957                                                0 => {
3958                                                    0 => {},
3959                                                    1 => {Core::Ch8}
3960                                                },
3961                                                1 => {
3962                                                    0 => {
3963                                                        0 => {
3964                                                            0 => {
3965                                                                0 => {Core::Ch16},
3966                                                                1 => {Core::Ch32}
3967                                                            },
3968                                                            1 => {
3969                                                                0 => {Core::Ch64},
3970                                                                1 => {}
3971                                                            }
3972                                                        },
3973                                                        1 => {}
3974                                                    },
3975                                                    1 => {}
3976                                                }
3977                                            }
3978                                        },
3979                                        1 => {
3980                                            0 => {Core::Some1},
3981                                            1 => {
3982                                                0 => {
3983                                                    0 => {},
3984                                                    1 => {Core::Some8}
3985                                                },
3986                                                1 => {
3987                                                    0 => {
3988                                                        0 => {
3989                                                            0 => {
3990                                                                0 => {Core::Some16},
3991                                                                1 => {Core::Some32}
3992                                                            },
3993                                                            1 => {
3994                                                                0 => {Core::Some64},
3995                                                                1 => {}
3996                                                            }
3997                                                        },
3998                                                        1 => {}
3999                                                    },
4000                                                    1 => {}
4001                                                }
4002                                            }
4003                                        }
4004                                    }
4005                                },
4006                                1 => {
4007                                    0 => {
4008                                        0 => {
4009                                            0 => {},
4010                                            1 => {
4011                                                0 => {
4012                                                    0 => {},
4013                                                    1 => {Core::All8}
4014                                                },
4015                                                1 => {
4016                                                    0 => {
4017                                                        0 => {
4018                                                            0 => {
4019                                                                0 => {Core::All16},
4020                                                                1 => {Core::All32}
4021                                                            },
4022                                                            1 => {
4023                                                                0 => {Core::All64},
4024                                                                1 => {}
4025                                                            }
4026                                                        },
4027                                                        1 => {}
4028                                                    },
4029                                                    1 => {}
4030                                                }
4031                                            }
4032                                        },
4033                                        1 => {
4034                                            0 => {Core::Eq1},
4035                                            1 => {
4036                                                0 => {
4037                                                    0 => {},
4038                                                    1 => {Core::Eq8}
4039                                                },
4040                                                1 => {
4041                                                    0 => {
4042                                                        0 => {
4043                                                            0 => {
4044                                                                0 => {Core::Eq16},
4045                                                                1 => {Core::Eq32}
4046                                                            },
4047                                                            1 => {
4048                                                                0 => {Core::Eq64},
4049                                                                1 => {}
4050                                                            }
4051                                                        },
4052                                                        1 => {
4053                                                            0 => {
4054                                                                0 => {
4055                                                                    0 => {Core::Eq256},
4056                                                                    1 => {}
4057                                                                },
4058                                                                1 => {}
4059                                                            },
4060                                                            1 => {}
4061                                                        }
4062                                                    },
4063                                                    1 => {}
4064                                                }
4065                                            }
4066                                        }
4067                                    },
4068                                    1 => {
4069                                        0 => {
4070                                            0 => {
4071                                                0 => {},
4072                                                1 => {
4073                                                    0 => {
4074                                                        0 => {},
4075                                                        1 => {Core::FullLeftShift8_1}
4076                                                    },
4077                                                    1 => {
4078                                                        0 => {
4079                                                            0 => {
4080                                                                0 => {
4081                                                                    0 => {Core::FullLeftShift16_1},
4082                                                                    1 => {Core::FullLeftShift32_1}
4083                                                                },
4084                                                                1 => {
4085                                                                    0 => {Core::FullLeftShift64_1},
4086                                                                    1 => {}
4087                                                                }
4088                                                            },
4089                                                            1 => {}
4090                                                        },
4091                                                        1 => {}
4092                                                    }
4093                                                }
4094                                            },
4095                                            1 => {
4096                                                0 => {
4097                                                    0 => {
4098                                                        0 => {},
4099                                                        1 => {
4100                                                            0 => {
4101                                                                0 => {Core::FullLeftShift8_2},
4102                                                                1 => {Core::FullLeftShift16_2}
4103                                                            },
4104                                                            1 => {
4105                                                                0 => {
4106                                                                    0 => {
4107                                                                        0 => {
4108                                                                            0 => {Core::FullLeftShift32_2},
4109                                                                            1 => {Core::FullLeftShift64_2}
4110                                                                        },
4111                                                                        1 => {}
4112                                                                    },
4113                                                                    1 => {}
4114                                                                },
4115                                                                1 => {}
4116                                                            }
4117                                                        }
4118                                                    },
4119                                                    1 => {
4120                                                        0 => {Core::FullLeftShift8_4},
4121                                                        1 => {
4122                                                            0 => {
4123                                                                0 => {Core::FullLeftShift16_4},
4124                                                                1 => {Core::FullLeftShift32_4}
4125                                                            },
4126                                                            1 => {
4127                                                                0 => {
4128                                                                    0 => {
4129                                                                        0 => {
4130                                                                            0 => {Core::FullLeftShift64_4},
4131                                                                            1 => {}
4132                                                                        },
4133                                                                        1 => {}
4134                                                                    },
4135                                                                    1 => {}
4136                                                                },
4137                                                                1 => {}
4138                                                            }
4139                                                        }
4140                                                    }
4141                                                },
4142                                                1 => {
4143                                                    0 => {
4144                                                        0 => {
4145                                                            0 => {
4146                                                                0 => {
4147                                                                    0 => {Core::FullLeftShift16_8},
4148                                                                    1 => {
4149                                                                        0 => {
4150                                                                            0 => {Core::FullLeftShift32_8},
4151                                                                            1 => {Core::FullLeftShift64_8}
4152                                                                        },
4153                                                                        1 => {}
4154                                                                    }
4155                                                                },
4156                                                                1 => {
4157                                                                    0 => {Core::FullLeftShift32_16},
4158                                                                    1 => {
4159                                                                        0 => {
4160                                                                            0 => {Core::FullLeftShift64_16},
4161                                                                            1 => {}
4162                                                                        },
4163                                                                        1 => {}
4164                                                                    }
4165                                                                }
4166                                                            },
4167                                                            1 => {
4168                                                                0 => {
4169                                                                    0 => {Core::FullLeftShift64_32},
4170                                                                    1 => {}
4171                                                                },
4172                                                                1 => {}
4173                                                            }
4174                                                        },
4175                                                        1 => {}
4176                                                    },
4177                                                    1 => {}
4178                                                }
4179                                            }
4180                                        },
4181                                        1 => {
4182                                            0 => {
4183                                                0 => {},
4184                                                1 => {
4185                                                    0 => {
4186                                                        0 => {},
4187                                                        1 => {Core::FullRightShift8_1}
4188                                                    },
4189                                                    1 => {
4190                                                        0 => {
4191                                                            0 => {
4192                                                                0 => {
4193                                                                    0 => {Core::FullRightShift16_1},
4194                                                                    1 => {Core::FullRightShift32_1}
4195                                                                },
4196                                                                1 => {
4197                                                                    0 => {Core::FullRightShift64_1},
4198                                                                    1 => {}
4199                                                                }
4200                                                            },
4201                                                            1 => {}
4202                                                        },
4203                                                        1 => {}
4204                                                    }
4205                                                }
4206                                            },
4207                                            1 => {
4208                                                0 => {
4209                                                    0 => {
4210                                                        0 => {},
4211                                                        1 => {
4212                                                            0 => {
4213                                                                0 => {Core::FullRightShift8_2},
4214                                                                1 => {Core::FullRightShift16_2}
4215                                                            },
4216                                                            1 => {
4217                                                                0 => {
4218                                                                    0 => {
4219                                                                        0 => {
4220                                                                            0 => {Core::FullRightShift32_2},
4221                                                                            1 => {Core::FullRightShift64_2}
4222                                                                        },
4223                                                                        1 => {}
4224                                                                    },
4225                                                                    1 => {}
4226                                                                },
4227                                                                1 => {}
4228                                                            }
4229                                                        }
4230                                                    },
4231                                                    1 => {
4232                                                        0 => {Core::FullRightShift8_4},
4233                                                        1 => {
4234                                                            0 => {
4235                                                                0 => {Core::FullRightShift16_4},
4236                                                                1 => {Core::FullRightShift32_4}
4237                                                            },
4238                                                            1 => {
4239                                                                0 => {
4240                                                                    0 => {
4241                                                                        0 => {
4242                                                                            0 => {Core::FullRightShift64_4},
4243                                                                            1 => {}
4244                                                                        },
4245                                                                        1 => {}
4246                                                                    },
4247                                                                    1 => {}
4248                                                                },
4249                                                                1 => {}
4250                                                            }
4251                                                        }
4252                                                    }
4253                                                },
4254                                                1 => {
4255                                                    0 => {
4256                                                        0 => {
4257                                                            0 => {
4258                                                                0 => {
4259                                                                    0 => {Core::FullRightShift16_8},
4260                                                                    1 => {
4261                                                                        0 => {
4262                                                                            0 => {Core::FullRightShift32_8},
4263                                                                            1 => {Core::FullRightShift64_8}
4264                                                                        },
4265                                                                        1 => {}
4266                                                                    }
4267                                                                },
4268                                                                1 => {
4269                                                                    0 => {Core::FullRightShift32_16},
4270                                                                    1 => {
4271                                                                        0 => {
4272                                                                            0 => {Core::FullRightShift64_16},
4273                                                                            1 => {}
4274                                                                        },
4275                                                                        1 => {}
4276                                                                    }
4277                                                                }
4278                                                            },
4279                                                            1 => {
4280                                                                0 => {
4281                                                                    0 => {Core::FullRightShift64_32},
4282                                                                    1 => {}
4283                                                                },
4284                                                                1 => {}
4285                                                            }
4286                                                        },
4287                                                        1 => {}
4288                                                    },
4289                                                    1 => {}
4290                                                }
4291                                            }
4292                                        }
4293                                    }
4294                                }
4295                            }
4296                        },
4297                        1 => {
4298                            0 => {
4299                                0 => {
4300                                    0 => {
4301                                        0 => {
4302                                            0 => {
4303                                                0 => {
4304                                                    0 => {
4305                                                        0 => {
4306                                                            0 => {
4307                                                                0 => {},
4308                                                                1 => {
4309                                                                    0 => {
4310                                                                        0 => {},
4311                                                                        1 => {Core::Leftmost8_1}
4312                                                                    },
4313                                                                    1 => {
4314                                                                        0 => {
4315                                                                            0 => {
4316                                                                                0 => {
4317                                                                                    0 => {Core::Leftmost16_1},
4318                                                                                    1 => {Core::Leftmost32_1}
4319                                                                                },
4320                                                                                1 => {
4321                                                                                    0 => {Core::Leftmost64_1},
4322                                                                                    1 => {}
4323                                                                                }
4324                                                                            },
4325                                                                            1 => {}
4326                                                                        },
4327                                                                        1 => {}
4328                                                                    }
4329                                                                }
4330                                                            },
4331                                                            1 => {
4332                                                                0 => {
4333                                                                    0 => {
4334                                                                        0 => {},
4335                                                                        1 => {
4336                                                                            0 => {
4337                                                                                0 => {Core::Leftmost8_2},
4338                                                                                1 => {Core::Leftmost16_2}
4339                                                                            },
4340                                                                            1 => {
4341                                                                                0 => {
4342                                                                                    0 => {
4343                                                                                        0 => {
4344                                                                                            0 => {Core::Leftmost32_2},
4345                                                                                            1 => {Core::Leftmost64_2}
4346                                                                                        },
4347                                                                                        1 => {}
4348                                                                                    },
4349                                                                                    1 => {}
4350                                                                                },
4351                                                                                1 => {}
4352                                                                            }
4353                                                                        }
4354                                                                    },
4355                                                                    1 => {
4356                                                                        0 => {Core::Leftmost8_4},
4357                                                                        1 => {
4358                                                                            0 => {
4359                                                                                0 => {Core::Leftmost16_4},
4360                                                                                1 => {Core::Leftmost32_4}
4361                                                                            },
4362                                                                            1 => {
4363                                                                                0 => {
4364                                                                                    0 => {
4365                                                                                        0 => {
4366                                                                                            0 => {Core::Leftmost64_4},
4367                                                                                            1 => {}
4368                                                                                        },
4369                                                                                        1 => {}
4370                                                                                    },
4371                                                                                    1 => {}
4372                                                                                },
4373                                                                                1 => {}
4374                                                                            }
4375                                                                        }
4376                                                                    }
4377                                                                },
4378                                                                1 => {
4379                                                                    0 => {
4380                                                                        0 => {
4381                                                                            0 => {
4382                                                                                0 => {
4383                                                                                    0 => {Core::Leftmost16_8},
4384                                                                                    1 => {
4385                                                                                        0 => {
4386                                                                                            0 => {Core::Leftmost32_8},
4387                                                                                            1 => {Core::Leftmost64_8}
4388                                                                                        },
4389                                                                                        1 => {}
4390                                                                                    }
4391                                                                                },
4392                                                                                1 => {
4393                                                                                    0 => {Core::Leftmost32_16},
4394                                                                                    1 => {
4395                                                                                        0 => {
4396                                                                                            0 => {Core::Leftmost64_16},
4397                                                                                            1 => {}
4398                                                                                        },
4399                                                                                        1 => {}
4400                                                                                    }
4401                                                                                }
4402                                                                            },
4403                                                                            1 => {
4404                                                                                0 => {
4405                                                                                    0 => {Core::Leftmost64_32},
4406                                                                                    1 => {}
4407                                                                                },
4408                                                                                1 => {}
4409                                                                            }
4410                                                                        },
4411                                                                        1 => {}
4412                                                                    },
4413                                                                    1 => {}
4414                                                                }
4415                                                            }
4416                                                        },
4417                                                        1 => {
4418                                                            0 => {
4419                                                                0 => {},
4420                                                                1 => {
4421                                                                    0 => {
4422                                                                        0 => {},
4423                                                                        1 => {Core::Rightmost8_1}
4424                                                                    },
4425                                                                    1 => {
4426                                                                        0 => {
4427                                                                            0 => {
4428                                                                                0 => {
4429                                                                                    0 => {Core::Rightmost16_1},
4430                                                                                    1 => {Core::Rightmost32_1}
4431                                                                                },
4432                                                                                1 => {
4433                                                                                    0 => {Core::Rightmost64_1},
4434                                                                                    1 => {}
4435                                                                                }
4436                                                                            },
4437                                                                            1 => {}
4438                                                                        },
4439                                                                        1 => {}
4440                                                                    }
4441                                                                }
4442                                                            },
4443                                                            1 => {
4444                                                                0 => {
4445                                                                    0 => {
4446                                                                        0 => {},
4447                                                                        1 => {
4448                                                                            0 => {
4449                                                                                0 => {Core::Rightmost8_2},
4450                                                                                1 => {Core::Rightmost16_2}
4451                                                                            },
4452                                                                            1 => {
4453                                                                                0 => {
4454                                                                                    0 => {
4455                                                                                        0 => {
4456                                                                                            0 => {Core::Rightmost32_2},
4457                                                                                            1 => {Core::Rightmost64_2}
4458                                                                                        },
4459                                                                                        1 => {}
4460                                                                                    },
4461                                                                                    1 => {}
4462                                                                                },
4463                                                                                1 => {}
4464                                                                            }
4465                                                                        }
4466                                                                    },
4467                                                                    1 => {
4468                                                                        0 => {Core::Rightmost8_4},
4469                                                                        1 => {
4470                                                                            0 => {
4471                                                                                0 => {Core::Rightmost16_4},
4472                                                                                1 => {Core::Rightmost32_4}
4473                                                                            },
4474                                                                            1 => {
4475                                                                                0 => {
4476                                                                                    0 => {
4477                                                                                        0 => {
4478                                                                                            0 => {Core::Rightmost64_4},
4479                                                                                            1 => {}
4480                                                                                        },
4481                                                                                        1 => {}
4482                                                                                    },
4483                                                                                    1 => {}
4484                                                                                },
4485                                                                                1 => {}
4486                                                                            }
4487                                                                        }
4488                                                                    }
4489                                                                },
4490                                                                1 => {
4491                                                                    0 => {
4492                                                                        0 => {
4493                                                                            0 => {
4494                                                                                0 => {
4495                                                                                    0 => {Core::Rightmost16_8},
4496                                                                                    1 => {
4497                                                                                        0 => {
4498                                                                                            0 => {Core::Rightmost32_8},
4499                                                                                            1 => {Core::Rightmost64_8}
4500                                                                                        },
4501                                                                                        1 => {}
4502                                                                                    }
4503                                                                                },
4504                                                                                1 => {
4505                                                                                    0 => {Core::Rightmost32_16},
4506                                                                                    1 => {
4507                                                                                        0 => {
4508                                                                                            0 => {Core::Rightmost64_16},
4509                                                                                            1 => {}
4510                                                                                        },
4511                                                                                        1 => {}
4512                                                                                    }
4513                                                                                }
4514                                                                            },
4515                                                                            1 => {
4516                                                                                0 => {
4517                                                                                    0 => {Core::Rightmost64_32},
4518                                                                                    1 => {}
4519                                                                                },
4520                                                                                1 => {}
4521                                                                            }
4522                                                                        },
4523                                                                        1 => {}
4524                                                                    },
4525                                                                    1 => {}
4526                                                                }
4527                                                            }
4528                                                        }
4529                                                    },
4530                                                    1 => {
4531                                                        0 => {
4532                                                            0 => {
4533                                                                0 => {},
4534                                                                1 => {
4535                                                                    0 => {
4536                                                                        0 => {},
4537                                                                        1 => {Core::LeftPadLow1_8}
4538                                                                    },
4539                                                                    1 => {
4540                                                                        0 => {
4541                                                                            0 => {
4542                                                                                0 => {
4543                                                                                    0 => {Core::LeftPadLow1_16},
4544                                                                                    1 => {Core::LeftPadLow1_32}
4545                                                                                },
4546                                                                                1 => {
4547                                                                                    0 => {Core::LeftPadLow1_64},
4548                                                                                    1 => {}
4549                                                                                }
4550                                                                            },
4551                                                                            1 => {}
4552                                                                        },
4553                                                                        1 => {}
4554                                                                    }
4555                                                                }
4556                                                            },
4557                                                            1 => {
4558                                                                0 => {},
4559                                                                1 => {
4560                                                                    0 => {
4561                                                                        0 => {
4562                                                                            0 => {
4563                                                                                0 => {
4564                                                                                    0 => {Core::LeftPadLow8_16},
4565                                                                                    1 => {
4566                                                                                        0 => {
4567                                                                                            0 => {Core::LeftPadLow8_32},
4568                                                                                            1 => {Core::LeftPadLow8_64}
4569                                                                                        },
4570                                                                                        1 => {}
4571                                                                                    }
4572                                                                                },
4573                                                                                1 => {
4574                                                                                    0 => {Core::LeftPadLow16_32},
4575                                                                                    1 => {
4576                                                                                        0 => {
4577                                                                                            0 => {Core::LeftPadLow16_64},
4578                                                                                            1 => {}
4579                                                                                        },
4580                                                                                        1 => {}
4581                                                                                    }
4582                                                                                }
4583                                                                            },
4584                                                                            1 => {
4585                                                                                0 => {
4586                                                                                    0 => {Core::LeftPadLow32_64},
4587                                                                                    1 => {}
4588                                                                                },
4589                                                                                1 => {}
4590                                                                            }
4591                                                                        },
4592                                                                        1 => {}
4593                                                                    },
4594                                                                    1 => {}
4595                                                                }
4596                                                            }
4597                                                        },
4598                                                        1 => {
4599                                                            0 => {
4600                                                                0 => {},
4601                                                                1 => {
4602                                                                    0 => {
4603                                                                        0 => {},
4604                                                                        1 => {Core::LeftPadHigh1_8}
4605                                                                    },
4606                                                                    1 => {
4607                                                                        0 => {
4608                                                                            0 => {
4609                                                                                0 => {
4610                                                                                    0 => {Core::LeftPadHigh1_16},
4611                                                                                    1 => {Core::LeftPadHigh1_32}
4612                                                                                },
4613                                                                                1 => {
4614                                                                                    0 => {Core::LeftPadHigh1_64},
4615                                                                                    1 => {}
4616                                                                                }
4617                                                                            },
4618                                                                            1 => {}
4619                                                                        },
4620                                                                        1 => {}
4621                                                                    }
4622                                                                }
4623                                                            },
4624                                                            1 => {
4625                                                                0 => {},
4626                                                                1 => {
4627                                                                    0 => {
4628                                                                        0 => {
4629                                                                            0 => {
4630                                                                                0 => {
4631                                                                                    0 => {Core::LeftPadHigh8_16},
4632                                                                                    1 => {
4633                                                                                        0 => {
4634                                                                                            0 => {Core::LeftPadHigh8_32},
4635                                                                                            1 => {Core::LeftPadHigh8_64}
4636                                                                                        },
4637                                                                                        1 => {}
4638                                                                                    }
4639                                                                                },
4640                                                                                1 => {
4641                                                                                    0 => {Core::LeftPadHigh16_32},
4642                                                                                    1 => {
4643                                                                                        0 => {
4644                                                                                            0 => {Core::LeftPadHigh16_64},
4645                                                                                            1 => {}
4646                                                                                        },
4647                                                                                        1 => {}
4648                                                                                    }
4649                                                                                }
4650                                                                            },
4651                                                                            1 => {
4652                                                                                0 => {
4653                                                                                    0 => {Core::LeftPadHigh32_64},
4654                                                                                    1 => {}
4655                                                                                },
4656                                                                                1 => {}
4657                                                                            }
4658                                                                        },
4659                                                                        1 => {}
4660                                                                    },
4661                                                                    1 => {}
4662                                                                }
4663                                                            }
4664                                                        }
4665                                                    }
4666                                                },
4667                                                1 => {
4668                                                    0 => {
4669                                                        0 => {
4670                                                            0 => {
4671                                                                0 => {},
4672                                                                1 => {
4673                                                                    0 => {
4674                                                                        0 => {},
4675                                                                        1 => {Core::LeftExtend1_8}
4676                                                                    },
4677                                                                    1 => {
4678                                                                        0 => {
4679                                                                            0 => {
4680                                                                                0 => {
4681                                                                                    0 => {Core::LeftExtend1_16},
4682                                                                                    1 => {Core::LeftExtend1_32}
4683                                                                                },
4684                                                                                1 => {
4685                                                                                    0 => {Core::LeftExtend1_64},
4686                                                                                    1 => {}
4687                                                                                }
4688                                                                            },
4689                                                                            1 => {}
4690                                                                        },
4691                                                                        1 => {}
4692                                                                    }
4693                                                                }
4694                                                            },
4695                                                            1 => {
4696                                                                0 => {},
4697                                                                1 => {
4698                                                                    0 => {
4699                                                                        0 => {
4700                                                                            0 => {
4701                                                                                0 => {
4702                                                                                    0 => {Core::LeftExtend8_16},
4703                                                                                    1 => {
4704                                                                                        0 => {
4705                                                                                            0 => {Core::LeftExtend8_32},
4706                                                                                            1 => {Core::LeftExtend8_64}
4707                                                                                        },
4708                                                                                        1 => {}
4709                                                                                    }
4710                                                                                },
4711                                                                                1 => {
4712                                                                                    0 => {Core::LeftExtend16_32},
4713                                                                                    1 => {
4714                                                                                        0 => {
4715                                                                                            0 => {Core::LeftExtend16_64},
4716                                                                                            1 => {}
4717                                                                                        },
4718                                                                                        1 => {}
4719                                                                                    }
4720                                                                                }
4721                                                                            },
4722                                                                            1 => {
4723                                                                                0 => {
4724                                                                                    0 => {Core::LeftExtend32_64},
4725                                                                                    1 => {}
4726                                                                                },
4727                                                                                1 => {}
4728                                                                            }
4729                                                                        },
4730                                                                        1 => {}
4731                                                                    },
4732                                                                    1 => {}
4733                                                                }
4734                                                            }
4735                                                        },
4736                                                        1 => {
4737                                                            0 => {
4738                                                                0 => {},
4739                                                                1 => {
4740                                                                    0 => {
4741                                                                        0 => {},
4742                                                                        1 => {Core::RightPadLow1_8}
4743                                                                    },
4744                                                                    1 => {
4745                                                                        0 => {
4746                                                                            0 => {
4747                                                                                0 => {
4748                                                                                    0 => {Core::RightPadLow1_16},
4749                                                                                    1 => {Core::RightPadLow1_32}
4750                                                                                },
4751                                                                                1 => {
4752                                                                                    0 => {Core::RightPadLow1_64},
4753                                                                                    1 => {}
4754                                                                                }
4755                                                                            },
4756                                                                            1 => {}
4757                                                                        },
4758                                                                        1 => {}
4759                                                                    }
4760                                                                }
4761                                                            },
4762                                                            1 => {
4763                                                                0 => {},
4764                                                                1 => {
4765                                                                    0 => {
4766                                                                        0 => {
4767                                                                            0 => {
4768                                                                                0 => {
4769                                                                                    0 => {Core::RightPadLow8_16},
4770                                                                                    1 => {
4771                                                                                        0 => {
4772                                                                                            0 => {Core::RightPadLow8_32},
4773                                                                                            1 => {Core::RightPadLow8_64}
4774                                                                                        },
4775                                                                                        1 => {}
4776                                                                                    }
4777                                                                                },
4778                                                                                1 => {
4779                                                                                    0 => {Core::RightPadLow16_32},
4780                                                                                    1 => {
4781                                                                                        0 => {
4782                                                                                            0 => {Core::RightPadLow16_64},
4783                                                                                            1 => {}
4784                                                                                        },
4785                                                                                        1 => {}
4786                                                                                    }
4787                                                                                }
4788                                                                            },
4789                                                                            1 => {
4790                                                                                0 => {
4791                                                                                    0 => {Core::RightPadLow32_64},
4792                                                                                    1 => {}
4793                                                                                },
4794                                                                                1 => {}
4795                                                                            }
4796                                                                        },
4797                                                                        1 => {}
4798                                                                    },
4799                                                                    1 => {}
4800                                                                }
4801                                                            }
4802                                                        }
4803                                                    },
4804                                                    1 => {
4805                                                        0 => {
4806                                                            0 => {
4807                                                                0 => {},
4808                                                                1 => {
4809                                                                    0 => {
4810                                                                        0 => {},
4811                                                                        1 => {Core::RightPadHigh1_8}
4812                                                                    },
4813                                                                    1 => {
4814                                                                        0 => {
4815                                                                            0 => {
4816                                                                                0 => {
4817                                                                                    0 => {Core::RightPadHigh1_16},
4818                                                                                    1 => {Core::RightPadHigh1_32}
4819                                                                                },
4820                                                                                1 => {
4821                                                                                    0 => {Core::RightPadHigh1_64},
4822                                                                                    1 => {}
4823                                                                                }
4824                                                                            },
4825                                                                            1 => {}
4826                                                                        },
4827                                                                        1 => {}
4828                                                                    }
4829                                                                }
4830                                                            },
4831                                                            1 => {
4832                                                                0 => {},
4833                                                                1 => {
4834                                                                    0 => {
4835                                                                        0 => {
4836                                                                            0 => {
4837                                                                                0 => {
4838                                                                                    0 => {Core::RightPadHigh8_16},
4839                                                                                    1 => {
4840                                                                                        0 => {
4841                                                                                            0 => {Core::RightPadHigh8_32},
4842                                                                                            1 => {Core::RightPadHigh8_64}
4843                                                                                        },
4844                                                                                        1 => {}
4845                                                                                    }
4846                                                                                },
4847                                                                                1 => {
4848                                                                                    0 => {Core::RightPadHigh16_32},
4849                                                                                    1 => {
4850                                                                                        0 => {
4851                                                                                            0 => {Core::RightPadHigh16_64},
4852                                                                                            1 => {}
4853                                                                                        },
4854                                                                                        1 => {}
4855                                                                                    }
4856                                                                                }
4857                                                                            },
4858                                                                            1 => {
4859                                                                                0 => {
4860                                                                                    0 => {Core::RightPadHigh32_64},
4861                                                                                    1 => {}
4862                                                                                },
4863                                                                                1 => {}
4864                                                                            }
4865                                                                        },
4866                                                                        1 => {}
4867                                                                    },
4868                                                                    1 => {}
4869                                                                }
4870                                                            }
4871                                                        },
4872                                                        1 => {
4873                                                            0 => {},
4874                                                            1 => {
4875                                                                0 => {},
4876                                                                1 => {
4877                                                                    0 => {
4878                                                                        0 => {
4879                                                                            0 => {
4880                                                                                0 => {
4881                                                                                    0 => {Core::RightExtend8_16},
4882                                                                                    1 => {
4883                                                                                        0 => {
4884                                                                                            0 => {Core::RightExtend8_32},
4885                                                                                            1 => {Core::RightExtend8_64}
4886                                                                                        },
4887                                                                                        1 => {}
4888                                                                                    }
4889                                                                                },
4890                                                                                1 => {
4891                                                                                    0 => {Core::RightExtend16_32},
4892                                                                                    1 => {
4893                                                                                        0 => {
4894                                                                                            0 => {Core::RightExtend16_64},
4895                                                                                            1 => {}
4896                                                                                        },
4897                                                                                        1 => {}
4898                                                                                    }
4899                                                                                }
4900                                                                            },
4901                                                                            1 => {
4902                                                                                0 => {
4903                                                                                    0 => {Core::RightExtend32_64},
4904                                                                                    1 => {}
4905                                                                                },
4906                                                                                1 => {}
4907                                                                            }
4908                                                                        },
4909                                                                        1 => {}
4910                                                                    },
4911                                                                    1 => {}
4912                                                                }
4913                                                            }
4914                                                        }
4915                                                    }
4916                                                }
4917                                            },
4918                                            1 => {
4919                                                0 => {
4920                                                    0 => {
4921                                                        0 => {
4922                                                            0 => {},
4923                                                            1 => {
4924                                                                0 => {
4925                                                                    0 => {},
4926                                                                    1 => {Core::LeftShiftWith8}
4927                                                                },
4928                                                                1 => {
4929                                                                    0 => {
4930                                                                        0 => {
4931                                                                            0 => {
4932                                                                                0 => {Core::LeftShiftWith16},
4933                                                                                1 => {Core::LeftShiftWith32}
4934                                                                            },
4935                                                                            1 => {
4936                                                                                0 => {Core::LeftShiftWith64},
4937                                                                                1 => {}
4938                                                                            }
4939                                                                        },
4940                                                                        1 => {}
4941                                                                    },
4942                                                                    1 => {}
4943                                                                }
4944                                                            }
4945                                                        },
4946                                                        1 => {
4947                                                            0 => {},
4948                                                            1 => {
4949                                                                0 => {
4950                                                                    0 => {},
4951                                                                    1 => {Core::RightShiftWith8}
4952                                                                },
4953                                                                1 => {
4954                                                                    0 => {
4955                                                                        0 => {
4956                                                                            0 => {
4957                                                                                0 => {Core::RightShiftWith16},
4958                                                                                1 => {Core::RightShiftWith32}
4959                                                                            },
4960                                                                            1 => {
4961                                                                                0 => {Core::RightShiftWith64},
4962                                                                                1 => {}
4963                                                                            }
4964                                                                        },
4965                                                                        1 => {}
4966                                                                    },
4967                                                                    1 => {}
4968                                                                }
4969                                                            }
4970                                                        }
4971                                                    },
4972                                                    1 => {
4973                                                        0 => {
4974                                                            0 => {},
4975                                                            1 => {
4976                                                                0 => {
4977                                                                    0 => {},
4978                                                                    1 => {Core::LeftShift8}
4979                                                                },
4980                                                                1 => {
4981                                                                    0 => {
4982                                                                        0 => {
4983                                                                            0 => {
4984                                                                                0 => {Core::LeftShift16},
4985                                                                                1 => {Core::LeftShift32}
4986                                                                            },
4987                                                                            1 => {
4988                                                                                0 => {Core::LeftShift64},
4989                                                                                1 => {}
4990                                                                            }
4991                                                                        },
4992                                                                        1 => {}
4993                                                                    },
4994                                                                    1 => {}
4995                                                                }
4996                                                            }
4997                                                        },
4998                                                        1 => {
4999                                                            0 => {},
5000                                                            1 => {
5001                                                                0 => {
5002                                                                    0 => {},
5003                                                                    1 => {Core::RightShift8}
5004                                                                },
5005                                                                1 => {
5006                                                                    0 => {
5007                                                                        0 => {
5008                                                                            0 => {
5009                                                                                0 => {Core::RightShift16},
5010                                                                                1 => {Core::RightShift32}
5011                                                                            },
5012                                                                            1 => {
5013                                                                                0 => {Core::RightShift64},
5014                                                                                1 => {}
5015                                                                            }
5016                                                                        },
5017                                                                        1 => {}
5018                                                                    },
5019                                                                    1 => {}
5020                                                                }
5021                                                            }
5022                                                        }
5023                                                    }
5024                                                },
5025                                                1 => {
5026                                                    0 => {
5027                                                        0 => {
5028                                                            0 => {},
5029                                                            1 => {
5030                                                                0 => {
5031                                                                    0 => {},
5032                                                                    1 => {Core::LeftRotate8}
5033                                                                },
5034                                                                1 => {
5035                                                                    0 => {
5036                                                                        0 => {
5037                                                                            0 => {
5038                                                                                0 => {Core::LeftRotate16},
5039                                                                                1 => {Core::LeftRotate32}
5040                                                                            },
5041                                                                            1 => {
5042                                                                                0 => {Core::LeftRotate64},
5043                                                                                1 => {}
5044                                                                            }
5045                                                                        },
5046                                                                        1 => {}
5047                                                                    },
5048                                                                    1 => {}
5049                                                                }
5050                                                            }
5051                                                        },
5052                                                        1 => {
5053                                                            0 => {},
5054                                                            1 => {
5055                                                                0 => {
5056                                                                    0 => {},
5057                                                                    1 => {Core::RightRotate8}
5058                                                                },
5059                                                                1 => {
5060                                                                    0 => {
5061                                                                        0 => {
5062                                                                            0 => {
5063                                                                                0 => {Core::RightRotate16},
5064                                                                                1 => {Core::RightRotate32}
5065                                                                            },
5066                                                                            1 => {
5067                                                                                0 => {Core::RightRotate64},
5068                                                                                1 => {}
5069                                                                            }
5070                                                                        },
5071                                                                        1 => {}
5072                                                                    },
5073                                                                    1 => {}
5074                                                                }
5075                                                            }
5076                                                        }
5077                                                    },
5078                                                    1 => {}
5079                                                }
5080                                            }
5081                                        },
5082                                        1 => {}
5083                                    },
5084                                    1 => {}
5085                                },
5086                                1 => {}
5087                            },
5088                            1 => {}
5089                        }
5090                    }
5091                }
5092            },
5093            1 => {
5094                0 => {
5095                    0 => {
5096                        0 => {
5097                            0 => {},
5098                            1 => {
5099                                0 => {
5100                                    0 => {},
5101                                    1 => {Core::One8}
5102                                },
5103                                1 => {
5104                                    0 => {
5105                                        0 => {
5106                                            0 => {
5107                                                0 => {Core::One16},
5108                                                1 => {Core::One32}
5109                                            },
5110                                            1 => {
5111                                                0 => {Core::One64},
5112                                                1 => {}
5113                                            }
5114                                        },
5115                                        1 => {}
5116                                    },
5117                                    1 => {}
5118                                }
5119                            }
5120                        },
5121                        1 => {
5122                            0 => {
5123                                0 => {
5124                                    0 => {},
5125                                    1 => {
5126                                        0 => {
5127                                            0 => {},
5128                                            1 => {Core::FullAdd8}
5129                                        },
5130                                        1 => {
5131                                            0 => {
5132                                                0 => {
5133                                                    0 => {
5134                                                        0 => {Core::FullAdd16},
5135                                                        1 => {Core::FullAdd32}
5136                                                    },
5137                                                    1 => {
5138                                                        0 => {Core::FullAdd64},
5139                                                        1 => {}
5140                                                    }
5141                                                },
5142                                                1 => {}
5143                                            },
5144                                            1 => {}
5145                                        }
5146                                    }
5147                                },
5148                                1 => {
5149                                    0 => {},
5150                                    1 => {
5151                                        0 => {
5152                                            0 => {},
5153                                            1 => {Core::Add8}
5154                                        },
5155                                        1 => {
5156                                            0 => {
5157                                                0 => {
5158                                                    0 => {
5159                                                        0 => {Core::Add16},
5160                                                        1 => {Core::Add32}
5161                                                    },
5162                                                    1 => {
5163                                                        0 => {Core::Add64},
5164                                                        1 => {}
5165                                                    }
5166                                                },
5167                                                1 => {}
5168                                            },
5169                                            1 => {}
5170                                        }
5171                                    }
5172                                }
5173                            },
5174                            1 => {
5175                                0 => {
5176                                    0 => {
5177                                        0 => {
5178                                            0 => {
5179                                                0 => {},
5180                                                1 => {
5181                                                    0 => {
5182                                                        0 => {},
5183                                                        1 => {Core::FullIncrement8}
5184                                                    },
5185                                                    1 => {
5186                                                        0 => {
5187                                                            0 => {
5188                                                                0 => {
5189                                                                    0 => {Core::FullIncrement16},
5190                                                                    1 => {Core::FullIncrement32}
5191                                                                },
5192                                                                1 => {
5193                                                                    0 => {Core::FullIncrement64},
5194                                                                    1 => {}
5195                                                                }
5196                                                            },
5197                                                            1 => {}
5198                                                        },
5199                                                        1 => {}
5200                                                    }
5201                                                }
5202                                            },
5203                                            1 => {
5204                                                0 => {},
5205                                                1 => {
5206                                                    0 => {
5207                                                        0 => {},
5208                                                        1 => {Core::Increment8}
5209                                                    },
5210                                                    1 => {
5211                                                        0 => {
5212                                                            0 => {
5213                                                                0 => {
5214                                                                    0 => {Core::Increment16},
5215                                                                    1 => {Core::Increment32}
5216                                                                },
5217                                                                1 => {
5218                                                                    0 => {Core::Increment64},
5219                                                                    1 => {}
5220                                                                }
5221                                                            },
5222                                                            1 => {}
5223                                                        },
5224                                                        1 => {}
5225                                                    }
5226                                                }
5227                                            }
5228                                        },
5229                                        1 => {
5230                                            0 => {},
5231                                            1 => {
5232                                                0 => {},
5233                                                1 => {
5234                                                    0 => {
5235                                                        0 => {},
5236                                                        1 => {Core::FullSubtract8}
5237                                                    },
5238                                                    1 => {
5239                                                        0 => {
5240                                                            0 => {
5241                                                                0 => {
5242                                                                    0 => {Core::FullSubtract16},
5243                                                                    1 => {Core::FullSubtract32}
5244                                                                },
5245                                                                1 => {
5246                                                                    0 => {Core::FullSubtract64},
5247                                                                    1 => {}
5248                                                                }
5249                                                            },
5250                                                            1 => {}
5251                                                        },
5252                                                        1 => {}
5253                                                    }
5254                                                }
5255                                            }
5256                                        }
5257                                    },
5258                                    1 => {
5259                                        0 => {
5260                                            0 => {
5261                                                0 => {
5262                                                    0 => {},
5263                                                    1 => {
5264                                                        0 => {
5265                                                            0 => {},
5266                                                            1 => {Core::Subtract8}
5267                                                        },
5268                                                        1 => {
5269                                                            0 => {
5270                                                                0 => {
5271                                                                    0 => {
5272                                                                        0 => {Core::Subtract16},
5273                                                                        1 => {Core::Subtract32}
5274                                                                    },
5275                                                                    1 => {
5276                                                                        0 => {Core::Subtract64},
5277                                                                        1 => {}
5278                                                                    }
5279                                                                },
5280                                                                1 => {}
5281                                                            },
5282                                                            1 => {}
5283                                                        }
5284                                                    }
5285                                                },
5286                                                1 => {
5287                                                    0 => {},
5288                                                    1 => {
5289                                                        0 => {
5290                                                            0 => {},
5291                                                            1 => {Core::Negate8}
5292                                                        },
5293                                                        1 => {
5294                                                            0 => {
5295                                                                0 => {
5296                                                                    0 => {
5297                                                                        0 => {Core::Negate16},
5298                                                                        1 => {Core::Negate32}
5299                                                                    },
5300                                                                    1 => {
5301                                                                        0 => {Core::Negate64},
5302                                                                        1 => {}
5303                                                                    }
5304                                                                },
5305                                                                1 => {}
5306                                                            },
5307                                                            1 => {}
5308                                                        }
5309                                                    }
5310                                                }
5311                                            },
5312                                            1 => {
5313                                                0 => {
5314                                                    0 => {},
5315                                                    1 => {
5316                                                        0 => {
5317                                                            0 => {},
5318                                                            1 => {Core::FullDecrement8}
5319                                                        },
5320                                                        1 => {
5321                                                            0 => {
5322                                                                0 => {
5323                                                                    0 => {
5324                                                                        0 => {Core::FullDecrement16},
5325                                                                        1 => {Core::FullDecrement32}
5326                                                                    },
5327                                                                    1 => {
5328                                                                        0 => {Core::FullDecrement64},
5329                                                                        1 => {}
5330                                                                    }
5331                                                                },
5332                                                                1 => {}
5333                                                            },
5334                                                            1 => {}
5335                                                        }
5336                                                    }
5337                                                },
5338                                                1 => {
5339                                                    0 => {},
5340                                                    1 => {
5341                                                        0 => {
5342                                                            0 => {},
5343                                                            1 => {Core::Decrement8}
5344                                                        },
5345                                                        1 => {
5346                                                            0 => {
5347                                                                0 => {
5348                                                                    0 => {
5349                                                                        0 => {Core::Decrement16},
5350                                                                        1 => {Core::Decrement32}
5351                                                                    },
5352                                                                    1 => {
5353                                                                        0 => {Core::Decrement64},
5354                                                                        1 => {}
5355                                                                    }
5356                                                                },
5357                                                                1 => {}
5358                                                            },
5359                                                            1 => {}
5360                                                        }
5361                                                    }
5362                                                }
5363                                            }
5364                                        },
5365                                        1 => {
5366                                            0 => {
5367                                                0 => {
5368                                                    0 => {},
5369                                                    1 => {
5370                                                        0 => {
5371                                                            0 => {},
5372                                                            1 => {Core::FullMultiply8}
5373                                                        },
5374                                                        1 => {
5375                                                            0 => {
5376                                                                0 => {
5377                                                                    0 => {
5378                                                                        0 => {Core::FullMultiply16},
5379                                                                        1 => {Core::FullMultiply32}
5380                                                                    },
5381                                                                    1 => {
5382                                                                        0 => {Core::FullMultiply64},
5383                                                                        1 => {}
5384                                                                    }
5385                                                                },
5386                                                                1 => {}
5387                                                            },
5388                                                            1 => {}
5389                                                        }
5390                                                    }
5391                                                },
5392                                                1 => {
5393                                                    0 => {},
5394                                                    1 => {
5395                                                        0 => {
5396                                                            0 => {},
5397                                                            1 => {Core::Multiply8}
5398                                                        },
5399                                                        1 => {
5400                                                            0 => {
5401                                                                0 => {
5402                                                                    0 => {
5403                                                                        0 => {Core::Multiply16},
5404                                                                        1 => {Core::Multiply32}
5405                                                                    },
5406                                                                    1 => {
5407                                                                        0 => {Core::Multiply64},
5408                                                                        1 => {}
5409                                                                    }
5410                                                                },
5411                                                                1 => {}
5412                                                            },
5413                                                            1 => {}
5414                                                        }
5415                                                    }
5416                                                }
5417                                            },
5418                                            1 => {
5419                                                0 => {
5420                                                    0 => {},
5421                                                    1 => {
5422                                                        0 => {
5423                                                            0 => {},
5424                                                            1 => {Core::IsZero8}
5425                                                        },
5426                                                        1 => {
5427                                                            0 => {
5428                                                                0 => {
5429                                                                    0 => {
5430                                                                        0 => {Core::IsZero16},
5431                                                                        1 => {Core::IsZero32}
5432                                                                    },
5433                                                                    1 => {
5434                                                                        0 => {Core::IsZero64},
5435                                                                        1 => {}
5436                                                                    }
5437                                                                },
5438                                                                1 => {}
5439                                                            },
5440                                                            1 => {}
5441                                                        }
5442                                                    }
5443                                                },
5444                                                1 => {
5445                                                    0 => {},
5446                                                    1 => {
5447                                                        0 => {
5448                                                            0 => {},
5449                                                            1 => {Core::IsOne8}
5450                                                        },
5451                                                        1 => {
5452                                                            0 => {
5453                                                                0 => {
5454                                                                    0 => {
5455                                                                        0 => {Core::IsOne16},
5456                                                                        1 => {Core::IsOne32}
5457                                                                    },
5458                                                                    1 => {
5459                                                                        0 => {Core::IsOne64},
5460                                                                        1 => {}
5461                                                                    }
5462                                                                },
5463                                                                1 => {}
5464                                                            },
5465                                                            1 => {}
5466                                                        }
5467                                                    }
5468                                                }
5469                                            }
5470                                        }
5471                                    }
5472                                },
5473                                1 => {
5474                                    0 => {
5475                                        0 => {
5476                                            0 => {
5477                                                0 => {
5478                                                    0 => {
5479                                                        0 => {
5480                                                            0 => {
5481                                                                0 => {
5482                                                                    0 => {},
5483                                                                    1 => {
5484                                                                        0 => {
5485                                                                            0 => {},
5486                                                                            1 => {Core::Le8}
5487                                                                        },
5488                                                                        1 => {
5489                                                                            0 => {
5490                                                                                0 => {
5491                                                                                    0 => {
5492                                                                                        0 => {Core::Le16},
5493                                                                                        1 => {Core::Le32}
5494                                                                                    },
5495                                                                                    1 => {
5496                                                                                        0 => {Core::Le64},
5497                                                                                        1 => {}
5498                                                                                    }
5499                                                                                },
5500                                                                                1 => {}
5501                                                                            },
5502                                                                            1 => {}
5503                                                                        }
5504                                                                    }
5505                                                                },
5506                                                                1 => {
5507                                                                    0 => {},
5508                                                                    1 => {
5509                                                                        0 => {
5510                                                                            0 => {},
5511                                                                            1 => {Core::Lt8}
5512                                                                        },
5513                                                                        1 => {
5514                                                                            0 => {
5515                                                                                0 => {
5516                                                                                    0 => {
5517                                                                                        0 => {Core::Lt16},
5518                                                                                        1 => {Core::Lt32}
5519                                                                                    },
5520                                                                                    1 => {
5521                                                                                        0 => {Core::Lt64},
5522                                                                                        1 => {}
5523                                                                                    }
5524                                                                                },
5525                                                                                1 => {}
5526                                                                            },
5527                                                                            1 => {}
5528                                                                        }
5529                                                                    }
5530                                                                }
5531                                                            },
5532                                                            1 => {
5533                                                                0 => {
5534                                                                    0 => {},
5535                                                                    1 => {
5536                                                                        0 => {
5537                                                                            0 => {},
5538                                                                            1 => {Core::Min8}
5539                                                                        },
5540                                                                        1 => {
5541                                                                            0 => {
5542                                                                                0 => {
5543                                                                                    0 => {
5544                                                                                        0 => {Core::Min16},
5545                                                                                        1 => {Core::Min32}
5546                                                                                    },
5547                                                                                    1 => {
5548                                                                                        0 => {Core::Min64},
5549                                                                                        1 => {}
5550                                                                                    }
5551                                                                                },
5552                                                                                1 => {}
5553                                                                            },
5554                                                                            1 => {}
5555                                                                        }
5556                                                                    }
5557                                                                },
5558                                                                1 => {
5559                                                                    0 => {},
5560                                                                    1 => {
5561                                                                        0 => {
5562                                                                            0 => {},
5563                                                                            1 => {Core::Max8}
5564                                                                        },
5565                                                                        1 => {
5566                                                                            0 => {
5567                                                                                0 => {
5568                                                                                    0 => {
5569                                                                                        0 => {Core::Max16},
5570                                                                                        1 => {Core::Max32}
5571                                                                                    },
5572                                                                                    1 => {
5573                                                                                        0 => {Core::Max64},
5574                                                                                        1 => {}
5575                                                                                    }
5576                                                                                },
5577                                                                                1 => {}
5578                                                                            },
5579                                                                            1 => {}
5580                                                                        }
5581                                                                    }
5582                                                                }
5583                                                            }
5584                                                        },
5585                                                        1 => {
5586                                                            0 => {
5587                                                                0 => {
5588                                                                    0 => {},
5589                                                                    1 => {
5590                                                                        0 => {
5591                                                                            0 => {},
5592                                                                            1 => {Core::Median8}
5593                                                                        },
5594                                                                        1 => {
5595                                                                            0 => {
5596                                                                                0 => {
5597                                                                                    0 => {
5598                                                                                        0 => {Core::Median16},
5599                                                                                        1 => {Core::Median32}
5600                                                                                    },
5601                                                                                    1 => {
5602                                                                                        0 => {Core::Median64},
5603                                                                                        1 => {}
5604                                                                                    }
5605                                                                                },
5606                                                                                1 => {}
5607                                                                            },
5608                                                                            1 => {}
5609                                                                        }
5610                                                                    }
5611                                                                },
5612                                                                1 => {
5613                                                                    0 => {},
5614                                                                    1 => {
5615                                                                        0 => {},
5616                                                                        1 => {
5617                                                                            0 => {
5618                                                                                0 => {
5619                                                                                    0 => {},
5620                                                                                    1 => {
5621                                                                                        0 => {Core::DivMod128_64},
5622                                                                                        1 => {}
5623                                                                                    }
5624                                                                                },
5625                                                                                1 => {}
5626                                                                            },
5627                                                                            1 => {}
5628                                                                        }
5629                                                                    }
5630                                                                }
5631                                                            },
5632                                                            1 => {
5633                                                                0 => {
5634                                                                    0 => {},
5635                                                                    1 => {
5636                                                                        0 => {
5637                                                                            0 => {},
5638                                                                            1 => {Core::DivMod8}
5639                                                                        },
5640                                                                        1 => {
5641                                                                            0 => {
5642                                                                                0 => {
5643                                                                                    0 => {
5644                                                                                        0 => {Core::DivMod16},
5645                                                                                        1 => {Core::DivMod32}
5646                                                                                    },
5647                                                                                    1 => {
5648                                                                                        0 => {Core::DivMod64},
5649                                                                                        1 => {}
5650                                                                                    }
5651                                                                                },
5652                                                                                1 => {}
5653                                                                            },
5654                                                                            1 => {}
5655                                                                        }
5656                                                                    }
5657                                                                },
5658                                                                1 => {
5659                                                                    0 => {},
5660                                                                    1 => {
5661                                                                        0 => {
5662                                                                            0 => {},
5663                                                                            1 => {Core::Divide8}
5664                                                                        },
5665                                                                        1 => {
5666                                                                            0 => {
5667                                                                                0 => {
5668                                                                                    0 => {
5669                                                                                        0 => {Core::Divide16},
5670                                                                                        1 => {Core::Divide32}
5671                                                                                    },
5672                                                                                    1 => {
5673                                                                                        0 => {Core::Divide64},
5674                                                                                        1 => {}
5675                                                                                    }
5676                                                                                },
5677                                                                                1 => {}
5678                                                                            },
5679                                                                            1 => {}
5680                                                                        }
5681                                                                    }
5682                                                                }
5683                                                            }
5684                                                        }
5685                                                    },
5686                                                    1 => {
5687                                                        0 => {
5688                                                            0 => {
5689                                                                0 => {
5690                                                                    0 => {},
5691                                                                    1 => {
5692                                                                        0 => {
5693                                                                            0 => {},
5694                                                                            1 => {Core::Modulo8}
5695                                                                        },
5696                                                                        1 => {
5697                                                                            0 => {
5698                                                                                0 => {
5699                                                                                    0 => {
5700                                                                                        0 => {Core::Modulo16},
5701                                                                                        1 => {Core::Modulo32}
5702                                                                                    },
5703                                                                                    1 => {
5704                                                                                        0 => {Core::Modulo64},
5705                                                                                        1 => {}
5706                                                                                    }
5707                                                                                },
5708                                                                                1 => {}
5709                                                                            },
5710                                                                            1 => {}
5711                                                                        }
5712                                                                    }
5713                                                                },
5714                                                                1 => {
5715                                                                    0 => {},
5716                                                                    1 => {
5717                                                                        0 => {
5718                                                                            0 => {},
5719                                                                            1 => {Core::Divides8}
5720                                                                        },
5721                                                                        1 => {
5722                                                                            0 => {
5723                                                                                0 => {
5724                                                                                    0 => {
5725                                                                                        0 => {Core::Divides16},
5726                                                                                        1 => {Core::Divides32}
5727                                                                                    },
5728                                                                                    1 => {
5729                                                                                        0 => {Core::Divides64},
5730                                                                                        1 => {}
5731                                                                                    }
5732                                                                                },
5733                                                                                1 => {}
5734                                                                            },
5735                                                                            1 => {}
5736                                                                        }
5737                                                                    }
5738                                                                }
5739                                                            },
5740                                                            1 => {}
5741                                                        },
5742                                                        1 => {}
5743                                                    }
5744                                                },
5745                                                1 => {}
5746                                            },
5747                                            1 => {}
5748                                        },
5749                                        1 => {}
5750                                    },
5751                                    1 => {}
5752                                }
5753                            }
5754                        }
5755                    },
5756                    1 => {
5757                        0 => {
5758                            0 => {Core::Sha256Block},
5759                            1 => {
5760                                0 => {
5761                                    0 => {Core::Sha256Iv},
5762                                    1 => {
5763                                        0 => {Core::Sha256Ctx8Add1},
5764                                        1 => {
5765                                            0 => {
5766                                                0 => {Core::Sha256Ctx8Add2},
5767                                                1 => {Core::Sha256Ctx8Add4}
5768                                            },
5769                                            1 => {
5770                                                0 => {
5771                                                    0 => {
5772                                                        0 => {
5773                                                            0 => {Core::Sha256Ctx8Add8},
5774                                                            1 => {Core::Sha256Ctx8Add16}
5775                                                        },
5776                                                        1 => {
5777                                                            0 => {Core::Sha256Ctx8Add32},
5778                                                            1 => {Core::Sha256Ctx8Add64}
5779                                                        }
5780                                                    },
5781                                                    1 => {
5782                                                        0 => {
5783                                                            0 => {
5784                                                                0 => {Core::Sha256Ctx8Add128},
5785                                                                1 => {Core::Sha256Ctx8Add256}
5786                                                            },
5787                                                            1 => {
5788                                                                0 => {Core::Sha256Ctx8Add512},
5789                                                                1 => {}
5790                                                            }
5791                                                        },
5792                                                        1 => {}
5793                                                    }
5794                                                },
5795                                                1 => {}
5796                                            }
5797                                        }
5798                                    }
5799                                },
5800                                1 => {
5801                                    0 => {
5802                                        0 => {
5803                                            0 => {
5804                                                0 => {Core::Sha256Ctx8AddBuffer511},
5805                                                1 => {Core::Sha256Ctx8Finalize}
5806                                            },
5807                                            1 => {
5808                                                0 => {Core::Sha256Ctx8Init},
5809                                                1 => {}
5810                                            }
5811                                        },
5812                                        1 => {}
5813                                    },
5814                                    1 => {}
5815                                }
5816                            }
5817                        },
5818                        1 => {}
5819                    }
5820                },
5821                1 => {
5822                    0 => {
5823                        0 => {
5824                            0 => {
5825                                0 => {
5826                                    0 => {
5827                                        0 => {Core::PointVerify1},
5828                                        1 => {}
5829                                    },
5830                                    1 => {
5831                                        0 => {
5832                                            0 => {Core::Decompress},
5833                                            1 => {
5834                                                0 => {Core::LinearVerify1},
5835                                                1 => {}
5836                                            }
5837                                        },
5838                                        1 => {
5839                                            0 => {
5840                                                0 => {
5841                                                    0 => {
5842                                                        0 => {
5843                                                            0 => {Core::LinearCombination1},
5844                                                            1 => {}
5845                                                        },
5846                                                        1 => {Core::Scale}
5847                                                    },
5848                                                    1 => {
5849                                                        0 => {Core::Generate},
5850                                                        1 => {Core::GejInfinity}
5851                                                    }
5852                                                },
5853                                                1 => {
5854                                                    0 => {
5855                                                        0 => {
5856                                                            0 => {Core::GejNormalize},
5857                                                            1 => {Core::GejNegate}
5858                                                        },
5859                                                        1 => {
5860                                                            0 => {Core::GeNegate},
5861                                                            1 => {Core::GejDouble}
5862                                                        }
5863                                                    },
5864                                                    1 => {
5865                                                        0 => {
5866                                                            0 => {Core::GejAdd},
5867                                                            1 => {Core::GejGeAddEx}
5868                                                        },
5869                                                        1 => {
5870                                                            0 => {Core::GejGeAdd},
5871                                                            1 => {Core::GejRescale}
5872                                                        }
5873                                                    }
5874                                                }
5875                                            },
5876                                            1 => {
5877                                                0 => {
5878                                                    0 => {
5879                                                        0 => {
5880                                                            0 => {
5881                                                                0 => {
5882                                                                    0 => {
5883                                                                        0 => {
5884                                                                            0 => {Core::GejIsInfinity},
5885                                                                            1 => {Core::GejEquiv}
5886                                                                        },
5887                                                                        1 => {
5888                                                                            0 => {Core::GejGeEquiv},
5889                                                                            1 => {Core::GejXEquiv}
5890                                                                        }
5891                                                                    },
5892                                                                    1 => {
5893                                                                        0 => {
5894                                                                            0 => {Core::GejYIsOdd},
5895                                                                            1 => {Core::GejIsOnCurve}
5896                                                                        },
5897                                                                        1 => {
5898                                                                            0 => {Core::GeIsOnCurve},
5899                                                                            1 => {Core::ScalarNormalize}
5900                                                                        }
5901                                                                    }
5902                                                                },
5903                                                                1 => {
5904                                                                    0 => {
5905                                                                        0 => {
5906                                                                            0 => {Core::ScalarNegate},
5907                                                                            1 => {Core::ScalarAdd}
5908                                                                        },
5909                                                                        1 => {
5910                                                                            0 => {Core::ScalarSquare},
5911                                                                            1 => {Core::ScalarMultiply}
5912                                                                        }
5913                                                                    },
5914                                                                    1 => {
5915                                                                        0 => {
5916                                                                            0 => {Core::ScalarMultiplyLambda},
5917                                                                            1 => {Core::ScalarInvert}
5918                                                                        },
5919                                                                        1 => {
5920                                                                            0 => {Core::ScalarIsZero},
5921                                                                            1 => {}
5922                                                                        }
5923                                                                    }
5924                                                                }
5925                                                            },
5926                                                            1 => {
5927                                                                0 => {
5928                                                                    0 => {
5929                                                                        0 => {
5930                                                                            0 => {},
5931                                                                            1 => {
5932                                                                                0 => {},
5933                                                                                1 => {Core::FeNormalize}
5934                                                                            }
5935                                                                        },
5936                                                                        1 => {
5937                                                                            0 => {
5938                                                                                0 => {Core::FeNegate},
5939                                                                                1 => {Core::FeAdd}
5940                                                                            },
5941                                                                            1 => {
5942                                                                                0 => {Core::FeSquare},
5943                                                                                1 => {Core::FeMultiply}
5944                                                                            }
5945                                                                        }
5946                                                                    },
5947                                                                    1 => {
5948                                                                        0 => {
5949                                                                            0 => {
5950                                                                                0 => {Core::FeMultiplyBeta},
5951                                                                                1 => {Core::FeInvert}
5952                                                                            },
5953                                                                            1 => {
5954                                                                                0 => {Core::FeSquareRoot},
5955                                                                                1 => {Core::FeIsZero}
5956                                                                            }
5957                                                                        },
5958                                                                        1 => {
5959                                                                            0 => {
5960                                                                                0 => {Core::FeIsOdd},
5961                                                                                1 => {}
5962                                                                            },
5963                                                                            1 => {
5964                                                                                0 => {Core::HashToCurve},
5965                                                                                1 => {Core::Swu}
5966                                                                            }
5967                                                                        }
5968                                                                    }
5969                                                                },
5970                                                                1 => {}
5971                                                            }
5972                                                        },
5973                                                        1 => {}
5974                                                    },
5975                                                    1 => {}
5976                                                },
5977                                                1 => {}
5978                                            }
5979                                        }
5980                                    }
5981                                },
5982                                1 => {
5983                                    0 => {Core::CheckSigVerify},
5984                                    1 => {
5985                                        0 => {
5986                                            0 => {Core::Bip0340Verify},
5987                                            1 => {}
5988                                        },
5989                                        1 => {}
5990                                    }
5991                                }
5992                            },
5993                            1 => {
5994                                0 => {},
5995                                1 => {
5996                                    0 => {Core::ParseLock},
5997                                    1 => {
5998                                        0 => {
5999                                            0 => {Core::ParseSequence},
6000                                            1 => {Core::TapdataInit}
6001                                        },
6002                                        1 => {}
6003                                    }
6004                                }
6005                            }
6006                        },
6007                        1 => {}
6008                    },
6009                    1 => {}
6010                }
6011            }
6012        })
6013    }
6014
6015    fn cost(&self) -> Cost {
6016        match self {
6017            Core::Add16 => Cost::from_milliweight(80),
6018            Core::Add32 => Cost::from_milliweight(92),
6019            Core::Add64 => Cost::from_milliweight(105),
6020            Core::Add8 => Cost::from_milliweight(97),
6021            Core::All16 => Cost::from_milliweight(60),
6022            Core::All32 => Cost::from_milliweight(62),
6023            Core::All64 => Cost::from_milliweight(63),
6024            Core::All8 => Cost::from_milliweight(50),
6025            Core::And1 => Cost::from_milliweight(77),
6026            Core::And16 => Cost::from_milliweight(83),
6027            Core::And32 => Cost::from_milliweight(77),
6028            Core::And64 => Cost::from_milliweight(78),
6029            Core::And8 => Cost::from_milliweight(98),
6030            Core::Bip0340Verify => Cost::from_milliweight(49421),
6031            Core::Ch1 => Cost::from_milliweight(50),
6032            Core::Ch16 => Cost::from_milliweight(83),
6033            Core::Ch32 => Cost::from_milliweight(69),
6034            Core::Ch64 => Cost::from_milliweight(78),
6035            Core::Ch8 => Cost::from_milliweight(86),
6036            Core::CheckSigVerify => Cost::from_milliweight(50000),
6037            Core::Complement1 => Cost::from_milliweight(51),
6038            Core::Complement16 => Cost::from_milliweight(86),
6039            Core::Complement32 => Cost::from_milliweight(58),
6040            Core::Complement64 => Cost::from_milliweight(64),
6041            Core::Complement8 => Cost::from_milliweight(62),
6042            Core::Decompress => Cost::from_milliweight(10495),
6043            Core::Decrement16 => Cost::from_milliweight(58),
6044            Core::Decrement32 => Cost::from_milliweight(57),
6045            Core::Decrement64 => Cost::from_milliweight(79),
6046            Core::Decrement8 => Cost::from_milliweight(77),
6047            Core::DivMod128_64 => Cost::from_milliweight(169),
6048            Core::DivMod16 => Cost::from_milliweight(92),
6049            Core::DivMod32 => Cost::from_milliweight(90),
6050            Core::DivMod64 => Cost::from_milliweight(82),
6051            Core::DivMod8 => Cost::from_milliweight(91),
6052            Core::Divide16 => Cost::from_milliweight(85),
6053            Core::Divide32 => Cost::from_milliweight(82),
6054            Core::Divide64 => Cost::from_milliweight(81),
6055            Core::Divide8 => Cost::from_milliweight(85),
6056            Core::Divides16 => Cost::from_milliweight(84),
6057            Core::Divides32 => Cost::from_milliweight(80),
6058            Core::Divides64 => Cost::from_milliweight(67),
6059            Core::Divides8 => Cost::from_milliweight(73),
6060            Core::Eq1 => Cost::from_milliweight(63),
6061            Core::Eq16 => Cost::from_milliweight(68),
6062            Core::Eq256 => Cost::from_milliweight(188),
6063            Core::Eq32 => Cost::from_milliweight(74),
6064            Core::Eq64 => Cost::from_milliweight(82),
6065            Core::Eq8 => Cost::from_milliweight(76),
6066            Core::FeAdd => Cost::from_milliweight(777),
6067            Core::FeInvert => Cost::from_milliweight(3237),
6068            Core::FeIsOdd => Cost::from_milliweight(313),
6069            Core::FeIsZero => Cost::from_milliweight(277),
6070            Core::FeMultiply => Cost::from_milliweight(813),
6071            Core::FeMultiplyBeta => Cost::from_milliweight(607),
6072            Core::FeNegate => Cost::from_milliweight(541),
6073            Core::FeNormalize => Cost::from_milliweight(656),
6074            Core::FeSquare => Cost::from_milliweight(570),
6075            Core::FeSquareRoot => Cost::from_milliweight(10162),
6076            Core::FullAdd16 => Cost::from_milliweight(106),
6077            Core::FullAdd32 => Cost::from_milliweight(96),
6078            Core::FullAdd64 => Cost::from_milliweight(93),
6079            Core::FullAdd8 => Cost::from_milliweight(131),
6080            Core::FullDecrement16 => Cost::from_milliweight(60),
6081            Core::FullDecrement32 => Cost::from_milliweight(71),
6082            Core::FullDecrement64 => Cost::from_milliweight(71),
6083            Core::FullDecrement8 => Cost::from_milliweight(68),
6084            Core::FullIncrement16 => Cost::from_milliweight(70),
6085            Core::FullIncrement32 => Cost::from_milliweight(57),
6086            Core::FullIncrement64 => Cost::from_milliweight(68),
6087            Core::FullIncrement8 => Cost::from_milliweight(73),
6088            Core::FullLeftShift16_1 => Cost::from_milliweight(76),
6089            Core::FullLeftShift16_2 => Cost::from_milliweight(59),
6090            Core::FullLeftShift16_4 => Cost::from_milliweight(68),
6091            Core::FullLeftShift16_8 => Cost::from_milliweight(68),
6092            Core::FullLeftShift32_1 => Cost::from_milliweight(58),
6093            Core::FullLeftShift32_16 => Cost::from_milliweight(52),
6094            Core::FullLeftShift32_2 => Cost::from_milliweight(73),
6095            Core::FullLeftShift32_4 => Cost::from_milliweight(59),
6096            Core::FullLeftShift32_8 => Cost::from_milliweight(60),
6097            Core::FullLeftShift64_1 => Cost::from_milliweight(74),
6098            Core::FullLeftShift64_16 => Cost::from_milliweight(69),
6099            Core::FullLeftShift64_2 => Cost::from_milliweight(70),
6100            Core::FullLeftShift64_32 => Cost::from_milliweight(73),
6101            Core::FullLeftShift64_4 => Cost::from_milliweight(66),
6102            Core::FullLeftShift64_8 => Cost::from_milliweight(68),
6103            Core::FullLeftShift8_1 => Cost::from_milliweight(60),
6104            Core::FullLeftShift8_2 => Cost::from_milliweight(64),
6105            Core::FullLeftShift8_4 => Cost::from_milliweight(72),
6106            Core::FullMultiply16 => Cost::from_milliweight(99),
6107            Core::FullMultiply32 => Cost::from_milliweight(87),
6108            Core::FullMultiply64 => Cost::from_milliweight(103),
6109            Core::FullMultiply8 => Cost::from_milliweight(95),
6110            Core::FullRightShift16_1 => Cost::from_milliweight(55),
6111            Core::FullRightShift16_2 => Cost::from_milliweight(60),
6112            Core::FullRightShift16_4 => Cost::from_milliweight(64),
6113            Core::FullRightShift16_8 => Cost::from_milliweight(55),
6114            Core::FullRightShift32_1 => Cost::from_milliweight(49),
6115            Core::FullRightShift32_16 => Cost::from_milliweight(48),
6116            Core::FullRightShift32_2 => Cost::from_milliweight(66),
6117            Core::FullRightShift32_4 => Cost::from_milliweight(49),
6118            Core::FullRightShift32_8 => Cost::from_milliweight(66),
6119            Core::FullRightShift64_1 => Cost::from_milliweight(60),
6120            Core::FullRightShift64_16 => Cost::from_milliweight(73),
6121            Core::FullRightShift64_2 => Cost::from_milliweight(76),
6122            Core::FullRightShift64_32 => Cost::from_milliweight(73),
6123            Core::FullRightShift64_4 => Cost::from_milliweight(56),
6124            Core::FullRightShift64_8 => Cost::from_milliweight(68),
6125            Core::FullRightShift8_1 => Cost::from_milliweight(59),
6126            Core::FullRightShift8_2 => Cost::from_milliweight(49),
6127            Core::FullRightShift8_4 => Cost::from_milliweight(51),
6128            Core::FullSubtract16 => Cost::from_milliweight(99),
6129            Core::FullSubtract32 => Cost::from_milliweight(92),
6130            Core::FullSubtract64 => Cost::from_milliweight(109),
6131            Core::FullSubtract8 => Cost::from_milliweight(106),
6132            Core::GeIsOnCurve => Cost::from_milliweight(688),
6133            Core::GeNegate => Cost::from_milliweight(1071),
6134            Core::GejAdd => Cost::from_milliweight(3000),
6135            Core::GejDouble => Cost::from_milliweight(1862),
6136            Core::GejEquiv => Cost::from_milliweight(2376),
6137            Core::GejGeAdd => Cost::from_milliweight(2609),
6138            Core::GejGeAddEx => Cost::from_milliweight(2860),
6139            Core::GejGeEquiv => Cost::from_milliweight(1823),
6140            Core::GejInfinity => Cost::from_milliweight(765),
6141            Core::GejIsInfinity => Cost::from_milliweight(701),
6142            Core::GejIsOnCurve => Cost::from_milliweight(1039),
6143            Core::GejNegate => Cost::from_milliweight(1549),
6144            Core::GejNormalize => Cost::from_milliweight(4184),
6145            Core::GejRescale => Cost::from_milliweight(2011),
6146            Core::GejXEquiv => Cost::from_milliweight(1103),
6147            Core::GejYIsOdd => Cost::from_milliweight(3702),
6148            Core::Generate => Cost::from_milliweight(49851),
6149            Core::HashToCurve => Cost::from_milliweight(69844),
6150            Core::High1 => Cost::from_milliweight(42),
6151            Core::High16 => Cost::from_milliweight(50),
6152            Core::High32 => Cost::from_milliweight(64),
6153            Core::High64 => Cost::from_milliweight(52),
6154            Core::High8 => Cost::from_milliweight(59),
6155            Core::Increment16 => Cost::from_milliweight(56),
6156            Core::Increment32 => Cost::from_milliweight(73),
6157            Core::Increment64 => Cost::from_milliweight(64),
6158            Core::Increment8 => Cost::from_milliweight(69),
6159            Core::IsOne16 => Cost::from_milliweight(64),
6160            Core::IsOne32 => Cost::from_milliweight(64),
6161            Core::IsOne64 => Cost::from_milliweight(66),
6162            Core::IsOne8 => Cost::from_milliweight(47),
6163            Core::IsZero16 => Cost::from_milliweight(52),
6164            Core::IsZero32 => Cost::from_milliweight(58),
6165            Core::IsZero64 => Cost::from_milliweight(68),
6166            Core::IsZero8 => Cost::from_milliweight(59),
6167            Core::Le16 => Cost::from_milliweight(83),
6168            Core::Le32 => Cost::from_milliweight(99),
6169            Core::Le64 => Cost::from_milliweight(79),
6170            Core::Le8 => Cost::from_milliweight(93),
6171            Core::LeftExtend16_32 => Cost::from_milliweight(72),
6172            Core::LeftExtend16_64 => Cost::from_milliweight(69),
6173            Core::LeftExtend1_16 => Cost::from_milliweight(50),
6174            Core::LeftExtend1_32 => Cost::from_milliweight(48),
6175            Core::LeftExtend1_64 => Cost::from_milliweight(49),
6176            Core::LeftExtend1_8 => Cost::from_milliweight(46),
6177            Core::LeftExtend32_64 => Cost::from_milliweight(69),
6178            Core::LeftExtend8_16 => Cost::from_milliweight(58),
6179            Core::LeftExtend8_32 => Cost::from_milliweight(86),
6180            Core::LeftExtend8_64 => Cost::from_milliweight(98),
6181            Core::LeftPadHigh16_32 => Cost::from_milliweight(71),
6182            Core::LeftPadHigh16_64 => Cost::from_milliweight(82),
6183            Core::LeftPadHigh1_16 => Cost::from_milliweight(106),
6184            Core::LeftPadHigh1_32 => Cost::from_milliweight(220),
6185            Core::LeftPadHigh1_64 => Cost::from_milliweight(302),
6186            Core::LeftPadHigh1_8 => Cost::from_milliweight(73),
6187            Core::LeftPadHigh32_64 => Cost::from_milliweight(69),
6188            Core::LeftPadHigh8_16 => Cost::from_milliweight(65),
6189            Core::LeftPadHigh8_32 => Cost::from_milliweight(105),
6190            Core::LeftPadHigh8_64 => Cost::from_milliweight(113),
6191            Core::LeftPadLow16_32 => Cost::from_milliweight(65),
6192            Core::LeftPadLow16_64 => Cost::from_milliweight(68),
6193            Core::LeftPadLow1_16 => Cost::from_milliweight(59),
6194            Core::LeftPadLow1_32 => Cost::from_milliweight(47),
6195            Core::LeftPadLow1_64 => Cost::from_milliweight(46),
6196            Core::LeftPadLow1_8 => Cost::from_milliweight(48),
6197            Core::LeftPadLow32_64 => Cost::from_milliweight(62),
6198            Core::LeftPadLow8_16 => Cost::from_milliweight(56),
6199            Core::LeftPadLow8_32 => Cost::from_milliweight(75),
6200            Core::LeftPadLow8_64 => Cost::from_milliweight(116),
6201            Core::LeftRotate16 => Cost::from_milliweight(88),
6202            Core::LeftRotate32 => Cost::from_milliweight(62),
6203            Core::LeftRotate64 => Cost::from_milliweight(68),
6204            Core::LeftRotate8 => Cost::from_milliweight(66),
6205            Core::LeftShift16 => Cost::from_milliweight(109),
6206            Core::LeftShift32 => Cost::from_milliweight(79),
6207            Core::LeftShift64 => Cost::from_milliweight(70),
6208            Core::LeftShift8 => Cost::from_milliweight(72),
6209            Core::LeftShiftWith16 => Cost::from_milliweight(72),
6210            Core::LeftShiftWith32 => Cost::from_milliweight(87),
6211            Core::LeftShiftWith64 => Cost::from_milliweight(97),
6212            Core::LeftShiftWith8 => Cost::from_milliweight(104),
6213            Core::Leftmost16_1 => Cost::from_milliweight(68),
6214            Core::Leftmost16_2 => Cost::from_milliweight(58),
6215            Core::Leftmost16_4 => Cost::from_milliweight(51),
6216            Core::Leftmost16_8 => Cost::from_milliweight(62),
6217            Core::Leftmost32_1 => Cost::from_milliweight(53),
6218            Core::Leftmost32_16 => Cost::from_milliweight(63),
6219            Core::Leftmost32_2 => Cost::from_milliweight(62),
6220            Core::Leftmost32_4 => Cost::from_milliweight(61),
6221            Core::Leftmost32_8 => Cost::from_milliweight(60),
6222            Core::Leftmost64_1 => Cost::from_milliweight(65),
6223            Core::Leftmost64_16 => Cost::from_milliweight(62),
6224            Core::Leftmost64_2 => Cost::from_milliweight(61),
6225            Core::Leftmost64_32 => Cost::from_milliweight(77),
6226            Core::Leftmost64_4 => Cost::from_milliweight(80),
6227            Core::Leftmost64_8 => Cost::from_milliweight(54),
6228            Core::Leftmost8_1 => Cost::from_milliweight(54),
6229            Core::Leftmost8_2 => Cost::from_milliweight(71),
6230            Core::Leftmost8_4 => Cost::from_milliweight(65),
6231            Core::LinearCombination1 => Cost::from_milliweight(85743),
6232            Core::LinearVerify1 => Cost::from_milliweight(43579),
6233            Core::Low1 => Cost::from_milliweight(40),
6234            Core::Low16 => Cost::from_milliweight(60),
6235            Core::Low32 => Cost::from_milliweight(52),
6236            Core::Low64 => Cost::from_milliweight(50),
6237            Core::Low8 => Cost::from_milliweight(45),
6238            Core::Lt16 => Cost::from_milliweight(83),
6239            Core::Lt32 => Cost::from_milliweight(89),
6240            Core::Lt64 => Cost::from_milliweight(71),
6241            Core::Lt8 => Cost::from_milliweight(86),
6242            Core::Maj1 => Cost::from_milliweight(54),
6243            Core::Maj16 => Cost::from_milliweight(85),
6244            Core::Maj32 => Cost::from_milliweight(73),
6245            Core::Maj64 => Cost::from_milliweight(79),
6246            Core::Maj8 => Cost::from_milliweight(64),
6247            Core::Max16 => Cost::from_milliweight(80),
6248            Core::Max32 => Cost::from_milliweight(70),
6249            Core::Max64 => Cost::from_milliweight(75),
6250            Core::Max8 => Cost::from_milliweight(79),
6251            Core::Median16 => Cost::from_milliweight(80),
6252            Core::Median32 => Cost::from_milliweight(77),
6253            Core::Median64 => Cost::from_milliweight(89),
6254            Core::Median8 => Cost::from_milliweight(77),
6255            Core::Min16 => Cost::from_milliweight(83),
6256            Core::Min32 => Cost::from_milliweight(96),
6257            Core::Min64 => Cost::from_milliweight(82),
6258            Core::Min8 => Cost::from_milliweight(78),
6259            Core::Modulo16 => Cost::from_milliweight(85),
6260            Core::Modulo32 => Cost::from_milliweight(81),
6261            Core::Modulo64 => Cost::from_milliweight(71),
6262            Core::Modulo8 => Cost::from_milliweight(85),
6263            Core::Multiply16 => Cost::from_milliweight(79),
6264            Core::Multiply32 => Cost::from_milliweight(78),
6265            Core::Multiply64 => Cost::from_milliweight(72),
6266            Core::Multiply8 => Cost::from_milliweight(79),
6267            Core::Negate16 => Cost::from_milliweight(69),
6268            Core::Negate32 => Cost::from_milliweight(56),
6269            Core::Negate64 => Cost::from_milliweight(56),
6270            Core::Negate8 => Cost::from_milliweight(69),
6271            Core::One16 => Cost::from_milliweight(45),
6272            Core::One32 => Cost::from_milliweight(45),
6273            Core::One64 => Cost::from_milliweight(45),
6274            Core::One8 => Cost::from_milliweight(46),
6275            Core::Or1 => Cost::from_milliweight(56),
6276            Core::Or16 => Cost::from_milliweight(78),
6277            Core::Or32 => Cost::from_milliweight(80),
6278            Core::Or64 => Cost::from_milliweight(71),
6279            Core::Or8 => Cost::from_milliweight(81),
6280            Core::ParseLock => Cost::from_milliweight(82),
6281            Core::ParseSequence => Cost::from_milliweight(93),
6282            Core::PointVerify1 => Cost::from_milliweight(41394),
6283            Core::RightExtend16_32 => Cost::from_milliweight(73),
6284            Core::RightExtend16_64 => Cost::from_milliweight(70),
6285            Core::RightExtend32_64 => Cost::from_milliweight(62),
6286            Core::RightExtend8_16 => Cost::from_milliweight(63),
6287            Core::RightExtend8_32 => Cost::from_milliweight(69),
6288            Core::RightExtend8_64 => Cost::from_milliweight(141),
6289            Core::RightPadHigh16_32 => Cost::from_milliweight(66),
6290            Core::RightPadHigh16_64 => Cost::from_milliweight(81),
6291            Core::RightPadHigh1_16 => Cost::from_milliweight(114),
6292            Core::RightPadHigh1_32 => Cost::from_milliweight(220),
6293            Core::RightPadHigh1_64 => Cost::from_milliweight(313),
6294            Core::RightPadHigh1_8 => Cost::from_milliweight(73),
6295            Core::RightPadHigh32_64 => Cost::from_milliweight(62),
6296            Core::RightPadHigh8_16 => Cost::from_milliweight(75),
6297            Core::RightPadHigh8_32 => Cost::from_milliweight(81),
6298            Core::RightPadHigh8_64 => Cost::from_milliweight(118),
6299            Core::RightPadLow16_32 => Cost::from_milliweight(62),
6300            Core::RightPadLow16_64 => Cost::from_milliweight(98),
6301            Core::RightPadLow1_16 => Cost::from_milliweight(60),
6302            Core::RightPadLow1_32 => Cost::from_milliweight(47),
6303            Core::RightPadLow1_64 => Cost::from_milliweight(57),
6304            Core::RightPadLow1_8 => Cost::from_milliweight(48),
6305            Core::RightPadLow32_64 => Cost::from_milliweight(74),
6306            Core::RightPadLow8_16 => Cost::from_milliweight(62),
6307            Core::RightPadLow8_32 => Cost::from_milliweight(69),
6308            Core::RightPadLow8_64 => Cost::from_milliweight(98),
6309            Core::RightRotate16 => Cost::from_milliweight(67),
6310            Core::RightRotate32 => Cost::from_milliweight(77),
6311            Core::RightRotate64 => Cost::from_milliweight(64),
6312            Core::RightRotate8 => Cost::from_milliweight(72),
6313            Core::RightShift16 => Cost::from_milliweight(60),
6314            Core::RightShift32 => Cost::from_milliweight(69),
6315            Core::RightShift64 => Cost::from_milliweight(68),
6316            Core::RightShift8 => Cost::from_milliweight(63),
6317            Core::RightShiftWith16 => Cost::from_milliweight(83),
6318            Core::RightShiftWith32 => Cost::from_milliweight(78),
6319            Core::RightShiftWith64 => Cost::from_milliweight(72),
6320            Core::RightShiftWith8 => Cost::from_milliweight(71),
6321            Core::Rightmost16_1 => Cost::from_milliweight(70),
6322            Core::Rightmost16_2 => Cost::from_milliweight(65),
6323            Core::Rightmost16_4 => Cost::from_milliweight(72),
6324            Core::Rightmost16_8 => Cost::from_milliweight(69),
6325            Core::Rightmost32_1 => Cost::from_milliweight(70),
6326            Core::Rightmost32_16 => Cost::from_milliweight(56),
6327            Core::Rightmost32_2 => Cost::from_milliweight(74),
6328            Core::Rightmost32_4 => Cost::from_milliweight(57),
6329            Core::Rightmost32_8 => Cost::from_milliweight(55),
6330            Core::Rightmost64_1 => Cost::from_milliweight(61),
6331            Core::Rightmost64_16 => Cost::from_milliweight(63),
6332            Core::Rightmost64_2 => Cost::from_milliweight(65),
6333            Core::Rightmost64_32 => Cost::from_milliweight(64),
6334            Core::Rightmost64_4 => Cost::from_milliweight(57),
6335            Core::Rightmost64_8 => Cost::from_milliweight(49),
6336            Core::Rightmost8_1 => Cost::from_milliweight(65),
6337            Core::Rightmost8_2 => Cost::from_milliweight(63),
6338            Core::Rightmost8_4 => Cost::from_milliweight(56),
6339            Core::ScalarAdd => Cost::from_milliweight(778),
6340            Core::ScalarInvert => Cost::from_milliweight(3178),
6341            Core::ScalarIsZero => Cost::from_milliweight(271),
6342            Core::ScalarMultiply => Cost::from_milliweight(793),
6343            Core::ScalarMultiplyLambda => Cost::from_milliweight(567),
6344            Core::ScalarNegate => Cost::from_milliweight(516),
6345            Core::ScalarNormalize => Cost::from_milliweight(500),
6346            Core::ScalarSquare => Cost::from_milliweight(571),
6347            Core::Scale => Cost::from_milliweight(73548),
6348            Core::Sha256Block => Cost::from_milliweight(765),
6349            Core::Sha256Ctx8Add1 => Cost::from_milliweight(664),
6350            Core::Sha256Ctx8Add128 => Cost::from_milliweight(1778),
6351            Core::Sha256Ctx8Add16 => Cost::from_milliweight(781),
6352            Core::Sha256Ctx8Add2 => Cost::from_milliweight(674),
6353            Core::Sha256Ctx8Add256 => Cost::from_milliweight(2894),
6354            Core::Sha256Ctx8Add32 => Cost::from_milliweight(928),
6355            Core::Sha256Ctx8Add4 => Cost::from_milliweight(656),
6356            Core::Sha256Ctx8Add512 => Cost::from_milliweight(5161),
6357            Core::Sha256Ctx8Add64 => Cost::from_milliweight(1220),
6358            Core::Sha256Ctx8Add8 => Cost::from_milliweight(694),
6359            Core::Sha256Ctx8AddBuffer511 => Cost::from_milliweight(5137),
6360            Core::Sha256Ctx8Finalize => Cost::from_milliweight(833),
6361            Core::Sha256Ctx8Init => Cost::from_milliweight(123),
6362            Core::Sha256Iv => Cost::from_milliweight(92),
6363            Core::Some1 => Cost::from_milliweight(60),
6364            Core::Some16 => Cost::from_milliweight(52),
6365            Core::Some32 => Cost::from_milliweight(49),
6366            Core::Some64 => Cost::from_milliweight(62),
6367            Core::Some8 => Cost::from_milliweight(57),
6368            Core::Subtract16 => Cost::from_milliweight(93),
6369            Core::Subtract32 => Cost::from_milliweight(87),
6370            Core::Subtract64 => Cost::from_milliweight(125),
6371            Core::Subtract8 => Cost::from_milliweight(96),
6372            Core::Swu => Cost::from_milliweight(32780),
6373            Core::TapdataInit => Cost::from_milliweight(1233),
6374            Core::Verify => Cost::from_milliweight(44),
6375            Core::Xor1 => Cost::from_milliweight(60),
6376            Core::Xor16 => Cost::from_milliweight(73),
6377            Core::Xor32 => Cost::from_milliweight(77),
6378            Core::Xor64 => Cost::from_milliweight(68),
6379            Core::Xor8 => Cost::from_milliweight(80),
6380            Core::XorXor1 => Cost::from_milliweight(50),
6381            Core::XorXor16 => Cost::from_milliweight(82),
6382            Core::XorXor32 => Cost::from_milliweight(82),
6383            Core::XorXor64 => Cost::from_milliweight(80),
6384            Core::XorXor8 => Cost::from_milliweight(86),
6385        }
6386    }
6387
6388    fn parse(s: &str) -> Result<Self, crate::Error> where Self: Sized {
6389        str::FromStr::from_str(s)
6390    }
6391}
6392
6393impl fmt::Display for Core {
6394    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
6395        match self {
6396            Core::Add16 => f.write_str("add_16"),
6397            Core::Add32 => f.write_str("add_32"),
6398            Core::Add64 => f.write_str("add_64"),
6399            Core::Add8 => f.write_str("add_8"),
6400            Core::All16 => f.write_str("all_16"),
6401            Core::All32 => f.write_str("all_32"),
6402            Core::All64 => f.write_str("all_64"),
6403            Core::All8 => f.write_str("all_8"),
6404            Core::And1 => f.write_str("and_1"),
6405            Core::And16 => f.write_str("and_16"),
6406            Core::And32 => f.write_str("and_32"),
6407            Core::And64 => f.write_str("and_64"),
6408            Core::And8 => f.write_str("and_8"),
6409            Core::Bip0340Verify => f.write_str("bip_0340_verify"),
6410            Core::Ch1 => f.write_str("ch_1"),
6411            Core::Ch16 => f.write_str("ch_16"),
6412            Core::Ch32 => f.write_str("ch_32"),
6413            Core::Ch64 => f.write_str("ch_64"),
6414            Core::Ch8 => f.write_str("ch_8"),
6415            Core::CheckSigVerify => f.write_str("check_sig_verify"),
6416            Core::Complement1 => f.write_str("complement_1"),
6417            Core::Complement16 => f.write_str("complement_16"),
6418            Core::Complement32 => f.write_str("complement_32"),
6419            Core::Complement64 => f.write_str("complement_64"),
6420            Core::Complement8 => f.write_str("complement_8"),
6421            Core::Decompress => f.write_str("decompress"),
6422            Core::Decrement16 => f.write_str("decrement_16"),
6423            Core::Decrement32 => f.write_str("decrement_32"),
6424            Core::Decrement64 => f.write_str("decrement_64"),
6425            Core::Decrement8 => f.write_str("decrement_8"),
6426            Core::DivMod128_64 => f.write_str("div_mod_128_64"),
6427            Core::DivMod16 => f.write_str("div_mod_16"),
6428            Core::DivMod32 => f.write_str("div_mod_32"),
6429            Core::DivMod64 => f.write_str("div_mod_64"),
6430            Core::DivMod8 => f.write_str("div_mod_8"),
6431            Core::Divide16 => f.write_str("divide_16"),
6432            Core::Divide32 => f.write_str("divide_32"),
6433            Core::Divide64 => f.write_str("divide_64"),
6434            Core::Divide8 => f.write_str("divide_8"),
6435            Core::Divides16 => f.write_str("divides_16"),
6436            Core::Divides32 => f.write_str("divides_32"),
6437            Core::Divides64 => f.write_str("divides_64"),
6438            Core::Divides8 => f.write_str("divides_8"),
6439            Core::Eq1 => f.write_str("eq_1"),
6440            Core::Eq16 => f.write_str("eq_16"),
6441            Core::Eq256 => f.write_str("eq_256"),
6442            Core::Eq32 => f.write_str("eq_32"),
6443            Core::Eq64 => f.write_str("eq_64"),
6444            Core::Eq8 => f.write_str("eq_8"),
6445            Core::FeAdd => f.write_str("fe_add"),
6446            Core::FeInvert => f.write_str("fe_invert"),
6447            Core::FeIsOdd => f.write_str("fe_is_odd"),
6448            Core::FeIsZero => f.write_str("fe_is_zero"),
6449            Core::FeMultiply => f.write_str("fe_multiply"),
6450            Core::FeMultiplyBeta => f.write_str("fe_multiply_beta"),
6451            Core::FeNegate => f.write_str("fe_negate"),
6452            Core::FeNormalize => f.write_str("fe_normalize"),
6453            Core::FeSquare => f.write_str("fe_square"),
6454            Core::FeSquareRoot => f.write_str("fe_square_root"),
6455            Core::FullAdd16 => f.write_str("full_add_16"),
6456            Core::FullAdd32 => f.write_str("full_add_32"),
6457            Core::FullAdd64 => f.write_str("full_add_64"),
6458            Core::FullAdd8 => f.write_str("full_add_8"),
6459            Core::FullDecrement16 => f.write_str("full_decrement_16"),
6460            Core::FullDecrement32 => f.write_str("full_decrement_32"),
6461            Core::FullDecrement64 => f.write_str("full_decrement_64"),
6462            Core::FullDecrement8 => f.write_str("full_decrement_8"),
6463            Core::FullIncrement16 => f.write_str("full_increment_16"),
6464            Core::FullIncrement32 => f.write_str("full_increment_32"),
6465            Core::FullIncrement64 => f.write_str("full_increment_64"),
6466            Core::FullIncrement8 => f.write_str("full_increment_8"),
6467            Core::FullLeftShift16_1 => f.write_str("full_left_shift_16_1"),
6468            Core::FullLeftShift16_2 => f.write_str("full_left_shift_16_2"),
6469            Core::FullLeftShift16_4 => f.write_str("full_left_shift_16_4"),
6470            Core::FullLeftShift16_8 => f.write_str("full_left_shift_16_8"),
6471            Core::FullLeftShift32_1 => f.write_str("full_left_shift_32_1"),
6472            Core::FullLeftShift32_16 => f.write_str("full_left_shift_32_16"),
6473            Core::FullLeftShift32_2 => f.write_str("full_left_shift_32_2"),
6474            Core::FullLeftShift32_4 => f.write_str("full_left_shift_32_4"),
6475            Core::FullLeftShift32_8 => f.write_str("full_left_shift_32_8"),
6476            Core::FullLeftShift64_1 => f.write_str("full_left_shift_64_1"),
6477            Core::FullLeftShift64_16 => f.write_str("full_left_shift_64_16"),
6478            Core::FullLeftShift64_2 => f.write_str("full_left_shift_64_2"),
6479            Core::FullLeftShift64_32 => f.write_str("full_left_shift_64_32"),
6480            Core::FullLeftShift64_4 => f.write_str("full_left_shift_64_4"),
6481            Core::FullLeftShift64_8 => f.write_str("full_left_shift_64_8"),
6482            Core::FullLeftShift8_1 => f.write_str("full_left_shift_8_1"),
6483            Core::FullLeftShift8_2 => f.write_str("full_left_shift_8_2"),
6484            Core::FullLeftShift8_4 => f.write_str("full_left_shift_8_4"),
6485            Core::FullMultiply16 => f.write_str("full_multiply_16"),
6486            Core::FullMultiply32 => f.write_str("full_multiply_32"),
6487            Core::FullMultiply64 => f.write_str("full_multiply_64"),
6488            Core::FullMultiply8 => f.write_str("full_multiply_8"),
6489            Core::FullRightShift16_1 => f.write_str("full_right_shift_16_1"),
6490            Core::FullRightShift16_2 => f.write_str("full_right_shift_16_2"),
6491            Core::FullRightShift16_4 => f.write_str("full_right_shift_16_4"),
6492            Core::FullRightShift16_8 => f.write_str("full_right_shift_16_8"),
6493            Core::FullRightShift32_1 => f.write_str("full_right_shift_32_1"),
6494            Core::FullRightShift32_16 => f.write_str("full_right_shift_32_16"),
6495            Core::FullRightShift32_2 => f.write_str("full_right_shift_32_2"),
6496            Core::FullRightShift32_4 => f.write_str("full_right_shift_32_4"),
6497            Core::FullRightShift32_8 => f.write_str("full_right_shift_32_8"),
6498            Core::FullRightShift64_1 => f.write_str("full_right_shift_64_1"),
6499            Core::FullRightShift64_16 => f.write_str("full_right_shift_64_16"),
6500            Core::FullRightShift64_2 => f.write_str("full_right_shift_64_2"),
6501            Core::FullRightShift64_32 => f.write_str("full_right_shift_64_32"),
6502            Core::FullRightShift64_4 => f.write_str("full_right_shift_64_4"),
6503            Core::FullRightShift64_8 => f.write_str("full_right_shift_64_8"),
6504            Core::FullRightShift8_1 => f.write_str("full_right_shift_8_1"),
6505            Core::FullRightShift8_2 => f.write_str("full_right_shift_8_2"),
6506            Core::FullRightShift8_4 => f.write_str("full_right_shift_8_4"),
6507            Core::FullSubtract16 => f.write_str("full_subtract_16"),
6508            Core::FullSubtract32 => f.write_str("full_subtract_32"),
6509            Core::FullSubtract64 => f.write_str("full_subtract_64"),
6510            Core::FullSubtract8 => f.write_str("full_subtract_8"),
6511            Core::GeIsOnCurve => f.write_str("ge_is_on_curve"),
6512            Core::GeNegate => f.write_str("ge_negate"),
6513            Core::GejAdd => f.write_str("gej_add"),
6514            Core::GejDouble => f.write_str("gej_double"),
6515            Core::GejEquiv => f.write_str("gej_equiv"),
6516            Core::GejGeAdd => f.write_str("gej_ge_add"),
6517            Core::GejGeAddEx => f.write_str("gej_ge_add_ex"),
6518            Core::GejGeEquiv => f.write_str("gej_ge_equiv"),
6519            Core::GejInfinity => f.write_str("gej_infinity"),
6520            Core::GejIsInfinity => f.write_str("gej_is_infinity"),
6521            Core::GejIsOnCurve => f.write_str("gej_is_on_curve"),
6522            Core::GejNegate => f.write_str("gej_negate"),
6523            Core::GejNormalize => f.write_str("gej_normalize"),
6524            Core::GejRescale => f.write_str("gej_rescale"),
6525            Core::GejXEquiv => f.write_str("gej_x_equiv"),
6526            Core::GejYIsOdd => f.write_str("gej_y_is_odd"),
6527            Core::Generate => f.write_str("generate"),
6528            Core::HashToCurve => f.write_str("hash_to_curve"),
6529            Core::High1 => f.write_str("high_1"),
6530            Core::High16 => f.write_str("high_16"),
6531            Core::High32 => f.write_str("high_32"),
6532            Core::High64 => f.write_str("high_64"),
6533            Core::High8 => f.write_str("high_8"),
6534            Core::Increment16 => f.write_str("increment_16"),
6535            Core::Increment32 => f.write_str("increment_32"),
6536            Core::Increment64 => f.write_str("increment_64"),
6537            Core::Increment8 => f.write_str("increment_8"),
6538            Core::IsOne16 => f.write_str("is_one_16"),
6539            Core::IsOne32 => f.write_str("is_one_32"),
6540            Core::IsOne64 => f.write_str("is_one_64"),
6541            Core::IsOne8 => f.write_str("is_one_8"),
6542            Core::IsZero16 => f.write_str("is_zero_16"),
6543            Core::IsZero32 => f.write_str("is_zero_32"),
6544            Core::IsZero64 => f.write_str("is_zero_64"),
6545            Core::IsZero8 => f.write_str("is_zero_8"),
6546            Core::Le16 => f.write_str("le_16"),
6547            Core::Le32 => f.write_str("le_32"),
6548            Core::Le64 => f.write_str("le_64"),
6549            Core::Le8 => f.write_str("le_8"),
6550            Core::LeftExtend16_32 => f.write_str("left_extend_16_32"),
6551            Core::LeftExtend16_64 => f.write_str("left_extend_16_64"),
6552            Core::LeftExtend1_16 => f.write_str("left_extend_1_16"),
6553            Core::LeftExtend1_32 => f.write_str("left_extend_1_32"),
6554            Core::LeftExtend1_64 => f.write_str("left_extend_1_64"),
6555            Core::LeftExtend1_8 => f.write_str("left_extend_1_8"),
6556            Core::LeftExtend32_64 => f.write_str("left_extend_32_64"),
6557            Core::LeftExtend8_16 => f.write_str("left_extend_8_16"),
6558            Core::LeftExtend8_32 => f.write_str("left_extend_8_32"),
6559            Core::LeftExtend8_64 => f.write_str("left_extend_8_64"),
6560            Core::LeftPadHigh16_32 => f.write_str("left_pad_high_16_32"),
6561            Core::LeftPadHigh16_64 => f.write_str("left_pad_high_16_64"),
6562            Core::LeftPadHigh1_16 => f.write_str("left_pad_high_1_16"),
6563            Core::LeftPadHigh1_32 => f.write_str("left_pad_high_1_32"),
6564            Core::LeftPadHigh1_64 => f.write_str("left_pad_high_1_64"),
6565            Core::LeftPadHigh1_8 => f.write_str("left_pad_high_1_8"),
6566            Core::LeftPadHigh32_64 => f.write_str("left_pad_high_32_64"),
6567            Core::LeftPadHigh8_16 => f.write_str("left_pad_high_8_16"),
6568            Core::LeftPadHigh8_32 => f.write_str("left_pad_high_8_32"),
6569            Core::LeftPadHigh8_64 => f.write_str("left_pad_high_8_64"),
6570            Core::LeftPadLow16_32 => f.write_str("left_pad_low_16_32"),
6571            Core::LeftPadLow16_64 => f.write_str("left_pad_low_16_64"),
6572            Core::LeftPadLow1_16 => f.write_str("left_pad_low_1_16"),
6573            Core::LeftPadLow1_32 => f.write_str("left_pad_low_1_32"),
6574            Core::LeftPadLow1_64 => f.write_str("left_pad_low_1_64"),
6575            Core::LeftPadLow1_8 => f.write_str("left_pad_low_1_8"),
6576            Core::LeftPadLow32_64 => f.write_str("left_pad_low_32_64"),
6577            Core::LeftPadLow8_16 => f.write_str("left_pad_low_8_16"),
6578            Core::LeftPadLow8_32 => f.write_str("left_pad_low_8_32"),
6579            Core::LeftPadLow8_64 => f.write_str("left_pad_low_8_64"),
6580            Core::LeftRotate16 => f.write_str("left_rotate_16"),
6581            Core::LeftRotate32 => f.write_str("left_rotate_32"),
6582            Core::LeftRotate64 => f.write_str("left_rotate_64"),
6583            Core::LeftRotate8 => f.write_str("left_rotate_8"),
6584            Core::LeftShift16 => f.write_str("left_shift_16"),
6585            Core::LeftShift32 => f.write_str("left_shift_32"),
6586            Core::LeftShift64 => f.write_str("left_shift_64"),
6587            Core::LeftShift8 => f.write_str("left_shift_8"),
6588            Core::LeftShiftWith16 => f.write_str("left_shift_with_16"),
6589            Core::LeftShiftWith32 => f.write_str("left_shift_with_32"),
6590            Core::LeftShiftWith64 => f.write_str("left_shift_with_64"),
6591            Core::LeftShiftWith8 => f.write_str("left_shift_with_8"),
6592            Core::Leftmost16_1 => f.write_str("leftmost_16_1"),
6593            Core::Leftmost16_2 => f.write_str("leftmost_16_2"),
6594            Core::Leftmost16_4 => f.write_str("leftmost_16_4"),
6595            Core::Leftmost16_8 => f.write_str("leftmost_16_8"),
6596            Core::Leftmost32_1 => f.write_str("leftmost_32_1"),
6597            Core::Leftmost32_16 => f.write_str("leftmost_32_16"),
6598            Core::Leftmost32_2 => f.write_str("leftmost_32_2"),
6599            Core::Leftmost32_4 => f.write_str("leftmost_32_4"),
6600            Core::Leftmost32_8 => f.write_str("leftmost_32_8"),
6601            Core::Leftmost64_1 => f.write_str("leftmost_64_1"),
6602            Core::Leftmost64_16 => f.write_str("leftmost_64_16"),
6603            Core::Leftmost64_2 => f.write_str("leftmost_64_2"),
6604            Core::Leftmost64_32 => f.write_str("leftmost_64_32"),
6605            Core::Leftmost64_4 => f.write_str("leftmost_64_4"),
6606            Core::Leftmost64_8 => f.write_str("leftmost_64_8"),
6607            Core::Leftmost8_1 => f.write_str("leftmost_8_1"),
6608            Core::Leftmost8_2 => f.write_str("leftmost_8_2"),
6609            Core::Leftmost8_4 => f.write_str("leftmost_8_4"),
6610            Core::LinearCombination1 => f.write_str("linear_combination_1"),
6611            Core::LinearVerify1 => f.write_str("linear_verify_1"),
6612            Core::Low1 => f.write_str("low_1"),
6613            Core::Low16 => f.write_str("low_16"),
6614            Core::Low32 => f.write_str("low_32"),
6615            Core::Low64 => f.write_str("low_64"),
6616            Core::Low8 => f.write_str("low_8"),
6617            Core::Lt16 => f.write_str("lt_16"),
6618            Core::Lt32 => f.write_str("lt_32"),
6619            Core::Lt64 => f.write_str("lt_64"),
6620            Core::Lt8 => f.write_str("lt_8"),
6621            Core::Maj1 => f.write_str("maj_1"),
6622            Core::Maj16 => f.write_str("maj_16"),
6623            Core::Maj32 => f.write_str("maj_32"),
6624            Core::Maj64 => f.write_str("maj_64"),
6625            Core::Maj8 => f.write_str("maj_8"),
6626            Core::Max16 => f.write_str("max_16"),
6627            Core::Max32 => f.write_str("max_32"),
6628            Core::Max64 => f.write_str("max_64"),
6629            Core::Max8 => f.write_str("max_8"),
6630            Core::Median16 => f.write_str("median_16"),
6631            Core::Median32 => f.write_str("median_32"),
6632            Core::Median64 => f.write_str("median_64"),
6633            Core::Median8 => f.write_str("median_8"),
6634            Core::Min16 => f.write_str("min_16"),
6635            Core::Min32 => f.write_str("min_32"),
6636            Core::Min64 => f.write_str("min_64"),
6637            Core::Min8 => f.write_str("min_8"),
6638            Core::Modulo16 => f.write_str("modulo_16"),
6639            Core::Modulo32 => f.write_str("modulo_32"),
6640            Core::Modulo64 => f.write_str("modulo_64"),
6641            Core::Modulo8 => f.write_str("modulo_8"),
6642            Core::Multiply16 => f.write_str("multiply_16"),
6643            Core::Multiply32 => f.write_str("multiply_32"),
6644            Core::Multiply64 => f.write_str("multiply_64"),
6645            Core::Multiply8 => f.write_str("multiply_8"),
6646            Core::Negate16 => f.write_str("negate_16"),
6647            Core::Negate32 => f.write_str("negate_32"),
6648            Core::Negate64 => f.write_str("negate_64"),
6649            Core::Negate8 => f.write_str("negate_8"),
6650            Core::One16 => f.write_str("one_16"),
6651            Core::One32 => f.write_str("one_32"),
6652            Core::One64 => f.write_str("one_64"),
6653            Core::One8 => f.write_str("one_8"),
6654            Core::Or1 => f.write_str("or_1"),
6655            Core::Or16 => f.write_str("or_16"),
6656            Core::Or32 => f.write_str("or_32"),
6657            Core::Or64 => f.write_str("or_64"),
6658            Core::Or8 => f.write_str("or_8"),
6659            Core::ParseLock => f.write_str("parse_lock"),
6660            Core::ParseSequence => f.write_str("parse_sequence"),
6661            Core::PointVerify1 => f.write_str("point_verify_1"),
6662            Core::RightExtend16_32 => f.write_str("right_extend_16_32"),
6663            Core::RightExtend16_64 => f.write_str("right_extend_16_64"),
6664            Core::RightExtend32_64 => f.write_str("right_extend_32_64"),
6665            Core::RightExtend8_16 => f.write_str("right_extend_8_16"),
6666            Core::RightExtend8_32 => f.write_str("right_extend_8_32"),
6667            Core::RightExtend8_64 => f.write_str("right_extend_8_64"),
6668            Core::RightPadHigh16_32 => f.write_str("right_pad_high_16_32"),
6669            Core::RightPadHigh16_64 => f.write_str("right_pad_high_16_64"),
6670            Core::RightPadHigh1_16 => f.write_str("right_pad_high_1_16"),
6671            Core::RightPadHigh1_32 => f.write_str("right_pad_high_1_32"),
6672            Core::RightPadHigh1_64 => f.write_str("right_pad_high_1_64"),
6673            Core::RightPadHigh1_8 => f.write_str("right_pad_high_1_8"),
6674            Core::RightPadHigh32_64 => f.write_str("right_pad_high_32_64"),
6675            Core::RightPadHigh8_16 => f.write_str("right_pad_high_8_16"),
6676            Core::RightPadHigh8_32 => f.write_str("right_pad_high_8_32"),
6677            Core::RightPadHigh8_64 => f.write_str("right_pad_high_8_64"),
6678            Core::RightPadLow16_32 => f.write_str("right_pad_low_16_32"),
6679            Core::RightPadLow16_64 => f.write_str("right_pad_low_16_64"),
6680            Core::RightPadLow1_16 => f.write_str("right_pad_low_1_16"),
6681            Core::RightPadLow1_32 => f.write_str("right_pad_low_1_32"),
6682            Core::RightPadLow1_64 => f.write_str("right_pad_low_1_64"),
6683            Core::RightPadLow1_8 => f.write_str("right_pad_low_1_8"),
6684            Core::RightPadLow32_64 => f.write_str("right_pad_low_32_64"),
6685            Core::RightPadLow8_16 => f.write_str("right_pad_low_8_16"),
6686            Core::RightPadLow8_32 => f.write_str("right_pad_low_8_32"),
6687            Core::RightPadLow8_64 => f.write_str("right_pad_low_8_64"),
6688            Core::RightRotate16 => f.write_str("right_rotate_16"),
6689            Core::RightRotate32 => f.write_str("right_rotate_32"),
6690            Core::RightRotate64 => f.write_str("right_rotate_64"),
6691            Core::RightRotate8 => f.write_str("right_rotate_8"),
6692            Core::RightShift16 => f.write_str("right_shift_16"),
6693            Core::RightShift32 => f.write_str("right_shift_32"),
6694            Core::RightShift64 => f.write_str("right_shift_64"),
6695            Core::RightShift8 => f.write_str("right_shift_8"),
6696            Core::RightShiftWith16 => f.write_str("right_shift_with_16"),
6697            Core::RightShiftWith32 => f.write_str("right_shift_with_32"),
6698            Core::RightShiftWith64 => f.write_str("right_shift_with_64"),
6699            Core::RightShiftWith8 => f.write_str("right_shift_with_8"),
6700            Core::Rightmost16_1 => f.write_str("rightmost_16_1"),
6701            Core::Rightmost16_2 => f.write_str("rightmost_16_2"),
6702            Core::Rightmost16_4 => f.write_str("rightmost_16_4"),
6703            Core::Rightmost16_8 => f.write_str("rightmost_16_8"),
6704            Core::Rightmost32_1 => f.write_str("rightmost_32_1"),
6705            Core::Rightmost32_16 => f.write_str("rightmost_32_16"),
6706            Core::Rightmost32_2 => f.write_str("rightmost_32_2"),
6707            Core::Rightmost32_4 => f.write_str("rightmost_32_4"),
6708            Core::Rightmost32_8 => f.write_str("rightmost_32_8"),
6709            Core::Rightmost64_1 => f.write_str("rightmost_64_1"),
6710            Core::Rightmost64_16 => f.write_str("rightmost_64_16"),
6711            Core::Rightmost64_2 => f.write_str("rightmost_64_2"),
6712            Core::Rightmost64_32 => f.write_str("rightmost_64_32"),
6713            Core::Rightmost64_4 => f.write_str("rightmost_64_4"),
6714            Core::Rightmost64_8 => f.write_str("rightmost_64_8"),
6715            Core::Rightmost8_1 => f.write_str("rightmost_8_1"),
6716            Core::Rightmost8_2 => f.write_str("rightmost_8_2"),
6717            Core::Rightmost8_4 => f.write_str("rightmost_8_4"),
6718            Core::ScalarAdd => f.write_str("scalar_add"),
6719            Core::ScalarInvert => f.write_str("scalar_invert"),
6720            Core::ScalarIsZero => f.write_str("scalar_is_zero"),
6721            Core::ScalarMultiply => f.write_str("scalar_multiply"),
6722            Core::ScalarMultiplyLambda => f.write_str("scalar_multiply_lambda"),
6723            Core::ScalarNegate => f.write_str("scalar_negate"),
6724            Core::ScalarNormalize => f.write_str("scalar_normalize"),
6725            Core::ScalarSquare => f.write_str("scalar_square"),
6726            Core::Scale => f.write_str("scale"),
6727            Core::Sha256Block => f.write_str("sha_256_block"),
6728            Core::Sha256Ctx8Add1 => f.write_str("sha_256_ctx_8_add_1"),
6729            Core::Sha256Ctx8Add128 => f.write_str("sha_256_ctx_8_add_128"),
6730            Core::Sha256Ctx8Add16 => f.write_str("sha_256_ctx_8_add_16"),
6731            Core::Sha256Ctx8Add2 => f.write_str("sha_256_ctx_8_add_2"),
6732            Core::Sha256Ctx8Add256 => f.write_str("sha_256_ctx_8_add_256"),
6733            Core::Sha256Ctx8Add32 => f.write_str("sha_256_ctx_8_add_32"),
6734            Core::Sha256Ctx8Add4 => f.write_str("sha_256_ctx_8_add_4"),
6735            Core::Sha256Ctx8Add512 => f.write_str("sha_256_ctx_8_add_512"),
6736            Core::Sha256Ctx8Add64 => f.write_str("sha_256_ctx_8_add_64"),
6737            Core::Sha256Ctx8Add8 => f.write_str("sha_256_ctx_8_add_8"),
6738            Core::Sha256Ctx8AddBuffer511 => f.write_str("sha_256_ctx_8_add_buffer_511"),
6739            Core::Sha256Ctx8Finalize => f.write_str("sha_256_ctx_8_finalize"),
6740            Core::Sha256Ctx8Init => f.write_str("sha_256_ctx_8_init"),
6741            Core::Sha256Iv => f.write_str("sha_256_iv"),
6742            Core::Some1 => f.write_str("some_1"),
6743            Core::Some16 => f.write_str("some_16"),
6744            Core::Some32 => f.write_str("some_32"),
6745            Core::Some64 => f.write_str("some_64"),
6746            Core::Some8 => f.write_str("some_8"),
6747            Core::Subtract16 => f.write_str("subtract_16"),
6748            Core::Subtract32 => f.write_str("subtract_32"),
6749            Core::Subtract64 => f.write_str("subtract_64"),
6750            Core::Subtract8 => f.write_str("subtract_8"),
6751            Core::Swu => f.write_str("swu"),
6752            Core::TapdataInit => f.write_str("tapdata_init"),
6753            Core::Verify => f.write_str("verify"),
6754            Core::Xor1 => f.write_str("xor_1"),
6755            Core::Xor16 => f.write_str("xor_16"),
6756            Core::Xor32 => f.write_str("xor_32"),
6757            Core::Xor64 => f.write_str("xor_64"),
6758            Core::Xor8 => f.write_str("xor_8"),
6759            Core::XorXor1 => f.write_str("xor_xor_1"),
6760            Core::XorXor16 => f.write_str("xor_xor_16"),
6761            Core::XorXor32 => f.write_str("xor_xor_32"),
6762            Core::XorXor64 => f.write_str("xor_xor_64"),
6763            Core::XorXor8 => f.write_str("xor_xor_8"),
6764        }
6765    }
6766}
6767
6768impl str::FromStr for Core {
6769    type Err = crate::Error;
6770
6771    fn from_str(s: &str) -> Result<Self, Self::Err> {
6772        match s {
6773            "add_16" => Ok(Core::Add16),
6774            "add_32" => Ok(Core::Add32),
6775            "add_64" => Ok(Core::Add64),
6776            "add_8" => Ok(Core::Add8),
6777            "all_16" => Ok(Core::All16),
6778            "all_32" => Ok(Core::All32),
6779            "all_64" => Ok(Core::All64),
6780            "all_8" => Ok(Core::All8),
6781            "and_1" => Ok(Core::And1),
6782            "and_16" => Ok(Core::And16),
6783            "and_32" => Ok(Core::And32),
6784            "and_64" => Ok(Core::And64),
6785            "and_8" => Ok(Core::And8),
6786            "bip_0340_verify" => Ok(Core::Bip0340Verify),
6787            "ch_1" => Ok(Core::Ch1),
6788            "ch_16" => Ok(Core::Ch16),
6789            "ch_32" => Ok(Core::Ch32),
6790            "ch_64" => Ok(Core::Ch64),
6791            "ch_8" => Ok(Core::Ch8),
6792            "check_sig_verify" => Ok(Core::CheckSigVerify),
6793            "complement_1" => Ok(Core::Complement1),
6794            "complement_16" => Ok(Core::Complement16),
6795            "complement_32" => Ok(Core::Complement32),
6796            "complement_64" => Ok(Core::Complement64),
6797            "complement_8" => Ok(Core::Complement8),
6798            "decompress" => Ok(Core::Decompress),
6799            "decrement_16" => Ok(Core::Decrement16),
6800            "decrement_32" => Ok(Core::Decrement32),
6801            "decrement_64" => Ok(Core::Decrement64),
6802            "decrement_8" => Ok(Core::Decrement8),
6803            "div_mod_128_64" => Ok(Core::DivMod128_64),
6804            "div_mod_16" => Ok(Core::DivMod16),
6805            "div_mod_32" => Ok(Core::DivMod32),
6806            "div_mod_64" => Ok(Core::DivMod64),
6807            "div_mod_8" => Ok(Core::DivMod8),
6808            "divide_16" => Ok(Core::Divide16),
6809            "divide_32" => Ok(Core::Divide32),
6810            "divide_64" => Ok(Core::Divide64),
6811            "divide_8" => Ok(Core::Divide8),
6812            "divides_16" => Ok(Core::Divides16),
6813            "divides_32" => Ok(Core::Divides32),
6814            "divides_64" => Ok(Core::Divides64),
6815            "divides_8" => Ok(Core::Divides8),
6816            "eq_1" => Ok(Core::Eq1),
6817            "eq_16" => Ok(Core::Eq16),
6818            "eq_256" => Ok(Core::Eq256),
6819            "eq_32" => Ok(Core::Eq32),
6820            "eq_64" => Ok(Core::Eq64),
6821            "eq_8" => Ok(Core::Eq8),
6822            "fe_add" => Ok(Core::FeAdd),
6823            "fe_invert" => Ok(Core::FeInvert),
6824            "fe_is_odd" => Ok(Core::FeIsOdd),
6825            "fe_is_zero" => Ok(Core::FeIsZero),
6826            "fe_multiply" => Ok(Core::FeMultiply),
6827            "fe_multiply_beta" => Ok(Core::FeMultiplyBeta),
6828            "fe_negate" => Ok(Core::FeNegate),
6829            "fe_normalize" => Ok(Core::FeNormalize),
6830            "fe_square" => Ok(Core::FeSquare),
6831            "fe_square_root" => Ok(Core::FeSquareRoot),
6832            "full_add_16" => Ok(Core::FullAdd16),
6833            "full_add_32" => Ok(Core::FullAdd32),
6834            "full_add_64" => Ok(Core::FullAdd64),
6835            "full_add_8" => Ok(Core::FullAdd8),
6836            "full_decrement_16" => Ok(Core::FullDecrement16),
6837            "full_decrement_32" => Ok(Core::FullDecrement32),
6838            "full_decrement_64" => Ok(Core::FullDecrement64),
6839            "full_decrement_8" => Ok(Core::FullDecrement8),
6840            "full_increment_16" => Ok(Core::FullIncrement16),
6841            "full_increment_32" => Ok(Core::FullIncrement32),
6842            "full_increment_64" => Ok(Core::FullIncrement64),
6843            "full_increment_8" => Ok(Core::FullIncrement8),
6844            "full_left_shift_16_1" => Ok(Core::FullLeftShift16_1),
6845            "full_left_shift_16_2" => Ok(Core::FullLeftShift16_2),
6846            "full_left_shift_16_4" => Ok(Core::FullLeftShift16_4),
6847            "full_left_shift_16_8" => Ok(Core::FullLeftShift16_8),
6848            "full_left_shift_32_1" => Ok(Core::FullLeftShift32_1),
6849            "full_left_shift_32_16" => Ok(Core::FullLeftShift32_16),
6850            "full_left_shift_32_2" => Ok(Core::FullLeftShift32_2),
6851            "full_left_shift_32_4" => Ok(Core::FullLeftShift32_4),
6852            "full_left_shift_32_8" => Ok(Core::FullLeftShift32_8),
6853            "full_left_shift_64_1" => Ok(Core::FullLeftShift64_1),
6854            "full_left_shift_64_16" => Ok(Core::FullLeftShift64_16),
6855            "full_left_shift_64_2" => Ok(Core::FullLeftShift64_2),
6856            "full_left_shift_64_32" => Ok(Core::FullLeftShift64_32),
6857            "full_left_shift_64_4" => Ok(Core::FullLeftShift64_4),
6858            "full_left_shift_64_8" => Ok(Core::FullLeftShift64_8),
6859            "full_left_shift_8_1" => Ok(Core::FullLeftShift8_1),
6860            "full_left_shift_8_2" => Ok(Core::FullLeftShift8_2),
6861            "full_left_shift_8_4" => Ok(Core::FullLeftShift8_4),
6862            "full_multiply_16" => Ok(Core::FullMultiply16),
6863            "full_multiply_32" => Ok(Core::FullMultiply32),
6864            "full_multiply_64" => Ok(Core::FullMultiply64),
6865            "full_multiply_8" => Ok(Core::FullMultiply8),
6866            "full_right_shift_16_1" => Ok(Core::FullRightShift16_1),
6867            "full_right_shift_16_2" => Ok(Core::FullRightShift16_2),
6868            "full_right_shift_16_4" => Ok(Core::FullRightShift16_4),
6869            "full_right_shift_16_8" => Ok(Core::FullRightShift16_8),
6870            "full_right_shift_32_1" => Ok(Core::FullRightShift32_1),
6871            "full_right_shift_32_16" => Ok(Core::FullRightShift32_16),
6872            "full_right_shift_32_2" => Ok(Core::FullRightShift32_2),
6873            "full_right_shift_32_4" => Ok(Core::FullRightShift32_4),
6874            "full_right_shift_32_8" => Ok(Core::FullRightShift32_8),
6875            "full_right_shift_64_1" => Ok(Core::FullRightShift64_1),
6876            "full_right_shift_64_16" => Ok(Core::FullRightShift64_16),
6877            "full_right_shift_64_2" => Ok(Core::FullRightShift64_2),
6878            "full_right_shift_64_32" => Ok(Core::FullRightShift64_32),
6879            "full_right_shift_64_4" => Ok(Core::FullRightShift64_4),
6880            "full_right_shift_64_8" => Ok(Core::FullRightShift64_8),
6881            "full_right_shift_8_1" => Ok(Core::FullRightShift8_1),
6882            "full_right_shift_8_2" => Ok(Core::FullRightShift8_2),
6883            "full_right_shift_8_4" => Ok(Core::FullRightShift8_4),
6884            "full_subtract_16" => Ok(Core::FullSubtract16),
6885            "full_subtract_32" => Ok(Core::FullSubtract32),
6886            "full_subtract_64" => Ok(Core::FullSubtract64),
6887            "full_subtract_8" => Ok(Core::FullSubtract8),
6888            "ge_is_on_curve" => Ok(Core::GeIsOnCurve),
6889            "ge_negate" => Ok(Core::GeNegate),
6890            "gej_add" => Ok(Core::GejAdd),
6891            "gej_double" => Ok(Core::GejDouble),
6892            "gej_equiv" => Ok(Core::GejEquiv),
6893            "gej_ge_add" => Ok(Core::GejGeAdd),
6894            "gej_ge_add_ex" => Ok(Core::GejGeAddEx),
6895            "gej_ge_equiv" => Ok(Core::GejGeEquiv),
6896            "gej_infinity" => Ok(Core::GejInfinity),
6897            "gej_is_infinity" => Ok(Core::GejIsInfinity),
6898            "gej_is_on_curve" => Ok(Core::GejIsOnCurve),
6899            "gej_negate" => Ok(Core::GejNegate),
6900            "gej_normalize" => Ok(Core::GejNormalize),
6901            "gej_rescale" => Ok(Core::GejRescale),
6902            "gej_x_equiv" => Ok(Core::GejXEquiv),
6903            "gej_y_is_odd" => Ok(Core::GejYIsOdd),
6904            "generate" => Ok(Core::Generate),
6905            "hash_to_curve" => Ok(Core::HashToCurve),
6906            "high_1" => Ok(Core::High1),
6907            "high_16" => Ok(Core::High16),
6908            "high_32" => Ok(Core::High32),
6909            "high_64" => Ok(Core::High64),
6910            "high_8" => Ok(Core::High8),
6911            "increment_16" => Ok(Core::Increment16),
6912            "increment_32" => Ok(Core::Increment32),
6913            "increment_64" => Ok(Core::Increment64),
6914            "increment_8" => Ok(Core::Increment8),
6915            "is_one_16" => Ok(Core::IsOne16),
6916            "is_one_32" => Ok(Core::IsOne32),
6917            "is_one_64" => Ok(Core::IsOne64),
6918            "is_one_8" => Ok(Core::IsOne8),
6919            "is_zero_16" => Ok(Core::IsZero16),
6920            "is_zero_32" => Ok(Core::IsZero32),
6921            "is_zero_64" => Ok(Core::IsZero64),
6922            "is_zero_8" => Ok(Core::IsZero8),
6923            "le_16" => Ok(Core::Le16),
6924            "le_32" => Ok(Core::Le32),
6925            "le_64" => Ok(Core::Le64),
6926            "le_8" => Ok(Core::Le8),
6927            "left_extend_16_32" => Ok(Core::LeftExtend16_32),
6928            "left_extend_16_64" => Ok(Core::LeftExtend16_64),
6929            "left_extend_1_16" => Ok(Core::LeftExtend1_16),
6930            "left_extend_1_32" => Ok(Core::LeftExtend1_32),
6931            "left_extend_1_64" => Ok(Core::LeftExtend1_64),
6932            "left_extend_1_8" => Ok(Core::LeftExtend1_8),
6933            "left_extend_32_64" => Ok(Core::LeftExtend32_64),
6934            "left_extend_8_16" => Ok(Core::LeftExtend8_16),
6935            "left_extend_8_32" => Ok(Core::LeftExtend8_32),
6936            "left_extend_8_64" => Ok(Core::LeftExtend8_64),
6937            "left_pad_high_16_32" => Ok(Core::LeftPadHigh16_32),
6938            "left_pad_high_16_64" => Ok(Core::LeftPadHigh16_64),
6939            "left_pad_high_1_16" => Ok(Core::LeftPadHigh1_16),
6940            "left_pad_high_1_32" => Ok(Core::LeftPadHigh1_32),
6941            "left_pad_high_1_64" => Ok(Core::LeftPadHigh1_64),
6942            "left_pad_high_1_8" => Ok(Core::LeftPadHigh1_8),
6943            "left_pad_high_32_64" => Ok(Core::LeftPadHigh32_64),
6944            "left_pad_high_8_16" => Ok(Core::LeftPadHigh8_16),
6945            "left_pad_high_8_32" => Ok(Core::LeftPadHigh8_32),
6946            "left_pad_high_8_64" => Ok(Core::LeftPadHigh8_64),
6947            "left_pad_low_16_32" => Ok(Core::LeftPadLow16_32),
6948            "left_pad_low_16_64" => Ok(Core::LeftPadLow16_64),
6949            "left_pad_low_1_16" => Ok(Core::LeftPadLow1_16),
6950            "left_pad_low_1_32" => Ok(Core::LeftPadLow1_32),
6951            "left_pad_low_1_64" => Ok(Core::LeftPadLow1_64),
6952            "left_pad_low_1_8" => Ok(Core::LeftPadLow1_8),
6953            "left_pad_low_32_64" => Ok(Core::LeftPadLow32_64),
6954            "left_pad_low_8_16" => Ok(Core::LeftPadLow8_16),
6955            "left_pad_low_8_32" => Ok(Core::LeftPadLow8_32),
6956            "left_pad_low_8_64" => Ok(Core::LeftPadLow8_64),
6957            "left_rotate_16" => Ok(Core::LeftRotate16),
6958            "left_rotate_32" => Ok(Core::LeftRotate32),
6959            "left_rotate_64" => Ok(Core::LeftRotate64),
6960            "left_rotate_8" => Ok(Core::LeftRotate8),
6961            "left_shift_16" => Ok(Core::LeftShift16),
6962            "left_shift_32" => Ok(Core::LeftShift32),
6963            "left_shift_64" => Ok(Core::LeftShift64),
6964            "left_shift_8" => Ok(Core::LeftShift8),
6965            "left_shift_with_16" => Ok(Core::LeftShiftWith16),
6966            "left_shift_with_32" => Ok(Core::LeftShiftWith32),
6967            "left_shift_with_64" => Ok(Core::LeftShiftWith64),
6968            "left_shift_with_8" => Ok(Core::LeftShiftWith8),
6969            "leftmost_16_1" => Ok(Core::Leftmost16_1),
6970            "leftmost_16_2" => Ok(Core::Leftmost16_2),
6971            "leftmost_16_4" => Ok(Core::Leftmost16_4),
6972            "leftmost_16_8" => Ok(Core::Leftmost16_8),
6973            "leftmost_32_1" => Ok(Core::Leftmost32_1),
6974            "leftmost_32_16" => Ok(Core::Leftmost32_16),
6975            "leftmost_32_2" => Ok(Core::Leftmost32_2),
6976            "leftmost_32_4" => Ok(Core::Leftmost32_4),
6977            "leftmost_32_8" => Ok(Core::Leftmost32_8),
6978            "leftmost_64_1" => Ok(Core::Leftmost64_1),
6979            "leftmost_64_16" => Ok(Core::Leftmost64_16),
6980            "leftmost_64_2" => Ok(Core::Leftmost64_2),
6981            "leftmost_64_32" => Ok(Core::Leftmost64_32),
6982            "leftmost_64_4" => Ok(Core::Leftmost64_4),
6983            "leftmost_64_8" => Ok(Core::Leftmost64_8),
6984            "leftmost_8_1" => Ok(Core::Leftmost8_1),
6985            "leftmost_8_2" => Ok(Core::Leftmost8_2),
6986            "leftmost_8_4" => Ok(Core::Leftmost8_4),
6987            "linear_combination_1" => Ok(Core::LinearCombination1),
6988            "linear_verify_1" => Ok(Core::LinearVerify1),
6989            "low_1" => Ok(Core::Low1),
6990            "low_16" => Ok(Core::Low16),
6991            "low_32" => Ok(Core::Low32),
6992            "low_64" => Ok(Core::Low64),
6993            "low_8" => Ok(Core::Low8),
6994            "lt_16" => Ok(Core::Lt16),
6995            "lt_32" => Ok(Core::Lt32),
6996            "lt_64" => Ok(Core::Lt64),
6997            "lt_8" => Ok(Core::Lt8),
6998            "maj_1" => Ok(Core::Maj1),
6999            "maj_16" => Ok(Core::Maj16),
7000            "maj_32" => Ok(Core::Maj32),
7001            "maj_64" => Ok(Core::Maj64),
7002            "maj_8" => Ok(Core::Maj8),
7003            "max_16" => Ok(Core::Max16),
7004            "max_32" => Ok(Core::Max32),
7005            "max_64" => Ok(Core::Max64),
7006            "max_8" => Ok(Core::Max8),
7007            "median_16" => Ok(Core::Median16),
7008            "median_32" => Ok(Core::Median32),
7009            "median_64" => Ok(Core::Median64),
7010            "median_8" => Ok(Core::Median8),
7011            "min_16" => Ok(Core::Min16),
7012            "min_32" => Ok(Core::Min32),
7013            "min_64" => Ok(Core::Min64),
7014            "min_8" => Ok(Core::Min8),
7015            "modulo_16" => Ok(Core::Modulo16),
7016            "modulo_32" => Ok(Core::Modulo32),
7017            "modulo_64" => Ok(Core::Modulo64),
7018            "modulo_8" => Ok(Core::Modulo8),
7019            "multiply_16" => Ok(Core::Multiply16),
7020            "multiply_32" => Ok(Core::Multiply32),
7021            "multiply_64" => Ok(Core::Multiply64),
7022            "multiply_8" => Ok(Core::Multiply8),
7023            "negate_16" => Ok(Core::Negate16),
7024            "negate_32" => Ok(Core::Negate32),
7025            "negate_64" => Ok(Core::Negate64),
7026            "negate_8" => Ok(Core::Negate8),
7027            "one_16" => Ok(Core::One16),
7028            "one_32" => Ok(Core::One32),
7029            "one_64" => Ok(Core::One64),
7030            "one_8" => Ok(Core::One8),
7031            "or_1" => Ok(Core::Or1),
7032            "or_16" => Ok(Core::Or16),
7033            "or_32" => Ok(Core::Or32),
7034            "or_64" => Ok(Core::Or64),
7035            "or_8" => Ok(Core::Or8),
7036            "parse_lock" => Ok(Core::ParseLock),
7037            "parse_sequence" => Ok(Core::ParseSequence),
7038            "point_verify_1" => Ok(Core::PointVerify1),
7039            "right_extend_16_32" => Ok(Core::RightExtend16_32),
7040            "right_extend_16_64" => Ok(Core::RightExtend16_64),
7041            "right_extend_32_64" => Ok(Core::RightExtend32_64),
7042            "right_extend_8_16" => Ok(Core::RightExtend8_16),
7043            "right_extend_8_32" => Ok(Core::RightExtend8_32),
7044            "right_extend_8_64" => Ok(Core::RightExtend8_64),
7045            "right_pad_high_16_32" => Ok(Core::RightPadHigh16_32),
7046            "right_pad_high_16_64" => Ok(Core::RightPadHigh16_64),
7047            "right_pad_high_1_16" => Ok(Core::RightPadHigh1_16),
7048            "right_pad_high_1_32" => Ok(Core::RightPadHigh1_32),
7049            "right_pad_high_1_64" => Ok(Core::RightPadHigh1_64),
7050            "right_pad_high_1_8" => Ok(Core::RightPadHigh1_8),
7051            "right_pad_high_32_64" => Ok(Core::RightPadHigh32_64),
7052            "right_pad_high_8_16" => Ok(Core::RightPadHigh8_16),
7053            "right_pad_high_8_32" => Ok(Core::RightPadHigh8_32),
7054            "right_pad_high_8_64" => Ok(Core::RightPadHigh8_64),
7055            "right_pad_low_16_32" => Ok(Core::RightPadLow16_32),
7056            "right_pad_low_16_64" => Ok(Core::RightPadLow16_64),
7057            "right_pad_low_1_16" => Ok(Core::RightPadLow1_16),
7058            "right_pad_low_1_32" => Ok(Core::RightPadLow1_32),
7059            "right_pad_low_1_64" => Ok(Core::RightPadLow1_64),
7060            "right_pad_low_1_8" => Ok(Core::RightPadLow1_8),
7061            "right_pad_low_32_64" => Ok(Core::RightPadLow32_64),
7062            "right_pad_low_8_16" => Ok(Core::RightPadLow8_16),
7063            "right_pad_low_8_32" => Ok(Core::RightPadLow8_32),
7064            "right_pad_low_8_64" => Ok(Core::RightPadLow8_64),
7065            "right_rotate_16" => Ok(Core::RightRotate16),
7066            "right_rotate_32" => Ok(Core::RightRotate32),
7067            "right_rotate_64" => Ok(Core::RightRotate64),
7068            "right_rotate_8" => Ok(Core::RightRotate8),
7069            "right_shift_16" => Ok(Core::RightShift16),
7070            "right_shift_32" => Ok(Core::RightShift32),
7071            "right_shift_64" => Ok(Core::RightShift64),
7072            "right_shift_8" => Ok(Core::RightShift8),
7073            "right_shift_with_16" => Ok(Core::RightShiftWith16),
7074            "right_shift_with_32" => Ok(Core::RightShiftWith32),
7075            "right_shift_with_64" => Ok(Core::RightShiftWith64),
7076            "right_shift_with_8" => Ok(Core::RightShiftWith8),
7077            "rightmost_16_1" => Ok(Core::Rightmost16_1),
7078            "rightmost_16_2" => Ok(Core::Rightmost16_2),
7079            "rightmost_16_4" => Ok(Core::Rightmost16_4),
7080            "rightmost_16_8" => Ok(Core::Rightmost16_8),
7081            "rightmost_32_1" => Ok(Core::Rightmost32_1),
7082            "rightmost_32_16" => Ok(Core::Rightmost32_16),
7083            "rightmost_32_2" => Ok(Core::Rightmost32_2),
7084            "rightmost_32_4" => Ok(Core::Rightmost32_4),
7085            "rightmost_32_8" => Ok(Core::Rightmost32_8),
7086            "rightmost_64_1" => Ok(Core::Rightmost64_1),
7087            "rightmost_64_16" => Ok(Core::Rightmost64_16),
7088            "rightmost_64_2" => Ok(Core::Rightmost64_2),
7089            "rightmost_64_32" => Ok(Core::Rightmost64_32),
7090            "rightmost_64_4" => Ok(Core::Rightmost64_4),
7091            "rightmost_64_8" => Ok(Core::Rightmost64_8),
7092            "rightmost_8_1" => Ok(Core::Rightmost8_1),
7093            "rightmost_8_2" => Ok(Core::Rightmost8_2),
7094            "rightmost_8_4" => Ok(Core::Rightmost8_4),
7095            "scalar_add" => Ok(Core::ScalarAdd),
7096            "scalar_invert" => Ok(Core::ScalarInvert),
7097            "scalar_is_zero" => Ok(Core::ScalarIsZero),
7098            "scalar_multiply" => Ok(Core::ScalarMultiply),
7099            "scalar_multiply_lambda" => Ok(Core::ScalarMultiplyLambda),
7100            "scalar_negate" => Ok(Core::ScalarNegate),
7101            "scalar_normalize" => Ok(Core::ScalarNormalize),
7102            "scalar_square" => Ok(Core::ScalarSquare),
7103            "scale" => Ok(Core::Scale),
7104            "sha_256_block" => Ok(Core::Sha256Block),
7105            "sha_256_ctx_8_add_1" => Ok(Core::Sha256Ctx8Add1),
7106            "sha_256_ctx_8_add_128" => Ok(Core::Sha256Ctx8Add128),
7107            "sha_256_ctx_8_add_16" => Ok(Core::Sha256Ctx8Add16),
7108            "sha_256_ctx_8_add_2" => Ok(Core::Sha256Ctx8Add2),
7109            "sha_256_ctx_8_add_256" => Ok(Core::Sha256Ctx8Add256),
7110            "sha_256_ctx_8_add_32" => Ok(Core::Sha256Ctx8Add32),
7111            "sha_256_ctx_8_add_4" => Ok(Core::Sha256Ctx8Add4),
7112            "sha_256_ctx_8_add_512" => Ok(Core::Sha256Ctx8Add512),
7113            "sha_256_ctx_8_add_64" => Ok(Core::Sha256Ctx8Add64),
7114            "sha_256_ctx_8_add_8" => Ok(Core::Sha256Ctx8Add8),
7115            "sha_256_ctx_8_add_buffer_511" => Ok(Core::Sha256Ctx8AddBuffer511),
7116            "sha_256_ctx_8_finalize" => Ok(Core::Sha256Ctx8Finalize),
7117            "sha_256_ctx_8_init" => Ok(Core::Sha256Ctx8Init),
7118            "sha_256_iv" => Ok(Core::Sha256Iv),
7119            "some_1" => Ok(Core::Some1),
7120            "some_16" => Ok(Core::Some16),
7121            "some_32" => Ok(Core::Some32),
7122            "some_64" => Ok(Core::Some64),
7123            "some_8" => Ok(Core::Some8),
7124            "subtract_16" => Ok(Core::Subtract16),
7125            "subtract_32" => Ok(Core::Subtract32),
7126            "subtract_64" => Ok(Core::Subtract64),
7127            "subtract_8" => Ok(Core::Subtract8),
7128            "swu" => Ok(Core::Swu),
7129            "tapdata_init" => Ok(Core::TapdataInit),
7130            "verify" => Ok(Core::Verify),
7131            "xor_1" => Ok(Core::Xor1),
7132            "xor_16" => Ok(Core::Xor16),
7133            "xor_32" => Ok(Core::Xor32),
7134            "xor_64" => Ok(Core::Xor64),
7135            "xor_8" => Ok(Core::Xor8),
7136            "xor_xor_1" => Ok(Core::XorXor1),
7137            "xor_xor_16" => Ok(Core::XorXor16),
7138            "xor_xor_32" => Ok(Core::XorXor32),
7139            "xor_xor_64" => Ok(Core::XorXor64),
7140            "xor_xor_8" => Ok(Core::XorXor8),
7141            x => Err(crate::Error::InvalidJetName(x.to_owned())),
7142        }
7143    }
7144}
7145
7146pub(crate) fn c_jet_ptr(jet: &Core) -> fn(&mut CFrameItem, CFrameItem, &()) -> bool {
7147    match jet {
7148        Core::Add16 => simplicity_sys::c_jets::jets_wrapper::add_16,
7149        Core::Add32 => simplicity_sys::c_jets::jets_wrapper::add_32,
7150        Core::Add64 => simplicity_sys::c_jets::jets_wrapper::add_64,
7151        Core::Add8 => simplicity_sys::c_jets::jets_wrapper::add_8,
7152        Core::All16 => simplicity_sys::c_jets::jets_wrapper::all_16,
7153        Core::All32 => simplicity_sys::c_jets::jets_wrapper::all_32,
7154        Core::All64 => simplicity_sys::c_jets::jets_wrapper::all_64,
7155        Core::All8 => simplicity_sys::c_jets::jets_wrapper::all_8,
7156        Core::And1 => simplicity_sys::c_jets::jets_wrapper::and_1,
7157        Core::And16 => simplicity_sys::c_jets::jets_wrapper::and_16,
7158        Core::And32 => simplicity_sys::c_jets::jets_wrapper::and_32,
7159        Core::And64 => simplicity_sys::c_jets::jets_wrapper::and_64,
7160        Core::And8 => simplicity_sys::c_jets::jets_wrapper::and_8,
7161        Core::Bip0340Verify => simplicity_sys::c_jets::jets_wrapper::bip_0340_verify,
7162        Core::Ch1 => simplicity_sys::c_jets::jets_wrapper::ch_1,
7163        Core::Ch16 => simplicity_sys::c_jets::jets_wrapper::ch_16,
7164        Core::Ch32 => simplicity_sys::c_jets::jets_wrapper::ch_32,
7165        Core::Ch64 => simplicity_sys::c_jets::jets_wrapper::ch_64,
7166        Core::Ch8 => simplicity_sys::c_jets::jets_wrapper::ch_8,
7167        Core::CheckSigVerify => simplicity_sys::c_jets::jets_wrapper::check_sig_verify,
7168        Core::Complement1 => simplicity_sys::c_jets::jets_wrapper::complement_1,
7169        Core::Complement16 => simplicity_sys::c_jets::jets_wrapper::complement_16,
7170        Core::Complement32 => simplicity_sys::c_jets::jets_wrapper::complement_32,
7171        Core::Complement64 => simplicity_sys::c_jets::jets_wrapper::complement_64,
7172        Core::Complement8 => simplicity_sys::c_jets::jets_wrapper::complement_8,
7173        Core::Decompress => simplicity_sys::c_jets::jets_wrapper::decompress,
7174        Core::Decrement16 => simplicity_sys::c_jets::jets_wrapper::decrement_16,
7175        Core::Decrement32 => simplicity_sys::c_jets::jets_wrapper::decrement_32,
7176        Core::Decrement64 => simplicity_sys::c_jets::jets_wrapper::decrement_64,
7177        Core::Decrement8 => simplicity_sys::c_jets::jets_wrapper::decrement_8,
7178        Core::DivMod128_64 => simplicity_sys::c_jets::jets_wrapper::div_mod_128_64,
7179        Core::DivMod16 => simplicity_sys::c_jets::jets_wrapper::div_mod_16,
7180        Core::DivMod32 => simplicity_sys::c_jets::jets_wrapper::div_mod_32,
7181        Core::DivMod64 => simplicity_sys::c_jets::jets_wrapper::div_mod_64,
7182        Core::DivMod8 => simplicity_sys::c_jets::jets_wrapper::div_mod_8,
7183        Core::Divide16 => simplicity_sys::c_jets::jets_wrapper::divide_16,
7184        Core::Divide32 => simplicity_sys::c_jets::jets_wrapper::divide_32,
7185        Core::Divide64 => simplicity_sys::c_jets::jets_wrapper::divide_64,
7186        Core::Divide8 => simplicity_sys::c_jets::jets_wrapper::divide_8,
7187        Core::Divides16 => simplicity_sys::c_jets::jets_wrapper::divides_16,
7188        Core::Divides32 => simplicity_sys::c_jets::jets_wrapper::divides_32,
7189        Core::Divides64 => simplicity_sys::c_jets::jets_wrapper::divides_64,
7190        Core::Divides8 => simplicity_sys::c_jets::jets_wrapper::divides_8,
7191        Core::Eq1 => simplicity_sys::c_jets::jets_wrapper::eq_1,
7192        Core::Eq16 => simplicity_sys::c_jets::jets_wrapper::eq_16,
7193        Core::Eq256 => simplicity_sys::c_jets::jets_wrapper::eq_256,
7194        Core::Eq32 => simplicity_sys::c_jets::jets_wrapper::eq_32,
7195        Core::Eq64 => simplicity_sys::c_jets::jets_wrapper::eq_64,
7196        Core::Eq8 => simplicity_sys::c_jets::jets_wrapper::eq_8,
7197        Core::FeAdd => simplicity_sys::c_jets::jets_wrapper::fe_add,
7198        Core::FeInvert => simplicity_sys::c_jets::jets_wrapper::fe_invert,
7199        Core::FeIsOdd => simplicity_sys::c_jets::jets_wrapper::fe_is_odd,
7200        Core::FeIsZero => simplicity_sys::c_jets::jets_wrapper::fe_is_zero,
7201        Core::FeMultiply => simplicity_sys::c_jets::jets_wrapper::fe_multiply,
7202        Core::FeMultiplyBeta => simplicity_sys::c_jets::jets_wrapper::fe_multiply_beta,
7203        Core::FeNegate => simplicity_sys::c_jets::jets_wrapper::fe_negate,
7204        Core::FeNormalize => simplicity_sys::c_jets::jets_wrapper::fe_normalize,
7205        Core::FeSquare => simplicity_sys::c_jets::jets_wrapper::fe_square,
7206        Core::FeSquareRoot => simplicity_sys::c_jets::jets_wrapper::fe_square_root,
7207        Core::FullAdd16 => simplicity_sys::c_jets::jets_wrapper::full_add_16,
7208        Core::FullAdd32 => simplicity_sys::c_jets::jets_wrapper::full_add_32,
7209        Core::FullAdd64 => simplicity_sys::c_jets::jets_wrapper::full_add_64,
7210        Core::FullAdd8 => simplicity_sys::c_jets::jets_wrapper::full_add_8,
7211        Core::FullDecrement16 => simplicity_sys::c_jets::jets_wrapper::full_decrement_16,
7212        Core::FullDecrement32 => simplicity_sys::c_jets::jets_wrapper::full_decrement_32,
7213        Core::FullDecrement64 => simplicity_sys::c_jets::jets_wrapper::full_decrement_64,
7214        Core::FullDecrement8 => simplicity_sys::c_jets::jets_wrapper::full_decrement_8,
7215        Core::FullIncrement16 => simplicity_sys::c_jets::jets_wrapper::full_increment_16,
7216        Core::FullIncrement32 => simplicity_sys::c_jets::jets_wrapper::full_increment_32,
7217        Core::FullIncrement64 => simplicity_sys::c_jets::jets_wrapper::full_increment_64,
7218        Core::FullIncrement8 => simplicity_sys::c_jets::jets_wrapper::full_increment_8,
7219        Core::FullLeftShift16_1 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_1,
7220        Core::FullLeftShift16_2 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_2,
7221        Core::FullLeftShift16_4 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_4,
7222        Core::FullLeftShift16_8 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_8,
7223        Core::FullLeftShift32_1 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_1,
7224        Core::FullLeftShift32_16 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_16,
7225        Core::FullLeftShift32_2 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_2,
7226        Core::FullLeftShift32_4 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_4,
7227        Core::FullLeftShift32_8 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_8,
7228        Core::FullLeftShift64_1 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_1,
7229        Core::FullLeftShift64_16 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_16,
7230        Core::FullLeftShift64_2 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_2,
7231        Core::FullLeftShift64_32 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_32,
7232        Core::FullLeftShift64_4 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_4,
7233        Core::FullLeftShift64_8 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_8,
7234        Core::FullLeftShift8_1 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_1,
7235        Core::FullLeftShift8_2 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_2,
7236        Core::FullLeftShift8_4 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_4,
7237        Core::FullMultiply16 => simplicity_sys::c_jets::jets_wrapper::full_multiply_16,
7238        Core::FullMultiply32 => simplicity_sys::c_jets::jets_wrapper::full_multiply_32,
7239        Core::FullMultiply64 => simplicity_sys::c_jets::jets_wrapper::full_multiply_64,
7240        Core::FullMultiply8 => simplicity_sys::c_jets::jets_wrapper::full_multiply_8,
7241        Core::FullRightShift16_1 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_1,
7242        Core::FullRightShift16_2 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_2,
7243        Core::FullRightShift16_4 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_4,
7244        Core::FullRightShift16_8 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_8,
7245        Core::FullRightShift32_1 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_1,
7246        Core::FullRightShift32_16 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_16,
7247        Core::FullRightShift32_2 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_2,
7248        Core::FullRightShift32_4 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_4,
7249        Core::FullRightShift32_8 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_8,
7250        Core::FullRightShift64_1 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_1,
7251        Core::FullRightShift64_16 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_16,
7252        Core::FullRightShift64_2 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_2,
7253        Core::FullRightShift64_32 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_32,
7254        Core::FullRightShift64_4 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_4,
7255        Core::FullRightShift64_8 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_8,
7256        Core::FullRightShift8_1 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_1,
7257        Core::FullRightShift8_2 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_2,
7258        Core::FullRightShift8_4 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_4,
7259        Core::FullSubtract16 => simplicity_sys::c_jets::jets_wrapper::full_subtract_16,
7260        Core::FullSubtract32 => simplicity_sys::c_jets::jets_wrapper::full_subtract_32,
7261        Core::FullSubtract64 => simplicity_sys::c_jets::jets_wrapper::full_subtract_64,
7262        Core::FullSubtract8 => simplicity_sys::c_jets::jets_wrapper::full_subtract_8,
7263        Core::GeIsOnCurve => simplicity_sys::c_jets::jets_wrapper::ge_is_on_curve,
7264        Core::GeNegate => simplicity_sys::c_jets::jets_wrapper::ge_negate,
7265        Core::GejAdd => simplicity_sys::c_jets::jets_wrapper::gej_add,
7266        Core::GejDouble => simplicity_sys::c_jets::jets_wrapper::gej_double,
7267        Core::GejEquiv => simplicity_sys::c_jets::jets_wrapper::gej_equiv,
7268        Core::GejGeAdd => simplicity_sys::c_jets::jets_wrapper::gej_ge_add,
7269        Core::GejGeAddEx => simplicity_sys::c_jets::jets_wrapper::gej_ge_add_ex,
7270        Core::GejGeEquiv => simplicity_sys::c_jets::jets_wrapper::gej_ge_equiv,
7271        Core::GejInfinity => simplicity_sys::c_jets::jets_wrapper::gej_infinity,
7272        Core::GejIsInfinity => simplicity_sys::c_jets::jets_wrapper::gej_is_infinity,
7273        Core::GejIsOnCurve => simplicity_sys::c_jets::jets_wrapper::gej_is_on_curve,
7274        Core::GejNegate => simplicity_sys::c_jets::jets_wrapper::gej_negate,
7275        Core::GejNormalize => simplicity_sys::c_jets::jets_wrapper::gej_normalize,
7276        Core::GejRescale => simplicity_sys::c_jets::jets_wrapper::gej_rescale,
7277        Core::GejXEquiv => simplicity_sys::c_jets::jets_wrapper::gej_x_equiv,
7278        Core::GejYIsOdd => simplicity_sys::c_jets::jets_wrapper::gej_y_is_odd,
7279        Core::Generate => simplicity_sys::c_jets::jets_wrapper::generate,
7280        Core::HashToCurve => simplicity_sys::c_jets::jets_wrapper::hash_to_curve,
7281        Core::High1 => simplicity_sys::c_jets::jets_wrapper::high_1,
7282        Core::High16 => simplicity_sys::c_jets::jets_wrapper::high_16,
7283        Core::High32 => simplicity_sys::c_jets::jets_wrapper::high_32,
7284        Core::High64 => simplicity_sys::c_jets::jets_wrapper::high_64,
7285        Core::High8 => simplicity_sys::c_jets::jets_wrapper::high_8,
7286        Core::Increment16 => simplicity_sys::c_jets::jets_wrapper::increment_16,
7287        Core::Increment32 => simplicity_sys::c_jets::jets_wrapper::increment_32,
7288        Core::Increment64 => simplicity_sys::c_jets::jets_wrapper::increment_64,
7289        Core::Increment8 => simplicity_sys::c_jets::jets_wrapper::increment_8,
7290        Core::IsOne16 => simplicity_sys::c_jets::jets_wrapper::is_one_16,
7291        Core::IsOne32 => simplicity_sys::c_jets::jets_wrapper::is_one_32,
7292        Core::IsOne64 => simplicity_sys::c_jets::jets_wrapper::is_one_64,
7293        Core::IsOne8 => simplicity_sys::c_jets::jets_wrapper::is_one_8,
7294        Core::IsZero16 => simplicity_sys::c_jets::jets_wrapper::is_zero_16,
7295        Core::IsZero32 => simplicity_sys::c_jets::jets_wrapper::is_zero_32,
7296        Core::IsZero64 => simplicity_sys::c_jets::jets_wrapper::is_zero_64,
7297        Core::IsZero8 => simplicity_sys::c_jets::jets_wrapper::is_zero_8,
7298        Core::Le16 => simplicity_sys::c_jets::jets_wrapper::le_16,
7299        Core::Le32 => simplicity_sys::c_jets::jets_wrapper::le_32,
7300        Core::Le64 => simplicity_sys::c_jets::jets_wrapper::le_64,
7301        Core::Le8 => simplicity_sys::c_jets::jets_wrapper::le_8,
7302        Core::LeftExtend16_32 => simplicity_sys::c_jets::jets_wrapper::left_extend_16_32,
7303        Core::LeftExtend16_64 => simplicity_sys::c_jets::jets_wrapper::left_extend_16_64,
7304        Core::LeftExtend1_16 => simplicity_sys::c_jets::jets_wrapper::left_extend_1_16,
7305        Core::LeftExtend1_32 => simplicity_sys::c_jets::jets_wrapper::left_extend_1_32,
7306        Core::LeftExtend1_64 => simplicity_sys::c_jets::jets_wrapper::left_extend_1_64,
7307        Core::LeftExtend1_8 => simplicity_sys::c_jets::jets_wrapper::left_extend_1_8,
7308        Core::LeftExtend32_64 => simplicity_sys::c_jets::jets_wrapper::left_extend_32_64,
7309        Core::LeftExtend8_16 => simplicity_sys::c_jets::jets_wrapper::left_extend_8_16,
7310        Core::LeftExtend8_32 => simplicity_sys::c_jets::jets_wrapper::left_extend_8_32,
7311        Core::LeftExtend8_64 => simplicity_sys::c_jets::jets_wrapper::left_extend_8_64,
7312        Core::LeftPadHigh16_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_16_32,
7313        Core::LeftPadHigh16_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_16_64,
7314        Core::LeftPadHigh1_16 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_16,
7315        Core::LeftPadHigh1_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_32,
7316        Core::LeftPadHigh1_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_64,
7317        Core::LeftPadHigh1_8 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_8,
7318        Core::LeftPadHigh32_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_32_64,
7319        Core::LeftPadHigh8_16 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_16,
7320        Core::LeftPadHigh8_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_32,
7321        Core::LeftPadHigh8_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_64,
7322        Core::LeftPadLow16_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_16_32,
7323        Core::LeftPadLow16_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_16_64,
7324        Core::LeftPadLow1_16 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_16,
7325        Core::LeftPadLow1_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_32,
7326        Core::LeftPadLow1_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_64,
7327        Core::LeftPadLow1_8 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_8,
7328        Core::LeftPadLow32_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_32_64,
7329        Core::LeftPadLow8_16 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_16,
7330        Core::LeftPadLow8_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_32,
7331        Core::LeftPadLow8_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_64,
7332        Core::LeftRotate16 => simplicity_sys::c_jets::jets_wrapper::left_rotate_16,
7333        Core::LeftRotate32 => simplicity_sys::c_jets::jets_wrapper::left_rotate_32,
7334        Core::LeftRotate64 => simplicity_sys::c_jets::jets_wrapper::left_rotate_64,
7335        Core::LeftRotate8 => simplicity_sys::c_jets::jets_wrapper::left_rotate_8,
7336        Core::LeftShift16 => simplicity_sys::c_jets::jets_wrapper::left_shift_16,
7337        Core::LeftShift32 => simplicity_sys::c_jets::jets_wrapper::left_shift_32,
7338        Core::LeftShift64 => simplicity_sys::c_jets::jets_wrapper::left_shift_64,
7339        Core::LeftShift8 => simplicity_sys::c_jets::jets_wrapper::left_shift_8,
7340        Core::LeftShiftWith16 => simplicity_sys::c_jets::jets_wrapper::left_shift_with_16,
7341        Core::LeftShiftWith32 => simplicity_sys::c_jets::jets_wrapper::left_shift_with_32,
7342        Core::LeftShiftWith64 => simplicity_sys::c_jets::jets_wrapper::left_shift_with_64,
7343        Core::LeftShiftWith8 => simplicity_sys::c_jets::jets_wrapper::left_shift_with_8,
7344        Core::Leftmost16_1 => simplicity_sys::c_jets::jets_wrapper::leftmost_16_1,
7345        Core::Leftmost16_2 => simplicity_sys::c_jets::jets_wrapper::leftmost_16_2,
7346        Core::Leftmost16_4 => simplicity_sys::c_jets::jets_wrapper::leftmost_16_4,
7347        Core::Leftmost16_8 => simplicity_sys::c_jets::jets_wrapper::leftmost_16_8,
7348        Core::Leftmost32_1 => simplicity_sys::c_jets::jets_wrapper::leftmost_32_1,
7349        Core::Leftmost32_16 => simplicity_sys::c_jets::jets_wrapper::leftmost_32_16,
7350        Core::Leftmost32_2 => simplicity_sys::c_jets::jets_wrapper::leftmost_32_2,
7351        Core::Leftmost32_4 => simplicity_sys::c_jets::jets_wrapper::leftmost_32_4,
7352        Core::Leftmost32_8 => simplicity_sys::c_jets::jets_wrapper::leftmost_32_8,
7353        Core::Leftmost64_1 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_1,
7354        Core::Leftmost64_16 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_16,
7355        Core::Leftmost64_2 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_2,
7356        Core::Leftmost64_32 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_32,
7357        Core::Leftmost64_4 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_4,
7358        Core::Leftmost64_8 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_8,
7359        Core::Leftmost8_1 => simplicity_sys::c_jets::jets_wrapper::leftmost_8_1,
7360        Core::Leftmost8_2 => simplicity_sys::c_jets::jets_wrapper::leftmost_8_2,
7361        Core::Leftmost8_4 => simplicity_sys::c_jets::jets_wrapper::leftmost_8_4,
7362        Core::LinearCombination1 => simplicity_sys::c_jets::jets_wrapper::linear_combination_1,
7363        Core::LinearVerify1 => simplicity_sys::c_jets::jets_wrapper::linear_verify_1,
7364        Core::Low1 => simplicity_sys::c_jets::jets_wrapper::low_1,
7365        Core::Low16 => simplicity_sys::c_jets::jets_wrapper::low_16,
7366        Core::Low32 => simplicity_sys::c_jets::jets_wrapper::low_32,
7367        Core::Low64 => simplicity_sys::c_jets::jets_wrapper::low_64,
7368        Core::Low8 => simplicity_sys::c_jets::jets_wrapper::low_8,
7369        Core::Lt16 => simplicity_sys::c_jets::jets_wrapper::lt_16,
7370        Core::Lt32 => simplicity_sys::c_jets::jets_wrapper::lt_32,
7371        Core::Lt64 => simplicity_sys::c_jets::jets_wrapper::lt_64,
7372        Core::Lt8 => simplicity_sys::c_jets::jets_wrapper::lt_8,
7373        Core::Maj1 => simplicity_sys::c_jets::jets_wrapper::maj_1,
7374        Core::Maj16 => simplicity_sys::c_jets::jets_wrapper::maj_16,
7375        Core::Maj32 => simplicity_sys::c_jets::jets_wrapper::maj_32,
7376        Core::Maj64 => simplicity_sys::c_jets::jets_wrapper::maj_64,
7377        Core::Maj8 => simplicity_sys::c_jets::jets_wrapper::maj_8,
7378        Core::Max16 => simplicity_sys::c_jets::jets_wrapper::max_16,
7379        Core::Max32 => simplicity_sys::c_jets::jets_wrapper::max_32,
7380        Core::Max64 => simplicity_sys::c_jets::jets_wrapper::max_64,
7381        Core::Max8 => simplicity_sys::c_jets::jets_wrapper::max_8,
7382        Core::Median16 => simplicity_sys::c_jets::jets_wrapper::median_16,
7383        Core::Median32 => simplicity_sys::c_jets::jets_wrapper::median_32,
7384        Core::Median64 => simplicity_sys::c_jets::jets_wrapper::median_64,
7385        Core::Median8 => simplicity_sys::c_jets::jets_wrapper::median_8,
7386        Core::Min16 => simplicity_sys::c_jets::jets_wrapper::min_16,
7387        Core::Min32 => simplicity_sys::c_jets::jets_wrapper::min_32,
7388        Core::Min64 => simplicity_sys::c_jets::jets_wrapper::min_64,
7389        Core::Min8 => simplicity_sys::c_jets::jets_wrapper::min_8,
7390        Core::Modulo16 => simplicity_sys::c_jets::jets_wrapper::modulo_16,
7391        Core::Modulo32 => simplicity_sys::c_jets::jets_wrapper::modulo_32,
7392        Core::Modulo64 => simplicity_sys::c_jets::jets_wrapper::modulo_64,
7393        Core::Modulo8 => simplicity_sys::c_jets::jets_wrapper::modulo_8,
7394        Core::Multiply16 => simplicity_sys::c_jets::jets_wrapper::multiply_16,
7395        Core::Multiply32 => simplicity_sys::c_jets::jets_wrapper::multiply_32,
7396        Core::Multiply64 => simplicity_sys::c_jets::jets_wrapper::multiply_64,
7397        Core::Multiply8 => simplicity_sys::c_jets::jets_wrapper::multiply_8,
7398        Core::Negate16 => simplicity_sys::c_jets::jets_wrapper::negate_16,
7399        Core::Negate32 => simplicity_sys::c_jets::jets_wrapper::negate_32,
7400        Core::Negate64 => simplicity_sys::c_jets::jets_wrapper::negate_64,
7401        Core::Negate8 => simplicity_sys::c_jets::jets_wrapper::negate_8,
7402        Core::One16 => simplicity_sys::c_jets::jets_wrapper::one_16,
7403        Core::One32 => simplicity_sys::c_jets::jets_wrapper::one_32,
7404        Core::One64 => simplicity_sys::c_jets::jets_wrapper::one_64,
7405        Core::One8 => simplicity_sys::c_jets::jets_wrapper::one_8,
7406        Core::Or1 => simplicity_sys::c_jets::jets_wrapper::or_1,
7407        Core::Or16 => simplicity_sys::c_jets::jets_wrapper::or_16,
7408        Core::Or32 => simplicity_sys::c_jets::jets_wrapper::or_32,
7409        Core::Or64 => simplicity_sys::c_jets::jets_wrapper::or_64,
7410        Core::Or8 => simplicity_sys::c_jets::jets_wrapper::or_8,
7411        Core::ParseLock => simplicity_sys::c_jets::jets_wrapper::parse_lock,
7412        Core::ParseSequence => simplicity_sys::c_jets::jets_wrapper::parse_sequence,
7413        Core::PointVerify1 => simplicity_sys::c_jets::jets_wrapper::point_verify_1,
7414        Core::RightExtend16_32 => simplicity_sys::c_jets::jets_wrapper::right_extend_16_32,
7415        Core::RightExtend16_64 => simplicity_sys::c_jets::jets_wrapper::right_extend_16_64,
7416        Core::RightExtend32_64 => simplicity_sys::c_jets::jets_wrapper::right_extend_32_64,
7417        Core::RightExtend8_16 => simplicity_sys::c_jets::jets_wrapper::right_extend_8_16,
7418        Core::RightExtend8_32 => simplicity_sys::c_jets::jets_wrapper::right_extend_8_32,
7419        Core::RightExtend8_64 => simplicity_sys::c_jets::jets_wrapper::right_extend_8_64,
7420        Core::RightPadHigh16_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_16_32,
7421        Core::RightPadHigh16_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_16_64,
7422        Core::RightPadHigh1_16 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_16,
7423        Core::RightPadHigh1_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_32,
7424        Core::RightPadHigh1_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_64,
7425        Core::RightPadHigh1_8 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_8,
7426        Core::RightPadHigh32_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_32_64,
7427        Core::RightPadHigh8_16 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_16,
7428        Core::RightPadHigh8_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_32,
7429        Core::RightPadHigh8_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_64,
7430        Core::RightPadLow16_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_16_32,
7431        Core::RightPadLow16_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_16_64,
7432        Core::RightPadLow1_16 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_16,
7433        Core::RightPadLow1_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_32,
7434        Core::RightPadLow1_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_64,
7435        Core::RightPadLow1_8 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_8,
7436        Core::RightPadLow32_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_32_64,
7437        Core::RightPadLow8_16 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_16,
7438        Core::RightPadLow8_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_32,
7439        Core::RightPadLow8_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_64,
7440        Core::RightRotate16 => simplicity_sys::c_jets::jets_wrapper::right_rotate_16,
7441        Core::RightRotate32 => simplicity_sys::c_jets::jets_wrapper::right_rotate_32,
7442        Core::RightRotate64 => simplicity_sys::c_jets::jets_wrapper::right_rotate_64,
7443        Core::RightRotate8 => simplicity_sys::c_jets::jets_wrapper::right_rotate_8,
7444        Core::RightShift16 => simplicity_sys::c_jets::jets_wrapper::right_shift_16,
7445        Core::RightShift32 => simplicity_sys::c_jets::jets_wrapper::right_shift_32,
7446        Core::RightShift64 => simplicity_sys::c_jets::jets_wrapper::right_shift_64,
7447        Core::RightShift8 => simplicity_sys::c_jets::jets_wrapper::right_shift_8,
7448        Core::RightShiftWith16 => simplicity_sys::c_jets::jets_wrapper::right_shift_with_16,
7449        Core::RightShiftWith32 => simplicity_sys::c_jets::jets_wrapper::right_shift_with_32,
7450        Core::RightShiftWith64 => simplicity_sys::c_jets::jets_wrapper::right_shift_with_64,
7451        Core::RightShiftWith8 => simplicity_sys::c_jets::jets_wrapper::right_shift_with_8,
7452        Core::Rightmost16_1 => simplicity_sys::c_jets::jets_wrapper::rightmost_16_1,
7453        Core::Rightmost16_2 => simplicity_sys::c_jets::jets_wrapper::rightmost_16_2,
7454        Core::Rightmost16_4 => simplicity_sys::c_jets::jets_wrapper::rightmost_16_4,
7455        Core::Rightmost16_8 => simplicity_sys::c_jets::jets_wrapper::rightmost_16_8,
7456        Core::Rightmost32_1 => simplicity_sys::c_jets::jets_wrapper::rightmost_32_1,
7457        Core::Rightmost32_16 => simplicity_sys::c_jets::jets_wrapper::rightmost_32_16,
7458        Core::Rightmost32_2 => simplicity_sys::c_jets::jets_wrapper::rightmost_32_2,
7459        Core::Rightmost32_4 => simplicity_sys::c_jets::jets_wrapper::rightmost_32_4,
7460        Core::Rightmost32_8 => simplicity_sys::c_jets::jets_wrapper::rightmost_32_8,
7461        Core::Rightmost64_1 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_1,
7462        Core::Rightmost64_16 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_16,
7463        Core::Rightmost64_2 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_2,
7464        Core::Rightmost64_32 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_32,
7465        Core::Rightmost64_4 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_4,
7466        Core::Rightmost64_8 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_8,
7467        Core::Rightmost8_1 => simplicity_sys::c_jets::jets_wrapper::rightmost_8_1,
7468        Core::Rightmost8_2 => simplicity_sys::c_jets::jets_wrapper::rightmost_8_2,
7469        Core::Rightmost8_4 => simplicity_sys::c_jets::jets_wrapper::rightmost_8_4,
7470        Core::ScalarAdd => simplicity_sys::c_jets::jets_wrapper::scalar_add,
7471        Core::ScalarInvert => simplicity_sys::c_jets::jets_wrapper::scalar_invert,
7472        Core::ScalarIsZero => simplicity_sys::c_jets::jets_wrapper::scalar_is_zero,
7473        Core::ScalarMultiply => simplicity_sys::c_jets::jets_wrapper::scalar_multiply,
7474        Core::ScalarMultiplyLambda => simplicity_sys::c_jets::jets_wrapper::scalar_multiply_lambda,
7475        Core::ScalarNegate => simplicity_sys::c_jets::jets_wrapper::scalar_negate,
7476        Core::ScalarNormalize => simplicity_sys::c_jets::jets_wrapper::scalar_normalize,
7477        Core::ScalarSquare => simplicity_sys::c_jets::jets_wrapper::scalar_square,
7478        Core::Scale => simplicity_sys::c_jets::jets_wrapper::scale,
7479        Core::Sha256Block => simplicity_sys::c_jets::jets_wrapper::sha_256_block,
7480        Core::Sha256Ctx8Add1 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_1,
7481        Core::Sha256Ctx8Add128 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_128,
7482        Core::Sha256Ctx8Add16 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_16,
7483        Core::Sha256Ctx8Add2 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_2,
7484        Core::Sha256Ctx8Add256 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_256,
7485        Core::Sha256Ctx8Add32 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_32,
7486        Core::Sha256Ctx8Add4 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_4,
7487        Core::Sha256Ctx8Add512 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_512,
7488        Core::Sha256Ctx8Add64 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_64,
7489        Core::Sha256Ctx8Add8 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_8,
7490        Core::Sha256Ctx8AddBuffer511 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_buffer_511,
7491        Core::Sha256Ctx8Finalize => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_finalize,
7492        Core::Sha256Ctx8Init => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_init,
7493        Core::Sha256Iv => simplicity_sys::c_jets::jets_wrapper::sha_256_iv,
7494        Core::Some1 => simplicity_sys::c_jets::jets_wrapper::some_1,
7495        Core::Some16 => simplicity_sys::c_jets::jets_wrapper::some_16,
7496        Core::Some32 => simplicity_sys::c_jets::jets_wrapper::some_32,
7497        Core::Some64 => simplicity_sys::c_jets::jets_wrapper::some_64,
7498        Core::Some8 => simplicity_sys::c_jets::jets_wrapper::some_8,
7499        Core::Subtract16 => simplicity_sys::c_jets::jets_wrapper::subtract_16,
7500        Core::Subtract32 => simplicity_sys::c_jets::jets_wrapper::subtract_32,
7501        Core::Subtract64 => simplicity_sys::c_jets::jets_wrapper::subtract_64,
7502        Core::Subtract8 => simplicity_sys::c_jets::jets_wrapper::subtract_8,
7503        Core::Swu => simplicity_sys::c_jets::jets_wrapper::swu,
7504        Core::TapdataInit => simplicity_sys::c_jets::jets_wrapper::tapdata_init,
7505        Core::Verify => simplicity_sys::c_jets::jets_wrapper::verify,
7506        Core::Xor1 => simplicity_sys::c_jets::jets_wrapper::xor_1,
7507        Core::Xor16 => simplicity_sys::c_jets::jets_wrapper::xor_16,
7508        Core::Xor32 => simplicity_sys::c_jets::jets_wrapper::xor_32,
7509        Core::Xor64 => simplicity_sys::c_jets::jets_wrapper::xor_64,
7510        Core::Xor8 => simplicity_sys::c_jets::jets_wrapper::xor_8,
7511        Core::XorXor1 => simplicity_sys::c_jets::jets_wrapper::xor_xor_1,
7512        Core::XorXor16 => simplicity_sys::c_jets::jets_wrapper::xor_xor_16,
7513        Core::XorXor32 => simplicity_sys::c_jets::jets_wrapper::xor_xor_32,
7514        Core::XorXor64 => simplicity_sys::c_jets::jets_wrapper::xor_xor_64,
7515        Core::XorXor8 => simplicity_sys::c_jets::jets_wrapper::xor_xor_8,
7516    }
7517}