
// Make newform 4.38.a.a in Magma, downloaded from the LMFDB on 24 April 2024.
// To make the character of type GrpDrchElt, type "MakeCharacter_4_a();"
// To make the coeffs of the qexp of the newform in the Hecke field type "qexpCoeffs();"
// To make the newform (type ModFrm), type "MakeNewformModFrm_4_38_a_a();".
// This may take a long time!  To see verbose output, uncomment the SetVerbose lines below.
// The precision argument determines an initial guess on how many Fourier coefficients to use.
// This guess is increased enough to uniquely determine the newform.
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_4_38_a_a();".
// This may take a long time!  To see verbose output, uncomment the SetVerbose line below.
// The default sign is -1.  You can change this with the optional parameter "sign".
function ConvertToHeckeField(input: pass_field := false, Kf := [])
    if not pass_field then
        poly := [8010664803252592, -134608389910, -1, 1];
        Kf := NumberField(Polynomial([elt : elt in poly]));
        AssignNames(~Kf, ["nu"]);
    end if;
    Rf_num := [[1, 0, 0], [-768, 2304, 0], [-2940566122049024, 2924972544, 32768]];
    Rf_basisdens := [1, 1, 215];
    Rf_basisnums := ChangeUniverse([[z : z in elt] : elt in Rf_num], Kf);
    Rfbasis := [Rf_basisnums[i]/Rf_basisdens[i] : i in [1..Degree(Kf)]];
    inp_vec := Vector(Rfbasis)*ChangeRing(Transpose(Matrix([[elt : elt in row] : row in input])),Kf);
    return Eltseq(inp_vec);
end function;


// To make the character of type GrpDrchElt, type "MakeCharacter_4_a();"
function MakeCharacter_4_a()
    N := 4;
    order := 1;
    char_gens := [3];
    v := [1];
    // chi(gens[i]) = zeta^v[i]
    assert UnitGenerators(DirichletGroup(N)) eq char_gens;
    F := CyclotomicField(order);
    chi := DirichletCharacterFromValuesOnUnitGenerators(DirichletGroup(N,F),[F|F.1^e:e in v]);
    return MinimalBaseRingCharacter(chi);
end function;

function MakeCharacter_4_a_Hecke(Kf)
    return MakeCharacter_4_a();
end function;


