1 // -*- mode: rust; -*-
2 //
3 // This file is part of curve25519-dalek.
4 // Copyright (c) 2016-2019 Isis Lovecruft, Henry de Valence
5 // See LICENSE for licensing information.
6 //
7 // Authors:
8 // - Isis Agora Lovecruft <isis@patternsinthevoid.net>
9 // - Henry de Valence <hdevalence@hdevalence.ca>
10 
11 //! This module contains constants used by the AVX2 backend.
12 
13 use packed_simd::u32x8;
14 
15 use backend::vector::avx2::edwards::{CachedPoint, ExtendedPoint};
16 use backend::vector::avx2::field::FieldElement2625x4;
17 use window::NafLookupTable8;
18 
19 /// The identity element as an `ExtendedPoint`.
20 pub(crate) static EXTENDEDPOINT_IDENTITY: ExtendedPoint = ExtendedPoint(FieldElement2625x4([
21     u32x8::new(0, 1, 0, 0, 1, 0, 0, 0),
22     u32x8::splat(0),
23     u32x8::splat(0),
24     u32x8::splat(0),
25     u32x8::splat(0),
26 ]));
27 
28 /// The identity element as a `CachedPoint`.
29 pub(crate) static CACHEDPOINT_IDENTITY: CachedPoint = CachedPoint(FieldElement2625x4([
30     u32x8::new(121647, 121666, 0, 0, 243332, 67108845, 0, 33554431),
31     u32x8::new(67108864, 0, 33554431, 0, 0, 67108863, 0, 33554431),
32     u32x8::new(67108863, 0, 33554431, 0, 0, 67108863, 0, 33554431),
33     u32x8::new(67108863, 0, 33554431, 0, 0, 67108863, 0, 33554431),
34     u32x8::new(67108863, 0, 33554431, 0, 0, 67108863, 0, 33554431),
35 ]));
36 
37 /// The low limbs of (2p, 2p, 2p, 2p), so that
38 /// ```ascii,no_run
39 /// (2p, 2p, 2p, 2p) = [P_TIMES_2_LO, P_TIMES_2_HI, P_TIMES_2_HI, P_TIMES_2_HI, P_TIMES_2_HI]
40 /// ```
41 pub(crate) static P_TIMES_2_LO: u32x8 = u32x8::new(
42     67108845 << 1,
43     67108845 << 1,
44     33554431 << 1,
45     33554431 << 1,
46     67108845 << 1,
47     67108845 << 1,
48     33554431 << 1,
49     33554431 << 1,
50 );
51 
52 /// The high limbs of (2p, 2p, 2p, 2p), so that
53 /// ```ascii,no_run
54 /// (2p, 2p, 2p, 2p) = [P_TIMES_2_LO, P_TIMES_2_HI, P_TIMES_2_HI, P_TIMES_2_HI, P_TIMES_2_HI]
55 /// ```
56 pub(crate) static P_TIMES_2_HI: u32x8 = u32x8::new(
57     67108863 << 1,
58     67108863 << 1,
59     33554431 << 1,
60     33554431 << 1,
61     67108863 << 1,
62     67108863 << 1,
63     33554431 << 1,
64     33554431 << 1,
65 );
66 
67 /// The low limbs of (16p, 16p, 16p, 16p), so that
68 /// ```ascii,no_run
69 /// (16p, 16p, 16p, 16p) = [P_TIMES_16_LO, P_TIMES_16_HI, P_TIMES_16_HI, P_TIMES_16_HI, P_TIMES_16_HI]
70 /// ```
71 pub(crate) static P_TIMES_16_LO: u32x8 = u32x8::new(
72     67108845 << 4,
73     67108845 << 4,
74     33554431 << 4,
75     33554431 << 4,
76     67108845 << 4,
77     67108845 << 4,
78     33554431 << 4,
79     33554431 << 4,
80 );
81 
82 /// The high limbs of (16p, 16p, 16p, 16p), so that
83 /// ```ascii,no_run
84 /// (16p, 16p, 16p, 16p) = [P_TIMES_16_LO, P_TIMES_16_HI, P_TIMES_16_HI, P_TIMES_16_HI, P_TIMES_16_HI]
85 /// ```
86 pub(crate) static P_TIMES_16_HI: u32x8 = u32x8::new(
87     67108863 << 4,
88     67108863 << 4,
89     33554431 << 4,
90     33554431 << 4,
91     67108863 << 4,
92     67108863 << 4,
93     33554431 << 4,
94     33554431 << 4,
95 );
96 
97 /// Odd multiples of the Ed25519 basepoint:
98 pub(crate) static BASEPOINT_ODD_LOOKUP_TABLE: NafLookupTable8<CachedPoint> = NafLookupTable8([
99     CachedPoint(FieldElement2625x4([
100         u32x8::new(
101             3571425,
102             10045002,
103             19036563,
104             1096096,
105             243332,
106             65897020,
107             0,
108             28963681,
109         ),
110         u32x8::new(
111             30896895,
112             63055514,
113             1614915,
114             5095970,
115             0,
116             53791688,
117             0,
118             31258312,
119         ),
120         u32x8::new(
121             13347627,
122             40339464,
123             2236269,
124             11185503,
125             0,
126             22520087,
127             0,
128             8659512,
129         ),
130         u32x8::new(
131             11125413,
132             29139905,
133             32037254,
134             28360723,
135             0,
136             64556417,
137             0,
138             9635759,
139         ),
140         u32x8::new(
141             33268144,
142             47262491,
143             4336918,
144             15795740,
145             0,
146             22027545,
147             0,
148             4846528,
149         ),
150     ])),
151     CachedPoint(FieldElement2625x4([
152         u32x8::new(
153             47099681,
154             31447946,
155             29365447,
156             24740513,
157             42991046,
158             18317844,
159             16051644,
160             21404226,
161         ),
162         u32x8::new(
163             31708133,
164             28909527,
165             2366091,
166             13703791,
167             469246,
168             54159622,
169             2601402,
170             32988002,
171         ),
172         u32x8::new(
173             63432457,
174             30251794,
175             15163516,
176             18491340,
177             28144087,
178             35605455,
179             13682295,
180             18474872,
181         ),
182         u32x8::new(
183             12221607,
184             4967598,
185             26061980,
186             26008006,
187             20226147,
188             9726961,
189             17410,
190             18051083,
191         ),
192         u32x8::new(
193             60569645,
194             62487085,
195             11911242,
196             21920922,
197             4092105,
198             38186967,
199             22431483,
200             31366585,
201         ),
202     ])),
203     CachedPoint(FieldElement2625x4([
204         u32x8::new(
205             18147205,
206             62587998,
207             2554617,
208             536692,
209             11924528,
210             26674131,
211             17645433,
212             24341419,
213         ),
214         u32x8::new(
215             11573357,
216             27579485,
217             31491870,
218             29000885,
219             10800976,
220             51902791,
221             28076395,
222             20464029,
223         ),
224         u32x8::new(
225             56031649,
226             10856669,
227             11791193,
228             26769430,
229             25306956,
230             5922200,
231             6630685,
232             9385098,
233         ),
234         u32x8::new(
235             31319348,
236             23906711,
237             16290213,
238             32142166,
239             61106354,
240             17181823,
241             3548308,
242             12022566,
243         ),
244         u32x8::new(
245             5904298,
246             50218605,
247             11826440,
248             5492249,
249             10379071,
250             3472255,
251             172742,
252             31948344,
253         ),
254     ])),
255     CachedPoint(FieldElement2625x4([
256         u32x8::new(
257             10625852,
258             15193821,
259             22918394,
260             23676410,
261             53695416,
262             54987793,
263             10067515,
264             11747680,
265         ),
266         u32x8::new(
267             65013325,
268             1309652,
269             29616320,
270             28922974,
271             60360891,
272             19621771,
273             9938982,
274             30406429,
275         ),
276         u32x8::new(
277             54967954,
278             65931918,
279             5595602,
280             25719523,
281             64909864,
282             30566415,
283             15945272,
284             8495317,
285         ),
286         u32x8::new(
287             1167157,
288             55265018,
289             11507029,
290             31641054,
291             43497904,
292             2367338,
293             12937761,
294             27517066,
295         ),
296         u32x8::new(
297             656704,
298             2544994,
299             13006713,
300             480979,
301             38471594,
302             62541240,
303             25353597,
304             11531760,
305         ),
306     ])),
307     CachedPoint(FieldElement2625x4([
308         u32x8::new(
309             22176662,
310             3984313,
311             27495285,
312             4110608,
313             2909584,
314             30594106,
315             15677919,
316             2549183,
317         ),
318         u32x8::new(
319             33979105,
320             62269905,
321             2071511,
322             6894756,
323             53189950,
324             47232857,
325             6408191,
326             6123225,
327         ),
328         u32x8::new(
329             32553873,
330             63948030,
331             12612401,
332             3633166,
333             24054373,
334             37626618,
335             14481327,
336             8520484,
337         ),
338         u32x8::new(
339             56552486,
340             10749438,
341             12034813,
342             28811946,
343             1445640,
344             36755601,
345             12104575,
346             10257833,
347         ),
348         u32x8::new(
349             22795808,
350             48761311,
351             1136056,
352             9380768,
353             1411523,
354             5341811,
355             27318329,
356             9686767,
357         ),
358     ])),
359     CachedPoint(FieldElement2625x4([
360         u32x8::new(
361             21157200,
362             39156966,
363             20473176,
364             4934657,
365             61478183,
366             45121537,
367             5429856,
368             13035023,
369         ),
370         u32x8::new(
371             7954529,
372             58789246,
373             31440083,
374             7054221,
375             38438565,
376             36856107,
377             1364112,
378             14548122,
379         ),
380         u32x8::new(
381             26120083,
382             36321360,
383             4919997,
384             31687496,
385             33757765,
386             36237559,
387             15243054,
388             32163861,
389         ),
390         u32x8::new(
391             25878307,
392             46544824,
393             19455951,
394             2414935,
395             16844726,
396             56521560,
397             32680554,
398             26660660,
399         ),
400         u32x8::new(
401             48360220,
402             43407178,
403             12187042,
404             24925816,
405             7423722,
406             25746484,
407             12814654,
408             17395963,
409         ),
410     ])),
411     CachedPoint(FieldElement2625x4([
412         u32x8::new(
413             63153652,
414             32195955,
415             4087908,
416             8431689,
417             30392384,
418             47203165,
419             8986649,
420             9053039,
421         ),
422         u32x8::new(
423             63659241,
424             47988767,
425             2931872,
426             19953600,
427             11747107,
428             51610101,
429             20952181,
430             13364887,
431         ),
432         u32x8::new(
433             3659197,
434             58790649,
435             5930099,
436             2605312,
437             28477896,
438             580728,
439             20579735,
440             2610622,
441         ),
442         u32x8::new(
443             41781607,
444             17161358,
445             10690531,
446             24368015,
447             47027031,
448             36742339,
449             5414694,
450             13156365,
451         ),
452         u32x8::new(
453             13237853,
454             51182423,
455             8954802,
456             29006542,
457             22643989,
458             56896541,
459             22830593,
460             10289708,
461         ),
462     ])),
463     CachedPoint(FieldElement2625x4([
464         u32x8::new(
465             1401265,
466             58846825,
467             30911620,
468             32239180,
469             15391552,
470             15200821,
471             6339309,
472             16403588,
473         ),
474         u32x8::new(
475             55913797,
476             29541724,
477             1664461,
478             21709410,
479             38470488,
480             47097092,
481             17674945,
482             32666066,
483         ),
484         u32x8::new(
485             22844482,
486             10797709,
487             27548106,
488             31638735,
489             34500968,
490             26611503,
491             19727211,
492             13160873,
493         ),
494         u32x8::new(
495             31485204,
496             14496164,
497             13981208,
498             10276888,
499             5748808,
500             35024436,
501             2740987,
502             7479021,
503         ),
504         u32x8::new(
505             58541207,
506             14866135,
507             32344041,
508             545930,
509             62661488,
510             6941250,
511             27940205,
512             11976112,
513         ),
514     ])),
515     CachedPoint(FieldElement2625x4([
516         u32x8::new(
517             39849808,
518             44781685,
519             15697329,
520             24387845,
521             12501486,
522             50260092,
523             23199481,
524             31929024,
525         ),
526         u32x8::new(
527             24823070,
528             27956017,
529             27034296,
530             10316465,
531             47664045,
532             11152446,
533             15719183,
534             30181617,
535         ),
536         u32x8::new(
537             20771189,
538             19969144,
539             31433937,
540             19185213,
541             27565920,
542             10384445,
543             2893359,
544             9255362,
545         ),
546         u32x8::new(
547             42894974,
548             11925545,
549             32134441,
550             32738810,
551             55916336,
552             32479272,
553             19563550,
554             5511385,
555         ),
556         u32x8::new(
557             17857161,
558             47809169,
559             14564114,
560             27997751,
561             33024640,
562             38669671,
563             31956536,
564             27313245,
565         ),
566     ])),
567     CachedPoint(FieldElement2625x4([
568         u32x8::new(
569             58237774,
570             15917425,
571             18872208,
572             19394230,
573             17374297,
574             6101419,
575             4839741,
576             6596900,
577         ),
578         u32x8::new(
579             66947393,
580             15744215,
581             18368993,
582             17750160,
583             41006525,
584             9205497,
585             2629667,
586             32170865,
587         ),
588         u32x8::new(
589             66481381,
590             1919414,
591             28338762,
592             7372967,
593             33819153,
594             4156199,
595             27126309,
596             12739816,
597         ),
598         u32x8::new(
599             44117158,
600             58545296,
601             22521371,
602             11809712,
603             28998792,
604             50731010,
605             30215699,
606             25748377,
607         ),
608         u32x8::new(
609             23561284,
610             4160244,
611             9035405,
612             24895184,
613             39761639,
614             59253416,
615             8684759,
616             22487864,
617         ),
618     ])),
619     CachedPoint(FieldElement2625x4([
620         u32x8::new(
621             12671134,
622             56419053,
623             16092401,
624             30038207,
625             4002647,
626             47822606,
627             7151311,
628             28430768,
629         ),
630         u32x8::new(
631             61041684,
632             35765374,
633             30598048,
634             19666539,
635             44150175,
636             40140037,
637             290469,
638             28442674,
639         ),
640         u32x8::new(
641             18847796,
642             1371617,
643             33316881,
644             13199936,
645             43646578,
646             17068881,
647             12074900,
648             1537415,
649         ),
650         u32x8::new(
651             10052225,
652             38316070,
653             27469797,
654             5297537,
655             50725570,
656             20435349,
657             10339121,
658             2779737,
659         ),
660         u32x8::new(
661             18372189,
662             15466385,
663             24762130,
664             22217964,
665             23503887,
666             47844464,
667             10415034,
668             2606889,
669         ),
670     ])),
671     CachedPoint(FieldElement2625x4([
672         u32x8::new(
673             55082775,
674             45300503,
675             16032654,
676             5964396,
677             17743504,
678             24634761,
679             19493066,
680             5184611,
681         ),
682         u32x8::new(
683             50172633,
684             35093294,
685             10040575,
686             23616256,
687             4543900,
688             61852191,
689             4049821,
690             7423669,
691         ),
692         u32x8::new(
693             20295398,
694             40009376,
695             10487190,
696             15670429,
697             51972856,
698             58649552,
699             20436392,
700             3432497,
701         ),
702         u32x8::new(
703             35189420,
704             54117751,
705             12825868,
706             6283038,
707             27540739,
708             30648758,
709             22658912,
710             9466689,
711         ),
712         u32x8::new(
713             51737549,
714             40725785,
715             17409814,
716             25201086,
717             21156239,
718             34176168,
719             26814520,
720             5956424,
721         ),
722     ])),
723     CachedPoint(FieldElement2625x4([
724         u32x8::new(
725             8211442,
726             8014184,
727             6260823,
728             22108096,
729             32182620,
730             51844847,
731             2466270,
732             28582231,
733         ),
734         u32x8::new(
735             27199739,
736             3848333,
737             31738017,
738             10892045,
739             4963982,
740             65391770,
741             32551997,
742             28906469,
743         ),
744         u32x8::new(
745             16606846,
746             32207068,
747             26404535,
748             7614129,
749             45416902,
750             65584718,
751             13821785,
752             2646060,
753         ),
754         u32x8::new(
755             36090634,
756             57981287,
757             32247670,
758             22837502,
759             31003861,
760             55448117,
761             6062915,
762             20369975,
763         ),
764         u32x8::new(
765             27381403,
766             50578107,
767             522631,
768             29521058,
769             31137497,
770             40220737,
771             27628049,
772             1824195,
773         ),
774     ])),
775     CachedPoint(FieldElement2625x4([
776         u32x8::new(
777             59402443,
778             17056879,
779             29262689,
780             6131785,
781             52551472,
782             43367471,
783             29423199,
784             18899208,
785         ),
786         u32x8::new(
787             5749414,
788             43514612,
789             11365899,
790             21514624,
791             65591890,
792             60945892,
793             19841732,
794             5628567,
795         ),
796         u32x8::new(
797             19334369,
798             52500268,
799             12307673,
800             5267367,
801             3212103,
802             9035822,
803             29142161,
804             30520954,
805         ),
806         u32x8::new(
807             57261330,
808             6819646,
809             22089161,
810             9800373,
811             55155453,
812             62250856,
813             13766735,
814             25244545,
815         ),
816         u32x8::new(
817             54370226,
818             61888301,
819             24496089,
820             2540581,
821             65637506,
822             60274355,
823             18154273,
824             11687259,
825         ),
826     ])),
827     CachedPoint(FieldElement2625x4([
828         u32x8::new(
829             12521903,
830             26014045,
831             13995625,
832             33360175,
833             23605474,
834             7376434,
835             27229267,
836             17195036,
837         ),
838         u32x8::new(
839             59482891,
840             10074423,
841             574357,
842             3857753,
843             61377787,
844             50306685,
845             5241065,
846             20234396,
847         ),
848         u32x8::new(
849             23674717,
850             6997172,
851             20771841,
852             16858511,
853             40565304,
854             29973136,
855             7049812,
856             14585010,
857         ),
858         u32x8::new(
859             1427477,
860             13295732,
861             31762066,
862             31499740,
863             60419925,
864             54666164,
865             22009424,
866             8089609,
867         ),
868         u32x8::new(
869             58154031,
870             41593020,
871             15342328,
872             957047,
873             38937260,
874             37037498,
875             24871992,
876             32973409,
877         ),
878     ])),
879     CachedPoint(FieldElement2625x4([
880         u32x8::new(
881             30654745,
882             51286025,
883             21206982,
884             2433562,
885             12780105,
886             31732574,
887             33087964,
888             33081189,
889         ),
890         u32x8::new(
891             66640017,
892             42720009,
893             16567620,
894             15300745,
895             1530367,
896             33001123,
897             20930247,
898             21042661,
899         ),
900         u32x8::new(
901             15003356,
902             5294119,
903             22985605,
904             18928772,
905             32628461,
906             18230172,
907             14773298,
908             27193722,
909         ),
910         u32x8::new(
911             27555,
912             65346287,
913             17017174,
914             7837720,
915             21499787,
916             42855613,
917             22474984,
918             13675085,
919         ),
920         u32x8::new(
921             24164369,
922             50130116,
923             5973149,
924             24152073,
925             1577334,
926             25400030,
927             18648484,
928             32228854,
929         ),
930     ])),
931     CachedPoint(FieldElement2625x4([
932         u32x8::new(
933             49518649,
934             59119280,
935             31670678,
936             20396561,
937             61728330,
938             651402,
939             176032,
940             9529498,
941         ),
942         u32x8::new(
943             61765532,
944             9082232,
945             32794568,
946             15526956,
947             48543100,
948             32614212,
949             19001206,
950             25680229,
951         ),
952         u32x8::new(
953             32086091,
954             10373081,
955             8996131,
956             31822823,
957             35788988,
958             49973190,
959             30542040,
960             17858455,
961         ),
962         u32x8::new(
963             48130197,
964             58121889,
965             27753291,
966             29923268,
967             54448075,
968             43300790,
969             9336565,
970             15770022,
971         ),
972         u32x8::new(
973             57725546,
974             20557498,
975             9366233,
976             16023566,
977             16189031,
978             2837363,
979             24315301,
980             27003505,
981         ),
982     ])),
983     CachedPoint(FieldElement2625x4([
984         u32x8::new(
985             28286608,
986             10767548,
987             18220739,
988             5413236,
989             48253387,
990             58255702,
991             11864864,
992             28527159,
993         ),
994         u32x8::new(
995             45038176,
996             58655197,
997             25648758,
998             10951484,
999             42564382,
1000             34542843,
1001             23146954,
1002             22234334,
1003         ),
1004         u32x8::new(
1005             14858710,
1006             24978793,
1007             15040559,
1008             4379220,
1009             47621477,
1010             40271440,
1011             15650420,
1012             1998736,
1013         ),
1014         u32x8::new(
1015             24106391,
1016             9626149,
1017             344505,
1018             25253814,
1019             34579800,
1020             59687089,
1021             25718289,
1022             25904133,
1023         ),
1024         u32x8::new(
1025             1981195,
1026             37751302,
1027             26132048,
1028             1764722,
1029             13288231,
1030             28808622,
1031             12531301,
1032             18292949,
1033         ),
1034     ])),
1035     CachedPoint(FieldElement2625x4([
1036         u32x8::new(
1037             13869851,
1038             31448904,
1039             14963539,
1040             7581293,
1041             20536485,
1042             35021083,
1043             21257574,
1044             33356609,
1045         ),
1046         u32x8::new(
1047             36903364,
1048             18429241,
1049             11097857,
1050             5943856,
1051             60583077,
1052             40015815,
1053             30509523,
1054             31915271,
1055         ),
1056         u32x8::new(
1057             49161801,
1058             40681915,
1059             67892,
1060             25454357,
1061             22779677,
1062             25798439,
1063             15964829,
1064             5863227,
1065         ),
1066         u32x8::new(
1067             60810637,
1068             4496471,
1069             5217137,
1070             14095116,
1071             50942411,
1072             50712663,
1073             2507380,
1074             26844507,
1075         ),
1076         u32x8::new(
1077             34579752,
1078             53519385,
1079             10859797,
1080             18816024,
1081             42552864,
1082             39478521,
1083             6783896,
1084             17277037,
1085         ),
1086     ])),
1087     CachedPoint(FieldElement2625x4([
1088         u32x8::new(
1089             43287109,
1090             27900723,
1091             33182187,
1092             2766754,
1093             17041989,
1094             1018260,
1095             33392790,
1096             4830032,
1097         ),
1098         u32x8::new(
1099             60194178,
1100             30788903,
1101             24728888,
1102             14513195,
1103             20897010,
1104             28843233,
1105             20111980,
1106             17475240,
1107         ),
1108         u32x8::new(
1109             46042274,
1110             19257042,
1111             4628173,
1112             31649727,
1113             27388316,
1114             66631493,
1115             11541886,
1116             6408028,
1117         ),
1118         u32x8::new(
1119             57024680,
1120             49536568,
1121             32050358,
1122             31321917,
1123             17437691,
1124             49672356,
1125             2884755,
1126             20493991,
1127         ),
1128         u32x8::new(
1129             59553007,
1130             46782643,
1131             29001173,
1132             1814088,
1133             21930692,
1134             51319706,
1135             14965872,
1136             30748046,
1137         ),
1138     ])),
1139     CachedPoint(FieldElement2625x4([
1140         u32x8::new(
1141             16441817,
1142             36111849,
1143             6900424,
1144             602234,
1145             46522199,
1146             16441484,
1147             8135070,
1148             21726541,
1149         ),
1150         u32x8::new(
1151             37711225,
1152             32701959,
1153             11679112,
1154             13125533,
1155             32154135,
1156             9407918,
1157             26554289,
1158             620848,
1159         ),
1160         u32x8::new(
1161             19233407,
1162             30086864,
1163             14679568,
1164             2797374,
1165             4892806,
1166             7993077,
1167             247658,
1168             5632804,
1169         ),
1170         u32x8::new(
1171             37427262,
1172             26675495,
1173             27125659,
1174             13496131,
1175             50718473,
1176             40115609,
1177             28505351,
1178             27837393,
1179         ),
1180         u32x8::new(
1181             196819,
1182             18410429,
1183             7070012,
1184             21691388,
1185             29763371,
1186             24754123,
1187             9727048,
1188             10930179,
1189         ),
1190     ])),
1191     CachedPoint(FieldElement2625x4([
1192         u32x8::new(
1193             28319289,
1194             40734650,
1195             16225680,
1196             24739184,
1197             64272368,
1198             35356897,
1199             7866648,
1200             13635853,
1201         ),
1202         u32x8::new(
1203             34165295,
1204             48328447,
1205             27041670,
1206             23643655,
1207             48949950,
1208             52963288,
1209             30411133,
1210             6045174,
1211         ),
1212         u32x8::new(
1213             18583559,
1214             41649834,
1215             9813585,
1216             26098520,
1217             25682734,
1218             26733526,
1219             19276490,
1220             10654728,
1221         ),
1222         u32x8::new(
1223             34867476,
1224             52715968,
1225             5694571,
1226             13380978,
1227             15134994,
1228             1831255,
1229             8608001,
1230             17266401,
1231         ),
1232         u32x8::new(
1233             59925903,
1234             44282172,
1235             27802465,
1236             1855069,
1237             14234749,
1238             36635487,
1239             11302294,
1240             10938429,
1241         ),
1242     ])),
1243     CachedPoint(FieldElement2625x4([
1244         u32x8::new(
1245             8373273,
1246             49064494,
1247             4932071,
1248             32997499,
1249             38472880,
1250             29335908,
1251             14504412,
1252             22460029,
1253         ),
1254         u32x8::new(
1255             31795930,
1256             50785923,
1257             25835990,
1258             25790073,
1259             65669841,
1260             11360450,
1261             9969157,
1262             9008164,
1263         ),
1264         u32x8::new(
1265             50262498,
1266             45869261,
1267             16124434,
1268             15336007,
1269             882762,
1270             42522623,
1271             11277198,
1272             26296377,
1273         ),
1274         u32x8::new(
1275             42332732,
1276             59129236,
1277             14452816,
1278             567985,
1279             208061,
1280             34722729,
1281             32008143,
1282             14828749,
1283         ),
1284         u32x8::new(
1285             17937794,
1286             36846032,
1287             32102665,
1288             4442466,
1289             19745435,
1290             31633451,
1291             7146411,
1292             15812027,
1293         ),
1294     ])),
1295     CachedPoint(FieldElement2625x4([
1296         u32x8::new(
1297             30741269,
1298             38648744,
1299             12562645,
1300             30092623,
1301             25073992,
1302             28730659,
1303             27911745,
1304             30000958,
1305         ),
1306         u32x8::new(
1307             2859794,
1308             25991700,
1309             17776078,
1310             27091930,
1311             2328322,
1312             60061146,
1313             18581824,
1314             18039008,
1315         ),
1316         u32x8::new(
1317             58206333,
1318             17917354,
1319             1972306,
1320             11853766,
1321             2655376,
1322             60543390,
1323             18416710,
1324             13287440,
1325         ),
1326         u32x8::new(
1327             62746330,
1328             61423885,
1329             21246577,
1330             2266675,
1331             60099139,
1332             14804707,
1333             14772234,
1334             20679434,
1335         ),
1336         u32x8::new(
1337             26987698,
1338             15488817,
1339             715616,
1340             2339565,
1341             51980752,
1342             17333865,
1343             21965103,
1344             10839820,
1345         ),
1346     ])),
1347     CachedPoint(FieldElement2625x4([
1348         u32x8::new(
1349             18672548,
1350             57660959,
1351             16042910,
1352             19519287,
1353             62865851,
1354             17580961,
1355             26628347,
1356             23774759,
1357         ),
1358         u32x8::new(
1359             368070,
1360             3464471,
1361             25888304,
1362             30370559,
1363             52396053,
1364             45426828,
1365             28745251,
1366             9246829,
1367         ),
1368         u32x8::new(
1369             29090099,
1370             57950037,
1371             23104657,
1372             4903923,
1373             10987778,
1374             56163684,
1375             23621539,
1376             10332760,
1377         ),
1378         u32x8::new(
1379             53338235,
1380             44851161,
1381             21606845,
1382             31069622,
1383             4243630,
1384             34464392,
1385             11286454,
1386             5802022,
1387         ),
1388         u32x8::new(
1389             46710757,
1390             63389067,
1391             11642865,
1392             1980986,
1393             12967337,
1394             28162061,
1395             3854192,
1396             30432268,
1397         ),
1398     ])),
1399     CachedPoint(FieldElement2625x4([
1400         u32x8::new(
1401             12179834,
1402             41005450,
1403             12809619,
1404             33525228,
1405             4624405,
1406             46957889,
1407             16968743,
1408             11827816,
1409         ),
1410         u32x8::new(
1411             51521162,
1412             12466775,
1413             31791271,
1414             15303651,
1415             49798465,
1416             62714504,
1417             6509600,
1418             12918560,
1419         ),
1420         u32x8::new(
1421             20445559,
1422             1756449,
1423             28848701,
1424             7920171,
1425             9835040,
1426             5900071,
1427             28757409,
1428             12376688,
1429         ),
1430         u32x8::new(
1431             18259496,
1432             14281012,
1433             21767026,
1434             10232236,
1435             20000226,
1436             12400540,
1437             4104902,
1438             23570543,
1439         ),
1440         u32x8::new(
1441             3687440,
1442             26546648,
1443             13328821,
1444             26841081,
1445             49822734,
1446             22334054,
1447             244496,
1448             24862543,
1449         ),
1450     ])),
1451     CachedPoint(FieldElement2625x4([
1452         u32x8::new(
1453             59523541,
1454             62195428,
1455             3853227,
1456             13954801,
1457             12387708,
1458             47627615,
1459             27221350,
1460             17899572,
1461         ),
1462         u32x8::new(
1463             63193587,
1464             36343307,
1465             14595132,
1466             6880795,
1467             1364792,
1468             37648434,
1469             3259017,
1470             20536046,
1471         ),
1472         u32x8::new(
1473             30362834,
1474             10440372,
1475             9574624,
1476             11729232,
1477             63861613,
1478             21748389,
1479             5530846,
1480             2721586,
1481         ),
1482         u32x8::new(
1483             18339760,
1484             1550632,
1485             17170271,
1486             25732971,
1487             28459263,
1488             63142237,
1489             21642345,
1490             31557672,
1491         ),
1492         u32x8::new(
1493             10611282,
1494             5204623,
1495             18049257,
1496             214175,
1497             19432723,
1498             49809070,
1499             26010406,
1500             27449522,
1501         ),
1502     ])),
1503     CachedPoint(FieldElement2625x4([
1504         u32x8::new(
1505             19770733,
1506             26478685,
1507             9464541,
1508             29158041,
1509             28604307,
1510             45196604,
1511             7586524,
1512             6641859,
1513         ),
1514         u32x8::new(
1515             65654484,
1516             52230498,
1517             30886612,
1518             19112823,
1519             47271809,
1520             38942611,
1521             16020035,
1522             10773481,
1523         ),
1524         u32x8::new(
1525             27464323,
1526             54451016,
1527             20646645,
1528             17732915,
1529             23008717,
1530             53626684,
1531             3253189,
1532             15614410,
1533         ),
1534         u32x8::new(
1535             52381752,
1536             40693008,
1537             7063024,
1538             28469981,
1539             51159478,
1540             44543211,
1541             19941777,
1542             5985451,
1543         ),
1544         u32x8::new(
1545             13553668,
1546             35524849,
1547             14788737,
1548             1883845,
1549             12385775,
1550             47958835,
1551             29135466,
1552             1776722,
1553         ),
1554     ])),
1555     CachedPoint(FieldElement2625x4([
1556         u32x8::new(
1557             36719806,
1558             20827965,
1559             23175373,
1560             32996806,
1561             42041892,
1562             65708790,
1563             5467143,
1564             20884008,
1565         ),
1566         u32x8::new(
1567             43256281,
1568             40770646,
1569             17244063,
1570             31959819,
1571             64366384,
1572             43544617,
1573             25057754,
1574             12628720,
1575         ),
1576         u32x8::new(
1577             17337782,
1578             58472057,
1579             27906934,
1580             15305274,
1581             30292418,
1582             39284317,
1583             16946773,
1584             24806712,
1585         ),
1586         u32x8::new(
1587             6485126,
1588             32447403,
1589             16261486,
1590             13561940,
1591             49439635,
1592             10738368,
1593             16419889,
1594             8897231,
1595         ),
1596         u32x8::new(
1597             44812203,
1598             40122262,
1599             25496058,
1600             2759794,
1601             25295304,
1602             52178368,
1603             24154195,
1604             29334408,
1605         ),
1606     ])),
1607     CachedPoint(FieldElement2625x4([
1608         u32x8::new(
1609             42307254,
1610             57217102,
1611             1088936,
1612             3832827,
1613             33905401,
1614             23130334,
1615             6958056,
1616             12622851,
1617         ),
1618         u32x8::new(
1619             3881189,
1620             14870059,
1621             19712830,
1622             6071598,
1623             38147944,
1624             60776394,
1625             3427938,
1626             13765703,
1627         ),
1628         u32x8::new(
1629             7666911,
1630             24227591,
1631             17077136,
1632             22967588,
1633             6874639,
1634             30915523,
1635             11451695,
1636             24292224,
1637         ),
1638         u32x8::new(
1639             13659529,
1640             31984463,
1641             28764736,
1642             20506164,
1643             64729627,
1644             49321636,
1645             28284636,
1646             25472371,
1647         ),
1648         u32x8::new(
1649             39360308,
1650             42281399,
1651             9446504,
1652             868960,
1653             49227724,
1654             21351115,
1655             30561851,
1656             11292096,
1657         ),
1658     ])),
1659     CachedPoint(FieldElement2625x4([
1660         u32x8::new(
1661             7071115,
1662             46444090,
1663             5387916,
1664             15432877,
1665             27226682,
1666             41506862,
1667             2398278,
1668             3978240,
1669         ),
1670         u32x8::new(
1671             51009614,
1672             54216973,
1673             24368938,
1674             31392616,
1675             38456150,
1676             62313644,
1677             6729154,
1678             99724,
1679         ),
1680         u32x8::new(
1681             17474332,
1682             62857913,
1683             2619930,
1684             30659308,
1685             18268181,
1686             32809239,
1687             22826292,
1688             24561895,
1689         ),
1690         u32x8::new(
1691             38187020,
1692             67003092,
1693             14118280,
1694             16500577,
1695             18808560,
1696             64983716,
1697             25712929,
1698             32518261,
1699         ),
1700         u32x8::new(
1701             25735813,
1702             62284262,
1703             10824872,
1704             20558596,
1705             48149681,
1706             31162667,
1707             22608274,
1708             26285185,
1709         ),
1710     ])),
1711     CachedPoint(FieldElement2625x4([
1712         u32x8::new(
1713             963440,
1714             63742255,
1715             10230323,
1716             25515008,
1717             32506414,
1718             6105697,
1719             25980317,
1720             24645129,
1721         ),
1722         u32x8::new(
1723             7162189,
1724             8101249,
1725             14679265,
1726             33443386,
1727             2002396,
1728             8541405,
1729             19442276,
1730             4795881,
1731         ),
1732         u32x8::new(
1733             8116694,
1734             51463069,
1735             4415528,
1736             25599140,
1737             55805721,
1738             39582709,
1739             6719436,
1740             30033839,
1741         ),
1742         u32x8::new(
1743             14468202,
1744             42181869,
1745             25188826,
1746             9639755,
1747             47546189,
1748             62711146,
1749             32762447,
1750             18338064,
1751         ),
1752         u32x8::new(
1753             33880058,
1754             32810909,
1755             8969931,
1756             13095238,
1757             38360605,
1758             40138517,
1759             9246134,
1760             4928058,
1761         ),
1762     ])),
1763     CachedPoint(FieldElement2625x4([
1764         u32x8::new(
1765             63655588,
1766             17883670,
1767             9410246,
1768             26162761,
1769             5000571,
1770             7349225,
1771             23785252,
1772             32751089,
1773         ),
1774         u32x8::new(
1775             28568737,
1776             10733123,
1777             9342397,
1778             21570673,
1779             54096560,
1780             32467591,
1781             20494687,
1782             21511513,
1783         ),
1784         u32x8::new(
1785             47675157,
1786             47932807,
1787             29250946,
1788             15672208,
1789             59760469,
1790             9945465,
1791             14939287,
1792             18437405,
1793         ),
1794         u32x8::new(
1795             37985267,
1796             8609815,
1797             31573002,
1798             3373596,
1799             47828883,
1800             20834216,
1801             13248616,
1802             24154292,
1803         ),
1804         u32x8::new(
1805             5543543,
1806             29553242,
1807             3386453,
1808             30501150,
1809             25058089,
1810             15236571,
1811             8814395,
1812             32462955,
1813         ),
1814     ])),
1815     CachedPoint(FieldElement2625x4([
1816         u32x8::new(
1817             39158670,
1818             15322548,
1819             20495103,
1820             3312736,
1821             14557171,
1822             12985179,
1823             8044741,
1824             3176899,
1825         ),
1826         u32x8::new(
1827             24673290,
1828             29693310,
1829             21412266,
1830             18324699,
1831             2154518,
1832             40329021,
1833             17500543,
1834             3954277,
1835         ),
1836         u32x8::new(
1837             36758685,
1838             38738957,
1839             165513,
1840             14691866,
1841             3070475,
1842             10424235,
1843             17096536,
1844             16896898,
1845         ),
1846         u32x8::new(
1847             59790459,
1848             43094586,
1849             8720681,
1850             10423589,
1851             1122030,
1852             31545615,
1853             4463786,
1854             31811293,
1855         ),
1856         u32x8::new(
1857             49778992,
1858             60881044,
1859             20509974,
1860             5832494,
1861             64155961,
1862             31483358,
1863             4511231,
1864             20307815,
1865         ),
1866     ])),
1867     CachedPoint(FieldElement2625x4([
1868         u32x8::new(
1869             2863373,
1870             40876242,
1871             26865913,
1872             24067353,
1873             15726407,
1874             40919070,
1875             12953902,
1876             9931535,
1877         ),
1878         u32x8::new(
1879             60934877,
1880             42512204,
1881             21649141,
1882             21945190,
1883             52211954,
1884             60984193,
1885             7046207,
1886             5363493,
1887         ),
1888         u32x8::new(
1889             4205971,
1890             64068464,
1891             18197273,
1892             7327176,
1893             51527794,
1894             21166920,
1895             20669933,
1896             11828242,
1897         ),
1898         u32x8::new(
1899             59782815,
1900             49617225,
1901             15379924,
1902             457923,
1903             9320508,
1904             21498914,
1905             3242540,
1906             31563182,
1907         ),
1908         u32x8::new(
1909             27714753,
1910             8664670,
1911             3366162,
1912             26338598,
1913             56775518,
1914             25796006,
1915             13129151,
1916             21388876,
1917         ),
1918     ])),
1919     CachedPoint(FieldElement2625x4([
1920         u32x8::new(
1921             59276548,
1922             49972346,
1923             16795002,
1924             33455915,
1925             48430097,
1926             53857205,
1927             18627071,
1928             32474471,
1929         ),
1930         u32x8::new(
1931             42160315,
1932             50705892,
1933             13530540,
1934             28012698,
1935             19833221,
1936             55886870,
1937             20191784,
1938             9644313,
1939         ),
1940         u32x8::new(
1941             20372416,
1942             28414713,
1943             24084234,
1944             31804096,
1945             33815377,
1946             36131001,
1947             17251241,
1948             18291088,
1949         ),
1950         u32x8::new(
1951             56234667,
1952             14920441,
1953             2033267,
1954             29572003,
1955             1724043,
1956             45519699,
1957             17873735,
1958             501988,
1959         ),
1960         u32x8::new(
1961             50031659,
1962             31517850,
1963             15697583,
1964             1016845,
1965             43104661,
1966             54769582,
1967             8008601,
1968             27257051,
1969         ),
1970     ])),
1971     CachedPoint(FieldElement2625x4([
1972         u32x8::new(
1973             52951491,
1974             66542164,
1975             14853573,
1976             30444631,
1977             12045973,
1978             24321813,
1979             16545674,
1980             18160646,
1981         ),
1982         u32x8::new(
1983             60107911,
1984             1126003,
1985             5947677,
1986             19486116,
1987             41119984,
1988             30860440,
1989             7935395,
1990             13354438,
1991         ),
1992         u32x8::new(
1993             17841328,
1994             11063269,
1995             1664538,
1996             26687568,
1997             6268968,
1998             22280371,
1999             17275484,
2000             4523163,
2001         ),
2002         u32x8::new(
2003             15886041,
2004             56799482,
2005             15446552,
2006             21712778,
2007             1005290,
2008             17827215,
2009             4978741,
2010             6854882,
2011         ),
2012         u32x8::new(
2013             34319277,
2014             47731002,
2015             20321804,
2016             28544575,
2017             29591814,
2018             63376351,
2019             24754545,
2020             26001714,
2021         ),
2022     ])),
2023     CachedPoint(FieldElement2625x4([
2024         u32x8::new(
2025             66783087,
2026             5234346,
2027             46102,
2028             8566476,
2029             19947339,
2030             20180418,
2031             25398238,
2032             3726678,
2033         ),
2034         u32x8::new(
2035             63890180,
2036             46380965,
2037             20674069,
2038             5366544,
2039             59661487,
2040             48406612,
2041             31533614,
2042             7071217,
2043         ),
2044         u32x8::new(
2045             13104676,
2046             1406631,
2047             24326736,
2048             19854367,
2049             61039528,
2050             11019904,
2051             31967425,
2052             19219275,
2053         ),
2054         u32x8::new(
2055             39003597,
2056             30143957,
2057             15351834,
2058             8639435,
2059             57309582,
2060             61436794,
2061             15830475,
2062             10090318,
2063         ),
2064         u32x8::new(
2065             45923044,
2066             6700175,
2067             99413,
2068             21263025,
2069             23762647,
2070             53905481,
2071             6063914,
2072             10065424,
2073         ),
2074     ])),
2075     CachedPoint(FieldElement2625x4([
2076         u32x8::new(
2077             42822326,
2078             57678669,
2079             4052879,
2080             25452667,
2081             54049411,
2082             2373092,
2083             22337016,
2084             7701046,
2085         ),
2086         u32x8::new(
2087             44382355,
2088             43307377,
2089             16761537,
2090             30373573,
2091             49790216,
2092             23230748,
2093             25655306,
2094             10519391,
2095         ),
2096         u32x8::new(
2097             919475,
2098             59371245,
2099             1273450,
2100             25558666,
2101             9724711,
2102             8556709,
2103             25755845,
2104             10887647,
2105         ),
2106         u32x8::new(
2107             25465699,
2108             44651158,
2109             17658392,
2110             11257418,
2111             29735193,
2112             22885150,
2113             7094716,
2114             26828565,
2115         ),
2116         u32x8::new(
2117             48237389,
2118             47661599,
2119             27054393,
2120             7328070,
2121             27280193,
2122             65616691,
2123             23062005,
2124             4170709,
2125         ),
2126     ])),
2127     CachedPoint(FieldElement2625x4([
2128         u32x8::new(
2129             26535281,
2130             60238317,
2131             30343788,
2132             25790743,
2133             37993933,
2134             24614372,
2135             9523840,
2136             10401918,
2137         ),
2138         u32x8::new(
2139             2783987,
2140             29468958,
2141             4697011,
2142             19804475,
2143             37246678,
2144             46797720,
2145             10261254,
2146             18942252,
2147         ),
2148         u32x8::new(
2149             58135580,
2150             60247753,
2151             25301938,
2152             6844561,
2153             20949454,
2154             39844754,
2155             4552026,
2156             919057,
2157         ),
2158         u32x8::new(
2159             6694071,
2160             44126261,
2161             32285330,
2162             31370180,
2163             24603698,
2164             53328179,
2165             13971149,
2166             5325636,
2167         ),
2168         u32x8::new(
2169             64879487,
2170             582094,
2171             17982081,
2172             19190425,
2173             24951286,
2174             26923842,
2175             29077174,
2176             33286062,
2177         ),
2178     ])),
2179     CachedPoint(FieldElement2625x4([
2180         u32x8::new(
2181             54863941,
2182             67016431,
2183             1224043,
2184             23371240,
2185             62940074,
2186             52101083,
2187             13523637,
2188             30366406,
2189         ),
2190         u32x8::new(
2191             36324581,
2192             25407485,
2193             18258623,
2194             4698602,
2195             50300544,
2196             2658516,
2197             26300935,
2198             2611030,
2199         ),
2200         u32x8::new(
2201             27183975,
2202             21791014,
2203             18105064,
2204             9875199,
2205             58118912,
2206             54198635,
2207             6400311,
2208             14767984,
2209         ),
2210         u32x8::new(
2211             33918318,
2212             42937962,
2213             14809334,
2214             22136592,
2215             10636588,
2216             29082337,
2217             29829692,
2218             28549776,
2219         ),
2220         u32x8::new(
2221             61080905,
2222             854212,
2223             12202487,
2224             20004503,
2225             9256495,
2226             6903981,
2227             20567109,
2228             347423,
2229         ),
2230     ])),
2231     CachedPoint(FieldElement2625x4([
2232         u32x8::new(
2233             41391822,
2234             34336880,
2235             22362564,
2236             14247996,
2237             12115604,
2238             41583344,
2239             7639288,
2240             28910945,
2241         ),
2242         u32x8::new(
2243             62066617,
2244             59758859,
2245             26665947,
2246             11614812,
2247             65737664,
2248             45704543,
2249             30324810,
2250             12868376,
2251         ),
2252         u32x8::new(
2253             17491771,
2254             43589814,
2255             9454919,
2256             26047850,
2257             52629282,
2258             39304244,
2259             3868968,
2260             19296062,
2261         ),
2262         u32x8::new(
2263             17826638,
2264             30413590,
2265             32534225,
2266             32741469,
2267             15012391,
2268             14365713,
2269             33039233,
2270             14791399,
2271         ),
2272         u32x8::new(
2273             64115596,
2274             59197067,
2275             32739005,
2276             23275744,
2277             32954320,
2278             22241406,
2279             20788442,
2280             4942942,
2281         ),
2282     ])),
2283     CachedPoint(FieldElement2625x4([
2284         u32x8::new(
2285             31956192,
2286             59570132,
2287             2784352,
2288             4237732,
2289             47222312,
2290             4860927,
2291             18658867,
2292             15279314,
2293         ),
2294         u32x8::new(
2295             63240583,
2296             28160478,
2297             23524941,
2298             13390861,
2299             66437406,
2300             57718120,
2301             33345312,
2302             28896298,
2303         ),
2304         u32x8::new(
2305             39026193,
2306             46239965,
2307             21440243,
2308             25070488,
2309             64012383,
2310             60999016,
2311             16517060,
2312             29565907,
2313         ),
2314         u32x8::new(
2315             18118181,
2316             60161496,
2317             4212092,
2318             23976240,
2319             36277753,
2320             62363144,
2321             5816868,
2322             16964362,
2323         ),
2324         u32x8::new(
2325             18196138,
2326             62490693,
2327             281468,
2328             7934713,
2329             56027312,
2330             62015725,
2331             4837237,
2332             32932252,
2333         ),
2334     ])),
2335     CachedPoint(FieldElement2625x4([
2336         u32x8::new(
2337             29885826,
2338             51028067,
2339             30418143,
2340             33438769,
2341             62542283,
2342             39442528,
2343             31535876,
2344             143299,
2345         ),
2346         u32x8::new(
2347             17143063,
2348             56709783,
2349             14451852,
2350             15782104,
2351             32762665,
2352             14047066,
2353             26295037,
2354             5432487,
2355         ),
2356         u32x8::new(
2357             75151,
2358             533606,
2359             7539077,
2360             30926189,
2361             38410914,
2362             23771680,
2363             4872443,
2364             29199566,
2365         ),
2366         u32x8::new(
2367             61522396,
2368             48934708,
2369             16223126,
2370             207380,
2371             11171993,
2372             47975147,
2373             14164574,
2374             352966,
2375         ),
2376         u32x8::new(
2377             15449006,
2378             56530757,
2379             26796528,
2380             12045834,
2381             63738697,
2382             40667227,
2383             33001582,
2384             9101885,
2385         ),
2386     ])),
2387     CachedPoint(FieldElement2625x4([
2388         u32x8::new(
2389             43331297,
2390             18431341,
2391             25801195,
2392             17267698,
2393             19365485,
2394             57295202,
2395             22218985,
2396             21284590,
2397         ),
2398         u32x8::new(
2399             2429849,
2400             19152559,
2401             10762172,
2402             22564684,
2403             21880390,
2404             66866426,
2405             20357935,
2406             22641906,
2407         ),
2408         u32x8::new(
2409             19771185,
2410             31652693,
2411             3666117,
2412             28136958,
2413             23624283,
2414             55101502,
2415             6313920,
2416             6783662,
2417         ),
2418         u32x8::new(
2419             3487137,
2420             7092443,
2421             11001876,
2422             26196524,
2423             47319246,
2424             44542068,
2425             17594073,
2426             15027760,
2427         ),
2428         u32x8::new(
2429             49563607,
2430             32191113,
2431             4991283,
2432             25400512,
2433             46539152,
2434             4155103,
2435             32368171,
2436             201203,
2437         ),
2438     ])),
2439     CachedPoint(FieldElement2625x4([
2440         u32x8::new(
2441             20548943,
2442             14334571,
2443             4073874,
2444             6368588,
2445             53208883,
2446             56484515,
2447             15970071,
2448             25561889,
2449         ),
2450         u32x8::new(
2451             49915097,
2452             44030795,
2453             11202344,
2454             29284344,
2455             60258023,
2456             66225712,
2457             8075764,
2458             12383512,
2459         ),
2460         u32x8::new(
2461             45248912,
2462             4933668,
2463             9592153,
2464             5819559,
2465             31030983,
2466             38174071,
2467             32435814,
2468             7442522,
2469         ),
2470         u32x8::new(
2471             62688129,
2472             48218381,
2473             22089545,
2474             12897361,
2475             21050881,
2476             34278889,
2477             7569163,
2478             3225449,
2479         ),
2480         u32x8::new(
2481             19050183,
2482             51089071,
2483             32935757,
2484             22640195,
2485             66122318,
2486             47144608,
2487             18743677,
2488             25177079,
2489         ),
2490     ])),
2491     CachedPoint(FieldElement2625x4([
2492         u32x8::new(
2493             41186817,
2494             46681702,
2495             31819867,
2496             32997133,
2497             38559207,
2498             27147015,
2499             30293819,
2500             16762988,
2501         ),
2502         u32x8::new(
2503             24154689,
2504             51762873,
2505             23883879,
2506             13510519,
2507             55338250,
2508             61224161,
2509             11663149,
2510             30803960,
2511         ),
2512         u32x8::new(
2513             18104238,
2514             14117824,
2515             11724021,
2516             21362053,
2517             65704761,
2518             35530242,
2519             13498058,
2520             33522849,
2521         ),
2522         u32x8::new(
2523             63812888,
2524             23995539,
2525             28920539,
2526             24005193,
2527             26412223,
2528             36582218,
2529             4251418,
2530             26160309,
2531         ),
2532         u32x8::new(
2533             16822053,
2534             66064082,
2535             3482145,
2536             31979593,
2537             45937188,
2538             54475379,
2539             612917,
2540             7976478,
2541         ),
2542     ])),
2543     CachedPoint(FieldElement2625x4([
2544         u32x8::new(
2545             46509314,
2546             55327128,
2547             8944536,
2548             274914,
2549             26432930,
2550             53829300,
2551             21192572,
2552             3569894,
2553         ),
2554         u32x8::new(
2555             20919764,
2556             64356651,
2557             30642344,
2558             17215170,
2559             20335124,
2560             11203745,
2561             18663316,
2562             19024174,
2563         ),
2564         u32x8::new(
2565             59297055,
2566             53842463,
2567             3680204,
2568             9806710,
2569             54004169,
2570             51484914,
2571             29807998,
2572             20134199,
2573         ),
2574         u32x8::new(
2575             14781592,
2576             22628010,
2577             26877930,
2578             25880359,
2579             30434803,
2580             190607,
2581             30184292,
2582             8991040,
2583         ),
2584         u32x8::new(
2585             64400983,
2586             64591751,
2587             854562,
2588             28216111,
2589             20010398,
2590             50414793,
2591             9803872,
2592             22687008,
2593         ),
2594     ])),
2595     CachedPoint(FieldElement2625x4([
2596         u32x8::new(
2597             15091184,
2598             32550863,
2599             8818643,
2600             4244752,
2601             43123513,
2602             64565526,
2603             408838,
2604             13206998,
2605         ),
2606         u32x8::new(
2607             16405061,
2608             60379639,
2609             31489017,
2610             20949281,
2611             27568751,
2612             38734986,
2613             8364264,
2614             12451020,
2615         ),
2616         u32x8::new(
2617             16005217,
2618             58008076,
2619             1406778,
2620             26546927,
2621             39571784,
2622             56365493,
2623             31274296,
2624             8918790,
2625         ),
2626         u32x8::new(
2627             23271122,
2628             19453469,
2629             27718201,
2630             32742670,
2631             234332,
2632             36785342,
2633             22601675,
2634             14331046,
2635         ),
2636         u32x8::new(
2637             40636025,
2638             22442705,
2639             22115403,
2640             23745859,
2641             41164945,
2642             61012,
2643             12499614,
2644             542137,
2645         ),
2646     ])),
2647     CachedPoint(FieldElement2625x4([
2648         u32x8::new(
2649             62776018,
2650             32835413,
2651             17373246,
2652             17187309,
2653             54469193,
2654             21770290,
2655             15923753,
2656             28996575,
2657         ),
2658         u32x8::new(
2659             59385210,
2660             63082298,
2661             12568449,
2662             8509004,
2663             9483342,
2664             16105238,
2665             5756054,
2666             26890758,
2667         ),
2668         u32x8::new(
2669             53987996,
2670             38201748,
2671             5521661,
2672             19060159,
2673             18663191,
2674             9093637,
2675             27786835,
2676             31189196,
2677         ),
2678         u32x8::new(
2679             65872678,
2680             43635130,
2681             27903055,
2682             25020300,
2683             65772737,
2684             38110437,
2685             5213502,
2686             21909342,
2687         ),
2688         u32x8::new(
2689             4438979,
2690             9680838,
2691             10212446,
2692             4764184,
2693             13235684,
2694             58245995,
2695             20264570,
2696             21024049,
2697         ),
2698     ])),
2699     CachedPoint(FieldElement2625x4([
2700         u32x8::new(
2701             60835961,
2702             48209103,
2703             31049052,
2704             4688268,
2705             12426713,
2706             59829045,
2707             22302488,
2708             29008521,
2709         ),
2710         u32x8::new(
2711             50401667,
2712             29716596,
2713             23531224,
2714             7581281,
2715             49071895,
2716             6952617,
2717             14934683,
2718             8218256,
2719         ),
2720         u32x8::new(
2721             1601446,
2722             36631413,
2723             31774811,
2724             29625330,
2725             56786114,
2726             8331539,
2727             23129509,
2728             19783344,
2729         ),
2730         u32x8::new(
2731             59514327,
2732             64513110,
2733             1772300,
2734             5701338,
2735             5737511,
2736             16147555,
2737             9461515,
2738             5703271,
2739         ),
2740         u32x8::new(
2741             33072974,
2742             54300426,
2743             11940114,
2744             1308663,
2745             15627555,
2746             4931627,
2747             28443714,
2748             20924342,
2749         ),
2750     ])),
2751     CachedPoint(FieldElement2625x4([
2752         u32x8::new(
2753             18135013,
2754             20358426,
2755             4922557,
2756             10015355,
2757             65729669,
2758             34786528,
2759             26248549,
2760             29194359,
2761         ),
2762         u32x8::new(
2763             797666,
2764             34997544,
2765             24316856,
2766             25107230,
2767             24612576,
2768             4761401,
2769             15307321,
2770             32404252,
2771         ),
2772         u32x8::new(
2773             16501152,
2774             60565831,
2775             9487105,
2776             9316022,
2777             24986054,
2778             31917592,
2779             3962024,
2780             2501883,
2781         ),
2782         u32x8::new(
2783             63356796,
2784             50432342,
2785             18044926,
2786             30566881,
2787             42032028,
2788             31415202,
2789             13524600,
2790             16119907,
2791         ),
2792         u32x8::new(
2793             3927286,
2794             57022374,
2795             9265437,
2796             21620772,
2797             19481940,
2798             3806938,
2799             24836192,
2800             14572399,
2801         ),
2802     ])),
2803     CachedPoint(FieldElement2625x4([
2804         u32x8::new(
2805             10785787,
2806             46564798,
2807             368445,
2808             33181384,
2809             5319843,
2810             52687136,
2811             30347110,
2812             29837357,
2813         ),
2814         u32x8::new(
2815             56436732,
2816             47859251,
2817             24141084,
2818             22250712,
2819             59046084,
2820             4963427,
2821             33463413,
2822             17168859,
2823         ),
2824         u32x8::new(
2825             15512044,
2826             6366740,
2827             4737504,
2828             27644548,
2829             30307977,
2830             25037929,
2831             14593903,
2832             12836490,
2833         ),
2834         u32x8::new(
2835             63878897,
2836             34013023,
2837             5860752,
2838             7244096,
2839             3689461,
2840             57012135,
2841             18389096,
2842             11589351,
2843         ),
2844         u32x8::new(
2845             4682110,
2846             36302830,
2847             653422,
2848             22316819,
2849             14081831,
2850             5657024,
2851             11088376,
2852             24110612,
2853         ),
2854     ])),
2855     CachedPoint(FieldElement2625x4([
2856         u32x8::new(
2857             39907267,
2858             45940262,
2859             24887471,
2860             18342609,
2861             878445,
2862             40456159,
2863             12019082,
2864             345107,
2865         ),
2866         u32x8::new(
2867             12794982,
2868             28893944,
2869             9447505,
2870             11387200,
2871             16961963,
2872             13916996,
2873             10893728,
2874             25898006,
2875         ),
2876         u32x8::new(
2877             44934162,
2878             53465865,
2879             3583620,
2880             1102334,
2881             53917811,
2882             63478576,
2883             2426066,
2884             10389549,
2885         ),
2886         u32x8::new(
2887             45096036,
2888             37595344,
2889             19367718,
2890             20257175,
2891             10280866,
2892             41653449,
2893             27665642,
2894             375926,
2895         ),
2896         u32x8::new(
2897             45847901,
2898             24064074,
2899             32494820,
2900             32204556,
2901             10720704,
2902             51079060,
2903             1297436,
2904             29853825,
2905         ),
2906     ])),
2907     CachedPoint(FieldElement2625x4([
2908         u32x8::new(
2909             66303987,
2910             36060363,
2911             16494578,
2912             24962147,
2913             11971403,
2914             49538586,
2915             25060560,
2916             1964341,
2917         ),
2918         u32x8::new(
2919             25988481,
2920             27641502,
2921             24909517,
2922             27237087,
2923             66646363,
2924             52777626,
2925             16360849,
2926             10459972,
2927         ),
2928         u32x8::new(
2929             43930529,
2930             34374176,
2931             31225968,
2932             8807030,
2933             10394758,
2934             35904854,
2935             25325589,
2936             19335583,
2937         ),
2938         u32x8::new(
2939             25094697,
2940             34380951,
2941             20051185,
2942             32287161,
2943             11739332,
2944             53887441,
2945             30517319,
2946             26601892,
2947         ),
2948         u32x8::new(
2949             8868546,
2950             35635502,
2951             32513071,
2952             28248087,
2953             51946989,
2954             14222744,
2955             19198839,
2956             23261841,
2957         ),
2958     ])),
2959     CachedPoint(FieldElement2625x4([
2960         u32x8::new(
2961             51218008,
2962             5070126,
2963             11046681,
2964             5320810,
2965             61212079,
2966             34104447,
2967             23895089,
2968             6460727,
2969         ),
2970         u32x8::new(
2971             39843528,
2972             46278671,
2973             10426120,
2974             25624792,
2975             66658766,
2976             37140083,
2977             28933107,
2978             12969597,
2979         ),
2980         u32x8::new(
2981             59635793,
2982             40220191,
2983             5751421,
2984             173680,
2985             58321825,
2986             740337,
2987             1412847,
2988             7682623,
2989         ),
2990         u32x8::new(
2991             975962,
2992             56440763,
2993             20812276,
2994             22631115,
2995             49095824,
2996             19883130,
2997             2419746,
2998             31043648,
2999         ),
3000         u32x8::new(
3001             66208703,
3002             39669328,
3003             22525915,
3004             3748897,
3005             65994776,
3006             34533552,
3007             8126286,
3008             18326047,
3009         ),
3010     ])),
3011     CachedPoint(FieldElement2625x4([
3012         u32x8::new(
3013             64176557,
3014             3912400,
3015             19351673,
3016             30068471,
3017             31190055,
3018             24221683,
3019             33142424,
3020             28698542,
3021         ),
3022         u32x8::new(
3023             34784792,
3024             4109933,
3025             3867193,
3026             19557314,
3027             2112512,
3028             32715890,
3029             24550117,
3030             16595976,
3031         ),
3032         u32x8::new(
3033             35542761,
3034             48024875,
3035             10925431,
3036             31526577,
3037             66577735,
3038             23189821,
3039             13375709,
3040             1735095,
3041         ),
3042         u32x8::new(
3043             59699254,
3044             43854093,
3045             29783239,
3046             24777271,
3047             19600372,
3048             39924461,
3049             2896720,
3050             1472185,
3051         ),
3052         u32x8::new(
3053             56389656,
3054             35980854,
3055             33172342,
3056             1370336,
3057             23707480,
3058             57654949,
3059             7850973,
3060             12655016,
3061         ),
3062     ])),
3063     CachedPoint(FieldElement2625x4([
3064         u32x8::new(
3065             38372660,
3066             57101970,
3067             7044964,
3068             12732710,
3069             57535705,
3070             6043201,
3071             30858914,
3072             10946592,
3073         ),
3074         u32x8::new(
3075             21023468,
3076             6946992,
3077             26403324,
3078             23901823,
3079             35695559,
3080             23440687,
3081             4763891,
3082             6514074,
3083         ),
3084         u32x8::new(
3085             28662273,
3086             30933699,
3087             9352242,
3088             26354829,
3089             37402243,
3090             3145176,
3091             8770289,
3092             525937,
3093         ),
3094         u32x8::new(
3095             54933102,
3096             36695832,
3097             3281859,
3098             4755022,
3099             23043294,
3100             32794379,
3101             15618886,
3102             23602412,
3103         ),
3104         u32x8::new(
3105             9931565,
3106             29897140,
3107             2480737,
3108             24193701,
3109             7833615,
3110             2284939,
3111             893926,
3112             13421882,
3113         ),
3114     ])),
3115     CachedPoint(FieldElement2625x4([
3116         u32x8::new(
3117             22917795,
3118             22088359,
3119             28978099,
3120             19794863,
3121             60542318,
3122             29878494,
3123             31053731,
3124             9080720,
3125         ),
3126         u32x8::new(
3127             23679072,
3128             52547035,
3129             28424916,
3130             20647332,
3131             4008761,
3132             28267029,
3133             12961289,
3134             1589095,
3135         ),
3136         u32x8::new(
3137             55616194,
3138             26678929,
3139             14998265,
3140             23274397,
3141             54625466,
3142             46244264,
3143             28627706,
3144             33030665,
3145         ),
3146         u32x8::new(
3147             11527330,
3148             6449415,
3149             26531607,
3150             3472938,
3151             41541592,
3152             62607682,
3153             19862690,
3154             20564723,
3155         ),
3156         u32x8::new(
3157             32843805,
3158             49066843,
3159             28425824,
3160             19521495,
3161             48792073,
3162             48242878,
3163             27392443,
3164             13175986,
3165         ),
3166     ])),
3167     CachedPoint(FieldElement2625x4([
3168         u32x8::new(
3169             16185025,
3170             61537525,
3171             2961305,
3172             1492442,
3173             25123147,
3174             3095034,
3175             31896958,
3176             33089615,
3177         ),
3178         u32x8::new(
3179             64748157,
3180             18336595,
3181             16522231,
3182             25426312,
3183             65718949,
3184             35485695,
3185             30554083,
3186             10205918,
3187         ),
3188         u32x8::new(
3189             39626934,
3190             39271045,
3191             16420458,
3192             9826240,
3193             56483981,
3194             27128085,
3195             3783403,
3196             13360006,
3197         ),
3198         u32x8::new(
3199             30793778,
3200             66771960,
3201             17241420,
3202             6564573,
3203             61102581,
3204             29974476,
3205             32385512,
3206             9011754,
3207         ),
3208         u32x8::new(
3209             28068166,
3210             11862220,
3211             14323567,
3212             12380617,
3213             52090465,
3214             16029056,
3215             24495309,
3216             21409233,
3217         ),
3218     ])),
3219     CachedPoint(FieldElement2625x4([
3220         u32x8::new(
3221             59411973,
3222             57437124,
3223             11695483,
3224             17586857,
3225             16108987,
3226             43449109,
3227             31098002,
3228             6248476,
3229         ),
3230         u32x8::new(
3231             42258047,
3232             61595931,
3233             29308533,
3234             11742653,
3235             43042345,
3236             27373650,
3237             30165249,
3238             21929989,
3239         ),
3240         u32x8::new(
3241             49907221,
3242             9620337,
3243             21888081,
3244             20981082,
3245             56288861,
3246             61562203,
3247             33223566,
3248             3582446,
3249         ),
3250         u32x8::new(
3251             57535017,
3252             41003416,
3253             22080416,
3254             14463796,
3255             65518565,
3256             18127889,
3257             24370863,
3258             33332664,
3259         ),
3260         u32x8::new(
3261             66655380,
3262             6430175,
3263             471782,
3264             11947673,
3265             30596400,
3266             18898659,
3267             15930721,
3268             4211851,
3269         ),
3270     ])),
3271     CachedPoint(FieldElement2625x4([
3272         u32x8::new(
3273             6757410,
3274             65455566,
3275             13584784,
3276             11362173,
3277             10797127,
3278             24451471,
3279             19541370,
3280             29309435,
3281         ),
3282         u32x8::new(
3283             40360156,
3284             17685025,
3285             18326181,
3286             3846903,
3287             13693365,
3288             63049479,
3289             31900359,
3290             23385063,
3291         ),
3292         u32x8::new(
3293             52455038,
3294             57513503,
3295             22163311,
3296             27095042,
3297             48610726,
3298             66454160,
3299             12085341,
3300             26357004,
3301         ),
3302         u32x8::new(
3303             22097042,
3304             14063840,
3305             6705778,
3306             14342902,
3307             66139825,
3308             20702105,
3309             31279090,
3310             7495745,
3311         ),
3312         u32x8::new(
3313             27360710,
3314             49314837,
3315             18774847,
3316             7146436,
3317             37066216,
3318             42004961,
3319             22409916,
3320             10524446,
3321         ),
3322     ])),
3323     CachedPoint(FieldElement2625x4([
3324         u32x8::new(
3325             1497507,
3326             33054449,
3327             11839906,
3328             2960428,
3329             40538463,
3330             18884538,
3331             25018820,
3332             4073970,
3333         ),
3334         u32x8::new(
3335             54484385,
3336             43640735,
3337             2808257,
3338             20710708,
3339             39840730,
3340             27222424,
3341             21783544,
3342             11848522,
3343         ),
3344         u32x8::new(
3345             45765237,
3346             48200555,
3347             9299019,
3348             9393151,
3349             34818188,
3350             56098995,
3351             13575233,
3352             21012731,
3353         ),
3354         u32x8::new(
3355             4265428,
3356             49627650,
3357             24960282,
3358             9425650,
3359             47883651,
3360             2797524,
3361             11853190,
3362             22877329,
3363         ),
3364         u32x8::new(
3365             25008173,
3366             64199503,
3367             380047,
3368             12107343,
3369             12329448,
3370             11914399,
3371             764281,
3372             29687002,
3373         ),
3374     ])),
3375     CachedPoint(FieldElement2625x4([
3376         u32x8::new(
3377             35889734,
3378             23047226,
3379             4022841,
3380             7017445,
3381             7274086,
3382             53316179,
3383             25100176,
3384             15310676,
3385         ),
3386         u32x8::new(
3387             42409427,
3388             30270106,
3389             6823853,
3390             31551384,
3391             40645017,
3392             66489807,
3393             18021817,
3394             32669351,
3395         ),
3396         u32x8::new(
3397             39827134,
3398             43680850,
3399             28297996,
3400             20258133,
3401             26058742,
3402             52643238,
3403             22238331,
3404             21690533,
3405         ),
3406         u32x8::new(
3407             60808002,
3408             17499995,
3409             30042246,
3410             29310584,
3411             48219954,
3412             29389518,
3413             8680514,
3414             17844709,
3415         ),
3416         u32x8::new(
3417             6452896,
3418             50116553,
3419             9532047,
3420             26821214,
3421             44524351,
3422             50428429,
3423             21904953,
3424             12608048,
3425         ),
3426     ])),
3427 ]);
3428