use crate::backend::u64::field::FieldElement;
use crate::backend::u64::scalar::Scalar;
use crate::edwards::*;
use crate::ristretto::RistrettoPoint;
pub const L: Scalar = Scalar([1129677152307299, 1363544697812651, 714439, 0, 2199023255552]);
pub(crate) const POS_RANGE: FieldElement =
FieldElement([2587757230352886, 4210131976237760, 683900, 0, 8796093022208]);
pub const LFACTOR: u64 = 1331240223835829;
pub const RR: Scalar = Scalar([
137682194168839,
3209056245311277,
1480926248458276,
2533620989757837,
1314911199310,
]);
pub const FIELD_L: FieldElement = FieldElement([
671914833335277,
3916664325105025,
1367801,
0,
17592186044416,
]);
pub const RR_FIELD: FieldElement = FieldElement([
2764609938444603,
3768881411696287,
1616719297148420,
1087343033131391,
10175238647962,
]);
pub const SCALAR_INVERSE_MOD_TWO: Scalar = Scalar([2816638389838898, 2933572162591573, 357219, 0, 1099511627776]);
pub const INVERSE_MOD_TWO: FieldElement = FieldElement([2587757230352887, 4210131976237760, 683900, 0, 8796093022208]);
pub const MINUS_ONE_HALF: FieldElement = FieldElement([2587757230352886, 4210131976237760, 683900, 0, 8796093022208]);
pub const LFACTOR_FIELD: u64 = 1439961107955227;
pub const INV_RR: FieldElement = FieldElement([
2210115751650724,
3809421927348411,
2357176729341513,
3420097284349172,
7483527818736,
]);
pub static EDWARDS_A: FieldElement = FieldElement([
671914833335276,
3916664325105025,
1367801,
0,
17592186044416,
]);
pub static EDWARDS_D: FieldElement = FieldElement([
3304133203739795,
2446467598308289,
1534112949566882,
2032729967918914,
2313225441931,
]);
pub const SQRT_MINUS_ONE: FieldElement = FieldElement([
3075585030474777,
2451921961843096,
1194333869305507,
2218299809671669,
7376823328646,
]);
pub static INV_SQRT_A: FieldElement = FieldElement([
2099929430230996,
1464742363261928,
3309265759432790,
2285299817698826,
10215362715769,
]);
pub static MINUS_SQRT_A: FieldElement = FieldElement([
2099929430230996,
1464742363261928,
3309265759432790,
2285299817698826,
10215362715769,
]);
pub const INV_SQRT_A_MINUS_D: FieldElement = FieldElement([
550050132044477,
3953042081665262,
2971403105229349,
212915494370164,
1172367057772,
]);
pub const SQRT_AD_MINUS_ONE: FieldElement = FieldElement([
3601277882726560,
1817821323014817,
1726005090908779,
2111284621343800,
648674458156,
]);
pub(crate) const FOUR_COSET_GROUP: [EdwardsPoint; 4] = [
EdwardsPoint {
X: FieldElement([1, 0, 0, 0, 0]),
Y: FieldElement([0, 0, 0, 0, 0]),
Z: FieldElement([1, 0, 0, 0, 0]),
T: FieldElement([0, 0, 0, 0, 0]),
},
EdwardsPoint {
X: FieldElement([
2099929430230996,
1464742363261928,
3309265759432790,
2285299817698826,
10215362715769,
]),
Y: FieldElement([0, 0, 0, 0, 0]),
Z: FieldElement([1, 0, 0, 0, 0]),
T: FieldElement([0, 0, 0, 0, 0]),
},
EdwardsPoint {
X: FieldElement([0, 0, 0, 0, 0]),
Y: FieldElement([
671914833335276,
3916664325105025,
1367801,
0,
17592186044416,
]),
Z: FieldElement([1, 0, 0, 0, 0]),
T: FieldElement([0, 0, 0, 0, 0]),
},
EdwardsPoint {
X: FieldElement([
3075585030474777,
2451921961843096,
1194333869305507,
2218299809671669,
7376823328646,
]),
Y: FieldElement([0, 0, 0, 0, 0]),
Z: FieldElement([1, 0, 0, 0, 0]),
T: FieldElement([0, 0, 0, 0, 0]),
},
];
pub const BASEPOINT: EdwardsPoint = EdwardsPoint {
X: FieldElement([
276718085098056,
1646536057461434,
2704687245600312,
2630386667454967,
13476148227069,
]),
Y: FieldElement([
1303868825475266,
3250718520537114,
2702159777242978,
2702159776422297,
10555311626649,
]),
Z: FieldElement([1, 0, 0, 0, 0]),
T: FieldElement([
3634527586288175,
2006028620404053,
3424252198034825,
2478951925947079,
4567251727358,
]),
};
pub const RISTRETTO_BASEPOINT: RistrettoPoint = RistrettoPoint(BASEPOINT);
pub(crate) const BASEPOINT_ODD_MULTIPLES_TABLE: [RistrettoPoint; 126] = [
RistrettoPoint(EdwardsPoint {
X: FieldElement([0,0,0,0,0]),
Y: FieldElement([1,0,0,0,0]),
Z: FieldElement([1, 0, 0, 0, 0]),
T: FieldElement([0,0,0,0,0])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([276718085098056, 1646536057461434, 2704687245600312, 2630386667454967, 13476148227069]),
Y: FieldElement([1303868825475266, 3250718520537114, 2702159777242978, 2702159776422297, 10555311626649]),
Z: FieldElement([1, 0, 0, 0, 0]),
T: FieldElement([3634527586288175, 2006028620404053, 3424252198034825, 2478951925947079, 4567251727358])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([2207852948799167, 641574638222364, 2845274685971070, 2888574538543145, 8842880060378]),
Y: FieldElement([3859191352706748, 901045137608561, 925022319227492, 3779097277038387, 2436329346790]),
Z: FieldElement([1924806031176030, 1416592609043722, 3588786947727296, 966484667785235, 3367649346410]),
T: FieldElement([3561063985940280, 2029111888993922, 434755174786874, 1789768157957980, 8233565060344])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([938529660034409, 1389861201185586, 2467873451492055, 2462996089292386, 10798363330707]),
Y: FieldElement([2301599396575729, 860840139962138, 761500845173277, 1807369898601580, 4284719561284]),
Z: FieldElement([158647906765356, 1912478078572916, 2353372814093602, 3699673181926423, 14227897715082]),
T: FieldElement([348247851294195, 524296127646058, 721351996206805, 1792621103819185, 11312298174119])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([3866581237722140, 3967826170612473, 300931815292842, 4476184848102778, 14915630784184]),
Y: FieldElement([1788761225399615, 362422332293471, 2503999665680887, 1798788693539183, 8413980416617]),
Z: FieldElement([3120458716440979, 1376368230000941, 1957915480140936, 3276201114701080, 404854747]),
T: FieldElement([2610821644431074, 1005600860860727, 2043496309213467, 593021863187642, 14425380499844])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([3225322368839770, 2361726703693225, 434917576574260, 4424874433923156, 10042776616216]),
Y: FieldElement([599524211693941, 1238089188705994, 4491782560685162, 2413776421530326, 2843196275107]),
Z: FieldElement([1955649875043680, 81969754529976, 3166471000640568, 1745573944684772, 4644406839285]),
T: FieldElement([1105596777386946, 332337475455484, 868390431098496, 2722006845892113, 17481986376859])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([460934317870901, 43261527397648, 2712962124900907, 3876353765883525, 14483697262877]),
Y: FieldElement([3003932934269796, 1935114165275979, 453638796603859, 2139165672951756, 16769733503435]),
Z: FieldElement([2749090807774186, 3554502390319134, 1165894823300633, 1259898869834694, 16884889098779]),
T: FieldElement([1975619140798631, 1231667354569651, 2895432863347817, 2104890979453853, 14965872298821])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([4474503552438295, 1564420790120962, 1243580778483543, 4250588328912773, 8529740401366]),
Y: FieldElement([668022307843110, 4108450115188706, 2070797919188187, 4297096600077495, 11344295700420]),
Z: FieldElement([3261104465686800, 3041840584145450, 2412769648642264, 1709295636507182, 13365988568544]),
T: FieldElement([944604794756863, 3160821023684287, 2160424494824656, 1836429252337445, 2417612634302])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([603600100906487, 2340119872132182, 1215293353001225, 2197037653148591, 5163254814051]),
Y: FieldElement([3709902623744680, 1143314278068614, 2209311298884114, 2111804853500427, 14928972201024]),
Z: FieldElement([4227256893060181, 3571402776539590, 3792363690864417, 2013713695268525, 11490439087448]),
T: FieldElement([2754169111369425, 4238812715530294, 4380598683601458, 4083519206014473, 15256810880031])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([1457033614578101, 58465736154855, 4325506613263371, 935066099568606, 2877489954613]),
Y: FieldElement([3056822297565469, 1009517371147649, 2301191918008785, 773820251450541, 3516710361559]),
Z: FieldElement([3749415470893507, 1895134885897273, 3580415727275960, 3461573118959881, 1771440376576]),
T: FieldElement([3895755279948330, 3007606877599591, 2349519552810877, 1679893396039425, 1940234944770])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([856488455595009, 4085053039086547, 3115696188406750, 2059712657355966, 5511651172175]),
Y: FieldElement([2418125393507748, 2671985869021255, 3270730557188279, 1673990345998415, 1296923022794]),
Z: FieldElement([747320612848847, 881140990935124, 3647384119048256, 2539583376078916, 1761578622426]),
T: FieldElement([3036965504472035, 1750860664484510, 3034134954801845, 1491676669867803, 660450466768])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([249304757096703, 58853546936298, 4430944051230358, 1976357184481773, 921833381081]),
Y: FieldElement([2172782775404482, 3637835388753190, 3736793204924408, 4440374069021525, 6423962675430]),
Z: FieldElement([2191689255044294, 810207288996397, 3426344494919486, 114435393822640, 1079912167567]),
T: FieldElement([3655777830041408, 98129084310781, 2747636130550484, 1398294496708739, 1405665240584])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([1304020124672493, 2686519714537676, 4302977636787751, 1830098956649170, 6709670151758]),
Y: FieldElement([3078855412762994, 578753925449681, 2344659043437993, 2004289330646571, 5160315265017]),
Z: FieldElement([3224315643193017, 3551069041376347, 735082717954900, 1456768188443285, 7897761184230]),
T: FieldElement([3847543502620588, 2853787793520905, 1672503828231981, 475357988573667, 16938573764162])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([3117189468705335, 645884992233639, 444743193265735, 1893800225442646, 15296101196102]),
Y: FieldElement([985894755877113, 3662043037801228, 463787220560695, 1539144634929989, 14901372768198]),
Z: FieldElement([3246161482121139, 2946439597367357, 3135953334040421, 2899717927467854, 3299156605538]),
T: FieldElement([4294322566846209, 252136367090799, 1267405916669824, 1711197129816406, 1120378271442])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([196114107340064, 1974043933601969, 816938731474314, 390383400102689, 6995265863762]),
Y: FieldElement([143398329372033, 2935680120044836, 63734176985638, 2186403175048054, 7261857302878]),
Z: FieldElement([1508190167475362, 4202711973368006, 4111340587637154, 946966456367028, 1521201888494]),
T: FieldElement([1697313743491230, 368106849514791, 693327851004201, 2985061605832276, 7896049577736])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([1768420101482880, 4191592123155933, 4480154287537041, 2335430146199433, 10150143728077]),
Y: FieldElement([3194611907175112, 1466574434217311, 1310955440189416, 1446978094911932, 9434000514668]),
Z: FieldElement([3600624040713505, 3653781424731278, 2852081468848237, 487821000500396, 1373332436140]),
T: FieldElement([1774370338852456, 1141349997256593, 2744177914461000, 1666609414828148, 13817941675592])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([2225550138883976, 3430276745515234, 1420360699725481, 448796814539954, 16007236065611]),
Y: FieldElement([2916055243511746, 3548768707737256, 1363821033324778, 3073350070021646, 6637654792330]),
Z: FieldElement([970398176204998, 4016238022834532, 1512315433293507, 1054050588342140, 1525021299847]),
T: FieldElement([1336197458057914, 4357107288468385, 649593369533995, 2951295188445923, 10822134730326])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([2000313753279802, 817770433154029, 1302994017031976, 754354159041110, 17437436724593]),
Y: FieldElement([3137087739338174, 2599940209785136, 3225288750675905, 4258282427143490, 14025896365840]),
Z: FieldElement([1541907276448963, 3699929461276251, 2357788826486968, 4061664078356061, 2933193440440]),
T: FieldElement([3838997818702439, 4328734948316669, 906562451561085, 2572203956279605, 7597863732804])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([2433126791116941, 4437714161568729, 1281551766879214, 3594742685446662, 9420521007518]),
Y: FieldElement([1329731582414703, 2822116307122653, 212704506256096, 3314408184447723, 15165283627691]),
Z: FieldElement([2166141006592658, 1289451346393684, 1272478423302580, 3321425488408203, 14011328180849]),
T: FieldElement([4138148918372952, 3459750113436973, 4118906628947781, 3452830791388987, 8624071137982])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([4493985268344293, 2815807399558187, 3416148758173984, 1503681908879074, 9273090751845]),
Y: FieldElement([301527701740416, 4202601828431977, 3699761005089257, 1184655067561268, 16462756764120]),
Z: FieldElement([2032235708716055, 325555253019054, 3953365338486754, 808831346658194, 8913281256388]),
T: FieldElement([1178782309149423, 598334661122589, 603244526887734, 3504826816445811, 12052364918945])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([3110520045981281, 649585341514616, 61994149030803, 3156956177750577, 3788637206230]),
Y: FieldElement([368234152993241, 4279924300404912, 3307096306893949, 3912135574928727, 12582530230434]),
Z: FieldElement([2554930492188419, 535426145478469, 2096646557000427, 669710712228543, 9807818498525]),
T: FieldElement([3327332729631012, 2771661737656822, 1425912408111599, 2940912394898016, 2410765365208])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([1769405261018705, 4258072588094285, 2340172135946417, 3052204859929857, 11816342538935]),
Y: FieldElement([2653642866915823, 107386844089656, 3914862279770574, 3843726743591080, 16903151970114]),
Z: FieldElement([3833425071199287, 3875767741070319, 2727295860200877, 3152074920218261, 8852562380868]),
T: FieldElement([3012528876994481, 1777460820849288, 1420984094988312, 642025260214264, 15990008857349])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([3647283266653325, 3446904948775034, 405008807756950, 4185221229595236, 800091810015]),
Y: FieldElement([3002117748189704, 2412894744865971, 1551040330618801, 2922208140384318, 16649726793002]),
Z: FieldElement([1320692392804573, 303614443936501, 4067745847388568, 1889100211782379, 3102282986923]),
T: FieldElement([3431570951102331, 2214681925170926, 2918347448107381, 1102152430664343, 12896775080224])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([1756072804375943, 172902139647387, 4126022309284119, 2857382119380393, 12583504488022]),
Y: FieldElement([1952477416915659, 1010451671308640, 3728111436069749, 1240516181759855, 16057539010103]),
Z: FieldElement([3584408317758992, 2489929801302664, 565263622443753, 1435676132020236, 6009668020594]),
T: FieldElement([1257390437214210, 254681762607033, 499409425717416, 2612219341978433, 12910380734021])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([107749933267778, 1591090434403231, 1930358577248313, 1804254107112945, 2883622424881]),
Y: FieldElement([1150852490146178, 3883266417193402, 2298625280845247, 2018731598776489, 3676775848695]),
Z: FieldElement([2019435692649983, 920794487488850, 3363212407008734, 1973210559319588, 13698814898578]),
T: FieldElement([2949623476790462, 769472608823530, 2599520294375819, 358175429486634, 3150426546334])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([2057012487683045, 720570291272492, 143060645894388, 3558233920341126, 5359663800883]),
Y: FieldElement([3102642119148901, 4213692963466577, 3840329438721523, 670586794329633, 11238144060525]),
Z: FieldElement([1761407861418008, 3049157668856090, 3495608308127501, 1912187793627259, 15601380602317]),
T: FieldElement([3728470356260505, 74630904859437, 3377141834461300, 1237173829833946, 15702378169467])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([1474424927385094, 2678841166949093, 4096788177089374, 1107906838161565, 13191351030310]),
Y: FieldElement([2445276729552360, 3269428200782034, 1984463165914312, 3249317015329202, 1088611949828]),
Z: FieldElement([276243248547248, 2539678674335262, 3414021597548528, 1687733565536027, 7396558937151]),
T: FieldElement([3848226745859853, 956396099962185, 3977279106712797, 97376292205058, 14312884296111])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([946156826610590, 3351700727970392, 2818992871594192, 1789873730980244, 216427043582]),
Y: FieldElement([950347970843152, 2981878666537462, 3983797534807181, 3359771145667213, 9373926207508]),
Z: FieldElement([3402500101073627, 3381478530610559, 3089193369517647, 3524556522160859, 3082847198517]),
T: FieldElement([788325431291843, 4406569028793916, 3385313666851406, 3706528990341172, 7042952418539])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([2925605563596629, 151496710141106, 1844171619063327, 3236733713476110, 1901659965298]),
Y: FieldElement([3904834502613034, 2589396703146617, 3563780778713391, 2092082346813849, 7722443935880]),
Z: FieldElement([2757907486331136, 1522590021329610, 4208021833834347, 4321365574593469, 15729921255606]),
T: FieldElement([1536950587435246, 4204450983522035, 41547443960574, 242821222397469, 12661327458907])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([157325086836772, 4277814988399409, 4257140787667501, 4387866576118164, 12342615472847]),
Y: FieldElement([2349698577697797, 3947433264627709, 3050281573242331, 49378728378257, 3586062339427]),
Z: FieldElement([1806912683643247, 1609186567584279, 4027529071527244, 4143065877143904, 15935920165857]),
T: FieldElement([393110544846176, 260904817876551, 1711687109255660, 2423180484079110, 15703452549970])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([1771976350303492, 1028578051497655, 4119512019149436, 345050745449940, 2676307630596]),
Y: FieldElement([210798474360710, 4375062987880727, 2767114506475346, 3870865498521165, 1631561585854]),
Z: FieldElement([1560477963288030, 4115681081934887, 3822593564439562, 4272603373844200, 16348725831739]),
T: FieldElement([2126000378098969, 4461970552815098, 4435354068590871, 745245923312133, 6755140773856])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([3856596651246955, 426562728966856, 3171989619283452, 2860964387489128, 7763473172402]),
Y: FieldElement([2163986188644789, 4484345192285022, 287298260521188, 716575339876825, 13053426315083]),
Z: FieldElement([3579601981486209, 3912436466787089, 835738239627538, 3444838765224008, 1883824759393]),
T: FieldElement([1498773561513447, 4048634385713923, 3946031135913662, 2350742966303322, 7834509748152])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([2321369744702611, 2789361616935762, 515472502726037, 3638482069107156, 1629815369554]),
Y: FieldElement([2783761878971295, 3475170669712761, 315337288078912, 1305339914741318, 12602789974503]),
Z: FieldElement([931912905606547, 3892864217612462, 610672313102804, 4295770682188434, 7498270959214]),
T: FieldElement([872633386153812, 2785460395657618, 3612098761727991, 4266345928340301, 7030817445116])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([4172847547779610, 3679358024159300, 1189429325519384, 21005311094717, 8329868235463]),
Y: FieldElement([31267874902678, 3226388402873799, 1663468236481620, 2315840590580878, 9662052897873]),
Z: FieldElement([879905921048295, 597493527438342, 4269713952331258, 1253307130216059, 11898285412680]),
T: FieldElement([603533868773960, 975039439014975, 2047928605667393, 215253268210342, 3021998631406])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([4484089164849830, 1489389609022346, 2974810016018527, 3829754749619951, 13245078011621]),
Y: FieldElement([4166398749419388, 4144155994398874, 2976680268168441, 1510524014072292, 3155529204844]),
Z: FieldElement([1423563755111645, 2938830035500821, 653682145440728, 2344214357492335, 1524059525649]),
T: FieldElement([2329550304539622, 1280416437966827, 2079916908434060, 2512668337846734, 11950576883821])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([1219121206836225, 3574635712429339, 2008256297958063, 2561311162933898, 3268727572200]),
Y: FieldElement([2806719171371569, 471907022748486, 881722679253915, 39012218948641, 589493043270]),
Z: FieldElement([3704997595438765, 874746846505235, 51340071316001, 3908167055128722, 9711381304998]),
T: FieldElement([2175391565220710, 3380231056263025, 776295853212083, 3203399919245484, 5245458595684])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([1695253872784062, 1365038886219650, 3823629375724565, 711770813677001, 14429536802793]),
Y: FieldElement([1990318406284646, 2589267513137890, 2318365181050390, 2020718726321505, 2008053813038]),
Z: FieldElement([3641135305281200, 3231085871480722, 3648864330506018, 1602779644001818, 14649480716122]),
T: FieldElement([3319250412656014, 3329567106339298, 3599085943682576, 4427720111115661, 13879689777195])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([3937574047482143, 4415094706835004, 2094779074215520, 4485404825273305, 12048773391708]),
Y: FieldElement([1655293147654717, 350117970296185, 3135869666874540, 633957057680653, 13755718230119]),
Z: FieldElement([3880841819704688, 3374767343009216, 1751994881687086, 485912052975624, 12325606444935]),
T: FieldElement([3942552750667552, 91929704641010, 1533766244422220, 834051110681335, 7687983250881])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([1287707389374580, 3923951667837395, 1169665639741493, 2163992678002169, 14099388438107]),
Y: FieldElement([4198285459628504, 332279245225685, 1889971263778720, 2054322553450121, 8716997430948]),
Z: FieldElement([465407486141767, 2485591853648252, 3548999513005677, 637149978939756, 3806796361836]),
T: FieldElement([3715364488097042, 3519962116845178, 3292809009786871, 3647611461999658, 2850799671487])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([4435726233994912, 2465684611744387, 2677652282670995, 3662614473237979, 17432973827993]),
Y: FieldElement([25919921084148, 733608190876383, 2547411313563202, 2751575541267174, 7632634277437]),
Z: FieldElement([3260427402300493, 2895176738090877, 2683501667635790, 2946123907723022, 6075225344118]),
T: FieldElement([4444547826378392, 3390977052683140, 868047534055402, 2944376331482845, 4116256933126])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([3821097230672062, 3045193708793846, 2748678455750851, 3638189961332651, 17562189815518]),
Y: FieldElement([3898703185310171, 1109685503809616, 3426330279101501, 1193350850997545, 7057385993835]),
Z: FieldElement([523912816497275, 669122755825093, 1168635632347951, 2984860051912000, 5376528458003]),
T: FieldElement([4089454036512769, 595169442372716, 3971785063960685, 225330483859603, 14776890188046])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([116383325044449, 2035361618821334, 4207025068196153, 4099279719133588, 15647300321008]),
Y: FieldElement([344527299381467, 2361190303858809, 3530451431448445, 3852877178437862, 1145175025671]),
Z: FieldElement([2331275101609953, 615061635473903, 3804450837017820, 1230869650879027, 1196097214560]),
T: FieldElement([2330136860663004, 1710550699224841, 2236853801108474, 345873517890195, 10317273062168])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([3643006366900684, 3635544581189286, 1430453283772856, 1220797440620949, 1279275669979]),
Y: FieldElement([64167290024692, 3241594083651626, 1668046194991628, 2163017183063188, 6947661860312]),
Z: FieldElement([772952458054992, 2395097941308302, 3870338753885114, 1112492604020578, 16769599361934]),
T: FieldElement([249366729438441, 4128325140240766, 3743620352540898, 2267177504762031, 4217182335736])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([1352182979257692, 1711629443321519, 4245160248373379, 1916350913998903, 5347365303995]),
Y: FieldElement([1181959128149193, 136492072562931, 4151237494180402, 1423949679232230, 12043408162877]),
Z: FieldElement([4288118115237120, 2496470519660377, 2422241603875137, 2751808637593777, 3031951976345]),
T: FieldElement([963305083218907, 764222680613943, 1680708743010273, 1278515921812379, 5398963980123])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([3498506827470464, 350271312640688, 390254775454932, 916950727482904, 14234910147002]),
Y: FieldElement([2902527630588079, 1096868064905407, 1516310313718901, 3751987737920001, 13202339336484]),
Z: FieldElement([2695133913977133, 2803568242934313, 2123358787261751, 2962949839926257, 17007868051031]),
T: FieldElement([3305000856484778, 97926350872701, 1033228677988871, 3236623581194041, 15463770269380])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([2270984507482691, 4390156851255722, 3114941293222291, 950970015494577, 13262806919699]),
Y: FieldElement([2045598907179375, 3756185131632806, 197454330399933, 3517224761856542, 9849803684447]),
Z: FieldElement([1245204900528474, 658260557674520, 493338703764794, 3246096519442638, 6830621570368]),
T: FieldElement([2754788608080349, 3120526414389269, 3262893608098433, 3140347595065231, 15576230210172])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([97549348659663, 92989133862237, 1859765194103844, 2873359403561597, 8596534616350]),
Y: FieldElement([2689913326057286, 611495022089503, 3260823143625739, 1848396267409912, 4053246559544]),
Z: FieldElement([4055126273174480, 3803025145459501, 3535544263183688, 327133199448418, 7295070091566]),
T: FieldElement([652131146388906, 1766349333366886, 3008304400618395, 2822304096783946, 16241035498601])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([3358259017737919, 512853781729728, 3837958995162988, 691214160506902, 5265194507016]),
Y: FieldElement([1260784067530402, 177914457038147, 2231375523712416, 631134732468415, 4114628175903]),
Z: FieldElement([1306383784541768, 3423951563429004, 2810306642875852, 2438865225646314, 14322458251496]),
T: FieldElement([1780657470506109, 539112798370360, 2258067419468943, 629182239130883, 9775295054069])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([3508616702409732, 1771123565100397, 376386759039288, 3359677930144959, 11714214268553]),
Y: FieldElement([2389236261613685, 4043957381364738, 2509291352639427, 3125233407974905, 6746310009285]),
Z: FieldElement([2210726718231161, 1112932282286761, 2995492159820312, 3634165602240354, 17058262228242]),
T: FieldElement([2959159094504987, 2943366404745390, 454661224535782, 571998979451177, 13901879540420])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([4373151909616952, 875740734804407, 228490262333945, 4030017047479478, 2021972209322]),
Y: FieldElement([2319305574060866, 1071709176569930, 1914332167972428, 1263438930368423, 16251965197245]),
Z: FieldElement([3813719127618831, 756138342333011, 2733231414034646, 896446358971058, 16874404403498]),
T: FieldElement([3790747573183694, 3940757056260045, 3782509788258403, 2354121500561570, 6812589341201])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([2189902580071291, 4237095697299616, 4379684117800717, 1613510750852423, 16827007303891]),
Y: FieldElement([4226727233834657, 4071651687094090, 1461003095377459, 3085713059544054, 985341873921]),
Z: FieldElement([1130188125865044, 3990690214200697, 2516380585952374, 862792588794502, 17567935373655]),
T: FieldElement([2590756475757666, 1365749495740517, 2598286138007423, 1761619305781568, 15285756351229])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([404610193863946, 213749646248260, 2562715547193596, 2404001243277208, 9254983575539]),
Y: FieldElement([896418368298554, 2923336448073521, 3331234927669475, 3813184231569364, 3738977621536]),
Z: FieldElement([2091407765138880, 1019819090884332, 3973077655803111, 2674180237542141, 7873979433165]),
T: FieldElement([1738581526034737, 238464664816453, 649405710689252, 527591784553626, 3575397571488])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([1950720458067718, 1285970967382828, 2757684975350458, 2881336888701014, 8423231649140]),
Y: FieldElement([1556947346470459, 2866637537885777, 2128770563264514, 3702751569814873, 16031187451492]),
Z: FieldElement([4205943687389709, 336270752182550, 2234245539407057, 4409519130583430, 9629247277022]),
T: FieldElement([815162216063247, 2162964438834510, 1907896448054791, 4231191504321245, 5146314608317])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([1841470966687070, 2349393128410205, 1695531736996189, 2927532569373108, 17445906151722]),
Y: FieldElement([4483414914732994, 3426458969827748, 2443934790334208, 767614833405547, 14906614296929]),
Z: FieldElement([3382695217021165, 199140163431044, 205102823174199, 1082900384837392, 16871891775161]),
T: FieldElement([3283198322249254, 3743310377363652, 3067810510047006, 2779604155674661, 16008761351483])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([3910799784782241, 3454935217595131, 4167087642413933, 1835056225341253, 14646027081731]),
Y: FieldElement([3893528874854102, 1731420194316222, 799141683430066, 990779449313503, 12686073989676]),
Z: FieldElement([37252910250123, 989351932965820, 1701342192395138, 2793539217639788, 620086804445]),
T: FieldElement([3861139105760808, 1720154478803203, 513805476068665, 4421133608372354, 9734585855428])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([506466981041505, 1431075292967041, 4240331149247347, 773401955245971, 15692811056397]),
Y: FieldElement([952281220061996, 3311311763260110, 3268709729180228, 418332448718867, 17268184430171]),
Z: FieldElement([2412086567278637, 3093201553747963, 4359415275054866, 722214917133432, 1417283342298]),
T: FieldElement([1228363881015792, 3834441525566897, 1298832573053333, 1444298935091995, 9391714435136])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([230683251616155, 4467084839358380, 2731745722218870, 2416624337551959, 4549698153819]),
Y: FieldElement([2549118855279957, 3008407890454659, 2026647740242460, 2815399439259307, 15515966123848]),
Z: FieldElement([2094849898715722, 4027108324108337, 999522184267002, 2337036972204039, 6620675961555]),
T: FieldElement([1104511330192095, 3219803988340083, 2465852415631735, 1130371547671281, 7832997893925])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([503013061411869, 4299608311814439, 4236428833845146, 3304999087053760, 6348177079216]),
Y: FieldElement([3771725321193276, 3457892592196481, 543750276737662, 1898035152989694, 8135778597149]),
Z: FieldElement([797755334887905, 2563739042468631, 1951103492216509, 2199454123183609, 12159283206924]),
T: FieldElement([3584087140721655, 631268995107383, 2123398182121846, 2662139559946622, 12242417395215])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([3916184624411239, 3379684828705428, 2888717172065885, 1374187591550770, 9859944628106]),
Y: FieldElement([3372839646380271, 2299701842782123, 2497624336910904, 1952947981890051, 12378149869513]),
Z: FieldElement([3087057148131078, 1299819868696937, 3648339840324021, 3153300250981239, 3786805093399]),
T: FieldElement([970382585712174, 3524361543651551, 3168053979513470, 3061328418872916, 17135839106141])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([703066042313564, 3222136271131654, 2825976006192721, 3254216931193039, 330460270682]),
Y: FieldElement([1481925864294281, 2738413742857575, 4470983900421779, 2057702302891986, 14996753907418]),
Z: FieldElement([441866524054424, 1339830573484672, 445009421040907, 440371326154799, 13430536828363]),
T: FieldElement([3823899250678135, 2900150091419729, 4053954296387798, 139900569435079, 5303927977495])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([1762803807149443, 3706536962892137, 1332199814314471, 4396740244854129, 7282998409673]),
Y: FieldElement([1918619729960062, 123924981034108, 4141358475147084, 454723253563346, 13832024052571]),
Z: FieldElement([3691570636893418, 553548506058811, 1437665633192562, 1021058755680247, 1819187214616]),
T: FieldElement([3884896444456068, 152876978620951, 2091429985729464, 2630530916633528, 5787903584225])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([2824980817191677, 1756774926781280, 962714181164107, 2877802084532454, 7104683427478]),
Y: FieldElement([3671567573406948, 2523006116432159, 556651519374499, 1057068346002681, 16705072478919]),
Z: FieldElement([4422502140965528, 3713598729103822, 836293354264705, 3959494574073614, 7274317856151]),
T: FieldElement([2026297089508686, 667631886230252, 3987787585319118, 97872346037861, 12161943579553])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([1338027297885234, 4345206852639310, 3096338790375906, 4468093325567882, 10236021806854]),
Y: FieldElement([1953245790234594, 3679112760653163, 512442231077228, 291233751527037, 13849420182322]),
Z: FieldElement([4501551738057512, 311459829241100, 3771083287619444, 3448127619877694, 15859527093298]),
T: FieldElement([349291266117520, 895010189220038, 741997029260166, 1966255394351247, 5357767835135])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([1359377737756026, 2310597048520345, 2065021213776044, 3545042084500223, 5108658102158]),
Y: FieldElement([2065430094309819, 4112485307276197, 637885981249612, 3456349012208313, 3602217538352]),
Z: FieldElement([2263470794722176, 31314780923414, 4375999128456552, 3523137201819961, 17204106640915]),
T: FieldElement([2543384877807171, 3212117600819348, 4052508944552283, 420493036445668, 8024828274210])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([1861444552195629, 2243623451916995, 2952982855084963, 3849065587095013, 9191482030379]),
Y: FieldElement([3905726183628936, 1223997570619926, 2009804997908774, 3277995836960039, 15147408373973]),
Z: FieldElement([3640834105369162, 355048459291205, 582807334277510, 791720944010235, 1832599260157]),
T: FieldElement([2185969845910462, 4354093024772598, 3398712486481914, 2458353384816004, 1875198684302])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([3939569712746378, 2052238515286220, 1609725043324894, 1814121701898703, 11982862009025]),
Y: FieldElement([2998119896092344, 855479998707645, 1535797291738936, 3984386835761288, 13659997361881]),
Z: FieldElement([1676670666717572, 42481403893567, 3986667457352798, 523579941677192, 7202776941775]),
T: FieldElement([171753292095132, 582352459437836, 2716196264541895, 3191923055016755, 10263584639865])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([3069670178222147, 3086494973256793, 329268939169000, 3691585751597450, 10253360356877]),
Y: FieldElement([3868474672666325, 324631694502827, 3086904813515814, 1998002087732304, 1573101677955]),
Z: FieldElement([716536279679627, 3330609640332841, 158121309362954, 2013247179797610, 10389405538664]),
T: FieldElement([434214792578528, 1362772124027924, 1509574465790870, 3415195039650191, 9554889550250])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([3776110371433382, 3370560649173684, 3285100334577139, 2441174206273577, 10110149472684]),
Y: FieldElement([2804649997681545, 3411055502558625, 597357329826980, 2826844687662995, 2706968271159]),
Z: FieldElement([1368827083547099, 1166118398277188, 2799764140371098, 2936435848107951, 8139602919192]),
T: FieldElement([1877505896363504, 1965937991741999, 1968810148544851, 2297580644008206, 16114882285404])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([453010717561150, 2129894778156097, 4250219566333945, 3922931088270967, 15645606813429]),
Y: FieldElement([616725293159711, 4298977661766522, 3461511650103854, 674373637730853, 4452768266311]),
Z: FieldElement([1313434476310468, 1483465968703868, 1080546422796703, 1411059544412070, 1791302491667]),
T: FieldElement([1196250571724216, 1566631388571816, 658789052835504, 3864373341234779, 12373649499065])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([2681253089348313, 3444387643054775, 916018881557612, 2227852126626545, 4503699905529]),
Y: FieldElement([983553257672418, 4007995074379802, 319053438696655, 2883259654452352, 11740314984795]),
Z: FieldElement([3298141401817252, 304050821108591, 3828426261753106, 812722001021946, 7252266631547]),
T: FieldElement([2215956492498869, 288233879563321, 172071743695344, 1432155936270637, 7934712265701])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([3010854412967760, 449525887935529, 2177577573059131, 3515526524747972, 12872640321263]),
Y: FieldElement([465561063285073, 3518747662968762, 3878610042579574, 2368472633299108, 4058662059970]),
Z: FieldElement([594435402719025, 4180870950963396, 2528255395196685, 652059734720423, 5584378491284]),
T: FieldElement([410385432841271, 4013170832571968, 2471166911097432, 1981260902355137, 9682439677313])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([3330506815470555, 3787326947350055, 2180701167825751, 3266481687148900, 3512671764340]),
Y: FieldElement([516758641683314, 44880619255239, 616999378550162, 1659579926349389, 16267415042534]),
Z: FieldElement([495214943468989, 473262619322495, 1403781435109519, 1404309285915247, 12707499390022]),
T: FieldElement([2595762735263750, 3245736095826518, 1979897626124449, 3831545232550083, 17193017982267])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([2332385347979289, 1876534740107046, 625725018311449, 2088923040596143, 15625729201404]),
Y: FieldElement([114999339435414, 2233219866184529, 3104709528787331, 2243371041912039, 9856559809539]),
Z: FieldElement([4399874492604775, 3068392079243942, 3313974812326275, 1964579290523245, 12013452976426]),
T: FieldElement([3061236790518967, 4289715981762355, 2738673470146192, 2532643075966256, 9818378235842])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([2082071848092528, 4362962553543289, 3347292540790467, 3176871487303043, 12353708932577]),
Y: FieldElement([3763258142020926, 1313999800671374, 2573599962992679, 2820550190857516, 2248199803034]),
Z: FieldElement([1563864197907360, 4453747862469085, 4453191802113621, 4223065609963943, 3695060207325]),
T: FieldElement([4252286217137341, 4284266561615197, 1734773301255868, 1313353892488516, 14000700475408])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([1869050290606133, 1321677789847320, 4091830372461505, 912100726908727, 10992855939848]),
Y: FieldElement([2255636336703302, 1579994756232210, 772709246323703, 960231983756325, 13947404638104]),
Z: FieldElement([4267718888247246, 652715470157203, 4379594648854555, 4007957309115983, 7198664804302]),
T: FieldElement([4259647336394616, 4318917306443895, 2989481729670459, 4394852942932619, 12110585320930])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([2965551932520450, 909717933819922, 2095703907846321, 3737883731597422, 9994795576221]),
Y: FieldElement([3550266689787599, 1665975707601502, 2802162903206030, 3458359476167680, 7980360174364]),
Z: FieldElement([2228825655264373, 2287128544141883, 3325884587569410, 3212493612949253, 263671627046]),
T: FieldElement([1771297533314717, 4150668601965083, 4194754710792431, 4427922955780332, 1189528829560])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([907743176660401, 4459228073271552, 424123969507174, 2475223501053509, 2560181696252]),
Y: FieldElement([3144008240755534, 3351453877053768, 1158599179081986, 1272218488305906, 952207264478]),
Z: FieldElement([2283994364752539, 2321348357954877, 2739440948883623, 340076723439697, 870092826269]),
T: FieldElement([2765465376295297, 2769684321986947, 1199367725866139, 2297901845386259, 4386073856071])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([207488358939808, 107692068750884, 3253281486561719, 4211183159336630, 1156988873358]),
Y: FieldElement([550404718636108, 3433595649971730, 4469211529975908, 2162909163988580, 15916366542800]),
Z: FieldElement([3501458711502386, 1864630284555135, 1854311154820262, 4151004292783576, 13064699707747]),
T: FieldElement([2849963783514604, 447904972672904, 419373419437925, 2770853248294616, 8269180826642])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([1241370322676729, 946671686225218, 2836276128061924, 1317298234926656, 6007228685349]),
Y: FieldElement([793781520210483, 4157411103508113, 4138310532163135, 3587340598632695, 15968365219221]),
Z: FieldElement([4270231828665127, 1859580893102489, 3347083932203378, 2427094813375951, 13738023692468]),
T: FieldElement([138623042999649, 4058536841337600, 2434790971602860, 657674448087143, 16458549677085])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([1910154938361216, 4494131073443252, 3251021516307689, 2018992309594354, 11712088830198]),
Y: FieldElement([4492964014436787, 1595568008845947, 1599168532258287, 2764446142368715, 16209729325003]),
Z: FieldElement([4015575429224405, 626194454876759, 1738567049608293, 655882596678027, 5806958640195]),
T: FieldElement([1419822888900735, 2751123566113054, 2162448980965730, 1949755520462999, 3860829121171])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([181736648058294, 3261699850151339, 606748854548321, 1095203819961793, 8895598667337]),
Y: FieldElement([3170580009339296, 755725808182633, 3398388886843186, 2406843952804612, 16073423207462]),
Z: FieldElement([1736896026343139, 1368724804567619, 207655720046335, 3319719878043170, 15260469219484]),
T: FieldElement([620307216146051, 124716511580639, 351135144677834, 160665429434326, 11179787089283])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([3858762528011181, 3847225191622138, 742394009330738, 3701530225790843, 9233298391413]),
Y: FieldElement([4437206497372840, 3701399174806017, 1365140879413087, 3735323467262889, 9350271314386]),
Z: FieldElement([3973297949955779, 4341786416492221, 1572345678974126, 911434006999563, 13318368415316]),
T: FieldElement([3149973385905550, 1626597098562067, 1739899116876411, 585033597919741, 13395685490006])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([4180999778697316, 491757277763055, 2134514736293402, 533398597004888, 4137041989103]),
Y: FieldElement([936710515741927, 2187791963960472, 1303313064275039, 327657868989303, 6148678846626]),
Z: FieldElement([3481723488830477, 1414364541883157, 2479255045657876, 3641260036268846, 9968961200360]),
T: FieldElement([683188133837000, 4041760675616888, 4436763074746099, 795362066836557, 4180479119110])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([3772465737358740, 4342301987864238, 562630368959743, 1186262875780209, 7367226341382]),
Y: FieldElement([2088838155889839, 3266609007406140, 2208687415697512, 1067320738410702, 1062982330289]),
Z: FieldElement([1855967746012496, 1105808666148180, 4311576018522180, 1538520457103496, 17279281334680]),
T: FieldElement([2875133951515418, 2046688612000893, 3054087575336387, 3714695696374815, 11456626199426])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([290405946199430, 774452491978748, 3341537458904633, 3337779640404963, 10451850289512]),
Y: FieldElement([8538419245498, 2229541101984123, 230960087287235, 792254410801296, 17210242898038]),
Z: FieldElement([3809181809491116, 1274687878785635, 480370993109250, 3249876134015041, 13702255975782]),
T: FieldElement([2250935050974888, 2858402720878115, 3078705108271438, 2581348904146027, 16064536059433])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([136910711527842, 4386746074784266, 449125103593555, 4289785879376195, 17349784320093]),
Y: FieldElement([162789915560628, 180535889498, 91700521870886, 3947819286730593, 11160726592411]),
Z: FieldElement([1802296834283670, 3898644606932981, 324127264610597, 2513293343727254, 126980854726]),
T: FieldElement([1045496486748964, 3578515442248373, 1176808551122940, 1664577538781483, 10509888722426])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([4435175250812763, 2615961899657449, 1471905698174590, 3602299854595679, 11122623892295]),
Y: FieldElement([3913388092725700, 1400525150222, 2548453597179939, 330234275342400, 10970341904111]),
Z: FieldElement([3281131635349233, 1467498430649464, 607247176109331, 82115622646870, 11969105397560]),
T: FieldElement([3520662026442279, 4408464267921819, 1876817569375051, 88888849333936, 16958508909047])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([3804859234486170, 3524109921750818, 3622121543462124, 1724534029600450, 17330062973748]),
Y: FieldElement([2082981050435823, 4376272849095536, 346486101104670, 4050394616477975, 14948503062301]),
Z: FieldElement([3473116092730066, 150097977427305, 1796273531354394, 1724457300631509, 8214213287103]),
T: FieldElement([3293175950769967, 3054952548255892, 3983550427607827, 937452801950610, 7368379700317])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([4220680487770079, 4209708639768186, 1098035284263221, 934483569950307, 3287951913731]),
Y: FieldElement([2689169617110767, 2326764855602881, 3004936804723834, 1922711640530284, 12256258781061]),
Z: FieldElement([764525418468103, 2797826640420582, 2520541336280855, 3818749085526895, 4610591933999]),
T: FieldElement([2729508128909464, 3724533197953853, 3884130345627669, 4158101238111688, 2250747795924])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([2631665052105089, 4133906404484459, 1745569515273430, 3613753040283685, 14095559254048]),
Y: FieldElement([694435267206710, 1076840787785623, 3685329921300290, 2892055944241060, 4615526297765]),
Z: FieldElement([4377891747476592, 585442840117563, 2138412818931766, 3661930336694245, 12935731182621]),
T: FieldElement([1966287720838499, 3355234927963508, 2154067841613414, 4108358455266841, 6017187206262])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([3762181990747655, 2299029565838131, 1531343154040520, 3621601561101824, 15757456072919]),
Y: FieldElement([2824192448671952, 4342660148851443, 2324224100471310, 418373881024981, 11031055836344]),
Z: FieldElement([3392090153970457, 3354495424059195, 3695709024176959, 129450727380879, 12575659817431]),
T: FieldElement([3646561495908760, 4314468201108293, 821401924043591, 451262321462378, 9162543226474])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([2774922550406542, 3422212650568080, 395166403592058, 2330960609973962, 1777109590874]),
Y: FieldElement([405576544982851, 4050039481088224, 2469828079502674, 2324276383645386, 8649053817677]),
Z: FieldElement([4075893987079774, 2334854033460670, 2423730689157388, 3579182267988383, 7347457561841]),
T: FieldElement([767560283483031, 4022377745868817, 3321349948479154, 1662087867777634, 11335187048843])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([975649512755045, 1782865689219435, 1078192134202578, 2740409002281739, 7841580031711]),
Y: FieldElement([1321668518549991, 4032507680827416, 4363055031851379, 4121900422391238, 9666453208482]),
Z: FieldElement([3642541901723549, 2598436634712443, 74955632370269, 3243895957091157, 5019179508397]),
T: FieldElement([4384330904919222, 1844546147246993, 3706877166572001, 3508960848072065, 4954511804180])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([1010467117024899, 3958462263413972, 637372270536314, 964838886243007, 10025479326780]),
Y: FieldElement([1524806010201739, 4124771687989949, 389510198250660, 4491906483698562, 15712292902346]),
Z: FieldElement([3144687116793247, 1029106454450682, 2990505292514967, 3446604741349476, 3310830840085]),
T: FieldElement([3809602816882392, 4426162687790222, 1930766442054536, 3627281710254660, 4463592576270])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([96097207578855, 2650744349175624, 1075702363135219, 4086816750273545, 14105668052272]),
Y: FieldElement([533494635966733, 1546383079698669, 1237614219714726, 475959194679986, 13409368554843]),
Z: FieldElement([4220826064745967, 4492568336759036, 2449963625924485, 1144028164194145, 3393257776981]),
T: FieldElement([1270495193972946, 828121615132421, 1965823381992146, 1477624295152472, 16955464145383])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([1978903742476957, 531451739378886, 1601868555967151, 3816936933986162, 12252328313864]),
Y: FieldElement([423393567345975, 3229867603083929, 3333864733358232, 3468061713637084, 16874647934282]),
Z: FieldElement([1072853809137166, 1466045139881138, 943998445980933, 3478959890458970, 1592639366228]),
T: FieldElement([1164713504762420, 2029072585042187, 2204267339270640, 2458153216993146, 11937712558000])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([792626084973775, 2974076885335690, 3025050219264697, 1519177429842500, 5766772873725]),
Y: FieldElement([317244560834893, 2840233680556959, 2402211575837152, 503467366469861, 14125844770782]),
Z: FieldElement([4249173693952437, 3649916020210026, 1143601909599431, 2942363456589408, 14590861240093]),
T: FieldElement([3984851329743433, 1755174913124178, 4254104808339659, 1547178853264729, 15853081138263])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([374054387142307, 3355438369540817, 1448629647549829, 4112995549945622, 1992479727544]),
Y: FieldElement([2569926193522952, 2598554211899953, 3328890718792313, 4297787181007096, 15416076615203]),
Z: FieldElement([4283707763370515, 1767770747200532, 1300055445076750, 4226551025877890, 2128354722972]),
T: FieldElement([1942885043168192, 3985238637843114, 1014216168761483, 2161672039982399, 13750899095943])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([136816449073084, 3982441115572309, 3922438437653856, 490096366737796, 12677315854297]),
Y: FieldElement([3245382893570861, 3448682087277199, 1589030190398754, 2891671393398253, 16503173822971]),
Z: FieldElement([1983882305768946, 1930974704166470, 125120241555116, 3636275942694315, 7529808392985]),
T: FieldElement([2465975989047178, 1440384587495392, 449880331789786, 3904164619970985, 15113133585063])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([3130799862736928, 3145845024230357, 3627497439101914, 2316223479584376, 10415441587247]),
Y: FieldElement([3472927990515717, 409446187700619, 4113103892082843, 83816642116553, 5604368298597]),
Z: FieldElement([3708012938738981, 3828451292879889, 2346270612007701, 1742324361827470, 3752347440301]),
T: FieldElement([1496890739975925, 1428687464009875, 990654025658040, 3725006954131152, 8554862812858])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([4452857480125963, 782155712631361, 2206099968887592, 1979594610040756, 2401717348450]),
Y: FieldElement([4378397772650696, 2388543803190156, 3306953195462994, 3633746845634402, 656763467431]),
Z: FieldElement([2288937025551746, 2966902234214336, 1586075835795076, 1374649207270324, 11561858026847]),
T: FieldElement([2721646314314655, 1099840079380804, 2925540034563692, 855405425977334, 12419753628730])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([769325516831631, 1182808560156957, 3719165519083679, 2047715127316953, 7943346799139]),
Y: FieldElement([2800862774360927, 914444516071560, 2092652743965573, 2131356919373459, 5197012487672]),
Z: FieldElement([736872902742212, 2888265633289309, 2133468589693155, 4461175709337438, 279899486365]),
T: FieldElement([811010690573417, 1198792251108777, 1157731578912375, 506611299867970, 2493559831032])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([455335800319908, 1624698546005658, 653997194726248, 1387883640262616, 117006399972]),
Y: FieldElement([3362448473214676, 1548541411802854, 462399246636957, 3072996397939179, 14627736734281]),
Z: FieldElement([90006052082780, 2025116260577439, 1879095045855227, 1102549760740221, 17038667053413]),
T: FieldElement([591794443869607, 4215503599885576, 394417533170619, 3984452440813281, 15110894131987])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([761039268123625, 3537510331170114, 1316384417459281, 4430490864772202, 3467808489482]),
Y: FieldElement([944520260203460, 2181209587290320, 622215538970646, 4468665707840460, 9301656366948]),
Z: FieldElement([4323196322243413, 1471706261230011, 2132845978704207, 3322284563529337, 6925774238131]),
T: FieldElement([623584384733743, 3884436920612258, 3403175324671219, 2675997422053452, 5979398577708])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([1399805819899590, 1455579706110306, 4113088654453819, 3046434046419985, 5334701221969]),
Y: FieldElement([1709654917828700, 4367979786901384, 3064430095080405, 4398766580122329, 6628813041602]),
Z: FieldElement([3292061311622168, 351818735181905, 2308325777018888, 3745998243337670, 9861357195505]),
T: FieldElement([1373215074908987, 4279838555303819, 4320230435988617, 434002513675131, 14659809945343])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([3790447766107857, 3742310744597911, 3728012903758241, 2079629294893185, 985364309679]),
Y: FieldElement([277805254678283, 2402536388793345, 3615752484154921, 1266405951608759, 4181878366253]),
Z: FieldElement([207267415031466, 376846051087246, 227924420933106, 2189600936694772, 2442007021633]),
T: FieldElement([2849285760776574, 4054724633028805, 750189938328920, 3226050564404310, 2887982417509])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([4249287796628393, 3340323175155001, 2188308234360407, 1026088873915570, 2681831718915]),
Y: FieldElement([488448641076908, 2032277491733750, 2342999431632960, 1157017380082364, 8533754135792]),
Z: FieldElement([3926073866398104, 699466747904407, 1588438689215592, 2377135936649630, 1534539501387]),
T: FieldElement([1904637272994657, 64765424801243, 3220895941211391, 3461029606252616, 267705024062])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([594320851080350, 228700494850038, 1661395948485039, 393628833567881, 8022784358722]),
Y: FieldElement([4457676907862626, 278933771780251, 324382531347877, 278732845141470, 1198382497944]),
Z: FieldElement([3360681907127895, 1625805705939086, 3867140386336692, 977522939904995, 9764164484219]),
T: FieldElement([3271005302458230, 1064015308341573, 540296209972130, 1022414600362276, 1690356600131])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([3947946460348522, 499141620495392, 3049951178769487, 67877500481176, 16005478924469]),
Y: FieldElement([4488815825259568, 1723354080779163, 3248548946586989, 2265673314294510, 12010328680773]),
Z: FieldElement([3250379654165300, 3902531167307414, 4070530112711962, 3606743739996761, 5691595571363]),
T: FieldElement([2110325813355900, 183340065428144, 1447733552642867, 2814685845086171, 5942226167905])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([1043545099957281, 2230768325703392, 2099014027180662, 2415615790214995, 667676675072]),
Y: FieldElement([3270691075922709, 2269337187753113, 1929062336747966, 4503038038052721, 8201356516516]),
Z: FieldElement([2492539548552752, 2770865471912639, 2641863820834270, 3214342186874233, 10246584803403]),
T: FieldElement([2382464964918610, 100695763126777, 4212915037007043, 710870866699588, 16829912113788])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([1321890964908870, 130985061069774, 1608208440423788, 2471668368383243, 1407869391401]),
Y: FieldElement([2748087797047412, 2799082190582275, 4023917115912087, 2159274683217579, 8147085188567]),
Z: FieldElement([1151794807648209, 3211178742601467, 2755870095727325, 2480865177590202, 3595388041278]),
T: FieldElement([768079341654978, 721726897953794, 4290792376455275, 1043125457997247, 6677615911651])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([3692422711039334, 158672325318688, 4031158315728167, 945089432763944, 16437877405340]),
Y: FieldElement([3347143212146397, 459225848928481, 301343108604937, 3979416301965968, 10417161276644]),
Z: FieldElement([1013486005194746, 3207067835847523, 667290523201174, 1444178238050906, 6366287183951]),
T: FieldElement([1734785438162225, 4156723403703186, 4221878899980602, 2364135155758212, 17024634162116])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([1387870259252458, 2393583060703270, 3776301395108544, 338284660769000, 1812238456382]),
Y: FieldElement([266900202731521, 1837301608205655, 47241037123833, 580679046989681, 13853833104964]),
Z: FieldElement([429912800584904, 2806023394085297, 1200103036932861, 2026850321600767, 9284689496129]),
T: FieldElement([1478702633778790, 2176486770812916, 3651473330391760, 307938103095072, 9826940373858])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([850281328425584, 4485155832309397, 1430131804743388, 2809156366614353, 12740005067339]),
Y: FieldElement([538236546640200, 3112539510579380, 2336828553281631, 1736512247371842, 2862459669507]),
Z: FieldElement([2215371811966437, 4173339210301340, 2258618946990234, 2496753281075006, 17500768146408]),
T: FieldElement([2712454857765866, 1092583122509500, 2692369427825066, 1965840395782417, 12067703661675])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([1273390145206628, 843799665830576, 3432828417707740, 3274389728814694, 4936330769893]),
Y: FieldElement([1879064289107813, 270547671601565, 2655170931731651, 3299451930969665, 5633545395196]),
Z: FieldElement([3050832589064551, 726012589254732, 3644868539523356, 3737040108163751, 11184805783661]),
T: FieldElement([3417611267828577, 3047683283703985, 3813355240572293, 4442902992103651, 12592780860335])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([4052572680432487, 2811391281459166, 276786718982334, 1826494152048695, 11435189929477]),
Y: FieldElement([2653911140722374, 1755277532448026, 3471073667442396, 4267260619058318, 13075369429640]),
Z: FieldElement([1691053086173819, 1842539510675108, 4434752308677737, 3849999245541201, 10169841387651]),
T: FieldElement([3788522918082811, 3121298247899488, 3727440037452985, 4298573733462772, 2513788153453])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([2853423173142827, 1550275252239001, 4352211067775458, 3767489621980082, 15000920424387]),
Y: FieldElement([1807740335600231, 4062457840036990, 3192545890046262, 3521999121302537, 12266256680537]),
Z: FieldElement([2966853377014394, 3871627103643491, 2070256682359882, 1565259224832867, 10105313098442]),
T: FieldElement([3312387310149153, 2026942114469769, 3221519891271924, 2869380231285117, 4305793745400])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([3443958299622870, 4169420614973086, 3057532986267395, 459566312358860, 15016592500933]),
Y: FieldElement([3462071970940001, 1927918100771008, 4246425146725871, 3564704572171389, 6678599704231]),
Z: FieldElement([1262829111002884, 2563551084755569, 4488771107585552, 466333523103286, 15022686271079]),
T: FieldElement([590194575706096, 3256096038643814, 2552786351363188, 33864647545267, 17057642406015])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([3274956447782191, 3583800411064726, 2329526601715156, 2172907623687579, 9609171351877]),
Y: FieldElement([1166373919796676, 3215227850686270, 1567118308387958, 5840127988955, 7951552291697]),
Z: FieldElement([408619300545243, 759205085879927, 1495006215975625, 3829913818820447, 4546577179908]),
T: FieldElement([2982587330291970, 2268699124634715, 2186916327806659, 718756808525881, 12005740736247])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([2432592283229309, 1331779258624525, 130905915051530, 3426905012034916, 3505882709599]),
Y: FieldElement([3129698781589423, 932582684748103, 361753801549887, 2014758015300887, 7418020396165]),
Z: FieldElement([485226143148588, 3369546936297290, 1533806820872264, 3590502823259351, 14075510682172]),
T: FieldElement([2492445346262418, 2600504356134966, 2197663186766432, 736622398964505, 3052697088945])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([1737196711798415, 422652289692217, 2139024377479308, 974636947378981, 14613956025800]),
Y: FieldElement([1098139321938814, 703163692526309, 2407655368424652, 3808670391609572, 8898758362137]),
Z: FieldElement([3171230719309112, 1668099215888079, 1668515428440191, 3329077748230173, 1769822407258]),
T: FieldElement([2442674832508699, 508340364442819, 2351339815662204, 757671390000580, 14000864583945])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([1749475357582593, 573787230622032, 1879244793853291, 821034163264190, 14111490368143]),
Y: FieldElement([322877480287881, 3892930964223345, 2178872467968182, 4039126860427659, 9967798069701]),
Z: FieldElement([4033857508148565, 2742748349107227, 1890315960490763, 4179758726623378, 6931396072391]),
T: FieldElement([65560046431010, 4171102157188441, 1285975779970873, 2972483901359657, 15728148259837])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([2565942169102953, 33733170161905, 2253231156134449, 2830981341283273, 2048014853426]),
Y: FieldElement([4323995330330688, 4454050398968096, 1859042373404174, 890937776889183, 1555962312563]),
Z: FieldElement([3118202594320674, 1903261535524237, 3305159163395868, 4038697189470652, 9457402712262]),
T: FieldElement([3373809799202982, 3592309673421554, 776583998496873, 1913529311478881, 11876976590600])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([2063499853489189, 3323935105134411, 2086603280014830, 1625361031087309, 7440289481129]),
Y: FieldElement([2616049773301453, 1262599807356700, 4415282514469741, 92492496630920, 16864131338264]),
Z: FieldElement([3718155477082110, 3375118864022767, 22539331822127, 519003135984289, 3290344446984]),
T: FieldElement([674415944321903, 325908425243784, 1248064789971946, 1745020033758397, 13127948397691])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([2694751532133481, 955203797628468, 4185600599209585, 758963224391409, 5347056264675]),
Y: FieldElement([555740944602959, 4203619508550800, 1789987831915606, 3341038966166679, 1744647223514]),
Z: FieldElement([906153266774100, 2687718760375, 714399171252077, 4056745770835818, 6539743770408]),
T: FieldElement([757855808256109, 4477441003615299, 3880636095710392, 678980285272928, 16114275407969])
}),
RistrettoPoint(EdwardsPoint {
X: FieldElement([3894431205321991, 2297844297104000, 3706001913061500, 3035440966794559, 8769231596830]),
Y: FieldElement([3395328231178571, 657710978663392, 1138760618448112, 3829382065860076, 3826154829571]),
Z: FieldElement([1292764173720537, 4219002163010324, 1133889192257846, 2160177548300453, 12724380779644]),
T: FieldElement([3120950453499444, 1995180623609672, 670125252675496, 3159453771036598, 604953286064])
}),
];