function ExtendMultiplicatively(weight, aps, character)
    prec := NextPrime(NthPrime(#aps)) - 1; // we will able to figure out a_0 ... a_prec
    primes := PrimesUpTo(prec);
    prime_powers := primes;
    assert #primes eq #aps;
    log_prec := Floor(Log(prec)/Log(2)); // prec < 2^(log_prec+1)
    F := Universe(aps);
    FXY<X, Y> := PolynomialRing(F, 2);
    // 1/(1 - a_p T + p^(weight - 1) * char(p) T^2) = 1 + a_p T + a_{p^2} T^2 + ...
    R<T> := PowerSeriesRing(FXY : Precision := log_prec + 1);
    recursion := Coefficients(1/(1 - X*T + Y*T^2));
    coeffs := [F!0: i in [1..(prec+1)]];
    coeffs[1] := 1; //a_1
    for i := 1 to #primes do
        p := primes[i];
        coeffs[p] := aps[i];
        b := p^(weight - 1) * F!character(p);
        r := 2;
        p_power := p * p;
        //deals with powers of p
        while p_power le prec do
            Append(~prime_powers, p_power);
            coeffs[p_power] := Evaluate(recursion[r + 1], [aps[i], b]);
            p_power *:= p;
            r +:= 1;
        end while;    
    end for;
    Sort(~prime_powers);
    for pp in prime_powers do
        for k := 1 to Floor(prec/pp) do
            if GCD(k, pp) eq 1 then
                coeffs[pp*k] := coeffs[pp]*coeffs[k];
            end if;
        end for;
    end for;
    return coeffs;
end function;


function qexpCoeffs()
    // To make the coeffs of the qexp of the newform in the Hecke field type "qexpCoeffs();"
    weight := 38;
    raw_aps := [[0, 0, 0], [-90721164, -1, 0], [1213681705398, 1822, 1], [504728169053864, 709926, 420], [-3869685694838412900, -20988995555, -1874840], [-23525561635929960226, -680660687634, 36455385], [7149955001817494076498, 61605599662532, 1456339550], [52767023149115163792836, 478748879151915, 7808810520], [288974501851476738970872, -12050718366958702, 948275005820], [336884347526899777699166766, -701696995157868170, 114545531878165], [726699281410180591777586336, -3923841950161691400, -522996394615200], [103766240938080309005895656534, -57017949069244204794, -4011320842862835], [878646986267929190948123671626, 465956959568353150120, -8104793936473940], [1806356397086531315689861452860, 821439299886700783365, -8110032223098960], [1385529248507130195632297868528, -12810842934124758357948, 538746777093986760], [-53036021866887263591184992781402, 133919445999594413294182, 7334361247153447645], [-180302978524810517759205652114548, -327485932808386210412095, 11855666210454100640], [392904553696443628619923667245262, 1424518791860694028908510, 65581514617815233505], [5629739523995719139901207949386164, -980829393211987712373249, 743925973500770975640], [3436439932455741696308605339656168, 21408231989545429611390710, -2217811740379616051020], [-2840065507860590272597780279812886, 3690577034454334716098676, 2892756546738377042310], [-88258361571927054593542934649331312, -12210728844072815621489220, 7566236736217956785640], [-22985550544758491725360113028156668, 191801128247961842589271563, 14008041733098380327040], [831130425483234311246997166319987514, 7828486482540468743457140, -10427112936571454407930], [-1565759041915972645725463910476827166, 761441369773987160976627156, -654536165385092999096490], [-8174045501057583502290154954206668394, -9578059595929217617715978410, 357077168924017907267045], [-10076956951477133134108272814314334072, 14618668512844767443038981902, 985960541453397363052740], [-8018457623099570865880594993153820292, 53531853904072597387288349797, -2544086157549584564465960], [11659753557803883071491801483422794942, 27720914735997387544185653670, 500563227200177008265085], [73351664708457396987363288274390870578, 6827949228679662950263750752, 4394314320199769461018320], [-680582272924044193498812469406499761536, -65073036086113638827506607424, 57403554707495765060519760], [-1055829706263650932492525358786194092300, 1514331784107088133667976696015, -57817294240677889958286680], [2465756465800558273320267014160185347626, -1080958923889023404057683249016, 33592838020649521235954620], [-301745777497750749978929729180380285924, -885460329208973977925601253395, -711873407973033132429851760], [6993245452035181224828750859881134652294, 11596161631811022884625187028510, -1091088268678764017764042495], [-20202121051493352519639414343931760543880, -12738555171488855893326817081230, 368054134361181287599771260], [4550467503546452905508005516545115722926, -8505611426902656003512802018066, 2223634235528604125225875545], [-35558222370339919236036630881614249226860, 33949643556975164272871843190135, 5392064665281734587416760080], [-20482483426092441123732131176364202239544, -34767888156764376166484855832546, -5771648924997440567221428300], [200512945794355939725140586836940827271678, -182442320668607855472374671264098, -19374688059198403669577360895], [-231058763337074379828861381370019601922332, 327082667689637540650762294940755, 35160232188442053182447363440], [-59995741519208054523673319448429779778010, 525523371802353840556683938211630, -36310442439911418859207756935], [-159537144327654238559628003754528108479552, 192344259661519542769761922177520, 14909396232822558209661739760], [127896125861475830126367043436399088876482, 729123396964292990317254042028788, -82697860054685595161646770490], [988212105718823204715177220750848149758326, 3974814216216155986795988968763534, -280894608339447439076089633975], [2878620808489876938342277414447677006242408, 1699864496955070033835780979456630, 125490632790332284151483195940], [811102823573817616075345567485501743574404, 10120147634033387096963267242307595, -932551721787655998340505762640], [5765036290726061174970982217545947989817440, -28847878025307768378743413484138040, -1509288720004064555106770653920], [29581771907961461305477209389655218668427988, -12517866154964510384856347366861433, 1923289881226818224420133845760], [9618914526074733389047420402866411237164054, 59164192993502120513405375587619790, -1161986530515363883981200384855], [16870354589661686677872164298894958462496778, -52095599700860756161930160226323948, -305007442030847239988353748810], [10183987680474294575201646244676630606817456, -85410876390510593188765892629243980, -4625555705169929090299454655240], [-18806401542239269016834731124421763962512206, -124557139899752172499376597128960380, 7770451184280912881228869325310], [-128775844907578835828547973187441649513016500, 202472698665459122562054986289175825, 5475480588655687687107660157600], [174591953659139561995066910647475043795870978, -235058726006268702624776816682747648, -3855887858262125821771679625600], [133050032312378451715631438163936520436810664, 102653411969346113986234752104237126, -5558222433506963525937028300], [989567046964880594904538204915409294776387038, 445556767336874866551570434749178710, 25727398067857746048151663325605], [-174177231478703017183862566419399635305992880, 590982481048927562201129593507731180, -26907309387070966947994479353160], [-243568046593597093863982374434486485304932858, -2047884122850618854186664303249018522, 54438382524530216333235275400285], [206620941396720508682201634037853491703492346, 2574454934341083134706351386260772260, -60438526143463651812606490852370], [-1951187575394523453231588176740881819242035732, 1261938051312594424529971758698525337, -249334745575965928855975973563560], [387020789494492495700210294109701259525962070, -7319463727413676362660226795087380370, -274389177602582294116993876468135], [2795956341549184774602263820414886372767695204, -11452167917996373882773725808696479389, -443901234477952178525597519873160], [11495571470865999966879357404905274080632670872, 4060388979171250963309873422144931210, -1006407048934778005697644170894020], [-11943437771269392322366403249700071690021804134, -986797026782975364880827112334552856, 497502838525470230176122401712780], [-6552146548970525784396544614311314909616108082, -31971591682153234035298529155925852938, -423544909337835128704830029388715], [-1267752542173350505770138969600657835232705572, 79056649755700434333254086106981597805, -1823367539037986337892955258717160], [-5066643886696919415473671841548380256180004206, -115719477660297661090568859263347966704, -277149367265930353443066014687880], [75184729749211121595680990564319801087646579500, -20305674652336688097465188191940142375, 4234028288512740026721064303244880], [-4497622789531731432935749636733111120849617810, 127874364816142096761940212497059937670, -5053804414085491856323083595356915], [116132365615316941929717522784908989004093217506, -14324530685796345423049517413485026096, -5276600359184656954999457060825960], [-17583984880289168687159818463457064430100619896, -187236780509057720542355475913500039090, 1407308727408894533795438725400580], [-242393253784263784729164183806376217841602077904, -72853312422892474621045794278597697036, 16818426290128313295958439767917960], [54082223990306567173078258856273701141658572262, 36456749604924287583062049121501149558, 17447877610742341408002177932783445], [-65996512897093053001912426695610705711410233908, -250261787854820527370035931067289481775, -35155880983216572754798305139357200], [709714055052048765379850728295848350742271866752, -179915564643241034604829724624521272032, 50532122644940519297068989534481600], [618045358293286005434129931481643924255992930614, -234394567257651383257414868569399650010, 131767370071398828867523028683509245], [-1242836778396609108295682499055290049183027527586, -217646293577214809293376684633359046874, -66054645002517330121763782160427075], [-160085633909890680422614214303501682075208592430, 638607444701466594149624668134274603300, 118831932296205986067326414422399150], [-1326579730843020527389508226223741396088728686214, 1082519076487232912775264450545767459080, -59285899343442448733460743097155460], [3377934667298847744134286662483562714399325373076, 4025937948591324428776416328440836195175, -145834565617090546461378731167098600], [195036653650564544161731404003081712214368969686, -3495884463643226368875274248052371387330, 109502799524425146131044442609001585], [461657735965672262519552228664395660167695832176, -1495313581829101653969514859554824268540, 248556376120583165840414641893263480], [-948610040459222266973495014349066049963905013646, -1766650147616869516010338654794215875164, -419248247494878412932114162804454290], [-2865429937483543782907647900551413899905000133352, 9381717918369542417165003715817073475690, 81926311094602292563442142100412220], [-6300658708654723632581385207742047957482802474228, 5747375326646473023587386249715709168273, 105867227137925582739857759574527400], [-3468516072927780173765361850700457831118098341694, 928140573347846287924172739678835211700, 199296240672511217849242448684053350], [10682917036604733416473859260205559119906735359082, -5823602524158051249759989757620281944312, -585002373573257219207739162897873540], [1684437630605181317662268376397233827801701334430, -18612179833965428579485208503609165669130, -806375148237619874625167217955094315], [5799324303515829619953077682888093576983724620048, 6449039294432177546966537836369508160732, 540342541799287817280433073020430760], [-4018492945152342971926223050488384566331280645500, 31160274883639984945885453136275008542875, -46532786356397809311581520241608920], [-37687080751876758745738280498218673828395648623264, 17669386615085059344485531213300883181320, 1155775483800659996897643858436376160], [-13920103573585816329593644749684893170362927046648, 48221901026319083419875281834194811543118, -4775959164129284193480949303559633100], [-40783208187912721611366912587196793244852769072900, 32670774509509127547668406158274149268725, -812956902641054974566578205097571200], [63342040300129817671252427501752936672881833212196, -4406193145658711042467334400490365377565, 2581178869605573613084404815654849280], [-22321241307230216649390693184698728642569108447656, -21526370963796353379593747837301992533254, 8094979585864949123880440572602058860], [-64293538847325960760568586128628483794420666165874, 2983312293405351569815835894741257095310, -15245901602427562004977646884585599095], [-60493258262771058504547539097199793014804795476566, 250886139275999019874045531103765899476200, 10401660743938465785296544577673353100], [145420484811475972050662236127577590317732048278428, 181281019748399901547601026229199073073277, -4343374814430742557229612777422308040], [-109537683797010255082172721067066451437686657047506, -266722755457013089672938542213895582218850, -8593008572829789446752667610978866175], [110859318082941200685838407037561875535565565173012, -182159214709773234215385796225947798485817, 30383288230743787405417667437592980440], [445019716580393762028625824758397788438331498303870, -929464948877554311574547511120950368121170, -60632032130447500543522914237683824135], [563031449150121274676405313712132173544563142260324, -399202763061290894843030358663579021513309, -30377102310706983279360797485318136520], [763999199673445151435843339058780131214439068363930, -404313894445184439381414934082883490418200, 32694585330773091445574437370362565900], [-5835464379398099749592204712937909696335035204212, 1031332526082600326502235507756515711599025, -80793721308836935909641058730050999800], [-359332772390887800733812104564740696672458238332094, 394920120865701160149379818203018524887504, -46373599399485304947692011940729205480], [1189495765165868331347349563673621261979517481310428, -684597752331881471350033240778955196804723, 199625333130636447976290212547175953320], [746461471007610165887377007499052266785359482453906, 135875192178681401006846107803946438697504, -35242797253844663691372825296191428880], [552029545314512042247588499587853232512758178361400, 2062913759132546830281418339660010959759010, -233766462298963848239013859635957041620], [-502435639686360057254409200786900299502214673664710, -653663598079047836129058809268373435052940, -50885241481889897887997380956920654970], [-192743478964031563578298092883730085746121242857504, 3277914611402251920101390882270036474765064, 170899768581855535159497392085102875280], [48012738397220798172428507092241975561985591198614, 4727786189478668533233847315822079198332926, 342305678773282113786620285993639951505], [771197907877805559607355946106254961155296855627658, -2113689748465229886107034510135459910156028, -524128789516759175220650002871677522370], [3416307928935360405615526653978505410464869550154620, 380274088346575323300271312824295821873285, -245324296674916433904257499181016788920], [-5757879894776099984521652274529726320409427965886248, -6848529593068250761013156929730681962139430, 189026128054712276969216068072705575660], [-2108754585592958471022980843462432756408317979665278, -6935509052162151322878470626972064687339180, 584779310566021030457764161552827157910], [1684618228102185327426781632432818191107637396486388, -13536072138450013254366007534414234294162833, -935589903927667827863274520850085641640], [-4176400002345989030013233986585248734660843219973336, 6870702212760762421236771084208285911201126, 821508708029864244708524415195607798260], [433523074019070125898367845258713138745448210822494, -17950787493952754787670859720382314740734154, -80392956858889407080432170899371545675], [10552929357858998182128628433992818214381341234969156, 1222213321651425950595795758941809672391355, 675412166204705800339646402328202094240], [9965877080522710307061504791601826327578436061078918, -432260097127995088841205195006168324586770, -894552404413460336244782295491771532135], [9199412260076744341508355125381682195111629381142818, 5871497477552707078934845933428551449607412, 165004914752367302249101618848265320390], [-2588482080743997055855709219068460606657629261907754, 18263646592265141455165329249902055522571814, 958735631916330371093017460631165619325], [-14409024814861529187095533750656044431633304233981764, 16138606405168882174418618741084431073345349, 1497385189352590514301019705530761222400], [13583137704828212259799791211629135091979774808535268, 20006578983894878075733324283220437326387795, 2465238843815385014421145141597532166960], [-12273103000862063413854203106072988655707143067607730, -20055161270074410223540910191326862600537730, 2797383337889906778318850596556544346385], [16880153519721068870357078157642425060593978317261686, -95966633727898533992155942788821573191379610, -5192406116955327166255829975298069483555], [-9921966035333251822272742498922871017126994078015984, 97429510685503186174591459735683579078239580, 1536356402675236352924220071125640996040], [15930309548760499031074162778123317472886377881014968, -88782889113354715272874315928557736660282238, 3579645883142329830585177878261946503340], [-64754450523197273041366754075164799832719624833217554, -6075754654445631178779019115223924190561386, -11456045725004344413686395792250178321915], [13002329920257831577452970609339201004908443521860820, -157537720543828936130107646399915732103905145, -3861228856985084801207522689162289357760], [-92962054924942841954404223344392134640476973046029048, -152906309613259754901509724012304185652330482, 6855996620592249708272852464950994681140], [40258075179139578442672276983456148133921682047070896, 141812462820398834134150596081690449554737780, 11696707359189018187050057310315848551640], [-3760411676370317984149900538821565288447637975698074, -19008775648211486616743627199979282484904066, 3160471695398124269296106478699505592145], [69189569733162316536908622622080783961126472419725402, -11359280507576715147112190979743632698197400, -10324938605022275222051932384409163611700], [73250843262306785464722956644594254679347388579802882, -335014513188463175264533204294256920494225420, 22107425817756983959727247899218640990790], [119337203798787874825660110421744256576924052922605750, -80114444706906798188464628932080500921072250, 10411574073399020476898104515198269369805], [-183204022481719981858344779949620024716756616751893308, 112962718340055056651604648861444510693535803, 25621712333304823684911104544381044847120], [267508251749571051122447145059540067832000726469957934, -65583774162536860707080360989667203142158194, 34580890458132716893271941869424877713545], [387864926701833831535462883346697914228971005313862474, 280990450111432178795942197280495292765444200, -23033370647775629338367483671731711598900], [-346846971065256729301860839198163580876723270587264196, 464526173080722089094853436785256401156314645, -18654698066434895920159820883696962385240], [944304617807981950187852976319833153251348096517962406, 1410524093064040230859210088022245053249910, -34218038226088191716981475789924334810795], [-15309149477848055733743196211086730568077267153775464, -418887602208592333539170461548463477053886326, 32609209278952373010568092734559313957500], [592249056852041489650486723815490640704089361009431180, 1111978484069857526728414114085539989462601745, 7202825152325375387276027374116412371320], [87127523273418062458382069787575989341285440031619022, -1156758062157943446817799904229847640230101170, -32250964782541574106605186477813005861335], [1176562025981118087297673925934039227873889818559803112, -350884833536772445486546486320506551609157610, -77827177561781161655187650525045447901180], [-1775595062722328880040422240903731270311871238562753210, 427227526229260347919087085407584471110395110, 119698086169031079862204294105320870783645], [-868977543677347806468867168243979639127334405180523974, -432406687481814945759526701742273324943827416, -198498857101156322938113405552159344723220], [-1218444929030440900981156929913146287238275638650870484, 447716867953160716333316163068531451297937305, -232116310318927142356569889486287615806160], [35915862307666900771574348144429025947717918791718112, 2424442633039071188734477852982463513993919208, 25319465984177639147126842959547369947200], [1199522943251396442869434351886236791155809710899913662, 5126911303532518620437815233027478855354447158, -26610358905517829561302489889376240391755], [1029135242416756355974497391711250777582680296387680562, 955307188495915083268786608108372731072767120, -257103987122591757895745420406115656954440], [-1759382337082692537474316841973046609336024212234295132, -1390905984041075117712309743088817041483056013, -200735444730788060062495333611225051913560], [2748183702113909166441050730481074960000296503888938456, -2158460200292049500029399569522218697963847046, 96865920751097603358266694458929592704060], [-44487613720044910472368581769965418973970452333661412, 2410014021968130098439775563899751940942704717, 710818670224072912379483034127351996835520], [-487164055574965858249901841874844286795086381753095728, 5581685756951650321970674880197878592145847180, -666134277515172001252734333831501308861160], [1379958092592884447656846799841921004845674007418586744, 6728236577109882240417510302911904113629835890, 628451761181307444629765597868677621297820], [-1933586396395034128887204752817496189496204809568375262, -5007740543429403263656963904075805720831083340, 392711807018624796122819280187885298233830], [7287991983175893431961138354166978834500626009850129866, -4713494200714461495388306658159215815989389356, -128166274861424574053837712035066533206570], [8472435177409103226785757493614552824004963262759764222, 3594289303050203039929267081677871528932205190, 782197183199463685741957464370265158296845], [-2222885996580942625961989206112073406184219207687133724, -14482199764360771693004949788036098945389596541, -982992145914385602128879805544559688868200], [-6632134008196741950055361622531492003853481368559848422, 11209243868584336565196799435703038461092839752, -120658562353652790211809411296672928127140], [4657870534281300451689627612193171407251569657168818536, -23049472042649195263422714404073551778380018826, 542235386818285114196264193652657407325380], [7471864665739529421850908906826985575765534355254687836, -2111869258015501981457855513015333522780493315, -1924704603221020079221233578169290574522720], [-4932333011844302706203275835805741580437078007346948334, -12241676555633207750302423752652463135748148156, -725564938465091402698627011132945960689890], [-23191226680674519666237044250581513011977525550076012616, -6213609952506407028058035084144417078839584894, 883572270793694680434382689088243360615820], [11874968106247727788004095751347270900159644139085899616, 25424880270516593455798981480176444632017265640, -2575824204230017032000223500713055853105680], [-6498058331937742144922864931288659893854121558849076458, -11724464642523965023160749596036011218041152922, -2358124273817012763975798621426088710501795], [3762693482238634226731513704626494920789538427768572850, -233628457865806376951327320065860149161254460, 3076953325287194184054934673706191884530270], [-14256417913557586856083244747470841327275976063762167194, -7679921081690986392585764992246643955535248146, -6540380621696872565039540580701811747872615], [53060118017766130148801840215595080784240563035072320076, 16130510115501692343548927839896682076585550145, -1766424974384877268416503158538797604573240], [32547963538346728646206896840349192711244852074883514254, 15561183453691874297017662193657600473466985190, 3905348730159135328997242589452958532202845], [19251914851604618100074392054665002950207412417173492392, -39962361421806226912660201098081162969686664890, -6207910976878613385652449073804727278219820], [-54589491266335490885258192690033475861234054270085775446, 56466062216311776311290834980576920521539441636, 3985836692164719508617187301365845525397710], [-51023710352941521364856679209643788157279003839432549296, 51106397940174567644593946389474326778161626220, 2000689818405793622747409858359218821966360], [21695068698751901819639821772582963551329055031103733242, -107190892156116506396100870631170130802388857500, -3331153230899190105602866480099522775691250], [15886431257529422132791442141948524292460496122143081708, -96064224724375095805571371440575650911456201975, -2316989104833092043835379861710631864992800], [118311707909945668453813517557541503468064967750246873174, -8469023438721164833954507252494996846787697610, 3788077503263173136416653483052514144771445], [-140912908520592978505559689176942239488413689731435386040, 34658947941068430877262941977490372284894411390, -807840202279126784700260402497464885831660], [47613580419997482936561397057389215745898591875294034814, 56124939422403475846828709023108361956342512510, 2801526402399451714499629734820164181679505], [4969092683544354603304320567726066467184792800433601856, -149476590245257135341461631159591052044912879696, 12452206563249945888710082680768685995052000], [109006521234525018155107273162225814141337445329321424308, -169565129773366295763773366860497801798368966545, -4584202795991061104009371654070096384056960], [-69815299088872152323176197517523315452771416892948641034, 21825563577560221024175781967372520172766047294, 13364537667801463101763840779733266791134065], [69494744708777935182419201148298947833669721998042444010, 155607145380402354280770022000331881929302186340, 12974688225680120264614328363013781069751310], [-261379300671405702458879764842297967903562397265675930224, -42604245837489844754377817157027353724205450916, -6294097180121484895427931253063000516201640], [-80019575771527182002168328206403455892649471860673123770, 153064117719189721528292863316706199522393892510, 3082443631197355832786845662835905461581505], [-60591817516711170630223789254508462738024291021000549522, 11948637477405739095801096797150853228629205102, -2106425685229062762177585607844478192565095], [-11657482513018397933161013142187070822345829872511364012, 64971560527209703029757897234932797960771226567, -16054164146854760394437344641394214473838160], [-73186267426632521004553658198457593527993596560611008118, -298544840946646474241650302267647494863760328760, -11652429219359102355877913170049190469105380], [14817152414762072046082752402326194934431190251919517312, 141224868949156255991395983261122364631860028640, -54843548818904042484458592734130728876663680], [15223089039162946806541796292478250305699924017435321986, 440767704935027220698108184773268530170208974224, -3218894772809062393646838727906758423566280], [-425343392359157412294956000075648065566420580602937047012, -536875444380824035602089428152759269120793745683, 35311480133854376944568861954266936339044240], [55341401717371474744368280985469003383083305708074837060, 298171207224724080117370653491734168734996979755, -7360609390208627283203569186555750903237560], [-155189939515053048833184950161225161882037444578264520530, 689709936105100961610076597194251408291518156310, -53735806992437186061669398572529116698657595], [-858933804605462743516375299943418397627236168313771892332, -393713173161158220992679581093931033864418458313, 3389615506984317682525860676539637567361840], [33523758113903403241591637621334894170596913480189866698, 291069639994945686002794868330078115421211619332, -34556532117181023446927095779036914013562690], [248323181092650428600362478331729766168451056198549395314, -24134730678620655411181745888257520702242819680, 22559721298639044004601695176139823956538160], [685061329881622836569803043633816443393366258111654348622, 1022894379648118964438687912798200816543811226798, 26091442294350503345563101591261726475921785], [1121356418616063285997660068874824132450652188950272888770, -137719328893383604105038936232960324629209840320, 85209011793374095975807071291523472683737440], [769300916123931838800596185628951088012998062565490259560, 21976526873213532640699598208639499027177336790, 117641676740592008286947698947172879014792500], [984202657779180872006150547476616064623963124695103249566, -154256297627856427208528017631148153247482571890, -63587810382042378366270179934109279848568695], [282182681789967803573945728931876911941638865589734516752, -368729454153946461640097088091412247366518634660, -40971845690339993432343844494254240905609080], [-734330060578896782090452054046722806335409697622021081914, 81789753020572803535296993007506346871179492374, -100625476654693701758910503061678166778397435], [-1572595898259087981069918933297828720549071615945939641246, -2328333331148606494003200547974868245459414873600, 39486020437870281565940850397342928945395200], [-513438459118671897861462157237119462796555949464476379140, 2767831689723582639956688795306048174092291521285, 121405077794638470996007461392075385677081080], [1790231275593179166911639038356276722250677194547409007758, 923897057521880050236854806400616056871542371622, 194435095675180331387762311910300209730781245], [2276522759395261034241441651408686198748717765865335863552, 694006564817723382616133194858847376769947960000, 140496249022353503536121291363464675943328000], [2567469068452502030762416595566379720546235480780327533940, 261496176359834377931497068639038465749642538335, 174859030296715780880829513702392347568809840], [2532322404213978638950431574175784085617275037966958265514, -1363592614460979940358851473955621180139746051660, 187390297149369972572688827494814207950525670], [-763108272925189751094876805724833829861011621771948141924, -4643654572878469788023440974509804154146377287075, 166196357538578285020870105530183659479391400], [-2178612534974075337716547295960591612207357931972065544878, 3127629515773261098783531134994924504261941404548, -404275639477819676102453547229974458484838530], [1309027275465993730988864452584719824333515630147588020742, -689766116987957852584412800196324102498250434290, 295693951750053928648068351675664335492596105], [4363008844593111991362132794702057098325541941432258653688, 1417937558471588095364433953160017053418348344242, -36887660291578171588170790486690955447150580], [-1823525957956437995647240460081723605147777327531061028372, 4692983866192777727767679587810134118946434483577, -281202483221446580414357875242962586670586200], [-1661406489717491930076147480440527222596397375419133808568, -286731981034567546429500142884241972520521859010, 526960757411244090184738428764648177856025620], [-5864339474843641626395324788868097538933585293271754582710, -4685733539909341845657508869004258295431789229400, 245212275283499456837064798881984512535472300], [-1161488833209914872525951019644838292188195232896057608720, 495076628490047530292507932447850485436729002020, 827401652676627910248799967605512639553173240], [1245997069232521166605828098324913130961959946642317389458, 5456143483729639265193187582563629605161990225060, -1326147453975466473768745425369232328671325970], [-11124856485130302468665567399304784674539443233005818937544, -6648553519702467118817717027603566619595628630046, 445690552643659790866929469224157710557728300], [11166307414767379662437707852034291078399682027142359126126, 6294665929633647805117320522489313530206655483734, -367242389667694650218307134703280696966633435], [-4675938617527150037739768245774001782496477070050033155434, 2618363686742888268918129690126308860420296521070, 303264333132130571827824809134733558677069785], [-2792916335588330284899234540899274286330693743729035440168, 1812053429242098425583126776818580029945356662490, -869212257350438370842639787184120545896347380], [-10758080601912476564548011988851060473628356363529206609022, -38594091271774590501156923917507586451895264311020, 1003235629596351495302562526140673599032599990], [12363738097553116737518173156562405376474037976352775009232, -17437087354950368697207339578369919715043815264212, -808466882497421542576918131998826834611634360], [-1323831050550152328785927148510715257297259429777260275388, -15983626629402412211661366005704090587467524084917, -1620494992826144645589126763644869770877212200], [-6322138058921696219809133026294177543723361761721409739642, -20198519578805404597974342720306552782445780966090, -286324767914851965107028074484695204529894795], [16297652806366580698551734021632024796214878115019787830650, 24657015311939740708197849268344319805852970242100, -541566879032871292278608709062865944804359770], [-5580003020641531468969821963716570336083471105738837317600, 45891944476854312869860526067101455875663336316600, 534408684992597157005948418420754795350326800], [145415598490997751975562665697441210819316171070480708296, -36452880904930857263155529362987203165082605049986, -1403176922349835210832752879739369543136615900], [-6249054137307842265677320679944592273837414396415838713924, -37868203183008311980981208741617695204248950179995, 2322262791887489000799076400648118534607775440], [1198487828066014337741767688628105015207457591356179802878, -9982307087703064328620530780041926914716179700298, -1868514115759251043616487416853256469234817675], [22945201159013525202803008283439260905226350628220006567908, -3562442130047947341254005848508212633564080713245, 222261042114783652312517768578765333465822440], [-25528929835641425185619615062086542411689372770928552889152, 28497516205647631739007896776853873697176360934480, -1124167637876484912411037580942657505088649760], [12127343060041363558496068264148440973392046281026824542314, 19991452823603621450553193821982599223268936050660, -4135084811586231227267958697549924453060965170], [25396227096872381129757120340629572138397289557692566037084, 44469031575040185255810912586737816827134325174781, 2834221914589465939096112693644143053719859040], [-26113741458160387757818888660926298504532073955947850068720, 34340958792541199947014704845051830982624312253020, 4978797798484132919701377332574937498057769320], [-23961981876056833382386400153577972042444558048699887132398, 8695067360612166799289227888183362194463992047140, 15992643513882285050785987203604812139457070], [39366122452085598490002903175191894039490286978593697270214, -9030176732323011367476102682834329733021549870674, 3877558945005189694213875381405011490494446905], [-14653173837306631034734345971702466805675940028469513995860, 1007848447052677627891768079097628799851600415145, -8146713153918902109768841099795252240758255240], [8466102411814278723559952713606082498830442512508248241160, -74807371612411373502019244355362025157500540193010, 1544463977953524854543868876592531528574609620], [17400144759312274364352443207460456823897945776439060253988, 45359730645138319267395698585687415865489726636067, 2541123519591587895192933195040305727939320800], [-13560295028661266058297764777637507390637744039599023129524, -83801735836166013761336902339772915451814087284255, -1095722188131959977648038075943283322615250440], [-55231889089865637599079870901347435593920518273542456501080, -43335596575254426835549429661581910383648638086970, -10521403240973321902608085528990255689303463980], [-63527449084777269801392890264773513045583826192741474693410, 68563948676503117616704084344200263812268596053790, 3753914253572136006945558600392997575761022145], [60497004219909870799845849358110539382838859270219031485010, -1742177981896606229082544461492858643929424842160, 15113169423660008322842468611267060829390841560], [-18954084184198528552756869552844207162297710409698206764296, 153218187382362457560749524206336455151460303921330, 3693745962572577832030811742791351049006658540], [74075798486988617405194123615000706700855622620712192146080, 110507877438906582449276915087912481039464385801720, -9609240166154851363937499565006766638591918560], [28989308421462863288080503888418614028818881020665050591508, 176434381431758747654934707127671666524870187621095, 5902133785220389454707808278160360845721476360], [64522716027190213270086591096409911493058265541868367581756, -45668307510392585537693263603774022839544821936155, 18700553674588757614180179118362296954802567360], [-45203657239399090396482747509477011737266027835375915738384, -185088737216757749982266667514682425351292712595356, 3596946078270129843910740072430742044781659320], [-11141984265577459436385773837153144749448130050368613607730, -95913371579274910151673200613617079381982499544570, 9964734587558930693240196314617685418220801485], [70420911246432326367798612626961970821179483484664612292418, -192644620066909916253266844469838625856212150850800, -1141804140015077627926484125276913400602699400], [135136462788080433377197464386586654439430086709304875515368, -118708911241851335209427296812194024152062094312138, 774060296567263726359200039944967875258516820], [88913036819957581345512570633255739929649494074542787279594, 48252722390107460344404923712926618811889451736180, 8416577454933494866965197842103598403521331590], [-125972001135176917886587161618934448750041206438352970068962, 22487603294857325845680095604840089682088843127142, -16014547474877686381967910847728854082742431075], [-232703861748158587088657222574399164845390755388746255699708, -12844658402597569332761257471581458959403790807445, -18509110511514296337506858125556644040291322160], [99965069167274203714852253529691708765269321550574668321862, 107484858125498462416144990408471717614348809979390, 5899409509380229603642022549105846876840988945], [-15044717175253033598701809609667474702429229645474235227092, -486244799182884632527001622464007878371559387640903, 6783130253097035303023641540509709570742498560], [62186507433004827272402899680424452840971495903805202831254, 133416018640826438259054128145923848263741361015686, -1965485099835630636592681670477157562560766515], [54481887465130370855639544516444971610344532563270267888090, -307244717587078065274742600149227502726058948032440, -30724392557303871789506165391876681830532090660], [94847330865227723521978408670668716662476587556627597652096, -94844636110764829381212201685794042350945188837536, 9012993348102806846892482637960824706635938560], [-295352568143366531541432330293282659143815142859762439910156, 296131787670925530624460158459620758257811250891871, 4397522050977233617293403709900155710427616640], [294095500774985608438376948503423280085623786987346776721974, 738787872977268621919341923411523800077674322710, -28803326215049207802062067857134919012716294395], [199471010717938783667653115400615740812594695470750308553390, -698351660272843264082011558921303136008881428702490, 31048770243353433238397367640785567803440023645], [187241581384467188306733804478029093176162117308330550631714, 5130033014910715611536802862611184070669118261076, 6076110164575482714034410461286691776134786710], [-165773113886898016222540349297330142828519758785887376258156, 149769370415953377203177839965684436575990396188775, 49515248066457566473428301037213092973091502200], [-363910701468064449206492156815795156792849249657835456438274, -128794503464701429945598245894860750131710095397210, -37986413439291810027365719117850968888671492355], [479388108422758325102837137436776346837749697531841948910362, 771341282722128760528371531009083882330480600387220, -60100677047100479077199255471091615097372330890], [-777410914323579532612479453067558959786135371042580458718196, -43093191877421527979094156606090895535196853414239, 20820341738442076993990713958522866901059107040], [-261369343789344396895996347334790746978544933742916968112266, -1433925903479864880658093289170116583990660555361994, 24138477047944845631496183124688604593112470005], [-281831117274256255405271588598831499163410223610881787296098, -1450755885458495063598393272069132290614618888733650, -42005036173562434670236675338912483594502021575], [705783607582773504131971298150823158235309513199577532853124, 1048265342387597842024893170446145355602440529580891, -22743119963883197333507308361407017962575797720], [-220997432594758002024312515134318723435274581158554755642438, -420313394255103786388537120958842876210329694518492, -134089941111398296537459161658199521026064704210], [-269990624657760799218106779777039310603191994945099790674336, -645731277298616787485934892755976374219499927940760, -62636696041435668224680979535917996716980104880], [570760139343271517641491652718756656839901651587449766558386, -704303295431837387304929783808405181414383292144176, 61368236039421305030085883112500285673398503960], [-817053468814506211202362944716614422319073089142080935528616, 319227107447801596411764087059375322098270559914106, 20710557905630263825278135792767110953026667660], [471131494817346381623019157803372008704605677985510243488076, -328606715224969073027366210936717567436015522698591, -150409137131399082832340311551282983973852108680], [-422998031789971054932552699871922832845203089995105620746610, 719230702183142458027869667627768527496676637791310, -176750756433475523988612271490433101456587819095], [-1451193322998361545459111801102145882679276474883117319352662, -57278667820092640139280492768992563900124286877260, 2835909197284063247218362545091344387068464870], [821639492057465555853103439642015934204438562194045263907012, 373674135236347779073047778016327787005444851976555, 172917395867467129124946063603171719689338434840], [1036812056189041477041933376459073148332069212263936455810976, 2623154625034322877107139957417572903510666384347384, -25675241658666578980849832331751574156873734400], [-953987039593859738123301323047415304105032667549769826715064, -649298732535823971802565308592373509280013716227490, -70836604156331164404234886127271110224346314620], [1974438103854814984653065268816449310071827309524908735998104, -1524716593597014992799445702601670166584661180907414, -131089693295830596944071472317796592109180528820], [2986362391348145541787075149789374377828879371034837236582902, -1431626491176944245838687187650552469803608820750370, -152155386699118955223562842258015275247483427935], [-1358284147570771340342128562751567940907093370534833290886692, 4020197714369004531960702220325405877997020260875197, -316017303079035301245306081360336042820077663600], [-3625813090890201415169482007377849984582230282086103603747696, -1602924076292298461204730851211914676378422000942820, 100582112722821597790278945883716498875132802840], [2687486179066432160153597822854432500691871021549054961186962, -432853105919052765549924462019013610117092823200892, -348384640040506570331303979688058722731703078530], [-3277560969659386951347156347853878471431633261548573174879930, -3735241107724945170878861124473062740399121535925370, -6790262767088398636266729970300147339478598835], [-2650193928970826763373512858989453820509105316332814035678920, -2515814906884516466497687673443902064194897649266750, -138873205958193495294773136640579912767595906500], [80994667899344528965402556590391874848867109380766831491298, 1381788917900888281389329100187409262145962836900880, 19816719724200033576884576881928995152104680440], [-3327639912419793492254907552860551421210623254848028558575682, 3652608567592412402309866034519394050707674202059030, 194948155325336150654782108833019619281484301765], [171671647465092719576829800851676599528720250208231941340324, -3755698432551916969599132975957134700073853163731309, 13741611658386439245690139293665924129991487960], [-3692648098629969048203041874963651478177330913065215082240294, 1102436597719559288822649732445215745306750415525204, -944618857542679480912072784718785440786465018090], [5201824354218472767662840041240693379473332321181143846045468, 1404349727135226931791744254223450005756966957329725, -174350196630864726131170907508097230615324322200], [2246707887454892689298818225634491657766490559888712404254302, -7102442939611559728930008442997228335467748169603082, 385766243824807020509947603606040679949041470805], [-6112340899858965338796662490641270091656800872266352196352082, -4623137289278611801680553825195697423256577167248290, -409365833625212191027898440578073863593151084895], [-1309927672893184961696146497109552771145726798348549233872352, 11175112427475810997845240155016195956726251243159320, 14844384453231232894861643892378419360941352160], [2747071833491512399224726032288872946879509605385373982628134, -10911377859239158641464128449550305041840237116119394, -81910323769943656039343834074038865102313600575], [-4932396672131812294805995202822084376849392088642539241238260, 10203975017542474395018501113228097343422664395023025, 189123385798770544938640807708077584694255298200], [555777446280546459167233035482650382167819767705762275274548, 16967864619282666375403564868298239937512568812607, -866974829198181194154434163775751208585616513080], [5255314773087689355752125636601735504982443119529166997103210, 2058366322817939507156126107465635676989361546913640, 1267301642871191637370879810364724532215732207180], [-13870352908041763535223319117396161449841061191185246247224418, 7318533846432956003159851358932288299206023204947438, 229678865844734875395892336399049162251755164505], [4327556547348611526126574485131224932169060730119461295511312, -6114013589136614138058891355050302969129267599469700, -99469743574035011271321103290105277975035762600], [743852947478381733038543071560550638943343201691580484739204, 4025483875482376127838988797268202897434522339901611, 942433049867158857920107695404340219085796751040], [-13327347915321301828143962565164107478626235369750003688807508, 3334473376580025476010011348418056770458252900535785, 826071555378470044498373299051808907006530077080], [-2477826994146257381393849636578714925746322140174411259737246, 15527868658965166988624041467151001333069024856560436, -1402679551773251981824892739117213410062548345690], [5595410299639647188264216081260433462064311873618834185213692, -9636867493601201163585048093943380790194439254849947, 287328998096480610507439147670579522455797482920], [15770348459213148825433094664242839155381657122677740468515390, -6092433113087950440662547009101683365617371322889090, -600991941874777561473714044509718425843881965295], [5519221932837271620075200879830775069789060925379813941165144, 13634163630720593613538729095590159669681176689878810, 649576711418901921880215103298949582408421778780], [-851023565565347013337907707146547804009687419991610034632266, -4636456476353235503873402234333572062753260132711994, -1254046923044619755284374452469850736628928786515], [4460861822106749473155615568099360464958704195682252346011728, -318995267791444835584803974801322077337224802904148, -1759968346592661920440897818255590105089449455240], [10724941799498724140987629349019439375321372449562823886215430, 3755727291734706342369875587478888693171123408366670, -501404808611555329898770450000263210076616315415], [-17758911491228021541094389131118142019522552478024126926318430, -1749517538508358947777487177080376122363671388982860, -1209610714460208053436012800307500548412044875930], [-11290814850922847335360272540255277378338510207197003490403564, 4220687988356707575988516392350744096792363848815399, -2384847745619785017189985545745965258697144249560], [5268220057060134789722833092621956906943003132100265871621960, -6915230124927721385529890370685411378391335893876610, -707451187315163752722519379234331661424636978540], [9809232367061724774094958233700248025121256829834997011358794, -5882997418735762482851507595553148978527917886798380, 3108754238084123745786328328370321824697270596310], [30359644190802969143181950048405958275302637357267198308004964, -15704665751439766987029400605254048253767872472665325, -676484878231837546702484958563754786079495325600], [42459644240339475319277025277771983938029199605294289671524672, -1325653588607940004633761625612453070774790811939600, -1243350234186177354198668551654318118561312228800], [13981662181954376420001155620054268448467799068503966500966722, 57294579228366799532838859670943690116438377401896448, -2573257577575808408736947702364413951659539920640], [-7934109751623222186900420112199361116733298525090774021284462, 32557287640483236877331189457231153039619468983948960, 5030138582876769708065774139580178740760611938480], [8483110501203870004737904902500783059428969890939250805037828, -60254885324376376045532771155850715698161180051510005, 424863403341383305715564176617216867157541122560], [-13483773433404544372885198390517004440512017075313036072250566, 34788924818805214846271236637721954315755293700518056, -5951005189447252603610663399877381329659410360660], [9124573491469018216537342573532639938941266296863661664546670, -29372174577339620760081408602472322195602140724086330, -3306652416055210379923387107199303797379386032915], [-21798513698243555630217761291483069654895064159629013755654688, -56401175490009933626462985755319286575317739502207992, 535680176088019179361755812897116568546399226960], [-4809139730905651221806048741681270924727302204548571464059510, 36836946168212199127051514500730964073706014439725160, -957384366949980601165113566218704458567507701300], [-17059725490913572453890190882146165853438802419919960194543054, 67206940485401810818478648306941418564678357234649060, 5689093955476420597346342138441865191847280158030], [6039244178344261014748587995937062378424504312734678003152628, 112469346667570229288290710039576052988918839253156895, 551166758609209053017762928214371621715327553760], [-11121786872575106276852562093604727280090351309484797811817620, -113797587021550142382780209641006307523886324714636455, 8245221768641624872443797807961719818658528809800], [-44251777852709337442472024061665636442507701178250040187480288, -122918806041920145410676036483661750447608195823612392, 5421346059172879535966855475189142835735478636480], [-703102435299477318089833790977152791784771901058140763310378, 145616979363525076082784241331795897024078382254554798, -2431963438534452494258166109509492341339584232135], [32633130635983431877623918693373290916592217799408118534359550, 155476182036641248176571564958950695763881714513525870, -1626257752493708758897223710225796827862249539815], [3640593375142301656987481371826297563369625379103985875950414, 38239419266718619303234544535148798807734855502151126, 3832413483659193019016237482840449646934211425765], [-7076750466054458862282644425476812655933412428888260362853440, 25609994222545819915763451712367840733218118849139920, -3090732309917921357941976143269394683371184575040], [-97665907519903855894695032546723963298661474301601772027288524, -10533902540577309521293462060300075108214744435510241, -2307584915117210163016586018338058650433827533960], [85446266107027884399042135758639291274306311540856325579022684, 18450988132652191001360144958505334867877422036798205, 7911479985644951845409884653586071652509847895040], [-14092553399057526149613670249797419027610995920450928639985492, 1446644742526722353187527917324391190869825129417497, -7310776419926597831347341298837152131199626453120], [-63316183343745813230468757071504948894692881042387583773701650, -10563211307433794020564022529930206725181823102933450, -14841975226256355646161153623987919056695238534475], [-118890974138655472799909623976120177716609890818381469833351070, 100114871748864053334419787171913303730583050051527120, -2919973462933080783397830762419913867250777255400], [106635744307883361268964601597989395189945482479361909692962826, -144629826339022420127972450361593247286391081497103100, -7178954089619131396388336485650507035489575834050], [41588857285958314887193926572424760625290917661606845168734384, 97854733253576343128360373744487373986210336317358356, -779928034606659044669580745205433948611804067960], [4732668845650411860586041050022166150339578835589943658410854, 83931296910813659772363975253007797715990863443991086, -564720790973803757091900301542460715340300912135], [85812506528021414960332102016326917591969463518055770142109274, -122065171596290787146946663395413841056109952580079384, -8676941989738127729834772555164620750765247372660], [139159254329749114588015718424414994530631418334817510821174966, -47940490158966436931178840080530871612941660615706010, -4863872180263629728214557406580338709779335278755], [56634775478805444266861265554383908741848239642441889103326120, -218107498328293487600815552746642491735288059721287290, 3707496947140395041388676717578799632656356936980], [-105253236195844587804602438030394669165674808646415641092286674, -108932179436109939612193943758781885624340797024214466, 16493893854923907696581206572831236140484642571185], [-10681570773323398922437184833279200367627018729755101725749228, -197025514231336320313380818457626006313856038282505385, -9503766215000777881579796845588561939845803488880], [26153838460815905489827994814708721441124610000794512469516630, -3463783506237966676174030672086072760729631136063330, 6293468211116544514938476350574315003015217963585], [31998833128239989195678041311663031971835462854486886738972988, 79399475862676913904207633054874093794069236934391317, 23911974887781018801074517825589105746972998095080], [-2662980978614796168851313147929614821607674919758808537003536, -78131634471267221984162573130861577767184148541579100, 17330091642138341631306819164870271455239361382200], [121265468346056053441908696569238439054546282342017367914444966, -48128291138945611137922291509531640341753292378372706, -12887539476670487272006335725042925471251096304575], [14835916471822041724816933443208011999050656881306884635328180, -49789058609320993040900959135695789012052466226938865, -4950920877220717356695985765423138197228071635120], [83611971301945217934306524558663087907048750848841621112097258, 335990718240033094932617092737301394179475551916680872, 11328503037954817706750374884077764439227461344940], [142780073193856521430579532748719369281660162901895950170467102, 103835801320151961836445809939839671328691258077636910, 21676852994269282588557077835401006591417200523705], [-47464344666673218583747632866313920095436445704529587553456496, 147204787364933987206923214743064498132984117957349436, -10247278656093995883561517507961569731426029259000], [58256784159232691882941961657702582144031994126357612200645446, -479514119551236742140919354214642304658696709286498210, -31401747728524930811012064940883706217056771405855], [379467755671549786756226407300510019368401084783700013665458234, -66957903360588174529589447549009381870325911160193244, 14125955633953119568234977434237166515261687979310], [178311010875515811219642292494616470528215033667372764444635872, 424265145562886539114662332046189194770740329790565320, -1340696909283136068587745381647663757026673840], [-63049702933275170547014572723632882741076976929324964695968132, -298377483440270558298026288027230877657808941231122315, 10731517570440863852180350863152081668607579323280], [144857480522724837785814942174154621667708941782325474945464114, -621446145918836645106466755662049996668924109529411324, -30095149800991660500759975064127679138358100625730], [124872912756790329093697524421261011276312818737090098500543448, -244984259733175320902524050445565356323350941310342918, 7170708479881173584258664422145289392577433336380], [80059460487203581831951981270136531590255419507655753121794358, 132598898662062676688319810574586629694920132255292022, 24913612947233273959464599756535847619293713432405], [264840675473939550728182637323132314542710302371435586059975466, -592475337058960187694662076377858394406024431863263820, -50921663931417098596075863108873840843771292080410], [-265478230312933676840844914880759268973712455004642627560110128, 315107374294109071462198828324238718508809760427833548, -50713899876745429473424599800705133099042473593800], [-395533040715436325568863935324956830114224049548159594543294356, 370976655927242794256163551425636521872558466482182985, -55364510912273294944201622719914484811715864806320], [-296976429455062635320349094385110621900978356239216461362042220, -878329007594881891711363130272506855039692866350024105, 51130975468107717138812741469044314438439816304960], [417200609537432941016761880365907400796165593736477458379492298, 234569793885462176273367525516827709444410988587121732, 15241412898098723468019128282504560501731247370910], [-469784326130202244978662794122792195430240914091960261220974850, -1434323459264629383001706372689424655690666171761650, -1928604827779773305446147192507185366040977037495], [931743529564366847401723118243628395808364346421249861971513192, 61660636259259397814171849831911754546483240562702678, -10674452969916917547157810749861151495788503103660], [573038287462424571148124336937381535194094809089252574459452090, 181239116917430273306441383730525135904379663407373800, 61107099068898076079574063158781515061676302597900], [-1007867032869233311543531093720096375007776556003802317729548332, -358301611894398236753352207239217894733067839687021865, 34645513965261331547790916145545169477094688137880], [377902462852854666569595412714006553070467237434830145164640508, -286221766699940577161457745249524675584269338015867675, 40907479997385420557191866039064984865156768130600], [493651869967253690165233308268185881808347157324931674934293936, 757025850446596809844310159960000579142825837529925524, -64264583561156966461251787854696454975353539341400], [-73070931626327340326102193515598836148946741764446227026573210, 1034060664913137544216809321241570998462902531040638870, -142248498529691943451418751910142975121922971856315], [-189199255333089061283144657473325995443854008619643660199115176, -349649249877819837362429479645069910637367761762878790, 10495473755294214552457633372166682928851944467980], [-335111277772732037315579998419872888865061165633356287476220530, 690070064079971308034684160797722647046244097947890230, 25569622280674119796292137343435435805241190530485], [-900691083917870955101358341758555545385675819939306312049399868, -2115853163699465155477545909989847895188683429428412805, -8317569630022280597358152472194854732335049689840], [-395253886238785381340218196679051477034096367734772951162679648, -1678961762176329280700614199593016408170614823303998600, -134777473355756237764839593204440624700376074080800], [506620071694148726596783405957442085636852852467362669844881058, -269407946196765599788216437686835054192266895861044928, -126505063683174414532672698955941057173417528495520], [79866195046387398326348883830750937201585217223911787764663026, -511692535337243588395883077622750198543376080937593500, 183476958983058922624485316114963893726764658692750], [-385263236986575950532592662382203542763792193337181572688604006, -97029964162141414438730853628159395713562099457598904, 61060485226896330401265738520097046164305108156380], [-1294345650180152209985370264690474067023082937265700943797589298, 260241641608886239586688538289899758087320647089957430, -142918632611513487672780643822797032336256538473035], [2158017315370943758959226334780336025679471985053561648007892714, 1137500881978685880206006250867179270596377140362901576, -116136821977061743846985925348357124726859181132580], [-144046062651486390397754307612034828377559281938122384447776712, 672674055150393667618476552178551429287812492963584642, 116698479254115317852221056469288989686309202254460], [-1831123414376118131748015546051105052953139612512071172313503774, 243303226092815619641499559682738426123783479237784384, 139880798725142024712477591689032582482950273840480], [-1932398572871754870770972778668585898848597181226359571524218284, 1692800166491630974413439966305803274030982665987258855, 88734039959662343352869569170988886604549258126240], [-689803401941166962836237977091624171359609615534355020697859448, 548267286137800970496070065152594690915896559287763918, -47385735726503061140643526651731262597736672377180], [-3885374905825663980252616426628335092882000252834284176595654608, -102910993023385989434573412227066260692454804222204620, -31134954302595375233874933399727417613068393141560], [792521816961644591042758237498096327928113813597326869046612710, 3841362209807669374950805913100806524248374137216332390, -94912019081683778856126507132172393268540620245795], [1748441681862513259628185261291316919090846583334810088421571276, -910278067119548569703551795264917337282131716541955791, -288638663503597381780823311063994460052109933590560], [-970699386537994045581340038036280863217916557574208647833385856, 2076243481165336542688870437214893773675216344936017696, -120358376395127100652828092423572910021827671761120], [-596532709407749725829138924393088840755984851652849789594762110, 3256039195739411040442761978323110764502896901118151120, 263676089741118378774089977057753199394031834465560], [3136795798360495326378927570875384683872360890060532886609190454, 3878805167820802319333267299576605848233659562722476486, -115277424538183772729601774450998316626500309217875], [1819569876962135348147410974570674835980940085487508718606747164, -3648455777829700095753359985070844367195412485590024035, -82331515290975215268480545607791312418885896303080], [618930135750963932279390121635795555805498578556804016622264900, 1288990930901114594907789997693584810952067477424524475, -107467077425908228551067330963403194964252282997600], [3284806898013485263909376157707882812008563303469641283565169016, 400639185430105727614846156921954374276799307386060050, 175770961176723523261707346268592349776723017385900], [1437265045468412851730617358671037792113493075149435761244970618, -314315220379005008602080077251551349334691691475880888, 372009480326088693491397987090566581217098357506780], [-640524525090754654595349082748134297271986864416399195581685472, -3935247011919497469280577948274864635109837726451313160, -184094831984658118554862208829437443384365361324080], [-1100773032671984102628445098287369897614602719700484511684128566, -5875714031218899845529749381392850924271965086310175480, -185141128336888908001120138520340401416690650244740], [2247974145945583328464713825924000238408779682457786510162817212, -3053524723910910819492615567243350530547422895643404475, -67207540934230335030264589351980312987598717132800], [-570668285268640911786281248740370236062686873150575973677443034, 387932668263658600512987260329317234430069082778785110, -569057895140047608040449353016880469957432615063195], [-2074793882761886190722192881161288475489660315170065943299062450, -1951320661433314711069942785464265845466211395332731770, 29740407844967781423847283295219979649631773812365], [-3051564900298111673714485100449192224364328806795549035046425150, -4395807391699261899736000646989263603411674289027033100, 185739289765953381534379159751308855794886253693510], [-659764098760140341305925513408828935720567304090591364662950384, -8007932160572129691529526626884767026506009289899832356, 2780668623821009068110259259749752519510403875720], [286153758149365501417770900027236361115781745352968875232157626, -5360087334961463830659891742880538479648409942654113016, 76589707986641939843698130468627746185700285462140], [910353459568053548633467866818111190030119134183415537917203990, -418608535702994464828303985714781288112049323286666850, 541314318149717596803968880033723335523388025253825], [4346866662403591081907378797841494658841362694389568886502214920, 9445604068381208982740962406516442470886158841221920110, -189435605213514060976472923794597933330825871541820], [-4795254490906482554068896335246735495566514301966562037661626050, -589842928595420087238132538185102318152099703876438450, -496644883740597400771879808915727781912287205162455], [905769318988360563624493433159629916558490284111722447520714418, 7976464925788793402430517683170993145826258598048511460, -377595547076002104634816506412575434674988922702770], [-1853918807363219560676241221754199102834249452282068304325084, 8042089261422946185924355263772215114858922904579157219, 344207363507483477320907937787157281891313302456800], [3576348688148560612942971850390662885168254701267383109934381940, -175240116011149461541440249165057732000240339932585425, 312021632006940255135063450780223424117555602658600], [-4964599084993606390917489237053773280744684462754546688356871342, 2345407356344647466437269428964405194172660999232139472, -714289866645697937153537137709636659844550314488680], [1787595890868013489015336195433638526665272882948360822974699526, -10617854225746608779943310505647556809726856259070670666, 127359586178750306263734674377754362073745135550645], [-4020965497181465426856234317370288893368910430623450854860138516, -831291197598203491082968845261649855801438216207320119, 385174954415311973059136615857425224138563863536800], [-3357098910532348038748749843929509661969411783601249764911154668, 4555961001304173974901713433148291478690461502028046455, 187709536341739332020373600156023876699455322279040], [8346431989310238874098554105786312430433570514190896043178193738, 9719164742691986461445455911197201514591857749436698692, -31577539033895949754343633422554259143379815807330], [-3616553820877659562108141625021415158511950304095238320239759746, 4216631161694881310442043787270685357711064681596979310, -387588414266042990968642165213611664231868856869095], [-25380596002501691778731168208660719812009676798018952115191744, 12258244100774464337357895083667331287899802482692608880, 518058039149841443422905046689510058969133177585440], [-4187412415823481295959659529058429851561196580904080862651181336, -6064645046139810602432928322198654850103995116246364874, 692708016819767256426470778711896287825788672604980], [-8756133048016340684128073138392504270767704486863953378366288750, -7456035602441339154150239357034300016148558268465825500, -98052311685536882486471489214029425478687530309970], [-1677607490375856355507805017142618710026620342769488739036717768, 905533306513945296000420381667279375469008790073885538, 333245741233588666636372326656946949898526508770220], [-6529447349555246258030773214385759118083529243102253304452886930, -4362267817625895900988492660139610520554451505861038850, -892440838190164381430630530915138609802004047008175], [15809466792728425152500713139240445791257457583722248812536643734, -1504348279724869958170621452029257099067165666670821994, 202109267684125335874379132621559243803508204617925], [10057841531289820766709631571000556287250155659536235437175000368, -13754640586949675427411429533166427961626109106475173388, 305009273016037290529348425287401657461903258422600], [1450634410516898739143072266133970451410750915997172557590925260, 11844833234899723040471362564858904973476025287992714065, 1860783431229795883860966940625180781059360321652720], [1169789809832601003778010601349120700562733196220460141817021738, -9637733424599635703726598921147933895371811766000678808, -2334858716514939926029434578350432971388183825733940], [-6773472973321064794896592181085738455868872996539619203594382754, 16731986668515882453031577962857397878687037713271414814, 1727348464524385631307947216044736653276039948869185], [-7453587200221456900410963077217245385056096262360605768107829436, 7153634101062754529012487923422945654716030172291151851, 1005155285657214572881432983554367415460320109163400], [-6999689230661315953699736582333768742528122162196953590664092806, -7322675105763971779356173577560939273997219567937282380, -733043018891928187885782293245111807143570641889690], [5478003666040424770132344236036227462894586491710284909472449132, -15139251937005606551761323064575770663295028217578728135, 618783451471142787898982969010630058147527206760120], [7830568789031005628083927295101160021810055550453265874631057176, 2605587234756508901330920626646748469693432391842463850, -1884331107881160262447437954452678778364248533181700]];
    aps := ConvertToHeckeField(raw_aps);
    chi := MakeCharacter_4_a_Hecke(Universe(aps));
    return ExtendMultiplicatively(weight, aps, chi);
end function;


// To make the newform (type ModFrm), type "MakeNewformModFrm_4_38_a_a();".
// This may take a long time!  To see verbose output, uncomment the SetVerbose lines below.
// The precision argument determines an initial guess on how many Fourier coefficients to use.
// This guess is increased enough to uniquely determine the newform.
function MakeNewformModFrm_4_38_a_a(:prec:=3)
    chi := MakeCharacter_4_a();
    f_vec := qexpCoeffs();
    Kf := Universe(f_vec);
    // SetVerbose("ModularForms", true);
    // SetVerbose("ModularSymbols", true);
    S := CuspidalSubspace(ModularForms(chi, 38));
    S := BaseChange(S, Kf);
    maxprec := NextPrime(2999) - 1;
    while true do
        trunc_vec := Vector(Kf, [0] cat [f_vec[i]: i in [1..prec]]);
        B := Basis(S, prec + 1);
        S_basismat := Matrix([AbsEltseq(g): g in B]);
        if Rank(S_basismat) eq Min(NumberOfRows(S_basismat), NumberOfColumns(S_basismat)) then
            S_basismat := ChangeRing(S_basismat,Kf);
            f_lincom := Solution(S_basismat,trunc_vec);
            f := &+[f_lincom[i]*Basis(S)[i] : i in [1..#Basis(S)]];
            return f;
        end if;
        error if prec eq maxprec, "Unable to distinguish newform within newspace";
        prec := Min(Ceiling(1.25 * prec), maxprec);
    end while;
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_4_38_a_a();".
// This may take a long time!  To see verbose output, uncomment the SetVerbose line below.
// The default sign is -1.  You can change this with the optional parameter "sign".
function MakeNewformModSym_4_38_a_a( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_4_a();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,38,sign)));
    Vf := Kernel([],Snew);
    return Vf;
end function;