/var/www/hkosl.com/aga/wp-includes/sodium_compat/src/Core/Curve25519/H.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
<?php

if (class_exists('ParagonIE_Sodium_Core_Curve25519_H'false)) {
    return;
}

/**
 * Class ParagonIE_Sodium_Core_Curve25519_H
 *
 * This just contains the constants in the ref10/base.h file
 */
class ParagonIE_Sodium_Core_Curve25519_H extends ParagonIE_Sodium_Core_Util
{
    
/**
     * See: libsodium's crypto_core/curve25519/ref10/base.h
     *
     * @var array<int, array<int, array<int, array<int, int>>>> Basically, int[32][8][3][10]
     */
    
protected static $base = array(
        array(
            array(
                array(
25967493, -14356035295664563660896, -12694345401478727544626, -11754271, -60791562047605),
                array(-
12545711934262, -27229103049990, -727428940698612720692504338419500929, -15469378),
                array(-
873818144895709688441, -1478519410184609, -123633802928791911864899, -24514362, -4438546),
            ),
            array(
                array(-
12815894, -12976347, -2158124311784320, -25355658, -2750717, -11717903, -3814571, -358445, -10211303),
                array(-
217032376903825271854916451973, -29577724, -9554005, -1561655111189268, -26829678, -5319081),
                array(
2696664211152617324424951539605414353839, -12752335, -3128826, -9541118, -15472047, -4166697),
            ),
            array(
                array(
15636291, -968855724204773, -7912398616977, -1668526227787600, -1477218928944400, -1550024),
                array(
165689334717097, -11556148, -110232215682896, -1180704316354577, -11775962768966211199574),
                array(
30464156, -5976125, -11779434, -156708652322036515915852751277410017326, -17749093, -9920357),
            ),
            array(
                array(-
170368781392189210945806, -603343127105052, -16084379, -28926210150060233284568, -6276540),
                array(
23599295, -8306047, -11193664, -76874161323677410506355746457996564451305916210374397),
                array(
7798556167102573033922287408628997861283560432406664, -3839045, -641708, -101325),
            ),
            array(
                array(
1086136311473154272845461981175, -30064349125778613286788514515107, -1543830410819380),
                array(
47080266336745203775869066809, -112721096594696, -2565366812483688, -126684915581306),
                array(
1956316016186464, -29386857409751910237984, -43481152854235013850243, -23678021, -15815942),
            ),
            array(
                array(-
15371964, -12862754325732504720197, -264365225875511, -19188627, -15224819, -9818940, -12085777),
                array(-
85492121099831514936321787052290061845434173044240, -15689887176232814866737),
                array(-
18199695, -15951423, -104732901707278, -171859203916101, -282364123959421279144544383652),
            ),
            array(
                array(
515374699092851723747, -2777874305236055516873194808525230134, -23952439, -15175766),
                array(-
30269007, -34635097665486100837932847552516497222065402516520125305984497715701),
                array(
288818451438156896579043680757, -201816357843316, -31400660137070829794553, -1409300),
            ),
            array(
                array(
14499471, -2729599, -33191113, -425465228494862142712673029073510876454, -331540982381726),
                array(-
7195431, -2655363, -14730155462251, -277243263941372, -62366173696005, -3230083215351955),
                array(
27431194822232216448760, -3907995, -1870700211938355, -32961401, -29705152955181310109425),
            ),
        ),
        array(
            array(
                array(-
13657040, -13155431, -3128375011777098214473866519384, -2378284, -162755610092783, -4764171),
                array(
2793916614210322467703516277044, -22964462, -12398139, -3250875412005538, -1781012712803510),
                array(
17228999, -15661624, -1233527300140, -1224870, -1171477730364213, -9038194180163574397660),
            ),
            array(
                array(-
10958843, -76902074776341, -1495423827850028, -15602212, -2661910614544525, -17477504982639),
                array(
2925359815796703, -2863982, -99088841005702331635367332899, -4120128, -210476969934963),
                array(
579330316271923, -24131614, -10116404291885601206517, -147479304559895, -30123922, -10897950),
            ),
            array(
                array(-
27643952, -1149300616282657, -1103649328414021, -15012264241910344541697, -133383095500568),
                array(
12650548, -1497113905287111355358, -17680037, -8400164, -17430592122643431087405113524335),
                array(
25556948, -3045990714651251040023394682, -10415330331190385080568, -225280595376628),
            ),
            array(
                array(-
26088264, -4011052, -17013699, -3537628, -67267931920897, -22321305, -944744345357681569007),
                array(-
225542214606630, -21692440, -8039818284306498775819, -3049456230442903184828012543772),
                array(-
220285792943893, -31857513677730613784462, -4292203, -27377195, -2062731771848214474653),
            ),
            array(
                array(
23853152454213, -2263132046603, -4437935, -15680415656965, -723666524316168, -5253567),
                array(
1374152910911568, -33233417, -8603737, -20177830, -103329733040651, -13424532, -207294568321686),
                array(
21060490, -221274415712757, -433609916390401065633623845965, -11874838, -9984458608372),
            ),
            array(
                array(-
13672732, -15087586, -10889693, -7557059, -6036909113055471123968, -67805772722939923887),
                array(-
23244140, -294205, -1174472814712571, -29465699, -202961712797024, -6440308, -163340516678954),
                array(-
295006204770662, -160543871400133878300479564805, -1508144, -4795045, -171692654904953),
            ),
            array(
                array(
240595571461700319037157, -1503990819766093, -149064295169211161918802128236, -4326833),
                array(-
169811524124966, -8540610, -1065379730336522, -14105247, -29806336916033, -6882542, -2986532),
                array(-
2263090712419372, -7134229, -7473371, -16478904167391752854312763829157363224143876),
            ),
            array(
                array(
237935211839345, -4110402, -598866511274298794957212801, -1459466323527084, -16458268),
                array(
33431127, -11130478, -17838966, -1562690089094998376530, -326253404087881, -15188911, -14416214),
                array(
17676837197987, -13205226, -2022635, -1309135044882657990554357868, -4774191, -16323038),
            ),
        ),
        array(
            array(
                array(
672196613833823, -23523388, -155131426354293, -1186332123365147, -394973273908902759800),
                array(
4409041205238123373853105302177676779, -1288595421302353, -42640571244380, -12919645),
                array(-
442123971696194982368, -295759030256825, -27775401408641392082361588642916489664),
            ),
            array(
                array(
1996075103756491434636713311202, -6874135, -16438411, -13693198398369, -30606455, -712933),
                array(-
253074659795880, -277741414878809, -33531835147803631334855312076947, -308364625113182),
                array(-
17770784117977963195084313929123, -2588830212288344, -30341101, -7336386138477115387222),
            ),
            array(
                array(-
18582163, -341621717824843, -234096622744343, -1044261187630613617786, -1960066210370991),
                array(
20246567, -1436937822358229, -54371218507283, -1041399614554437, -87460923223292416763880),
                array(
9648505100945632641669314745928, -30374318, -647262111094161156895063140038, -16510092),
            ),
            array(
                array(-
161600725472695318955884744994882351510365685, -272248009448613, -28774454366295),
                array(
1915345011523972, -11096490, -6503142, -24647631542064728344573804111371960511671788),
                array(
86780252694440, -68080142517372496432611152271, -15432916, -1526651627000813, -10195553),
            ),
            array(
                array(-
1515790471343128639287, -2814877, -72356881042174256406553360976750977, -14521026),
                array(
11836410, -3979488262978941608079923455045157359441695823, -8819122816972016220347),
                array(-
18115838865364717578566, -6092619, -8025777, -16012763, -11144307, -2627664, -5990708, -14166033),
            ),
            array(
                array(-
23308498, -1096831215213228, -10081214, -30853605, -1105000427884329284728426558611738395),
                array(-
27537433, -14253021, -25336301, -8002780, -9370762812982121651608, -3239336, -19087449, -11005278),
                array(
15331103437855237358894592762997050111335377260300925821408104781968544890),
            ),
            array(
                array(
32173121, -1612931124896207392149722579056, -3410854192704491221747317789017, -3395995),
                array(-
30552961, -2228401, -15578829, -101472011324388951702415479401, -3853233304605201052596),
                array(-
1161487513323618326187938175907, -152301731259668727491595, -46123593179268, -9478891),
            ),
            array(
                array(
31947069, -14366651, -4640583, -15339921, -15125977, -6039709, -14756777, -1641174019072640, -9511060),
                array(
11685058118224103158003, -1395259433402194, -41650665977896, -52150174730995040608),
                array(-
202908638198642, -27410132116021231290375, -2799760283268621721092, -19558642, -3131606),
            ),
        ),
        array(
            array(
                array(
78815321068793775787237738378, -18951012, -2553952218207868076149, -2786849611538389),
                array(-
19935666389986118283497, -6801568, -15728660, -1124921187545257446702, -56760545797016),
                array(-
11295600, -3793569, -15782110, -796457312708869, -84561992014099, -9050574, -2369172, -5877341),
            ),
            array(
                array(-
22472376, -11568741, -27682020114637518956691166405591192730, -37141991512361910811505),
                array(
14352098, -3419715, -1894204410822655327505964699007, -7036315776356, -28886779, -11974553),
                array(-
28241164, -8072475, -4978962, -5315317294169311847569, -20654173, -164848554714547, -9600655),
            ),
            array(
                array(
1520033283685721967910115970074, -31872674195945124611599, -4543832, -1174587612340220),
                array(
12876937, -10480056331343816590940, -63077761487244096139538241152153709879608631),
                array(-
4143277, -120144088446281, -391603440773813629032, -772486815866074, -28210621, -8814099),
            ),
            array(
                array(
26660628, -156776558393734358047, -7401291992988, -23904233858697205712238420556),
                array(
1462071513067227, -15447274826446714106269150808143353182712516406, -21574435, -12476749),
                array(
2368811047622657258, -1467702464729982466984172585197256740879113615069930),
            ),
            array(
                array(
1276410, -937191822949635, -16322807, -23493039, -5702186147118754874229, -30663140, -2331391),
                array(
58556664990204, -137118487294284, -78042821924647, -1423175, -7912378, -330693379234253),
                array(
20590503, -901898831529744, -7352666, -27068341065054831559055, -116095871897918613396066),
            ),
            array(
                array(
24474287496810322267082440735424063882, -8325180, -1881688713594782335146507021958),
                array(-
11566906, -6565505, -2136508515928892, -261583054315421, -25948728, -3916677, -2148048012868082),
                array(-
286350131350466119988037, -2132761210782256443208, -214461072244500, -12455797, -8089383),
            ),
            array(
                array(-
3059552813793479, -5852820319136, -25723172, -6263899330865468957937, -152336485540521),
                array(-
11630176, -11503902, -8119500, -764307326200561022908, -23710744, -1568984, -16128528, -14962807),
                array(
231529717753862739546314006635, -970111846495121689819892185, -11513277, -15205948),
            ),
            array(
                array(
977012995867382649609443241201556511, -3550024274538194763127, -191796145867134),
                array(-
32765025192759031726409, -475329523962434, -16019500278465595931263, -29749703, -16108455),
                array(
27461885, -2977536223808101815854, -23033753, -30319387283490, -15148073, -195267007734629),
            ),
        ),
        array(
            array(
                array(-
8010264, -9590817, -11120403619603829344158, -134308857585295, -31766261854949715302069),
                array(-
32658337, -6171222, -7672793, -1105168162588781350438110458790, -6418461, -88722428424746),
                array(
246872058613276, -30667046, -32335451863892, -1830544192062347134917, -11284482, -828919),
            ),
            array(
                array(
11334899, -921802280252931270751917523892, -1047607110243738, -14685461, -506603416498837),
                array(
89115426887158, -9584260, -695859011145641, -954368017303925, -14124238653664110543906),
                array(-
2894638415479763, -17466835568876, -149768311223454, -2669190, -16625574, -272357098876771),
            ),
            array(
                array(-
25742899, -12566864, -15649966, -846607, -33026686, -796288, -3348182215824474, -604426, -9039817),
                array(
10330056700517957388, -900266797649021560975627698697, -489003716573943084098),
                array(
10477963, -747026012119566, -1325080529016247, -53655893128031914396151, -3023357515272409),
            ),
            array(
                array(-
122883093169463288131831665875325116432, -5630466, -25173957, -12636138, -250147571950504),
                array(-
26180358948918711053416, -14746161, -310537205825630, -8384306, -8767532153412798373727),
                array(
286858217759505, -14378516, -12002860, -319718204079242298136, -10232602, -287820715190420),
            ),
            array(
                array(-
3293287613806336, -14337485, -15794431, -240046201094092886697182742393, -26033313, -6875003),
                array(-
1580388, -11729417, -25979658, -11445023, -17411874, -109128549291594, -16247779, -121547426048605),
                array(-
3030531514843444153930111864366202016771900163139342315128323112132629168384),
            ),
            array(
                array(-
262805131100784719408960, -940758, -18592965, -4328580, -5088060, -1110515020470157, -16398701),
                array(-
23136053928219214855179, -15390078, -7362815, -14408560, -2278395214461608140429785230683),
                array(
29969567, -2741594, -16711867, -85524429175486, -2468974215569513506042, -5933891, -12449708),
            ),
            array(
                array(-
31447468744661197040034581278, -204306866830683, -212841708971513, -2853918915326563),
                array(-
1946462910110288, -17262528, -3503892, -235003871355669, -1552305015300988, -205141189168260),
                array(-
53533354488613, -23803248163143477780487, -15638939, -28948358960160533087103, -9011387),
            ),
            array(
                array(-
19443170, -15512900, -20797467, -12445323, -2982444710229461, -27444329, -15000531, -599687015664672),
                array(
23294591, -16632613, -22650781, -8470978278442041146119513099750, -24603561815167613417686),
                array(-
24722913, -4176517, -311506795988919, -2685878566850651661597, -1255144115271676, -15452665),
            ),
        ),
        array(
            array(
                array(
11433042, -132286658239631, -5279517, -1985436, -725718, -186987642167544, -6921301, -13440182),
                array(-
31436171155751463043681512192228, -224633539395379, -9917708, -86389971221511012028277),
                array(
140984006555944230072585757252, -15427832, -12950502301234404617780, -16900089, -655628),
            ),
            array(
                array(-
4026201, -152408351189316813718664, -148094621847385, -158199991015400923973261, -12684474),
                array(-
26531820, -3695990, -19088982534301, -31870557, -1655035518341390, -1141995132013174, -10103539),
                array(-
2547930110876443, -11771086, -14625140, -1236956718381042191121463547524425632, -837822),
            ),
            array(
                array(-
10433389, -1461296622229858, -3091047, -13191166776729, -17415375, -12020462472500514044970),
                array(
19268650, -730442115553498692754, -21474059, -99106646347390, -1411784, -19522291, -16109756),
                array(-
2486408912986008, -10898878, -5558584, -11312371, -148526195414188180106928226210282508),
            ),
            array(
                array(-
262050824428547, -8661196, -131942634098402, -141652571552253583722155542595, -10702683),
                array(-
105625411489563326814552, -16673850, -17480754, -2489360, -27818916993761, -1809388510114655),
                array(-
20107055, -9294183142270410427861, -71107496150669, -29091755, -1152914625953725, -106158),
            ),
            array(
                array(-
4234397, -8039292, -911912530460002101609, -12607294193900206094296, -331527912831125),
                array(-
159986787578152531021714408357, -33548620, -2247393157595463261967381791, -2421839),
                array(-
20902779329681124736065, -1632838918374254731864062953038082724, -1536248912339664),
            ),
            array(
                array(
2772473622911576088201, -141847981792727585763413848414157689222509116714856294),
                array(-
188666528331043243734798541013, -701998, -926945712927300, -12695493, -22182473, -9012899),
                array(-
11423429, -542159011632845340502030536730, -11674039, -2726076513866390301462069142070),
            ),
            array(
                array(
3924129, -15307516, -13817122, -1005496012291820, -668366, -277027749326384, -82378584171294),
                array(-
1592194016037937671378716606682, -216121352790944263961853731949345228, -5462949),
                array(-
213275381344825925284571114366120614966, -88493872031539, -12391231, -16253183, -13582083),
            ),
            array(
                array(
31016211, -1672242926371392, -14451233, -50273491485413717477601384265728012650, -16405420),
                array(-
50758359368966, -8562079, -4600902, -152499536970560, -918987316292057, -88671573507940),
                array(
294396643537914233335896997794, -17555561, -11018068, -15209202, -15051267, -91649296580396),
            ),
        ),
        array(
            array(
                array(-
12185861, -76797881643826910826160, -8696817, -623561117860444, -9273846, -20958029304567),
                array(
20714564, -433691129088195740648711426967, -509570514792667, -146086175289421, -477127),
                array(-
16665533, -10650790, -6160345, -133057609192020, -1802462172714901234909426939669, -3752294),
            ),
            array(
                array(-
12889898937345831595848163742152147172013221525, -27283495, -12348559, -3698806117887),
                array(
22263325, -65600503984570, -11174646, -15114008, -566785283112535358056, -23319780541964),
                array(
1625921932619702309254, -15534474, -16885711, -458191624134070, -16705829, -13337066, -13552195),
            ),
            array(
                array(
9378160, -13140186, -22845982, -1274526428198281, -7244098, -2399684, -71735169042614876244),
                array(
24977353, -314384, -8223969, -1346508628432343, -1176353, -13068804, -12297348, -223809846618999),
                array(-
1538174116856461294437813682314, -24389511, -144131938044829, -1381732832239829, -5652762),
            ),
            array(
                array(-
186030664762990, -9262508885304, -28412480, -31873159781647, -10350059327793595095274),
                array(-
33008130, -5214506, -32264887, -36852169460461, -9327423, -246016561450672421639561, -2630236),
                array(-
16400943, -1311221525239338155319693987758, -4499318, -1289502, -686353517874574558605),
            ),
            array(
                array(-
1360012910240081917188316131053, -20869254959970033499487508015120858925119761),
                array(-
22205145, -2519528, -16381601414691, -25019550217043030634760, -8363614, -31999993, -5759884),
                array(-
6845704157912028550074, -131265429928809, -1209225627534430, -7192145, -2235137812961482),
            ),
            array(
                array(-
24492060, -95707711036819411582341, -23397293, -2245287165339308206996, -30194652, -5159638),
                array(-
11121496, -338223423073666362031, -1354558868177, -16835630703127575896408945490),
                array(-
3215274889179676661220, -11677616, -1192060, -157933937251489, -1118218024099109, -14456170),
            ),
            array(
                array(
5019558, -79074704244127, -14714356, -269332726453165, -19118182, -13289025, -6231896, -10280736),
                array(
1085359410721687264800895861829, -229958191972175, -1866647, -10557898, -3363451, -6441124),
                array(-
170024085906790221599, -65631477828208, -1324891824362661, -2008168, -138664087421392),
            ),
            array(
                array(
8139927, -654649732257646, -5890546303757191886181, -211751081544125228826358, -4123029),
                array(
626708696950527709135, -16603597, -32869068, -188613514795160, -784012413746021, -1742048),
                array(
285849027787108, -6732942, -1505072922846041, -7571236, -3181936, -3635244771362, -8419958),
            ),
        ),
        array(
            array(
                array(
249492566376279, -27466481, -8174608, -18646154, -993060633543569, -12141695356962711342593),
                array(
26514989474008827912651369755019331575, -11472339680988646086087325975, -14801071),
                array(-
11618399, -14554430, -243212127655128, -13692745214312, -2740054010258390, -17646694, -8186692),
            ),
            array(
                array(
11431204158230072657024514329124180299904796082, -31446179155806649280358, -3973687),
                array(-
160783, -10326257, -22855316, -4304997, -20861367, -13621002, -32810901, -11181622, -155450914387441),
                array(-
20799378121945123937617, -5805892, -271548209340370, -24513992854813720617071, -7482001),
            ),
            array(
                array(-
938825, -3930586, -87143111612471824603125, -6225393, -13775352, -118758222434568310325460),
                array(-
19855277, -1568885, -22202708871403414007766692852816318175, -101068947667433552007),
                array(-
21751364, -167309161351763, -803421, -4009670395093532175141448190910988822, -3994762),
            ),
            array(
                array(
15564307, -143115703101243568414830446780, -805135612677127, -6505343, -829585213296005),
                array(-
94422906624296, -30298964, -11913677, -4670981, -2057379315212049614054, -3000082412074674),
                array(
4771191, -13523914290749, -130898522799229814998318, -1413936, -155671629832613, -16391035),
            ),
            array(
                array(
7064884, -7541174, -19161962, -5067537, -18891269, -2912736258252425293297, -2712266013101590),
                array(-
22985632439670, -74666101719965, -27267541, -1632844532512469, -5317593, -30356070, -4190957),
                array(-
3000654010162316, -331801763981723, -16482138, -13070044144139749515896195689789628812),
            ),
            array(
                array(
3305380319935715894591158305927380243, -4580435, -17838894, -6106839, -62917863437740),
                array(-
18978877388449319469877127264901591355213614290, -229617337010474633044176122),
                array(-
271240011065991711482427, -1607038112771467, -6635117, -32719404, -5322751242168825944158),
            ),
            array(
                array(
88941257450974, -2664149, -9765752, -28080517, -123891151934574614680796116329935847885),
                array(
26942781, -23153179129564, -49066072602410511769399, -115188376367194, -97272304782140),
                array(
19916461, -4828410, -22910704, -1141439125606324, -59724413325385382209116358847, -1873857),
            ),
            array(
                array(
801428, -2081702165694281106516729875704966277908388, -4480480, -135385031387155),
                array(
196460585720633, -114167061281420911607948127497891414707515156355, -2186683111835260),
                array(
1929951211559102870373714890794292502672693992612152315467869, -265605505052483),
            ),
        ),
        array(
            array(
                array(-
301743210058206198083739642432216096612322533, -6431123, -1261818512228557, -7003677),
                array(
3294438214922211, -22844894518852821913450, -8719943400146513238564, -61148038653815),
                array(
22865569, -465273527603668, -12545395143489588234005248084055719875284832752841751),
            ),
            array(
                array(-
16420968, -1113305, -327719, -1210785621886282, -15552774, -1887966, -31565819932058, -12739203),
                array(-
1165608610087521, -8864888, -5536143, -19278573, -3055912399922813239134, -4777469, -13910208),
                array(
1382174, -11694719172667909194690, -1332435697200812040394411284705, -140138183093230),
            ),
            array(
                array(
16650921, -11037932, -10641781570629, -83297467352753, -30242416271225, -24049421, -6691850),
                array(-
21911077, -5927941, -4611316, -5560156, -31744103, -107852932412361415193618, -21652117, -16739389),
                array(-
9935934, -4289447, -25279823437284220874731039948431870908146907981736162011864968),
            ),
            array(
                array(-
113076106210372132065745806320, -29017692, -13967200, -12331205, -7486601, -25578460, -16240689),
                array(
14668462, -1227023526039039153052102551561745424801045389265775249145645, -6443880),
                array(
59748743053895, -9433049, -10385191, -318651243225009, -79726423936128, -5652273, -3050304),
            ),
            array(
                array(
30625386, -4729400, -25555961, -12792866, -20484575769509917097188, -16303496, -279997791803632),
                array(-
35530919865099, -52285664272701, -5673832, -166897001491134412196514, -214054897047412),
                array(
200932779920966, -11138194, -53438571316158712044805, -328568514124601, -32343828, -10257566),
            ),
            array(
                array(-
2078882414084654, -13531713784214719119038, -138226054752377, -8714640, -216796582288038),
                array(-
26819236, -3283715299650593039786, -1447376525404572945750214625692, -2481961712570232),
                array(-
1063558, -1155182316920318124948421278292, -5869109, -21159943, -3498680, -119747044724943),
            ),
            array(
                array(
17960970, -11775534, -4140968, -9702530, -8876562, -1410617, -12907383, -8659932, -295763001903856),
                array(
23134274, -14279132, -10681997, -16119362068448515770816, -1298975031902962695509714109738),
                array(
153087885320727, -30113809, -1431887722902008776716429425325, -112775623196094211934971),
            ),
            array(
                array(-
273957118435796410964412222639, -2462786814818669206381734875028104913921379718),
                array(-
1315941591978413875503, -8936108, -1383712, -587980133518459161766582143231412180697),
                array(-
117873081150083813787581, -13832590, -2243067910140205146542512689540, -10301319, -13872883),
            ),
        ),
        array(
            array(
                array(
5414091, -15386041, -210076649643570128349701186149, -2622916, -1342231261282316032912),
                array(-
26337395, -1376616232496025, -1365391917847801, -1266915636040258316894, -25875034, -10437358),
                array(
3296484622304824680646, -12246460, -230520205903205, -8862297, -4639164123766173188849),
            ),
            array(
                array(
29190488, -1465904627549113, -11835163520066, -1069730132049515, -7309113, -16109234, -9852307),
                array(-
14744486, -9309156735818, -598978, -20407687, -505790425246078, -1579566918640741, -960977),
                array(-
6928835, -16430795103613745642961491047412345252, -31638386, -494430105307471053335),
            ),
            array(
                array(-
29265967, -14186805, -13538216, -12117373, -19457059, -10655384, -31462369, -29489852401883115026644),
                array(-
22592535, -3145277, -22892765953843, -1344018994256312531064313003497, -2314791, -15145616),
                array(-
27419985, -603321, -8043984, -1669117, -2609226513987819, -27297622187899, -23166419, -2531735),
            ),
            array(
                array(-
21744398, -1381047518448405021428, -10434399, -15911473971666716266922, -5070217726099),
                array(
29370922, -60539987334071, -1534225993852872247707, -13661962, -483946130007388, -15823341),
                array(-
9363791608669123751945, -543318, -1167538, -5189036913710973066398358484555336),
            ),
            array(
                array(-
233764351410446, -22253753, -12899614308676351582697717693930544696, -1198529812422646),
                array(
31117226, -12215734, -135028386561947, -9876867, -12757670, -5118685, -40967062912015313924425),
                array(-
17400879, -1423320919675799, -2734756, -11006962, -5858820, -9383939, -113177007240931, -237388),
            ),
            array(
                array(-
31361739, -11346780, -15007447, -5856218, -22453340, -12152771122233643894833293637, -15551743),
                array(-
16684801, -144442451103854411054958, -13801175, -3338533, -24319580773354712796905, -6335822),
                array(-
8759414, -10817836, -2541886410783769, -30615557, -9746811, -2825333936478363222231, -11160462),
            ),
            array(
                array(
186061131693100, -25448386, -1517027241123531004502123603893, -2048234, -75507762484985),
                array(
9255317, -3131197, -12156162, -100425613098013, -921486616377220, -2102812, -19802075, -3034702),
                array(-
227292897496160, -57421991132924919991973, -3347502, -317181489936966, -30097688, -10618797),
            ),
            array(
                array(
21878590, -5001297433833613643897, -303686513160960197088965415497, -7360503, -4109293),
                array(
2773686110103576125005088502413, -3413016, -963355810436918, -1550276, -23659143, -8132100),
                array(
19492550, -12104365, -29681976, -852630, -320817112403437300662668367329132439578709688),
            ),
        ),
        array(
            array(
                array(
120151052801261281981311015102124818120, -4743133, -11194191, -564573451509687274186),
                array(
2831366, -124921461478975612205423825128, -1273358631097299608305831021603, -9793610),
                array(-
2529932, -222964644561310720828, -13849527, -11505937, -235077311635446515067285, -14147707),
            ),
            array(
                array(
784094214037873, -3336486315934016, -728213, -3642706214039881057586, -19379462, -12403220),
                array(
915865, -1646927415608285, -8789130, -243570266060030, -173713198410997, -722046116527025),
                array(
32922597, -55698720336074, -1618456810903705, -53844871695757452992238343016588044),
            ),
            array(
                array(
32752030112329503381995, -871486622652988, -107441031715969916689107, -20314580, -1305992),
                array(-
46896499166776, -25710296, -1084730611576752127339437924251, -27522811976123, -7249027),
                array(
2125122216309901, -2983015, -67831223081059712967303156041, -337125212331345, -8237197),
            ),
            array(
                array(
8651614, -4477032, -16085636, -499699413002507295080529054427, -510697010008136, -4667901),
                array(
3148608015114593, -142612501295135414369431, -738784516347321, -136620898684155, -10532952),
                array(
194438251138532024468943, -9659068, -239192582187569, -26263207, -60869213131634814219878),
            ),
            array(
                array(-
28594490119378532245219113924853109216915722801271460146992409291265559207390),
                array(
3238293511100931847778111028262, -27411763, -7548111, -498051710843782, -7957600, -14435730),
                array(
2814918783640327519878, -7868156, -20894015, -11553689, -214945598550130283462581994730),
            ),
            array(
                array(-
195782998085545, -14000519, -39486222785838, -16231307, -195169517174894226281028115180),
                array(-
30405132955511, -11133838, -15078069, -32447087, -13278079, -256515783317160, -9943017930272),
                array(-
15303681, -683376928856490135744623421993105717724091212, -1388970, -22765376, -10650715),
            ),
            array(
                array(-
22751231, -5303997, -12907607, -12768866, -15811511, -7797053, -14839018, -16554220, -18670188398970),
                array(-
319693102106403, -47363601362501128137631620067022981545, -629127318009408, -15772772),
                array(-
17220923, -9545221, -277846541416683529815394744446929551787, -3727419192885491325865),
            ),
            array(
                array(
15100157, -15835752, -23923978, -1005098, -264501921550940812376730, -347914633166107, -8042750),
                array(
2090923113023121, -920975216251778, -5778415, -809491412412151100187152213263, -13878373),
                array(
32529814, -1107468930361439, -16689753, -91359401513226229221216382134, -57669288371348),
            ),
        ),
        array(
            array(
                array(
992346211271500126167943544722, -29998368, -172162612891687, -8193132, -2644294310486144),
                array(-
22597207, -70126658587003, -82578614084309, -129700623617262610596, -23921530, -11455195),
                array(
5408411, -1136691, -496912210561668241459181424056631319731, -423554119985175, -3436086),
            ),
            array(
                array(-
13994457166168211454924633410993215595813648976, -175770688849297650308370684),
                array(-
8320926, -12049626312045635839400, -20627288, -1057277, -19442942692216412743482, -9800518),
                array(-
236137112678785288150504759974, -238930474884717237831451103856918800704255233),
            ),
            array(
                array(-
5269658, -17738861395788679907152313299572877313393847906695719258688, -14753793),
                array(-
2936654, -10827535, -1043208914516793, -36407864372541, -319349212209390, -15240532055794),
                array(
580882167053275468415, -2683018, -30926419, -14696000, -7203346, -8994389, -300210197394435),
            ),
            array(
                array(
238388091822728, -15738443152427278318092, -3733104, -21672180, -3492205, -482174114799921),
                array(
1334561097591513371034, -161377911635303985779423112980413496856, -90560187402518),
                array(
2286874, -4435931, -20042458, -2008336, -13696227503812211006906, -1576035282050611607563),
            ),
            array(
                array(
14414086, -80021323331830, -320821722249151, -559418818364661, -290695830019587, -9029278),
                array(-
276880511585953, -10775053931069, -29120221, -11002319, -144108291202909399443788024),
                array(
4368715, -370963029874200, -15022983, -20230386, -11410704, -16114594, -999085, -81423885640030),
            ),
            array(
                array(
10299610137464831166182416234854763023859983749809887, -1669456415219798, -14327783),
                array(
27425505, -571908130550061066066423458024595578, -15398605, -1173195, -183421839742717),
                array(
67440772427284260427892720740, -8479061118974323246147406442124201551994844),
            ),
            array(
                array(
14012521, -5024720, -18384453, -9578469, -26485342, -3936439, -13033478, -1090980324319929, -6446333),
                array(
16412690, -45073671077264115929391, -17068788, -465862110555945, -10484049, -30102368, -4739048),
                array(
22397382, -7767684, -9293161, -1279286817166287, -9755136, -27333065619936621880021, -12250760),
            ),
            array(
                array(-
42833075368523, -311170188163389, -30323063320912816557151889072988404454957760),
                array(-
15447727709327, -6919446, -10870178, -297779226522332, -2172018112130072, -147965035005757),
                array(-
2114751, -143081282301904215765735, -25269683600275210183197, -13239326, -16395286, -2176112),
            ),
        ),
        array(
            array(
                array(-
19025756163200513466291, -7995100, -2364045116573537, -32013908, -3057104222086622000468),
                array(
3065073, -1412761, -25598674, -361432, -17683065, -5703415, -816421211248527, -3691214, -7414184),
                array(
10379208, -604555488773191473647, -29291284, -12507580166909152553332, -313268816400289),
            ),
            array(
                array(
157166681254266, -184726907446274, -84489186344164, -22097271, -7285580268949379132066),
                array(
241588871293881711085297, -8177598, -28063478, -4457083, -3057646364452, -6817084, -2692882),
                array(
13488534779471622236231598935625426474, -125782082350710, -3418511, -46880062364226),
            ),
            array(
                array(
16335052913243425640582667888817256288517937, -11807024, -1169745715445875, -7798101),
                array(
29004207, -786708128661402, -640412, -12794003, -794308631863255, -4135540, -278050, -15759279),
                array(-
6122061, -14866665, -2861490514569919, -10857999, -359182910343412, -6976290, -29828287, -10815811),
            ),
            array(
                array(
27081650346398414099042, -45176041616303, -6205604295426361537217917293797960709),
                array(
2026391511434237, -57654351123681013505955, -10857102, -161113456493122, -193845117639714),
                array(-
2830798, -1483923225403038, -8215196, -8317012, -1617369918006287, -1604375029994677, -15808121),
            ),
            array(
                array(
97698285202651, -24157398, -13631392, -28051003, -11561624, -24613141, -13860782, -31184575709464),
                array(
1228639513076066, -21775189, -1176622, -250031984057652, -32018128, -88908741610200713205847),
                array(
137333625599946105570763195751, -55579918536970, -2554017085259721015137910394400),
            ),
            array(
                array(
4024660, -161375512243626212276534, -9099015, -26860991969822911743039, -333023348934414),
                array(-
15879800, -4525240, -8580747, -293406114634845, -698278, -94490773137094, -1153688611721158),
                array(
17555939, -501393882686062331751, -22738815976101393192298835153, -9205489, -1280045),
            ),
            array(
                array(-
461409, -78300142061411816688288, -7514766, -4807119223003045054296108462, -6183415),
                array(-
507028112367917, -30663534323447332617080, -842264229880583, -13483331, -26898490, -7867459),
                array(-
3197528357265392693413410237677, -3173717, -6050532419930437950957592688, -14992079),
            ),
            array(
                array(
21594432, -1496422817466408, -4077222325370842739898640772312018833, -282560524298412),
                array(-
20650503, -11961496, -272362755704983767144, -171754013891942, -15691941371717410805743),
                array(-
14676630, -15644296152871741192712324177847, -8175568, -79643114860609, -26938930, -5863836),
            ),
        ),
        array(
            array(
                array(
129625415311799, -100607681165828018855286, -795420113286263, -12808704, -43810569882022),
                array(
1851207911319350, -2012312415090309188185945271736, -227279043666879, -23967430, -3299429),
                array(-
6789020, -3146043161924291324107015898607, -14206114, -10084880, -6661110, -24030995276065),
            ),
            array(
                array(
30169808, -531764826306206, -1175085927814964706926771528513684982144922413082861),
                array(
103428263098505211931119322225702612122338202369738215056736, -21016438, -8202000),
                array(-
33150110326160822745853794868819370557, -15177665, -261719766482814, -10300080, -11060101),
            ),
            array(
                array(
32869458, -54085452560974315678670, -10687769, -15471071261124212521008, -226642886904815),
                array(
2950692344574973377935, -9796444, -305100461293508015617373841096, -29003639, -6657642),
                array(
10340844, -6630377, -18656632, -227843012621151, -1333905530878497, -11824370, -255845515181966),
            ),
            array(
                array(
25940115, -1265802517324188, -10307374, -86714681502909424396252, -16450922, -2322852, -12388574),
                array(-
217656849916823, -13004094079498, -10283461190955917823901264108720603771, -6561742),
                array(-
18882287, -11673380248494221150170913161720, -476887419255231191439046627817820689),
            ),
            array(
                array(
12241050, -4259828132691939393432846760, -159962029749456121729241613675215264020),
                array(-
10349955, -14680563, -82119792330220, -17662549, -14545780106582136671822190120873772772),
                array(
3753511, -342106610617074202870914841030, -672166428718732, -157628842052777112988982),
            ),
            array(
                array(-
14822485, -5797269, -370798712689773, -898983, -10914866, -24183046, -105649433299665, -12424953),
                array(-
16777703, -15253301, -964241749789833308785875543969431976461331, -255831478991218),
                array(-
172262631816362, -1673288, -608643931783888, -8175991, -329481457417950, -302422871507265),
            ),
            array(
                array(
296926636829891, -10498800433489620945975, -11906496, -28887608820939114606362, -10647073),
                array(-
34815708707081321881025672294220967001711240, -3302069597614874170404, -2085325),
                array(-
1158747014855945, -4127778, -1531857, -26649089150840462218652216002000, -14276837, -8400798),
            ),
            array(
                array(-
481145613761029, -31703877, -2483919, -33124717869047, -7113572, -96200921324084510965870),
                array(-
7742563, -8256762, -14768334, -13656260, -2323238312387166449894714147411295143904302863),
                array(-
13413405, -1240785920757302, -13801832147851438976368, -5061276, -214437317846988, -13971927),
            ),
        ),
        array(
            array(
                array(-
2244452, -754728, -4597030, -1066309, -62471721455299, -21647728, -9214789, -522270112650267),
                array(-
9906797, -160703102113416012198166, -2706457570812638781313770293, -1913432610958663),
                array(
224709841236952623446014, -5441109, -21520802, -9698723, -11772496, -11574455, -250838304271862),
            ),
            array(
                array(-
25169565, -10053642, -1990933215361595, -5984358215919275375, -4278529, -325262218469673),
                array(
158549704148314, -889389072590021166655113824734, -30531198269737224154791, -9460943),
                array(
15446137, -15806644297597471401936930811221, -9610191, -3158200812840104249138099815020),
            ),
            array(
                array(-
4709286, -5614269, -31841498, -12288893, -1444353710799414, -910367613438769187351289466238),
                array(
1193304592814835081055, -5183824, -2628162, -4905629, -7727821, -10896103, -2272865516199064),
                array(
14576810379472, -26786533, -8317236, -29426508, -10812974, -1027661876699308011192164795),
            ),
            array(
                array(
1599508631998731367255513712240, -19378835, -4647646, -13081610, -15496269, -134928071268052),
                array(-
10290614, -3659039, -328659210948818230370273794475, -3470338, -12600221, -170553693565904),
                array(
29210088, -9419337, -5919792, -495278510834811, -13327726, -16512102, -10820713, -27162222, -14030531),
            ),
            array(
                array(-
131618901550858816663704, -8156150, -283499429019123, -29183421, -37694232244111, -14001979),
                array(-
5152875, -3800936, -9306475, -60715831624306914684434, -25673088, -16180800134915064641841),
                array(
10813417643330, -19188515, -72891630292062, -1660007827548447, -772124214476989, -12767431),
            ),
            array(
                array(
10292079998494564814368279905, -7251514703274327282937, -1644259, -2791281012651324),
                array(-
31185513, -8133832227120411835308102015451535102817099662398803521721536, -3148940),
                array(
10202177, -6545839, -31373232, -9574638, -32150642, -8119683, -1290632038526941321620614842320),
            ),
            array(
                array(-
15815640, -10601066, -6538952, -7258995, -6984659, -6581778, -3150084713765824, -274343979900184),
                array(
14465505, -13833331, -32133984, -14738873, -27443187129904923304619315796406, -7051866, -8040114),
                array(
30924417, -82796206359016, -12816335165083779071735, -25488601154136359524356, -7018878),
            ),
            array(
                array(
12274201, -1317554732627641, -17853266736625132673055237659, -5109483156635164035784),
                array(-
2951309890398517349946601635, -16432815, -4612556, -13732739, -15889334, -222584784659091),
                array(-
16916263, -4952973, -30393711, -151588212077481215897498573618915026997, -2178256, -13455585),
            ),
        ),
        array(
            array(
                array(-
8858980, -221905628571666, -10155518, -474467, -10105698, -380149627809523440562, -290208),
                array(
10226241, -592870215139956120818, -1486769352186033293727511551483, -16571960, -7442864),
                array(
17932739, -12437276, -2403955710749060113168037535897225037675561594, -36466243898661),
            ),
            array(
                array(
7749907, -969567, -16339731, -16464, -2501811115122143, -15735317152530218311621245233),
                array(
26958459, -1465802643145868346991, -567776411960072, -32589295, -620035, -30402091, -16716212),
                array(-
12165896916694733491384136734792978708513096535628083414587357, -2233802513987525),
            ),
            array(
                array(-
2434990977787752111600015572597, -4833266, -5357778, -4300898, -5124639, -7469781, -2858068),
                array(
9681908, -6737123, -3195164413591838, -6883821386950316227816439245, -145810124091397),
                array(-
84264271470727, -28109679, -15969903978627, -5123623, -196226831209216329077877, -14741988),
            ),
            array(
                array(
5269168, -6859726, -13230211, -8020715259325631763552, -5606110, -5505881, -200178472357889),
                array(
32264008, -15407652, -5387735, -1160093, -2091322, -394690023104804, -128699085727338189038),
                array(
14609123, -8954470, -6000566, -16622781, -14577387, -7743898, -2674516910942115, -25888931, -14884697),
            ),
            array(
                array(
205135005557931, -15604613782953126413943, -2019404, -21378968747178113913677, -5137875),
                array(-
25574376119678262923324212948236, -67544654713227, -894097014059180128786528511905),
                array(-
256568013393631, -2955415, -7075526, -22507099366908, -3022341868129745568676, -3127656),
            ),
            array(
                array(
11630004121444542116339136060372737888515676917, -17408753, -13504373, -143951968070818),
                array(
27117696, -10007378, -31282771, -5570088112728212772488, -2984590610483306, -11552749, -1028714),
                array(
10637467, -568806456747811072708, -26343588, -6982302, -16839759177853, -2749316215431203),
            ),
            array(
                array(
2052514510892566, -1274247212779443, -2949303416150075, -2824051914943142, -15056790, -7935931),
                array(-
300244625626926, -551567, -99810877535981198119125244767, -3239766, -33565509594024),
                array(-
237526442636870, -5163910, -10103818585134787738311345683, -649229013352335, -10977084),
            ),
            array(
                array(-
1931799, -54074583304649, -1288486917015806, -4877091, -29783850, -7752482, -13215537, -319204),
                array(
20239939660705862039853483793, -18386976, -779229, -2072374215077870, -2275075914523817),
                array(
27406042, -604165727423596, -4497394499621410002360, -28842031, -4545494, -30172742, -4805667),
            ),
        ),
        array(
            array(
                array(
113742421266071517861383, -12540833109355681099227, -13886076, -9091740, -2772704411358504),
                array(-
1273080910311867151037510778093, -2119455, -91457023267600311149336, -261236514985768),
                array(-
19096303341147, -6197485, -23903315756973, -8796662, -98304313794114, -19414307, -15621255),
            ),
            array(
                array(
64900811194028625495923, -77263608668373, -875131633676036970005, -1691065, -9004790),
                array(
165649713457317153708076364910136057458362338, -19174622, -5475723, -16796596, -5031438),
                array(-
22273315, -13524424, -64685, -4334223, -18605636, -10921968, -20571065, -7007978, -99853, -10237333),
            ),
            array(
                array(
177474651003926019368299, -4050591, -20630635, -1604128631992683, -15857976, -29260363, -5511971),
                array(
31932027, -4986141, -1961238216366580220236148845011371999, -37442474882242, -10626905),
                array(
29796507371861981805210115756, -118290323352736185511983272828, -5190932, -4162409),
            ),
            array(
                array(
125012864044383, -8612957, -13392385, -324300525136599, -19230378, -3529697330070, -3659409),
                array(
63848772899513178074777663917, -23588881236316525366522, -8573892, -27129512071499),
                array(-
8365515, -404252125133448, -4517355, -62110272265927, -327696181936675, -51596973829363),
            ),
            array(
                array(
28425966, -5835433, -577090, -4697198, -1421755568709307921550, -65677872633314014267664),
                array(-
110672191187123127385719, -10559544, -4585914, -1118931210004786, -8709488, -217612248930324),
                array(-
21197785, -1639603525654216, -1725397122820121100891915419404757911, -26491501, -16408940),
            ),
            array(
                array(
13537262, -7759490, -2060484010961927, -5922820, -13218065, -131565846217254, -1594369913814990),
                array(-
1742257315157790187055432961924409717, -260476273616819257833, -1956526, -1776914),
                array(-
25045300, -101919661536658515166509, -131050868423556, -2917154012361135, -186859784578290),
            ),
            array(
                array(
2457976837115701342322, -11180126, -2700513514124956, -2254452914074919219644328235257),
                array(-
6528613, -24114979442966, -592558812025640, -1487420, -2981514, -1669206130068062355433),
                array(-
16304899, -13605259, -6632427, -514234916974359, -109110832720204417193661141648, -12796236),
            ),
            array(
                array(-
12863944, -13219986, -8318266, -11018091, -6810145, -484389413475066, -31339723267489513715045),
                array(
11423335, -5468059323442168962751249898099241752, -1326525316086212, -28740881, -15642093),
                array(-
140966812530728, -63687261084738719531186, -14132160, -117091487791794, -272459434383347),
            ),
        ),
        array(
            array(
                array(-
289708985271447, -1266009, -9736989, -1245523616732599, -4862407, -4906449271935576245191),
                array(-
151939565362278, -17838932695834496022712840725230618983260492225104538577507),
                array(-
1263245111257346, -3269299413548177, -721004108790113116803013952092, -29571492, -3635906),
            ),
            array(
                array(
3877321, -9572739324166925405324, -11004407, -1365663537597691193532056118608164018),
                array(-
16275802146677971590646012155291, -22111149, -903971832003002, -88322895773085, -8422109),
                array(-
23788118, -8254300195087589376331868672716459170, -9057251237632031632953190926),
            ),
            array(
                array(-
24593607, -16138885, -842399113378746141624076901328, -82887494508564, -25341555, -3627528),
                array(
8884438, -5884009602397410104341, -6881569, -494153318722941, -14786005, -1672488827625),
                array(-
32720583, -16289296, -325035477101210133546052659080, -1800575, -14108036, -248784781541286),
            ),
            array(
                array(
2901347, -11176873880376, -10059388, -17620940, -3612781, -21802117, -356748120456845, -1885033),
                array(
2701961012299467, -13658288, -1603234, -12861660, -4861471, -19540150, -50160582943964115138866),
                array(
21536104, -6626420, -32447818, -10690208, -224080775175814, -5420040, -163611637779328109896),
            ),
            array(
                array(
3027974414648750, -8044871642555813639621, -743509286983901218011823177719, -554075),
                array(
265728473405927, -3170170012890905, -192656685335866, -649376823784924439158, -13279347),
                array(-
227167063489070, -9225266, -33275318875722, -114009514819434, -12731527, -17717757, -5461437),
            ),
            array(
                array(-
505648316566551159536613767752, -1043649915627060, -82095421772258550082, -15114165),
                array(-
1847330216596775, -381660156636112286096015585581, -27844109, -3582739, -23260460, -8428588),
                array(-
3248055115707275, -8205912, -5652081294645582713815, -2272513715860482, -219025701494193),
            ),
            array(
                array(-
19562091, -14087393, -25583872, -9299552131278427597092192348216529112874270412967017),
                array(-
28464899155320532536856, -10473729, -24691605, -406174, -8914625, -2933896, -2990375815553883),
                array(
218779093230008988117410539357, -47971152841332115435721451327419375923, -12647961),
            ),
            array(
                array(
8832269, -144954851325351151375755037871407877724880818, -622271628626539455043),
                array(
29306751512310620245049, -1414988995925668447059, -2077124, -2990080155114494789663),
                array(-
2067975670045478824831, -9434977, -4045704, -3750736, -57547621088932351320016652362),
            ),
        ),
        array(
            array(
                array(-
332561734144782, -4476029, -657912310770039, -7155542, -6650416, -12936300, -1831919810212860),
                array(
275608185981107383731, -685989222312759, -1105012211798012600940, -9988298, -12506466),
                array(-
2464569213317462, -30449259, -1565392821365574, -1086965711344424864440, -2499677, -16710063),
            ),
            array(
                array(-
264328036148329, -17184412, -1447415418782929, -275997, -2256153421130027197574940997),
                array(-
13238823911313, -694874414759765, -300271507851207216901268518463266998435276295),
                array(-
13149873, -6429067939624936501324703301, -104889391321586149635, -154527747159369),
            ),
            array(
                array(
9987780, -34047591750796295055309731535, -216551422356009831217622477218, -8403385),
                array(
18155857, -1650499019744716900692315154154, -1053897624256460, -4864995, -225481739334109),
                array(
2986088, -491189310776628, -347384410620590, -7083203, -2141384514253545, -22587149536906),
            ),
            array(
                array(
437775681158362456707815495314116250741306459973905511058962510838060, -15420424),
                array(-
193424048678809277171, -3218459, -14431572, -198644319295826, -157969506378260699185),
                array(
78950264057113, -7081772, -13077756, -17886831, -323126, -71603915693155, -5045064, -13373962),
            ),
            array(
                array(-
7737563, -5869402, -14566319, -7406919113856541320161631730678, -10962840, -3918636, -9669325),
                array(
10188286, -15770834, -7336361134275432222344314896287307434557116568, -217865075427593),
                array(
6961021320689927047647, -1063208215285305, -985317910798490, -45787201923624312477404),
            ),
            array(
                array(-
1122943911243796, -17054270, -8040865, -788228, -8167967, -389766911180504, -231695167733644),
                array(
17800790, -14036179, -27000429, -1176667123887827314967123466177, -105381711032202715313801),
                array(
262462341196887432263343, -54687286830755, -13323031, -15794704, -101982, -2444924210890804),
            ),
            array(
                array(-
3136564710271363, -12660625, -626726816690207, -13062544, -149822121648493125180797, -5334884),
                array(-
58657410376444, -32586414, -1128635619801893109976102276632948288331687813820577),
                array(-
9882808, -4510367, -211550616457136, -111000811167499630756178, -751505430696930, -3712849),
            ),
            array(
                array(
32988917, -9603412124993667910787, -10617257, -11931514, -7342816, -9985397, -323495177392473),
                array(-
8855661159278619866406, -3649411, -2396914, -16655781, -30409476, -913499525112947, -2926644),
                array(-
2504044, -43696625621774, -567877215085042, -5479877, -24884878, -135261945537438, -13914319),
            ),
        ),
        array(
            array(
                array(-
112255842320285, -958428010149187, -334446635808648, -14876251, -1729667312345906090599),
                array(-
9633316116426260839342897444, -6364437, -268808660972115878753, -6970405, -9034768),
                array(-
27757857247744, -15194774, -900255123288161, -10011936, -238695956503646206504741804084),
            ),
            array(
                array(-
2758978615456424897251784696081564062244398473121995, -1032971327842616, -202328),
                array(-
153069732839644225300741002633146020585048462282486565031932, -1137508212714369),
                array(
20807691, -72708252928614111421711, -27876523, -13868230, -212274751035546, -1973322912796920),
            ),
            array(
                array(
12076899, -14301286, -8785001, -11848922, -2501279116400684, -17591495, -128994383480665, -15182815),
                array(-
3236154954575972854810778331867303070, -11953545, -24363064, -15921875, -333740542771025),
                array(-
2138926642193226597266686082622486084, -6737172, -17137485, -4210226, -2455228215673397),
            ),
            array(
                array(-
20184622233821619788685, -9620956, -4001265, -8740893, -2027118447332543727144, -12934448),
                array(
6120119814863, -11794402, -6227166812205, -157477712019594797568331123697, -10958981),
                array(
30069250, -1143533230434654295843918399564, -976289122968699204260, -164324389648165),
            ),
            array(
                array(
32705432, -1550977307056587451065, -11805606963181333052665248604, -26008332, -11377501),
                array(
172198652375039, -31570947, -5575615, -194596799219903294711152986392662509, -16297073),
                array(-
1172927, -7558695, -4366770, -4287744, -21346413, -843432632087529, -122277732247248, -14389861),
            ),
            array(
                array(
14312628122155617395390, -8700143, -4945741, -8684635, -28197744, -9637817, -16027623, -13378845),
                array(-
1428825, -9678990, -92356816549687, -7383069, -468664230465029803137175979342346211),
                array(
185108001533757426171504981392, -222415527827556, -23491134, -113233523059833, -11782870),
            ),
            array(
                array(
10141598608290717829293, -1947643983009213613136, -25556636, -5544586, -335022123592096),
                array(
33114168, -15889352, -26525686, -1334339733076705871617111514621521897, -982665, -6837803),
                array(-
32939165, -425581523947181, -324178, -33072974, -12305637, -16637686389170426353178693168),
            ),
            array(
                array(
303742391595580, -168840391318693146003444069049585294, -4006683137546414369965),
                array(-
14370654, -777252915103016434173, -18784789, -626272832732230, -131088391790144116011505),
                array(
18171223, -11934626, -1250040215197122, -11038147, -15230035, -19172240, -16046376876403512309598),
            ),
        ),
        array(
            array(
                array(
5975908, -5243188, -19459362, -9681747, -1154127714015782, -23665757122831917544096, -10593782),
                array(
5811932, -17152933442887, -2269310, -18367348, -8359541, -18044043, -15410127, -556538112348900),
                array(-
3139966011407555257553636891399, -325693814872274, -248493538141295, -10632534, -585479),
            ),
            array(
                array(-
12675304694026, -50761451330034414015258, -14451394, -9698672, -11329050309445931130208),
                array(
8247766, -6710942, -26562381, -7709309, -14401939, -146489104652152248854023550156, -271232),
                array(
17294316, -3788438702674815626851229900441134812267737, -5908146, -408818, -137719),
            ),
            array(
                array(
16091085, -162539261859925273406782137637, -1221657, -3364161145509363260525, -7166271),
                array(-
4910104, -133328871855088710864893, -16459325, -7291596, -23028869, -13204905, -127487222701326),
                array(-
8574695160994154629974, -16340524, -20786213, -6005432, -100183639276971113299231862132),
            ),
            array(
                array(
14763076, -15903608, -309182703689867351189210313526, -2195108812219231, -9037963, -940300),
                array(
8894987, -34460946150753301393130122015693451, -31981216, -2909717, -1543816811595570),
                array(
152149623537601, -26238722, -140588724418657, -152307611394727610730794, -13489462, -4363670),
            ),
            array(
                array(-
2538306768279332759013263109, -29984731, -7955452, -22332124, -10188635977108699994),
                array(-
124664724195084, -9211532550904, -155653371291792019118110, -439841, -30534533, -14337913),
                array(
31788461, -14507657479998973722378808585, -147479439408237, -1005177512493932, -5409317),
            ),
            array(
                array(-
256806065260744, -19235809, -6284470, -369594216566087272182802607121293759556024730),
                array(
842132, -2794693, -4763381, -872281526332018, -12405641118318806985184, -99403612854096),
                array(-
4847262, -79693312516242, -58477139695691, -7221186165126459607701212186916648078),
            ),
            array(
                array(-
1521865214667096, -13336229201371730598287, -464137, -31504922, -7882064202378062838411),
                array(-
19288047445315215298546, -1617838822115043, -1597260412544294, -134704571068881, -12499905),
                array(-
9558883, -16518835332384981350695830505848, -1114596, -8486907, -2630053125213784845654),
            ),
            array(
                array(-
2819852110744108, -2958380101996647759311, -130886003409348, -873400, -6482306, -12885870),
                array(-
235618226230156, -2038201310655314, -24040585, -1162117210477734, -1240216, -311322713974498),
                array(
1296626115550616, -32038948, -161534621025980, -629444564232571887371889576212629579),
            ),
        ),
        array(
            array(
                array(
14741879, -1494688722177208, -117212371279741805860011758140789443321951813895677),
                array(
1075820515755439, -45099509243698, -48794226879879, -2204575, -3566119, -89820694429647),
                array(-
245389415725973, -20436342, -10410672, -5803908, -11040220, -7135870, -1164289518047436, -15281743),
            ),
            array(
                array(-
25173001, -113071652975995611776784, -22262383, -1582045510993114, -12850837, -17620701, -9408468),
                array(
21987233700364, -2450504814972008, -7774265, -5718395321550262581431, -299589858773375),
                array(-
25568350454463, -13211935161267152524006885945672065684612017935, -7874389, -13920155),
            ),
            array(
                array(
60281826263078, -31011806, -11301710, -8189192461772, -31841174, -5468042, -1721788, -2776725),
                array(-
1227899416624277987579, -59225983290820312486087719845, -4166698284088206816612),
                array(-
10358094, -823782919549651, -1216922222082623161478172061318113982702, -103395705067943),
            ),
            array(
                array(-
30505967, -38217671207468113582412, -198779722443951, -19719286127461325331210, -10105944),
                array(
305288113601899, -19570904619785, -27361822, -1543638824180793, -1257039427679908, -1648928),
                array(
9402404, -139570653283404310838634, -26580150, -1323719526653274, -868556522611444, -12715406),
            ),
            array(
                array(
2219059011180292273644115130463, -30460692, -599132119189625, -464894248548596622139),
                array(-
8310738, -2953450, -8262579, -3388049, -10401731, -27192913424426, -35672272640440913001963),
                array(-
31241838, -15415700, -2994250893934611562230, -12840670, -26064365, -11621720, -1540515511020693),
            ),
            array(
                array(
1866042, -7949489, -7898649, -1030101012483315134775473175636, -12424163287617621406734),
                array(-
448555, -1777666130185513194501, -9580420, -1116173724760585, -434708825577411, -13378680),
                array(-
242903784759345, -690653, -1852816206674710693769, -295957909884936, -93689264745410),
            ),
            array(
                array(-
91412846049714, -19531061, -4341411, -312607989944276, -15462008, -1131185210931924, -11931931),
                array(-
1656151314112680, -80126454817318, -8040464, -11414606, -2285342910856641, -2047077013434654),
                array(
22759489, -10073434, -16766264, -187142213637442, -101680911765144, -1265432628445307, -5364710),
            ),
            array(
                array(
29875063124936132795536, -3786330171062015181182, -10195717, -878867590742341167180),
                array(-
2620568311014233, -9842651, -2635485, -269081207532294, -18716888, -953549838439039367684),
                array(-
10969595, -64037119591134958231011349256108879162351238601684, -1391974242895),
            ),
        ),
        array(
            array(
                array(
22092954, -13191123, -2042793, -1196851232186753, -11517388, -65743412470660, -2741736616625501),
                array(-
11057722304201613770083, -9257922584236, -544855, -77708572602725, -2735161614247413),
                array(
6314175, -10264892, -3277250215957557, -10157730168750, -86188071429006127108877, -1180880),
            ),
            array(
                array(-
8586597, -71709661324178210960156, -32991015, -1379459633547976, -11058889, -27148451981874),
                array(
228334409293594, -32649448, -13618667, -913696614756819, -22928859, -13970780, -10479804, -16197962),
                array(-
77685873326786, -281117971078382419178761149050602268004913906969, -159336903797899),
            ),
            array(
                array(
21721356, -4212746, -122061239310182, -3882239, -1365311023740224, -270923220491983, -8042152),
                array(
9209270, -15135055, -13256557, -6167798, -73101615289673259478051528658730997318, -6703063),
                array(
73920321661838623946583, -8039892, -13265164, -1533858, -14197445, -232157617649998, -250080),
            ),
            array(
                array(-
9301088, -1419382730609526, -3049543, -25175069, -1283752, -15241566, -9525724, -22332537662146),
                array(-
175586731763594, -3311433615908610, -30040870, -121742957335080, -8472199, -31746743440183),
                array(-
19889700, -5977008, -24111293, -968887010799743, -1657195740450, -443183548624001133),
            ),
            array(
                array(-
32856209, -7873957, -542238914860950, -1631903179561427258061311861, -30594991, -7379421),
                array(-
3773428, -156593628985340749944024445838932593729727763165271961827845315405622),
                array(-
43819068508652, -19898366, -3674424, -598445315149970, -13313598843523, -2187506213626197),
            ),
            array(
                array(
2281448, -13487055, -10915418, -2609910187935816164207, -1078388239537921334083915928663),
                array(
31727126, -7179855, -18437503, -82836522875793, -16390330, -25269894, -7014826, -234523065964753),
                array(
4100420, -5959452, -171793376017714, -1870583712227141, -26684835113441442538215, -7570755),
            ),
            array(
                array(-
9433605612311311159803, -21566083001628014966241, -204749831485421, -629256, -15958862),
                array(-
268045584260919118513899658551, -3201710716367492, -20205425, -1319128811659922, -11115118),
                array(
2618039610015009, -30844224, -8581293541819794806632231568, -1017008033100372, -1306171),
            ),
            array(
                array(
15121113, -5201871, -1038990515427821, -27509937, -15992507216709474486675, -5931810, -14466380),
                array(
16166486, -9483733, -111041306023908, -31926798, -13649232340060, -16254968, -10735770, -10039824),
                array(
28042865, -3557089, -1212652612259706, -3717498, -69458996766453, -8689599180364365803270),
            ),
        ),
        array(
            array(
                array(-
817581676391211803561158558510958447, -2671165238553914598332, -6159431, -14117438),
                array(-
31031306, -1425619417332029, -238352031312682, -596718369630950292, -2009573911763584),
                array(-
594563, -2514283, -32234153126439801265076114811489665117, -12613632, -19773211, -10713562),
            ),
            array(
                array(
30464590, -11262872, -4127476, -1273447819835327, -7105613, -243961752075773, -17020157992471),
                array(
18357185, -6994433776638216342475, -29324918411174145788418080033, -11574335, -10601610),
                array(
195983971033461012555054255566418821899, -1033978021873263160142342622478016452269),
            ),
            array(
                array(-
30223925514519659445481638596639767352009897, -11377804, -7618186, -205338293698650),
                array(
141874493448569, -10636236, -10810935, -22663880, -34335967268410, -108904442739430112015369),
                array(
1969576116087646280320851299982768177921142761420244189, -1312777, -13259127, -3402461),
            ),
            array(
                array(
3086010312735208, -1888245, -4699734, -169749062256940, -816601312298312, -8550524, -10393462),
                array(-
5719826, -11245325, -19106491556903526642876, -7587760, -5789354, -15118654, -497616412651793),
                array(-
2848395995342111531313, -528287926895123, -12697089, -13118820, -165179029768698, -2533218),
            ),
            array(
                array(-
247194591894651, -287698, -470408515348719, -81565303276751312765450494009510678226),
                array(
1886022415980149, -18987240, -1562570, -26233012, -11071856, -784388213944024, -2437234816582019),
                array(-
155042604970268, -298930444175593, -20993212, -2199756, -1170405415444560, -110037617989037),
            ),
            array(
                array(
314904525568061, -24128032182383, -323368474531686, -320782696200206, -19686113, -14800171),
                array(-
17308668, -15879940, -31522777, -2831, -32887382163755498680158, -1637171328550068, -6857132),
                array(-
28126887, -568809116837845, -1820458, -685068112700016, -30039981436403811556025988841),
            ),
            array(
                array(
21890435, -13272907, -1262401112154349, -78318731530049623148983, -4470481246184078283181),
                array(-
33136107, -1051275199754166841041, -31559793163565363070187, -7025928146616910740210),
                array(-
1509399, -15488185, -13503385, -1065591632799044909394, -13938903, -5779719, -32164649, -15327040),
            ),
            array(
                array(
3960823, -14267803, -28026090, -15918051, -194048581314686815567327951507, -3260321, -573935),
                array(
247408415052253, -300941318961361258774286165135, -2436818014397372, -7380369, -6144105),
                array(-
288883653510803, -28103278, -1158478, -11238128, -10631454, -15441463, -14453128, -1625486, -6494814),
            ),
        ),
        array(
            array(
                array(
793299, -92304788836302, -6235707, -27360908, -236959333152843, -4885251, -9906200, -621852),
                array(
566623352558220782575, -8038419, -2453849914657740160993741468826, -6171428, -15186581),
                array(-
4859255, -3779343, -2917758, -6748019777875011688288, -30404353, -9871238, -1558923, -9863646),
            ),
            array(
                array(
10896332, -7719704824275472601, -1946030830095872524895814783338, -30581476, -15757844),
                array(
1056692912612572, -3194421211118703, -12633376123628792175240288224962400379314264025),
                array(
27713862, -7355973, -11008240922753027050101250472123886875, -1311752513958495, -5732453),
            ),
            array(
                array(-
234816104867226, -27247128390052129838369, -8212291, -31889399, -100417817340521, -15410068),
                array(
4646514, -8011124, -22766023, -1153265423184553856661331366726, -1381061, -15066784, -10375192),
                array(-
1727051712723032, -169930611487879421619651, -6197576275848173093888, -88436943849921),
            ),
            array(
                array(-
9064912210317225561640, -15125738, -5239824958295832477045, -90179555002294, -15550259),
                array(-
12057553, -1117790621115585, -133651558808712, -120307081648953013378448, -2584571612741426),
                array(-
594636710645103, -3091158615390284, -3286982, -7118677243064721585246428834118, -7646072),
            ),
            array(
                array(-
17335748, -9107057, -245312799434953, -8472084, -583362, -13090771455841204618585491305),
                array(
13669248, -16095482, -12481974, -10203039, -14569770, -11893198, -2499598611293807, -28588204, -9421832),
                array(
284979286272777, -33022994144705708906179, -122563018504674, -1416516629867745, -8795943),
            ),
            array(
                array(-
1620702313517196, -27799630, -1369779824009064, -6373891, -6367600, -1317539222853429, -4012011),
                array(
2419137816712145, -139317971521783114542237164613118603514, -1103788712876623, -2112447),
                array(
179026684518229, -411702, -2829247268782175258055, -12860753608397160318443723494),
            ),
            array(
                array(-
2863277312763728, -20446446757750433001348, -1301774517558842, -787289023896954, -4314245),
                array(-
20005381, -120119523152046460520125435215991821, -29450647229064, -9919646, -8826859),
                array(
28816045298879, -28165016, -1592093819000928, -1665890, -12680833, -2949325, -18051778, -2082915),
            ),
            array(
                array(
16000882, -3448963493092, -11447198, -29504595, -131597891257774016041268, -197152407847707),
                array(
1015186810572098273124767922682148253394723128, -32855931, -6519018, -100205673852848),
                array(-
1143047015697596, -21121557, -442064753863141506359816514493, -1593211029330899, -15076224),
            ),
        ),
        array(
            array(
                array(-
25499735, -4378794, -15222908, -6901211166157312051784330370215490, -2754879612314391),
                array(
15683520, -600304318109120, -998064815337968, -5997823, -167174351592186616103996, -3731215),
                array(-
23169824, -1078124913588192, -1628807, -3798557, -1074929, -192736075402699, -29815713, -9841101),
            ),
            array(
                array(
231906762384583, -327143403462154, -29903655, -1529132, -112668568911517, -252058592739713),
                array(
21374101, -3554250, -3352464998744111537717911831242, -335299046134907493125511987849),
                array(-
7732, -2978858, -162234867277597105524, -322051, -3148053913861388, -3007631010117930),
            ),
            array(
                array(-
29501170, -10744872, -2616376813051539, -256255645089643, -632550367040791289001915728940),
                array(-
21972360, -11771379, -951059, -4418840147048402695116903376, -10428139128851678311031),
                array(-
17516482535219410384213, -138116587506451134531912642326743847301888765, -5435404),
            ),
            array(
                array(-
25817338, -3107312, -13494599, -318250630896459, -13921729, -32251644, -12707869, -19464434, -3340243),
                array(-
23607977, -2665774, -52609146511365765089461833060922451484519717151279, -9854116),
                array(-
24830458, -12733720, -1516597810367250, -29530908, -26535622825805, -7087279, -1686648416176525),
            ),
            array(
                array(-
235832566564961200636893798228, -474017873592252006182, -10363426, -28746253, -10197509),
                array(-
10626600, -4486402, -13320562, -51253173432136, -639322923632037, -1940610328083101099883),
                array(
150309775768825, -27451236, -2887299, -6427378, -15361371, -15277896, -68093502051441, -15225865),
            ),
            array(
                array(-
3362323, -723937275178909824992235558502953695148398, -14154188, -2268635416633660),
                array(
4577086, -1675228813249841, -1530432819958763, -1453727418559670, -107595498402478, -9864273),
                array(-
28406330, -1051581, -26790155, -907698, -17212414, -110307899453451, -14980072179830109967138),
            ),
            array(
                array(-
257624946524722265854889969270247092981220360, -16779907806337175073963651560),
                array(-
10420457, -41181111458463915971087, -15768321886101026556809, -5574557, -18553322, -11357135),
                array(
283910114284142402989534726861440295712689363, -266421218459447, -5605463, -7621941),
            ),
            array(
                array(-
4839289, -353544497449612871048251139783187018, -25110813, -84906617258084, -7977739),
                array(
18164541, -10595176, -17154882, -154241719237078, -974529523357533, -152170082690827012150756),
                array(-
30264870, -76478655112249, -7036672, -1499807, -697425743168, -5537701, -3230207416215819),
            ),
        ),
        array(
            array(
                array(-
68989059824394, -12304779, -4401089, -31397141, -62768353257448912532905, -7503072, -8675347),
                array(-
27343522, -16515468, -27151524, -1072295194634616291093254968716808021676107, -1943028),
                array(
21260961, -8424752, -16831886, -11920822, -236779613968121, -3651949, -6215466, -3556191, -7913075),
            ),
            array(
                array(
1654475413250366, -1680442815546242, -458300312757258, -2462308, -8680336, -18907032, -9662799),
                array(-
2415239, -15577728183123034964443, -15272530, -12653564268206511669065925459437, -4564609),
                array(-
251446901142502028423002, -11020557, -6144921, -158262249142795, -2391602, -6432418, -1644817),
            ),
            array(
                array(-
23104652625347616964147, -3768872, -25113972, -12296437, -27457225, -1634465863356927249989),
                array(-
30333227139796757503222, -12368314, -11956721, -4621693, -30272269268224225993170, -12478523),
                array(
4364628593069132304656, -10044554, -80547811509113122857016, -105989553182036815075278),
            ),
            array(
                array(
31879134, -89186931725876190626, -8041836, -491770924162788, -9650886, -1797023812833045),
                array(
1907368314851414, -24403169, -11860168762527811091125, -196191902074449, -941393914905377),
                array(
24483667, -11935567, -2518866, -11547418, -155313015355506, -25282080925312927628530, -7555480),
            ),
            array(
                array(
1759760783406031935561755218726198470, -31765834593324, -9157582, -1411087515297016),
                array(
51088614337390, -317852571663863263280952713355, -20217417, -1186422086832212921426),
                array(
186067911187419627155355, -5281482, -240317426265446, -25178240, -1278924467469013890525),
            ),
            array(
                array(
1360962413069022, -27372361, -130559082436058695929741497715798351054389687288396),
                array(
9922506, -519394136131075883594, -18758345, -434263, -1230406283176282338807016052080),
                array(
1272001611937594, -31970060, -5028689269001208561328, -20155687, -11632979, -14754271, -10812892),
            ),
            array(
                array(
159618581415040926716931, -665832, -2279432813603569118295737467844, -28822128929275),
                array(
11038231, -11582396, -27310482, -7316562, -10498527, -16307831, -23479533, -9371869, -213931432465074),
                array(
20017163, -4323226279152421529148123963621567576413817261, -96580662463391, -4622140),
            ),
            array(
                array(-
16358878, -12663911, -120651834996454, -12564221073572958355812851107400389612673717),
                array(-
1731589, -15155870, -326293016143082192941351338532514741514, -910372679038862348101),
                array(
24536016, -1651520712715592, -3862155151129310047386, -3842346, -7129159, -2837753810048127),
            ),
        ),
        array(
            array(
                array(-
12622226, -6204820307188252591312, -106170281219284018873298, -7297090, -3229775615221632),
                array(-
26478122, -1110386411546244, -185248391808807656409, -213439502095755297697586593415),
                array(-
31994208, -29074614176912326476612538965, -86811126312345, -6118678309580548292160),
            ),
            array(
                array(
31429822, -13959116291735321563244812174511, -276009432808831397718626143136, -3148876),
                array(
226489011402143, -22799984137460597936347365344, -8668633, -1674433, -3758243, -2304625),
                array(-
154919178012313, -2514730, -12702462, -23965846, -10254029, -1612713, -1535569, -166644758194478),
            ),
            array(
                array(
27338066, -7507420, -741422410140405, -19026427, -6589889272771918855376285722863005164),
                array(
26287124482177625476601, -4145903, -3764513, -15788984, -180085821182479, -26094821, -13079595),
                array(-
71711543178080239700716201893, -17195577, -4489192, -21876275, -1398262732208683, -1198248),
            ),
            array(
                array(-
166577022817643, -1028636214811298602466713349505, -27315504, -10497842, -27672585, -11539858),
                array(
15941029, -9405932, -21367050806205531876073, -238629, -15278393, -144442915397331, -4130193),
                array(
8934485, -13485467, -23286397, -13423241, -324460901404798631170398, -1441021, -2750556615087184),
            ),
            array(
                array(-
18357243, -215649124524913, -1667786815520427, -6360776, -155024061146189616788528, -5868942),
                array(-
194738616013773217506653714552, -17401782, -16055433, -3770287, -1032332031322514, -11615635),
                array(
21426655, -5650218, -13648287, -5347537, -28812189, -4920970, -18275391, -1462141413040862, -12112948),
            ),
            array(
                array(
1129389512478086, -2713640115083750, -293074211474887214555558, -1341710316137114896935),
                array(-
2589488315323294, -8489791, -805790025967126, -134254602825960, -4897045, -23971776, -11267415),
                array(-
15924766, -5229880, -1744353264106643622847102436182061540012405433, -23753030, -8436416),
            ),
            array(
                array(-
709129512556208, -201913529025187, -1707247943338014378436243203023097949, -566018),
                array(
4565804, -1602565420084412, -784281717249991892542476726410103221, -185123132424778),
                array(
366633, -119768068173090, -6890119307886345745705, -71686781344109, -364255312412659),
            ),
            array(
                array(-
24001791769028614929416, -168257, -32210835, -1341298624162697, -15326504, -314150111179385),
                array(
18289522, -14724954805694516430056, -217297247842514, -6001441, -1486897, -18684645, -11443503),
                array(
4762396601091, -6152790, -972337517503545, -48639002767295913403813110529045219329),
            ),
        ),
        array(
            array(
                array(
20678546, -8375738, -326718988849123, -50097581457475231186971, -39737309014762, -8579056),
                array(-
13644050, -10350239, -159625085075808, -1514661, -11534600, -3310250091602808473550, -3256838),
                array(
249007491443572217209120, -15292541, -225922759878983, -7689309, -16335821, -2456848111788948),
            ),
            array(
                array(-
3118155, -11395194, -13802089147974419652448, -6845904, -2003743710410733, -24568470, -1458691),
                array(-
1565916116736706, -2246715010215878, -9097177756391111871841, -12505194, -185133258464118),
                array(-
234006128348507, -14585951, -861714, -3950205, -637341914325289862861233313881, -8370517),
            ),
            array(
                array(-
20186973, -4967935223673565271547, -1097117, -4788838, -24805667, -10236854, -8940735, -5818269),
                array(-
6948785, -1795212, -32625683, -1602117932635414, -737424515989197, -1283818828358192, -4253904),
                array(-
23561781, -2799059, -32351682, -1661963, -914771910429267, -166376844072016, -53516645596589),
            ),
            array(
                array(-
28236598, -3390048123128966213178311714216078565292662392557221176830115373193),
                array(-
7243358, -3246960, -4593467, -7553353, -127927, -912245, -1090902, -4504991, -246604913442910),
                array(-
30210571512404314181784819796118964734, -11939093225979317176455, -1858547813365930),
            ),
            array(
                array(-
7877390, -149995883246734690079626186089044624538107, -8570186, -9689599, -3031667),
                array(
25008904, -10771599, -4305031, -96380101626503615721635683793, -1182378415723479, -15163481),
                array(-
966062512374379, -27006999, -7026148, -7724114, -12314514118796825400171519526, -1235876),
            ),
            array(
                array(
22258397, -16332233, -786981714613016, -22520255, -2950923, -203538817315967166483977605640),
                array(-
8081308, -8464597, -8223311971971019259459, -1534821223994942, -5281555, -94688484763278),
                array(-
216992449220969, -157306241084137, -25476107, -285239031088447, -7764523, -11356529728112),
            ),
            array(
                array(
26047220, -11751471, -6900323, -16521798240920689158119, -4273545, -12555558, -29365436, -5498272),
                array(
17510331, -3228575854289840352417133918, -3112612, -28111007123279451075044710014012),
                array(-
1031276839369529156313, -889768316498692, -994647, -27481051, -66673234246917540221),
            ),
            array(
                array(
30322361, -696411011361005, -414331774333044989748, -7071422, -16317219, -924426515258046),
                array(
13054562, -277949719155474469045, -124827974566042563140627113951062915, -5136345),
                array(-
19240248, -11254599, -29509029, -7499965, -583576313005411, -606648912194497329603801459310),
            ),
        ),
        array(
            array(
                array(
19852034702792423669353100203668586503, -6657907394197, -610188518638003, -11174937),
                array(
3139553415098109265810308030562, -16527914, -50071349012486, -7584354, -6643087, -5442636),
                array(-
9192165, -2347377, -1997099452953425766844607986, -132229677543, -32294889, -6456008),
            ),
            array(
                array(-
2444496, -149937293489028186665187376012489863, -30934579, -7839692, -7852844, -8138429),
                array(-
15236356, -15433509776647074686026346930, -10221762, -2733345110754588, -94314765203576),
                array(
3183431414135496, -770007515911820917671, -16768096, -7467973, -7337524318092437347066),
            ),
            array(
                array(-
9606723, -11874240204144591303398613716524, -1169188119797970, -1221125515192876, -2087490),
                array(-
12663563, -21817191168162, -380480926747877, -14138091106093301269442033473243, -13382104),
                array(
331849991118035515832085, -11385430, -163367122588415089336, -11023903, -613566214480053),
            ),
            array(
                array(
31308717, -561999831030840, -189709915674547, -6582883549620813685227275950508737275),
                array(-
20318852, -1515023910933843, -161780228335352, -7546022, -31008351, -126106042649811466511),
                array(
22644454, -8761729, -166717764884562, -3105614, -1355936630540766, -4286747, -13327787, -7515095),
            ),
            array(
                array(-
28017847983484518617207, -2681312, -3401956, -13307506820554013585437, -1712746515115439),
                array(
23711543, -67291531206561, -83627116164647, -9709987, -33535882, -1426096823692116492939),
                array(-
23910559, -13515526, -26299483, -450384125005590, -768727019574902100715626708380, -6222424),
            ),
            array(
                array(
2101391, -4930054197027312367575, -1542716710476755301017932870029955601, -11678310),
                array(
30963599271816, -21620864, -15521844, -14847996, -7592937, -25892142, -12635595, -99175756216608),
                array(-
32615849338663, -251956112510422, -29213566, -1382021324822830, -6146567, -267674807525079),
            ),
            array(
                array(-
23066649, -1398562316133487, -7896178, -3389565778788, -910336, -2782495, -1938663311994101),
                array(
21691500, -13624626, -641331, -143670213285881, -3483596, -250646669718258, -747743713381418),
                array(
18445390, -42022361497984611622458, -1727110, -358298023111648, -63752472853528215779576),
            ),
            array(
                array(
300980533089662, -923438716662135, -2130694011308411, -14068454120217309955285, -16303356),
                array(
9734894, -14576830, -7473633, -9138735206039211313496, -1842602999243992019486113380996),
                array(-
26378102, -7965207, -2216782115789297, -18055342, -6168792, -1984914157077712634202310146099),
            ),
        ),
        array(
            array(
                array(-
26016874, -21994321339191, -4138819745256, -2878700, -29637280222704021612326, -545728),
                array(-
13077387118422823562814, -5970442, -20351244, -63487142576446112243797, -2085656611649658),
                array(-
100314941126262627384172227190226947504, -15997771399446114064335141902333242),
            ),
            array(
                array(-
21433588, -1242182181197827219913, -21830522, -9016134, -6679750, -1267063824350578, -13450001),
                array(-
4116307, -11271533, -238861864843615, -30088339690623, -31536088, -10406836831786012352766),
                array(
18200138, -14475911, -33087759, -2696619, -23702521, -9102511, -23552096, -2287550207121636719373),
            ),
            array(
                array(
266562086075253, -78585561886072, -28344043426232611117530, -376321026224235, -3297458),
                array(-
17168938, -14854097, -3395676, -16369877, -199540451405042021728352949361018620611, -16428628),
                array(-
1332332113325349114321065964811186092216062965, -5269471, -9725556, -30701573, -16479657),
            ),
            array(
                array(-
23860538, -11233159269613571640861, -32413112, -1673794012248509, -5240639137353421934062),
                array(
25089769674258917081145, -1340626621909293, -16067981, -15136294, -3765346, -212779975473616),
                array(
31883677, -79611011083432, -115724032282847113290673, -71250851246965629111212, -5451014),
            ),
            array(
                array(
24244947, -15050407, -262629762791540, -1499759916666678243674666388839, -10295587452383),
                array(-
25640782, -341784152179161622462419987036, -4082269, -24236251, -5915248157660628407814),
                array(-
20406999139902311549542516395525537716815166495, -8917023, -4388953, -80679092276718),
            ),
            array(
                array(
3015791812924066, -177120509245753198950283368142, -23827587509621922740376, -7303417),
                array(
2041139, -14256350778368713876377, -25946985, -133524592405112413742383, -1563759913295222),
                array(
33338237, -85057331253211379775279106186, -1715251, -17720195, -4612972, -4451357, -14669444),
            ),
            array(
                array(-
200452815454097, -143465486447146288620711883651, -2469266, -414188077705699620597),
                array(
2320806879797123307146681492291758231, -1083499530945528, -1694323, -33502340, -14767970),
                array(
1439958, -16270480, -1079989, -793782462540210647766, -5043801122011830494170, -11440799),
            ),
            array(
                array(-
5037580, -13028295, -2970559, -306176715640974, -6701666, -26739026926050, -1684339, -13333647),
                array(
13908495, -354927230919928, -6273825, -2152186379890399021034907886533535094033511),
                array(-
29663431, -1511361032259991, -34448224295849, -12912123231611638839127274850417356032),
            ),
        ),
        array(
            array(
                array(
966102770544311980065, -5370154, -162854314661173, -6346142262501528431036, -16771834),
                array(-
23839233, -8311415, -259455117480958, -17681669, -8354183, -2254597214150565159707624099461),
                array(
292625761675659026350592, -87935638529671, -1120805013617293, -9937143114657398317062),
            ),
            array(
                array(-
25493081, -696292832500200, -9419051, -23038724, -230222214898637384845520969334, -5157516),
                array(-
20384450, -14347713, -1833640513884722, -330394542842114, -21610826, -36498881117709514989547),
                array(-
24496721, -117160161695989622784631206630910137771135156412581286, -284875089930240),
            ),
            array(
                array(-
17751622, -209782616544300, -13009300, -15914807, -1494908118345767, -1340375316291481, -5314038),
                array(-
33229194255328832678213987598485341296889387, -9676774695761743688919788741),
                array(
166607567281060, -108307581291182020108584, -8101676, -21722536, -861314816250552, -11111103),
            ),
            array(
                array(-
197655072390526, -165510311416198019052866414907468958410604807, -301904034782747),
                array(-
135453914736941, -7367442, -132928867710542, -14155590, -9981571438304522546403437323),
                array(
31665577, -12180464, -161868301491339, -183686253294682273430842786261, -30633590, -14097016),
            ),
            array(
                array(-
14467279, -683715, -3337410774485521929436014334329, -196906312355319, -19284671, -6114373),
                array(
15121312, -157961626377020, -6031361, -10798111, -129578451895217715496498, -2938013311754228),
                array(-
2637277, -134830758488727, -1430389612728761, -162249371415961172455622761615, -10134141),
            ),
            array(
                array(
1691841611729663, -180835793022987, -31015732, -13339659, -28741185, -122273933285122211717399),
                array(
111666347338049, -67225234531520, -29468672, -7302055314748793483633, -1193175, -4030831),
                array(-
185635992130531456609, -13536438, -1201381813348923331426526546660, -19985279, -3948376),
            ),
            array(
                array(-
3246059611266712, -11197107, -7899103317036943855903, -8537131, -12833048, -30772034, -15486313),
                array(-
18006477127090683991746, -6479188, -21491523, -10550425, -31135347, -16049879109289173011958),
                array(-
6957757, -15594337316960593342402957671614796075, -30831056, -128051801800803110258577),
            ),
            array(
                array(-
22448644156555697018479, -4410003, -30314266, -1201591, -18534651367120251278746671743),
                array(
29701166, -14373934, -108781209279288, -17568131272102138291011042292258387964642684),
                array(-
2043023414955537, -241263478124619, -5369288, -599047030468147, -13900640184232894177476),
            ),
        )
    );

    
/**
     * See: libsodium's crypto_core/curve25519/ref10/base2.h
     *
     * @var array basically int[8][3]
     */
    
protected static $base2 = array(
        array(
            array(
25967493, -14356035295664563660896, -12694345401478727544626, -11754271, -60791562047605),
            array(-
12545711934262, -27229103049990, -727428940698612720692504338419500929, -15469378),
            array(-
873818144895709688441, -1478519410184609, -123633802928791911864899, -24514362, -4438546),
        ),
        array(
            array(
15636291, -968855724204773, -7912398616977, -1668526227787600, -1477218928944400, -1550024),
            array(
165689334717097, -11556148, -110232215682896, -1180704316354577, -11775962768966211199574),
            array(
30464156, -5976125, -11779434, -156708652322036515915852751277410017326, -17749093, -9920357),
        ),
        array(
            array(
1086136311473154272845461981175, -30064349125778613286788514515107, -1543830410819380),
            array(
47080266336745203775869066809, -112721096594696, -2565366812483688, -126684915581306),
            array(
1956316016186464, -29386857409751910237984, -43481152854235013850243, -23678021, -15815942),
        ),
        array(
            array(
515374699092851723747, -2777874305236055516873194808525230134, -23952439, -15175766),
            array(-
30269007, -34635097665486100837932847552516497222065402516520125305984497715701),
            array(
288818451438156896579043680757, -201816357843316, -31400660137070829794553, -1409300),
        ),
        array(
            array(-
22518993, -669218214201702, -8745502, -23510406884472618474211, -1361450, -1306269613821877),
            array(-
6455177, -78398713374702, -4740862, -27098617, -1057170731655028, -721232718853322, -14220951),
            array(
4566830, -12963868, -28974889, -12240689, -7602672, -2830569, -8514358, -104311372207753, -3209784),
        ),
        array(
            array(-
25154831, -4185821296811447868801, -6854661, -9423865, -12437364, -663000, -31111463, -16132436),
            array(
25576264, -27032147349804, -118148441647278293008853844789157256841713566466918),
            array(
23103977133164799739013, -16149481817875, -150389428965339, -14088058, -3071491216193877),
        ),
        array(
            array(-
335218113180713, -239413014003687, -16903474, -16270840172383984729455, -180745139256800),
            array(-
25182317, -4174131323363985036987, -2123681711360617226164059761698, -19827198630305),
            array(-
137206932639453, -24237460, -74064819494427, -5774029, -6554551, -15960994, -2449256, -14291300),
        ),
        array(
            array(-
3151181, -504607592827146866145, -31907062, -863023, -189405751503378425105118, -7894876),
            array(-
2432637015950226, -31801215, -14592823, -11662737, -50909251573892, -26258872198790, -15804619),
            array(-
309935110324967, -22416137453183, -5446979, -2735503, -13812022, -16236442, -32461234, -12290683),
        )
    );

    
/**
     * 37095705934669439343138083508754565189542113879843219016388785533085940283555
     *
     * @var array<int, int>
     */
    
protected static $d = array(
        -
10913610,
        
13857413,
        -
15372611,
        
6949391,
        
114729,
        -
8787816,
        -
6275908,
        -
3247719,
        -
18696448,
        -
12055116
    
);

    
/**
     * 2 * d = 16295367250680780974490674513165176452449235426866156013048779062215315747161
     *
     * @var array<int, int>
     */
    
protected static $d2 = array(
        -
21827239,
        -
5839606,
        -
30745221,
        
13898782,
        
229458,
        
15978800,
        -
12551817,
        -
6495438,
        
29715968,
        
9444199
    
);

    
/**
     * sqrt(-1)
     *
     * @var array<int, int>
     */
    
protected static $sqrtm1 = array(
        -
32595792,
        -
7943725,
        
9377950,
        
3500415,
        
12389472,
        -
272473,
        -
25146209,
        -
2005654,
        
326686,
        
11406482
    
);
}