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