zkhash/poseidon2/
poseidon2_instance_bls12.rs

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
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
use super::poseidon2_params::Poseidon2Params;

use crate::fields::bls12::FpBLS12;
use crate::fields::utils::from_hex;

use lazy_static::lazy_static;
use std::sync::Arc;

type Scalar = FpBLS12;

lazy_static! {
    pub static ref MAT_DIAG2_M_1: Vec<Scalar> = vec![
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000002"),
    ];

    pub static ref MAT_INTERNAL2: Vec<Vec<Scalar>> = vec![
    vec![from_hex("0x0000000000000000000000000000000000000000000000000000000000000002"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    ],
    vec![from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000003"),
    ],
    ];

    pub static ref RC2: Vec<Vec<Scalar>> = vec![
    vec![from_hex("0x6267f5556c88257324c1c8b00d5871b2eba13cc39d72aa10dde6b69bc44c41c7"),
    from_hex("0x30347723511438a085118166c68bf0c4f4ab5c10a2c55adb5cf87cc9e030f60f"),
    ],
    vec![from_hex("0x10db856965e40038eb6427303181e7b7439f1a051aa4630c26cf86d0a0451a4b"),
    from_hex("0x5a3d2dcd541e4faaae7eb143eec847a0f652b6dc1b92e3f39ec23c808b3a5d63"),
    ],
    vec![from_hex("0x3b07f0ff7edcf93b1dd0487bc9fab1c6905f9ceee38dcce83efeb3a320398526"),
    from_hex("0x40c73c524b9fd0fab63128175befe07b5c63ccdde9ca10e1a37205c9607fdf8a"),
    ],
    vec![from_hex("0x3a933861cf23752376d94dbb24b0f3c61630787928875c07672b68abfb9191e0"),
    from_hex("0x71cc165e208570b2d5ef81db84e3c5e714ea4edfb36fc7fb11ef65a64b2d9755"),
    ],
    vec![from_hex("0x6c0dc9eb332b5d968bec8ad68fe24ce34087ea54093f153618434475bce402f8"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0af5bafd335dae5c86967b11d5dcefb986a54c9d60d35eb06dc7a3fd779b3906"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x6e12847918f030f2626c150ab69e4be0f13d202ae1f8bc87ea74323e93372e3b"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x5565d40e21d059a26db241ca125d9316283eadf144b1318e604e253eeae1fe9a"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x608e01b42d3dca09fed9b54eadaaba3e4ce6aefe92b0dc954a0fa4683a9678f2"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x16bbe434b24f94e2c40ed1f4f9bd7d17e5be96c3aec15579b35fd80f0f80de9e"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0d1be811a8e73220cab01ce981d475522c3d7dd9e2716c3a2cf4ddd541546890"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x5997a3affb18f942868b86f8ee10a68966e90bac7bbd8c65ede7e6e5ef1f6320"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x4d92e86d270041061eec80278079fca771499dea5ccdc99682a953bb3a038b8e"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x616c8c5ce232b9314f694fc6a968446ea9daf7a4079ce1a75fcc950741d680bb"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x677e31e7846d9131bdc350eaf11a8ff918dd258ddd800444424afab34dfdfe3d"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x4e7d7f85aefc110b233525ee3e53851aee7d3241e2a132585e0e25005eee0b0e"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x06a8b4539488b7dddc48c3a226dbda313f906e106f844196d55013d321244f13"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x5091517b6a85783108999f8e6bda3c793bef3f2e9589641d260bdfde8bdef00d"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0d2703e5b30f54d7f414e901802d54f8c14cd6355415df6e0f063d16bef9c43a"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x56f69096811148eb38eec143d32565c077b3d1a4a4351f2b458f43b1659d4495"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x622d94d38d1ded428afd062008c5709b43a678f6ba518ec56383e8ffba473504"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2730c607bba7333723a4a44577819b7db82a24574f6d13eee4c856c1ca3de9c7"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x01ac5f59256c5004dc1043c53b23800a3fbab53eb1a83f551056f227b514b9f6"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0790b92523c973f1c95b94937afbb5796d89481e7a56328b44bab5ba81ae42f3"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x1d63b59d97bc269d13964fb3e8771d0acc749bc83eb2f0372484e266142bb8c0"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x1a52d04e5f14a3a05f7a01262df9e68c77fdf7e2bfb56c8b252d2140efdf0914"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x5aa9b3b808812b284857e8622843a8717fa5cb49b217017f31d79e8d0f963fc0"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x6a3d18fdbeb1d77ec1304539b00e6188786dbbc4435269b4c6281367f42656e3"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x4743e860df269a85dd76fb99dbe9d840eb669dc859754b3f74805e57ba288b00"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x6c32cac3946825f80a434c5ab397fc1a1c6a9bdfaab53175d4cf3d29ddb6cbc6"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x333b0eea5da7ed1e3959d16280a361aa77dd24ecbfb28e1b2583ac4e9894305c"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x3b503fc333b795ccc0c5bb3ae26b077dc3742cb745ec8821648c5ce7ebd9df18"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x4fa5853188d9f728a17532d94bee6fb28fee510380a5d50927c6c5b1ce283444"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x5d2ed8a6603a905bac490ebfb9e6c18f0bc9da1bbc2173291b18de6b6186118f"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2d830a53584c5556264852f075c78f7f9eb068016ae88af9cda933d6ae52eca7"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0250f4d6780ad29ae60e55f135b9ac80ccc7c81e3add37db276c26f1a2b1b86e"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x6e3e9595f59220599e23e830728d4a0c4d62515ec1ed10b72446cf4df5b4c308"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2cd3314555d6faf23ee90cdb884f1c4697ebe98e3a450a624c4d896233b93cd5"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x584a408d0f370543b8413fee70a060a394e561f504d8679f7bece4bf222e4108"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x499cd53437b9fcbf7479c00fcc21295759074ce9bd1bb1fbd3460237aef4759e"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x56a9b567bd0646effd0608d74d537991136098d9a06af6cb3ff8f010efb57578"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x6a5fae2b00d968b931441b374e27ba4d03b306bd602d48731677169e75a67e8c"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2e1cc28e390e64aa1d60edb99c0aeda7c8c32bdb01ba11abbad5026b46eccb27"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2d4820000675df7c276beac408fe2e851e734a7008ae09bbcb3c96c70024f71b"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0c2fe101a2b52b538b902c6b2dc992cb266f7636e05b0c068385b5fa19e97142"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x209b790b78c0e7927c6a178ef2f00b8687fc7bd4f21a9e02578551535002bc95"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2dd0926cf56bbaaec6491513d08a9983f94a910852a7b4ea4bd4222b93e14c10"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x4316b39dd7d65b1bb575198104d409b169236a7ade371f7ab176fcbae75a5f0d"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x540276d61041b91f6ea3068ec260a9338b6e3da15d934e648c24f35aee04e535"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x37af612900b839977b146324c84772c58a4ccc0f6494cc054571827e74bfd2d3"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2af00c93d59ed14c9911e5cb3781d772371e83228e4267bbce11d065c1955338"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x62b48779b0cf7ff2c10fd9b91a6ff7b7a99f935e961a5a94aa38f9d4f71c8b4c"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x540bf5bbe01f28563bcbe11a2ce346d8231a2cdd0fe07641f9fa89e5c21978e3"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x232b6c847a6d23912cb10ecbe50b53491f67f71e9b87a4a30446f2218017874b"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0ab34adbe77b8f1e57a370e4fd626071eea74b3f0b66644a629efaa0e96456c0"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x1a83e43ef118c90046b1bdbeab8dd5cdcab632807c2cd0dc9147cbc5b7084be8"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x1ec6fa41b41b672d9005468720918130b642567462a3d557a595d4dc6c56f2f9"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x01f81a153199a751a111b8f5212cfc5bf82aacf0287d03e1864f8e5713fe4a17"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2617307587a675f4ecd73a54a7b206162d751cabf3d9fd007bcca4de2c6f0649"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x1647be94c515178c7974a245624b642bb1ae6e2d4e1682087e362d7f98bc953f"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x6e690b956e00b9e339dec49d675586f661f9b081ee3fa7696d73977658aa6fea"),
    from_hex("0x660b85bc22de06d476c47bf084ad436f59874f1d630c0f5c91fbef51d5e738c5"),
    ],
    vec![from_hex("0x32bf3d451b69dde075fc370eaa8c1b77b5c0bc2aab1c7b46da7ef9d1840b0419"),
    from_hex("0x73924b40beaa9c1ce4074c2154d1af4d658c09395a568b99b2fbcc3b5685e810"),
    ],
    vec![from_hex("0x17cbb3ee0adcb9d977e96e9152b36042925244fdd0aa184c7a89a58a2dc40097"),
    from_hex("0x29d76a821e3220775c552f6b5977ab94956e52b8dac36ef88ace050d553766a3"),
    ],
    vec![from_hex("0x62b1a6c06ab26881a1fe57eceac56b5aec0b96da7211557f4e27ec24296d7db6"),
    from_hex("0x0dfc474151e5c605a693a51ae8227cc0a99fdc4524fc2810c6eda9035d04334d"),
    ],
    ];


    pub static ref MAT_DIAG3_M_1: Vec<Scalar> = vec![
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000002"),
    ];

    pub static ref MAT_INTERNAL3: Vec<Vec<Scalar>> = vec![
    vec![from_hex("0x0000000000000000000000000000000000000000000000000000000000000002"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    ],
    vec![from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000002"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    ],
    vec![from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000003"),
    ],
    ];

    pub static ref RC3: Vec<Vec<Scalar>> = vec![
    vec![from_hex("0x6f007a551156b3a449e44936b7c093644a0ed33f33eaccc628e942e836c1a875"),
    from_hex("0x360d7470611e473d353f628f76d110f34e71162f31003b7057538c2596426303"),
    from_hex("0x4b5fec3aa073df44019091f007a44ca996484965f7036dce3e9d0977edcdc0f6"),
    ],
    vec![from_hex("0x67cf1868af6396c0b84cce715e539f849e06cd1c383ac5b06100c76bcc973a11"),
    from_hex("0x555db4d1dced819f5d3de70fde83f1c7d3e8c98968e516a23a771a5c9c8257aa"),
    from_hex("0x2bab94d7ae222d135dc3c6c5febfaa314908ac2f12ebe06fbdb74213bf63188b"),
    ],
    vec![from_hex("0x66f44be5296682c4fa7882799d6dd049b6d7d2c950ccf98cf2e50d6d1ebb77c2"),
    from_hex("0x150c93fef652fb1c2bf03e1a29aa871fef77e7d736766c5d0939d92753cc5dc8"),
    from_hex("0x3270661e68928b3a955d55db56dc57c103cc0a60141e894e14259dce537782b2"),
    ],
    vec![from_hex("0x073f116f04122e25a0b7afe4e2057299b407c370f2b5a1ccce9fb9ffc345afb3"),
    from_hex("0x409fda22558cfe4d3dd8dce24f69e76f8c2aaeb1dd0f09d65e654c71f32aa23f"),
    from_hex("0x2a32ec5c4ee5b1837affd09c1f53f5fd55c9cd2061ae93ca8ebad76fc71554d8"),
    ],
    vec![from_hex("0x5848ebeb5923e92555b7124fffba5d6bd571c6f984195eb9cfd3a3e8eb55b1d4"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x270326ee039df19e651e2cfc740628ca634d24fc6e2559f22d8ccbe292efeead"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x27c6642ac633bc66dc100fe7fcfa54918af895bce012f182a068fc37c182e274"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x1bdfd8b01401c70ad27f57396989129d710e1fb6ab976a459ca18682e26d7ff9"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x491b9ba6983bcf9f05fe4794adb44a30879bf8289662e1f57d90f672414e8a4a"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x162a14c62f9a89b814b9d6a9c84dd678f4f6fb3f9054d373c832d824261a35ea"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2d193e0f76de586b2af6f79e3127feeaac0a1fc71e2cf0c0f79824667b5b6bec"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x46efd8a9a262d6d8fdc9ca5c04b0982f24ddcc6e9863885a6a732a3906a07b95"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x509717e0c200e3c92d8dca2973b3db45f0788294351ad07ae75cbb780693a798"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x7299b28464a8c94fb9d4df61380f39c0dca9c2c014118789e227252820f01bfc"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x044ca3cc4a85d73b81696ef1104e674f4feff82984990ff85d0bf58dc8a4aa94"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x1cbaf2b371dac6a81d0453416d3e235cb8d9e2d4f314f46f6198785f0cd6b9af"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x1d5b2777692c205b0e6c49d061b6b5f4293c4ab038fdbbdc343e07610f3fede5"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x56ae7c7a5293bdc23e85e1698c81c77f8ad88c4b33a5780437ad047c6edb59ba"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2e9bdbba3dd34bffaa30535bdd749a7e06a9adb0c1e6f962f60e971b8d73b04f"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2de11886b18011ca8bd5bae36969299fde40fbe26d047b05035a13661f22418b"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2e07de1780b8a70d0d5b4a3f1841dcd82ab9395c449be947bc998884ba96a721"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0f69f1854d20ca0cbbdb63dbd52dad16250440a99d6b8af3825e4c2bb74925ca"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x5dc987318e6e59c1afb87b655dd58cc1d22e513a05838cd4585d04b135b957ca"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x48b725758571c9df6c01dc639a85f07297696b1bb678633a29dc91de95ef53f6"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x5e565e08c0821099256b56490eaee1d573afd10bb6d17d13ca4e5c611b2a3718"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2eb1b25417fe17670d135dc639fb09a46ce5113507f96de9816c059422dc705e"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x115cd0a0643cfb988c24cb44c3fab48aff36c661d26cc42db8b1bdf4953bd82c"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x26ca293f7b2c462d066d7378b999868bbb57ddf14e0f958ade801612311d04cd"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x4147400d8e1aaccf311a6b5b762011ab3e45326e4d4b9de26992816b99c528ac"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x6b0db7dccc4ba1b268f6bdcc4d372848d4a72976c268ea30519a2f73e6db4d55"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x17bf1b93c4c7e01a2a830aa162412cd90f160bf9f71e967ff5209d14b24820ca"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x4b431cd9efedbc94cf1eca6f9e9c1839d0e66a8bffa8c8464cac81a39d3cf8f1"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x35b41a7ac4f3c571a24f8456369c85dfe03c0354bd8cfd3805c86f2e7dc293c5"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x3b1480080523c439435927994849bea964e14d3beb2dddde72ac156af435d09e"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2cc6810031dc1b0d4950856dc907d57508e286442a2d3eb2271618d874b14c6d"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x6f4141c8401c5a395ba6790efd71c70c04afea06c3c92826bcabdd5cb5477d51"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x25bdbbeda1bde8c1059618e2afd2ef999e517aa93b78341d91f318c09f0cb566"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x392a4a8758e06ee8b95f33c25dde8ac02a5ed0a27b61926cc6313487073f7f7b"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x272a55878a08442b9aa6111f4de009485e6a6fd15db89365e7bbcef02eb5866c"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x631ec1d6d28dd9e824ee89a30730aef7ab463acfc9d184b355aa05fd6938eab5"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x4eb6fda10fd0fbde02c7449bfbddc35bcd8225e7e5c3833a0818a100409dc6f2"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2d5b308b0cf02cdfefa13c4e60e26239a6ebba011694dd129b925b3c5b21e0e2"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x16549fc6af2f3b72dd5d293d72e2e5f244dff42f18b46c56ef38c57c311673ac"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x42332677ff359c5e8db836d9f5fb54822e39bd5e22340bb9ba975ba1a92be382"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x49d7d2c0b449e5179bc5ccc3b44c6075d9849b5610465f09ea725ddc97723a94"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x64c20fb90d7a003831757cc4c6226f6e4985fc9ecb416b9f684ca0351d967904"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x59cff40de83b52b41bc443d7979510d771c940b9758ca820fe73b5c8d5580934"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x53db2731730c39b04edd875fe3b7c882808285cdbc621d7af4f80dd53ebb71b0"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x1b10bb7a82afce39fa69c3a2ad52f76d76398265344203119b7126d9b46860df"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x561b6012d666bfe179c4dd7f84cdd1531596d3aac7c5700ceb319f91046a63c9"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0f1e7505ebd91d2fc79c2df7dc98a3bed1b36968ba0405c090d27f6a00b7dfc8"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2f313faf0d3f6187537a7497a3b43f46797fd6e3f18eb1caff457756b819bb20"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x3a5cbb6de450b481fa3ca61c0ed15bc55cad11ebf0f7ceb8f0bc3e732ecb26f6"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x681d93411bf8ce63f6716aefbd0e24506454c0348ee38fabeb264702714ccf94"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x5178e940f50004312646b436727f0e80a7b8f2e9ee1fdc677c4831a7672777fb"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x3dab54bc9bef688dd92086e253b439d651baa6e20f892b62865527cbca915982"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x4b3ce75311218f9ae905f84eaa5b2b3818448bbf3972e1aad69de321009015d0"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x06dbfb42b979884de280d31670123f744c24b33b410fefd4368045acf2b71ae3"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x068d6b4608aae810c6f039ea1973a63eb8d2de72e3d2c9eca7fc32d22f18b9d3"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x4c5c254589a92a36084a57d3b1d964278acc7e4fe8f69f2955954f27a79cebef"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x6cbac5e1700984ebc32da15b4bb9683faabab55f67ccc4f71d9560b3475a77eb"),
    from_hex("0x4603c403bbfa9a17738a5c6278eaab1c37ec30b0737aa2409fc4898069eb983c"),
    from_hex("0x6894e7e22b2c1d5c70a712a6345ae6b192a9c833a9234c31c56aacd16bc2f100"),
    ],
    vec![from_hex("0x5be2cbbc44053ad08afa4d1eabc7f3d231eea799b93f226e905b7d4d65c58ebb"),
    from_hex("0x58e55f287b453a9808624a8c2a353d528da0f7e713a5c6d0d7711e47063fa611"),
    from_hex("0x366ebfafa3ad381c0ee258c9b8fdfccdb868a7d7e1f1f69a2b5dfcc5572555df"),
    ],
    vec![from_hex("0x45766ab728968c642f90d97ccf5504ddc10518a819ebbcc4d09c3f5d784d67ce"),
    from_hex("0x39678f65512f1ee404db3024f41d3f567ef66d89d044d022e6bc229e95bc76b1"),
    from_hex("0x463aed1d2f1f955e3078be5bf7bfc46fc0eb8c51551906a8868f18ffae30cf4f"),
    ],
    vec![from_hex("0x21668f016a8063c0d58b7750a3bc2fe1cf82c25f99dc01a4e534c88fe53d85fe"),
    from_hex("0x39d00994a8a5046a1bc749363e98a768e34dea56439fe1954bef429bc5331608"),
    from_hex("0x4d7f5dcd78ece9a933984de32c0b48fac2bba91f261996b8e9d1021773bd07cc"),
    ],
    ];

    pub static ref MAT_DIAG4_M_1: Vec<Scalar> = vec![
    from_hex("0x07564ad691bf01c8601d68757a561d224f00f313ada673ab83e6255fb4fd5b3d"),
    from_hex("0x6184e3be38549f7c0850cd069b32f6decbfde312dd4b8c18349b1b3776a6eaa4"),
    from_hex("0x419289088178ad742be6f78425c0156b6546a18fd338f0169937dea46cfb64d2"),
    from_hex("0x3244cdec173b71a4659e2529b499362dac10cb2fd17562860c8bb9d0fd45b787"),
    ];

    pub static ref MAT_INTERNAL4: Vec<Vec<Scalar>> = vec![
    vec![from_hex("0x07564ad691bf01c8601d68757a561d224f00f313ada673ab83e6255fb4fd5b3e"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    ],
    vec![from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x6184e3be38549f7c0850cd069b32f6decbfde312dd4b8c18349b1b3776a6eaa5"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    ],
    vec![from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x419289088178ad742be6f78425c0156b6546a18fd338f0169937dea46cfb64d3"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    ],
    vec![from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x3244cdec173b71a4659e2529b499362dac10cb2fd17562860c8bb9d0fd45b788"),
    ],
    ];

    pub static ref RC4: Vec<Vec<Scalar>> = vec![
    vec![from_hex("0x1a3bdcbfc11dabfb6ed0dd5f5a9b38191488bce9eecd811c10f9378b32db8c61"),
    from_hex("0x52b733e857912fdd2248dc9638dd79b1ce18b285b27792238b44c2b23c0f5d5f"),
    from_hex("0x47d6df02d73e6c78ced550ec8df1a459ac41f318d8b904a37652b581b2b766b8"),
    from_hex("0x11ec284726dddcf3cbb2b81862c9cd95e9de81ce0317302e1ef432d59b913388"),
    ],
    vec![from_hex("0x19e21d749905904f3e10cd57f7817c2564c06ec1b1e229def2129e79a7a77738"),
    from_hex("0x6eeecf4c83e1ec164217f3c00956d83c3bd845bee2d86b263cf3bf89a345e5e1"),
    from_hex("0x10d5808ab47295f7a950dc72f968398b9c67426a217811b9bd7e97f2a261992f"),
    from_hex("0x25d334fbadcbfd26449c4ce1472f961f7d401a3ddf40a70af5c10ac9176d151b"),
    ],
    vec![from_hex("0x3ef8a46ec07ee551ecba60b1601cbf6e3664418331a254729b7c6a5c3d13a6c6"),
    from_hex("0x30d373e298c09d2a6efe661d708fcfa6163dc61ae1eb103d98cf88c63e482125"),
    from_hex("0x18769839949b2dda9ef3f111acd86e10250ffad4c4c4263ea970e4f4726cfad7"),
    from_hex("0x2c941286d1534ff3be3a66f9dd59833e65b1fa67db23511f7b4b2ae3b3d66bc9"),
    ],
    vec![from_hex("0x08b6d9c90b4139ea70497ac8a22b30fb9b76b8ceabf70449d282b57d98c60ddd"),
    from_hex("0x3a8a2dd917222a71ca678b5c0a803a43c62de2f2c9fe37931b5b2a017fe64638"),
    from_hex("0x2dc17308abd0e731b3cffafd296cc3e6e2403dc563baa1c797a68da9754dd207"),
    from_hex("0x1d04e542f54431c23f9d1812392a0c87203144e343c459d3ee640b04e203be6c"),
    ],
    vec![from_hex("0x500760e2ef6bf463fdecbf7b47f4adaa8214c797e59359439d63169e1cdb9dfb"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x61f36faac1c12d756dcc3b5491f2b22565409a4e952b8f8e726ee126c0e1c0e6"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x49e72db524a48243849fea068e58d0c078b0c738cd482a2e2160602657456ccb"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x4a74677fff94821e97b20b86063c36d35c6a2908c0a19a9f130edde9c8ceb6b5"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x62d27fd5080b44a436e13066ce1c80ddef2af086c2a4806bd99fa02de9726ded"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x15a26c92fc51dd285a61c2c1379f6731377aeb29c62696aa6a9c109c2991f200"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x1db900a5e9b2685be9f8f02498123ac71bd7bfa40b6853ab527a8d2512b9aefb"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x6ff755d237742498e0b78829cd8358bdb831e96fef08eb192b7e334123080afa"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x1595447e5b94a64c8b3681f57068e19ee3696440ef785e35123886311f48cd1e"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2b0eabc08eef3abae3304cbb2efc67e7b437bd96b6f7d175daed6da5a2144e8b"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x3a345ee8e715f3226e52838652219202efb4e6d4f057f904d69d3fbd781e39f5"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x49eb2a07b5da81b57b7aa4fab19e691f9a684baef4cfb5afb6f46d23cbf1a9cd"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x3051663ef7de7674506f2c873409725363849564815b8bd291f00b9c60b4daf0"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x041a632a7bc167f67ca9c3825021a05b13f81f814ee101d37716e12efec3121f"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x6a5ae006b70bfebc1a485eed2c078654dc0f10514e8c739ca2a7019f42444ce5"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0f3dba730b64dda2bc2eaa50ede0fcaa86a37c74c3a17be97a9d969fca21fb37"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x6d6c02004f2a4cbb965f9e73799041fafb49f61aee66232f45ae09972af08e86"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x60391f436a32fdb0eeba8578313579c04c48c126f4eb6a0c49e249ff1c1fbf4a"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x570a30710a42539d4440ce9a2cc7d9ac102409a188960d0fbd249fc4352bf3e5"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x35cb6ce55352599332471ad8be46ddc0cf598e0e36b8a8fa5fae6f26277b318e"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x48a8116b254b171052251f353c93ca3816734e4e0baeea10b4269bbab9a2be55"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x126258211a4bb2035121c7ca129eae719d4ddfefa99921a8befb7a160e0f845f"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x5bf6985473bc5500f140844f5b66cea85815772cce03596eda60e6c7dcb4ebbd"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x5af46d3dd02261d893c418582188d328a8a84ff8f6ac6c1997d3aaadf64220d9"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x5e3c84925609016da58df82c1f2b51590e3b91e5502dca2eba13d8354916ddbe"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x410e6fb4390379a8b726cfb22a9eaab7232bc4b60eaddb629a4aacfc7dcdbfcf"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2ca5debb9de1c4bbfa0204543dd9757241611cd28b5eac2d7f37baa293fa2618"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x4a1554023154a99b4572572ccd5d89fa8745c117a2a85e5786ef6ef39410d611"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2ca75fb22881b238b6c96da6b908f922da8b54f909237051775c64fec8d5920c"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x546ea8ad3dffe14c4c96e4d6d8c43c644212fb663486165b34cb26ddd717f341"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x6b168ee87f2c532efdb378116dfe462f632a18eccf1e9bcfc740d35e535b2735"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x4cf917a780b850292f44502b80865d3664d75213f89e8ae5861dbcb52aa95e76"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x02e8dfe9046d8b951532466bdf1b62571b85e551b34c8bbfb1ccd3216271b73d"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x4a34d2abd01f09f743cc56a3f87febd60ae5d88e224918d840656da973d9252e"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0a3fad26c6318d471fa376fbaf02d341e41e687db6f3da88266de21c7157e940"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x131c9df7176eadb9af3a14f0f53a9b87196ef60bbb89b3630142ff8d9d69137b"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x5753682a8120106b42241c86deee879263d81fe8e3423e01f567316d9524647e"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x5ed9725af6a91090027acfc12100733a9dea89771048aa2dfe40daea9546645b"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2c7b7a87f31ebd2464be9f211d41719b453939d53ff7be07a2cc21741d48b467"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x118159eb07353fef60e9733077cc82f92a6e2bd361c88d8122e9a292217757e0"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x5b4626e787d4a4b00ba4693fd7900ecaa19624be9f2fee6b9c3b538d4f896b8a"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x18cad22ae06bb0e8d043f7928477219e4d38ac544ce81c4c685267089e4c7003"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0511149594758e789b440ce534b52b6c508ae1881669d1fa4a7e551ef84e4dc4"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x428b8532efa194a7f5cbf4c296786346ddfcfe8f2bab26f25321f5d984dfc307"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x00fd035cc129e91eac66d841e2864989d1ff4853662166143535603bf9460621"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2c167565114475412c76f0df1961eaca9deb17622c9fb6f5ac8a89a29f42df69"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x10cac3ff02125419ac84ff80295589d1124a1e65a94e8d9b63a411317c7f5728"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x7213c2f17aec536d0a5196e877d1626a63d7db5b4e3bd77327eb3617b932aee7"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x1b86ee2e45fbcd59fa43edee6630dda5cb3b894eb4701eff5fd53967abad2666"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0b941850091bd16875f408f183fb93d250c538e5ee1e8979e960b5b499b2f070"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x031f75d53bdd5ac603c252925148a74fa5f3bf5d9ffabe64c6e932be904204ec"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x55296a48dd399c65798cdbda11e89f26f998f2d33cf328e87a1c364e05be492b"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x191175ec337e64a48785a083559176168bcea3db2822630c48f1d497d03e1e35"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x33200b518e6b1a1e96ba214cad18929e7f5b4e3336e522c5fa1febf69c0818c6"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2f989e24f97dc06c075bb53404e3eaaae32a1b6d89d9e09acdeee65712aa4216"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0de4b77163f1572bbaa325f48bde7a429b6b0f803ade45a0e72cd2bdbd84680c"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x6af270d408f492402b7271432b6c443abbd1f0e220888d73f47498d59044d7cc"),
    from_hex("0x3d5b5310e7b6be63be8f12594ecd68108f4b3f6266683b13178d0c80d8530c2f"),
    from_hex("0x5f69d748d06e22916088bd21fb472334ddbe5223ff494b6c0dcdf62db69d43ac"),
    from_hex("0x6c1fd7dbb3298da86dfe5d0435b26e0a91fe6ad6aa25b9407d5da544e6b9cd27"),
    ],
    vec![from_hex("0x37172dd49bf14ebca52e1c31b60f31de8213644e330bcf2cc59684606e62537d"),
    from_hex("0x509cf829b68e58861c3d6bce6046ac1b6e9c065378fe9556348c0c1814808e20"),
    from_hex("0x529d5dd132f5cb4b71994ae6b330b7944f0fd8ba319582d2414b9b10768b7448"),
    from_hex("0x5d251391abee228833dbd24be99d163ba9f8c92a2cf73a4e1f8a87e9c4ca97ba"),
    ],
    vec![from_hex("0x1abe1d77226f2eff6f1a6bfc6c8d9e00dde1da9d67858e6984e53bc2aceba535"),
    from_hex("0x4ca74ba72baea6d84fa8f2a05e387a1c41a5a1b2f1a479fb11bbf9d5e09bd01a"),
    from_hex("0x232bfa6a3120224814967315ebf3d8c88b2eb0ea8c20c79ce854f90aec7a9b91"),
    from_hex("0x109f5bd722c8cf28ab6a3852970bcb665f398a8dc9d331958dc291d49a1ba9b4"),
    ],
    vec![from_hex("0x4a181a5de6c79a05c02533350ab51deee24b8f5b9154c5cf09ba5e25862ae176"),
    from_hex("0x6e063b99c16028df94b1eb719164ae8c8336894791516ca2c37c5a1a394bb0d7"),
    from_hex("0x6bbd2d3a643d301d25a8cf156542165abee3039068fecf501e9d39f313ca2a87"),
    from_hex("0x04690fe1be7c7b8c10c81e63f5e508fe93853c61f0435f81eabc9997fa3b99f3"),
    ],
    ];

    pub static ref MAT_DIAG8_M_1: Vec<Scalar> = vec![
    from_hex("0x1118b610c2544efa26b70d9d60ca6ca362afcfff12436cf3b0f8a3ec5895d9ea"),
    from_hex("0x5ba288c5197e71745a8fde16aca575e379dcc19f21042d8b9375e478f809325b"),
    from_hex("0x079a987d87d7c80d5f4a3b4018517c50f5067ecb516f6bd14d79eabaa8349e62"),
    from_hex("0x4c6497b0b99e1f1af4ec0322dc38869b2dfb79db3ab5fa68936cc8b6025aad1f"),
    from_hex("0x483b5c5071e90c98bd353556453f04113442f29a1c4c236b4ca31890136bee4d"),
    from_hex("0x3ef76c8bae0aa755dde594d8ec22b157f913323e5b29bbd0652e4b74973ac8f9"),
    from_hex("0x091767b280c59a58a39f293bfc22ae944cb921c2efa240262b5b66312724f20b"),
    from_hex("0x45ef82a5684137e5fc9613e0581cb65b5ad3d43470eacf0f060e1711c4c57623"),
    ];

    pub static ref MAT_INTERNAL8: Vec<Vec<Scalar>> = vec![
    vec![from_hex("0x1118b610c2544efa26b70d9d60ca6ca362afcfff12436cf3b0f8a3ec5895d9eb"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    ],
    vec![from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x5ba288c5197e71745a8fde16aca575e379dcc19f21042d8b9375e478f809325c"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    ],
    vec![from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x079a987d87d7c80d5f4a3b4018517c50f5067ecb516f6bd14d79eabaa8349e63"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    ],
    vec![from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x4c6497b0b99e1f1af4ec0322dc38869b2dfb79db3ab5fa68936cc8b6025aad20"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    ],
    vec![from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x483b5c5071e90c98bd353556453f04113442f29a1c4c236b4ca31890136bee4e"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    ],
    vec![from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x3ef76c8bae0aa755dde594d8ec22b157f913323e5b29bbd0652e4b74973ac8fa"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    ],
    vec![from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x091767b280c59a58a39f293bfc22ae944cb921c2efa240262b5b66312724f20c"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    ],
    vec![from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x45ef82a5684137e5fc9613e0581cb65b5ad3d43470eacf0f060e1711c4c57624"),
    ],
    ];

    pub static ref RC8: Vec<Vec<Scalar>> = vec![
    vec![from_hex("0x53ada42ebdbe3750f185d8aed927c2a339b1023dfde196b58aea362b1458208b"),
    from_hex("0x52a4bd5eaee58d29bfe574cafd97f987b1da709987e3d009ae971b0c627edad6"),
    from_hex("0x3b7abfefc73e31a012cebfd0420df327dd6cf8bb1a94aded25e40cb1d97ae623"),
    from_hex("0x18f6087444787b863f51d5f92722674e3440a076d35b3827ae2a34e2349fe613"),
    from_hex("0x1f6c10016b4ca694f41014517b6fae4134912bdd35b66c1c61a40023f362f7e3"),
    from_hex("0x37f5dd623b97256aa92ba9838b52e6b951481779f841cf5b158b52b264e19542"),
    from_hex("0x3bcb78486b25ea78993bdcc3ac524daa00ccb29bace59b43147a6cd34e90ea9d"),
    from_hex("0x42f7f2057893b0118ba72dee0390745595018499c07080263525fbee179f453f"),
    ],
    vec![from_hex("0x1ebff9e98d8913caea56fcfbde1fa0e28e7c88a6fd26ed1caacb2167ac01d46b"),
    from_hex("0x50bc0b19ec65ae49190380dac906851effc5ded598dfc3a6dff9d193e28caa92"),
    from_hex("0x173542f5c5f705e8c07eebce465ec04075911da44ffeba6135da9b9908661651"),
    from_hex("0x104f0e4495d78b0988796d5099b0814c068357681e1f68df2e7589eab107bc18"),
    from_hex("0x3aa82015f9de71497b0d3ab99e353f15fd90297226b3b0a721ef4637c3266da6"),
    from_hex("0x218a066557035447f5f65c9ca1f6591b2e89836299bebb6434a4dc795df2575e"),
    from_hex("0x4629ccf1af64824871ea33c70b354c6da36f8fd52c3e2377c7bf9ae7f3e9c30c"),
    from_hex("0x4eb2718149318548c4f70554ea54d9e86c4fe4b5fe84dc4093b1369060a39d98"),
    ],
    vec![from_hex("0x4ef417e3aeededf50ebc47a5a8e2b571f3acbae751b3c263ee26c7cc25545b5b"),
    from_hex("0x5662913ab2c59dc3413a934f86805c7442b258adeb728c3edb61a5c762945b84"),
    from_hex("0x12e9df9b98795bd66de91037d43a8480cde436b30a5ed77be71f9d6674d7d445"),
    from_hex("0x4927f30e0d987d23605c7cb4d903a3825bdc6ac7d08cecec1607621cbea26b47"),
    from_hex("0x09388b6f741eeafbfc7cc4479778c2ea0013e98b33b767d117c0bd780bc6d7eb"),
    from_hex("0x653915b04769ba57e58e29a163da6105c18897fe0c43754fcdf4275d0a89fcc2"),
    from_hex("0x32aeaef7bcb8b97f927022113baffac5515ab9ec7f6e56c94924a787ca3b1043"),
    from_hex("0x14d39fe74d6c0ce57ba40de0dacae628428f0b3021ac71e47856eba4ba1068b5"),
    ],
    vec![from_hex("0x65dacaec232936d47c3441c960736cfa3fdbe13e2599263ebdd5453cf716dbbd"),
    from_hex("0x30838e97b66df6a39cdcda903a9c7f2834cba1f11c5a18a1a25ae1a851cd7cc5"),
    from_hex("0x2ba21920ed4441cca37a95beff2c1dbabc66c089fab42787feb9c7d63f563db4"),
    from_hex("0x48e82727bd3946dc067719d5387e7d8d8b96d150708c6007fade6ae7d8bb97f7"),
    from_hex("0x72beb7592e1a8b5ffb67f9127f7eead42ae5c9565629b44aec7ee8064664b581"),
    from_hex("0x0152c4c7e8f09d7d288077304f9e6f23d7be63746f73a6b486d66debd68be87b"),
    from_hex("0x07658150e9fa7bafea32db94237a985857f11e7179d0d1665f5500eee99a6bbd"),
    from_hex("0x0625e07f82a451842d18236aeda5ea8848405c54eb2bc2e9c721715d89e60e00"),
    ],
    vec![from_hex("0x6e8e2fef1424c978db61ab5307c57f5ae977cc0f992978a079898b818df71c38"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x3bf1dcb8edb1778b295861f3f44653974369aadb6dc7a657ecf1e9b9f9975d0d"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x224b5e5260d5a374a52d205dc4cf2f6ddd2e268c19d4d8c23a9a83ddd95f3b56"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x258ba50efbf08421f9d84439e7198cf6d6d744c322496cbee7b0fad515483ce5"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x57a9861d98e4f0c7f48a1c0f78b8c254db8f9023da33c0ebd80e6a2fac37a9ab"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x6b4a81edff2101a784940a5d94d4997e1a7064e7d11cb30c8d44fc17fce5c7de"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x646b6fe0fc67d8eb957fc7f5c71bb2eb49deb4d800f869f4a851d48452837f80"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x72d1470e483ec6a6dba9515903f930b8913878c4d61f75264cb78bd6eb3897d5"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0eb84e097a3c154e3edcad691467aa2833cd6e2c034fc67c4aaddea3e612c0e4"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x16726722e28b6834cf52a476e2c85a7796db36654e163d98a90ca5c9c5ec5cf4"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x603a8ce41cd89892de62f80c2a69bf7c525ce2c9d73e179a40335573dafb5344"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x6d29a4353cb4ce51421f99e98cf3cfea5df6cb84fda5972de3507926e1ce8517"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0b4bcf8b8440ddfcd96960ad3a942f08ee530594a22ba68902ac5cdb09dcb004"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x57f898067bf97291642fc3f277c72aff1815dbdafaa153dd3f4dac4cfef65c4b"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x21f7a5a0c323149d5ece7d787c5fffc64e3539ee2a9d0636bdee1fd4fc743195"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x252bdc65bc46bae728b14a2cd124f9d89fca1d094a13938d5368bcbcfb61af24"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x49e04438484178086f10025d4dd075129db6ee0543de3cd6260f005cbd1cfd12"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x284070bc321a19aac8f72293ef5ee4047a25905571aa0fc0c92a99fb9aae502d"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x432b6f998822a8bc1863d18966f0257e4ca02860d48b5da94b54c44e50148e9e"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2250a97daf4a6ab7e7ed38d562e45e557c6537095d5e82d8f8770c5606cc3723"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2190b0a04860c1754bfaea7c6656754719019afda4db1c2bdcc02e7077cb8fe4"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x1ca5242b5b822ce4e547ef1044c25fa8e4e8ab34740ee80934bb783dfcd8ff00"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x13ef424fbfa8f57f530b7472049e399b52d243ce631f46ab53e83896cccd1753"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x313b6724e1ef1a2f8313faf995b286ca6c4e2935c938eda423799ad1ca4f074a"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x71d6f906d7670070ed88307456824180c88df4d6c5c430ecde2d401468317dde"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x5da276ba589d6ae24ac895bf495c021a5db46841aa15592ca792418c610392df"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x5522c5df7aad8e48c28ff2409728ecbff493cde8ba22627834b472bd5f7e6159"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x39fd68c744782320742384c631da42657f76ad1fbb4b31cd39f9b99871a658a9"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x07073f7f19a99e127202010143d73eb9c607b8a472d08eef5028c014296aef92"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0c9b173245a88129f945616b7753804a79a923a9486099cbc68eeab1a18a3ecd"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0bc470541a2d0d36132b8c062b988a7a7fc617a194763d1df0d185870d435214"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x14cef28cefade54ab09245615dcd4812f5838cb7e53cc3994db36597a839f598"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x673b6489cf57eee2649fad4ed7917c77c01a510091db44cb0631ddee2970fda0"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x1adf80dd643887e745ceb8f8a7482eba2fa9e3b2a9d78c04e34faf05edac21fd"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x3421bebfd00f6d9984f8ae8713583cf904bc1cc931d9f2207e46f316bee5575b"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x3377ebbc99869b1130415a8b6ef6828a091bbc962b770679ba2533b859b269bb"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x531c3189cd8061e25c7b2880a75b5cf54a38eaffbe16a6bb8c03072177edb17a"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x1de23e2b6a76564e456ec0ee314dd1137cb721458c6aea42e68db34f7bee4987"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x3c63febcc1037470db1fefde11feafa09f6b93d1bd7f4ab69421204c7b909742"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x27f9a7845ff4c11b37eafac24e732e279f871513b7e505964a44962f261079d1"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x131e543c8cc3d66c79e2d34b339edb4e8de104f16222108cedf5ede0bc2a259c"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x4903aacba7d57fbd9f8d5eba89a65e69c6dc17d00e0689ff78a853ebf2045260"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x62c6809bc54290477c60ba3344b68e73079d2acf142f6fe1647bf77f7a9ecc0b"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x1e88401ee384c7074e4cf262ce0fad617fac21c3179b13bfb9b9ae28b76b2ed9"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x080a8905ec7191f9e1fdaca749100b1eaa03948e2ba109f9b235258574cbc103"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x220515bc8e5f1b4b0e074e27f73c02b1fa4a4bab6623eab03681186a26a96dd7"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x21d170c9860f7b318902d6e3e7892cd11d1d4a77f6f9d1bbc000f710686be1ef"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0ab7fc35aa93f80a4ed6787d9b121f34c2914515940f6d8ccbf44a1dc3d5e66f"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0920c263adbf43e70433816817a1a36526eba5e26e81a596abc53cbfd4e10c9d"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x6263f1b033c09db0a316ee60ebd770795ea8910483248156918ae1f50a203de5"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x61aea53c82e80114591feaf47fd76539eccaebeb7898f3861826c064b69442aa"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x442d65617945bc65cb2c687fccac2e731a78cf925d848e9a26a5896c7cf7d6c2"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x4045127d05c3cb34d005bcc59af6e7bf514c50e8287638f2af91309b1bb566b9"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x21248b251f2613ad1e0037db0f662e480ba376a59211d53c0d4005b10ed07a72"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x610b8e020b302c1e75de560c266e89758490a2852c7376e76999cbc2ecd4dfea"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x4ce82f499dabebd5f5864d7b0545264a332c7bec6bcb8505e38cc6cc87940208"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x323b2e2f2ccdb4fa2b7e0aa8ffe80fec5ebb2748371b1ee7367f9403a3017a45"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x4ee2adaefeb04dd7d8d567bbc11022fb1ed7be60dddb7c1090bc2c2eaa20b3c2"),
    from_hex("0x49df280184ea12aa38e1b7835016037fbe2214dbfffbed63b3afb3587fc4a2f8"),
    from_hex("0x0742c9cd494e1f349b5cdda1354407d15528cdc5b149d52178bd749d11a6a62e"),
    from_hex("0x4c3088160d362a2d49baee41a920d11d4a4fb1230b51923e3e8bc2931b3b1c14"),
    from_hex("0x4146884271f8fddf477d774c4ea7e590a904858958cffbf2ff759727c6f4307f"),
    from_hex("0x35852bcb36414611bd9416003e36e2fda46639647b009f20a1571fb62255c06a"),
    from_hex("0x71380a2e9af86d10d3c853206f27affed5c8bbf04209265ec53dc16c3097cd6e"),
    from_hex("0x316825bc6a3d33bc4574a2bc080b267e9f9032cdba13b392f3cef5651b7bd73b"),
    ],
    vec![from_hex("0x039ee257a7ab11b83ca2f84b4c3d2a43b9979593a3baf7fff31a1582463c9cd4"),
    from_hex("0x3a7d9e3631877361748eaded828a1226a8fad1d9a26b904bb7672c5a1098b010"),
    from_hex("0x08b2dde1aa612b89c9634b1984823f331515c10cbe93da28d579b4ad02950083"),
    from_hex("0x286dbe8166b75b79b9382fe5e03d6a8e89e3e14a0d868222534c1840da654262"),
    from_hex("0x5cd2d752b980033b428a3c8428e7c04c13b016659a9db1680ff0a8250be4345c"),
    from_hex("0x664175d23039d55ca0721aafa919aa2d9e58f7a6585056e72f7861cb5c68df51"),
    from_hex("0x017422f285fe185e8409bf4e808013694982a6b828e25b9d026fa94099d8c7f7"),
    from_hex("0x4126fedd4ce3edd708f5504a7fb80d4568974d8efd2522fa777a205b59939d76"),
    ],
    vec![from_hex("0x362d386157a988e327180aea82fed73187fc9bb4317c8065074a1cefe3d29120"),
    from_hex("0x5f9b6f0a37e1f10579bb8fc18c0e2f1a9accbb709f555d931d81939baf21a843"),
    from_hex("0x451b11c73a54b552b6772e686b9f372c3a88057e3862538fe4fc93f3bca45220"),
    from_hex("0x6dc7c344510f5dbca0bc1c8a43faae5562cdcef2195d3a98cd1cc0b80937ddef"),
    from_hex("0x1acf4fa571f2dfa559eaa2ed75617022b7926b7e38969c3c404cb6b40a55c8d4"),
    from_hex("0x601692f0671f9a0e5b645b81f6659fcbbec95700c6c49cc26551d006e2e2abc2"),
    from_hex("0x2c418cde54947690050586e9fb648d979a04117c6a985951ac99d3a056091e03"),
    from_hex("0x1099ebe36b8a483ff9160c7e49cf27d1275f35638f60d15c251d004bdf0be43c"),
    ],
    vec![from_hex("0x705ac07ef6e6f30e8587ddf3097181f1d6a821978343818ad66d0b2203e44990"),
    from_hex("0x376f4d399472844d9823bc00f9d9ec7251273dc1f085c6aad969986f791ced02"),
    from_hex("0x60dfac12ac5884c13e13677413285279d5f7b5dd0602ae87f028979005ea5c68"),
    from_hex("0x41478c307faeb9fa78ca4fd7779f00688c7b7f77092f28fccd5a0263727ce5c4"),
    from_hex("0x3d7640dc7ad95c1a5fe3bff9b6dd9f66d27bf6bc99d17ee167feeb09c4b77d9e"),
    from_hex("0x427c360b99fe9d869528cf4e8abba951dea32b5b9b6fea4e3f39d9e715cd573d"),
    from_hex("0x4e0fe9315cc9434a08a87aef6d65df043f8961650226f1cbe26bf55dd7ac2b76"),
    from_hex("0x69a03bbfabd2a06359ad8c748bc99ec36cc1e2726940915317f15a813be413a0"),
    ],
    ];

    pub static ref POSEIDON2_BLS_2_PARAMS: Arc<Poseidon2Params<Scalar>> = Arc::new(Poseidon2Params::new(2, 5, 8, 56, &MAT_DIAG2_M_1, &MAT_INTERNAL2, &RC2));
    
    pub static ref POSEIDON2_BLS_3_PARAMS: Arc<Poseidon2Params<Scalar>> = Arc::new(Poseidon2Params::new(3, 5, 8, 56, &MAT_DIAG3_M_1, &MAT_INTERNAL3, &RC3));

    pub static ref POSEIDON2_BLS_4_PARAMS: Arc<Poseidon2Params<Scalar>> = Arc::new(Poseidon2Params::new(4, 5, 8, 56, &MAT_DIAG4_M_1, &MAT_INTERNAL4, &RC4));

    pub static ref POSEIDON2_BLS_8_PARAMS: Arc<Poseidon2Params<Scalar>> = Arc::new(Poseidon2Params::new(8, 5, 8, 57, &MAT_DIAG8_M_1, &MAT_INTERNAL8, &RC8));
}