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