bundle.js 3.0 MB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329153301533115332153331533415335153361533715338153391534015341153421534315344153451534615347153481534915350153511535215353153541535515356153571535815359153601536115362153631536415365153661536715368153691537015371153721537315374153751537615377153781537915380153811538215383153841538515386153871538815389153901539115392153931539415395153961539715398153991540015401154021540315404154051540615407154081540915410154111541215413154141541515416154171541815419154201542115422154231542415425154261542715428154291543015431154321543315434154351543615437154381543915440154411544215443154441544515446154471544815449154501545115452154531545415455154561545715458154591546015461154621546315464154651546615467154681546915470154711547215473154741547515476154771547815479154801548115482154831548415485154861548715488154891549015491154921549315494154951549615497154981549915500155011550215503155041550515506155071550815509155101551115512155131551415515155161551715518155191552015521155221552315524155251552615527155281552915530155311553215533155341553515536155371553815539155401554115542155431554415545155461554715548155491555015551155521555315554155551555615557155581555915560155611556215563155641556515566155671556815569155701557115572155731557415575155761557715578155791558015581155821558315584155851558615587155881558915590155911559215593155941559515596155971559815599156001560115602156031560415605156061560715608156091561015611156121561315614156151561615617156181561915620156211562215623156241562515626156271562815629156301563115632156331563415635156361563715638156391564015641156421564315644156451564615647156481564915650156511565215653156541565515656156571565815659156601566115662156631566415665156661566715668156691567015671156721567315674156751567615677156781567915680156811568215683156841568515686156871568815689156901569115692156931569415695156961569715698156991570015701157021570315704157051570615707157081570915710157111571215713157141571515716157171571815719157201572115722157231572415725157261572715728157291573015731157321573315734157351573615737157381573915740157411574215743157441574515746157471574815749157501575115752157531575415755157561575715758157591576015761157621576315764157651576615767157681576915770157711577215773157741577515776157771577815779157801578115782157831578415785157861578715788157891579015791157921579315794157951579615797157981579915800158011580215803158041580515806158071580815809158101581115812158131581415815158161581715818158191582015821158221582315824158251582615827158281582915830158311583215833158341583515836158371583815839158401584115842158431584415845158461584715848158491585015851158521585315854158551585615857158581585915860158611586215863158641586515866158671586815869158701587115872158731587415875158761587715878158791588015881158821588315884158851588615887158881588915890158911589215893158941589515896158971589815899159001590115902159031590415905159061590715908159091591015911159121591315914159151591615917159181591915920159211592215923159241592515926159271592815929159301593115932159331593415935159361593715938159391594015941159421594315944159451594615947159481594915950159511595215953159541595515956159571595815959159601596115962159631596415965159661596715968159691597015971159721597315974159751597615977159781597915980159811598215983159841598515986159871598815989159901599115992159931599415995159961599715998159991600016001160021600316004160051600616007160081600916010160111601216013160141601516016160171601816019160201602116022160231602416025160261602716028160291603016031160321603316034160351603616037160381603916040160411604216043160441604516046160471604816049160501605116052160531605416055160561605716058160591606016061160621606316064160651606616067160681606916070160711607216073160741607516076160771607816079160801608116082160831608416085160861608716088160891609016091160921609316094160951609616097160981609916100161011610216103161041610516106161071610816109161101611116112161131611416115161161611716118161191612016121161221612316124161251612616127161281612916130161311613216133161341613516136161371613816139161401614116142161431614416145161461614716148161491615016151161521615316154161551615616157161581615916160161611616216163161641616516166161671616816169161701617116172161731617416175161761617716178161791618016181161821618316184161851618616187161881618916190161911619216193161941619516196161971619816199162001620116202162031620416205162061620716208162091621016211162121621316214162151621616217162181621916220162211622216223162241622516226162271622816229162301623116232162331623416235162361623716238162391624016241162421624316244162451624616247162481624916250162511625216253162541625516256162571625816259162601626116262162631626416265162661626716268162691627016271162721627316274162751627616277162781627916280162811628216283162841628516286162871628816289162901629116292162931629416295162961629716298162991630016301163021630316304163051630616307163081630916310163111631216313163141631516316163171631816319163201632116322163231632416325163261632716328163291633016331163321633316334163351633616337163381633916340163411634216343163441634516346163471634816349163501635116352163531635416355163561635716358163591636016361163621636316364163651636616367163681636916370163711637216373163741637516376163771637816379163801638116382163831638416385163861638716388163891639016391163921639316394163951639616397163981639916400164011640216403164041640516406164071640816409164101641116412164131641416415164161641716418164191642016421164221642316424164251642616427164281642916430164311643216433164341643516436164371643816439164401644116442164431644416445164461644716448164491645016451164521645316454164551645616457164581645916460164611646216463164641646516466164671646816469164701647116472164731647416475164761647716478164791648016481164821648316484164851648616487164881648916490164911649216493164941649516496164971649816499165001650116502165031650416505165061650716508165091651016511165121651316514165151651616517165181651916520165211652216523165241652516526165271652816529165301653116532165331653416535165361653716538165391654016541165421654316544165451654616547165481654916550165511655216553165541655516556165571655816559165601656116562165631656416565165661656716568165691657016571165721657316574165751657616577165781657916580165811658216583165841658516586165871658816589165901659116592165931659416595165961659716598165991660016601166021660316604166051660616607166081660916610166111661216613166141661516616166171661816619166201662116622166231662416625166261662716628166291663016631166321663316634166351663616637166381663916640166411664216643166441664516646166471664816649166501665116652166531665416655166561665716658166591666016661166621666316664166651666616667166681666916670166711667216673166741667516676166771667816679166801668116682166831668416685166861668716688166891669016691166921669316694166951669616697166981669916700167011670216703167041670516706167071670816709167101671116712167131671416715167161671716718167191672016721167221672316724167251672616727167281672916730167311673216733167341673516736167371673816739167401674116742167431674416745167461674716748167491675016751167521675316754167551675616757167581675916760167611676216763167641676516766167671676816769167701677116772167731677416775167761677716778167791678016781167821678316784167851678616787167881678916790167911679216793167941679516796167971679816799168001680116802168031680416805168061680716808168091681016811168121681316814168151681616817168181681916820168211682216823168241682516826168271682816829168301683116832168331683416835168361683716838168391684016841168421684316844168451684616847168481684916850168511685216853168541685516856168571685816859168601686116862168631686416865168661686716868168691687016871168721687316874168751687616877168781687916880168811688216883168841688516886168871688816889168901689116892168931689416895168961689716898168991690016901169021690316904169051690616907169081690916910169111691216913169141691516916169171691816919169201692116922169231692416925169261692716928169291693016931169321693316934169351693616937169381693916940169411694216943169441694516946169471694816949169501695116952169531695416955169561695716958169591696016961169621696316964169651696616967169681696916970169711697216973169741697516976169771697816979169801698116982169831698416985169861698716988169891699016991169921699316994169951699616997169981699917000170011700217003170041700517006170071700817009170101701117012170131701417015170161701717018170191702017021170221702317024170251702617027170281702917030170311703217033170341703517036170371703817039170401704117042170431704417045170461704717048170491705017051170521705317054170551705617057170581705917060170611706217063170641706517066170671706817069170701707117072170731707417075170761707717078170791708017081170821708317084170851708617087170881708917090170911709217093170941709517096170971709817099171001710117102171031710417105171061710717108171091711017111171121711317114171151711617117171181711917120171211712217123171241712517126171271712817129171301713117132171331713417135171361713717138171391714017141171421714317144171451714617147171481714917150171511715217153171541715517156171571715817159171601716117162171631716417165171661716717168171691717017171171721717317174171751717617177171781717917180171811718217183171841718517186171871718817189171901719117192171931719417195171961719717198171991720017201172021720317204172051720617207172081720917210172111721217213172141721517216172171721817219172201722117222172231722417225172261722717228172291723017231172321723317234172351723617237172381723917240172411724217243172441724517246172471724817249172501725117252172531725417255172561725717258172591726017261172621726317264172651726617267172681726917270172711727217273172741727517276172771727817279172801728117282172831728417285172861728717288172891729017291172921729317294172951729617297172981729917300173011730217303173041730517306173071730817309173101731117312173131731417315173161731717318173191732017321173221732317324173251732617327173281732917330173311733217333173341733517336173371733817339173401734117342173431734417345173461734717348173491735017351173521735317354173551735617357173581735917360173611736217363173641736517366173671736817369173701737117372173731737417375173761737717378173791738017381173821738317384173851738617387173881738917390173911739217393173941739517396173971739817399174001740117402174031740417405174061740717408174091741017411174121741317414174151741617417174181741917420174211742217423174241742517426174271742817429174301743117432174331743417435174361743717438174391744017441174421744317444174451744617447174481744917450174511745217453174541745517456174571745817459174601746117462174631746417465174661746717468174691747017471174721747317474174751747617477174781747917480174811748217483174841748517486174871748817489174901749117492174931749417495174961749717498174991750017501175021750317504175051750617507175081750917510175111751217513175141751517516175171751817519175201752117522175231752417525175261752717528175291753017531175321753317534175351753617537175381753917540175411754217543175441754517546175471754817549175501755117552175531755417555175561755717558175591756017561175621756317564175651756617567175681756917570175711757217573175741757517576175771757817579175801758117582175831758417585175861758717588175891759017591175921759317594175951759617597175981759917600176011760217603176041760517606176071760817609176101761117612176131761417615176161761717618176191762017621176221762317624176251762617627176281762917630176311763217633176341763517636176371763817639176401764117642176431764417645176461764717648176491765017651176521765317654176551765617657176581765917660176611766217663176641766517666176671766817669176701767117672176731767417675176761767717678176791768017681176821768317684176851768617687176881768917690176911769217693176941769517696176971769817699177001770117702177031770417705177061770717708177091771017711177121771317714177151771617717177181771917720177211772217723177241772517726177271772817729177301773117732177331773417735177361773717738177391774017741177421774317744177451774617747177481774917750177511775217753177541775517756177571775817759177601776117762177631776417765177661776717768177691777017771177721777317774177751777617777177781777917780177811778217783177841778517786177871778817789177901779117792177931779417795177961779717798177991780017801178021780317804178051780617807178081780917810178111781217813178141781517816178171781817819178201782117822178231782417825178261782717828178291783017831178321783317834178351783617837178381783917840178411784217843178441784517846178471784817849178501785117852178531785417855178561785717858178591786017861178621786317864178651786617867178681786917870178711787217873178741787517876178771787817879178801788117882178831788417885178861788717888178891789017891178921789317894178951789617897178981789917900179011790217903179041790517906179071790817909179101791117912179131791417915179161791717918179191792017921179221792317924179251792617927179281792917930179311793217933179341793517936179371793817939179401794117942179431794417945179461794717948179491795017951179521795317954179551795617957179581795917960179611796217963179641796517966179671796817969179701797117972179731797417975179761797717978179791798017981179821798317984179851798617987179881798917990179911799217993179941799517996179971799817999180001800118002180031800418005180061800718008180091801018011180121801318014180151801618017180181801918020180211802218023180241802518026180271802818029180301803118032180331803418035180361803718038180391804018041180421804318044180451804618047180481804918050180511805218053180541805518056180571805818059180601806118062180631806418065180661806718068180691807018071180721807318074180751807618077180781807918080180811808218083180841808518086180871808818089180901809118092180931809418095180961809718098180991810018101181021810318104181051810618107181081810918110181111811218113181141811518116181171811818119181201812118122181231812418125181261812718128181291813018131181321813318134181351813618137181381813918140181411814218143181441814518146181471814818149181501815118152181531815418155181561815718158181591816018161181621816318164181651816618167181681816918170181711817218173181741817518176181771817818179181801818118182181831818418185181861818718188181891819018191181921819318194181951819618197181981819918200182011820218203182041820518206182071820818209182101821118212182131821418215182161821718218182191822018221182221822318224182251822618227182281822918230182311823218233182341823518236182371823818239182401824118242182431824418245182461824718248182491825018251182521825318254182551825618257182581825918260182611826218263182641826518266182671826818269182701827118272182731827418275182761827718278182791828018281182821828318284182851828618287182881828918290182911829218293182941829518296182971829818299183001830118302183031830418305183061830718308183091831018311183121831318314183151831618317183181831918320183211832218323183241832518326183271832818329183301833118332183331833418335183361833718338183391834018341183421834318344183451834618347183481834918350183511835218353183541835518356183571835818359183601836118362183631836418365183661836718368183691837018371183721837318374183751837618377183781837918380183811838218383183841838518386183871838818389183901839118392183931839418395183961839718398183991840018401184021840318404184051840618407184081840918410184111841218413184141841518416184171841818419184201842118422184231842418425184261842718428184291843018431184321843318434184351843618437184381843918440184411844218443184441844518446184471844818449184501845118452184531845418455184561845718458184591846018461184621846318464184651846618467184681846918470184711847218473184741847518476184771847818479184801848118482184831848418485184861848718488184891849018491184921849318494184951849618497184981849918500185011850218503185041850518506185071850818509185101851118512185131851418515185161851718518185191852018521185221852318524185251852618527185281852918530185311853218533185341853518536185371853818539185401854118542185431854418545185461854718548185491855018551185521855318554185551855618557185581855918560185611856218563185641856518566185671856818569185701857118572185731857418575185761857718578185791858018581185821858318584185851858618587185881858918590185911859218593185941859518596185971859818599186001860118602186031860418605186061860718608186091861018611186121861318614186151861618617186181861918620186211862218623186241862518626186271862818629186301863118632186331863418635186361863718638186391864018641186421864318644186451864618647186481864918650186511865218653186541865518656186571865818659186601866118662186631866418665186661866718668186691867018671186721867318674186751867618677186781867918680186811868218683186841868518686186871868818689186901869118692186931869418695186961869718698186991870018701187021870318704187051870618707187081870918710187111871218713187141871518716187171871818719187201872118722187231872418725187261872718728187291873018731187321873318734187351873618737187381873918740187411874218743187441874518746187471874818749187501875118752187531875418755187561875718758187591876018761187621876318764187651876618767187681876918770187711877218773187741877518776187771877818779187801878118782187831878418785187861878718788187891879018791187921879318794187951879618797187981879918800188011880218803188041880518806188071880818809188101881118812188131881418815188161881718818188191882018821188221882318824188251882618827188281882918830188311883218833188341883518836188371883818839188401884118842188431884418845188461884718848188491885018851188521885318854188551885618857188581885918860188611886218863188641886518866188671886818869188701887118872188731887418875188761887718878188791888018881188821888318884188851888618887188881888918890188911889218893188941889518896188971889818899189001890118902189031890418905189061890718908189091891018911189121891318914189151891618917189181891918920189211892218923189241892518926189271892818929189301893118932189331893418935189361893718938189391894018941189421894318944189451894618947189481894918950189511895218953189541895518956189571895818959189601896118962189631896418965189661896718968189691897018971189721897318974189751897618977189781897918980189811898218983189841898518986189871898818989189901899118992189931899418995189961899718998189991900019001190021900319004190051900619007190081900919010190111901219013190141901519016190171901819019190201902119022190231902419025190261902719028190291903019031190321903319034190351903619037190381903919040190411904219043190441904519046190471904819049190501905119052190531905419055190561905719058190591906019061190621906319064190651906619067190681906919070190711907219073190741907519076190771907819079190801908119082190831908419085190861908719088190891909019091190921909319094190951909619097190981909919100191011910219103191041910519106191071910819109191101911119112191131911419115191161911719118191191912019121191221912319124191251912619127191281912919130191311913219133191341913519136191371913819139191401914119142191431914419145191461914719148191491915019151191521915319154191551915619157191581915919160191611916219163191641916519166191671916819169191701917119172191731917419175191761917719178191791918019181191821918319184191851918619187191881918919190191911919219193191941919519196191971919819199192001920119202192031920419205192061920719208192091921019211192121921319214192151921619217192181921919220192211922219223192241922519226192271922819229192301923119232192331923419235192361923719238192391924019241192421924319244192451924619247192481924919250192511925219253192541925519256192571925819259192601926119262192631926419265192661926719268192691927019271192721927319274192751927619277192781927919280192811928219283192841928519286192871928819289192901929119292192931929419295192961929719298192991930019301193021930319304193051930619307193081930919310193111931219313193141931519316193171931819319193201932119322193231932419325193261932719328193291933019331193321933319334193351933619337193381933919340193411934219343193441934519346193471934819349193501935119352193531935419355193561935719358193591936019361193621936319364193651936619367193681936919370193711937219373193741937519376193771937819379193801938119382193831938419385193861938719388193891939019391193921939319394193951939619397193981939919400194011940219403194041940519406194071940819409194101941119412194131941419415194161941719418194191942019421194221942319424194251942619427194281942919430194311943219433194341943519436194371943819439194401944119442194431944419445194461944719448194491945019451194521945319454194551945619457194581945919460194611946219463194641946519466194671946819469194701947119472194731947419475194761947719478194791948019481194821948319484194851948619487194881948919490194911949219493194941949519496194971949819499195001950119502195031950419505195061950719508195091951019511195121951319514195151951619517195181951919520195211952219523195241952519526195271952819529195301953119532195331953419535195361953719538195391954019541195421954319544195451954619547195481954919550195511955219553195541955519556195571955819559195601956119562195631956419565195661956719568195691957019571195721957319574195751957619577195781957919580195811958219583195841958519586195871958819589195901959119592195931959419595195961959719598195991960019601196021960319604196051960619607196081960919610196111961219613196141961519616196171961819619196201962119622196231962419625196261962719628196291963019631196321963319634196351963619637196381963919640196411964219643196441964519646196471964819649196501965119652196531965419655196561965719658196591966019661196621966319664196651966619667196681966919670196711967219673196741967519676196771967819679196801968119682196831968419685196861968719688196891969019691196921969319694196951969619697196981969919700197011970219703197041970519706197071970819709197101971119712197131971419715197161971719718197191972019721197221972319724197251972619727197281972919730197311973219733197341973519736197371973819739197401974119742197431974419745197461974719748197491975019751197521975319754197551975619757197581975919760197611976219763197641976519766197671976819769197701977119772197731977419775197761977719778197791978019781197821978319784197851978619787197881978919790197911979219793197941979519796197971979819799198001980119802198031980419805198061980719808198091981019811198121981319814198151981619817198181981919820198211982219823198241982519826198271982819829198301983119832198331983419835198361983719838198391984019841198421984319844198451984619847198481984919850198511985219853198541985519856198571985819859198601986119862198631986419865198661986719868198691987019871198721987319874198751987619877198781987919880198811988219883198841988519886198871988819889198901989119892198931989419895198961989719898198991990019901199021990319904199051990619907199081990919910199111991219913199141991519916199171991819919199201992119922199231992419925199261992719928199291993019931199321993319934199351993619937199381993919940199411994219943199441994519946199471994819949199501995119952199531995419955199561995719958199591996019961199621996319964199651996619967199681996919970199711997219973199741997519976199771997819979199801998119982199831998419985199861998719988199891999019991199921999319994199951999619997199981999920000200012000220003200042000520006200072000820009200102001120012200132001420015200162001720018200192002020021200222002320024200252002620027200282002920030200312003220033200342003520036200372003820039200402004120042200432004420045200462004720048200492005020051200522005320054200552005620057200582005920060200612006220063200642006520066200672006820069200702007120072200732007420075200762007720078200792008020081200822008320084200852008620087200882008920090200912009220093200942009520096200972009820099201002010120102201032010420105201062010720108201092011020111201122011320114201152011620117201182011920120201212012220123201242012520126201272012820129201302013120132201332013420135201362013720138201392014020141201422014320144201452014620147201482014920150201512015220153201542015520156201572015820159201602016120162201632016420165201662016720168201692017020171201722017320174201752017620177201782017920180201812018220183201842018520186201872018820189201902019120192201932019420195201962019720198201992020020201202022020320204202052020620207202082020920210202112021220213202142021520216202172021820219202202022120222202232022420225202262022720228202292023020231202322023320234202352023620237202382023920240202412024220243202442024520246202472024820249202502025120252202532025420255202562025720258202592026020261202622026320264202652026620267202682026920270202712027220273202742027520276202772027820279202802028120282202832028420285202862028720288202892029020291202922029320294202952029620297202982029920300203012030220303203042030520306203072030820309203102031120312203132031420315203162031720318203192032020321203222032320324203252032620327203282032920330203312033220333203342033520336203372033820339203402034120342203432034420345203462034720348203492035020351203522035320354203552035620357203582035920360203612036220363203642036520366203672036820369203702037120372203732037420375203762037720378203792038020381203822038320384203852038620387203882038920390203912039220393203942039520396203972039820399204002040120402204032040420405204062040720408204092041020411204122041320414204152041620417204182041920420204212042220423204242042520426204272042820429204302043120432204332043420435204362043720438204392044020441204422044320444204452044620447204482044920450204512045220453204542045520456204572045820459204602046120462204632046420465204662046720468204692047020471204722047320474204752047620477204782047920480204812048220483204842048520486204872048820489204902049120492204932049420495204962049720498204992050020501205022050320504205052050620507205082050920510205112051220513205142051520516205172051820519205202052120522205232052420525205262052720528205292053020531205322053320534205352053620537205382053920540205412054220543205442054520546205472054820549205502055120552205532055420555205562055720558205592056020561205622056320564205652056620567205682056920570205712057220573205742057520576205772057820579205802058120582205832058420585205862058720588205892059020591205922059320594205952059620597205982059920600206012060220603206042060520606206072060820609206102061120612206132061420615206162061720618206192062020621206222062320624206252062620627206282062920630206312063220633206342063520636206372063820639206402064120642206432064420645206462064720648206492065020651206522065320654206552065620657206582065920660206612066220663206642066520666206672066820669206702067120672206732067420675206762067720678206792068020681206822068320684206852068620687206882068920690206912069220693206942069520696206972069820699207002070120702207032070420705207062070720708207092071020711207122071320714207152071620717207182071920720207212072220723207242072520726207272072820729207302073120732207332073420735207362073720738207392074020741207422074320744207452074620747207482074920750207512075220753207542075520756207572075820759207602076120762207632076420765207662076720768207692077020771207722077320774207752077620777207782077920780207812078220783207842078520786207872078820789207902079120792207932079420795207962079720798207992080020801208022080320804208052080620807208082080920810208112081220813208142081520816208172081820819208202082120822208232082420825208262082720828208292083020831208322083320834208352083620837208382083920840208412084220843208442084520846208472084820849208502085120852208532085420855208562085720858208592086020861208622086320864208652086620867208682086920870208712087220873208742087520876208772087820879208802088120882208832088420885208862088720888208892089020891208922089320894208952089620897208982089920900209012090220903209042090520906209072090820909209102091120912209132091420915209162091720918209192092020921209222092320924209252092620927209282092920930209312093220933209342093520936209372093820939209402094120942209432094420945209462094720948209492095020951209522095320954209552095620957209582095920960209612096220963209642096520966209672096820969209702097120972209732097420975209762097720978209792098020981209822098320984209852098620987209882098920990209912099220993209942099520996209972099820999210002100121002210032100421005210062100721008210092101021011210122101321014210152101621017210182101921020210212102221023210242102521026210272102821029210302103121032210332103421035210362103721038210392104021041210422104321044210452104621047210482104921050210512105221053210542105521056210572105821059210602106121062210632106421065210662106721068210692107021071210722107321074210752107621077210782107921080210812108221083210842108521086210872108821089210902109121092210932109421095210962109721098210992110021101211022110321104211052110621107211082110921110211112111221113211142111521116211172111821119211202112121122211232112421125211262112721128211292113021131211322113321134211352113621137211382113921140211412114221143211442114521146211472114821149211502115121152211532115421155211562115721158211592116021161211622116321164211652116621167211682116921170211712117221173211742117521176211772117821179211802118121182211832118421185211862118721188211892119021191211922119321194211952119621197211982119921200212012120221203212042120521206212072120821209212102121121212212132121421215212162121721218212192122021221212222122321224212252122621227212282122921230212312123221233212342123521236212372123821239212402124121242212432124421245212462124721248212492125021251212522125321254212552125621257212582125921260212612126221263212642126521266212672126821269212702127121272212732127421275212762127721278212792128021281212822128321284212852128621287212882128921290212912129221293212942129521296212972129821299213002130121302213032130421305213062130721308213092131021311213122131321314213152131621317213182131921320213212132221323213242132521326213272132821329213302133121332213332133421335213362133721338213392134021341213422134321344213452134621347213482134921350213512135221353213542135521356213572135821359213602136121362213632136421365213662136721368213692137021371213722137321374213752137621377213782137921380213812138221383213842138521386213872138821389213902139121392213932139421395213962139721398213992140021401214022140321404214052140621407214082140921410214112141221413214142141521416214172141821419214202142121422214232142421425214262142721428214292143021431214322143321434214352143621437214382143921440214412144221443214442144521446214472144821449214502145121452214532145421455214562145721458214592146021461214622146321464214652146621467214682146921470214712147221473214742147521476214772147821479214802148121482214832148421485214862148721488214892149021491214922149321494214952149621497214982149921500215012150221503215042150521506215072150821509215102151121512215132151421515215162151721518215192152021521215222152321524215252152621527215282152921530215312153221533215342153521536215372153821539215402154121542215432154421545215462154721548215492155021551215522155321554215552155621557215582155921560215612156221563215642156521566215672156821569215702157121572215732157421575215762157721578215792158021581215822158321584215852158621587215882158921590215912159221593215942159521596215972159821599216002160121602216032160421605216062160721608216092161021611216122161321614216152161621617216182161921620216212162221623216242162521626216272162821629216302163121632216332163421635216362163721638216392164021641216422164321644216452164621647216482164921650216512165221653216542165521656216572165821659216602166121662216632166421665216662166721668216692167021671216722167321674216752167621677216782167921680216812168221683216842168521686216872168821689216902169121692216932169421695216962169721698216992170021701217022170321704217052170621707217082170921710217112171221713217142171521716217172171821719217202172121722217232172421725217262172721728217292173021731217322173321734217352173621737217382173921740217412174221743217442174521746217472174821749217502175121752217532175421755217562175721758217592176021761217622176321764217652176621767217682176921770217712177221773217742177521776217772177821779217802178121782217832178421785217862178721788217892179021791217922179321794217952179621797217982179921800218012180221803218042180521806218072180821809218102181121812218132181421815218162181721818218192182021821218222182321824218252182621827218282182921830218312183221833218342183521836218372183821839218402184121842218432184421845218462184721848218492185021851218522185321854218552185621857218582185921860218612186221863218642186521866218672186821869218702187121872218732187421875218762187721878218792188021881218822188321884218852188621887218882188921890218912189221893218942189521896218972189821899219002190121902219032190421905219062190721908219092191021911219122191321914219152191621917219182191921920219212192221923219242192521926219272192821929219302193121932219332193421935219362193721938219392194021941219422194321944219452194621947219482194921950219512195221953219542195521956219572195821959219602196121962219632196421965219662196721968219692197021971219722197321974219752197621977219782197921980219812198221983219842198521986219872198821989219902199121992219932199421995219962199721998219992200022001220022200322004220052200622007220082200922010220112201222013220142201522016220172201822019220202202122022220232202422025220262202722028220292203022031220322203322034220352203622037220382203922040220412204222043220442204522046220472204822049220502205122052220532205422055220562205722058220592206022061220622206322064220652206622067220682206922070220712207222073220742207522076220772207822079220802208122082220832208422085220862208722088220892209022091220922209322094220952209622097220982209922100221012210222103221042210522106221072210822109221102211122112221132211422115221162211722118221192212022121221222212322124221252212622127221282212922130221312213222133221342213522136221372213822139221402214122142221432214422145221462214722148
  1. (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
  2. 'use strict';window.ZstdCodec=require('./lib/zstd-codec.js');window.ZstdStream=require('./lib/zstd-stream.js');
  3. },{"./lib/zstd-codec.js":7,"./lib/zstd-stream.js":8}],2:[function(require,module,exports){
  4. "use strict";exports.DEFAULT_COMPRESSION_LEVEL=3;exports.STREAMING_DEFAULT_BUFFER_SIZE=512*1024;
  5. },{}],3:[function(require,module,exports){
  6. (function (Buffer){
  7. 'use strict';var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj;}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var ArrayBufferHelper=function(){function ArrayBufferHelper(){_classCallCheck(this,ArrayBufferHelper);}_createClass(ArrayBufferHelper,null,[{key:'transfer',value:function transfer(old_buffer,new_capacity){var bytes=new Uint8Array(new ArrayBuffer(new_capacity));bytes.set(new Uint8Array(old_buffer.slice(0,new_capacity)));return bytes.buffer;}}]);return ArrayBufferHelper;}();var getClassName=function getClassName(obj){if(!obj||(typeof obj==='undefined'?'undefined':_typeof(obj))!='object')return null;// Object.prototype.toString returns '[object ClassName]',
  8. // remove prefix '[object ' and suffix ']'
  9. return Object.prototype.toString.call(obj).slice('[object '.length,-1);};var isUint8Array=function isUint8Array(obj){return getClassName(obj)=='Uint8Array';};var isString=function isString(obj){return typeof obj=='string'||getClassName(obj)=='String';};var toTypedArray=function toTypedArray(chunk,encoding,string_decoder){if(isString(chunk)){chunk=string_decoder(encoding);}if(isUint8Array(chunk)){// NOTE: Buffer is recognized as Uint8Array object.
  10. return chunk;}else if(getClassName(chunk)=='ArrayBuffer'){return new Uint8Array(chunk);}else if(Array.isArray(chunk)){return new Uint8Array(chunk);}return null;};// NOTE: only available on Node.js environment
  11. var fromTypedArrayToBuffer=function fromTypedArrayToBuffer(typedArray){return Buffer.from(typedArray.buffer);};exports.ArrayBufferHelper=ArrayBufferHelper;exports.getClassName=getClassName;exports.isUint8Array=isUint8Array;exports.isString=isString;exports.toTypedArray=toTypedArray;exports.fromTypedArrayToBuffer=fromTypedArrayToBuffer;
  12. }).call(this,require("buffer").Buffer)
  13. },{"buffer":54}],4:[function(require,module,exports){
  14. "use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj;}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};// REF: https://stackoverflow.com/a/47880734
  15. var wasmSupported=function(){try{if((typeof WebAssembly==="undefined"?"undefined":_typeof(WebAssembly))==="object"&&typeof WebAssembly.instantiate==="function"){var module=new WebAssembly.Module(Uint8Array.of(0x0,0x61,0x73,0x6d,0x01,0x00,0x00,0x00));if(module instanceof WebAssembly.Module)return new WebAssembly.Instance(module)instanceof WebAssembly.Instance;}}catch(e){}return false;}();exports.run=function(f){var Module={};Module.onRuntimeInitialized=function(){f(Module);};if(wasmSupported){require('./zstd-codec-binding-wasm.js')(Module);}else{require('./zstd-codec-binding.js')(Module);}};
  16. },{"./zstd-codec-binding-wasm.js":5,"./zstd-codec-binding.js":6}],5:[function(require,module,exports){
  17. (function (process,Buffer,__dirname){
  18. 'use strict';var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj;}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};var Module=function(){var _scriptDir=typeof document!=='undefined'&&document.currentScript?document.currentScript.src:undefined;return function(Module){Module=Module||{};var Module;if(!Module)Module=typeof Module!=='undefined'?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key];}}Module["arguments"]=[];Module["thisProgram"]="./this.program";Module["quit"]=function(status,toThrow){throw toThrow;};Module["preRun"]=[];Module["postRun"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=(typeof window==='undefined'?'undefined':_typeof(window))==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=(typeof process==='undefined'?'undefined':_typeof(process))==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory);}else{return scriptDirectory+path;}}if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname+"/";var nodeFS;var nodePath;Module["read"]=function shell_read(filename,binary){var ret;ret=tryParseAsDataURI(filename);if(!ret){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);ret=nodeFS["readFileSync"](filename);}return binary?ret:ret.toString();};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret);}assert(ret.buffer);return ret;};if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/");}Module["arguments"]=process["argv"].slice(2);process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex;}});process["on"]("unhandledRejection",function(reason,p){process["exit"](1);});Module["quit"]=function(status){process["exit"](status);};Module["inspect"]=function(){return"[Emscripten Module object]";};}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){Module["read"]=function shell_read(f){var data=tryParseAsDataURI(f);if(data){return intArrayToString(data);}return read(f);};}Module["readBinary"]=function readBinary(f){var data;data=tryParseAsDataURI(f);if(data){return data;}if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f));}data=read(f,"binary");assert((typeof data==='undefined'?'undefined':_typeof(data))==="object");return data;};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs;}else if(typeof arguments!="undefined"){Module["arguments"]=arguments;}if(typeof quit==="function"){Module["quit"]=function(status){quit(status);};}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WEB){if(document.currentScript){scriptDirectory=document.currentScript.src;}}else{scriptDirectory=self.location.href;}if(_scriptDir){scriptDirectory=_scriptDir;}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.split("/").slice(0,-1).join("/")+"/";}else{scriptDirectory="";}Module["read"]=function shell_read(url){try{var xhr=new XMLHttpRequest();xhr.open("GET",url,false);xhr.send(null);return xhr.responseText;}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data);}throw err;}};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function readBinary(url){try{var xhr=new XMLHttpRequest();xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response);}catch(err){var data=tryParseAsDataURI(url);if(data){return data;}throw err;}};}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest();xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return;}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return;}onerror();};xhr.onerror=onerror;xhr.send(null);};Module["setWindowTitle"]=function(title){document.title=title;};}else{}var out=Module["print"]||(typeof console!=="undefined"?console.log.bind(console):typeof print!=="undefined"?print:null);var err=Module["printErr"]||(typeof printErr!=="undefined"?printErr:typeof console!=="undefined"&&console.warn.bind(console)||out);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key];}}moduleOverrides=undefined;var STACK_ALIGN=16;function staticAlloc(size){var ret=STATICTOP;STATICTOP=STATICTOP+size+15&-16;return ret;}function dynamicAlloc(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;if(end>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){HEAP32[DYNAMICTOP_PTR>>2]=ret;return 0;}}return ret;}function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;var ret=size=Math.ceil(size/factor)*factor;return ret;}function getNativeTypeSize(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return 4;}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8;}else{return 0;}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text);}}var asm2wasmImports={"f64-rem":function f64Rem(x,y){return x%y;},"debugger":function _debugger(){debugger;}};var jsCallStartIndex=1;var functionPointers=new Array(0);var funcWrappers={};function dynCall(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args));}else{return Module["dynCall_"+sig].call(null,ptr);}}var GLOBAL_BASE=1024;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text);}}function getCFunc(ident){var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func;}var JSfuncs={"stackSave":function stackSave(){_stackSave();},"stackRestore":function stackRestore(){_stackRestore();},"arrayToC":function arrayToC(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret;},"stringToC":function stringToC(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len);}return ret;}};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};function ccall(ident,returnType,argTypes,args,opts){function convertReturnValue(ret){if(returnType==="string")return Pointer_stringify(ret);if(returnType==="boolean")return Boolean(ret);return ret;}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=_stackSave();cArgs[i]=converter(args[i]);}else{cArgs[i]=args[i];}}}var ret=func.apply(null,cArgs);ret=convertReturnValue(ret);if(stack!==0)_stackRestore(stack);return ret;}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type);}}var ALLOC_STATIC=2;var ALLOC_NONE=4;function Pointer_stringify(ptr,length){if(length===0||!ptr)return"";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break;}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK;}return ret;}return UTF8ToString(ptr);}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr]){++endPtr;}if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr));}else{var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue;}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue;}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2;}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3;}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4;}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5;}}}if(u0<65536){str+=String.fromCharCode(u0);}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023);}}}}function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr);}function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023;}if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u;}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63;}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63;}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63;}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63;}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63;}}outU8Array[outIdx]=0;return outIdx-startIdx;}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len;}else if(u<=2047){len+=2;}else if(u<=65535){len+=3;}else if(u<=2097151){len+=4;}else if(u<=67108863){len+=5;}else{len+=6;}}return len;}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function demangle(func){var __cxa_demangle_func=Module["___cxa_demangle"]||Module["__cxa_demangle"];assert(__cxa_demangle_func);try{var s=func.substr(1);var len=lengthBytesUTF8(s)+1;var buf=_malloc(len);stringToUTF8(s,buf,len);var status=_malloc(4);var ret=__cxa_demangle_func(buf,0,0,status);if(HEAP32[status>>2]===0&&ret){return Pointer_stringify(ret);}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret);}return func;}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]";});}function jsStackTrace(){var err=new Error();if(!err.stack){try{throw new Error(0);}catch(e){err=e;}if(!err.stack){return"(no stack trace available)";}}return err.stack.toString();}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js);}var WASM_PAGE_SIZE=65536;var ASMJS_PAGE_SIZE=16777216;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple;}return x;}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBuffer(buf){Module["buffer"]=buffer=buf;}function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer);}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ");}function enlargeMemory(){abortOnCannotGrowMemory();}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;if(TOTAL_MEMORY<TOTAL_STACK)err("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+TOTAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")");if(Module["buffer"]){buffer=Module["buffer"];}else{if((typeof WebAssembly==='undefined'?'undefined':_typeof(WebAssembly))==="object"&&typeof WebAssembly.Memory==="function"){Module["wasmMemory"]=new WebAssembly.Memory({"initial":TOTAL_MEMORY/WASM_PAGE_SIZE,"maximum":TOTAL_MEMORY/WASM_PAGE_SIZE});buffer=Module["wasmMemory"].buffer;}else{buffer=new ArrayBuffer(TOTAL_MEMORY);}Module["buffer"]=buffer;}updateGlobalBufferViews();function getTotalMemory(){return TOTAL_MEMORY;}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue;}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func);}else{Module["dynCall_vi"](func,callback.arg);}}else{func(callback.arg===undefined?null:callback.arg);}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift());}}callRuntimeCallbacks(__ATPRERUN__);}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__);}function preMain(){callRuntimeCallbacks(__ATMAIN__);}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true;}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift());}}callRuntimeCallbacks(__ATPOSTRUN__);}function addOnPreRun(cb){__ATPRERUN__.unshift(cb);}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb);}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer);}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i);}if(!dontAddNull)HEAP8[buffer>>0]=0;}var Math_abs=Math.abs;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_min=Math.min;var Math_clz32=Math.clz32;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id;}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies);}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies);}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null;}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback();}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0;}function integrateWasmJS(){var wasmTextFile="";var wasmBinaryFile="data:application/octet-stream;base64,AGFzbQEAAAABxQMzYAF/AGAAAX9gAn9/AGADf39/AGABfwF/YAN/f38Bf2AAAGACf38Bf2AEf39/fwF/YAV/f39/fwF/YAZ/f39/f38Bf2AEf39/fwBgBn9/f39/fwBgBX9/f39/AGANf39/f39/f39/f39/fwBgCH9/f39/f39/AGADf39/AXxgB39/f39/f38Bf2ABfwF+YAF+AX5gAn5+AX5gAn9+AX9gAn9+AGANf39/f39/f39/f39/fwF/YAh/f39/f39/fwF/YAx/f39/f39/f39/f38Bf2AEf39+fwBgAn5/AX9gBX9/fn9/AX9gBn9/f39/fgF/YAN/f34Bf2AFf39/f34Bf2ALf39/f39/f39/f38Bf2AHf39/f39/fwBgBX9/f35/AX9gCX9/f39/f39/fwF/YAp/f39/f39/f39/AX9gEH9/f39/f39/f39/f39/f38Bf2AEfn9/fgF+YAJ/fwF+YAN+f38Bf2AFf35/f38AYAd/fn9/f39/AX5gCH9/f39/f35/AX9gBn9/f39+fwF/YAR/f39+AX9gB39/f39/f34Bf2AJf39/f39/f39/AGACfn4Bf2AGf3x/f39/AX9gAnx/AXwC9Ak0A2VudgZtZW1vcnkCAYACgAIDZW52BXRhYmxlAXABnAOcAwNlbnYJdGFibGVCYXNlA38AA2Vudg5EWU5BTUlDVE9QX1BUUgN/AANlbnYIU1RBQ0tUT1ADfwADZW52CVNUQUNLX01BWAN/AANlbnYFYWJvcnQAAANlbnYNZW5sYXJnZU1lbW9yeQABA2Vudg5nZXRUb3RhbE1lbW9yeQABA2VudhdhYm9ydE9uQ2Fubm90R3Jvd01lbW9yeQABA2VudhlfX19jeGFfYWxsb2NhdGVfZXhjZXB0aW9uAAQDZW52DF9fX2N4YV90aHJvdwADA2VudgdfX19sb2NrAAADZW52C19fX3NldEVyck5vAAADZW52DV9fX3N5c2NhbGwxNDAABwNlbnYNX19fc3lzY2FsbDE0NQAHA2Vudg1fX19zeXNjYWxsMTQ2AAcDZW52DV9fX3N5c2NhbGwyMjEABwNlbnYLX19fc3lzY2FsbDUABwNlbnYMX19fc3lzY2FsbDU0AAcDZW52C19fX3N5c2NhbGw2AAcDZW52CV9fX3VubG9jawAAA2VudhZfX2VtYmluZF9yZWdpc3Rlcl9ib29sAA0DZW52F19fZW1iaW5kX3JlZ2lzdGVyX2NsYXNzAA4DZW52I19fZW1iaW5kX3JlZ2lzdGVyX2NsYXNzX2NvbnN0cnVjdG9yAAwDZW52IF9fZW1iaW5kX3JlZ2lzdGVyX2NsYXNzX2Z1bmN0aW9uAA8DZW52F19fZW1iaW5kX3JlZ2lzdGVyX2VtdmFsAAIDZW52F19fZW1iaW5kX3JlZ2lzdGVyX2Zsb2F0AAMDZW52Gl9fZW1iaW5kX3JlZ2lzdGVyX2Z1bmN0aW9uAAwDZW52GV9fZW1iaW5kX3JlZ2lzdGVyX2ludGVnZXIADQNlbnYdX19lbWJpbmRfcmVnaXN0ZXJfbWVtb3J5X3ZpZXcAAwNlbnYcX19lbWJpbmRfcmVnaXN0ZXJfc3RkX3N0cmluZwACA2Vudh1fX2VtYmluZF9yZWdpc3Rlcl9zdGRfd3N0cmluZwADA2VudhZfX2VtYmluZF9yZWdpc3Rlcl92b2lkAAIDZW52Cl9fZW12YWxfYXMAEANlbnYMX19lbXZhbF9jYWxsAAgDZW52GF9fZW12YWxfY2FsbF92b2lkX21ldGhvZAALA2Vudg5fX2VtdmFsX2RlY3JlZgAAA2VudhlfX2VtdmFsX2dldF9tZXRob2RfY2FsbGVyAAcDZW52G19fZW12YWxfZ2V0X21vZHVsZV9wcm9wZXJ0eQAEA2VudhRfX2VtdmFsX2dldF9wcm9wZXJ0eQAHA2Vudg5fX2VtdmFsX2luY3JlZgAAA2VudgtfX2VtdmFsX25ldwAIA2VudhNfX2VtdmFsX25ld19jc3RyaW5nAAQDZW52F19fZW12YWxfcnVuX2Rlc3RydWN0b3JzAAADZW52El9fZW12YWxfdGFrZV92YWx1ZQAHA2VudgZfYWJvcnQABgNlbnYWX2Vtc2NyaXB0ZW5fbWVtY3B5X2JpZwAFA2VudhRfcHRocmVhZF9nZXRzcGVjaWZpYwAEA2VudhNfcHRocmVhZF9rZXlfY3JlYXRlAAcDZW52DV9wdGhyZWFkX29uY2UABwNlbnYUX3B0aHJlYWRfc2V0c3BlY2lmaWMABwPmB+QHBAEAAgIAAQYCAgQCBwIEBwcFBwcEBwUHBwAAAwMABAIAAgcEBAIHBAQCBwQEAgcEBAIHBAQCBwQCAwMFAwQAAQQDCwcFCAADBwQAAAUEBwQAAQUJCAQAAQgFBAEGBwcIBQgABAICBwQIAAQCBwQDAAQCBwQCAAQCBwQAAAcHAgQCBwcEBwQCBwcEBQcHAAQHBAIHBwQHBAIHBwQFBwcEBAkEBAQRCgQICQUDBAcHBwcCBwcEEhITBBIUFBUFBRIHBwIKBwkKCAkKCQgHBQkJBwkKBQMDAAACBAMDAgIWFgICBAUICQgKAwUKCQoCAhcYBQUZGQQBBAAEBBoaBwUKBwoACREICgUFAwMFCwoFBQkEBwcHBwcbGxsbBwgAAAAEBxwdHgISBRQHBx8CAAQEGSAHCgoKCgoKCgoKCgoKCgoKCgMHBwgLBQgFDQ0AAwIFBwgHBwcJCQoNESERGAkJCgkRIgoJAwAYCQMjGAQkCSUICAcIAwsJJicoGwUbCCkqCwsCBQIDAyssAxoJBRgYCgkFAi0RCgEEBC4dLQceBwgIBQcJAgoJBAoJBBgJDy8KCQoJGAcKGAoYAAQBBAQHBAQEBAQEBAcHBQQFCCcnBQUFBAcEEgQHBwcFBAcHBwcFBQcEBQggAwwCCgQREREDGAIRERgEBAoHBQkFCAgEBQUFCAERAREBEQUCCQUJBQkRBQMEAhgEAgQjBwgJBAkJCQkJCAgHCQkFCQUJEQgJBQkPLwICCQQFBQUEBwIFCQUJBQkRBQIYCAgJCAgFCREICQUJCQQFAwUFAgkFBQkFCSMFAwQCGAcJCAQICAkJCAgFCREPLwgJBAUJCQkEBQMFAQkRBAMFBQkFCRgFAwQCGAQJCAgICAUJCREPLwgJBQkJBQkIBAQJCQkJBwcKAQQECQUFBAcEMAUICQQIBAUBBQEFAQUEBQQBCQkJCQQJBAkECQkECQIGAAQEAAcHBwIEBQUEAQUFBQcEBAUHBQcHCAgFCQMEAygbGw0HMTIFBwUEBQcHBwQHBAEEBAAEBwQEBAQGAQIFDA0LBQsLDQgMDQsGAAUFBQwNCwsMDQgCAgILAAAEBQAAAwMEBQIPAwAFBQUFBQIFBwICBQUDAgUFAwUFBQIFAwICAgIFBQUFBwMFAAMLBQUICAUFBQUFBQUFBQUFBQUFBQUFBQUFAgUCAwUFBQUFBQUFBQICAgACAgIDAggFAwwCAgUAAAsCAAcHCAIFBQUCBQUFBwIAAgIFCwIAAAIIAAAAAAIAAgACBQAHBAUEBgQFBQUFBAcFCAkKEQIDCw0MIQEEBwUICQoGAAIDCw0MBh8GfwEjAQt/ASMCC38BIwMLfwFBAAt/AUEAC38BQQALB94EJRhfX0dMT0JBTF9fc3ViX0lfYmluZF9jcHAAgwYfX19HTE9CQUxfX3N1Yl9JX3pzdGRfYmluZGluZ19jYwCKARBfX19jeGFfY2FuX2NhdGNoAO8HD19fX2N4YV9kZW1hbmdsZQDZBhZfX19jeGFfaXNfcG9pbnRlcl90eXBlAPAHEV9fX2Vycm5vX2xvY2F0aW9uAJAGDl9fX2dldFR5cGVOYW1lAIUGBV9mcmVlAIcGD19sbHZtX2Jzd2FwX2kzMgDyBw5fbGx2bV9jdGx6X2k2NADzBwdfbWFsbG9jAIYGB19tZW1jcHkA9AcIX21lbW1vdmUA9QcHX21lbXNldAD2BwVfc2JyawD3BwlkeW5DYWxsX2kAbgpkeW5DYWxsX2lpAPgHC2R5bkNhbGxfaWlpAPkHDGR5bkNhbGxfaWlpaQD6Bw1keW5DYWxsX2lpaWlpAPsHDmR5bkNhbGxfaWlpaWlpAPwHD2R5bkNhbGxfaWlpaWlpaQD9BwlkeW5DYWxsX3YAdApkeW5DYWxsX3ZpAP4HC2R5bkNhbGxfdmlpAP8HDGR5bkNhbGxfdmlpaQCACA1keW5DYWxsX3ZpaWlpAIEIDmR5bkNhbGxfdmlpaWlpAIIID2R5bkNhbGxfdmlpaWlpaQCDCBNlc3RhYmxpc2hTdGFja1NwYWNlADELZ2V0VGVtcFJldDAANAtydW5Qb3N0U2V0cwDxBwtzZXRUZW1wUmV0MAAzCHNldFRocmV3ADIKc3RhY2tBbGxvYwAuDHN0YWNrUmVzdG9yZQAwCXN0YWNrU2F2ZQAvCbcFAQAjAAucA4QIf4UBiQFthAiECIQIhQhMUVJVVllaXV5hYmWRAZUBmAGbAZ4BoQGkAacBrQGxAbMBtwG+AcIBxAHIAYwGvQZ3ezx9boMBbogBbkJrbjjGA9wFhQiFCIUIhQiFCIUIhQiFCIUIhQiFCIUIhQiFCIUIhQiFCIUIhghQVFhcYGSUAZoBoAGmAa8BsAG1AbYBwAHBAcYBxwHoBHY6fIsBjAE9PkBBcUNFRnGGCIYIhgiGCIYIhgiGCIYIhgiGCIYIhgiGCIYIhgiGCIYIhgiGCIYIhgiG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ACAEJAUgAA8LIARBEWohASAEQRBqIQIgAygCACAFKAIANgIMIAMoAgAgAygCACgCDEEEajYCEAJAIAAoAgBBBE8EQCADKAIAIAUoAgAgACgCAGpBfGo2AgggAygCACgCCBDhASECIAMoAgAgAjYCACABIAUoAgAgACgCAEEBa2osAAA6AAAgAS0AAAR/QQggAS0AABDUAWsFQQALIQIgAygCACACNgIEIAEtAABFBEAgBkF/NgIAIAYoAgAhACAEJAUgAA8LBSADKAIAIAMoAgAoAgw2AgggAygCACADKAIAKAIMLQAANgIAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCAEECaw4GBQQDAgEABgsgAygCACIBIAEoAgAgBSgCAC0ABkEQdGo2AgAMBgsMBQsMBQsMBQsMBQsMBQsMBQsgAygCACIBIAEoAgAgBSgCAC0ABUEIdGo2AgALIAMoAgAiASABKAIAIAUoAgAtAARqNgIACyADKAIAIgEgASgCACAFKAIALQADQRh0ajYCAAsgAygCACIBIAEoAgAgBSgCAC0AAkEQdGo2AgALIAMoAgAiASABKAIAIAUoAgAtAAFBCHRqNgIACyACIAUoAgAgACgCAEEBa2osAAA6AAAgAi0AAAR/QQggAi0AABDUAWsFQQALIQEgAygCACABNgIEIAItAAAEQCADKAIAQQRqIgEgASgCAEEEIAAoAgBrQQN0ajYCAAwCCyAGQWw2AgAgBigCACEAIAQkBSAADwsLIAYgACgCADYCACAGKAIAIQAgBCQFIAALhQEBAn8jBSEDIwVBIGokBSADQRBqIgQgADYCACADQQxqIgAgATYCACADQQhqIgEgAjYCACADQQRqIgIgASgCADYCACADIAIoAgA2AgAgACgCACADKAIALwEAENwBIQIgBCgCACACNgIAIAAoAgAQ2QEaIAQoAgAgASgCAEEEajYCBCADJAULvQMBBn8jBSEDIwVBEGokBSADQQxqIQIgA0EIaiIBIAA2AgAgASgCACgCBEEgSwRAIAJBAzYCACACKAIAIQAgAyQFIAAPCyABKAIAIQUgASgCACgCCCABKAIAKAIQTwRAIAEoAgBBCGoiACAAKAIAIAUoAgRBA3ZrNgIAIAEoAgBBBGoiACAAKAIAQQdxNgIAIAEoAgAoAggQ4QEhACAB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AzAgAkIANwM4IAJBQGtCADcDACACQgA3A0ggAiAAKQMAQoeVr6+Ytt6bnn98Qs/W077Sx6vZQnw3AwggAiAAKQMAQs/W077Sx6vZQnw3AxAgAiAAKQMAQgB8NwMYIAIgACkDAEKHla+vmLbem55/fTcDICADKAIAIgAgAikDADcDACAAIAIpAwg3AwggACACKQMQNwMQIAAgAikDGDcDGCAAIAIpAyA3AyAgACACKQMoNwMoIAAgAikDMDcDMCAAIAIpAzg3AzggAEFAayACQUBrKQMANwMAIAAgAikDSDcDSCAAIAIpA1A3A1AgAiQFQQALSQECfyMFIQMjBUEQaiQFIANBCGoiBCAANgIAIANBBGoiACABNgIAIAMgAjYCACAEKAIAIgEgACgCACADKAIAEPQHGiADJAUgAQvcJQJ8fwJ+IwUhAyMFQeAEaiQFIANBuAFqIRogA0HQBGohLCADQcwEaiEtIANByARqIS4gA0HEBGohLyADQcAEaiEwIANBsAFqIRsgA0G8BGohMSADQbgEaiEyIANBtARqITMgA0GwBGohNCADQawEaiE1IANBqAFqIRwgA0GoBGohNiADQaQEaiE3IANBoARqITggA0GcBGohOSADQZgEaiE6IANBoAFqIR0gA0GUBGohOyADQZAEaiE8IANBjARqIT0gA0GIBGohPiADQYQEaiE/IANBmAFqIR4gA0GABGohQCADQfwDaiFBIANB+ANqIUIgA0H0A2ohQyADQfADaiFEIANBkAFqIR8gA0HsA2ohRSADQegDaiFGIANB5ANqIUcgA0HgA2ohSCADQdwDaiFJIANBiAFqISAgA0HYA2ohSiADQdQDaiFLIANB0ANqIUwgA0HMA2ohTSADQcgDaiFOIANBgAFqISEgA0HEA2ohTyADQcADaiFQIANBvANqIVEgA0G4A2ohUiADQbQDaiFTIANBsANqISIgA0GsA2ohBCADQagDaiEOIANBpANqIQogA0GgA2ohCCADQZwDaiEGIANBmANqIQsgA0GUA2ohVCADQfgAaiEPIANB8ABqIRAgA0HoAGohESADQeAAaiESIANB2ABqISMgA0GQA2ohVSADQYwDaiFWIANBiANqIVcgA0GEA2ohWCADQYADaiFZIANB0ABqISQgA0H8AmohWiADQfgCaiFbIANB9AJqIVwgA0HwAmohXSADQewCaiFeIANByABqISUgA0HoAmohXyADQeQCaiFgIANB4AJqIWEgA0HcAmohYiADQdgCaiFjIANBQGshJiADQdQCaiFkIANB0AJqIWUgA0HMAmohZiADQcgCaiFnIANBxAJqIWggA0E4aiEnIANBwAJqIWkgA0G8AmohaiADQbgCaiFrIANBtAJqIWwgA0GwAmohbSADQTBqISggA0GsAmohbiADQagCaiFvIANBpAJqIXAgA0GgAmohcSADQZwCaiFyIANBKGohKSADQZgCaiFzIANBlAJqIXQgA0GQAmohdSADQYwCaiF2IANBiAJqIXcgA0EgaiEqIANBhAJqIXggA0GAAmoheSADQfwBaiF6IANB+AFqIXsgA0H0AWohfCADQfABaiErIANB7AFqIQUgA0HoAWohEyADQeQBaiEMIANB4AFqIQkgA0HcAWohByADQdgBaiENIANB1AFqIX0gA0EYaiEUIANBEGohFSADQQhqIRYgAyEXIANB0AFqIRggA0HMAWoiGSAANgIAIANByAFqIn4gATYCACADQcQBaiIBIAI2AgAgA0HAAWoiAEGA5QAsAAA2AgAgGSgCACEZIH4oAgAhAiABKAIAIQEgACgCAEEBRgR/IAUgGTYCACATIAI2AgAgDCABNgIAIAlBATYCACAHIBMoAgA2AgAgDSAHKAIAIAwoAgBqNgIAIAUoAgAiACAAKQMAIAwoAgCtfDcDACAFKAIAIQAgBSgCACgCSCAMKAIAakEgSQRAIABBKGogBSgCACgCSGogEygCACAMKAIAEOoBGiAFKAIAQcgAaiIAIAAoAgAgDCgCAGo2AgAgK0EANgIABSAAKAJIBEAgBSgCAEEoaiAFKAIAKAJIaiATKAIAQSAgBSgCACgCSGsQ6gEaIAUoAgApAwghgAEgCSgCACEAIHsgBSgCAEEoajYCACB8IAA2AgAgfCgCACEAIHggeygCADYCACB5IAA2AgAgekEBNgIAIHkoAgBBAUYhASB4KAIAIQAgeigCAEEBRgRAIAAQ5gEhfyABRQRAIH8Q5AEhfwsgKiB/NwMABSAAKQMAIX8gAUUEQCB/EOQBIX8LICogfzcDAAsggAEgKikDABDnASF/IAUoAgAgfzcDCCAFKAIAKQMQIYABIAkoAgAhACB2IAUoAgBBMGo2AgAgdyAANgIA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AgAgGyAANgIAIBxBATYCACAbKAIAQQFGIQQgGigCACEAIBwoAgBBAUYEQCAAEOUBIQAgBEUEQCAAENEBIQALIBQgADYCAAUgACgCACEAIARFBEAgABDRASEACyAUIAA2AgALIAIgAikDACAUKAIArUKHla+vmLbem55/foU3AwAgAiACKQMAQheGIAIpAwBCKYiEQs/W077Sx6vZQn5C+fPd8Zn2masWfDcDACAFIAUoAgBBBGo2AgALA0AgBSgCACAJKAIASQRAIAIgAikDACAFKAIALQAArULFz9my8eW66id+hTcDACACIAIpAwBCC4YgAikDAEI1iIRCh5Wvr5i23puef343AwAgBSAFKAIAQQFqNgIADAELCyACIAIpAwAgAikDAEIhiIU3AwAgAiACKQMAQs/W077Sx6vZQn43AwAgAiACKQMAIAIpAwBCHYiFNwMAIAIgAikDAEL5893xmfaZqxZ+NwMAIAIgAikDACACKQMAQiCIhTcDACATIAIpAwA3AwAgEykDACEwIAEkBSAwCwttAQN/IwUhAiMFQRBqJAUgAkEEaiEDIAIiBCAANgIAIAEoAgAEfyADIAEoAgggBCgCACABKAIAQT9xQcgAahEHADYCACADKAIAIQAgAiQFIAAFIAMgBCgCABCGBjYCACADKAIAIQAgAiQFIAALC5ABAQR/IwUhAiMFQRBqJAUgAkEIaiEDIAIhBCACQQRqIgUgADYCACABKAIABH8gBCABKAIIIAUoAgAgASgCAEE/cUHIAGoRBwA2AgAgBCgCAEEAIAUoAgAQ9gcaIAMgBCgCADYCACADKAIAIQAgAiQFIAAFIANBASAFKAIAEIgGNgIAIAMoAgAhACACJAUgAAsLWAECfyMFIQIjBUEQaiQFIAIiAyAANgIAIAIoAgBFBEAgAiQFDwsgASgCBARAIAEoAgggAygCACABKAIEQR9xQeQCahECACACJAUFIAMoAgAQhwYgAiQFCwvLCgEOfyMFIQYjBUHwCGokBSAGQeQIaiEKIAZBtAhqIQ0gBkGwCGohCyAGQawIaiERIAZBqAhqIQggBkHgCGoiDiAANgIAIAZB3AhqIgcgATYCACAGQdgIaiIPIAI2AgAgBkHUCGoiCSADNgIAIAZB0AhqIgEgBDYCACAGQcwIaiIDIAU2AgAgBkHICGoiAkEBIAko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AgAoAhBLBEAgASgCACABKAIAKAIQNgIMCyABKAIAQQRqIgMgAygCAEEHcTYCACABKAIAIgEgASgCACAAKAIAQQN0djYCACACJAULRgECfyMFIQIjBUEQaiQFIAJBBGoiAyAANgIAIAIgATYCACADKAIAIAIoAgAoAgAgAigCACgCDBCIAiADKAIAEIQCIAIkBQuLAQEDfyMFIQIjBUEQaiQFIAJBBGohAyACIgEgADYCACABKAIAQQFBARCHAiABKAIAEIQCIAEoAgAoAgwgASgCACgCEE8EfyADQQA2AgAgAygCACEAIAIkBSAABSADIAEoAgAoAgwgASgCACgCCGsgASgCACgCBEEAS2o2AgAgAygCACEAIAIkBSAACwtoAQJ/IwUhAyMFQRBqJAUgA0EIaiIEIAA2AgAgA0EEaiIAIAE2AgAgAyACNgIAIAQoAgAiASABKAIAIAAoAgAgBCgCACgCBHRyNgIAIAQoAgBBBGoiACAAKAIAIAMoAgBqNgIAIAMkBQt4AQJ/IwUhAyMFQRBqJAUgA0EIaiIEIAA2AgAgA0EEaiIAIAE2AgAgAyACNgIAIAQoAgAiASABKAIAIAAoAgAgAygCAEECdEHgHWooAgBxIAQoAgAoAgR0cjYCACAEKAIAQQRqIgAgACgCACADKAIAajYCACADJAULNwECfyMFIQIjBUEQaiQFIAJBBGoiAyAANgIAIAIgATYCACADKAIAIgMgAigCACIBEIoCIAIkBQtUAQJ/IwUhAiMFQRBqJAUgAkEEaiIDIAA2AgAgAiABNgIAIAMoAgAhAyACKAIAIQFBkOUALQAABEAgAyABEI0CIAIkBQUgAyABENEBEI0CIAIkBQsLVAECfyMFIQIjBUEQaiQFIAJBCGoiAyAANgIAIAIgATcDACADKAIAIQMgAikDACEBQZDlAC0AAARAIAMgARCMAiACJAUFIAMgARDkARCMAiACJAULCzMBAn8jBSECIwVBEGokBSACQQhqIgMgADYCACACIAE3AwAgAygCACACKQMANwAAIAIkBQszAQJ/IwUhAiMFQRBqJAUgAkEEaiIDIAA2AgAgAiABNgIAIAMoAgAgAigCADYAACACJAULuAEBBH8jBSECIwVBIGokBSACQRBqIgMgADYCACACQQxqIgQgATYCACACQQhqIgEgBCgCADYCACACQQRqIgUgASgCADYCACACIgAgASgCABCPAkH//wNxNgIAIAMoAgBBASACKAIAdDYCACADKAIAIAUoAgBBBGo2AgQgAygCACAEKAIAIgRBBGogAigCAAR/QQEgACgCAEEBa3QFQQELIgFBAnRqNgIIIAMoAgAgACgCADYCDCACJAULJgEBfyMFIQEjBUEQaiQFIAEgADYCACABKAIALgAAIQAgASQFIAALSgECfyMFIQMjBUEQaiQFIANBCGoiBCAANgIAIANBBGoiACABNgIAIAMgAjYCACAEKAIAIAAoAgAgAygCAEEBEPgBIQAgAyQFIAAL+gUBCX8jBSEEIwVB0ANqJAUgBEHEA2ohBSAEQcADaiIHIAA2AgAgBEG8A2oiACABNgIAIARBuANqIgogAjYCACAEQbQDaiICIAM2AgAgBEGwA2oiCSAHKAIANgIAIARBrANqIgEgCSgCADYCACAEQagDaiILIAkoAgAgACgCAGo2AgAgBEGkA2oiA0EMNgIAIARBoANqIgdBBjYCACACKAIAQQFNBEAgBUEANgIAIAUoAgAhACAEJAUgAA8LIARBnANqIgAgBEEgaiIIIAMgCigCACACKAIAEPQBNgIAIAAoAgAQzQFBAEchDCAAKAIAIQYgDARAIAUgBjYCACAFKAIAIQAgBCQFIAAPCyAGIAIoAgBGBEAgBUEBNgIAIAUoAgAhACAEJAUgAA8LIAAoAgBBAUYEQCAFQQA2AgAgBSgCACEAIAQkBSAADwsgByAHKAIAIAIoAgAgAygCABD6ATYCACAEQZgDaiIGIAQiACAHKAIAIAggAigCACADKAIAEPsBNgIAIAYoAgAQzQEEQCAFIAYoAgA2AgAgBSgCACEAIAQkBSAADwsgBEGUA2oiBiABKAIAIAsoAgAgASgCAGsgACADKAIAIAcoAgAQ8gE2AgAgBigCABDNAUEARyEIIAYoAgAhBiAIBEAgBSAGNgIAIAUoAgAhACAEJAUgAA8LIAEgASgCACAGajYCACAEQZADaiIGIARBoAFqIgggACADKAIAIAcoAgAgBEHgAGpBwAAQ8AE2AgAgBigCABDNAQRAIAUgBigCADYCACAFKAIAIQAgBCQFIAAPCyAEQYwDaiIAIAEoAgAgCygCACABKAIAayAKKAIAIAIoAgAgCBD+ATYCACAAKAIAEM0BQQBHIQMgACgCACECIAMEQCAFIAI2AgAgBSgCACEAIAQkBSAADwsgAgR/IAEgASgCACAAKAIAajYCACAFIAEoAgAgCSgCAGs2AgAgBSgCACEAIAQkBSAABSAFQQA2AgAgBSgCACEAIAQkBSAACwulBQEGfyMFIQUjBUHAAmokBSAFQaACaiEGIAVBnAJqIgcgADYCACAFQZgCaiIJIAE2AgAgBUGUAmoiCiACNgIAIAVBkAJqIgIgAzYCACAFQYwCaiIIIAQ2AgAgBUGIAmoiBCAHKAIANgIAIAIoAgBB/wFLBEAgBkFSNgIAIAYoAgAhACAFJAUgAA8LIAUhACAFQYACaiEDIAVBpAJqIgdBADoAACAFQYQCaiIBQQE2AgADQCABKAIAIAgoAgBBAWpJBEAgByABKAIAaiAIKAIAQQFqIAEoAgBrOgAAIAEgASgCAEEBajYCAAwBCwsgAUEANgIAA0AgASgCACACKAIASQRAIAAgASgCAGogByAKKAIAIAEoAgBBAnRqLQACaiwAADoAACABIAEoAgBBAWo2AgAMAQsLIAMgBCgCAEEBaiAJKAIAQQFrIAAgAigCABCRAjYCACADKAIAEM0BQQBHIQcgAygCACEIIAcEQCAGIAg2AgAgBigCACEAIAUkBSAADwsgCEEBSyADKAIAIAIoAgBBAm5JcQRAIAQoAgAgAygCADoAACAGIAMoAgBBAWo2AgAgBigCACEAIAUkBSAADwsgAigCAEGAAUsEQCAGQX82AgAgBigCACEAIAUkBSAADwsgAigCAEEBakECbkEBaiAJKAIASwRAIAZBun82AgAgBigCACEAIAUkBSAADwsgBCgCACACKAIAQf8AajoAACAAIAIoAgBqQQA6AAAgAUEANgIAA0AgASgCACACKAIASQRAIAQoAgAgASgCAEECbkEBamogACABKAIAai0AAEEEdCAAIAEoAgBBAWpqLQAAajoAACABIAEoAgBBAmo2AgAMAQsLIAYgAigCAEEBakECbkEBajYCACAGKAIAIQAgBSQFIAALmAcBEH8jBSEEIwVB0ANqJAUgBEG8A2ohBSAEQbgDaiIMIAA2AgAgBEG0A2oiDyABNgIAIARBsANqIgAgAjYCACAEQawDaiIGIAM2AgAgBEGoA2oiAUEANgIAIARBpANqIgJBADYCACAEQaADaiINIARB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akEAQfwHIAMoAgBBAnRrEPYHGiANQQhqIgggBygCACARKAIAIAEoAgBBgAhqIAMoAgAgACgCABCSAjYCACAIKAIAEM0BBEAgDiAIKAIANgIAIA4oAgAhACANJAUgAA8LIA1BBGohCyANIQACQCAEKAIABEAgBCgCACgCAARAIAsgBSgCACABKAIAIAMoAgAQnwI2AgAgACABKAIAQYAIaiABKAIAIAMoAgAQnwI2AgAgCygCACAIKAIAIAAoAgBqSwRAIAgoAgBBDGogAigCAEkNAwsgDiAGKAIAIAcoAgAgCigCACAPKAIAIAIoAgAgECgCACAFKAIAIAkoAgAQnQI2AgAgDigCACEAIA0kBSAADwsLCyAIKAIAQQxqIAIoAgBPBEAgDkEANgIAIA4oAgAhACANJAUgAA8LIAcgBygCACAIKAIAajYCACAEKAIABEAgBCgCAEEANgIACyAFKAIABEAgBSgCACABKAIAQYAIakGACBD0BxoLIA4gBigCACAHKAIAIAooAgAgDygCACACKAIAIBAoAgAgASgCAEGACGogCSgCABCdAjYCACAOKAIAIQAgDSQFIAAL+gIBBX8jBSEIIwVBMGokBSAIQSBqIgogADYCACAIQRxqIgkgATYCACAIQRhqIgEgAjYCACAIQRRqIgsgAzYCACAIQRBqIgIgBDYCACAIQQxqIgwgBTYCACAIQQhqIgUgBjYCACAIQQRqIgYgBzYCACAJKAIAIQAgASgCACAJKAIAayEBIAsoAgAhAyACKAIAIQQgBSgCACEFIAYoAgAhBiAMKAIABH8gACABIAMgBCAFIAYQlwIFIAAgASADIAQgBSAGEJkCCyEDIAhBJGohASAIIgAgAzYCACAIKAIAEM0BQQBHIQQgCCgCACEDIAQEQCABIAM2AgAgASgCACEAIAgkBSAADwsgA0UEQCABQQA2AgAgASgCACEAIAgkBSAADwsgCSAJKAIAIAAoAgBqNgIAIAkoAgAgCigCAGsgAigCAEEBa08EfyABQQA2AgAgASgCACEAIAgkBSAABSABIAkoAgAgCigCAGs2AgAgASgCACEAIAgkBSAACwutAQEDfyMFIQMjBUEgaiQFIANBEGoiBCAANgIAIANBDGoiBSABNgIAIANBCGoiASACNgIAIANBBGoiAkEANgIAIAMiAEEANgIAA0Ag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AiQFIAALnRIBBH8jBSEGIwVBIGokBSAGQRBqIQQgBiIFQQxqIgMgADYCACAFQQhqIgAgATYCACAFQQRqIgEgAjYCAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIAQQprDsMIABYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWAQIDBAUGBwgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWERITFBUWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgoLDBYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWDg8QFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWCRYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFg0WCyABKAIAQQFLBEAgBEFYNgIADBcFIAMoAgAgASgCADYCACAEIAMoAgAoAgA2AgAMFwsACyAFIAEoAgA2AgAgBSgCAEEWSgRAIAVBFjYCAAsgBSgCAARAIAMoAgAgBSgCAEEASDYCMCADKAIAIAUoAgA2AiwLIAMoAgAoAixBAE4EQCAEIAMoAgAoAiw2AgAMFgUgBEEANgIADBYLAAsgASgCAEEASwRAIAEoAgBBCkkgASgCAEEeS3IEQCAEQVY2AgAMFgsLIAMoAgAgASgCADYCBCAEIAMoAgAoAgQ2AgAMFAsgASgCAEEASwRAIAEoAgBBBkkgASgCAEEeS3IEQCAEQVY2AgAMFQsLIAMoAgAgASgCADYCDCAEIAMoAgAoAgw2AgAMEwsgASgCAEEASwRAIAEoAgBBBkkgASgCAEEdS3IEQCAEQVY2AgAMFAsLIAMoAgAgASgCADYCCCAEIAMoAgAoAgg2AgAMEgsgASgCAEEASwRAIAEoAgBBAUkgASgCAEEdS3IEQCAEQVY2AgAMEwsLIAMoAgAgASgCADYCECAEIAEoAgA2AgAMEQsgASgCAEEASwRAIAEoAgBBA0kgASgCAEEHS3IEQCAEQVY2AgAMEgsLIAMoAgAgASgCADYCFCAEIAMoAgAoAhQ2AgAMEAsgAygCACABKAIANgIYIAQgAygCACgCGDYCAAwPCyABKAIAQQBLBEAgASgCAEEBSSABKAIAQQhLcgRAIARBVjYCAAwQCwsgAygCACABKAIANgIc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BiQFIAALC8kBAQN/IwUhAyMFQSBqJAUgA0EQaiEEIANBDGoiBSAANgIAIANBCGoiACABNgIAIANBBGoiASACNgIAIAAoAgAgASgCAEkEQCAEQWI2AgAgBCgCACEAIAMkBSAADwsgAyIAQQA2AgACQAJAA0AgACgCACABKAIASw0CIAUoAgAgACgCAEEBdGouAQBFDQEgACAAKAIAQQFqNgIADAALAAsgBEFiNgIAIAQoAgAhACADJAUgAA8LIARBADYCACAEKAIAIQAgAyQFIAALogMBBH8jBSEEIwVBIGokBSAEQQhqIQUgBEEcaiIDIAA2AgAgBEEYaiIGIAE2AgAgBEEUaiIBIAI2AgAgBEEQaiIAIAYoAgA2AgAgBEEMaiICQQE2AgAgBigCACADKAIAKAIARwRAIAUgAygCACgCACADKAIAKAIEazYCACADKAIAIAMoAgAoAgw2AhAgAygCACAFKAIANgIMIAMoAgAgAygCACgCBDYCCCADKAIAIAAoAgAgBSgCAGs2AgQgAygCACgCDCADKAIAKAIQa0EISQRAIAMoAgAgAygCACgCDDYCEAsgAkEANgIACyADKAIAIAAoAgAgASgCAGo2AgAgACgCACABKAIAaiADKAIAKAIIIAMoAgAoAhBqSyAAKAIAIAMoAgAoAgggAygCACgCDGpJcUUEQCACKAIAIQAgBCQFIAAPCyAEQQRqIgUgACgCACABKAIAaiADKAIAKAIIazYCACAEIAUoAgAgAygCACgCDEoEfyADKAIAKAIMBSAFKAIACyIANgIAIAMoAgAgBCgCADYCECACKAIAIQAgBCQFIAAL9wIBCX8jBSEDIwVBQGskBSADQQhqIQkgA0EEaiEEIAMhByADQTBqIgggADYCACADQSxqIgAgATYCACADQShqIgUgAjYCACADQSRqIgogCCgCACgCJDYCACADQSBqIgIgACgCACgCCDYCACADQRxqIgEgACgCACgCEDYCACADQRhqIgsgCCgCACgCBDYCACADQRRqIgYgCygCACAIKAIAKAIYajYCACADQRBqIgAgBSgCAEF4ajYCACADQQM2AgwDQCAGKAIAQQJqIAAoAgBNBEAgCSAGKAIAIAsoAgBrNgIAIARBADYCAANAIAYoAgAhBSAEKAIAQQNJBEAgByAFIAQoAgBqIAIoAgAgASgCABC7AjYCAAJAAkAgBCgCAEUNACAKKAIAIAcoAgBBAnRqKAIARQ0ADAELIAooAgAgBygCAEECdGogCSgCACAEKAIAajYCAAsgBCAEKAIAQQFqNgIADAELCyAGIAVBA2o2AgAMAQsLIAMkBQvjAwEMfyMFIQMjBUFAayQFIANBDGohCCADQQhqIQQgA0EEaiEKIAMhCSADQTxqIgYgADYCACADQThqIgAgATYCACADQTRqIgcgAjYCACADQTBqIgsgBigCACgCJDYCACADQSxqIg0gACgCACgCCDYCACADQShqIg4gACgCACgCEDYCACADQSRqIgIgBigCACgCLDYCACADQSBqIgEgACgCACgCBDYCACADQRxqIgwgBigCACgCBDYCACADQRhqIgUgDCgCACAGKAIAKAIYajYCACADQRRqIgAgBygCAEF4ajYCACADQQM2AhADQCAFKAIAQQJqIAAoAgBNBEAgCCAFKAIAIAwoAgBrNgIAIARBADYCAANAAkAgBSgCACEHIAQoAgBBA08NACAKIAcgBCgCAGogASgCACAOKAIAELsCNgIAIAkgBSgCACAEKAIAaiANKAIAQQgQuwI2AgAgBCgCAEUEQCACKAIAIAooAgBBAnRqIAgoAgAgBCgCAGo2AgALAkACQCAEKAIARQ0AIAsoAgAgCSgCAEECdGooAgBFDQAMAQsgCygCACAJKAIAQQJ0aiAIKAIAIAQoAgBqNgIACyAEIAQoAgBBAWo2AgAMAQsLIAUgB0EDajYCAAwBCwsgAyQFC1ABAn8jBSEDIwVBEGokBSADQQhqIgQgADYCACADQQRqIgAgATYCACADIAI2AgAgBCgCACAAKAIAIAMoAgAgACgCACgCEBDJAiEAIAMkBSAAC7cCAQZ/IwUhBCMFQUBrJAUgBEEMaiIFIAA2AgAgBEEIaiIAIAE2AgAgBEEEaiIBIAI2AgAgBCADNgIAIAAoAgAhAiABKAIAIQEgBCgCACEDIAAoAgAoAhAhBiAEQTBqIgAgBSgCADYCACAEQSxqIgUgAjYCACAEQShqIgcgATYCACAEQSRqIgggAzYCACAEQSBqIgkgBjYCACAEQRxqIgZBADYCACAEQRhqIgIgACgCACgCBDYCACAEQRRqIgMgBygCACACKAIAazYCACAEQRBqIgEgACgCACgCGDYCAANAIAEo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IAQ2AgAgDEEYaiIEIAU2AgAgDEEUaiIFIAY2AgAgDEEQaiIGIAc2AgAgDEEMaiIHIAg2AgAgDEEIaiIIIAk2AgAgDEEEaiIJIAo2AgAgDCALNgIAIAwoAgAEfyANIA4oAgAgACgCACABKAIAIAIoAgAgAygCACAEKAIAIAUoAgAgBigCACAHKAIAIAgoAgAgCSgCABDeAjYCACANKAIAIQAgDCQFIAAFIA0gDigCACAAKAIAIAEoAgAgAigCACADKAIAIAQoAgAgBSgCACAGKAIAIAcoAgAgCCgCACAJKAIAEN4CNgIAIA0oAgAhACAMJAUgAAsLlwsBCn8jBSELIwVB0AFqJAUgC0HAAWohDSALQShqIgwgADYCACALQSRqIgAgATYCACALQSBqIgEgAjYCACALQRxqIgIgAzYCACALQRhqIgMgBDYCACALQRRqIgQgBTYCACALQRBqIgUgBjYCACALQQxqIgYgBzYCACALQQhqIgcgCDYCACALQQRqIgggCTYCACALIAo2AgAgACgCACEAIAEoAgAhASACKAIAIQIgAygCACEDIAQoAgAhBCAFKAIAIQUgBigCACEGIAcoAgAhByAIKAIAIQ4gCygCACEPIAtBvAFqIhAgDCgCADYCACALQbgBaiIMIAA2AgAgC0G0AWoiESABNgIAIAtBsAFqIgkgAjYCACALQawBaiICIAM2AgAgC0GoAWoiCCAENgIAIAtBpAFqIgQgBTYCACALQaABaiIKIAY2AgAgC0GcAWoiAyAHNgIAIAtBmAFqIgEgDjYCACALQZQBaiISIA82AgAgC0HMAGoiBSALQYABaiIAIBAoAgAgDCgCABCAAjYCACAFKAIAEM0BBEAgDUG6fzYCACANKAIAIQAgCyQFIAAPCyALQfAAaiITIBEoAgAgCSgCACABKAIAQQFrai0AABCBAiALQeAAaiIRIAIoAgAgCCgCACABKAIAQQFrai0AABCBAiALQdAAaiIUIAQoAgAgCigCACABKAIAQQFrai0AABCBAiAAIAMoAgAgASgCAEEDdGpBfGovAQAgCigCACABKAIAQQFrai0AAEECdEGwNGooAgAQiAIgABCEAiAAIAMoAgAgASgCAEEDdGpBfmovAQAgCSgCACABKAIAQQFrai0AAEECdEHANWooAgAQiAIgABCEAiALQcgAaiECIAtBxABqIQQgEigCAARAIAIgCCgCACABKAIAQQFrai0AADYCACAEIAIoAgAgAigCAEEYSQR/IAIoAgAFQRgLazYCACAEKAIABEAgACADKAIAIAEoAgBBAWtBA3RqKAIAIAQoAgAQiAIgABCEAgsgACADKAIAIAEoAgBBAWtBA3RqKAIAIAQoAgB2IAIoAgAgBCgCAGsQiAIFIAAgAygCACABKAIAQQFrQQN0aigCACAIKAIAIAEoAgBBAWtqLQAAEIgCCyALQcYBaiEMIAtBxQFqIQ4gC0HEAWohDyALQTxqIQUgC0E4aiEEIAtBNGohBiALQTBqIQcgC0EsaiEQIAAQhAIgC0FAayICIAEoAgBBAms2AgADQCACKAIAIAEoAgBJBEAgDCAKKAIAIAIoAgBqLAAAOgAAIA4gCCgCACACKAIAaiwAADoAACAPIAkoAgAgAigCAGosAAA6AAAgBSAMLQAAQQJ0QbA0aigCADYCACAEIA4tAAA2AgAgBiAPLQAAQQJ0QcA1aigCADYCACAAIBEgDi0AABCCAiAAIBMgDy0AABCCAiAAEIQCIAAgFCAMLQAAEIICIAAQhAIgACADKAIAIAIoAgBBA3RqLwEEIAUoAgAQiAIgBSgCACAGKAIAakEYSwRAIAAQhAILIAAgAygCACACKAIAQQN0ai8BBiAGKAIAEIgCIAAQhAIgEigCAARAIAcgBCgCACAEKAIAQRhJBH8gBCgCAAVBGAtrNgIAIAcoAgAEQCAAIAMoAgAgAigCAEEDdGooAgAgBygCABCIAiAAEIQCCyAAIAMoAgAgAigCAEEDdGooAgAgBygCAHYgBCgCACAHKAIAaxCIAgUgACADKAIAIAIoAgBBA3RqKAIAIAQoAgAQiAILIAAQhAIgAiACKAIAQX9qNgIADAELCyAAIBMQhQIgACAREIUCIAAgFBCFAiAQIAAQhgI2AgAgECgCAAR/IA0gECgCADYCACANKAIAIQAgCyQFIAAFIA1Bun82AgAgDSgCACEAIAskBSAACwtFAQJ/IwUhAiMFQRBqJAUgAkEEaiIDIAA2AgAgAiABNgIAIAIoAgBBAEdBJGxB4B5qIAMoAgBBAnRqKAIAIQAgAiQFIAALnDIBeX8jBSEGIwVBgARqJAUgBkH0A2ohPCAGQfADaiE9IAZB7ANqISwgBkHoA2ohbyAGQeQDaiFwIAZB4ANqIS0gBkHcA2ohcSAGQdgDaiEuIAZB1ANqISQgBkHQA2ohHCAGQcwDaiE+IAZByANqIQcgBkHEA2ohEyAGQcADaiFWIAZBvANqIT8gBkG4A2ohJSAGQbQDaiFAIAZBsANqIQsgBkGsA2ohDyAGQagDaiEvIAZBpANqIVcgBkGgA2ohHSAGQZwDaiFYIAZBmANqIUEgBkGUA2ohWSAGQZADaiEXIAZBjANqIVogBkGIA2ohWyAGQYQDaiFyIAZBgANqIUIgBkH8AmohQyAGQfgCaiEwIAZB9AJqIXMgBkHwAmohdCAGQewCaiExIAZB6AJqIXUgBkHkAmohMiAGQeACaiEmIAZB3AJqIR4gBkHYAmohRCAGQdQCaiEIIAZB0AJqIRQgBkHMAmohXCAGQcgCaiFFIAZBxAJqIScgBkHAAmohRiAGQbwCaiEMIAZBuAJqIRAgBkG0AmohMyAGQbACaiFdIAZBrAJqIR8gBkGoAmohXiAGQaQCaiFHIAZBoAJqIV8gBkGcAmohGCAGQZgCaiFgIAZBlAJqIWEgBkGQAmohdiAGQYwCaiFIIAZBiAJqIUkgBkGEAmohNCAGQYACaiF3IAZB/AFqIXggBkH4AWohNSAGQfQBaiF5IAZB8AFqITYgBkHsAWohKCAGQegBaiEgIAZB5AFqIUogBkHgAWohCSAGQdwBaiEVIAZB2AFqIWIgBkHUAWohSyAGQdABaiEpIAZBzAFqIUwgBkHIAWohDSAGQcQBaiERIAZBwAFqITcgBkG8AWohYyAGQbgBaiEhIAZBtAFqIWQgBkGwAWohTSAGQawBaiFlIAZBqAFqIRkgBkGkAWohZiAGQaABaiFnIAZBnAFqIXogBkGYAWohTiAGQZQBaiFPIAZBkAFqITggBkGMAWoheyAGQYgBaiF8IAZBhAFqITkgBkGAAWohfSAGQfwAaiE6IAZB+ABqISogBkH0AGohIiAGQfAAaiFQIAZB7ABqIQogBkHoAGohFiAGQeQAaiFoIAZB4ABqIVEgBkHcAGohKyAGQdgAaiFSIAZB1ABqIQ4gBkHQAGohEiAGQcwAaiE7IAZByABqIWkgBkHEAGohIyAGQUBrIWogBkE8aiFTIAZBOGohayAGQTRqIRogBkEwaiFsIAZBLGohbSAGQShqIX4gBkEkaiEbIAZBIGoiVCAANgIAIAZBHGoiVSABNgIAIAZBGGoiASACNgIAIAZBFGoibiADNgIAIAZBEGoiAiAENgIAIAZBDGoiAyAFNgIAIAZBCGoiBCBuKAIAKAIINgIAIAZBBGoiBSBuKAIAKAIQNgIAIAYiACBuKAIAKAIUNgIAAkACQAJAAkAgBSgCAEEFaw4DAQIAAwsgVSgCACEFIAEoAgAhASACKAIAIQIgAygCACEDIAQoAgAhBCAAKAIAIQAgPCBUKAIANgIAID0gBTYCACAsIAE2AgAgbyACNgIAIHAgAzYCACAtIAQ2AgAgcSAANgIAIC5BBzYCACAkIDwoAgAoAiQ2AgAgHCA8KAIAKAIENgIAID4gbygCADYCACAHID4oAgA2AgAgEyA+KAIANgIAIFYgPCgCACgCDDYCACA/IBwoAgAgVigCAGo2AgAgJSA+KAIAIHAoAgBqNgIAIEAgJSgCAEF4ajYCACALICwoAgAoAgA2AgAgDyAsKAIAKAIENgIAIC9BADYCACAHIAcoAgAgBygCACA/KAIARmo2AgAgVyAHKAIAID8oAgBrNgIAIA8oAgAgVygCAEsEQCAvIA8oAgA2AgAgD0EANgIACyALKAIAIFcoAgBLBEAgLyALKAIANgIAIAtBADYCAAsDQCAHKAIAIEAoAgBJBEAgWCAHKAIAIC0oAgAgLigCABC7AjYCACBBIAcoAgAgHCgCAGs2AgAgWSAkKAIAIFgoAgBBAnRqKAIANgIAIBcgHCgCACBZKAIAajYCACAkKAIAIFgoAgBBAnRqIEEoAgA2AgACQCALKAIAQQBLIAcoAgBBAWogCygCAGsQ0AEgBygCAEEBahDQAUZxBEAgHSAHKAIAQQVqIAcoAgBBBWogCygCAGsgJSgCABC8AkEEajYCACAHIAcoAgBBAWo2AgAgPSgCACAHKAIAIBMoAgBrIBMoAgBBACAdKAIAQQNrEPkCBSBZKAIAIFYoAgBLBEAgFygCABDQASAHKAIAENABRgRAIB0gBygCAEEEaiAXKAIAQQRqICUoAgAQvAJBBGo2AgAgWiAHKAIAIBcoAgBrNgIAA0ACQCAHKAIAIBMoAgBLIBcoAgAgPygCAEtxRQ0AIAcoAgBBf2otAAAgFygCAEF/ai0AAEcNACAHIAcoAgBBf2o2AgAgFyAXKAIAQX9qNgIAIB0gHSgCAEEBajYCAAwBCwsgDyALKAIANgIAIAsgWigCADYCACA9KAIAIAcoAgAgEygCAGsgEygCACBaKAIAQQJqIB0oAgBBA2sQ+QIMAwsLIAcgBygCACAHKAIAIBMoAgBrQQh1IHEoAgBqajYCAAwDCwsgByAHKAIAIB0oAgBqNgIAIBMgBygCADYCAAJAIAcoAgAgQCgCAE0EQCBBKAIAQQJqIQAgJCgCACAcKAIAIEEoAgBqQQJqIC0oAgAgLigCABC7AkECdGogADYCACAHKAIAQX5qIBwoAgBrIQAgJCgCACAHKAIAQX5qIC0oAgAgLigCABC7AkECdGogADYCAANAIAcoAgAgQCgCAEsNAiAPKAIAQQBLIAcoAgAQ0AEgBygCACAPKAIAaxDQAUZxRQ0CIFsgBygCAEEEaiAHKAIAQQRqIA8oAgBrICUoAgAQvAJBBGo2AgAgciAPKAIANgIAIA8gCygCADYCACALIHIoAgA2AgAgBygCACAcKAIAayEAICQoAgAgBygCACAtKAIAIC4oAgAQuwJBAnRqIAA2AgAgPSgCAEEAIBMoAgBBACBbKAIAQQNrEPkCIAcgBygCACBbKAIAajYCACATIAcoAgA2AgAMAAsACwsMAQsLIAsoAgAhACAvKAIAIQEgLCgCACALKAIABH8gAAUgAQs2AgAgDygCACEAIC8oAgAhASAsKAIAIA8oAgAEfyAABSABCzYCBCAbICUoAgAgEygCAGs2AgAgGygCACEAIAYkBSAADwsgVSgCACEFIAEoAgAhASACKAIAIQIgAygCACEDIAQoAgAhBCAAKAIAIQAgSCBUKAIANgIAIEkgBTYCACA0IAE2AgAgdyACNgIAIHggAzYCACA1IAQ2AgAgeSAANgIAIDZBBTYCACAoIEgoAgAoAiQ2AgAgICBIKAIAKAIENgIAIEogdygCADYCACAJIEooAgA2AgAgFSBKKAIANgIAIGIgSCgCACgCDDYCACBLICAoAgAgYigCAGo2AgAgKSBKKAIAIHgoAgBqNgIAIEwgKSgCAEF4ajYCACANIDQoAgAoAgA2AgAgESA0KAIAKAIENgIAIDdBADYCACAJIAkoAgAgCSgCACBLKAIARmo2AgAgYyAJKAIAIEsoAgBrNgIAIBEoAgAgYygCAEsEQCA3IBEoAgA2AgAgEUEANgIACyANKAIAIGMoAgBLBEAgNyANKAIANgIAIA1BADYCAAsDQCAJKAIAIEwoAgBJBEAgZCAJKAIAIDUoAgAgNigCABC7AjYCACBNIAkoAgAgICgCAGs2AgAgZSAoKAIAIGQoAgBBAnRqKAIANgIAIBkgICgCACBlKAIAajYCACAoKAIAIGQoAgBBAnRqIE0oAgA2AgACQCANKAIAQQBLIAkoAgBBAWogDSgCAGsQ0AEgCSgCAEEBahDQAUZxBEAgISAJKAIAQQVqIAkoAgBBBWogDSgCAGsgKSgCABC8AkEEajYCACAJIAkoAgBBAWo2AgAgSSgCACAJKAIAIBUoAgBrIBUoAgBBACAhKAIAQQNrEPkCBSBlKAIAIGIoAgBLBEAgGSgCABDQASAJKAIAENABRgRAICEgCSgCAEEEaiAZKAIAQQRqICkoAgAQvAJBBGo2AgAgZiAJKAIAIBkoAgBrNgIAA0ACQCAJKAIAIBUoAgBLIBkoAgAgSygCAEtxRQ0AIAkoAgBBf2otAAAgGSgCAEF/ai0AAEcNACAJIAkoAgBBf2o2AgAgGSAZKAIAQX9qNgIAICEgISgCAEEBajYCAAwBCwsgESANKAIANgIAIA0gZigCADYCACBJKAIAIAkoAgAgFSgCAGsgFSgCACBmKAIAQQJqICEoAgBBA2sQ+QIMAwsLIAkgCSgCACAJKAIAIBUoAgBrQQh1IHkoAgBqajYCAAwDCwsgCSAJKAIAICEoAgBqNgIAIBUgCSgCADYCAAJAIAkoAgAgTCgCAE0EQCBNKAIAQQJqIQAgKCgCACAgKAIAIE0oAgBqQQJqIDUoAgAgNigCABC7AkECdGogADYCACAJKAIAQX5qICAoAgBrIQAgKCgCACAJKAIAQX5qIDUoAgAgNigCABC7AkECdGogADYCAANAIAkoAgAgTCgCAEsNAiARKAIAQQBLIAkoAgAQ0AEgCSgCACARKAIAaxDQAUZxRQ0CIGcgCSgCAEEEaiAJKAIAQQRqIBEoAgBrICkoAgAQvAJBBGo2AgAgeiARKAIANgIAIBEgDSgCADYCACANIHooAgA2AgAgCSgCACAgKAIAayEAICgoAgAgCSgCACA1KAIAIDYoAgAQuwJBAnRqIAA2AgAgSSgCAEEAIBUoAgBBACBnKAIAQQNrEPkCIAkgCSgCACBnKAIAajYCACAVIAkoAgA2AgAMAAsACwsMAQsLIA0oAgAhACA3KAIAIQEgNCgCACANKAIABH8gAAUgAQs2AgAgESgCACEAIDcoAgAhASA0KAIAIBEoAgAEfyAABSABCzYCBCAbICkoAgAgFSgCAGs2AgAgGygCACEAIAYkBSAADwsgVSgCACEFIAEoAgAhASACKAIAIQIgAygCACEDIAQoAgAhBCAAKAIAIQAgQiBUKAIANgIAIEMgBTYCACAwIAE2AgAgcyACNgIAIHQgAzYCACAxIAQ2AgAgdSAANgIAIDJBBjYCACAmIEIoAgAoAiQ2AgAgHiBCKAIAKAIENgIAIEQgcygCADYCACAIIEQoAgA2AgAgFCBEKAIANgIAIFwgQigCACgCDDYCACBFIB4oAgAgXCgCAGo2AgAgJyBEKAIAIHQoAgBqNgIAIEYgJygCAEF4ajYCACAMIDAoAgAoAgA2AgAgECAwKAIAKAIENgIAIDNBADYCACAIIAgoAgAgCCgCACBFKAIARmo2AgAgXSAIKAIAIEUoAgBrNgIAIBAoAgAgXSgCAEsEQCAzIBAoAgA2AgAgEEEANgIACyAMKAIAIF0oAgBLBEAgMyAMKAIANgIAIAxBADYCAAsDQCAIKAIAIEYoAgBJBEAgXiAIKAIAIDEoAgAgMigCABC7AjYCACBHIAgoAgAgHigCAGs2AgAgXyAmKAIAIF4oAgBBAnRqKAIANgIAIBggHigCACBfKAIAajYCACAmKAIAIF4oAgBBAnRqIEcoAgA2AgACQCAMKAIAQQBLIAgoAgBBAWogDCgCAGsQ0AEgCCgCAEEBahDQAUZxBEAgHyAIKAIAQQVqIAgoAgBBBWogDCgCAGsgJygCABC8AkEEajYCACAIIAgoAgBBAWo2AgAgQygCACAIKAIAIBQoAgBrIBQoAgBBACAfKAIAQQNrEPkCBSBfKAIAIFwoAgBLBEAgGCgCABDQASAIKAIAENABRgRAIB8gCCgCAEEEaiAYKAIAQQRqICcoAgAQvAJBBGo2AgAgYCAIKAIAIBgoAgBrNgIAA0ACQCAIKAIAIBQoAgBLIBgoAgAgRSgCAEtxRQ0AIAgoAgBBf2otAAAgGCgCAEF/ai0AAEcNACAIIAgoAgBBf2o2AgAgGCAYKAIAQX9qNgIAIB8gHygCAEEBajYCAAwBCwsgECAMKAIANgIAIAwgYCgCADYCACBDKAIAIAgoAgAgFCgCAGsgFCgCACBgKAIAQQJqIB8oAgBBA2sQ+QIMAwsLIAggCCgCACAIKAIAIBQoAgBrQQh1IHUoAgBqajYCAAwDCwsgCCAIKAIAIB8oAgBqNgIAIBQgCCgCADYCAAJAIAgoAgAgRigCAE0EQCBHKAIAQQJqIQAgJigCACAeKAIAIEcoAgBqQQJqIDEoAgAgMigCABC7AkECdGogADYCACAIKAIAQX5qIB4oAgBrIQAgJigCACAIKAIAQX5qIDEoAgAgMigCABC7AkECdGogADYCAANAIAgoAgAgRigCAEsNAiAQKAIAQQBLIAgoAgAQ0AEgCCgCACAQKAIAaxDQAUZxRQ0CIGEgCCgCAEEEaiAIKAIAQQRqIBAoAgBrICcoAgAQvAJBBGo2AgAgdiAQKAIANgIAIBAgDCgCADYCACAMIHYoAgA2AgAgCCgCACAeKAIAayEAICYoAgAgCCgCACAxKAIAIDIoAgAQuwJBAnRqIAA2AgAgQygCAEEAIBQoAgBBACBhKAIAQQNrEPkCIAggCCgCACBhKAIAajYCACAUIAgoAgA2AgAMAAsACwsMAQsLIAwoAgAhACAzKAIAIQEgMCgCACAMKAIABH8gAAUgAQs2AgAgECgCACEAIDMoAgAhASAwKAIAIBAoAgAEfyAABSABCzYCBCAbICcoAgAgFCgCAGs2AgAgGygCACEAIAYkBSAADwsgVSgCACEFIAEoAgAhASACKAIAIQIgAygCACEDIAQoAgAhBCAAKAIAIQAgTiBUKAIANgIAIE8gBTYCACA4IAE2AgAgeyACNgIAIHwgAzYCACA5IAQ2AgAgfSAANgIAIDpBBDYCACAqIE4oAgAoAiQ2AgAgIiBOKAIAKAIENgIAIFAgeygCADYCACAKIFAoAgA2AgAgFiBQKAIANgIAIGggTigCACgCDDYCACBRICIoAgAgaCgCAGo2AgAgKyBQKAIAIHwoAgBqNgIAIFIgKygCAEF4ajYCACAOIDgoAgAoAgA2AgAgEiA4KAIAKAIENgIAIDtBADYCACAKIAooAgAgCigCACBRKAIARmo2AgAgaSAKKAIAIFEoAgBrNgIAIBIoAgAgaSgCAEsEQCA7IBIoAgA2AgAgEkEANgIACyAOKAIAIGkoAgBLBEAgOyAOKAIANgIAIA5BADYCAAsDQCAKKAIAIFIoAgBJBEAgaiAKKAIAIDkoAgAgOigCABC7AjYCACBTIAooAgAgIigCAGs2AgAgayAqKAIAIGooAgBBAnRqKAIANgIAIBogIigCACBrKAIAajYCACAqKAIAIGooAgBBAnRqIFMoAgA2AgACQCAOKAIAQQBLIAooAgBBAWogDigCAGsQ0AEgCigCAEEBahDQAUZxBEAgIyAKKAIAQQVqIAooAgBBBWogDigCAGsgKygCABC8AkEEajYCACAKIAooAgBBAWo2AgAgTygCACAKKAIAIBYoAgBrIBYoAgBBACAjKAIAQQNrEPkCBSBrKAIAIGgoAgBLBEAgGigCABDQASAKKAIAENABRgRAICMgCigCAEEEaiAaKAIAQQRqICsoAgAQvAJBBGo2AgAgbCAKKAIAIBooAgBrNgIAA0ACQCAKKAIAIBYoAgBLIBooAgAgUSgCAEtxRQ0AIAooAgBBf2otAAAgGigCAEF/ai0AAEcNACAKIAooAgBBf2o2AgAgGiAaKAIAQX9qNgIAICMgIygCAEEBajYCAAwBCwsgEiAOKAIANgIAIA4gbCgCADYCACBPKAIAIAooAgAgFigCAGsgFigCACBsKAIAQQJqICMoAgBBA2sQ+QIMAwsLIAogCigCACAKKAIAIBYoAgBrQQh1IH0oAgBqajYCAAwDCwsgCiAKKAIAICMoAgBqNgIAIBYgCigCADYCAAJAIAooAgAgUigCAE0EQCBTKAIAQQJqIQAgKigCACAiKAIAIFMoAgBqQQJqIDkoAgAgOigCABC7AkECdGogADYCACAKKAIAQX5qICIoAgBrIQAgKigCACAKKAIAQX5qIDkoAgAgOigCABC7AkECdGogADYCAANAIAooAgAgUigCAEsNAiASKAIAQQBLIAooAgAQ0AEgCigCACASKAIAaxDQAUZxRQ0CIG0gCigCAEEEaiAKKAIAQQRqIBIoAgBrICsoAgAQvAJBBGo2AgAgfiASKAIANgIAIBIgDigCADYCACAOIH4oAgA2AgAgCigCACAiKAIAayEAICooAgAgCigCACA5KAIAIDooAgAQuwJBAnRqIAA2AgAgTygCAEEAIBYoAgBBACBtKAIAQQNrEPkCIAogCigCACBtKAIAajYCACAWIAooAgA2AgAMAAsACwsMAQsLIA4oAgAhACA7KAIAIQEgOCgCACAO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ai0AAEcNAyAHIAcoAgBBf2o2AgAgIiAiKAIAQX9qNgIAIA0gDSgCAEEBajYCAAwACwALCyAHIAcoAgAgBygCACALKAIAa0EIdUEBamo2AgAMAwsgFyAMKAIANgIAIAwgSigCADYCACBgKAIAIAcoAgAgCygCAGsgCygCACBKKAIAQQJqIA0oAgBBA2sQ+QILIAcgBygCACANKAIAajYCACALIAcoAgA2AgACQCAHKAIAIGIoAgBNBEAgNygCAEECaiEAIDUoAgAgGygCACA3KAIAakECaiBHKAIAIEYoAgAQuwJBAnRqIAA2AgAgHygCACAbKAIAIDcoAgBqQQJqIDQoAgBBCBC7AkECdGogADYCACAHKAIAQX5qIBsoAgBrIQAgNSgCACAHKAIAQX5qIEcoAgAgRigCABC7AkECdGogADYCACAfKAIAIAcoAgBBfmogNCgCAEEIELsCQQJ0aiAANgIAA0AgBygCACBiKAIASw0CIBcoAgBBAEsgBygCABDQASAHKAIAIBcoAgBrENABRnFFDQIgdiAHKAIAQQRqIAcoAgBBBGogFygCAGsgICgCABC8AkEEajYCACCUASAXKAIANgIAIBcgDCgCADYCACAMIJQBKAIANgIAIAcoAgAgGygCAGshACA1KAIAIAcoAgAgRygCACBGKAIAELsCQQJ0aiAANgIAIAcoAgAgGygCAGshACAfKAIAIAcoAgAgNCgCAEEIELsCQQJ0aiAANgIAIGAoAgBBACALKAIAQQAgdigCAEEDaxD5AiAHIAcoAgAgdigCAGo2AgAgCyAHKAIANgIADAALAAsLDAELCyAMKAIAIQAgSSgCACEBIEUoAgAgDCgCAAR/IAAFIAELNgIAIBcoAgAhACBJKAIAIQEgRSgCACAXKAIABH8gAAUgAQs2AgQgMyAgKAIAIAsoAgBrNgIAIDMoAgAhACAGJAUgAA8LIG0oAgAhBCABKAIAIQEgACgCACEAIAIoAgAhAiADKAIAIQMgUiBsKAIANgIAIGYgBDYCACBTIAE2AgAggAEgADYCACCYASACNgIAIJkBIAM2AgAgVEEFNgIAICkgUigCACgCJDYCACA8IIABKAIAKAIINgIAID0gUigCACgCLDYCACBVIIABKAIAKAIENgIAIB0gUigCACgCBDYCACBnIJgBKAIANgIAIAkgZygC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BE8EQCAcKAIAIB0oAgBKBEAgASAPKAIANgIAIAIgDigCADYCACADIAAoAgA2AgAMAgsLIBQoAgBBAkcNAiAAKAIAIA0oAgBPDQIgACAAKAIAQQFqNgIAAkAgAigCAARAIAcoAgBBAEsgACgCABDQASAAKAIAIAcoAgBrENABRnEEQCAQIAAoAgBBBGogACgCAEEEaiAHKAIAayAEKAIAELwCQQRqNgIAIB4gECgCAEECdDYCACAfIAEoAgBBAnQgAigCAEEBahDUAWtBAWo2AgAgECgCAEEETwRAIB4oAgAgHygCAEwNAyABIBAoAgA2AgAgAkEANgIAIAMgACgCADYCAAsLCwsgEUH/wdcvNgIAIBIgCigCACATKAIAIAAoAgAgBCgCACARIBYoAgBBB3FBuAFqEQkANgIAICAgEigCAEECdCARKAIAQQFqENQBazYCACAhIAEoAgBBAnQgAigCAEEBahDUAWtBB2o2AgAgEigCAEEESQ0CICAoAgAgISgCAEwNAiABIBIoAgA2AgAgAiARKAIANgIAIAMgACgCADYCAAwACwALCyACKAIABEADQAJAIAMoAgAgBSgCAEsgAygCACACKAIAQQJrayAVKAIAS3FFDQAgAygCAEF/ai0AACADKAIAIAIoAgBrLQABRw0AIAMgAygCAEF/ajYCACABIAEoAgBBAWo2AgAMAQsLIAggBygCADYCACAHIAIoAgBBAms2AgALCyAiIAMoAgAgBSgCAGs2AgAgGSgCACAiKAIAIAUoAgAgAigCACABKAIAQQNrEPkCIAAgAygCACABKAIAaiIjNgIAIAUgIzYCAANAAkAgACgCACANKAIATSAIKAIAQQBLcUUNACAAKAIAENABIAAoAgAgCCgCAGsQ0AFHDQAgASAAKAIAQQRqIAAoAgBBBGogCCgCAGsgBCgCABC8AkEEajYCACACIAgoAgA2AgAgCCAHKAIANgIAIAcgAigCADYCACAZKAIAQQAgBSgCAEEAIAEoAgBBA2sQ+QIgACAAKAIAIAEoAgBqNgIAIAUgACgCADYCAAwBCwsMAQsLIAcoAgAhACAMKAIAIQEgCygCACAHKAIABH8gAAUgAQs2AgAgCCgCACEAIAwoAgAhASALKAIAIAgoAgAEfyAABSABCzYCBCAEKAIAIAUoAgBrIQAgBiQFIAALjREB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IRwgBkHoD2ohkQIgBkHkD2ohugMgBkHgD2ohnQEgBkHcD2ohkgIgBkHYD2ohkwIgBkHUD2oh2QEgBkHQD2ohUyAGQcwPaiGUAiAGQcgPaiGVAiAGQcQPaiHsAiAGQcAPaiGWAiAGQbwPaiHaASAGQbgPaiHbASAGQbQPaiGXAiAGQbAPaiG7AyAGQawPaiEvIAZBqA9qIe0CIAZBpA9qIWogBkGgD2ohvAMgBkGcD2ohayAGQZgPaiGeASAGQZQPaiHuAiAGQZAPaiFUIAZBjA9qIe8CIAZBiA9qIWwgBkGED2ohbSAGQYAPaiG9AyAGQfwOaiG+AyAGQfgOaiHcASAGQfQOaiECIAZB8A5qIZ8BIAZB7A5qIZgCIAZB6A5qIUMgBkHkDmohoAEgBkHgDmohFCAGQdwOaiFEIAZB2A5qIZkCIAZB1A5qIb8DIAZB0A5qIZoCIAZBzA5qIW4gBkHIDmohwAMgBkHEDmohoQEgBkHADmoh8AIgBkG8DmohogEgBkG4DmohKCAGQbQOaiHBAyAGQbAOaiE6IAZBrA5qIfECIAZBqA5qIfICIAZBpA5qIR0gBkGgDmohmwIgBkGcDmohwgMgBkGYDmohowEgBkGUDmohnAIgBkGQDmohnQIgBkGMDmoh3QEgBkGIDmohVSAGQYQOaiGeAiAGQYAOaiGfAiAGQfwNaiHzAiAGQfgNaiGgAiAGQfQNaiHeASAGQfANaiHfASAGQewNaiGhAiAGQegNaiHDAyAGQeQNaiEwIAZB4A1qIfQCIAZB3A1qIW8gBkHYDWohxAMgBkHUDWohcCAGQdANaiGkASAGQcwNaiH1AiAGQcgNaiFWIAZBxA1qIfYCIAZBwA1qIXEgBkG8DWohciAGQbgNaiHFAyAGQbQNaiHGAyAGQbANaiHgASAGQawNaiEDIAZBqA1qIaUBIAZBpA1qIaICIAZBoA1qIUUgBkGcDWohpgEgBkGYDWohFSAGQZQNaiFGIAZBkA1qIaMCIAZBjA1qIccDIAZBiA1qIaQCIAZBhA1qIXMgBkGADWohyAMgBkH8DGohpwEgBkH4DGoh9wIgBkH0DGohqAEgBkHwDGohKSAGQewMaiHJAyAGQegMaiE7IAZB5AxqIfgCIAZB4AxqIfkCIAZB3AxqIR4gBkHYDGohpQIgBkHUDGohygMgBkHQDGohqQEg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NgIAIJIBKAIAIKADKAIASyAaKAIAIJIBKAIAaiBQKAIARnIEQCBPKAIAIC4oAgBBAWo2Ahgg1AJBATYCAAwFCwsLCwsgoQMoAgAgogMoAgBBAnRqIC4oAgA2AgACQAJAAkADQAJAIKQDIKQDKAIAIgdBf2o2AgAgB0UNACAjKAIAINwCKAIATQ0AIP4BINcCKAIAICMoAgAgzQEoAgBxQQN0ajYCACDYAigCACEHINkCKAIAIQggDyDYAigCACDZAigCAEkEfyAHBSAICzYCAAJAAkAg1QIoAgBFDQAgIygCACAPKAIAaiBiKAIATw0AIM8BIPsBKAIAICMoAgBqNgIAIBooAgAgDygCAGogzwEoAgAgDygCAGogUCgCACDaAigCACDbAigCABC9AiEHIA8gDygCACAHajYCACAjKAIAIA8oAgBqIGIoAgBPBEAgzwEgzAEoAgAgIygCAGo2AgALDAELIM8BIMwBKAIAICMoAgBqNgIAIBooAgAgDygCAGogzwEoAgAgDygCAGogUCgCABC8AiEHIA8gDygCACAHajYCAAsgDygCACCPASgCAEsEQCAPKAIAIN0CKAIAICMoAgBrSwRAIN0CICMoAgAgDygCAGo2AgALII8BIA8oAgA2AgAgjgEoAgAgNigCAEEDdGogLigCACAjKAIAa0ECajYCACCOASgCACA2KAIAQQN0aiAPKAIANgIEIDYgNigCAEEBajYCACAPKAIAQYAgSw0BIBooAgAgDygCAGogUCgCAEYNAQsgIygCACEHIM8BKAIAIA8oAgBqLQAAIBooAgAgDygCAGotAABIBEAg/AEoAgAgBzYCACDYAiAPKAIANgIAICMoAgAgowMoAgBNDQMg/AEg/gEoAgBBBGo2AgAgIyD+ASgCACgCBDYCAAUg/QEoAgAgBzYCACDZAiAPKAIANgIAICMoAgAgowMoAgBNDQQg/QEg/gEoAgA2AgAgIyD+ASgCACgCADYCAAsMAQsLDAILIPwBIPsDNgIADAELIP0BIPsDNgIACyD9ASgCAEEANgIAIPwBKAIAQQA2AgAgTygCACDdAigCAEEIazYCGCDUAiA2KAIANgIACyDQASDUAigCADYCAAwECyCTASgCACEHIJQBKAIAIQgg0QEoAgAhCSDSASgCACEKIIECKAIAIQwgggIoAgAhECCDAigCACERIIQCKAIAIRIgSSBkKAIANgIAILgBIAc2AgAgFyAINgIAIEogCTYCACC3AiAKNgIAIN8DIAw2AgAguAIgEDYCACB/IBE2AgAg4AMgEjYCACC5AUEGNgIAIIsDILgBKAIAKAIUQf8fSQR/ILgBKAIAKAIUBUH/HwsiBzYCACC6ASBJKAIAKAIENgIAICsgFygCACC6ASgCAGs2AgAg4QMguAEoAgAoAgg2AgAgPSC5ASgCAEEDRgR/QQMFQQQLNgIAIIwDIEkoAgAoAiQ2AgAgjQMgFygCACDhAygCACC5ASgCABC7AjYCACAgIIwDKAIAII0DKAIAQQJ0aigCADYCACC5AiBJKAIAKAIsNgIAIOIDILgBKAIAKAIEQQFrNgIAILsBQQEg4gMoAgB0QQFrNgIAILoCQQA2AgAguwJBADYCACDvASBJKAIAKAIINgIAIFwgSSgCACgCDDYCACC8AiDvASgCACBcKAIAajYCACC9AiC6ASgCACBcKAIAajYCACCOAyC7ASgCACArKAIATwR/QQAFICsoAgAguwEoAgBrCyIHNgIAIL4CIEkoAgAoAhA2AgAg8AEguQIoAgAgKygCACC7ASgCAHFBA3RqNgIAIPEBILkCKAIAICsoAgAguwEoAgBxQQN0akEEajYCACC/AiArKAIAQQlqNgIAIDNBADYCACCPA0EBILgBKAIAKAIMdDYCACCAASDgAygCAEEBazYCACDkAyC4AigCAEEDajYCACCBASC4AigCADYCAAJAAkACQANAIIEBKAIAIOQDKAIATw0CIN8DKAIAIQcgvAEggQEoAgBBA0YEfyAHKAIAQQFrBSAHIIEBKAIAQQJ0aigCAAsiBzYCACCQAyArKAIAILwBKAIAazYCACBdQQA2AgAgvAEoAgBBAWsgKygCACBcKAIAa0kEQCAXKAIAID0oAgAQ8QIgFygCACC8ASgCAGsgPSgCABDxAkYEQCBdIBcoAgAgPSgCAGogFygCACA9KAIAaiC8ASgCAGsgSigCABC8AiA9KAIAajYCAAsFIJEDIO8BKAIAIJADKAIAajYCACC3AigCAARAILwBKAIAQQFrICsoAgAgvgIoAgBrSSBcKAIAQQFrIJADKAIAa0EDT3EEQCAXKAIAID0oAgAQ8QIgkQMoAgAgPSgCABDxAkYEQCBdIBcoAgAgPSgCAGogkQMoAgAgPSgCAGogSigCACC8AigCACC9AigCABC9AiA9KAIAajYCAAsLCwsgXSgCACCAASgCAEsEQCCAASBdKAIANgIAIH8oAgAgMygCAEEDdGoggQEoAgAguAIoAgBrNgIAIH8oAgAgMygCAEEDdGogXSgCADYCBCAzIDMoAgBBAWo2AgAgXSgCACCLAygCAEsgFygCACBdKAIAaiBKKAIARnINAgsggQEggQEoAgBBAWo2AgAMAAsACyC2AiAzKAIANgIADAELILkBKAIAQQNGBEAggAEoAgAguQEoAgBJBEAgggEgSSgCACAXKAIAEPICNgIAIIIBKAIAIL4CKAIASyArKAIAIIIBKAIAa0GAgBBJcQRAAkACQCC3AigCAEUNACCCASgCACBcKAIATw0AIOYDIO8BKAIAIIIBKAIAajYCACCDASAXKAIAIOYDKAIAIEooAgAgvAIoAgAgvQIoAgAQvQI2AgAMAQsg5QMgugEoAgAgggEoAgBqNgIAIIMBIBcoAgAg5QMoAgAgSigCABC8AjYCAAsggwEoAgAguQEoAgBPBEAggAEggwEoAgA2AgAgfygCACArKAIAIIIBKAIAa0ECajYCACB/KAIAIIMBKAIANgIEIDNBATYCACCDASgCACCLAygCAEsgFygCACCDASgCAGogSigCAEZyBEAgSSgCACArKAIAQQFqNgIYILYCQQE2AgAMBQsLCwsLIIwDKAIAII0DKAIAQQJ0aiArKAIANgIAAkACQAJAA0ACQCCPAyCPAygCACIHQX9qNgIAIAdFDQAgICgCACC+AigCAE0NACDyASC5AigCACAgKAIAILsBKAIAcUEDdGo2AgAgugIoAgAhByC7AigCACEIIAsgugIoAgAguwIoAgBJBH8gBwUgCAs2AgACQAJAILcCKAIARQ0AICAoAgAgCygCAGogXCgCAE8NACC9ASDvASgCACAgKAIAajYCACAXKAIAIAsoAgBqIL0BKAIAIAsoAgBqIEooAgAgvAIoAgAgvQIoAgAQvQIhByALIAsoAgAgB2o2AgAgICgCACALKAIAaiBcKAIATwRAIL0BILoBKAIAICAoAgBqNgIACwwBCyC9ASC6ASgCACAgKAIAajYCACAXKAIAIAsoAgBqIL0BKAIAIAsoAgBqIEooAgAQvAIhByALIAsoAgAgB2o2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ASAlKAIAIIUCKAIAazYCAAsLILADIIUCKAIANgIAILEDIN8CKAIANgIAIGYgASgCADYCAANAIOQCIAAoAgAgZigCAEEcbGooAgg2AgAgiwQgACgCACBmKAIAQRxsaigCBDYCACAAKAIAIGYoAgBBHGxqILADKAIANgIIIAAoAgAgZigCAEEcbGogsQMoAgA2AgQgsAMg5AIoAgA2AgAgsQMgiwQoAgA2AgAg5AIoAgAgZigCAE0EQCBmIGYoAgAg5AIoAgBrNgIADAELCyBnQQA2AgADQCBnKAIAICUoAgBJBEAg5QIgJCgCACBSKAIAazYCACDWASAAKAIAIGcoAgBBHGxqKAIINgIAINcBIAAoAgAgZygCAEEcbGooAgQ2AgAg1gEoAgBBAUYEQCAkICQoAgBBAWo2AgAgZyBnKAIAQQFqNgIADAILIGcgZygCACDWASgCAGo2AgAgJCAkKAIAINYBKAIAajYCACDXASgCAEEDTwRAICYoAgAgJigCACgCBDYCCCAmKAIAICYoAgAoAgA2AgQgJigCACDXASgCAEECazYCAAUgigIg1wEoAgAg5QIoAgBFajYCACCKAigCAARAICYoAgAhByCMBCCKAigCAEEDRgR/IAcoAgBBAWsFIAcgigIoAgBBAnRqKAIACyIHNgIAIIoCKAIAQQJPBEAgJigCACAmKAIAKAIENgIICyAmKAIAICYoAgAoAgA2AgQgJigCACCMBCgCADYCAAsLIDgoAgAg5QIoAgAgUigCACDXASgCACDWASgCABD4AiCOBCgCACDlAigCACBSKAIAINcBKAIAINYBKAIAQQNrEPkCIFIgJCgCADYCAAwBCwsgOCgCABD6AgwBCwsgjQIoAgAgUigCAGshACAGJAUgAAuM1gEBiQR/IwUhBiMFQeAQaiQFIAZBFGoiCyAANgIAIAZBEGoiACABNgIAIAZBDGoiASACNgIAIAZBCGoiAiADNgIAIAZBBGoiAyAENgIAIAYgBTYCACAAKAIAIQAgASgCACEBIAIoAgAhAiADKAIAIQMgBigCACEEIAZBsAJqImggCygCADYCACAGQawCaiKOBCAANgIAIAZBqAJqIiYgATYCACAGQaQCaiLYASACNgIAIAZBoAJqIgcgAzYCACAGQZwCaiIIIAQ2AgAgBkGYAmoijAJBAjYCACAGQZQCaiKyA0EANgIAIAZBkAJqIjggaCgCAEEwajYCACAGQYwCaiIAIAcoAgA2AgAgBkGIAmoiJCAAKAIANgIAIAZBhAJqIlIgACgCADYCACAGQYACaiKNAiAAKAIAIAgoAgBqNgIAIAZB/AFqIrMDII0CKAIAQXhqNgIAIAZB+AFqIgAgaCgCACgCBDYCACAGQfQBaiIJIAAoAgAgaCgCACgCDGo2AgAgBkHYEGoh5gIgBkHUEGohtAMgBkHQEGohtQMgBkHMEGohlwEgBkHIEGohtgMgBkHEEGohmAEgBkHAEGohmQEgBkG8EGoh5wIgBkG4EGoh6AIgBkG0EGohjgIgBkGwEGohQSAGQawQaiGaASAGQagQaiETIAZBpBBqIUIgBkGgEGohjwIgBkGcEGohtwMgBkGYEGohkAIgBkGUEGohaSAGQZAQaiG4AyAGQYwQaiGbASAGQYgQaiHpAiAGQYQQaiGcASAGQYAQaiEnIAZB/A9qIbkDIAZB+A9qITkgBkH0D2oh6gIgBkHwD2oh6wIgBkHsD2ohHCAGQegPaiGRAiAGQeQPaiG6AyAGQeAPaiGdASAGQdwPaiGSAiAGQdgPaiGTAiAGQdQPaiHZASAGQdAPaiFTIAZBzA9qIZQCIAZByA9qIZUCIAZBxA9qIewCIAZBwA9qIZYCIAZBvA9qIdoBIAZBuA9qIdsBIAZBtA9qIZcCIAZBsA9qIbsDIAZBrA9qIS8gBkGoD2oh7QIgBkGkD2ohaiAGQaAPaiG8AyAGQZwPaiFrIAZBmA9qIZ4BIAZBlA9qIe4CIAZBkA9qIVQgBkGMD2oh7wIgBkGID2ohbCAGQYQPaiFtIAZBgA9qIb0DIAZB/A5qIb4DIAZB+A5qIdwBIAZB9A5qIQIgBkHwDmohnwEgBkHsDmohmAIgBkHoDmohQyAGQeQOaiGgASAGQeAOaiEUIAZB3A5qIUQgBkHYDmohmQIgBkHUDmohvwMgBkHQDmohmgIgBkHMDmohbiAGQcgOaiHAAyAGQcQOaiGhASAGQcAOaiHwAiAGQbwOaiGiASAGQbgOaiEoIAZBtA5qIcEDIAZBsA5qITogBkGsDmoh8QIgBkGoDmoh8gIgBkGkDmohHSAGQaAOaiGbAiAGQZwOaiHCAyAGQZgOaiGjASAGQZQOaiGcAiAGQZAOaiGdAiAGQYwOaiHdASAGQYgOaiFVIAZBhA5qIZ4CIAZBgA5qIZ8CIAZB/A1qIfMCIAZB+A1qIaACIAZB9A1qId4BIAZB8A1qId8BIAZB7A1qIaECIAZB6A1qIcMDIAZB5A1qITAgBkHgDWoh9AIgBkHcDWohbyAGQdgNaiHEAyAGQdQNaiFwIAZB0A1qIaQBIAZBzA1qIfUCIAZByA1qIVYgBkHEDWoh9gIgBkHADWohcSAGQbwNaiFyIAZBuA1qIcUDIAZBtA1qIcYDIAZBsA1qIeABIAZBrA1qIQMgBkGoDWohpQEgBkGkDWohogIgBkGgDWohRSAGQZwNaiGmASAGQZgNaiEVIAZBlA1qIUYgBkGQDWohowIgBkGMDWohxwMgBkGIDWohpAIgBkGEDWohcyAGQYANaiHIAyAGQfwMaiGnASAGQfgMaiH3AiAGQfQMaiGoASAGQfAMaiEpIAZB7AxqIckDIAZB6AxqITsgBkHkDGoh+AIgBkHgDGoh+QIgBkHcDGohHiAGQdgMaiGlAiAGQdQMaiHKAyAGQdAMaiGpASAGQcwMaiGmAiAGQcgMaiGnAiAGQcQMaiHhASAGQcAMaiFXIAZBvAxqIagCIAZBuAxqIakCIAZBtAxqIfoCIAZBsAxqIaoCIAZBrAxqIeIBIAZBqAxqIeMBIAZBpAxqIasCIAZBoAxqIcsDIAZBnAxqITEgBkGYDGoh+wIgBkGUDGohdCAGQZAMaiHMAyAGQYwMaiF1IAZBiAxqIaoBIAZBhAxqIfwCIAZBgAxqIVggBkH8C2oh/QIgBkH4C2ohdiAGQfQLaiF3IAZB8AtqIc0DIAZB7AtqIc4DIAZB6AtqIeQBIAZB5AtqIQQgBkHgC2ohqwEgBkHcC2ohrAIgBkHYC2ohRyAGQdQLaiGsASAGQdALaiEWIAZBzAtqIUggBkHIC2ohrQIgBkHEC2ohzwMgBkHAC2ohrgIgBkG8C2oheCAGQbgLaiHQAyAGQbQLaiGtASAGQbALaiH+AiAGQawLaiGuASAGQagLaiEqIAZBpAtqIdEDIAZBoAtqITwgBkGcC2oh/wIgBkGYC2ohgAMgBkGUC2ohHyAGQZALaiGvAiAGQYwLaiHSAyAGQYgLaiGvASAGQYQLaiGwAiAGQYALaiGxAiAGQfwKaiHlASAGQfgKaiFZIAZB9ApqIbICIAZB8ApqIbMCIAZB7ApqIYEDIAZB6ApqIbQCIAZB5ApqIeYBIAZB4ApqIecBIAZB3ApqIbUCIAZB2ApqIdMDIAZB1ApqITIgBkHQCmohggMgBkHMCmoheSAGQcgKaiHUAyAGQcQKaiF6IAZBwApqIbABIAZBvApqIYMDIAZBuApqIVogBkG0CmohhAMgBkGwCmoheyAGQawKaiF8IAZBqApqIdUDIAZBpApqIdYDIAZBoApqIegBIAZBnApqIQUgBkGYCmohsQEgBkGUCmoh6QEgBkGQCmoh1wMgBkGMCmoh2AMgBkGICmoh2QMgBkGECmoh2gMgBkGACmoh2wMgBkH8CWohhQMgBkH4CWohhgMgBkH0CWoh6gEgBkHwCWohsgEgBkHsCWohWyAGQegJaiF9IAZB5AlqIX4gBkHgCWohswEgBkHcCWohtAEgBkHYCWoh6wEgBkHUCWoh7AEgBkHQCWoh7QEgBkHMCWoh7gEgBkHICWohhwMgBkHECWohiAMgBkHACWoh3AMgBkG8CWoh3QMgBkG4CWohtQEgBkG0CWoh3gMgBkGwCWohtgEgBkGsCWohtwEgBkGoCWohiQMgBkGkCWohigMgBkGgCWohtgIgBkGcCWohSSAGQZgJaiG4ASAGQZQJaiEXIAZBkAlqIUogBkGMCWohtwIgBkGICWoh3wMgBkGECWohuAIgBkGACWohfyAGQfwIaiHgAyAGQfgIaiG5ASAGQfQIaiGLAyAGQfAIaiG6ASAGQewIaiErIAZB6AhqIeEDIAZB5AhqIT0gBkHgCGohjAMgBkHcCGohjQMgBkHYCGohICAGQdQIaiG5AiAGQdAIaiHiAyAGQcwIaiG7ASAGQcgIaiG6AiAGQcQIaiG7AiAGQcAIaiHvASAGQbwIaiFcIAZBuAhqIbwCIAZBtAhqIb0CIAZBsAhqIY4DIAZBrAhqIb4CIAZBqAhqIfABIAZBpAhqIfEBIAZBoAhqIb8CIAZBnAhqIeMDIAZBmAhqITMgBkGUCGohjwMgBkGQCGohgAEgBkGMCGoh5AMgBkGICGohgQEgBkGECGohvAEgBkGACGohkAMgBkH8B2ohXSAGQfgHaiGRAyAGQfQHaiGCASAGQfAHaiGDASAGQewHaiHlAyAGQegHaiHmAyAGQeQHaiHyASAGQeAHaiELIAZB3AdqIb0BIAZB2AdqIcACIAZB1AdqIUsgBkHQB2ohvgEgBkHMB2ohGCAGQcgHaiFMIAZBxAdqIcECIAZBwAdqIecDIAZBvAdqIcICIAZBuAdqIYQBIAZBtAdqIegDIAZBsAdqIb8BIAZBrAdqIZIDIAZBqAdqIcABIAZBpAdqISwgBkGgB2oh6QMgBkGcB2ohPiAGQZgHaiGTAyAGQZQHaiGUAyAGQZAHaiEhIAZBjAdqIcMCIAZBiAdqIeoDIAZBhAdqIcEBIAZBgAdqIcQCIAZB/AZqIcUCIAZB+AZqIfMBIAZB9AZqIV4gBkHwBmohxgIgBkHsBmohxwIgBkHoBmohlQMgBkHkBmohyAIgBkHgBmoh9AEgBkHcBmoh9QEgBkHYBmohyQIgBkHUBmoh6wMgBkHQBmohNCAGQcwGaiGWAyAGQcgGaiGFASAGQcQGaiHsAyAGQcAGaiGGASAGQbwGaiHCASAGQbgGaiGXAyAGQbQGaiFfIAZBsAZqIZgDIAZBrAZqIYcBIAZBqAZqIYgBIAZBpAZqIe0DIAZBoAZqIe4DIAZBnAZqIfYBIAZBmAZqIQ0gBkGUBmohwwEgBkGQBmohygIgBkGMBmohTSAGQYgGaiHEASAGQYQGaiEZIAZBgAZqIU4gBkH8BWohywIgBkH4BWoh7wMgBkH0BWohzAIgBkHwBWohiQEgBkHsBWoh8AMgBkHoBWohxQEgBkHkBWohmQMgBkHgBWohxgEgBkHcBWohLSAGQdgFaiHxAyAGQdQFaiE/IAZB0AVqIZoDIAZBzAVqIZsDIAZByAVqISIgBkHEBWohzQIgBkHABWoh8gMgBkG8BWohxwEgBkG4BWohzgIgBkG0BWohzwIgBkGwBWoh9wEgBkGsBWohYCAGQagFaiHQAiAGQaQFaiHRAiAGQaAFaiGcAyAGQZwFaiHSAiAGQZgFaiH4ASAGQZQFaiH5ASAGQZAFaiHTAiAGQYwFaiHzAyAGQYgFaiE1IAZBhAVqIZ0DIAZBgAVqIYoBIAZB/ARqIfQDIAZB+ARqIYsBIAZB9ARqIcgBIAZB8ARqIZ4DIAZB7ARqIWEgBkHoBGohnwMgBkHkBGohjAEgBkHgBGohjQEgBkHcBGoh9QMgBkHYBGoh9gMgBkHUBGoh+gEgBkHQBGohDiAGQcwEaiHJASAGQcgEaiHUAiAGQcQEaiFPIAZBwARqIcoBIAZBvARqIRogBkG4BGohUCAGQbQEaiHVAiAGQbAEaiH3AyAGQawEaiHWAiAGQagEaiGOASAGQaQEaiH4AyAGQaAEaiHLASAGQZwEaiGgAyAGQZgEaiHMASAGQZQEaiEuIAZBkARqIfkDIAZBjARqIUAgBkGIBGohoQMgBkGEBGohogMgBkGABGohIyAGQfwDaiHXAiAGQfgDaiH6AyAGQfQDaiHNASAGQfADaiHYAiAGQewDaiHZAiAGQegDaiH7ASAGQeQDaiFiIAZB4ANqIdoCIAZB3ANqIdsCIAZB2ANqIaMDIAZB1ANqIdwCIAZB0ANqIfwBIAZBzANqIf0BIAZByANqId0CIAZBxANqIfsDIAZBwANqITYgBkG8A2ohpAMgBkG4A2ohjwEgBkG0A2oh/AMgBkGwA2ohkAEgBkGsA2ohzgEgBkGoA2ohpQMgBkGkA2ohYyAGQaADaiGmAyAGQZwDaiGRASAGQZgDaiGSASAGQZQDaiH9AyAGQZADaiH+AyAGQYwDaiH+ASAGQYgDaiEPIAZBhANqIc8BIAZBgANqIf8BIAZB/AJqIf8DIAZB+AJqIYAEIAZB9AJqIYEEIAZB8AJqIYIEIAZB7AJqIYMEIAZB6AJqIacDIAZB5AJqIagDIAZB4AJqIYACIAZB3AJqIdABIAZB2AJqIWQgBkHUAmohkwEgBkHQAmohlAEgBkHMAmoh0QEgBkHIAmoh0gEgBkHEAmohgQIgBkHAAmohggIgBkG8AmohgwIgBkG4AmohhAIgBkG0AmohqQMgBkHoAWohACAGQeQBaiE3IAZB2AFqId4CIAZB1AFqIQEgBkHQAWohJSAGQcwBaiGFAiAGQcgBaiHfAiAGQcQBaiGGAiAGQcABaiGqAyAGQbwBaiGHAiAGQbgBaiHTASAGQbQBaiGrAyAGQbABaiGEBCAGQawBaiEbIAZBqAFqIdQBIAZBpAFqIeACIAZBoAFqIYUEIAZBlAFqIawDIAZBkAFqIYYEIAZBjAFqIYgCIAZBiAFqIZUBIAZBhAFqIeECIAZBgAFqIa0DIAZB/ABqIdUBIAZB+ABqIYcEIAZB9ABqIYgEIAZB8ABqIYkCIAZB7ABqIWUgBkHoAGoh4gIgBkHkAGoh4wIgBkHYAGohrgMgBkHUAGohiQQgBkHQAGohigQgBkHMAGohlgEgBkHIAGohUSAGQcQAaiGvAyAGQUBrIbADIAZBPGohsQMgBkE4aiFmIAZBNGoh5AIgBkEwaiGLBCAGQSxqIWcgBkEoaiHlAiAGQSRqIdYBIAZBIGoh1wEgBkEcaiGKAiAGQRhqIYwEIAZB8AFqIo0EINgBKAIAKAIUQf8fSQR/INgBKAIAKAIUBUH/HwsiiwI2AgAgBkHsAWoiiwIg2AEoAgAoAhBBA0YEf0EDBUEECzYCACAAIDgoAgAoAhQ2AgAgNyA4KAIAKAIQNgIAIGgoAgAgaCgCACgCGDYCHCA4KAIAIAcoAgAgCCgCABDwAiAkICQoAgAgJCgCACAJKAIARmo2AgAg3gJCADcCACDeAkEANgIIA0AgJCgCACCzAygCAEkEQCAlQQA2AgAghgIgJCgCACBSKAIAazYCACCqAyCGAigCAEEAR0EBczYCACDYASgCACEHICQoAgAhCCCNAigCACEJILIDKAIAIQogJigCACEMIKoDKAIAIRAgNygCACERIIsCKAIAIRIgZCBoKAIANgIAIJMBIAc2AgAglAEgCDYCACDRASAJNgIAINIBIAo2AgAggQIgDDYCACCCAiAQNgIAIIMCIBE2AgAghAIgEjYCACCpAyCTASgCACgCEDYCAAJAIJQBKAIAIGQoAgAoAgQgZCgCACgCGGpJBEAg0AFBADYCAAUgkwEoAgAhByCUASgCACEIINEBKAIAIQkgqQMoAgAhCiDSASgCACEMIP8BIGQoAgA2AgAg/wMgBzYCACCABCAINgIAIIEEIAk2AgAgggQgCjYCACCDBCAMNgIAIKcDIP8BKAIAKAIENgIAIKgDIIAEKAIAIKcDKAIAazYCACCAAiD/ASgCACgCGDYCAANAIIACKAIAIKgDKAIASQRAIP8BKAIAIP8DKAIAIKcDKAIAIIACKAIAaiCBBCgCACCCBCgCACCDBCgCABC6AiEHIIACIIACKAIAIAdqNgIADAELCyD/ASgCACCoAygCADYCGAJAAkACQAJAIKkDKAIAQQNrDgUAAwIBAQMLIJMBKAIAIQcglAEoAgAhCCDRASgCACEJINIBKAIAIQoggQIoAgAhDCCCAigCACEQIIMCKAIAIREghAIoAgAhEiBPIGQoAgA2AgAgygEgBzYCACAaIAg2AgAgUCAJNgIAINUCIAo2AgAg9wMgDDYCACDWAiAQNgIAII4BIBE2AgAg+AMgEjYCACDLAUEDNgIAIKADIMoBKAIAKAIUQf8fSQR/IMoBKAIAKAIUBUH/HwsiBzYCACDMASBPKAIAKAIENgIAIC4gGigCACDMASgCAGs2AgAg+QMgygEoAgAoAgg2AgAgQCDLASgCAEEDRgR/QQMFQQQLNgIAIKEDIE8oAgAoAiQ2AgAgogMgGigCACD5AygCACDLASgCABC7AjYCACAjIKEDKAIAIKIDKAIAQQJ0aigCADYCACDXAiBPKAIAKAIsNgIAIPoDIMoBKAIAKAIEQQFrNgIAIM0BQQEg+gMoAgB0QQFrNgIAINgCQQA2AgAg2QJBADYCACD7ASBPKAIAKAIINgIAIGIgTygCACgCDDYCACDaAiD7ASgCACBiKAIAajYCACDbAiDMASgCACBiKAIAajYCACCjAyDNASgCACAuKAIATwR/QQAFIC4oAgAgzQEoAgBrCyIHNgIAINwCIE8oAgAoAhA2AgAg/AEg1wIoAgAgLigCACDNASgCAHFBA3RqNgIAIP0BINcCKAIAIC4oAgAgzQEoAgBxQQN0akEEajYCACDdAiAuKAIAQQlqNgIAIDZBADYCACCkA0EBIMoBKAIAKAIMdDYCACCPASD4AygCAEEBazYCACD8AyDWAigCAEEDajYCACCQASDWAigCADYCAAJAAkACQANAIJABKAIAIPwDKAIATw0CIPcDKAIAIQcgzgEgkAEoAgBBA0YEfyAHKAIAQQFrBSAHIJABKAIAQQJ0aigCAAsiBzYCACClAyAuKAIAIM4BKAIAazYCACBjQQA2AgAgzgEoAgBBAWsgLigCACBiKAIAa0kEQCAaKAIAIEAoAgAQ8QIgGigCACDOASgCAGsgQCgCABDxAkYEQCBjIBooAgAgQCgCAGogGigCACBAKAIAaiDOASgCAGsgUCgCABC8AiBAKAIAajYCAAsFIKYDIPsBKAIAIKUDKAIAajYCACDVAigCAARAIM4BKAIAQQFrIC4oAgAg3AIoAgBrSSBiKAIAQQFrIKUDKAIAa0EDT3EEQCAaKAIAIEAoAgAQ8QIgpgMoAgAgQCgCABDxAkYEQCBjIBooAgAgQCgCAGogpgMoAgAgQCgCAGogUCgCACDaAigCACDbAigCABC9AiBAKAIAajYCAAsLCwsgYygCACCPASgCAEsEQCCPASBjKAIANgIAII4BKAIAIDYoAgBBA3RqIJABKAIAINYCKAIAazYCACCOASgCACA2KAIAQQN0aiBjKAIANgIEIDYgNigCAEEBajYCACBjKAIAIKADKAIASyAaKAIAIGMoAgBqIFAoAgBGcg0CCyCQASCQASgCAEEBajYCAAwACwALINQCIDYoAgA2AgAMAQsgywEoAgBBA0YEQCCPASgCACDLASgCAEkEQCCRASBPKAIAIBooAgAQ8gI2AgAgkQEoAgAg3AIoAgBLIC4oAgAgkQEoAgBrQYCAEElxBEACQAJAINUCKAIARQ0AIJEBKAIAIGIoAgBPDQAg/gMg+wEoAgAgkQEoAgBqNgIAIJIBIBooAgAg/gMoAgAgUCgCACDaAigCACDbAigCABC9AjYCAAwBCyD9AyDMASgCACCRASgCAGo2AgAgkgEgGigCACD9AygCACBQKAIAELwCNgIACyCSASgCACDLASgCAE8EQCCPASCSASgCADYCACCOASgCACAuKAIAIJEBKAIAa0ECajYCACCOASgCACCSASgCADYCBCA2QQE2AgAgkgEoAgAgoAMoAgBLIBooAgAgkgEoAgBqIFAoAgBGcgRAIE8oAgAgLigCAEEBajYCGCDUAkEBNgIADAULCwsLCyChAygCACCiAygCAEECdGogLigCADYCAAJAAkACQANAAkAgpAMgpAMoAgAiB0F/ajYCACAHRQ0AICMoAgAg3AIoAgBNDQAg/gEg1wIoAgAgIygCACDNASgCAHFBA3RqNgIAINgCKAIAIQcg2QIoAgAhCCAPINgCKAIAINkCKAIASQR/IAcFIAgLNgIAAkACQCDVAigCAEUNACAjKAIAIA8oAgBqIGIoAgBPDQAgzwEg+wEoAgAgIygCAGo2AgAgGigCACAPKAIAaiDPASgCACAPKAIAaiBQKAIAINoCKAIAINsCKAIAEL0CIQcgDyAPKAIAIAdqNgIAICMoAgAgDygCAGogYigCAE8EQCDPASDMASgCACAjKAIAajYCAAsMAQsgzwEgzAEoAgAgIygCAGo2AgAgGigCACAPKAIAaiDPASgCACAPKAIAaiBQKAIAELwCIQcgDyAPKAIAIAdqNgIACyAPKAIAII8BKAIASwRAIA8oAgAg3QIoAgAgIygCAGtLBEAg3QIgIygCACAPKAIAajYCAAsgjwEgDygCADYCACCOASgCACA2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KAIASyAXKAIAIIMBKAIAaiBKKAIARnIEQCBJKAIAICsoAgBBAWo2AhggtgJBATYCAAwFCwsLCwsgjAMoAgAgjQMoAgBBAnRqICsoAgA2AgACQAJAAkADQAJAII8DII8DKAIAIgdBf2o2AgAgB0UNACAgKAIAIL4CKAIATQ0AIPIBILkCKAIAICAoAgAguwEoAgBxQQN0ajYCACC6AigCACEHILsCKAIAIQggCyC6AigCACC7AigCAEkEfyAHBSAICzYCAAJAAkAgtwIoAgBFDQAgICgCACALKAIAaiBcKAIATw0AIL0BIO8BKAIAICAoAgBqNgIAIBcoAgAgCygCAGogvQEoAgAgCygCAGogSigCACC8AigCACC9AigCABC9AiEHIAsgCygCACAHajYCACAgKAIAIAsoAgBqIFwoAgBPBEAgvQEgugEoAgAgICgCAGo2AgALDAELIL0BILoBKAIAICAoAgBqNgIAIBcoAgAgCygCAGogvQEoAgAgCygCAGogSigCABC8AiEHIAsgCygCACAHajYCAAsgCygCACCAASgCAEsEQCALKAIAIL8CKAIAICAoAgBrSwRAIL8CICAoAgAgCygCAGo2AgALIIABIAsoAgA2AgAgfygCACAzKAIAQQN0aiArKAIAICAoAgBrQQJqNgIAIH8oAgAgMygCAEEDdGogCygCADYCBCAzIDMoAgBBAWo2AgAgCygCAEGAIEsNASAXKAIAIAsoAgBqIEooAgBGDQELICAoAgAhByC9ASgCACALKAIAai0AACAXKAIAIAsoAgBqLQAASARAIPABKAIAIAc2AgAgugIgCygCADYCACAgKAIAII4DKAIATQ0DIPABIPIBKAIAQQRqNgIAICAg8gEoAgAoAgQ2AgAFIPEBKAIAIAc2AgAguwIgCygCADYCACAgKAIAII4DKAIATQ0EIPEBIPIBKAIANgIAICAg8gEoAgAoAgA2AgALDAELCwwCCyDwASDjAzYCAAwBCyDxASDjAzYCAAsg8QEoAgBBADYCACDwASgCAEEANgIAIEkoAgAgvwIoAgBBCGs2AhggtgIgMygCADYCAAsg0AEgtgIoAgA2AgAMAwsgkwEoAgAhByCUASgCACEIINEBKAIAIQkg0gEoAgAhCiCBAigCACEMIIICKAIAIRAggwIoAgAhESCEAigCACESIEsg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sgFBADYCAAUgfSgCACEHIH4oAgAhCCCzASgCACEJIIcDKAIAIQogtAEoAgAhDCDpASBbKAIANgIAINcDIAc2AgAg2AMgCDYCACDZAyAJNgIAINoDIAo2AgAg2wMgDDYCACCFAyDpASgCACgCBDYCACCGAyDYAygCACCFAygCAGs2AgAg6gEg6QEoAgAoAhg2AgADQCDqASgCACCGAygCAEkEQCDpASgCACDXAygCACCFAygCACDqASgCAGog2QMoAgAg2gMoAgAg2wMoAgAQugIhByDqASDqASgCACAHajYCAAwBCwsg6QEoAgAghgMoAgA2AhgCQAJAAkACQCCHAygCAEEDaw4FAAMCAQEDCyB9KAIAIQcgfigCACEIILMBKAIAIQkgtAEoAgAhCiDrASgCACEMIOwBKAIAIRAg7QEoAgAhESDuASgCACESIEcgWygCADYCACCsASAHNgIAIBYgCDYCACBIIAk2AgAgrQIgCjYCACDPAyAMNgIAIK4CIBA2AgAgeCARNgIAINADIBI2AgAgrQFBAzYCACD+AiCsASgCACgCFEH/H0kEfyCsASgCACgCFAVB/x8LIgc2AgAgrgEgRygCACgCBDYCACAqIBYoAgAgrgEoAgBrNgIAINEDIKwBKAIAKAIINgIAIDwgrQEoAgBBA0YEf0EDBUEECzYCACD/AiBHKAIAKAIkNgIAIIADIBYoAgAg0QMoAgAgrQEoAgAQuwI2AgAgHyD/AigCACCAAygCAEECdGooAgA2AgAgrwIgRygCACgCLDYCACDSAyCsASgCACgCBEEBazYCACCvAUEBINIDKAIAdEEBazYCACCwAkEANgIAILECQQA2AgAg5QEgRygCACgCCDYCACBZIEcoAgAoAgw2AgAgsgIg5QEoAgAgWSgCAGo2AgAgswIgrgEoAgAgWSgCAGo2AgAggQMgrwEoAgAgKigCAE8Ef0EABSAqKAIAIK8BKAIAawsiBzYCACC0AiBHKAIAKAIQNgIAIOYBIK8CKAIAICooAgAgrwEoAgBxQQN0ajYCACDnASCvAigCACAqKAIAIK8BKAIAcUEDdGpBBGo2AgAgtQIgKigCAEEJajYCACAyQQA2AgAgggNBASCsASgCACgCDHQ2AgAgeSDQAygCAEEBazYCACDUAyCuAigCAEEDajYCACB6IK4CKAIANgIA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NgIAAkACQCBRKAIAICUoAgBLDQAgrwMoAgAgACgCACBRKAIAQRxsaigCAEgNACCMAigCAEUNAgwBCwNAICUoAgAgUSgCAEkEQCAAKAIAICUoAgBBAWpBHGxqQYCAgIAENgIAICUgJSgCAEEBajYCAAwBCwsgACgCACBRKAIAQRxsaiCWASgCADYCCCAAKAIAIFEoAgBBHGxqIOMCKAIANgIEIAAoAgAgUSgCAEEcbGog1QEoAgA2AgwgACgCACBRKAIAQRxsaiCvAygCADYCACAAKAIAIFEoAgBBHGxqQRBqIgcgrgMpAgA3AgAgByCuAygCCDYCCAsglgEglgEoAgBBf2o2AgAMAQsLIGUgZSgCAEEBajYCAAwACwALCwsgASABKAIAQQFqNgIADAALAAsghQIg4gIoAgA2AgAg3wIgNygCACCJAigCAEEBa0EDdGooAgA2AgAgJSABKAIAQQFqNgIADAILIIUCIAAoAgAgJSgCAEEcbGooAgg2AgAg3wIgACgCACAlKAIAQRxsaigCBDYCACABICUoAgAghQIoAgBrNgIACwsgsAMghQIoAgA2AgAgsQMg3wIoAgA2AgAgZiABKAIANgIAA0Ag5AIgACgCACBmKAIAQRxsaigCCDYCACCLBCAAKAIAIGYoAgBBHGxqKAIENgIAIAAoAgAgZigCAEEcbGogsAMoAgA2AgggACgCACBmKAIAQRxsaiCxAygCADYCBCCwAyDkAigCADYCACCxAyCLBCgCADYCACDkAigCACBmKAIATQRAIGYgZigCACDkAigCAGs2AgAMAQsLIGdBADYCAANAIGcoAgAgJSgCAEkEQCDlAiAkKAIAIFIoAgBrNgIAINYBIAAoAgAgZygCAEEcbGooAgg2AgAg1wEgACgCACBnKAIAQRxsaigCBDYCACDWASgCAEEBRgRAICQgJCgCAEEBajYCACBnIGcoAgBBAWo2AgAMAgsgZyBnKAIAINYBKAIAajYCACAkICQoAgAg1gEoAgBqNgIAINcBKAIAQQNPBEAgJigCACAmKAIAKAIENgIIICYoAgAgJigCACgCADYCBCAmKAIAINcBKAIAQQJrNgIABSCKAiDXASgCACDlAigCAEVqNgIAIIoCKAIABEAgJigCACEHIIwEIIoCKAIAQQNGBH8gBygCAEEBawUgByCKAigCAEEC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ACEQIDcoAgAhESCLAigCACESIGQgaCgCADYCACCTASAHNgIAIJQBIAg2AgAg0QEgCTYCACDSASAKNgIAIIECIAw2AgAgggIgEDYCACCDAiARNgIAIIQCIBI2AgAgqQMgkwEoAgAoAhA2AgACQCCUASgCACBkKAIAKAIEIGQoAgAoAhhqSQRAINABQQA2AgAFIJMBKAIAIQcglAEoAgAhCCDRASgCACEJIKkDKAIAIQog0gEoAgAhDCD/ASBkKAIANgIAIP8DIAc2AgAggAQgCDYCACCBBCAJNgIAIIIEIAo2AgAggwQgDDYCACCnAyD/ASgCACgCBDYCACCoAyCABCgCACCnAygCAGs2AgAggAIg/wEoAgAoAhg2AgADQCCAAigCACCoAygCAEkEQCD/ASgCACD/AygCACCnAygCACCAAigCAGoggQQoAgAgggQoAgAggwQoAgAQugIhByCAAiCAAigCACAHajYCAAwBCwsg/wEoAgAgqAMoAgA2AhgCQAJAAkACQCCpAygCAEEDaw4FAAMCAQEDCyCTASgCACEHIJQBKAIAIQgg0QEoAgAhCSDSASgCACEKIIECKAIAIQwgggIoAgAhECCDAigCACERIIQCKAIAIRIgTyBkKAIANgIAIMoBIAc2AgAgGiAINgIAIFAgCTYCACDVAiAKNgIAIPcDIAw2AgAg1gIgEDYCACCOASARNgIAIPgDIBI2AgAgywFBAzYCACCgAyDKASgCACgCFEH/H0kEfyDKASgCACgCFAVB/x8LIgc2AgAgzAEgTygCACgCBDYCACAuIBooAgAgzAEoAgBrNgIAIPkDIMoBKAIAKAIINgIAIEAgywEoAgBBA0YEf0EDBUEECzYCACChAyBPKAIAKAIkNgIAIKIDIBooAgAg+QMoAgAgywEoAgAQuwI2AgAgIyChAygCACCiAygCAEECdGooAgA2AgAg1wIgTygCACgCLDYCACD6AyDKASgCACgCBEEBazYCACDNAUEBIPoDKAIAdEEBazYCACDYAkEANgIAINkCQQA2AgAg+wEgTygCACgCCDYCACBiIE8oAgAoAgw2AgAg2gIg+wEoAgAgYigCAGo2AgAg2wIgzAEoAgAgYigCAGo2AgAgowMgzQEoAgAgLigCAE8Ef0EABSAuKAIAIM0BKAIAawsiBzYCACDcAiBPKAIAKAIQ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a0EDT3EEQCAXKAIAID0oAgAQ8QIgkQMoAgAgPSgCABDxAkYEQCBdIBcoAgAgPSgCAGogkQMoAgAgPSgCAGogSigCACC8AigCACC9AigCABC9AiA9KAIAajYCAAsLCwsgXSgCACCAASgCAEsEQCCAASBdKAIANgIAIH8oAgAgMygCAEEDdGoggQEoAgAguAIoAgBrNgIAIH8oAgAgMygCAEEDdGogXSgCADYCBCAzIDMoAgBBAWo2AgAgXSgCACCLAygCAEsgFygCACBdKAIAaiBKKAIARnINAgsggQEggQEoAgBBAWo2AgAMAAsACyC2AiAzKAIANgIADAELILkBKAIAQQNGBEAggAEoAgAguQEoAgBJBEAgggEgSSgCACAXKAIAEPICNgIAIIIBKAIAIL4CKAIASyArKAIAIIIBKAIAa0GAgBBJcQRAAkACQCC3AigCAEUNACCCASgCACBcKAIATw0AIOYDIO8BKAIAIIIBKAIAajYCACCDASAXKAIAIOYDKAIAIEooAgAgvAIoAgAgvQIoAgAQvQI2AgAMAQsg5QMgugEoAgAgggEoAgBqNgIAIIMBIBcoAgAg5QMoAgAgSigCABC8AjYCAAsggwEoAgAguQEoAgBPBEAggAEggwEoAgA2AgAgfygCACArKAIAIIIBKAIAa0ECajYCACB/KAIAIIMBKAIANgIEIDNBATYCACCDASgCACCLAygCAEsgFygCACCDASgCAGogSigCAEZyBEAgSSgCACArKAIAQQFqNgIYILYCQQE2AgAMBQsLCwsLIIwDKAIAII0DKAIAQQJ0aiArKAIANgIAAkACQAJAA0ACQCCPAyCPAygCACIHQX9qNgIAIAdFDQAgICgCACC+AigCAE0NACDyASC5AigCACAgKAIAILsBKAIAcUEDdGo2AgAgugIoAgAhByC7AigCACEIIAsgugIoAgAguwIoAgBJBH8gBwUgCAs2AgACQAJAILcCKAIARQ0AICAoAgAgCygCAGogXCgCAE8NACC9ASDvASgCACAgKAIAajYCACAXKAIAIAsoAgBqIL0BKAIAIAsoAgBqIEooAgAgvAIoAgAgvQIoAgAQvQIhByALIAsoAgAgB2o2AgAgICgCACALKAIAaiBcKAIATwRAIL0BILoBKAIAICAoAgBqNgIACwwBCyC9ASC6ASgCACAgKAIA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CyCFAiAAKAIAICUoAgBBHGxqKAIINgIAIN8CIAAoAgAgJSgCAEEcbGooAgQ2AgAgASAlKAIAIIUCKAIAazYCAAsLILADIIUCKAIANgIAILEDIN8CKAIANgIAIGYgASgCADYCAANAIOQCIAAoAgAgZigCAEEcbGooAgg2AgAgiwQgACgCACBmKAIAQRxsaigCBDYCACAAKAIAIGYoAgBBHGxqILADKAIANgIIIAAoAgAgZigCAEEcbGogsQMoAgA2AgQgsAMg5AIoAgA2AgAgsQMgiwQoAgA2AgAg5AIoAgAgZigCAE0EQCBmIGYoAgAg5AIoAgBrNgIADAELCyBnQQA2AgADQCBnKAIAICUoAgBJBEAg5QIgJCgCACBSKAIAazYCACDWASAAKAIAIGcoAgBBHGxqKAIINgIAINcBIAAoAgAgZygCAEEcbGooAgQ2AgAg1gEoAgBBAUYEQCAkICQoAgBBAWo2AgAgZyBnKAIAQQFqNgIADAILIGcgZygCACDWASgCAGo2AgAgJCAkKAIAINYBKAIAajYCACDXASgCAEEDTwRAICYoAgAgJigCACgCBDYCCCAmKAIAICYoAgAoAgA2AgQgJigCACDXASgCAEECazYCAAUgigIg1wEoAgAg5QIoAgBFajYCACCKAigCAARAICYoAgAhByCMBCCKAigCAEEDRgR/IAcoAgBBAWsFIAcgigIoAgBBAnRqKAIACyIHNgIAIIoCKAIAQQJPBEAgJigCACAmKAIAKAIENgIICyAmKAIAICYoAgAoAgA2AgQgJigCACCMBCgCADYCAAsLIDgoAgAg5QIoAgAgUigCACDXASgCACDWASgCABD4AiCOBCgCACDlAigCACBSKAIAINcBKAIAINYBKAIAQQNrEPkCIFIgJCgCADYCAAwBCwsgOCgCABD6AgwBCwsgjQIoAgAgUigCAGshACAGJAUgAAuM1gEBiQR/IwUhBiMFQeAQaiQFIAZBFGoiCyAANgIAIAZBEGoiACABNgIAIAZBDGoiASACNgIAIAZBCGoiAiADNgIAIAZBBGoiAyAENgIAIAYgBTYCACAAKAIAIQAgASgCACEBIAIoAgAhAiADKAIAIQMgBigCACEEIAZBsAJqImggCygCADYCACAGQawCaiKOBCAANgIAIAZBqAJqIiYgATYCACAGQaQCaiLYASAC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ABC9AiBAKAIAajYCAAsLCwsgYygCACCPASgCAEsEQCCPASBjKAIANgIAII4BKAIAIDYoAgBBA3RqIJABKAIAINYCKAIAazYCACCOASgCACA2KAIAQQN0aiBjKAIANgIEIDYgNigCAEEBajYCACBjKAIAIKADKAIASyAaKAIAIGMoAgBqIFAoAgBGcg0CCyCQASCQASgCAEEBajYCAAwACwALINQCIDYoAgA2AgAMAQsgywEoAgBBA0YEQCCPASgCACDLASgCAEkEQCCRASBPKAIAIBooAgAQ8gI2AgAgkQEoAgAg3AIoAgBLIC4oAgAgkQEoAgBrQYCAEElxBEACQAJAINUCKAIARQ0AIJEBKAIAIGIoAgBPDQAg/gMg+wEoAgAgkQEoAgBqNgIAIJIBIBooAgAg/gMoAgAgUCgCACDaAigCACDbAigCABC9AjYCAAwBCyD9AyDMASgCACCRASgCAGo2AgAgkgEgGigCACD9AygCACBQKAIAELwCNgIACyCSASgCACDLASgCAE8EQCCPASCSASgCADYCACCOASgCACAuKAIAIJEBKAIAa0ECajYCACCOASgCACCSASgCADYCBCA2QQE2AgAgkgEoAgAgoAMoAgBLIBooAgAgkgEoAgBqIFAoAgBGcgRAIE8oAgAgLigCAEEBajYCGCDUAkEBNgIADAULCwsLCyChAygCACCiAygCAEECdGogLigCADYCAAJAAkACQANAAkAgpAMgpAMoAgAiB0F/ajYCACAHRQ0AICMoAgAg3AIoAgBNDQAg/gEg1wIoAgAgIygCACDNASgCAHFBA3RqNgIAINgCKAIAIQcg2QIoAgAhCCAPINgCKAIAINkCKAIASQR/IAcFIAgLNgIAAkACQCDVAigCAEUNACAjKAIAIA8oAgBqIGIoAgBPDQAgzwEg+wEoAgAgIygCAGo2AgAgGigCACAPKAIAaiDPASgCACAPKAIAaiBQKAIAINoCKAIAINsCKAIAEL0CIQcgDyAPKAIAIAdqNgIAICMoAgAgDygCAGogYigCAE8EQCDPASDMASgCACAjKAIAajYCAAsMAQsgzwEgzAEoAgAgIygCAGo2AgAgGigCACAPKAIAaiDPASgCACAPKAIAaiBQKAIAELwCIQcgDyAPKAIAIAdqNgIACyAPKAIAII8BKAIASwRAIA8oAgAg3QIoAgAgIygCAGtLBEAg3QIgIygCACAPKAIAajYCAAsgjwEgDygCADYCACCOASgCACA2KAIAQQN0aiAuKAIAICMoAgBrQQJqNgIAII4BKAIAIDYoAgBBA3RqIA8oAgA2AgQgNiA2KAIAQQFqNgIAIA8oAgBBgCBLDQEgGigCACAPKAIAaiBQKAIARg0BCyAjKAIAIQcgzwEoAgAgDygCAGotAAAgGigCACAPKAIAai0AAEgEQCD8ASgCACAHNgIAINgCIA8oAgA2AgAgIygCACCjAygCAE0NAyD8ASD+ASgCAEEEajYCACAjIP4BKAIAKAIENgIABSD9ASgCACAHNgIAINkCIA8oAgA2AgAgIygCACCjAygCAE0NBCD9ASD+ASgCADYCACAjIP4BKAIAKAIANgIACwwBCwsMAgsg/AEg+wM2AgAMAQsg/QEg+wM2AgALIP0BKAIAQQA2AgAg/AEoAgBBADYCACBPKAIAIN0CKAIAQQhrNgIYINQCIDYoAgA2AgALINABINQCKAIANgIADAQLIJMBKAIAIQcglAEoAgAhCCDRASgCACEJINIBKAIAIQoggQIoAgAhDCCCAigCACEQIIMCKAIAIREghAIoAgAhEiBJIGQoAgA2AgAguAEgBzYCACAXIAg2AgAgSiAJNgIAILcCIAo2AgAg3wMgDDYCACC4AiAQNgIAIH8gETYCACDgAyASNgIAILkBQQY2AgAgiwMguAEoAgAoAhRB/x9JBH8guAEoAgAoAhQFQf8fCyIHNgIAILoBIEkoAgAoAgQ2AgAgKyAXKAIAILoBKAIAazYCACDhAyC4ASgCACgCCDYCACA9ILkBKAIAQQNGBH9BAwVBBAs2AgAgjAMgSSgCACgCJDYCACCNAyAXKAIAIOEDKAIAILkBKAIAELsCNgIAICAgjAMoAgAgjQMoAgBBAnRqKAIANgIAILkCIEkoAgAoAiw2AgAg4gMguAEoAgAoAgRBAWs2AgAguwFBASDiAygCAHRBAWs2AgAgugJBADYCACC7AkEANgIAIO8BIEkoAgAoAgg2AgAgXCBJKAIAKAIMNgIAILwCIO8BKAIAIFwoAgBqNgIAIL0CILoBKAIAIFwoAgBqNgIAII4DILsBKAIAICsoAgBPBH9BAAUgKygCACC7ASgCAGsLIgc2AgAgvgIgSSgCACgCEDYCACDwASC5AigCACArKAIAILsBKAIAcUEDdGo2AgAg8QEguQIoAgAgKygCACC7ASgCAHFBA3RqQQRqNgIAIL8CICsoAgBBCWo2AgAgM0EANgIAII8DQQEguAEoAgAoAgx0NgIAIIABIOADKAIAQQFrNgIAIOQDILgCKAIAQQNqNgIAIIEBILgCKAIANgIAAkACQAJAA0AggQEoAgAg5AMoAgBPDQIg3wMoAgAhByC8ASCBASgCAEEDRgR/IAcoAgBBAWsFIAcggQEoAgBBAnRqKAIACyIHNgIAIJADICsoAgAgvAEoAgBrNgIAIF1BADYCACC8ASgCAEEBayArKAIAIFwoAgBrSQRAIBcoAgAgPSgCABDxAiAXKAIAILwBKAIAayA9KAIAEPECRgRAIF0gFygCACA9KAIAaiAXKAIAID0oAgBqILwBKAIAayBKKAIAELwCID0oAgBqNgIACwUgkQMg7wEoAgAgkAMoAgBqNgIAILcCKAIABEAgvAEoAgBBAWsgKygCACC+AigCAGtJIFwoAgBBAWsgkAMoAgBrQQNPcQRAIBcoAgAgPSgCABDxAiCRAygCACA9KAIAEPECRgRAIF0gFygCACA9KAIAaiCRAygCACA9KAIAaiBKKAIAILwCKAIAIL0CKAIAEL0CID0oAgBqNgIACwsLCyBdKAIAIIABKAIASwRAIIABIF0oAgA2AgAgfygCACAzKAIAQQN0aiCBASgCACC4AigCAGs2AgAgfygCACAzKAIAQQN0aiBdKAIANgIEIDMgMygCAEEBajYCACBdKAIAIIsDKAIASyAXKAIAIF0oAgBqIEooAgBGcg0CCyCBASCBASgCAEEBajYCAAwACwALILYCIDMoAgA2AgAMAQsguQEoAgBBA0YEQCCAASgCACC5ASgCAEkEQCCCASBJKAIAIBcoAgAQ8gI2AgAgggEoAgAgvgIoAgBLICsoAgAgggEoAgBrQYCAEElxBEACQAJAILcCKAIARQ0AIIIBKAIAIFwoAgBPDQAg5gMg7wEoAgAgggEoAgBqNgIAIIMBIBcoAgAg5gMoAgAgSigCACC8AigCACC9AigCABC9AjYCAAwBCyDlAyC6ASgCACCCASgCAGo2AgAggwEgFygCACDlAygCACBKKAIAELwCNgIACyCDASgCACC5ASgCAE8EQCCAASCDASgCADYCACB/KAIAICsoAgAgggEoAgBrQQJqNgIAIH8oAgAggwEoAgA2AgQgM0EBNgIAIIMBKAIAIIsDKAIASyAXKAIAIIMBKAIAaiBKKAIARnIEQCBJKAIAICsoAgBBAWo2AhggtgJBATYCAAwFCwsLCwsgjAMoAgAgjQMoAgBBAnRqICsoAgA2AgACQAJAAkADQAJAII8DII8DKAIAIgdBf2o2AgAgB0UNACAgKAIAIL4CKAIATQ0AIPIBILkCKAIAICAoAgAguwEoAgBxQQN0ajYCACC6AigCACEHILsCKAIAIQggCyC6AigCACC7AigCAEkEfyAHBSAICzYCAAJAAkAgtwIoAgBFDQAgICgCACALKAIAaiBcKAIATw0AIL0BIO8BKAIAICAoAgBqNgIAIBcoAgAgCygCAGogvQEoAgAgCygCAGogSigCACC8AigCACC9AigCABC9AiEHIAsgCygCACAHajYCACAgKAIAIAsoAgBqIFwoAgBPBEAgvQEgugEoAgAgICgCAGo2AgALDAELIL0BILoBKAIAICAoAgBqNgIAIBcoAgAgCygCAGogvQEoAgAgCygCAGogSigCABC8AiEHIAsgCygCACAHajYCAAsgCygCACCAASgCAEsEQCALKAIAIL8CKAIAICAoAgBrSwRAIL8CICAoAgAgCygCAGo2AgALIIABIAsoAgA2AgAgfygCACAzKAIAQQN0aiArKAIAICAoAgBrQQJqNgIAIH8oAgAgMygCAEEDdGogCygCADYCBCAzIDMoAgBBAWo2AgAgCygCAEGAIEsNASAXKAIAIAsoAgBqIEooAgBGDQELICAoAgAhByC9ASgCACALKAIAai0AACAXKAIAIAsoAgBqLQAASARAIPABKAIAIAc2AgAgugIgCygCADYCACAgKAIAII4DKAIATQ0DIPABIPIBKAIAQQRqNgIAICAg8gEoAgAoAgQ2AgAFIPEBKAIAIAc2AgAguwIgCygCADYCACAgKAIAII4DKAIATQ0EIPEBIPIBKAIANgIAICAg8gEoAgAoAgA2AgALDAELCwwCCyDwASDjAzYCAAwBCyDxASDjAzYCAAsg8QEoAgBBADYCACDwASgCAEEANgIAIEkoAgAgvwIoAgBBCGs2AhggtgIgMygCADYCAAsg0AEgtgIoAgA2AgAMAwsgkwEoAgAhByCUASgCACEIINEB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ASASNgIAIIcDIH0oAgAoAhA2AgACQCB+KAIAIFsoAgAoAgQgWygCACgCGGpJBEAgsgFBADYCAAUgfSgCACEHIH4oAgAhCCCzASgCACEJIIcDKAIAIQogtAEoAgAhDCDpASBbKAIANgIAINcDIAc2AgAg2AMgCDYCACDZAyAJNgIAINoDIAo2AgAg2wMgDDYCACCFAyDpASgCACgCBDYCACCGAyDYAygCACCFAygCAGs2AgAg6gEg6QEoAgAoAhg2AgADQCDqASgCACCGAygCAEkEQCDpASgCACDXAygCACCFAygCACDqASgCAGog2QMoAgAg2gMoAgAg2wMoAgAQugIhByDqASDqASgCACAHajYCAAwBCwsg6QEoAgAghgMoAgA2AhgCQAJAAkACQCCHAygCAEEDaw4FAAMCAQEDCyB9KAIAIQcgfigCACEIILMBKAIAIQkgtAEoAgAhCiDrASgCACEMIOwBKAIAIRAg7QEoAgAhESDuASgCACESIEcgWygCADYCACCsASAHNgIAIBYgCDYCACBIIAk2AgAgrQIgCjYCACDPAyAMNgIAIK4CIBA2AgAgeCARNgIAINADIBI2AgAgrQFBAzYCACD+AiCsASgCACgCFEH/H0kEfyCsASgCACgCFAVB/x8LIgc2AgAgrgEgRygCACgCBDYCACAqIBYoAgAgrgEoAgBrNgIAINEDIKwBKAIAKAIINgIAIDwgrQEoAgBBA0YEf0EDBUEECzYCACD/AiBHKAIAKAIkNgIAIIADIBYoAgAg0QMoAgAgrQEoAgAQuwI2AgAgHyD/AigCACCAAygCAEECdGooAgA2AgAgrwIgRygCACgCLDYCACDSAyCsASgCACgCBEEBazYCACCvAUEBINIDKAIAdEEBazYCACCwAkEANgIAILECQQA2AgAg5QEgRygCACgCCDYCACBZIEcoAgAoAgw2AgAgsgIg5QEoAgAgWSgCAGo2AgAgswIgrgEoAgAgWSgCAGo2AgAggQMgrwEoAgAgKigCAE8Ef0EABSAqKAIAIK8BKAIAawsiBzYCACC0AiBHKAIAKAIQNgIAIOYBIK8CKAIAICooAgAgrwEoAgBxQQN0ajYCACDnASCvAigCACAqKAIAIK8BKAIAcUEDdGpBBGo2AgAgtQIgKigCAEEJajYCACAyQQA2AgAgggNBASCsASgCACgCDHQ2AgAgeSDQAygCAEEBazYCACDUAyCuAigCAEEDajYCACB6IK4CKAIANgIAAkACQAJAA0AgeigCACDUAygCAE8NAiDPAygCACEHILABIHooAgBBA0YEfyAHKAIAQQFrBSAHIHooAgBBAnRqKAIACyIHNgIAIIMDICooAgAgsAEoAgBrNgIAIFpBADYCAAJAILABKAIAQQFrICooAgAgWSgCAGtJBEAgFigCACA8KAIAEPECIBYoAgAgsAEoAgBrIDwoAgAQ8QJHDQEgWiAWKAIAIDwoAgBqIBYoAgAgPCgCAGogsAEoAgBrIEgoAgAQvAIgPCgCAGo2AgAFIIQDIOUBKAIAIIMDKAIAajYCACCtAigCAEUNASCwASgCAEEBayAqKAIAILQCKAIAa0kgWSgCAEEBayCDAygCAGtBA09xRQ0BIBYoAgAgPCgCABDxAiCEAygCACA8KAIAEPECRw0BIFogFigCACA8KAIAaiCEAygCACA8KAIAaiBIKAIAILICKAIAILMCKAIAEL0CIDwoAgBqNgIACwsgWigCACB5KAIASwRAIHkgWigCADYCACB4KAIAIDIoAgBBA3RqIHooAgAgrgIoAgBrNgIAIHgoAgAgMigCAEEDdGogWigCADYCBCAyIDIoAgBBAWo2AgAgWigCACD+AigCAEsgFigCACBaKAIAaiBIKAIARnINAgsgeiB6KAIAQQFqNgIADAALAAsgrAIgMigCADYCAAwBCwJAIK0BKAIAQQNGBEAgeSgCACCtASgCAE8NASB7IEcoAgAgFigCABDyAjYCACB7KAIAILQCKAIASyAqKAIAIHsoAgBrQYCAEElxRQ0BAkACQCCtAigCAEUNACB7KAIAIFkoAgBPDQAg1gMg5QEoAgAgeygCAGo2AgAgfCAWKAIAINYDKAIAIEgoAgAgsgIoAgAgswIoAgAQvQI2AgAMAQsg1QMgrgEoAgAgeygCAGo2AgAgfCAWKAIAINUDKAIAIEgoAgAQvAI2AgALIHwoAgAgrQEoAgBJDQEgeSB8KAIANgIAIHgoAgAgKigCACB7KAIAa0ECajYCACB4KAIAIHwoAgA2AgQgMkEBNgIAIHwoAgAg/gIoAgBLIBYoAgAgfCgCAGogSCgCAEZyRQ0BIEcoAgAgKigCAEEBajYCGCCsAkEBNgIADAILCyD/AigCACCAAygCAEECdGogKigCADYCAAJAAkACQANAAkAgggMgggMoAgAiB0F/ajYCACAHRQ0AIB8oAgAgtAIoAgBNDQAg6AEgrwIoAgAgHygCACCvASgCAHFBA3RqNgIAILACKAIAIQcgsQIoAgAhCCAFILACKAIAILECKAIASQR/IAcFIAgLNgIAAkACQCCtAigCAEUNACAfKAIAIAUoAgBqIFkoAgBPDQAgsQEg5QEoAgAgHygCAGo2AgAgFigCACAFKAIAaiCxASgCACAFKAIAaiBIKAIAILICKAIAILMCKAIAEL0CIQcgBSAFKAIAIAdqNgIAIB8oAgAgBSgCAGogWSgCAEkNASCxASCuASgCACAfKAIAajYCAAwBCyCxASCuASgCACAfKAIAajYCACAWKAIAIAUoAgBqILEBKAIAIAUoAgBqIEgoAgAQvAIhByAFIAUoAgAgB2o2AgALIAUoAgAgeSgCAEsEQCAFKAIAILUCKAIAIB8oAgBrSwRAILUCIB8oAgAgBSgCAGo2AgALIHkgBSgCADYCACB4KAIAIDIoAgBBA3RqICooAgAgHygCAGtBAmo2AgAgeCgCACAyKAIAQQN0aiAFKAIANgIEIDIgMigCAEEBajYCACAFKAIAQYAgSw0BIBYoAgAgBSgCAGogSCgCAEYNAQsgHygCACEHILEBKAIAIAUoAgBqLQAAIBYoAgAgBSgCAGotAABIBEAg5gEoAgAgBzYCACCwAiAFKAIANgIAIB8oAgAggQMoAgBNDQMg5gEg6AEoAgBBBGo2AgAgHyDoASgCACgCBDYCAAUg5wEoAgAgBzYCACCxAiAFKAIANgIAIB8oAgAggQMoAgBNDQQg5wEg6AEoAgA2AgAgHyDoASgCACgCADYCAAsMAQsLDAILIOYBINMDNgIADAELIOcBINMDNgIACyDnASgCAEEANgIAIOYBKAIAQQA2AgAgRygCACC1AigCAEEIazYCGCCsAiAyKAIANgIACyCyASCsAigCADYCAAwECyB9KAIAIQcgfigCACEIILMBKAIAIQkgtAEoAgAhCiDrASgCACEMIOwBKAIAIRAg7QEoAgAhESDuASgCACESIEEgWygCADYCACCaASAHNgIAIBMgCDYCACBCIAk2AgAgjwIgCjYCACC3AyAMNgIAIJACIBA2AgAgaSARNgIAILgDIBI2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CyAHQUBrIR8gB0E8aiEgIAdBOGohFSAHQTRqIRYgB0EwaiEdIAdBLGohCiAHQShqISEgB0EkaiEiIAdBIGohDSAHQRxqIQ4gB0EYaiEXIAdBFGohIyAHQRBqIQYgB0EMaiEPIAdBCGohASAHQQRqIQggACATKAIANgIAA0AgACgCAARAIB8gBCgCACAAKAIAIAIoAgBxQQN0akEEajYCACAgIB8oAgAoAgA2AgAgCSgCACALKAIAIAAoAgAgECgCACAFKAIAIBwoAgAgHigCABCIAyAAICAoAgA2AgAgBSAFKAIAQQFqNgIADAELCyAVQQA2AgAgFkEANgIAIB0gCSgCACgCCDYCACAKIAkoAgAoAgw2AgAgISAdKAIAIAooAgBqNgIAICIgESgCACAKKAIAajYCACANIAQoAgAgAygCACACKAIAcUEDdGo2AgAgDiAEKAIAIAMoAgAgAigCAHFBA3RqQQRqNgIAIBcgAygCAEEJajYCACAGQQA2AgAgACAZKAIAIBooAgBBAnRqKAIANgIAIBkoAgAgGigCAEECdGogAygCADYCAAJAAkACQANAAkAgEiASKAIAIgVBf2o2AgAgBUUNACAAKAIAIBsoAgBNDQAgDyAEKAIAIAAoAgAgAigCAHFBA3RqNgIAIBUoAgAhBSAWKAIAIQsgASAVKAIAIBYoAgBJBH8gBQUgCws2AgACQAJAIB4oAgBFDQAgACgCACABKAIAaiAKKAIATw0AIAggHSgCACAAKAIAajYCACAMKAIAIAEoAgBqIAgoAgAgASgCAGogECgCACAhKAIAICIoAgAQvQIhBSABIAEoAgAgBWo2AgAgACgCACABKAIAaiAKKAIATwRAIAggESgCACAAKAIAajYCAAsMAQsgCCARKAIAIAAoAgBqNgIAIAwoAgAgASgCAGogCCgCACABKAIAaiAQKAIAELwCIQUgASABKAIAIAVqNgIACyABKAIAIAYoAgBLBEAgASgCACAXKAIAIAAoAgBrSwRAIBcgACgCACABKAIAajYCAAsgASgCACAGKAIAa0ECdCADKAIAIAAoAgBrQQFqENQBIBgoAgAoAgBBAWoQ1AFrSgRAIAYgASgCADYCACAYKAIAIAMoAgBBAmogACgCAGs2AgALIAwoAgAgASgCAGogECgCAEYNAQsgACgCACEFIAgoAgAg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ACEAIAUkBSAADwsgAigCAEUEQCAIKAIAQajqvmkQigIgAUEENgIACyAPLAAAIQIgBCgCACEHIAEgASgCACIIQQFqNgIAIAcgCGogAjoAACAKKAIARQRAIA4sAAAhAiAEKAIAIQcgASABKAIAIghBAWo2AgAgByAIaiACOgAACwJAAkACQAJAIAsoAgBBAWsOAwECAAMLIAQoAgAgASgCAGogCSgCABCKAiABIAEoAgBBBGo2AgAMAgsgBCgCACABKAIAaiAJKAIAOgAAIAEgASgCAEEBajYCAAwBCyAEKAIAIAEoAgBqIAkoAgBB//8DcRCaAiABIAEoAgBBAmo2AgALAkACQAJAAkACQCAMKAIAQQFrDgMBAgADCyAEKAIAIAEoAgBqIAApAwAQiwIgASABKAIAQQhqNgIADAMLIAQoAgAgASgCAGogACkDAEKAAn2nQf//A3EQmgIgASABKAIAQQJqNgIADAILIAQoAgAgASgCAGogACkDAKcQigIgASABKAIAQQRqNgIADAELIAooAgAEQCAAKQMAp0H/AXEhACAEKAIAIQIgASABKAIAIgRBAWo2AgAgAiAEaiAAOgAACwsgBiABKAIANgIAIAYoAgAhACAFJAUgAAuQCAEPfyMFIQYjBUHwAGokBSAGQcgAaiIHIAA2AgAgBkHEAGoiCiABNgIAIAZBQGsiDSACNgIAIAZBPGoiASADNgIAIAZBOGoiACAENgIAIAZBNGoiECAFNgIAIAZBMGoiAiAHKAIAKALoATYCACAGQSxqIgsgACgCADYCACAGQShqIgggASgCADYCACAGQSRqIg8gCigCADYCACAGQSBqIgQgDygCADYCACAGQRxqIhFBASAHKAIAKAJ4dDYCACAHKAIAKAKYAUEARyAAKAIAQQBHcQRAIAcoAgBBiAJqIAEoAgAgACgCABDrARoLIAZB0ABqIQogBkHMAGohBSAGQRhqIQEgBkEUaiESIAZBEGohEyAGQQxqIQ4gBkEIaiEDIAZBBGohFCAGIQACQAJAAkACQANAIAsoAgBFDQQgASAHKAIAQeADajYCACASIBAoAgAgAigCACALKAIAT3E2AgAgDSgCAEEGSQ0BIAsoAgAgAigCAEkEQCACIAsoAgA2AgALIAgoAgAgAigCAGohDCAKIAEoAgAiCSkCADcCACAKIAkpAgg3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KAIAIgYpAgA3AgAgAiAGKQIINwIIIAIgBikCEDcCECAhIAcgCiACEKkDNgIAICJBADYCACAoIAApAwAgDSgCABCqAzYCACADICEoAgA2AgADQCADKAIAICEoAgAgLygCAEEDdGpJBEACQCADKAIAKAIEICgoAgBGBEAgAygCACgCACAmKAIASwRAIBQoAgAEQCAlKAIAIQYgDygCACEHICkgAygCACgCACAOKAIASQR/IAYFIAcLNgIAICMgKSgCACADKAIAKAIAajYCACAnKAIAIQYgECgCACEHICogAygCACgCACAOKAIASQR/IAYFIAcLNgIAIDIoAgAhBiAZKAIAIQcgKyADKAIAKAIAIA4oAgBJBH8gBgUgBws2AgAgCyABKAIAICMoAgAgECgCACAqKAIAIBkoAgAQvQI2AgAgCygCACAMKAIASQ0DIBYgASgCACARKAIAICMoAgAgKygCABCrAzYCACAcIAsoAgAgFigCAGo2AgAFICQgDygCACADKAIAKAIAajYCACALIAEoAgAgJCgCACAQKAIAELwCNgIAIAsoAgAgDCgCAEkNAyAWIAEoAgAgESgCACAkKAIAIBkoAgAQqwM2AgAgHCALKAIAIBYoAgBqNgIACyAcKAIAICIoAgBLBEAgIiAcKAIANgIAICAgCygCADYCACAaIBYoAgA2AgAgGyADKAIANgIACwsLCyADIAMoAgBBCGo2AgAMAQsLIBsoAgBFBEAgCCgCACEHIAApAwAhNSANKAIAIQogHygCACEXIAIgCSgCACIGKQIANwIAIAIgBikCCDcCCCACIAYpAhA3AhAgByA1IAogFyACEKwDIAEgASgCAEEBajYCAAwBCyASICAoAgAgGigCAGo2AgAgASABKAIAIBooAgBrNgIAICwgGygCACgCADYCACAtIB8oAgAgLCgCAGs2AgAgHSATKAIAKAIAIBMoAgAoAghBDGxqNgIAIBMoAgAoAgggEygCACgCDEYNASAdKAIAIAEoAgAgESgCAGs2AgQgHSgCACASKAIANgIIIB0oAgAgLSgCADYCACATKAIAQQhqIgYgBigCAEEBajYCACAIKAIAIQcgACkDACE1IA0oAgAhCiAEKAIAIA8oAgBrIRcgAiAJKAIAIgYpAgA3AgAgAiAGKQIINwIIIAIgBikCEDcCECAHIDUgCiAXIAIQrAMgASgCACASKAIAaiAeKAIATQRAIAgoAgAhByAAKQMAITUgBCgCACEKIAEoAgAgEigCAGohFyAPKAIAITMgDSgCACE0IAIgCSgCACIGKQIANwIAIAIgBikCCDcCCCACIAYpAhA3AhAgACAHIDUgCiAXIDMgNCACEK0DNwMAIAQgASgCACASKAIAakF/ajYCAAsgASABKAIAIBIoAgBqNgIAIBEgASgCADYCAAwACwALIBhBun82AgAgGCgCACEAIAUkBSAADwsgGCAQKAIAIBEoAgBrNgIAIBgoAgAhACAFJAUgAAuKAQEDfyMFIQUjBUEgaiQFIAVBCGoiBCAANwMAIAVBEWoiBiABOgAAIAVBEGoiASACOgAAIAUgAzcDACAEIAQpAwAgBi0AAEEKaqwgBSkDAH59NwMAIAQgBCkDAELjyJW9y5vvjU9+NwMAIAQgBCkDACABLQAAQQpqrHw3AwAgBCkDACEAIAUkBSAAC5oBAgN/AX4jBSECIwVBIGokBSACQRBqIgMgADYCACACQQxqIgQgATYCACACIgBCADcDACAAQQhqIgFBADYCAANAIAApAwAhBSABKAIAIAQoAgBJBEAgACAFQuPIlb3Lm++NT343AwAgACAAKQMAIAMoAgAgASgCAGotAABBCmqsfDcDACABIAEoAgBBAWo2AgAMAQsLIAIkBSAFC6ABAQN/IwUhAyMFQSBqJAUgA0EQaiEEIAMgADcDACADQQxqIgUgATYCACADQQhqIgEgAjYCACADKQMAIQBBICAFKAIAayABKAIASQR/IAQgAEEBIAEoAgB0QQFrrYM+AgAgBCgCACEBIAMkBSABBSAEIABBICAFKAIAayABKAIAa62IQQEgASgCAHRBAWutgz4CACAEKAIAIQEgAyQFIAELC00BA38jBSECIwVBEGokBSACIgQgADcDACACQQhqIgMgATYCACADKAIARQRAIAIkBUEADwsgBCkDAEHAACADKAIAa62IpyEBIAIkBSABC0EBAn8jBSEDIwVBEGokBSADQQRqIgQgADYCACADIAE2AgAgBCgCACgCFCADKAIAIAIoAgh0QQN0aiEAIAMkBSAAC0EBAn8jBSECIwVBEGokBSACIAA3AwAgAkEIaiIDIAE2AgAgAikDAEEgIAMoAgBrrYhC/////w+DpyEBIAIkBSAB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CyAANgIAIAlBIGoiDCABNgIAIAlBHGoiASACNgIAIAlBGGoiDSADNgIAIAlBFGoiAiAENgIAIAkiACAGNwMAIAlBEGoiAyAHNgIAIAIoAgAEQCACKAIAKAIIQQBLBEAgCygCAEEMaiIBIAUpAgA3AgAgASAFKQIINwIIIAEgBSkCEDcCECABIAUpAhg3AhggASAFKQIgNwIgIAEgBSkCKDcCKCABIAUpAjA3AjAgASAFKQI4NwI4IAFBQGsgBUFAaykCADcCACABIAUpAkg3AkggASAFKQJQNwJQIAEgBSkCWDcCWCABIAUpAmA3AmAgCygCACEBIAIoAgAhAiAFKAIEIQQgACkDACEGIAMoAgAhACAIIAVBIGoiAykCADcCACAIIAMoAgg2AgggCiABIAIgBCAIIAYgABC2AzYCACAKKAIAIQAgCSQFIAAPCwsgCygCACECIAApAwAhBiADKAIAIQMgCCAFKQIANwIAIAggBSkCCDcCCCAIIAUpAhA3AhAgCCAFKQIYNwIYIAggBSkCIDcCICAIIAUpAig3AiggCCAFKQIwNwIwIAggBSkCODcCOCAIQUBrIAVBQGspAgA3AgAgCCAFKQJINwJIIAggBSkCUDcCUCAIIAUpAlg3AlggCCAFKQJgNwJgIAlBDGoiACACIAggBkEAIAMQzwI2AgAgACgCABDNAQRAIAogACgCADYCACAKKAIAIQAgCSQFIAAPCyAJQQhqIgAgCygCACgC2AMgCygCAEHgA2ogBSAMKAIAIAEoAgAgDSgCACALKAIAKALMBBCxAjYCACAAKAIAEMwBQQBHIQEgACgCACEAIAEEfyAKIAA2AgAgCigCACEAIAkkBSAABSALKAIAIAA2AtwBIApBADYCACAKKAIAIQAgCSQFIAALC80GAQV/IwUhBiMFQYACaiQFIAZBlAFqIgcgADYCACAGQZABaiIIIAE2AgAgBkGMAWoiCSACNgIAIAYiACAENwMAIABBiAFqIgogBTYCACAAQSBqIgEgBygCAEEMaiICKQIANwIAIAEgAikCCDcCCCABIAIpAhA3AhAgASACKQIYNwIYIAEgAikCIDcCICABIAIpAig3AiggASACKQIwNwIwIAEgAikCODcCOCABQUBrIAJBQGspAgA3AgAgASACKQJINwJIIAEgAikCUDcCUCABIAIpAlg3AlggASACKQJgNwJgIAFBBGoiAiAIKAIAQfAkaiIFKQIANwIAIAIgBSkCCDcCCCACIAUpAhA3AhAgAiAFKAIYNgIYIAkoAgAEQCABIAkoAgA2AgQLIAFBIGoiAiADKQIANwIAIAIgAygCCDYCCCAHKAIAIQIgACkDACEEIAooAgAhAyAGQZgBaiIAIAEpAgA3AgAgACABKQIINwIIIAAgASkCEDcCECAAIAEpAhg3AhggACABKQIgNwIgIAAgASkCKDcCKCAAIAEpAjA3AjAgACABKQI4NwI4IABBQGsgAUFAaykCADcCACAAIAEpAkg3AkggACABKQJQNwJQIAAgASkCWDcCWCAAIAEpAmA3AmAgAiAAIARBASADEM8CGiAGQRxqIgEgCCgCAEGIJWooAgBBAUYEf0EABUEBIAgoAgBB9CRqKAIAdAsiADYCACAGQRhqIgBBASAIKAIAQfgkaigCAHQ2AgAgBkEUaiICIAEoAgAgACgCAGpBAnQ2AgAgBygCACgChAQgCCgCACgCOCACKAIAEPQHGiAGQRBqIgBBASAHKAIAKAKABHQ2AgAgBygCACgCiARBACAAKAIAQQJ0EPYHGiAGQQxqIgAgCCgCAEEUajYCACAGQQhqIgEgBygCAEHgA2o2AgAgASgCACICIAAoAgAiAykCADcCACACIAMpAgg3AgggAiADKAIQNgIQIAEoAgAgACgCACgCGDYCGCABKAIAIAAoAgAoAhw2AhwgASgCACAAKAIAKAIUNgIUIAcoAgAgCCgCAEGYJWooAgA2AtwBIAcoAgAoAtgDIAgoAgBBgAFqQfAjEPQHGiAGJAVBAAv2AgECfyMFIQMjBUHwAGokBSADIAEpAgA3AgAgAyABKQIINwIIIAMgASkCEDcCECADIAEpAhg3AhggAyABKQIgNwIgIAMgASkCKDcCKCADIAEpAjA3AjAgAyABKQI4NwI4IANBQGsgAUFAaykCADcCACADIAEpAkg3AkggAyABKQJQNwJQIAMgASkCWDcCWCADIAEpAmA3AmAgA0EEaiIBIAIpAgA3AgAgASACKQIINwIIIAEgAikCEDcCECABIAIoAhg2AhggA0EgaiIEIAJBHGoiASkCADcCACAEIAEoAgg2AgggA0EDNgIsIAAgAykCADcCACAAIAMpAgg3AgggACADKQIQNwIQIAAgAykCGDcCGCAAIAMpAiA3AiAgACADKQIoNwIoIAAgAykCMDcCMCAAIAMpAjg3AjggAEFAayADQUBrKQIANwIAIAAgAykCSDcCSCAAIAMpAlA3AlAgACADKQJYNwJYIAAgAykCYDcCYCADJAUL1wEBAn8jBSEEIwVB4ABqJAUgBEHUAGoiBSABNgIAIAQgAjcDACAEQdAAaiIBIAM2AgAgBEEIaiIDIAUoAgAgBCkDACABKAIAEKgCIARBKGoiAUIANwIAIAFCADcCCCABQgA3AhAgAUIANwIYIAFCADcCICABIAMpAgA3AgAgASADKQIINwIIIAEgAykCEDcCECABIAMoAhg2AhggAUEBNgIcIAAgASkCADcCACAAIAEpAgg3AgggACABKQIQNwIQIAAgASkCGDcCGCAAIAEpAiA3AiAgBCQFC78CAQV/IwUhBSMFQSBqJAUgBUEcaiEGIAVBGGoiByAANgIAIAVBFGoiCCABNgIAIAVBEGoiCSACNgIAIAVBDGoiASADNgIAIAVBCGoiAiAENgIAIAUiACAHKAIAIAgoAgAgCSgCACABKAIAIAIoAgBBAUEBEI8DNgIAIAUoAgAQzAEEQCAGIAAoAgA2AgAgBigCACEAIAUkBSAADwsgBUEEaiIBIAcoAgAgCCgCACAAKAIAaiAJKAIAIAAoAgBrELoDNgIAIAEoAgAQzAEEQCAGIAEoAgA2AgAgBigCACEAIAUkBSAADwsgBygCACgClAEEQCAHKAIAKQPwASAHKAIAKQP4AUIBfFIEQCAGQbh/NgIAIAYoAgAhACAFJAUgAA8LCyAGIAAoAgAgASgCAGo2AgAgBigCACEAIAUkBSAAC5UFAQp/IwUhAyMFQZABaiQFIANBIGohBCADQRxqIgYgADYCACADQRhqIgggATYCACADQRRqIgcgAjYCACADQRBqIgogCCgCADYCACADQQxqIgUgCigCADYCACADQQhqIglBADYCACAGKAIAKAIARQRAIARBRDYCACAEKAIAIQAgAyQFIAAPCyADQShqIQEgA0EEaiELIAMhAAJAIAYoAgAoAgBBAUYEQCAIKAIAIQggBygCACEMIAEgBigCAEH0AGoiAikCADcCACABIAIpAgg3AgggASACKQIQNwIQIAEgAikCGDcCGCABIAIpAiA3AiAgASACKQIoNwIoIAEg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AgAiBkEBajYCACAGIAQ6AAAgGSgCACEEIBooAgAhBiBHIAwoAgA2AgAgSCAENgIAIGEgBjYCACBJIEcoAgAgYSgCABDgATYCACBiIEgoAgAgSSgCAEEBdGosAAA6AAAgRygCACBIKAIAIEkoAgBBAXRqLQABEN4BIGIsAAAhBCADIAMoAgAiBkEBajYCACAGIAQ6AAAMAQsLAkADQCAMKAIAENkBRSADKAIAIB4oAgBJcUUNASAZKAIAIQQgGigCACEGIEQgDCgCADYCACBFIAQ2AgAgXyAGNgIAIEYgRCgCACBfKAIAEOABNgIAIGAgRSgCACBGKAIAQQF0aiwAADoAACBEKAIAIEUoAgAgRigCAEEBdGotAAEQ3gEgYCwAACEEIAMgAygCACIGQQFqNgIAIAYgBDoAAAwACwALA0AgAygCACAeKAIASQRAIBkoAgAhBCAaKAIAIQYgJSAMKAIANgIAIEIgBDYCACBdIAY2AgAgQyAlKAIAIF0oAgAQ4AE2AgAgXiBCKAIAIEMoAgBBAXRqLAAAOgAAICUoAgAgQigCACBDKAIAQQF0ai0AARDeASBeLAAAIQQgAyADKAIAIgZBAWo2AgAgBiAEOgAADAELCyBUKAIAIQMgACgCACEAIAEoAgAhASACICgoAgA2AgAgCyAYNgIAIB0gAzYCACAOIAA2AgAgDyABNgIAIHYgAigCADYCAANAIAsoAgAQ2QFFIAIoAgAgHSgCAEF9aklxBEAgDigCACEAIA8oAgAhASAiIAsoAgA2AgAgIyAANgIAIFsgATYCACAkICIoAgAgWygCABDgATYCACBcICMoAgAgJCgCAEEBdGosAAA6AAAgIigCACAjKAIAICQoAgBBAXRqLQABEN4BIFwsAAAhACACIAIoAgAiAUEBajYCACABIAA6AAAgDigCACEAIA8oAgAhASBBIAsoAgA2AgAgICAANgIAIFkgATYCACAhIEEoAgAgWSgCABDgATYCACBaICAoAgAgISgCAEEBdGosAAA6AAAgQSgCACAgKAIAICEoAgBBAXRqLQABEN4BIFosAAAhACACIAIoAgAiAUEBajYCACABIAA6AAAMAQsLAkADQCALKAIAENkBRSACKAIAIB0oAgBJcUUNASAOKAIAIQAgDygCACEBID4gCygCADYCACA/IAA2AgAgVyABNgIA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BzYCACAlICEoAgAgOigCABDgATYCACA5KAIAIB0oAgAgJSgCAEECdGouAAA7AAAgISgCACAdKAIAICUoAgBBAnRqLQACEN4BIAMgAygCACAdKAIAICUoAgBBAnRqLQADajYCACABKAIAIQggAigCACEHIDcgBCgCADYCACAcICo2AgAgFCAINgIAIDggBzYCACAXIBwoAgAgOCgCABDgATYCACA3KAIAIBQoAgAgFygCAEECdGouAAA7AAAgHCgCACAUKAIAIBcoAgBBAnRqLQACEN4BIAQgBCgCACAUKAIAIBcoAgBBAnRqLQADajYCACABKAIAIQggAigCACEHIDUgECgCADYCACAbICs2AgAgICAINgIAIDYgBzYCACAWIBsoAgAgNigCABDgATYCACA1KAIAICAoAgAgFigCAEECdGouAAA7AAAgGygCACAgKAIAIBYoAgBBAnRqLQACEN4BIBAgECgCACAgKAIAIBYoAgBBAnRqLQADajYCACABKAIAIQggAigCACEHIDMgJCgCADYCACAuICw2AgAgGSAINgIAIDQgBzYCACAaIC4oAgAgNCgCABDgATYCACAzKAIAIBkoAgAgGigCAEECdGouAAA7AAAgLigCACAZKAIAIBooAgBBAnRqLQACEN4BICQgJCgCACAZKAIAIBooAgBBAnRqLQADajYCACABKAIAIQggAigCACEHIDEgAygCADYCACAVICk2AgAgDiAINgIAIDIgBzYCACAPIBUoAgAgMigCABDgATYCACAxKAIAIA4oAgAgDygCAEECdGouAAA7AAAgFSgCACAOKAIAIA8oAgBBAnRqLQACEN4BIAMgAygCACAOKAIAIA8oAgBBAnRqLQADajYCACABKAIAIQggAigCACEHICggBCgCADYCACAeICo2AgAgDSAINgIAIC0gBzYCACALIB4oAgAgLSgCABDgATYCACAoKAIAIA0oAgAgCygCAEECdGouAAA7AAAgHigCACANKAIAIAsoAgBBAnRqLQACEN4BIAQgBCgCACANKAIAIAsoAgBBAnRqLQADajYCACABKAIAIQggAigCACEHICYgECgCADYCACASICs2AgAgDCAINgIAICcgBzYCACAKIBIoAgAgJygCABDgATYCACAmKAIAIAwoAgAgCigCAEECdGouAAA7AAAgEigCACAM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IQAgASQFIAALegEDfyMFIQIjBUEQaiQFIAJBBGohAyACIgEgADYCACABKAIABH8gASgCACgCABDyAxogASgCACgCMBCHBiABKAIAKAI8EIcGIAEoAgAQhwYgA0EANgIAIAMoAgAhACACJAUgAAUgA0EANgIAIAMoAgAhACACJAUgAAsLegEDfyMFIQIjBUEQaiQFIAJBBGohAyACIgEgADYCACABKAIABH8gASgCACgCABDyAxogASgCACgCHBCHBiABKAIAKAIoEIcGIAEoAgAQhwYgA0EANgIAIAMoAgAhACACJAUgAAUgA0EANgIAIAMoAgAhACACJAUgAAsL1gEBA38jBSECIwVBEGokBSACQQRqIQMgAiIBIAA2AgAgASgCAEUEQCADQQA2AgAgAygCACEAIAIkBSAADwsgASgCACgCABDxAxogASgCACgCJARAIAEoAgAoAmQgASgCACgCJCABKAIAKAJgQR9xQeQCahECAAsgASgCACgCMARAIAEoAgAoAmQgASgCACgCMCABKAIAKAJgQR9xQeQCahECAAsgASgCACgCZCABKAIAIAEoAgAoAmBBH3FB5AJqEQIAIANBADYCACADKAIAIQAgAiQFIAALeQEDfyMFIQEjBUEQaiQFIAFBBGohAiABIgMgADYCACABKAIABH8gAygCAEHEqQFqKAIAIAMoAgAgAygCAEHAqQFqKAIAQR9xQeQCahECACACQQA2AgAgAigCACEAIAEkBSAABSACQQA2AgAgAigCACEAIAEkBSAACwskAQF/IwUhASMFQRBqJAUgASAANgIAIAEoAgAQhwYgASQFQQALegEDfyMFIQIjBUEQaiQFIAJBBGohAyACIgEgADYCACABKAIABH8gASgCACgCABDyAxogASgCACgCKBCHBiABKAIAKAI0EIcGIAEoAgAQhwYgA0EANgIAIAMoAgAhACACJAUgAAUgA0EANgIAIAMoAgAhACACJAUgAAsLrgEBBH8jBSEDIwVBEGokBSADQQxqIQIgAyEEIANBCGoiBSAANgIAIANBBGoiACABNgIAAkAgACgCAEEESQRAIAJBADYCAAUgBCAFKAIAEM8BNgIAAkACQAJAAkACQCAEKAIAQaTqvmlrDgQAAQIDBAsgAkEENgIADAULIAJBBTYCAAwECyACQQY2AgAMAwsgAkEHNgIADAILIAJBADYCAAsLIAIoAgAhACADJAUgAAs5AQJ/IwUhAiMFQRBqJAUgAkEEaiIDIAA2AgAgAiABNgIAIAMoAgAgAigCAEEAEPYDIQAgAiQFIAALpgIBBH8jBSEDIwVBMGokBSADQRxqIQQgA0EYaiIFIAA2AgAgA0EUaiIAIAE2AgAgA0EQaiIGIAI2AgAgA0EMaiIBIAYoAgAQ9wM2AgAgACgCACABKAIASQRAIARBuH82AgAgBCgCACEAIAMkBSAADwsgA0EgaiICIAUoAgAgASgCAEEBa2osAAA6AAAgA0EIaiIGIAItAABBA3E2AgAgA0EEaiIFIAItAABBBXVBAXE2AgAgAyIAIAItAABBBnU2AgAgBCABKAIAIgEgBSgCACICQQBHQQFzaiAGKAIAQQJ0QfAiaigCACIGaiADKAIAQQJ0QYAjaigCAGogBSgCAAR/IAAoAgBBAEdBAXMFQQALIgBBAXFqNgIAIAQoAgAhACADJAUgAAs/AQJ/IwUhASMFQRBqJAUgAUEEaiICIAA2AgAgASIAIAIoAgBBAUYEf0EBBUEFCzYCACAAKAIAIQAgASQFIAALSgECfyMFIQMjBUEQaiQFIANBCGoiBCAANgIAIANBBGoiACABNgIAIAMgAjYCACAEKAIAIAAoAgAgAygCAEEAEPkDIQAgAyQFIAALiwkCDH8BfiMFIQQjBUHQAGokBSAEQcgAaiEFIARBxABqIgcgADYCACAEQUBrIgAgATYCACAEQTxqIgEgAjYCACAEQThqIgYgAzYCACAEQTRqIgIgACgCADYCACAEQTBqIgMgBigCABD3AzYCACABKAIAIAMoAgBJBEAgBSADKAIANgIAIAUoAgAhACAEJAUgAA8LIAYoAgBBAUcEQCAAKAIAEM8BQajqvmlHBEAgACgCABDPAUFwcUHQ1LTCAUcEQCAFQXY2AgAgBSgCACEAIAQkBSAADwsgASgCAEEISQRAIAVBCDYCACAFKAIAIQAgBCQFIAAPBSAHKAIAIgFCADcDACABQgA3AwggAUIANwMQIAFCADcDGCABQgA3AyAgACgCAEEEahDPAa0hECAHKAIAIBA3AwAgBygCAEEBNgIUIAVBADYCACAFKAIAIQAgBCQFIAAPCwALCyAEQSxqIgggACgCACABKAIAIAYoAgAQ9gM2AgAgCCgCACEAIAEoAgAgCCgCAEkEQCAFIAA2AgAgBSgCACEAIAQkBSAADwsgBygCACAANgIYIARBzQBqIgYgAigCACADKAIAQQFraiwAADoAACAEQShqIgEgAygCADYCACAEQSRqIgsgBi0AAEEDcTYCACAEQSBqIgwgBi0AAEECdUEBcTYCACAEQRxqIgkgBi0AAEEFdUEBcTYCACAEQRhqIg0gBi0AAEEGdTYCACAEQQhqIgNCADcDACAEQRRqIghBADYCACAEIgBCfzcDACAGLQAAQQhxBEAgBUFyNgIAIAUoAgAhACAEJAUgAA8LIARBzABqIQYgBEEQaiEKAkAgCSgCAEUEQCACKAIAIQ4gASABKAIAIg9BAWo2AgAgBiAOIA9qLAAAOgAAIAogBi0AAEEDdUEKajYCACAKKAIAQR5NBEAgA0IBIAooAgCthjcDACADIAMpAwAgAykDAEIDiCAGLQAAQQdxrH58NwMADAILIAVBcDYCACAFKAIAIQAgBCQFIAAPCwsCQAJAAkACQCALKAIAQQFrDgMBAgADCyAIIAIoAgAgASgCAGoQzwE2AgAgASABKAIAQQRqNgIADAILIAggAigCACABKAIAai0AADYCACABIAEoAgBBAWo2AgAMAQsgCCACKAIAIAEoAgBqENgDQf//A3E2AgAgASABKAIAQQJqNgIACwJAAkACQAJAAkAgDSgCAEEBaw4DAQIAAwsgACACKAIAIAEoAgBqEOIBNwMADAMLIAAgAigCACABKAIAahDYA0H//wNxQYACaqw3AwAMAgsgACACKAIAIAEoAgBqEM8BrTcDAAwBCyAJKAIABEAgACACKAIAIAEoAgBqLQAArTcDAAsLIAkoAgAEQCADIAApAwA3AwALIAcoAgBBADYCFCAHKAIAIAApAwA3AwAgBygCACADKQMANwMIIAMpAwAhECAHKAIAIAMpAwBCgIAIVAR+IBAFQoCACAs+AhAgBygCACAIKAIANgIcIAcoAgAgDCgCADYCICAFQQA2AgAgBSgCACEAIAQkBSAAC8sBAgZ/AX4jBSECIwVBQGskBSACQTBqIQMgAkEoaiEFIAIhBiACQTxqIgQgADYCACACQThqIgcgATYCACAEKAIAIAcoAgAQ9ANBAEchACAEKAIAIQQgBygCACEBAkAgAARAIAUgBCABEPsDNwMAIAUp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AiQFIAALxQEBA38jBSECIwVBEGokBSACQQxqIQMgAkEIaiIEIAA2AgAgAkEEaiIAIAE2AgAgAiAEKAIAIAAoAgAQ9AM2AgACQAJAAkACQAJAAkAgAigCAEEEaw4EAAECAwQLIAMgBCgCACAAKAIAEIkENgIADAQLIAMgBCgCACAAKAIAEIoENgIADAMLIAMgBCgCACAAKAIAEIsENgIADAILIAMgBCgCACAAKAIAEIwENgIADAELIANBdjYCAAsgAygCACEAIAIkBSAAC4kCAQN/IwUhAyMFQSBqJAUgA0EUaiEEIANBEGoiBSAANgIAIANBDGoiACABNgIAIANBCGoiASACNgIAIAAoAgBBA0kEQCAEQbh/NgIAIAQoAgAhACADJAUgAA8LIANBBGoiAiAFKAIAEIgENgIAIAMiACACKAIAQQN2NgIAIAEoAgAgAigCAEEBcTYCBCABKAIAIAIoAgBBAXZBA3E2AgAgASgCACADKAIANgIIIAEoAgAoAgBBAUYEQCAEQQE2AgAgBCgCACEAIAMkBSAADwsgASgCACgCAEEDRgR/IARBbDYCACAEKAIAIQAgAyQFIAAFIAQgACgCADYCACAEKAIAIQAgAyQFIAALCzcBAX8jBSEBIwVBEGokBSABIAA2AgAgASgCABDYA0H//wNxIAEoAgAtAAJBEHRqIQAgASQFIAALNwECfyMFIQIjBUEQaiQFIAJBBGoiAyAANgIAIAIgATYCACADKAIAIAIoAgAQjwQhACACJAUgAAv/AgEFfyMFIQIjBUEwaiQFIAJBIGohAyACQRxqIgUgADYCACACQRhqIgAgATYCACACQRRqIgEgBSgCADYCACACQRBqIgQgACgCADYCACAAKAIAQQVJBEAgA0G4fzYCACADKAIAIQAgAiQFIAAPCyAFKAIAEM8BQaXqvmlHBEAgA0F2NgIAIAMoAgAhACACJAUgAA8LIAJBCGohBiACIQAgASABKAIAQQVqNgIAIAQgBCgCAEEFazYCAAJAAkACQANAIAAgASgCACAEKAIAIAYQjgQ2AgAgACgCABDMAQ0BIAEgASgCAEEDajYCACAEIAQoAgBBA2s2AgAgACgCACAEKAIASw0CIAAoAgBFDQMgASABKAIAIAAoAgBqNgIAIAQgBCgCACAAKAIAazYCAAwACwALIAMgACgCADYC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IBEoAgAgLigCAGtLBEAgEkFsNgIADAQLIAkgGygCACAJKAIAIBooAgBrajYCACAJKAIAIAsoAgRqIBsoAgBNBEAgESgCACAJKAIAIAsoAgQQ9QcaIBIgHCgCADYCAAwECyAkIBsoAgAgCSgCAGs2AgAgESgCACAJKAIAICQoAgAQ9QcaIAogESgCACAkKAIAajYCACALQQRqIgAgACgCACAkKAIAazYCACAJIBooAgA2AgAgCigCACAUKAIATQRAIAsoAgRBA08NAgsgFkEANgIAA0AgFigCACALKAIESQRAIAooAgAgFigCAGogCSgCACAWKAIAaiwAADoAACAWIBYoAgBBAWo2AgAMAQsLIBIgHCgCADYCAAwDCwsgCygCCEEISQRAIDogCygCCEECdEGQPWooAgA2AgAgCigCACAJKAIALAAAOgAAIAooAgAgCSgCACwAAToAASAKKAIAIAkoAgAsAAI6AAIgCigCACAJKAIALAADOgADIAkgCSgCACALKAIIQQJ0QbA9aigCAGo2AgAgCigCAEEEaiAJKAIAEJ4EIAkgCSgCACA6KAIAazYCAAUgCigCACAJKAIAEPwCCyAKIAooAgBBCGo2AgAgCSAJKAIAQQhqNgIAIAooAgAhAAJAICMoAgAgGSgCAEFzaksEQCAAIBQoAgBJBEAgCigCACAJKAIAIBQoAgAgCigCAGsQ+wIgCSAJKAIAIBQoAgAgCigCAGtqNgIAIAogFCgCADYCAAsDQCAKKAIAICMoAgBPDQIgCSAJKAIAIgBBAWo2AgAgACwAACEBIAogCigCACIAQQFqNgIAIAAgAToAAAwACwAFIAAgCSgCACALKAIEQQhrEPsCCwsgEiAcKAIANgIACwsgNSASKAIANgIAIDUoAgAQzQFBAEchACA1KAIAIQEgAA0CIBMgEygCACABajYCAAwBCwsMAQsgECABNgIAIBAoAgAhACAHJAUgAA8LIAIEQCAQQWw2AgAgECgCACEAIAckBSAADwsgGEEANgIAA0AgGCgCAEEDTw0CIA4oAgBBrOABaiAYKAIAQQJ0aiANQSxqIBgoAgBBAnRqKAIANgIAIBggGCgCAEEBajYCAAwACwALCyApIEgoAgAgKygCAGs2AgAgKSgCACBHKAIAIBMoAgBrSwR/IBBBun82AgAgECgCACEAIAckBSAA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IAAoAgAgOygCAGs2AgAgCyA4KAIANgIAIAooAgAgHygCAE0EQCAOKAIEQQNPDQILICNBADYCAANAICMoAgAgDigCBEkEQCAKKAIAICMoAgBqIAsoAgAgIygCAGosAAA6AAAgIyAjKAIAQQFqNgIADAELCyAbICwoAgA2AgAMAwsLIA4oAghBCEkEQCBkIA4oAghBAnRBkD1qKAIANgIAIAooAgAgCygCACwAADoAACAKKAIAIAsoAgAsAAE6AAEgCigCACALKAIALAACOgACIAooAgAgCygCACwAAzoAAyALIAsoAgAgDigCCEECdEGwPWooAgBqNgIAIAooAgBBBGogCygCABCeBCALIAsoAgAgZCgCAGs2AgAFIAooAgAgCygCABD8AgsgCiAKKAIAQQhqNgIAIAsgCygCAEEIajYCACAKKAIAIQACQCA6KAIAICsoAgBBc2pLBEAgACAfKAIASQRAIAooAgAgCygCACAfKAIAIAooAgBrEPsCIAsgCygCACAfKAIAIAooAgBrajYCACAKIB8oAgA2AgALA0AgCigCACA6KAIATw0CIAsgCygCACIAQQFqNgIAIAAsAAAhASAKIAooAgAiAEEBajYCACAAIAE6AAAMAAsABSAAIAsoAgAgDigCBEEIaxD7AgsLIBsgLCgCADYCAAsLIGAgGygCADYCACBgKAIAEM0BQQBHIQAgYCgCACEBIAANAiAVIBUoAgAgAWo2AgAgECAQKAIAQQFqNgIADAELCwwBCyAUIAE2AgAgFCgCACEAIAckBSAADwsgKUEANgIAA0AgKSgCAEEDTw0CIBYoAgBBrOABaiApKAIAQQJ0aiARQSxqICkoAgBBAnRqKAIANgIAICkgKSgCAEEBajYCAAwACwALCyBMIGMoAgAgNygCAGs2AgAgTCgCACBiKAIAIBUoAgBrSwR/IBRBun82AgAgFCgCACEAIAckBSAABSAVKAIAIDcoAgAgTCgCABD0BxogFSAVKAIAIEwoAgBqNgIAIBQgFSgCACBhKAIAazYCACAUKAIAIQAgByQFIAALC44BAQJ/IwUhByMFQSBqJAUgB0EYaiIIIAA2AgAgB0EUaiIAIAE2AgAgB0EQaiIBIAI2AgAgB0EMaiICIAM2AgAgB0EIaiIDIAQ2AgAgB0EEaiIEIAU2AgAgByAGNgIAIAgoAgAg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IAMoAgAoAgQ2AgAgAigCAEHA4AFqIAMoAgAoAgQ2AgAgAigCAEHE4AFqIAMoAgAoAgQgAygCACgCCGo2AgAgAigCAEG44AFqIAIoAgBBxOABaigCADYCACACKAIAQYjhAWohACADKAIAQbjgAWooAgAEQCAAQQE2AgAgAigCAEGM4QFqQQE2AgAgAigCACADKAIAQQxqNgIAIAIoAgAgAygCAEGcMGo2AgQgAigCACADKAIAQZQgajYCCCACKAIAIAMoAgBBpNAAajYCDCACKAIAQazgAWogAygCAEGo4AFqKAIANgIAIAIoAgBBsOABaiADKAIAQazgAWooAgA2AgAgAigCAEG04AFqIAMoAgBBsOABaigCADYCAAUgAEEANgIAIAIoAgBBjOEBakEANgIACwsgBUEANgIAIAUoAgAhACAEJAUgAAvSAQEEfyMFIQMjBUEgaiQFIANBFGohBCADQRBqIgUgADYCACADQQxqIgYgATYCACADQQhqIgEgAjYCACADQQRqIgAgBSgCABCrBDYCACAAKAIAEM0BBEAgBCAAKAIANgIAIAQoAgAhACADJAUgAA8LIAMhACAGKAIAQQBHIAEoAgBBAEdxBEAgACAFKAIAIAYoAgAgASgCABCsBDYCACAAKAIAEM0BBEAgBEFiNgIAIAQoAgAhACADJAUgAA8LCyAEQQA2AgAgBCgCACEAIAMkBSAAC+gIAQt/IwUhBSMFQdAAaiQFIAVBzABqIQYgBUHIAGoiCCAANgIAIAVBxABqIgAgATYCACAFQUBrIgcgAjYCACAFQTxqIg0gAzYCACAFQThqIg4gBDYCACAFQTRqIgEgDSgCACgCADYCACAFQTBqIgogACgCADYCACAFQSxqIgwgCigCACAHKAIAajYCACAFQShqIgMgCigCADYCACAFQSRqIgIgDigCACgCADYCACACKAIAQQlJBEAgBkG4fzYCACAGKAIAIQAgBSQFIAAPCyAFQSBqIgkgASgCAEEFEPUDNgIAIAkoAgAQzQEEQCAGIAkoAgA2AgAgBigCACEAIAUkBSAADwsgAigCACAJKAIAQQNqSQRAIAZBuH82AgAgBigCACEAIAUkBSAADwsgBUEcaiIAIAgoAgAgASgCACAJKAIAEKgENgIAIAAoAgAQzQEEQCAGIAAoAgA2AgAgBigCACEAIAUk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ACANKAIAQQJ0aigCADYCACAOIBEoAgA2AgAgFCARKAIAIBAoAgBqNgIAIAogBC8BACATKAIAQQh0akH//wNxEOAEIAogDygCACAWKAIAajoAAiAKQQI6AAMDQCAVKAIAIQEgDiAOKAIAIgJBAWo2AgAgASACQQJ0aiAKKAEANgEAIA4oAgAgFCgCAEkNAAsgACANKAIAQQJ0aiIBIAEoAgAgECgCAGo2AgAgCyALKAIAQQFqNgIADAELCyAJJAULcwEDfyMFIQIjBUEQaiQFIAIhAyACQQRqIgQgADYCACACQQhqIgAgATsBACAEKAIAIQFBkOUALQAABEAgASAALgEAEOEEIAIkBQUgAyABNgIAIAMoAgAgAC4BADoAACADKAIAIAAvAQBBCHU6AAEgAiQFCwszAQF/IwUhAiMFQRBqJAUgAiAANgIAIAJBBGoiACABOwEAIAIoAgAgAC4AADsAACACJAULwgIBBn8jBSEFIwVB0ABqJAUgBUE8aiEGIAVBOGoiByAANgIAIAVBNGoiCCABNgIAIAVBMGoiCSACNgIAIAVBLGoiCiADNgIAIAVBKGoiACAENgIAIAVBJGoiASAHKAIANgIAIAVBIGoiAyABKAIAIAgoAgBqNgIAIAVBHGoiAiAAKAIAQQRqNgIAIAVBGGoiBCACKAIANgIAIAVBQGsiAiAAKAIAENIDIAVBBGoiByACLQACNgIAIAUiACAFQQhqIgIgCSgCACAKKAIAEL4ENgIAIAUoAgAQzAEEQCAGIAAoAgA2AgAgBigCACEAIAUkBSAADwsgASgCACACIAMoAgAgBCgCACAHKAIAENgEGiACENUDBH8gBiAIKAIANgIAIAYoAgAhACAFJAUgAAUgBkFsNgIAIAYoAgAhACAFJAUgAAsLhgIBAn8jBSECIwVBEGokBSACQQRqIgEgADYCACABKAIAQaCoAWpBBTYCACABKAIAQcyoAWpBADYCACABKAIAQZCoAWpBADYCACABKAIAQZSoAWpBADYCACABKAIAQZioAWpBADYCACABKAIAQZyoAWpBADYCACABKAIAQYwoakGMgIDgADYCACABKAIAQdSoAWpBADYCACABKAIAQdCoAWpBADYCACABKAIAQbSpAWpBADYCACACIgBBADYCAANAIAAoAgBBA0gEQCABKAIAQaSoAWogACgC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ACIBIAEoAgAgBSgCAC0AAUEIdGo2AgALIAIgBSgCACAAKAIAQQFraiwAADoAACACLQAABEBBCCACLQAAENQBayEBIAMoAgAgATYCBCADKAIAQQRqIgEgASgCAEEEIAAoAgBrQQN0ajYCAAwCCyAGQX82AgAgBigCACEAIAQkBSAADwsACyAGIAAoAgA2AgAgBigCACEAIAQkBSAAC+MFAQl/IwUhBCMFQTBqJAUgBEEEaiEDIARBKGoiBiAANgIAIARBJGoiAiABNgIAIARBIGoiASACKAIAQRBqEMMEQf8BcTYCACAEQRxqIgcgAigCAEEgahDDBEH/AXE2AgAgBEEYaiIAIAIoAgBBGGoQwwRB/wFxNgIAIARBFGoiCCABKAIAQQJ0QbA0aigCADYCACAEQRBqIgkgBygCAEECdEHANWooAgA2AgAgBEEMaiIFIAAoAgA2AgAgBEEIaiIKIAgoAgAgCSgCAGogBSgCAGo2AgAgACgCAARAIAMgACgCAEECdEGgN2ooAgAgAigCACAFKAIAENwBajYCACACKAIAEMAEGgUgA0EANgIACyAEIQACQCADKAIAQQNJBEAgASgCAEUgAygCAEEBTXEEQCADQQEgAygCAGs2AgALIAIoAgBBKGohBSADKAIARQRAIAMgBSgCADYCAAwCCyAAIAUgAygCAEECdGooAgA2AgAgAygCAEEBRwRAIAIoAgAgAigCACgCLDYCMAsgAigCACACKAIAKAIoNgIsIAMgACgCACIANgIAIAIoAgAgADYCKAUgAyADKAIAQQJrNgIAIAIoAgAgAigCACgCLDYCMCACKAIAIAIoAgAoAig2AiwgAigCACADKAIANgIoCwsgBigCACADKAIANgIIIAcoAgBBAnRBoDhqKAIAIQMgBygCAEEfSwR/IAIoAgAgCSgCABDcAQVBAAshACAGKAIAIANBA2ogAGo2AgQgCSgCACAIKAIAakEYSwRAIAIoAgAQwAQaCyABKAIAQQJ0QYA6aigCACEDIAEoAgBBD0sEfyACKAIAIAgoAgAQ3AEFQQALIQAgBigCACADIABqNgIAIAooAgBBH0tBAXIEQCACKAIAEMAEGgsgAigCAEEQaiACKAIAEMQEIAIoAgBBIGogAigCABDEBCACKAIAEMAEGiACKAIAQRhqIAIoAgAQxAQgBCQFC+gI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QTBqIgcgACgCAEEGajYCACAFQSxqIhMgBygCACAKKAIAajYCACAFQShqIhQgEygCACALKAIAajYCACAFQSRqIhYgFCgCACAMKAIAajYCACAFQSBqIgAgECgCAEEDakEEbjYCACAFQRxqIg4gBCgCACAAKAIAajYCACAFQRhqIg8gDigCACAAKAIAajYCACAFQRRqIhEgDygCACAAKAIAajYCACAFQRBqIgMgBCgCADYCACAFQQxqIgQgDigCADYCACAFQQhqIgggDygCADYCACAFQQRqIg0gESgCADYCACAFQTRqIhUgCSgCACAKKAIAIAsoAgBqIAwoAgBqQQZqazYCACAVKAIAIAkoAgBLBEAgBkFsNgIAIAYoAgAhACAFJAUgAA8LIAVBiAFqIgAgBUH4AGoiCSAHKAIAIAooAgAQ8QQ2AgAgACgCABDMAQRAIAYgACgCADYCACAGKAIAIQAgBSQFIAAPCyAAIAVB6ABqIgogEygCACALKAIAEPEENgIAIAAoAgAQzAEEQCAGIAAoAgA2AgAgBigCACEAIAUkBSAADwsgACAFQdgAaiILIBQoAgAgDCgCABDxBDYCACAAKAIAEMwBBEAgBiAAKAIANgIAIAYoAgAhACAFJAUgAA8LIAAgBUHIAGoiDCAWKAIAIBUoAgAQ8QQ2AgAgACgCABDMAQRAIAYgACgCADYCACAGKAIAIQAgBSQFIAAPCyAFIgAgCRDABCAKEMAEciALEMAEciAMEMAEcjYCAANAAkAgACgCAA0AIA0oAgAgEigCAEF5ak8NACADKAIAIAkgASgCACACKAIAENAEIQcgAyADKAIAIAdqNgIAIAQoAgAgCiABKAIAIAIoAgAQ0AQhByAEIAQoAgAgB2o2AgAgCCgCACALIAEoAgAgAigCABDQBCEHIAggCCgCACAHajYCACANKAIAIAwgASgCACACKAIAENAEIQcgDSANKAIAIAdqNgIAIAMoAgAgCSABKAIAIAIoAgAQ0AQhByADIAMoAgAgB2o2AgAgBCgCACAKIAEoAgAgAigCABDQBCEHIAQgBCgCACAHajYCACAIKAIAIAsgASgCACACKAIAENAEIQcgCCAIKAIAIAdqNgIAIA0oAgAgDCABKAIAIAIoAgAQ0AQhByANIA0oAgAgB2o2AgAgACAJEMAEIAoQwARyIAsQwARy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mNABaiAAKAIAIAIoAgBBkNABaigCACACKAIAQZTQAWooAgBrazYCACACKAIAQZTQAWogACgCADYCACACKAIAQZDQAWogACgCADYCACADJAUL/AYBCX8jBSEFIwVB0ABqJAUgBUHEAGohBiAFQUBrIgkgADYCACAFQTxqIgAgATYCACAFQThqIgogAjYCACAFQTRqIgggAzYCACAFQTBqIgcgBDYCACAFQSxqIgEgCCgCADYCACAFQShqIg0gASgCACAHKAIAajYCACAFQSRqIgsgACgCADYCACAFQSBqIgMgCygCADYCACAFQRxqIgwgCygCACAKKAIAajYCACAFQRhqIgIgBygCADYCACAHKAIAQQhJBEAgBkG4fzYCACAGKAIAIQAgBSQFIAAPCyAFQQhqIgAgCSgCACAIKAIAQQUQiAU2AgAgACgCABDMAQRAIAYgACgCADYCACAGKAIAIQAgBSQFIAAPCyAHKAIAIAAoAgBBA2pJBEAgBkG4fzYCACAGKAIAIQAgBSQFIAAPCyABIAEoAgAgACgCAGo2AgAgAiACKAIAIAAoAgBrNgIAIAAgCSgCACAIKAIAIAAoAgAQiQU2AgAgACgCABDMAQRAIAYgACgCADYCACAGKAIAIQAgBSQFIAAPCyAFQRBqIQcgBUEEaiEEIAUhAAJAAkACQAJAAkACQAJAA0AgBEEANgIAIAAgASgCACANKAIAIAEoAgBrIAcQjgQ2AgAgACgCABDMAQ0BIAEgASgCAEEDajYCACACIAIoAgBBA2s2AgAgACgCACACKAIASw0CAkACQAJAAkACQAJAIAcoAgAOBAECAAMECwwICyAEIAkoAgAgAygCACAMKAIAIAMoAgBrIAEoAgAgACgCABCKBTYCAAwDCyAEIAMoAgAgDCgCACADKAIAayABKAIAIAAoAgAQqQQ2AgAMAgsgAigCAA0GDAELDAYLIAAoAgBFDQcgBCgCABDMAUEARyEKIAQoAgAhCCAKDQYgAyADKAIAIAhqNgIAIAEgASgCACAAKAIAajYCACACIAIoAgAgACgCAGs2AgAMAAsACyAGIAAoAgA2AgAgBigCACEAIAUkBSAADwsgBkG4fzYCACAGKAIAIQAgBSQFIAAPCyAGQX82AgAgBigCACEAIAUkBSAADwsgBkG4fzYCACAGKAIAIQAgBSQFIAAP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AgAgCigCACEAIAkkBSAADwsgBygCAEEKTQRAIAEgASgCACADKAIAajYCACANKAIAIAAgEigCACAHKAIAEJUFGgwBCyAKQWw2AgAgCigCACEAIAkkBSAADwsgCiABKAIAIAgoAgBrNgIAIAooAgAhACAJJAUgAAuuBQEFfyMFIQQjBUEgaiQFIARBFGohBSAEQRBqIgMgADYCACAEQQxqIgYgATYCACAEQQhqIgEgAjYCACABKAIAQQFJBEAgAygCACIAQgA3AgAgAEIANwIIIAVBuH82AgAgBSgCACEAIAQkBSAADwsgBEEEaiECIAQhACABKAIAQQRPIQcgAygCACAGKAIANgIMAkAgBwRAIAMoAgAgBigCACABKAIAakF8ajYCCCADKAIAKAIIEOEBIQAgAygCACAANgIAIAIgBigCACABKAIAQQFrai0AADYCACACKAIABEBBCCACKAIAENQBayEAIAMoAgAgADYCBAwCCyAFQX82AgAgBSgCACEAIAQkBSAADwUgAygCACADKAIAKAIMNgIIIAMoAgAgAygCACgCDC0AADYCAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEoAgBBAmsOBgUEAwIBAAYLIAMoAgAiAiACKAIAIAMoAgAoAgwtAAZBEHRqNgIADAYLDAULDAULDAULDAULDAULDAULIAMoAgAiAiACKAIAIAMoAgAoAgwtAAVBCHRqNgIACyADKAIAIgIgAigCACADKAIAKAIMLQAEajYCAAsgAygCACICIAIoAgAgAygCACgCDC0AA0EYdGo2AgALIAMoAgAiAiACKAIAIAMoAgAoAgwtAAJBEHRqNgIACyADKAIAIgIgAigCACADKAIAKAIMLQABQQh0ajYCAAsgACAGKAIAIAEoAgBBAWtqLQAANgIAIAAoAgAEQEEIIAAoAgAQ1AFrIQAgAygCACAANgIEIAMoAgBBBGoiACAAKAIAQQQgASgCAGtBA3RqNgIADAILIAVBfzYCACAFKAIAIQAgBCQFIAAPCwALIAUgASgCADYCACAFKAIAIQAgBCQFIAALhQEBAn8jBSEDIwVBIGokBSADQRBqIgQgADYCACADQQxqIgAgATYCACADQQhqIgEgAjYCACADQQRqIgIgASgCADYCACADIAIoAgA2AgAgACgCACADKAIALwEAENwB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BiAANgIAIAVBDGoiACABNgIAIAVBCGoiASACNgIAIAVBBGoiAiADNgIAIAUgBDYCACAGKAIAIAAoAgAgASgCACACKAIAIAUoAgBBAEEAEK8FIQAgBSQFIAALxggBB38jBSEHIwVB0ABqJAUgB0HIAGoiCCAANgIAIAdBxABqIgAgATYCACAHQUBrIgsgAjYCACAHQTxqIgogAzYCACAHQThqIgkgBDYCACAHQTRqIgEgBTYCACAHQTBqIgUgBjYCACAHQSxqIgIgCigCADYCACAHQShqIg0gAigCACAJKAIAajYCACAHQSRqIgYgACgCADYCACAHQSBqIgQgBigCADYCACAHQRxqIgwgBigCACALKAIAajYCACAHQRhqIgMgCSgCADYCACAIKAIAELAFGiABKAIABEAgCCgCACABKAIAIAUoAgAQsQUgCCgCAEGY0ABqIAgoAgBBjNAAaigCADYCACAIKAIAQZTQAGogACgCACAIKAIAQYzQAGooAgAgCCgCAEGQ0ABqKAIAa2s2AgAgCCgCAEGQ0ABqIAAoAgA2AgAFIAgoAgBBmNAAaiAAKAIAIgA2AgAgCCgCAEGQ0ABqIAA2AgAgCCgCAEGU0ABqIAA2AgALIAdBzABqIQEgCSgCAEEISQRAIAFBuH82AgAgASgCACEAIAckBSAADwsgB0EIaiIAIAgoAgAgCigCAEEFELIFNgIAIAAoAgAQzAEEQCABIAAoAgA2AgAgASgCACEAIAckBSAADwsgCSgCACAAKAIAQQNqSQRAIAFBuH82AgAgASgCACEAIAckBSAADwsgAiACKAIAIAAoAgBqNgIAIAMgAygCACAAKAIAazYCACAAIAgoAgAgCigCACAAKAIAELMFNgIAIAAoAgAQzAEEQCABIAAoAgA2AgAgASgCACEAIAckBSAADwsgB0EQaiEJIAdBBGohBSAHIQACQAJAAkACQAJAAkACQANAIAVBADYCACAAIAIoAgAgDSgCACACKAIAayAJEI4ENgIAIAAoAgAQzAENASACIAIoAgBBA2o2AgAgAyADKAIAQQNrNgIAIAAoAgAgAygCAEsNAgJAAkACQAJAAkACQCAJKAIADgQBAgADBAsMCAsgBSAIKAIAIAQoAgAgDCgCACAEKAIAayACKAIAIAAoAgAQtAU2AgAMAwsgBSAEKAIAIAwoAgAg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AgAgBSgCACEAIAQkBSAADwsgBEEEaiECIAQhACABKAIAQQRPIQcgAygCACAGKAIANgIMAkAgBwRAIAMoAgAgBigCACABKAIAakF8ajYCCCADKAIAKAIIEL0FIQAgAygCACAANgIAIAIgBigCACABKAIAQQFrai0AADYCACACKAIABEBBCCACKAIAENQBayEAIAMoAgAgADYCBAwCCyAFQX82AgAgBSgCACEAIAQkBSAADwUgAygCACADKAIAKAIMNgIIIAMoAgAgAygCACgCDC0AADYCAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEoAgBBAmsOBgUEAwIBAAYLIAMoAgAiAiACKAIAIAMoAgAoAgwtAAZBEHRqNgIADAYLDAULDAULDAULDAULDAULDAULIAMoAgAiAiACKAIAIAMoAgAoAgwtAAVBCHRqNgIACyADKAIAIgIgAigCACADKAIAKAIMLQAEajYCAAsgAygCACICIAIoAgAgAygCACgCDC0AA0EYdGo2AgALIAMoAgAiAiACKAIAIAMoAgAoAgwtAAJBEHRqNgIACyADKAIAIgIgAigCACADKAIAKAIMLQABQQh0ajYCAAsgACAGKAIAIAEoAgBBAWtqLQAANgIAIAAoAgAEQEEIIAAoAgAQ1AFrIQAgAygCACAANgIEIAMoAgBBBGoiACAAKAIAQQQgASgCAGtBA3RqNgIADAILIAVBfzYCACAFKAIAIQAgBCQFIAAPCwALIAUgASgCADYCACAFKAIAIQAgBCQFIAALdgECfyMFIQMjBUEQaiQFIANBCGoiBCAANgIAIANBBGoiACABNgIAIAMgAjYCACADQQxqIgEgAygCACgBADYBACAAKAIAIAEvAQAQ3AEhASAEKAIAIAE2AgAgACgCABC6BRogBCgCACADKAIAQQRqNgIEIAMkBQvAAwEGfyMFIQMjBUEQaiQFIANBDGohAiADQQhqIgEgADYCACABKAIAKAIEQSBLBEAgAkEDNgIAIAIoAgAhACADJAUgAA8LIAEoAgAhBSABKAIAKAIIIAEoAgAoAgxBBGpPBEAgASgCAEEIaiIAIAAoAgAgBSgCBEEDdms2AgAgASgCAEEEaiIAIAAoAgBBB3E2AgAgASgCACgCCBC9BSEAIAEoAgAgADYCACACQQA2AgAgAigCACEAIAMk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QCACKAIIQQRPDQILA0AgCCgCACAGKAIASQRAIAEgASgCACIAQQFqNgIAIAAsAAAhACAIIAgoAgAiAkEBajYCACACIAA6AAAMAQsLIAogBSgCADYCACAKKAIAIQAgCSQFIAAPCwsgAigCBEEISQRAIAAgAigCBEECdEGQPWooAgA2AgAgCCgCACABKAIALAAAOgAAIAgoAgAgASgCACwAAToAASAIKAIAIAEoAgAsAAI6AAIgCCgCACABKAIALAADOgADIAEgASgCACACKAIEQQJ0QbA9aigCAGo2AgAgCCgCAEEEaiABKAIAEJ4EIAEgASgCACAAKAIAazYCAAUgCCgCACABKAIAEPwCCyAIIAgoAgBBCGo2AgAgASABKAIAQQhqNgIAIAgoAgAhAAJAIAYoAgAgCygCAEF0aksEQCAAIAQoAgBJBEAgCCgCACABKAIAIAQoAgAgCCgCAGsQ+wIgASABKAIAIAQoAgAgCCgCAGtqNgIAIAggBCgCADYCAAsDQCAIKAIAIAYoAgBPDQIgASABKAIAIgBBAWo2AgAgACwAACEAIAggCCgCACICQQFqNgIAIAIgADoAAAwACwAFIAAgASgCACACKAIIQQhrEPsCCwsgCiAFKAIANgIAIAooAgAhACAJJAUgAAs3AQJ/IwUhASMFQRBqJAUgASAANgIAIAFBBGoiAiABKAIAIgAQkAQ2AgAgAigCACEAIAEkBSAAC40LARB/IwUhBSMFQdAAaiQFIAVBQGshBiAFQTxqIhIgADYCACAFQThqIg8gATYCACAFQTRqIgggAjYCACAFQTBqIgAgAzYCACAFQSxqIhAgBDYCACAFQShqIg4gACgCADYCACAFQSRqIgsgDigCACAQKAIAajYCACAFQSBqIgIgDigCADYCACAFQQhqIglBADYCACAFQQRqIhNBADYCACAQKAIAQQRJBEAgBkG4fzYCACAGKAIAIQAgBSQFIAAPCyAFQRBqIgMgAigCABCQBDYCACAFQRxqIgQgAygCAEEPcUEFajYCACAEKAIAQQ9KBEAgBkFUNgIAIAYoAgAhACAFJAUgAA8LIAUhACAFQcYAaiERIAVBxABqIQcgAyADKAIAQQR2NgIAIAVBDGoiAUEENgIAIAgoAgAgBCgCADYCACAFQRhqIgxBASAEKAIAdEEBajYCACAFQRRqIghB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CyABQQRqIgAgACgCACABKAIEQQR2ajYCACABQQhqIgAgACgCACABKAIIQQN2ajYCACABKAIEIAEoAgBJBEAgA0EBNgIACyAFIAcoAgAgBigCACAIKAIAIAIoAgAgAygCAEECdEHE5QBqKAIAQQ9xQagBahEIADYCACAFKAIAIQAgBCQFIAALrQIBBn8jBSEEIwVBoMAAaiQFIARBnMAAaiEFIARBmMAAaiIHIAA2AgAgBEGUwABqIgggATYCACAEQZDAAGoiBiACNgIAIARBjMAAaiIBIAM2AgAgBCIAQQBBgsAAEPYHGiAEQQw7AQAgBEGIwABqIgMgBigCADYCACAEQYTAAGoiAiAEIAYoAgAgASgCABDLBTYCACACKAIAEMwBQQBHIQkgAigCACEGIAkEQCAFIAY2AgAgBSgCACEAIAQkBSAADwsgBiABKAIATwR/IAVBuH82AgAgBSgCACEAIAQkBSAABSADIAMoAgAgAigCAGo2AgAgASABKAIAIAIoAgBrNgIAIAUgBygCACAIKAIAIAMoAgAgASgCACAAEMwFNgIAIAUoAgAhACAEJAUgAAsLrQIBBn8jBSEEIwVBoIABaiQFIARBnIABaiEFIARBmIABaiIHIAA2AgAgBEGUgAFqIgggATYCACAEQZCAAWoiBiACNgIAIARBjIABaiIBIAM2AgAgBCIAQQBBhIABEPYHGiAEQQw2AgAgBEGIgAFqIgMgBigCADYCACAEQYSAAWoiAiAEIAYoAgAgASgCABDDBTYCACACKAIAEMwBQQBHIQkgAigCACEGIAkEQCAFIAY2AgAgBSgCACEAIAQkBSAADwsgBiABKAIATwR/IAVBuH82AgAgBSgCACEAIAQkBSAABSADIAMoAgAgAigCAGo2AgAgASABKAIAIAIoAgBrNgIAIAUgBygCACAIKAIAIAMoAgAgASgCACAAEMQFNgIAIAUoAgAhACAEJAUgAAsLhQoBG38jBSEDIwVB0BBqJAUgA0HIEGohBiADQcQQaiIEIAA2AgAgA0HAEGoiACABNgIAIANBvBBqIgEgAjYCACADQZAJaiICQgA3AwAgAkIANwMIIAJCADcDECACQgA3AxggAkIANwMgIAJCADcDKCACQgA3AzAgAkIANwM4IAJBQGtBADYCACADQcAIaiIHQgA3AwAgB0IANwMIIAdC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AigCAEECdGooAgA2AgAgCiAELgEAEOAEIAogFigCADoAAiAKQQE6AAMgDEEANgIAA0AgDCgCACASKAIATw0CIBUoAgAgDCgCAEECdGogCigBADYBACAMIAwoAgBBAWo2AgAMAAsACwsgC0EANgIAA0AgCygCACAFKAIASQRAIBMgAygCACALKAIAQQF0ai0AADYCACANIAMoAgAgCygCAEEBdGotAAE2AgAgDyAGKAIAIA0oAgBrNgIAIBBBASAXKAIAIA8oAgBrdDYCACARIAAgDSgCAEECdGooAgA2AgAgDiARKAIANgIAIBQgESgCACAQKAIAajYCACAKIAQvAQAgEygCAEEIdGpB//8DcRDgBCAKIA8oAgAgFigCAGo6AAIgCkECOgADA0AgFSgCACEBIA4gDigCACICQQFqNgIAIAEgAkECdGogCigBADYBACAOKAIAIBQoAgBJDQALIAAgDSgCAEECdGoiASABKAIAIBAoAgBqNgIAIAsgCygCAEEBajYCAAwBCwsgCSQFC6YDAQh/IwUhBCMFQcCEAWokBSAEQbSEAWohBSAEQbCEAWoiByAANgIAIARBrIQBaiIIIAE2AgAgBEGohAFqIgEgAjYCACAEQaSEAWoiAiADNgIAIARBoIQBaiIAIAEoAgA2AgAgBEGchAFqIgMgACgCADYCACAEQZSEAWoiBkH/ATYCACACKAIAQQJJBEAgBUG4fzYCACAFKAIAIQAgBCQFIAAPCyAEQZCEAWoiASAEQZCAAWoiCSAGIARBmIQBaiIKIAAoAgAgAigCABC+BTYCACABKAIAEMwBQQBHIQsgASgCACEAIAsEQCAFIAA2AgAgBSgCACEAIAQkBSAADwsgACACKAIATwRAIAVBuH82AgAgBSgCACEAIAQkBSAADwsgAyADKAIAIAEoAgBqNgIAIAIgAigCACABKAIAazYCACABIAQiACAJIAYoAgAgCigCABCVBTYCACABKAIAEMwBBH8gBSABKAIANgIAIAUoAgAhACAEJAUgAAUgBSAHKAIAIAgoAgAgAygCACACKAIAIAAQygU2AgAgBSgCACEAIAQkBSAACwuNDgEkfyMFIQUjBUHAAWokBSAFQbgBaiEQIAVBtAFqIRsgBUGwAWohHCAFQawBaiEdIAVBqAFqIR4gBUGkAWohFSAFQaABaiEKIAVB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AWogADYCACAFKAIAQejhAWooAgAQzQFBAEchAyAFKAIAIQAgAwRAIAYgAEHo4QFqKAIANgIAIAYoAgAhACAHJAUgAA8FIABB3OIJaiACKAIAIAEoAgAQ9AcaIAUoAgBByOABaiAFKAIAQejhAWooAgAgASgCAGs2AgAgBSgCAEGE4QFqQQE2AgAgBkEANgIAIAYoAgAhACAHJAUgAA8LAAsgBSgCAEHc4glqIAUoAgBB6OEBaigCACABKAIAa2ogAigCACABKAIAEPQHGiALIAUoAgAgBSgCAEHc4glqIAUoAgBB6OEBaigCABCoBDYCACALKAIAEM0BBEAgBiALKAIANgIAIAYoAgAhACAHJAUgAA8FIAUoAgBByOABakEDNgIAIAUoAgBBhOEBakECNgIAIAZBADYCACAGKAIAIQAgByQFIAAPCwALIAogAigCAEEDIAQQhwQ2AgAgCigCABDNAUEARyEBIAooAgAhACABBEAgBiAANgIAIAYoAgAhACAHJAUgAA8LIAUoAgBByOABaiAANgIAIAUoAgBBgOEBaiAEKAIANgIAIAUoAgBBiOIBaiAEKAIINgIAIAQoAgRBAEchACAKKAIABEAgBSgCAEGE4QFqIAAEf0EEBUEDCzYCACAGQQA2AgAgBigCACEAIAckBSAADwsgBSgCACEBIAAEQCAFKAIAQcjgAWohACABQfDgAWooAgAEQCAAQQQ2AgAgBSgCAEGE4QFqQQU2AgAFIABBADYCACAFKAIAQYThAWpBADYCAAsFIAFByOABakEDNgIAIAUoAgBBhOEBakECNgIACyAGQQA2AgAgBigCACEAIAckBSAADwsCQAJAAkACQAJAIAUoAgBBgOEBaigCAA4DAQIAAwsgAyAFKAIAIAgoAgAgCSgCACACKAIAIAEoAgBBARCXBDYCAAwDCyADIAgoAgAgCSgCACACKAIAIAEoAgAQqQQ2AgAMAgsgAyAIKAIAIAkoAgAgAigCACABKAIAIAUoAgBBiOIBaigCABDUBTYCAAwBCyAGQWw2AgAgBigCACEAIAckBSAADwsgAygCABDNAUEARyEBIAMoAgAhACABBEAgBiAANgIAIAYoAgAhACAHJAUgAA8LIAUoAgBB+OABaiIBIAEpAwAgAK18NwMAIAUoAgBB8OABaigCAARAIAUoAgBBkOEBaiAI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AygCAEGE4QFqQQI2AgALIAMoAgBB2OABaiADKAIAQdjgAWopAwBCgAhWBH4gAygCAEHY4AFqKQMABUKACAs3AwAgAygCAEHY4AFqKQMAIAMoAgBBrOIBaigCAK1WBEBBNCEBDAULIBkgAygCAEHg4AFqKAIAQQRLBH8gAygCAEHg4AFqKAIABUEECyIGNgIAIBogAygCAEHY4AFqKQMAIAMoAgBB0OABaikDABDjBTYCAAJAAkAgAygCAEGk4gFqKAIAIBkoAgBJDQAgAygCAEG04gFqKAIAIBooAgBJDQAMAQsgIiAZKAIAIBooAgBqNgIAIAMoAgBBjOIBaigCAARAICIoAgAgAygCAEGM4gFqKAIAQfDiCWtLBEBBOyEBDAcLBSADKAIAQaDiAWooAgAhBiANIAMoAgBB+OEBaiIOKQIANwIAIA0gDigCCDYCCCAGIA0Q7wEgAygCAEGk4gFqQQA2AgAgAygCAEG04gFqQQA2AgAgIigCACEGIA0gAygCAEH44QFqIg4pAgA3AgAgDSAOKAIINgIIIAYgDRDtASEGIAMoAgBBoOIBaiAGNgIAIAMoAgBBoOIBaigCAEUEQEE9IQEMBwsLIAMoAgBBpOIBaiAZKAIANgIAIAMoAgBBsOIBaiADKAIAQaDiAWooAgAgAygCAEGk4gFqKAIAajYCACADKAIAQbTiAWogGigCADYCAAsgAygCAEGc4gFqQQI2AgALIBEgAygCABDRBTYCACARKAIARQRAIAMoAgBBnOIBakEANgIAIAFBADYCAAwDCyALKAIAIAIoAgBrIBEoAgBJBEAgAigCACALKAIARgRAIAFBADYCAAwEBSADKAIAQZziAWpBAzYCAAwCCwALICMgAygCABDnBTYCACASIAMoAgAiDiADKAIAQbDiAWooAgAgAygCAEG44gFqKAIAaiAjKAIABH9BAAUgAygCAEG04gFqKAIAIAMoAgBBuOIBaigCAGsLIgYgAigCACARKAIAENMFNgIAIBIoAgAQzQEEQEHGACEBDAQLIAIgAigCACARKAIAajYCACASKAIAICMoAgByBEAgAygCAEG84gFqIAMoAgBBuOIBaigCACASKAIAajYCACADKAIAQZziAWpBBDYCAAsMAgsgJCADKAIAENEFNgIAIBMgJCgCACADKAIAQajiAWooAgBrNgIA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NgIAIAMoAgAhASAAKAIABEAgARDSBUECRkEDbCEBIAAgACgCACABajYCACAAIAAoAgAgAygCAEGo4gFqKAIAazYCACAFIAAoAgA2AgAgBSgCACEAIAQkBSAADwsgAygCAEHQ4gFqKAIAQQBHIQAgAUG84gFqKAIAIAMoAgBBuOIBaigCAEcEQCAARQRAIAcoAgBBCGoiACAAKAIAQX9qNgIAIAMoAgBB0OIBakEBNgIACyAFQQE2AgAgBSgCACEAIAQkBSAADwsCQCAABEAgBygCACgCCCAHKAIAKAIESQRAIAcoAgBBCGoiACAAKAIAQQFqNgIADAILIAMoAgBBnOIBakECNgIAIAVBATYCACAFKAIAIQAgBCQFIAAPCwsgBUEANgIAIAUoAgAhACAEJAUgAA8LQQALvggBHH8jBSEEIwVBgAFqJAUgBEHwAGohBiAEQdwAaiEQIARB2ABqIREgBEHUAGohCCAEQdAAaiESIARBzABqIQkgBEHIAGohEyAEQcQAaiEUIARBQGshFSAEQTxqIQogBEE4aiEWIARBNGohCyAEQTBqIRcgBEEsaiEYIARBKGohGSAEQSRqIQwgBEEgaiEaIARBHGohDSAEQRhqIRsgBEEUaiEcIARBEGohHSAEQQxqIQ4gBEEIaiEeIARBBGohDyAEIR8gBEHsAGoiByAANgIAIARB6ABqIgAgATYCACAEQeQAaiIFIAI2AgAgBEHgAGoiASADNgIAAkACQAJAAkACQCAAKAIAQQRrDgQDAgEABAsgHCAHKAIANgIAIB0gASgCACgCACABKAIAKAIIajYCACAOIAEoAgAoAgQgASgCACgCCGs2AgAgHiAFKAIAKAIAIAUoAgAoAghqNgIAIA8gBSgCACgCBCAFKAIAKAIIazYCACAfIBwoAgAgHigCACAPIB0oAgAgDhD4BTYCACAFKAIAQQhqIgAgACgCACAPKAIAajYCACABKAIAQQhqIgAgACgCACAOKAIAajYCACAGIB8oAgA2AgAgBigCACEAIAQkBSAADwsgGCAHKAIANgIAIBkgASgCACgCACABKAIAKAIIajYCACAMIAEoAgAoAgQgASgCACgCCGs2AgAgGiAFKAIAKAIAIAUoAgAoAghqNgIAIA0gBSgCACgCBCAFKAIAKAIIazYCACAbIBgoAgAgGigCACANIBkoAgAgDBD3BTYCACAFKAIAQQhqIgAgACgCACANKAIAajYCACABKAIAQQhqIgAgACgCACAMKAIAajYCACAGIBsoAgA2AgAgBigCACEAIAQkBSAADwsgFCAHKAIANgIAIBUgASgCACgCACABKAIAKAIIajYCACAKIAEoAgAoAgQgASgCACgCCGs2AgAgFiAFKAIAKAIAIAUoAgAoAghqNgIAIAsgBSgCACgCBCAFKAIAKAIIazYCACAXIBQoAgAgFigCACALIBUoAgAgChD2BTYCACAFKAIAQQhqIgAgACgCACALKAIAajYCACABKAIAQQhqIgAgACgCACAKKAIAajYCACAGIBcoAgA2AgAgBigCACEAIAQkBSAADwsgECAHKAIANgIAIBEgASgCACgCACABKAIAKAIIajYCACAIIAEoAgAoAgQgASgCACgCCGs2AgAgEiAFKAIAKAIAIAUoAgAoAghqNgIAIAkgBSgCACgCBCAFKAIAKAIIazYCACATIBAoAgAgEigCACAJIBEoAgAgCBD1BTYCACAFKAIAQQhqIgAgACgCACAJKAIAajYCACABKAIAQQhqIgAgACgCACAIKAIAajYCACAGIBMoAgA2AgAgBigCACEAIAQkBSAADwsgBkF0NgIAIAYoAgAhACAEJAUgAAuRBQEGfyMFIQUjBUEwaiQFIAVBIGoiBiAANgIAIAVBHGoiByABNgIAIAVBGGoiCCACNgIAIAVBFGoiCSADNgIAIAVBEGoiAyAENgIAIAcoAgAgCCgCAEcEQCAGKAIAKAIAIAcoAgAQ7AMaCyAFQSRqIQEgBUEMaiECIAVBCGohBCAFQQRqIQogBSEAAkACQAJAAkACQCAIKAIAQQRrDgQDAgEABAsgACAHKAIAIAgoAgBHBH8Q7wUFIAYoAgAoAgALNgIAIAAoAgAEQCAAKAIAIAkoAgAgAygCABDwBRogBigCACAAKAIANgIAIAFBADYCACABKAIAIQAgBSQFIAAPBSABQUA2AgAgASgCACEAIAUkBSAADwsACyAKIAcoAgAgCCgCAEcEfxDtBQUgBigCACgCAAs2AgAgCigCAARAIAooAgAgCSgCACADKAIAEO4FGiAGKAIAIAooAgA2AgAgAUEANgIAIAEoAgAhACAFJAUgAA8FIAFBQDYCACABKAIAIQAgBSQFIAAPCwALIAQgBygCACAIKAIARwR/EOsFBSAGKAIAKAIACzYCACAEKAIABEAgBCgCACAJKAIAIAMoAgAQ7AUaIAYoAgAgBCgCADYCACABQQA2AgAgASgCACEAIAUkBSAADwUgAUFANgIAIAEoAgAhACAFJAUgAA8LAAsgAiAHKAIAIAgoAgBHBH8Q9AUFIAYoAgAoAgALNgIAIAIoAgAEQCACKAIAEOkFGiACKAIAIAkoAgAgAygCABDqBRogBigCACACKAIANgIAIAFBADYCACABKAIAIQAgBSQFIAAPBSABQUA2AgAgASgCACEAIAUkBSAADwsACyABQQA2AgAgASgCACEAIAUkBSAACy4BAX8jBSEBIwVBEGokBSABIAA2AgAgASgCAEGE4QFqKAIAQQdGIQAgASQFIAALhwEBBH8jBSEEIwVBIGokBSAEQRBqIgYgADYCACAEQQxqIgUgATYCACAEQQhqIgcgAjYCACAEQQRqIgEgAzYCACAFKAIAIQIgASgCACEDIAQiACAFKAIAIAEoAgBJBH8gAgUgAws2AgAgBigCACAHKAIAIAAoAgAQ9AcaIAAoAgAhACAEJAUgAAsmAQF/IwUhASMFQRBqJAUgASAANgIAIAEoAgAQ8wUhACABJAUgAAtIAQJ/IwUhAyMFQRBqJAUgA0EIaiIEIAA2AgAgA0EEaiIAIAE2AgAgAyACNgIAIAQoAgAgACgCACADKAIAEPIFIQAgAyQFIAALzAEBBH8jBSECIwVBEGokBSACQQRqIQMgAiIBQeAAEIYGNgIAIAEoAgAEfyABKAIAIgBCADcDACAAQgA3AwggAEIANwMQIABCADcDGCAAQgA3AyAgAEIANwMoIABCADcDMCAAQgA3AzggAEFAa0IANwMAIABCADcDSCAAQgA3A1AgAEIANwNYELAEIQAgASgCACAANgIAIAEoAgBBADYCUCADIAEoAgA2AgAgAygCACEBIAIkBSABBSADQQA2AgAgAygCACEBIAIkBSABCwt9AQJ/IwUhBCMFQRBqJAUgBEEIaiIDIAA2AgAgBEEEaiIAIAE2AgAgBCACNgIAIAMoAgBBATYCUCADKAIAQQA2AkggAygCAEEANgJEIAMoAgBBADYCOCADKAIAQQA2AkwgAygCACgCACAAKAIAIAQoAgAQhQUhACAEJAUgAAu+AQEEfyMFIQIjBUEQaiQFIAJBBGohAyACIgFB0AAQhgY2AgAgASgCAAR/IAEoAgAiAEIANwMAIABCADcDCCAAQgA3AxAgAEIANwMYIABCADcDICAAQgA3AyggAEIANwMwIABCADcDOCAAQUBrQgA3AwAgAEIANwNIELIEIQAgASgCACAANgIAIAEoAgBBADYCGCADIAEoAgA2AgAgAygCACEBIAIkBSABBSADQQA2AgAgAygCACEBIAIkBSABCwt9AQJ/IwUhBCMFQRBqJAUgBEEIaiIDIAA2AgAgBEEEaiIAIAE2AgAgBCACNgIAIAMoAgBBATYCGCADKAIAQQA2AjQgAygCAEEANgIwIAMoAgBBADYCJCADKAIAQQA2AkwgAygCACgCACAAKAIAIAQoAgAQ6gQhACAEJAUgAAs0AQJ/IwUhACMFQRBqJAUgAEGg5QApAgA3AgAgAEGo5QAoAgA2AgggABDxBSEBIAAkBSABC30BAn8jBSEEIwVBEGokBSAEQQhqIgMgADYCACAEQQRqIgAgATYCACAEIAI2AgAgAygCAEEBNgIgIAMoAgBBADYCPCADKAIAQQA2AjggAygCAEEANgIsIAMoAgBBADYCWCADKAIAKAIAIAAoAgAgBCgCABC2BCEAIAQkBSAAC5wDAQV/IwUhBCMFQSBqJAUgACgCAEUEQCAAKAIERQRAIABBoOUAKQIANwIAIABBqOUAKAIANgIICwsgBEEIaiEFIARBBGohAiAEIQMgACgCAARAIAAoAgQEQCADIAAoAghB6AAgACgCAEE/cUHIAGoRBwA2AgAgAygCAEUEQCACQQA2AgAgAigCACEAIAQkBSAADwsgAygCACIBQgA3AwAgAUIANwMIIAFCADcDECABQgA3AxggAUIANwMgIAFCADcDKCABQgA3AzAgAUIANwM4IAFBQGtCADcDACABQgA3A0ggAUIANwNQIAFCADcDWCABQgA3A2AgAygCAEHcAGoiASAAKQIANwIAIAEgACgCCDYCCCAFIAApAgA3AgAgBSAAKAIINgIIIAUQ5wQhACADKAIAIAA2AgAgAygCACEAIAMoAgAoAgAEQCAAQQA2AiAgAiADKAIANgIAIAIoAgAhACAEJAUgAA8FIAAQ8AMaIAJBADYCACACKAIAIQAgBCQFIAAPCwALCyACQQA2AgAgAigCACEAIAQkBSAAC04B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AAAAAAAAAGIEfyAARAAAAAAAAPBDoiABEKkGIQAgASgCAEFAagVBAAsiAjYCAAwBCyABIASnQf8PcUGCeGo2AgAgA0L/////////h4B/g0KAgICAgICA8D+EvyEACyAAC6UCAAJ/IAAEfyABQYABSQRAIAAgAToAAEEBDAILQZDpACgCACgCAEUEQCABQYB/cUGAvwNGBEAgACABOgAAQQEMAwVByLUBQdQANgIAQX8MAwsACyABQYAQSQRAIAAgAUEGdkHAAXI6AAAgACABQT9xQYABcjoAAUECDAILIAFBgLADSSABQYBAcUGAwANGcgRAIAAgAUEMdkHgAXI6AAAgACABQQZ2QT9xQYABcjoAASAAIAFBP3FBgAFyOgACQQMMAgsgAUGAgHxqQYCAwABJBH8gACABQRJ2QfABcjoAACAAIAFBDHZBP3FBgAFyOgABIAAgAUEGdkE/cUGAAXI6AAIgACABQT9xQYABcjoAA0EEBUHItQFB1AA2AgBBfwsFQQELCwuTAQECfwJAAkACQANAIAJB8MUAai0AACAARg0BIAJBAWoiAkHXAEcNAAtB1wAhAgwBCyACDQBB0MYAIQAMAQtB0MYAIQADQCAAIQMDQCADQQFqIQAgAywAAARAIAAhAwwBCwsgAkF/aiICDQALCyABKAIUIgEEfyABKAIAIAEoAgQgABCZBgVBAAsiAQR/IAEFIAALC/MBAQR/AkACQCACQRBqIgQoAgAiAw0AIAIQrQYEf0EABSAEKAIAIQMMAQshAgwBCyADIAJBFGoiBSgCACIEayABSQRAIAIgACABIAIoAiRBH3FBiAFqEQUAIQIMAQsCfyACLABLQQBIIAFFcgR/QQAFIAEhAwNAIAAgA0F/aiIGaiwAAEEKRwRAIAYEQCAGIQMMAgVBAAwECwALCyACIAAgAyACKAIkQR9xQYgBahEFACICIANJDQIgACADaiEAIAEgA2shASAFKAIAIQQgAwsLIQIgBCAAIAEQ9AcaIAUgBSgCACABajYCACACIAFqIQILIAILawECfyAAQcoAaiICLAAAIQEgAiABQf8BaiABcjoAACAAKAIAIgFBCHEEfyAAIAFBIHI2AgBBfwUgAEEANgIIIABBADYCBCAAIAAoAiwiATYCHCAAIAE2AhQgACABIAAoAjBqNgIQQQALIgALOwECfyAA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QXhqKAIAIQggCUH/AXEhCSACQWhqIAYEfyAMBSAHCyAGBH8gCAUgCQsQ4QYaIAAoAgBBaGoiACwAC0EASARAIAAoAgAhAAsgASAAIAQQ9AcaIAEgBGpBADoAAEEAIQALIAMEQCADIAA2AgALIAVBIGoQ4gYgBUEQahDjBiAFEN8GIApBgCBqQQA2AgAMAQsgAwR/IANBfTYCAEEABUEACyEBCyALJAUgAQuPAQECfyMFIQIjBUEQaiQFIAIgATYCACAAQQA2AgAgAEEANgIEIABBADYCCCAAIAIoAgA2AgwgAiABENsGIABBEGoiA0EANgIAIANBADYCBCADQQA2AgggAyACKAIANgIMIAIgATYCACAAQSBqIgBBADYCACAAQQA2AgQgAEEANgIIIAAgAigCADYCDCACJAULCQAgACABNgIAC9sBAQl/IwUhBSMFQSBqJAUgBUEUaiEGIAUhBEH/////ACIHIABBBGoiCCgCACAAKAIAa0EEdUEBaiIDSQRAECgFIAAoAgggACgCACIJayICQQR1IAdBAXZJIQogAkEDdSICIANPBEAgAiEDCyAAQQxqIQIgBCAKBH8gAwUgBwsgCCgCACAJa0EEdSACENwHIARBCGoiAygCACECIAYgARDbBiACQQA2AgAgAkEANgIEIAJBADYCCCACIAYoAgA2AgwgAyACQRBqNgIAIAAgBBDdByAEEN4HIAUkBQsLtgIBAX8CQCAAIAFJBEACQCAALAAAQd8ARgRAIAEgAGtBA0wEQCADQX42AgAMBAsCQAJAAkACQAJAIAAsAAFB2gBrDgYAAgICAgECCyAAQQJqIgQgASACEOwGIgAgBEYgACABRnJFBEAgACwAAEEuRgRAIAAgASACEO0GIQALCyAAIAFGDQUgA0F+NgIADAcLDAELDAELIAAsAAJB3wBGBEAgACwAA0HaAEYEQCAAQQRqIgQgASACEOwGIgAgBEYgACABRnIEQCADQX42AgAMBwsgACABIAIQ7gYgAUYNBCADQX42AgAMBgsLCyADQX42AgAMAwUgACABIAIQ7wYgAUcEQCADQX42AgAMBAsLCyADKAIARQRAIAIoAgAgAigCBEYEQCADQX42AgALCwUgA0F+NgIACwsLDwAgAEEMahDrBiAAEOsGC1IBA38gACgCACICBEAgAEEEaiIDKAIAIQED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aiEADAELCyADIAZBDGoiAEECEPwGQduZARCWBiECIAMoAgQhBSADLAALIg1B/wFxIQ4gAiANQQBIBH8gBQUgDgtGBEAgA0HbmQEgAhD9BkUhAiADEOsGIAIEQCAAEOQHCwUgAxDrBgsgBCAJEIAHIARBAEHbmQEQ8gYaIAogBCkCADcCACAKIAQoAgg2AghBACECA0AgAkEDRwRAIAQgAkECdGpBADYCACACQQFqIQIMAQsLIApBkpoBEPMGGiAIIAopAgA3AgAgCCAKKAIINgIIQQAhAgNAIAJBA0cEQCAKIAJBAnRqQQA2AgAgAkEBaiECDAELCyAALAALIgVBAEghAiAAKAIAIQ0gBigCECEOIAVB/wFxIQUgCCACBH8gDQUgAAsgAgR/IA4FIAULEOEGGiAMIAgpAgA3AgAgDCAIKAIINgIIQQAhAANAIABBA0cEQCAIIABBAnRqQQA2AgAgAEEBaiEADAELCyAHKAIAIgJBdGoiAEELaiIHLAAAQQBIBEAgACgCACEHIANBADoAACAHIAMQ6AYgAkF4akEANgIABSADQQA6AAAgACADEOgGIAdBADoAAAsgABCOByAAIAwpAgA3AgAgACAMKAIINgIIQQAhAANAIABBA0cEQCAMIABBAnRqQQA2AgAgAEEBaiEADAELCyAMEOsGIAgQ6wYgChDrBiAEEOsGIAkQ3gYgBhDeBiABIQALCwsLCwsLCyALJAUgAAtEAQF/IABBADYCACAAQQRqIgNBADYCACAAQQA2AgggACACKAIANgIMIAAQ4wcgAygCACABEPQGIAMgAygCAEEYajYCAAuSAgEIfyMFIQcjBUEgaiQFIAchBUH/////ACIIIABBBGoiCSgCACAAKAIAa0EEdUEBaiIDSQRAECgFIAAoAgggACgCACIEayICQQR1IAhBAXZJIQYgAkEDdSICIANPBEAgAiEDCyAAQQxqIQIgBSAGBH8gAwUgCAsgCSgCACAEa0EEdSACENwHIAVBCGoiBigCACIEQQA2AgAgBEEEaiICQQA2AgAgBEEIaiIDQQA2AgAgBCABKAIMNgIMIAQgASgCADYCACACIAFBBGoiAigCADYCACADIAFBCGoiAygCADYCACADQQA2AgAgAkEANgIAIAFBADYCACAGIARBEGo2AgAgACAFEN0HIAUQ4gcgByQFCwvr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QfeZARCWBhCMByAAQQJqIgQgASADIAIQkwchASADEOsGIAEgBEcEQCABIQALDBYLIANCADcCACADQQA2AgggA0GimgFBopoBEJYGEIwHIABBAmoiBCABIAMgAhCTByEBIAMQ6wYgASAERwRAIAEhAAsMFQsgA0IANwIAIANBADYCCCADQaWaAUGlmgEQlgYQjAcgAEECaiIEIAEgAyACEJMHIQEgAxDrBiABIARHBEAgASEACwwUCyAAIAEgAhCVByEADBMLIAAgASACEJYHIQAMEgsMEQsCQAJAAkACQAJAAkAgBCwAAUHjAGsOFAAFBQUFBQUFBQECBQMFBQUFBQUEBQsgACABIAIQlwchAAwVCyAAIAEgAhCYByEADBQLIANCADcCACADQQA2AgggA0GnmgFBp5oBEJYGEIwHIABBAmoiBCABIAMgAhCTByEBIAMQ6wYgASAERwRAIAEhAAsMEwsgA0IANwIAIANBADYCCCADQamaAUGpmgEQlgYQjAcgAEECaiIEIAEgAyACEJQHIQEgAxDrBiABIARHBEAgASEACwwSCyAAIAEgAhCZByEADBELDBALAkACQAJAAkACQAJAAkACQAJAAkAgBCwAAUHWAGsOIQgJCQkJCQkJCQkJAAkBCQIJCQkJCQkDCQQJCQkJBQYJBwkLIARBAmoiBCABIAIQjQciASAERg0YIAIoAgAgAkEEaiICKAIARg0YIAdCADcCACAHQQA2AggCQCAKBEAgB0GrmgFBq5oBEJYGEIwHBUEAIQADQCAAQQNGDQIgByAAQQJ0akEANgIAIABBAWohAAwACwALCyAHQa6aARDzBhogBiAHKQIANwIAIAYgBygCCDYCCEEAIQADQCAAQQNHBEAgByAAQQJ0akEANgIAIABBAWohAAwBCwsgCCACKAIAQWhqEIAHIAgsAAsiBEEASCEAIAgoAgAhCSAIKAIEIQogBEH/AXEhBCAGIAAEfyAJBSAICyAABH8gCgUgBAsQ4QYaIAUgBikCADcCACAFIAYoAgg2AghBACEAA0AgAEEDRwRAIAYgAEECdGpBADYCACAAQQFqIQAMAQsLIAIoAgAiAkFoaiIAQQtqIgQsAABBAEgEQCAAKAIAIQQgA0EAOgAAIAQgAxDoBiACQWxqQQA2AgAFIANBADoAACAAIAMQ6AYgBEEAOgAACyAAEI4HIAAgBSkCADcCACAAIAUoAgg2AghBACEAA0AgAEEDRwRAIAUgAEECdGpBADYCACAAQQFqIQAMAQsLIAUQ6wYgCBDrBiAGEOsGIAcQ6wYgASEADBgLIAAgASACEJoHIQAMFwsgA0IANwIAIANBADYCCCADQfWZAUH1mQEQlgYQjAcgAEECaiIEIAEgAyACEJQHIQEgAxDrBiABIARHBEAgASEACwwWCyAEQQJqIgQgASACEI0HIgEgBEYNFSACKAIAIAJBBGoiAigCAEYNFSAHQgA3AgAgB0EANgIIAkAgCgRAIAdBq5oBQauaARCWBhCMBwVBACEAA0AgAEEDRg0CIAcgAEECdGpBADYCACAAQQFqIQAMAAsACwsgB0G4mgEQ8wYaIAYgBykCADcCACAGIAcoAgg2AghBACEAA0AgAEEDRwRAIAcgAEECdGpBADYCACAAQQFqIQAMAQsLIAggAigCAEFoahCAByAILAALIgRBAEghACAIKAIAIQkgCCgCBCEKIARB/wFxIQQgBiAABH8gCQUgCAsgAAR/IAoFIAQLEOEGGiAFIAYpAgA3AgAgBSAGKAIINgIIQQAhAANAIABBA0cEQCAGIABBAnRqQQA2AgAgAEEBaiEADAELCyACKAIAIgJBaGoiAEELaiIELAAAQQBIBEAgACgCACEEIANBADoAACAEIAMQ6AYgAkFsakEANgIABSADQQA6AAAgACADEOgGIARBADoAAAsgABCOByAAIAUpAgA3AgAgACAFKAIINgIIQQAhAANAIABBA0cEQCAFIABBAnRqQQA2AgAgAEEBaiEADAELCyAFEOsGIAgQ6wYgBhDrBiAHEOsGIAEhAAwVCyAAIAEgAhCbByEADBQLIAAgASACEJwHIQAMEwsgACABIAIQnQchAAwSCyADQgA3AgAgA0EANgIIIANBwJoBQcCaARCWBhCMByAAQQJqIgQgASADIAIQkwchASADEOsGIAEgBEcEQCABIQALDBELIANCADcCACADQQA2AgggA0HCmgFBwpoBEJYGEIwHIABBAmoiBCABIAMgAhCTByEBIAMQ6wYgASAERwRAIAEhAAsMEAsMDwsCQAJAAkACQCAELAABQc8Aaw4jAQMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAwIDCyADQgA3AgAgA0EANgIIIANBxZoBQcWaARCWBhCMByAAQQJqIgQgASADIAIQkwchASADEOsGIAEgBEcEQCABIQALDBELIANCADcCACADQQA2AgggA0HHmgFBx5oBEJYGEIwHIABBAmoiBCABIAMgAhCTByEBIAMQ6wYgASAERwRAIAEhAAsMEAsgA0IANwIAIANBADYCCCADQcqaAUHKmgEQlgYQjAcgAEECaiIEIAEgAyACEJMHIQEgAxDrBiABIARHBEAgASEACwwPCwwOCwJAAkACQCAELAABQeUAaw4QAAICAgICAgICAgICAgICAQILIANCADcCACADQQA2AgggA0HNmgFBzZoBEJYGEIwHIABBAmoiBCABIAMgAhCTByEBIAMQ6wYgASAERwRAIAEhAAsMDwsgA0IANwIAIANBADYCCCADQYeaAUGHmgEQlgYQjAcgAEECaiIEIAEgAyACEJMHIQEgAxDrBiABIARHBEAgASEACwwOCwwNCyAELAABQfgARw0MIABBAmoiBCABIAIQjQciCSAERg0MIAJBBGohBCAJIAEgAhCNByIBIAlGBEAgBCgCACECQQAhAQNAIAFBf0cEQCACIAFBf2oiAUEYbGoQ3gYMAQsLIAQgAkFoajYCAAwNCyAEKAIAIgkgAigCAGtBGG1BAkkNDCADIAlBaGoQgAcgBCgCACECQQAhAANAIABBf0cEQCACIABBf2oiAEEYbGoQ3gYMAQsLIAQgAkFoajYCACAFIAJBUGoQgAcgDEHjmQEgBRCPByAMQdCaARDzBhogCCAMKQIANwIAIAggDCgCCDYCCEEAIQADQCAAQQNHBEAgDCAAQQJ0akEANgIAIABBAWohAAwBCwsgAywACyICQQBIIQAgAygCACEJIAMoAgQhCiACQf8BcSECIAggAAR/IAkFIAMLIAAEfyAKBSACCxDhBhogByAIKQIANwIAIAcgCCgCCDYCCEEAIQADQCAAQQNHBEAgCCAAQQJ0akEANgIAIABBAWohAAwBCwsgB0GSmgEQ8wYaIBAgBykCADcCACAQIAcoAgg2AghBACEAA0AgAEEDRwRAIAcgAEECdGpBADYCACAAQQFqIQAMAQsLIAYgEBCDByAEKAIAQWhqIAYQhAcgBhDeBiAQEOsGIAcQ6wYgCBDrBiAMEOsGIAUQ6wYgAxDrBiABIQAMDAsCQAJAAkACQAJAIAQsAAFB0wBrDiICBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAEDBAsgA0IANwIAIANBADYCCCADQdOaAUHTmgEQlgYQjAcgAEECaiIEIAEgAyACEJMHIQEgAxDrBiABIARHBEAgASEACwwPCyADQgA3AgAgA0EANgIIIANB1poBQdaaARCWBhCMByAAQQJqIgQgASADIAIQkwchASADEOsGIAEgBEcEQCABIQALDA4LIANCADcCACADQQA2AgggA0HZmgFB2ZoBEJYGEIwHIABBAmoiBCABIAMgAhCTByEBIAMQ6wYgASAERwRAIAEhAAsMDQsgA0IANwIAIANBADYCCCADQYWaAUGFmgEQlgYQjAcgAEECaiIEIAEgAyACEJMHIQEgAxDrBiABIARHBEAgASEACwwMCwwLCwJAAkACQAJAAkACQCAELAABQckAaw4lAQUFAwUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUABQUCBAULIANCADcCACADQQA2AgggA0HdmgFB3ZoBEJYGEIwHIABBAmoiBCABIAMgAhCTByEBIAMQ6wYgASAERwRAIAEhAAsMDwsgA0IANwIAIANBADYCCCADQd+aAUHfmgEQlgYQjAcgAEECaiIEIAEgAyACEJMHIQEgAxDrBiABIARHBEAgASEACwwOCyADQgA3AgAgA0EANgIIIANB9ZkBQfWZARCWBhCMByAAQQJqIgQgASADIAIQkwchASADEOsGIAEgBEcEQCABIQALDA0LIANCADcCACADQQA2AgggA0HimgFB4poBEJYGEIwHIABBAmoiBCABIAMgAhCTByEBIAMQ6wYgASAERwRAIAEhAAsMDAsgAEECaiIEIAFHBEAgBCwAAEHfAEYEQCADQgA3AgAgA0EANgIIIANB5ZoBQeWaARCWBhCMByAAQQNqIgQgASADIAIQlAchASADEOsGIAEgBEcEQCABIQALDA0LCyAEIAEgAhCNByIBIARGDQsgAigCACACQQRqIgIoAgAiBEYNCyAGIARBaGoQgAcgBkEAQeOZARDyBhogBSAGKQIANwIAIAUgBigCCDYCCEEAIQADQCAAQQNHBEAgBiAAQQJ0akEANgIAIABBAWohAAwBCwsgBUHomgEQ8wYaIBEgBSkCADcCACARIAUoAgg2AghBACEAA0AgAEEDRwRAIAUgAEECdGpBADYCACAAQQFqIQAMAQsLIAMgERCDByACKAIAQWhqIAMQhAcgAxDeBiAREOsGIAUQ6wYgBhDrBiABIQAMCwsMCgsCQAJAAkACQAJAAkAgBCwAAUHhAGsOGAAFBQUBBQIFBQUFBQUFBQUFBQUDBQUABAULIAAgASACEJ4HIQAMDgsgA0IANwIAIANBADYCCCADQeyaAUHsmgEQlgYQjAcgAEECaiIEIAEgAyACEJMHIQEgAxDrBiABIARHBEAgASEACwwNCyADQgA3AgAgA0EANgIIIANB3ZoBQd2aARCWBhCMByAAQQJqIgQgASADIAIQlAchASADEOsGIAEgBEcEQCABIQALDAwLIANCADcCACADQQA2AgggA0HvmgFB75oBEJYGEIwHIABBAmoiBCABIAMgAhCUByEBIAMQ6wYgASAERwRAIAEhAAsMCwsgAEECaiIEIAEgAhCfByIBIARHBEAgASEACwwKCwwJCwJAAkACQAJAAkAgBCwAAUHSAGsOIQMEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAQQEAgQLIAAgASACEJsHIQAMDAsgA0IANwIAIANBADYCCCADQfGaAUHxmgEQlgYQjAcgAEECaiIEIAEgAyACEJMHIQEgAxDrBiABIARHBEAgASEACwwLCyADQgA3AgAgA0EANgIIIANB9JoBQfSaARCWBhCMByAAQQJqIgQgASADIAIQkwchASADEOsGIAEgBEcEQCABIQALDAoLIANCADcCACADQQA2AgggA0H2mgFB9poBEJYGEIwHIABBAmoiBCABIAMgAhCTByEBIAMQ6wYgASAERwRAIAEhAAsMCQsMCAsCQAJAAkACQAJAAkACQCAELAABQcwAaw4pAgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYBAAYGAwYGBAUGCyADQgA3AgAgA0EANgIIIANB+ZoBQfmaARCWBhCMByAAQQJqIgQgASADIAIQkwchASADEOsGIAEgBEcEQCABIQALDA0LIANCADcCACADQQA2AgggA0H9mgFB/ZoBEJYGEIwHIABBAmoiBCABIAMgAhCTByEBIAMQ6wYgASAERwRAIAEhAAsMDAsgA0IANwIAIANBADYCCCADQf+aAUH/mgEQlgYQjAcgAEECaiIEIAEg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BEAgACwAAEHMAEYEQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAQQFqIgUsAABB1ABrDiYAFBQUFBQUFBQUFBMUBAIDERIQFAUICRQKCw4PFBQUBgcUFAEMDRQLDBYLIANCADcCACADQQA2AgggA0GLowFBi6MBEJYGEIwHIABBAmoiBCABIAMgAhDNByEBIAMQ6wYgASAERwRAIAEhAAsMFQsgACwAA0HFAEcNFAJAAkACQCAALAACQTBrDgIAAQILIANBk6MBEKkHIAJBBGoiBCgCACIBIAIoAghJBEAgASADEIUHIAQgBCgCAEEYajYCAAUgAiADEIYHCyADEN4GIABBBGohAAwWCyADQZmjARDOByACQQRqIgQoAgAiASACKAIISQRAIAEgAxCFByAEIAQoAgBBGGo2AgAFIAIgAxCGBwsgAxDeBiAAQQRqIQAMFQsMFAsgA0IANwIAIANBADYCCCADQZ6jAUGeowEQlgYQjAcgAEECaiIEIAEgAyACEM0HIQEgAxDrBiABIARHBEAgASEACwwTCyADQgA3AgAgA0EANgIIIANBo6MBQaOjARCWBhCMByAAQQJqIgQgASADIAIQzQchASADEOsGIAEgBEcEQCABIQALDBILIANCADcCACADQQA2AgggA0GvowFBr6MBEJYGEIwHIABBAmoiBCABIAMgAhDNByEBIAMQ6wYgASAERwRAIAEhAAsMEQsgA0IANwIAIANBADYCCCADQb2jAUG9owEQlgYQjAcgAEECaiIEIAEgAyACEM0HIQEgAxDrBiABIARHBEAgASEACwwQCyADQgA3AgAgA0EANgIIIANBw6MBQcOjARCWBhCMByAAQQJqIgQgASADIAIQzQchASADEOsGIAEgBEcEQCABIQALDA8LIANCADcCACADQQA2AgggA0HstQFB7LUBEJYGEIwHIABBAmoiBCABIAMgAhDNByEBIAMQ6wYgASAERwRAIAEhAAsMDgsgA0IANwIAIANBADYCCCADQdKjAUHSowEQlgYQjAcgAEECaiIEIAEgAyACEM0HIQEgAxDrBiABIARHBEAgASEACwwNCyADQgA3AgAgA0EANgIIIANB1KMBQdSjARCWBhCMByAAQQJqIgQgASADIAIQzQchASADEOsGIAEgBEcEQCAB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QQA6AAAgACALEOgGIARBADoAAAsgABCOByAAIAkpAgA3AgAgACAJKAIINgIIQQAhAANAIABBA0cEQCAJIABBAnRqQQA2AgAgAEEBaiEADAELCyAJEOsGIAMQ6wYgBRDrBiAHEOsGIAgQ6wYgASEADAILAkACQCAEIAEQ7QciAyAERgR/IAAhAUEDBSADIAEgAhDsBiIBIANGBH8gACEBQQAFIAIoAgAgAigCBCICRgR/IAAhAUEBBSACQWhqIQIgACwAAkH2AEYEfyACQQBB4acBEPIGGkEABSACQQBB86cBEPIGGkEACwsLCyICQQNxDgQAAQEAAQsgASEADAILIAJFBEAgASEACwsLIAYkBSAACw8AIAAoAgAgACwABDoAAAvHAQECfwJAIAAgAUcEQAJAAkACQAJAIAAsAABB6ABrDg8AAgICAgICAgICAgICAgECCyAAQQFqIgMgARCLByICIANGIAIgAUZyDQQgAkEBaiEBIAIsAABB3wBGBH8gAQUgAAsPCwwBCwwCCyAAQQFqIgMgARCLByICIANGIAIgAUZyRQRAIAIsAABB3wBGBEAgAkEBaiIDIAEQiwciAiADRiACIAFGckUEQCACQQFqIQEgAiwAAEHfAEYEQCABIQALCwsLCwsgAAsZACAALAAAQQFGBH9BAAUgAEEBOgAAQQELC0sBAn8jBSEDIwVBEGokBSADIgQgAigCADYCACAAIAEgAyAAKAIAKAIQQR9xQYgBahEFACIABEAgAiAEKAIANgIACyADJAUgAEEBcQscACAABH8gAEHI3ABBgN0AQQAQygZBAEcFQQALCwMAAQsrACAAQf8BcUEYdCAAQQh1Qf8BcUEQdHIgAEEQdUH/AXFBCHRyIABBGHZyCx0BAX8gAWciA0EgRgRAIAMgAGdqIQMLQQAkCSADC8MDAQN/IAJBgMAATgRAIAAgASACECkPCyAAIQQgACACaiEDIABBA3EgAUEDcUYEQANAIABBA3EEQCACRQRAIAQPCyAAIAEsAAA6AAAgAEEBaiEAIAFBAWohASACQQFrIQIMAQsLIANBfHEiAkFAaiEFA0AgACAFTARAIAAgASgCADYCACAAIAEoAgQ2AgQgACABKAIINgIIIAAgASgCDDYCDCAAIAEoAhA2AhAgACABKAIUNgIUIAAgASgCGDYCGCAAIAEoAhw2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AAAFAAAAAwAAAEAAAAAHAAAAFwAAABcAAAAWAAAABwAAAAMAAACAAAAABwAAABkAAAAZAAAAFwAAAAcAAAADAAAAgAAAAAgAAAAaAAAAGgAAABgAAAAHAAAAAwAAAAABAAAIAAAAGwAAABsAAAAZAAAACQAAAAMAAAAAAgAACAAAABIAAAAMAAAADQAAAAEAAAAFAAAAAQAAAAEAAAASAAAADQAAAA4AAAABAAAABgAAAAEAAAABAAAAEgAAAA4AAAANAAAAAQAAAAUAAAAIAAAAAgAAABIAAAAQAAAADwAAAAEAAAAFAAAACAAAAAIAAAASAAAADwAAABEAAAABAAAABQAAAAgAAAADAAAAEgAAABAAAAARAAAABAAAAAUAAAAIAAAAAwAAABIAAAAQAAAAEQAAAAMAAAAFAAAACAAAAAQAAAASAAAAEQAAABEAAAAEAAAABAAAAAgAAAAEAAAAEgAAABEAAAARAAAABAAAAAQAAAAIAAAABQAAABIAAAARAAAAEQAAAAUAAAAEAAAACAAAAAUAAAASAAAAEQAAABEAAAAGAAAABAAAAAgAAAAFAAAAEgAAABIAAAARAAAABgAAAAQAAAAIAAAABQAAABIAAAASAAAAEQAAAAUAAAAEAAAACAAAAAYAAAASAAAAEwAAABEAAAAHAAAABAAAAAgAAAAGAAAAEgAAABIAAAASAAAABAAAAAQAAAAQAAAABwAAABIAAAASAAAAEgAAAAQAAAADAAAAEAAAAAcAAAASAAAAEwAAABIAAAAGAAAAAwAAACAAAAAHAAAAEgAAABMAAAASAAAACAAAAAMAAABAAAAABwAAABIAAAATAAAAEgAAAAkAAAADAAAAgAAAAAcAAAASAAAAEwAAABIAAAAKAAAAAwAAAAABAAAHAAAAEgAAABMAAAASAAAACwAAAAMAAAAAAgAACAAAABIAAAATAAAAEgAAAAwAAAADAAAAAAIAAAgAAAASAAAAEwAAABIAAAANAAAAAwAAAAACAAAIAAAAEQAAAAwAAAAMAAAAAQAAAAUAAAABAAAAAQAAABEAAAAMAAAADQAAAAEAAAAGAAAAAQAAAAEAAAARAAAADQAAABAAAAABAAAABQAAAAEAAAABAAAAEQAAABAAAAAQAAAAAgAAAAUAAAAIAAAAAgAAABEAAAANAAAADwAAAAMAAAAEAAAACAAAAAMAAAARAAAADwAAABEAAAAEAAAABAAAAAgAAAADAAAAEQAAABAAAAARAAAAAwAAAAQAAAAIAAAABAAAABEAAAAPAAAAEQAAAAQAAAAEAAAACAAAAAUAAAARAAAAEQAAABEAAAAEAAAABAAAAAgAAAAFAAAAEQAAABEAAAARAAAABQAAAAQAAAAIAAAABQAAABEAAAARAAAAEQAAAAYAAAAEAAAACAAAAAUAAAARAAAAEQAAABEAAAAHAAAABAAAAAgAAAAFAAAAEQAAABEAAAARAAAACAAAAAQAAAAIAAAABQAAABEAAAASAAAAEQAAAAYAAAAEAAAACAAAAAYAAAARAAAAEQAAABEAAAAHAAAAAwAAAAgAAAAHAAAAEQAAABEAAAARAAAABwAAAAMAAAAQAAAABwAAABEAAAASAAAAEQAAAAcAAAADAAAAIAAAAAcAAAARAAAAEgAAABEAAAAHAAAAAwAAAEAAAAAHAAAAEQAAABIAAAARAAAABwAAAAMAAAAAAQAABwAAABEAAAASAAAAEQAAAAgAAAADAAAAAAEAAAcAAAARAAAAEgAAABEAAAAJAAAAAwAAAAABAAAIAAAAEQAAABIAAAARAAAACgAAAAMAAAAAAQAACAAAABEAAAASAAAAEQAAAAsAAAADAAAAAAIAAAgAAAAOAAAADAAAAA0AAAABAAAABQAAAAEAAAABAAAADgAAAA4AAAAOAAAAAQAAAAYAAAABAAAAAQAAAA4AAAAOAAAADgAAAAEAAAAEAAAAAQAAAAEAAAAOAAAADgAAAA4AAAABAAAABAAAAAYAAAACAAAADgAAAA4AAAAOAAAABAAAAAQAAAAGAAAAAwAAAA4AAAAOAAAADgAAAAMAAAAEAAAABgAAAAQAAAAOAAAADgAAAA4AAAAEAAAABAAAAAYAAAAFAAAADgAAAA4AAAAOAAAABQAAAAQAAAAGAAAABQAAAA4AAAAOAAAADgAAAAYAAAAEAAAABgAAAAUAAAAOAAAADwAAAA4AAAAGAAAABAAAAAYAAAAGAAAADgAAAA8AAAAOAAAAAwAAAAMAAAAGAAAABwAAAA4AAAAPAAAADgAAAAYAAAADAAAACAAAAAcAAAAOAAAADwAAAA4AAAAGAAAAAwAAABAAAAAHAAAADgAAAA8AAAAOAAAABgAAAAMAAAAYAAAABwAAAA4AAAAPAAAADwAAAAYAAAADAAAAMAAAAAcAAAAOAAAADwAAAA8AAAAGAAAAAwAAAEAAAAAHAAAADgAAAA8AAAAPAAAABgAAAAMAAABgAAAABwAAAA4AAAAPAAAADwAAAAYAAAADAAAAgAAAAAcAAAAOAAAADwAAAA8AAAAGAAAAAwAAAAABAAAHAAAADgAAAA8AAAAPAAAABwAAAAMAAAAAAQAABwAAAA4AAAAPAAAADwAAAAgAAAADAAAAAAEAAAgAAAAOAAAADwAAAA8AAAAJAAAAAwAAAAABAAAIAAAADgAAAA8AAAAPAAAACgAAAAMAAAAAAQAACAAAAAAAAAABAAAAAwAAAAcAAAAPAAAAHwAAAD8AAAB/AAAA/wAAAP8BAAD/AwAA/wcAAP8PAAD/HwAA/z8AAP9/AAD//wAA//8BAP//AwD//wcA//8PAP//HwD//z8A//9/AP///wD///8B////A////wf///8P////H////z////9/AQAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAEGxHwuHAgECAwQFBgcICQoLDA0ODxAQERESEhMTFBQUFBUVFRUWFhYWFhYWFhcXFxcXFxcXGBgYGBgYGBgYGBgYGBgYGAABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICAhISIiIyMkJCQkJSUlJSYmJiYmJiYmJycnJycnJycoKCgoKCgoKCgoKCgoKCgoKSkpKSkpKSkpKSkpKSkpKSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqBAADAAIAAgACAAIAAgACAAIAAgACAAIAAgABAAEAAQACAAIAAgACAAIAAgACAAIAAgADAAIAAQABAAEAAQABAP//////////AEHAIQuqAQEAAQABAAEAAQABAAIAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP////////////8AAAAAAAABAAQAAwACAAIAAgACAAIAAgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP//////////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AAAAEQAAABIAAAATAAAAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAIAAAACEAAAAiAAAAIwAAACUAAAAnAAAAKQAAACsAAAAvAAAAMwAAADsAAABDAAAAUwAAAGMAAACDAAAAAwEAAAMCAAADBAAAAwgAAAMQAAADIAAAA0AAAAOAAAADAAEAQbAyC0gEAAMAAgACAAIAAgACAAIAAgACAAIAAgACAAEAAQABAAIAAgACAAIAAgACAAIAAgACAAMAAgABAAEAAQABAAEA//////////8AQYAzC6oBAQABAAEAAQABAAEAAgACAAIAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA/////////////wAAAAAAAAEABAADAAIAAgACAAIAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA//////////////////8AQfA0C00BAAAAAQAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEABBwDYLUQEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAMAAAADAAAABAAAAAQAAAAFAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEABBpDcLbQEAAAADAAAABwAAAA8AAAAfAAAAPwAAAH8AAAD/AAAA/wEAAP8DAAD/BwAA/w8AAP8fAAD/PwAA/38AAP//AAD//wEA//8DAP//BwD//w8A//8fAP//PwD//38A////AP///wH///8DAQAAAAEAQaQ4C88BAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAACAAAAAiAAAAJAAAACYAAAAoAAAALAAAADAAAAA4AAAAQAAAAFAAAABgAAAAgAAAAAABAAAAAgAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAAABAEGEOgvUAQEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAASAAAAFAAAABYAAAAYAAAAHAAAACAAAAAoAAAAMAAAAEAAAACAAAAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAEAAAACAAAAAAAEABAADAAIAAgACAAIAAgACAAIAAgACAAIAAgABAAEAAQACAAIAAgACAAIAAgACAAIAAgADAAIAAQABAAEAAQABAP//////////AEHgOwvtAgEAAQABAAEAAQABAAIAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP////////////8AAAAAAAABAAQAAwACAAIAAgACAAIAAgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP//////////////////AAAAAAAACAAAAAgAAAAIAAAABwAAAAgAAAAJAAAACgAAAAsAAAAAAAAAAQAAAAIAAAABAAAABAAAAAQAAAAEAAAABAAAAAEAAAABAAAAAgAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAAABAAAAAgAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAAABAAAAAgAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAAABAAAAAgEAAAABAAAAAQAAAAEAAAABAEHYPgsNAQAAAAEAAAACAAAAAgBB8D4LlQMBAAAAAQAAAAIAAAACAAAAJgAAAIIAAAAhBQAASgAAAGcIAAAmAAAAwAEAAIAAAABJBQAASgAAAL4IAAApAAAALAIAAIAAAABJBQAASgAAAL4IAAAvAAAAygIAAIAAAACKBQAASgAAAIQJAAA1AAAAcwMAAIAAAACdBQAASgAAAKAJAAA9AAAAgQMAAIAAAADrBQAASwAAAD4KAABEAAAAngMAAIAAAABNBgAASwAAAKoKAABLAAAAswMAAIAAAADBBgAATQAAAB8NAABNAAAAUwQAAIAAAAAjCAAAUQAAAKYPAABUAAAAmQQAAIAAAABLCQAAVwAAALESAABYAAAA2gQAAIAAAABvCQAAXQAAACMUAABUAAAARQUAAIAAAABUCgAAagAAAIwUAABqAAAArwUAAIAAAAB2CQAAfAAAAE4QAAB8AAAA0gIAAIAAAABjBwAAkQAAAJAHAACSAAAAAQAAAAIAAAADAAAABAAAAAcAAAAIAAAADwAAABAAAAAfAAAAIAAAAD8AAABAAAAAfwAAAIAAQZDCAAsYEQAKABEREQAAAAAFAAAAAAAACQAAAAALAEGwwgALIREADwoREREDCgcAARMJCwsAAAkGCwAACwAGEQAAABEREQBB4cIACwELAEHqwgALGBEACgoREREACgAAAgAJCwAAAAkACwAACwBBm8MACwEMAEGnwwALFQwAAAAADAAAAAAJDAAAAAAADAAADABB1cMACwEOAEHhwwALFQ0AAAAEDQAAAAAJDgAAAAAADgAADgBBj8QACwEQAEGbxAALHg8AAAAADwAAAAAJEAAAAAAAEAAAEAAAEgAAABISEgBB0sQACw4SAAAAEhISAAAAAAAACQBBg8UACwELAEGPxQALFQoAAAAACgAAAAAJCwAAAAAACwAACwBBvcUACwEMAEHJxQALfgwAAAAADAAAAAAJDAAAAAAADAAADAAAMDEyMzQ1Njc4OUFCQ0RFRlQhIhkNAQIDEUscDBAECx0SHidobm9wcWIgBQYPExQVGggWBygkFxgJCg4bHyUjg4J9JiorPD0+P0NHSk1YWVpbXF1eX2BhY2RlZmdpamtscnN0eXp7fABB0MYAC/0cSWxsZWdhbCBieXRlIHNlcXVlbmNlAERvbWFpbiBlcnJvcgBSZXN1bHQgbm90IHJlcHJlc2VudGFibGUATm90IGEgdHR5AFBlcm1pc3Npb24gZGVuaWVkAE9wZXJhdGlvbiBub3QgcGVybWl0dGVkAE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkATm8gc3VjaCBwcm9jZXNzAEZpbGUgZXhpc3RzAFZhbHVlIHRvbyBsYXJnZSBmb3IgZGF0YSB0eXBlAE5vIHNwYWNlIGxlZnQgb24gZGV2aWNlAE91dCBvZiBtZW1vcnkAUmVzb3VyY2UgYnVzeQBJbnRlcnJ1cHRlZCBzeXN0ZW0gY2FsbABSZXNvdXJjZSB0ZW1wb3JhcmlseSB1bmF2YWlsYWJsZQBJbnZhbGlkIHNlZWsAQ3Jvc3MtZGV2aWNlIGxpbmsAUmVhZC1vbmx5IGZpbGUgc3lzdGVtAERpcmVjdG9yeSBub3QgZW1wdHkAQ29ubmVjdGlvbiByZXNldCBieSBwZWVyAE9wZXJhdGlvbiB0aW1lZCBvdXQAQ29ubmVjdGlvbiByZWZ1c2VkAEhvc3QgaXMgZG93bgBIb3N0IGlzIHVucmVhY2hhYmxlAEFkZHJlc3MgaW4gdXNlAEJyb2tlbiBwaXBlAEkvTyBlcnJvcgBObyBzdWNoIGRldmljZSBvciBhZGRyZXNzAEJsb2NrIGRldmljZSByZXF1aXJlZABObyBzdWNoIGRldmljZQBOb3QgYSBkaXJlY3RvcnkASXMgYSBkaXJlY3RvcnkAVGV4dCBmaWxlIGJ1c3kARXhlYyBmb3JtYXQgZXJyb3IASW52YWxpZCBhcmd1bWVudABBcmd1bWVudCBsaXN0IHRvbyBsb25nAFN5bWJvbGljIGxpbmsgbG9vcABGaWxlbmFtZSB0b28gbG9uZwBUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbQBObyBmaWxlIGRlc2NyaXB0b3JzIGF2YWlsYWJsZQBCYWQgZmlsZSBkZXNjcmlwdG9yAE5vIGNoaWxkIHByb2Nlc3MAQmFkIGFkZHJlc3MARmlsZSB0b28gbGFyZ2UAVG9vIG1hbnkgbGlua3MATm8gbG9ja3MgYXZhaWxhYmxlAFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAFN0YXRlIG5vdCByZWNvdmVyYWJsZQBQcmV2aW91cyBvd25lciBkaWVkAE9wZXJhdGlvbiBjYW5jZWxlZABGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQATm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUASWRlbnRpZmllciByZW1vdmVkAERldmljZSBub3QgYSBzdHJlYW0ATm8gZGF0YSBhdmFpbGFibGUARGV2aWNlIHRpbWVvdXQAT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzAExpbmsgaGFzIGJlZW4gc2V2ZXJlZABQcm90b2NvbCBlcnJvcgBCYWQgbWVzc2FnZQBGaWxlIGRlc2NyaXB0b3IgaW4gYmFkIHN0YXRlAE5vdCBhIHNvY2tldABEZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVk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AAAAAAAAAAMAAAAEAAAAAAAAAAUAAAAGAAAAAAAAANQyAAAFAEHg5QALAR0AQfjlAAsOAQAAAAIAAABIVAAAAAQAQZDmAAsBAQBBn+YACwUK/////wBB0OYACwnUMgAAWDMAAAUAQeTmAAsBHQBB/OYACwoDAAAAAgAAAOxaAEGU5wALAQIAQaPnAAsF//////8AQZDpAAsCsFoAQezpAAsBBABBk+oACwX//////wBByOoAC+09IC4AADIAAAAzAAAAHgAAAAEAAAAAAAAAOC4AADQAAAA1AAAANgAAADcAAAAFAAAAAQAAAAEAAAABAAAAAAAAAGAuAAA0AAAAOAAAADYAAAA3AAAABQAAAAIAAAACAAAAAgAAAAAAAACQLgAANAAAADkAAAA2AAAANwAAAAYAAAAAAAAAgC4AADQAAAA6AAAANgAAADcAAAAHAAAAAAAAABAvAAA0AAAAOwAAADYAAAA3AAAACAAAAAAAAAAgLwAANAAAADwAAAA2AAAANwAAAAUAAAADAAAAAwAAAAMAAABkdW1teQByYgBsZW5ndGgAYnVmZmVyAGNvbnN0cnVjdG9yAHNldABIRUFQVTgAVmVjdG9yVTgAY2xvbmVUb1ZlY3RvcgBjbG9uZUFzVHlwZWRBcnJheQB0b1R5cGVkQXJyYXlWaWV3AFpzdGRDb21wcmVzc2lvbkRpY3QAY3JlYXRlQ29tcHJlc3Npb25EaWN0AFpzdGREZWNvbXByZXNzaW9uRGljdABjcmVhdGVEZWNvbXByZXNzaW9uRGljdABac3RkQ29kZWMAY29tcHJlc3NCb3VuZABjb250ZW50U2l6ZQBjb21wcmVzcwBkZWNvbXByZXNzAGNvbXByZXNzVXNpbmdEaWN0AGRlY29tcHJlc3NVc2luZ0RpY3QAWnN0ZENvbXByZXNzU3RyZWFtQmluZGluZwBiZWdpbgBiZWdpblVzaW5nRGljdAB0cmFuc2Zvcm0AZmx1c2gAZW5kAFpzdGREZWNvbXByZXNzU3RyZWFtQmluZGluZwBOMTBlbXNjcmlwdGVuM3ZhbEUATlN0M19fMjEwX19mdW5jdGlvbjZfX2Z1bmNJWk4yNVpzdGRDb21wcmVzc1N0cmVhbUJpbmRpbmc5VHJhbnNmb3JtRU4xMGVtc2NyaXB0ZW4zdmFsRVM0X0UzJF8wTlNfOWFsbG9jYXRvcklTNV9FRUZ2UktOU182dmVjdG9ySWhOUzZfSWhFRUVFRUVFAE5TdDNfXzIxMF9fZnVuY3Rpb242X19iYXNlSUZ2UktOU182dmVjdG9ySWhOU185YWxsb2NhdG9ySWhFRUVFRUVFAFpOMjVac3RkQ29tcHJlc3NTdHJlYW1CaW5kaW5nOVRyYW5zZm9ybUVOMTBlbXNjcmlwdGVuM3ZhbEVTMV9FMyRfMABOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjI1WnN0ZENvbXByZXNzU3RyZWFtQmluZGluZzVGbHVzaEVOMTBlbXNjcmlwdGVuM3ZhbEVFMyRfMU5TXzlhbGxvY2F0b3JJUzVfRUVGdlJLTlNfNnZlY3RvckloTlM2X0loRUVFRUVFRQBaTjI1WnN0ZENvbXByZXNzU3RyZWFtQmluZGluZzVGbHVzaEVOMTBlbXNjcmlwdGVuM3ZhbEVFMyRfMQBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjI1WnN0ZENvbXByZXNzU3RyZWFtQmluZGluZzNFbmRFTjEwZW1zY3JpcHRlbjN2YWxFRTMkXzJOU185YWxsb2NhdG9ySVM1X0VFRnZSS05TXzZ2ZWN0b3JJaE5TNl9JaEVFRUVFRUUAWk4yNVpzdGRDb21wcmVzc1N0cmVhbUJpbmRpbmczRW5kRU4xMGVtc2NyaXB0ZW4zdmFsRUUzJF8yAE5TdDNfXzIxMF9fZnVuY3Rpb242X19mdW5jSVpOMjdac3RkRGVjb21wcmVzc1N0cmVhbUJpbmRpbmc5VHJhbnNmb3JtRU4xMGVtc2NyaXB0ZW4zdmFsRVM0X0UzJF8zTlNfOWFsbG9jYXRvcklTNV9FRUZ2UktOU182dmVjdG9ySWhOUzZfSWhFRUVFRUVFAFpOMjdac3RkRGVjb21wcmVzc1N0cmVhbUJpbmRpbmc5VHJhbnNmb3JtRU4xMGVtc2NyaXB0ZW4zdmFsRVMxX0UzJF8zAE5TdDNfXzIxMF9fZnVuY3Rpb242X19mdW5jSVpOMjdac3RkRGVjb21wcmVzc1N0cmVhbUJpbmRpbmc1Rmx1c2hFTjEwZW1zY3JpcHRlbjN2YWxFRTMkXzROU185YWxsb2NhdG9ySVM1X0VFRnZSS05TXzZ2ZWN0b3JJaE5TNl9JaEVFRUVFRUUAWk4yN1pzdGREZWNvbXByZXNzU3RyZWFtQmluZGluZzVGbHVzaEVOMTBlbXNjcmlwdGVuM3ZhbEVFMyRfNABOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjI3WnN0ZERlY29tcHJlc3NTdHJlYW1CaW5kaW5nM0VuZEVOMTBlbXNjcmlwdGVuM3ZhbEVFMyRfNU5TXzlhbGxvY2F0b3JJUzVfRUVGdlJLTlNfNnZlY3RvckloTlM2X0loRUVFRUVFRQBaTjI3WnN0ZERlY29tcHJlc3NTdHJlYW1CaW5kaW5nM0VuZEVOMTBlbXNjcmlwdGVuM3ZhbEVFMyRfNQBwdXNoX2JhY2sAcmVzaXplAHNpemUAZ2V0AE5TdDNfXzI2dmVjdG9ySWhOU185YWxsb2NhdG9ySWhFRUVFAE5TdDNfXzIxM19fdmVjdG9yX2Jhc2VJaE5TXzlhbGxvY2F0b3JJaEVFRUUATlN0M19fMjIwX192ZWN0b3JfYmFzZV9jb21tb25JTGIxRUVFAFBOU3QzX18yNnZlY3RvckloTlNfOWFsbG9jYXRvckloRUVFRQBQS05TdDNfXzI2dmVjdG9ySWhOU185YWxsb2NhdG9ySWhFRUVFAGlpAHYAdmkAdmlpaQB2aWlpaQBpaWkAaWlpaQBpaWlpaQAxOVpzdGRDb21wcmVzc2lvbkRpY3QAOFJlc291cmNlSTEyWlNURF9DRGljdF9zRQBQMTlac3RkQ29tcHJlc3Npb25EaWN0AFBLMTlac3RkQ29tcHJlc3Npb25EaWN0ADIxWnN0ZERlY29tcHJlc3Npb25EaWN0ADhSZXNvdXJjZUkxMlpTVERfRERpY3Rfc0UAUDIxWnN0ZERlY29tcHJlc3Npb25EaWN0AFBLMjFac3RkRGVjb21wcmVzc2lvbkRpY3QAOVpzdGRDb2RlYwBQOVpzdGRDb2RlYwBQSzlac3RkQ29kZWMAaWlpaWlpADI1WnN0ZENvbXByZXNzU3RyZWFtQmluZGluZwBQMjVac3RkQ29tcHJlc3NTdHJlYW1CaW5kaW5nAFBLMjVac3RkQ29tcHJlc3NTdHJlYW1CaW5kaW5nADI3WnN0ZERlY29tcHJlc3NTdHJlYW1CaW5kaW5nAFAyN1pzdGREZWNvbXByZXNzU3RyZWFtQmluZGluZwBQSzI3WnN0ZERlY29tcHJlc3NTdHJlYW1CaW5kaW5nAFBGdlAxMVpTVERfQ0N0eF9zRQBGdlAxMVpTVERfQ0N0eF9zRQBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0lQRnZQMTFaU1REX0NDdHhfc0VOU185YWxsb2NhdG9ySVM1X0VFUzRfRUUATlN0M19fMjEwX19mdW5jdGlvbjZfX2Jhc2VJRnZQMTFaU1REX0NDdHhfc0VFRQBQRnZQMTFaU1REX0RDdHhfc0UARnZQMTFaU1REX0RDdHhfc0UATlN0M19fMjEwX19mdW5jdGlvbjZfX2Z1bmNJUEZ2UDExWlNURF9EQ3R4X3NFTlNfOWFsbG9jYXRvcklTNV9FRVM0X0VFAE5TdDNfXzIxMF9fZnVuY3Rpb242X19iYXNlSUZ2UDExWlNURF9EQ3R4X3NFRUUAUEZ2UDEyWlNURF9DRGljdF9zRQBGdlAxMlpTVERfQ0RpY3Rfc0UATlN0M19fMjEwX19mdW5jdGlvbjZfX2Z1bmNJUEZ2UDEyWlNURF9DRGljdF9zRU5TXzlhbGxvY2F0b3JJUzVfRUVTNF9FRQBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fYmFzZUlGdlAxMlpTVERfQ0RpY3Rfc0VFRQBQRnZQMTJaU1REX0REaWN0X3NFAEZ2UDEyWlNURF9ERGljdF9zRQBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0lQRnZQMTJaU1REX0REaWN0X3NFTlNfOWFsbG9jYXRvcklTNV9FRVM0X0VFAE5TdDNfXzIxMF9fZnVuY3Rpb242X19iYXNlSUZ2UDEyWlNURF9ERGljdF9zRUVFAFpOMThac3RkQ29tcHJlc3NTdHJlYW01QmVnaW5FaUUzJF8wAE5TdDNfXzIxMF9fZnVuY3Rpb242X19mdW5jSVpOMThac3RkQ29tcHJlc3NTdHJlYW01QmVnaW5FaUUzJF8wTlNfOWFsbG9jYXRvcklTM19FRUZtUDExWlNURF9DQ3R4X3NFRUUATlN0M19fMjEwX19mdW5jdGlvbjZfX2Jhc2VJRm1QMTFaU1REX0NDdHhfc0VFRQBaTjE4WnN0ZENvbXByZXNzU3RyZWFtNUJlZ2luRVJLMTlac3RkQ29tcHJlc3Npb25EaWN0RTMkXzEATlN0M19fMjEwX19mdW5jdGlvbjZfX2Z1bmNJWk4xOFpzdGRDb21wcmVzc1N0cmVhbTVCZWdpbkVSSzE5WnN0ZENvbXByZXNzaW9uRGljdEUzJF8xTlNfOWFsbG9jYXRvcklTNl9FRUZtUDExWlNURF9DQ3R4X3NFRUUAWk4yMFpzdGREZWNvbXByZXNzU3RyZWFtNUJlZ2luRXZFMyRfMgBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjIwWnN0ZERlY29tcHJlc3NTdHJlYW01QmVnaW5FdkUzJF8yTlNfOWFsbG9jYXRvcklTM19FRUZtUDExWlNURF9EQ3R4X3NFRUUATlN0M19fMjEwX19mdW5jdGlvbjZfX2Jhc2VJRm1QMTFaU1REX0RDdHhfc0VFRQBaTjIwWnN0ZERlY29tcHJlc3NTdHJlYW01QmVnaW5FUksyMVpzdGREZWNvbXByZXNzaW9uRGljdEUzJF8zAE5TdDNfXzIxMF9fZnVuY3Rpb242X19mdW5jSVpOMjBac3RkRGVjb21wcmVzc1N0cmVhbTVCZWdpbkVSSzIxWnN0ZERlY29tcHJlc3Npb25EaWN0RTMkXzNOU185YWxsb2NhdG9ySVM2X0VFRm1QMTFaU1REX0RDdHhfc0VFRQBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBzdGQ6OndzdHJpbmcAZW1zY3JpcHRlbjo6dmFsAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgc2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgaW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGRvdWJsZT4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZyBkb3VibGU+AE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWVFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lkRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJZkVFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SW1FRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lsRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJakVFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWlFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l0RUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJc0VFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWhFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lhRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJY0VFAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0l3TlNfMTFjaGFyX3RyYWl0c0l3RUVOU185YWxsb2NhdG9ySXdFRUVFAE5TdDNfXzIyMV9fYmFzaWNfc3RyaW5nX2NvbW1vbklMYjFFRUUATlN0M19fMjEyYmFzaWNfc3RyaW5nSWhOU18xMWNoYXJfdHJhaXRzSWhFRU5TXzlhbGxvY2F0b3JJaEVFRUUATlN0M19fMjEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUALSsgICAwWDB4AChudWxsKQAtMFgrMFggMFgtMHgrMHggMHgAaW5mAElORgBuYW4ATkFOAHJ3YQBzdGQ6OmJhZF9mdW5jdGlvbl9jYWxsAE5TdDNfXzIxN2JhZF9mdW5jdGlvbl9jYWxsRQB0ZXJtaW5hdGluZyB3aXRoICVzIGV4Y2VwdGlvbiBvZiB0eXBlICVzOiAlcwB0ZXJtaW5hdGluZyB3aXRoICVzIGV4Y2VwdGlvbiBvZiB0eXBlICVzAHRlcm1pbmF0aW5nIHdpdGggJXMgZm9yZWlnbiBleGNlcHRpb24AdGVybWluYXRpbmcAdW5jYXVnaHQAU3Q5ZXhjZXB0aW9uAE4xMF9fY3h4YWJpdjExNl9fc2hpbV90eXBlX2luZm9FAFN0OXR5cGVfaW5mbwBOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNzX3R5cGVfaW5mb0UATjEwX19jeHhhYml2MTE3X19jbGFzc190eXBlX2luZm9FAHB0aHJlYWRfb25jZSBmYWlsdXJlIGluIF9fY3hhX2dldF9nbG9iYWxzX2Zhc3QoKQBjYW5ub3QgY3JlYXRlIHB0aHJlYWQga2V5IGZvciBfX2N4YV9nZXRfZ2xvYmFscygpAGNhbm5vdCB6ZXJvIG91dCB0aHJlYWQgdmFsdWUgZm9yIF9fY3hhX2dldF9nbG9iYWxzKCkAdGVybWluYXRlX2hhbmRsZXIgdW5leHBlY3RlZGx5IHJldHVybmVkAE4xMF9fY3h4YWJpdjExOV9fcG9pbnRlcl90eXBlX2luZm9FAE4xMF9fY3h4YWJpdjExN19fcGJhc2VfdHlwZV9pbmZvRQBOMTBfX2N4eGFiaXYxMjNfX2Z1bmRhbWVudGFsX3R5cGVfaW5mb0UAdgBEbgBiAGMAaABhAHMAdABpAGoAbQBmAGQATjEwX19jeHhhYml2MTIwX19mdW5jdGlvbl90eXBlX2luZm9FAE4xMF9fY3h4YWJpdjEyMV9fdm1pX2NsYXNzX3R5cGVfaW5mb0UAIGNvbnN0ACB2b2xhdGlsZQAgcmVzdHJpY3QAIGNvbXBsZXgAIGltYWdpbmFyeQAgWwAgKAApACgAJiYAb2JqY19vYmplY3Q8ACoAJgBvYmpjcHJvdG8AIAA8AD4AIHZlY3RvclsAXQBwaXhlbCB2ZWN0b3JbACY9AD0ALAB+ADo6AGRlbGV0ZVtdIABkZWxldGUgAC8ALz0AXgBePQA9PQA+PQApWwA8PQA8PAA8PD0ALQAtPQAqPQAtLQApLS0AIT0AIQB8fAB8AHw9AC0+KgArACs9ACsrACkrKwApID8gKAApIDogKAAlACU9AD4+AD4+PQB0aHJvdwB0aHJvdyAAdHlwZWlkKABzaXplb2YuLi4oACwgAHNpemVvZiAoAHN0YXRpY19jYXN0PAA+KAByZWludGVycHJldF9jYXN0PAAtPgBub2V4Y2VwdCAoAFtdIAApIAAuAC4qAHN0ZDo6AG9wZXJhdG9yJiYAb3BlcmF0b3ImAG9wZXJhdG9yJj0Ab3BlcmF0b3I9AG9wZXJhdG9yKCkAb3BlcmF0b3IsAG9wZXJhdG9yfgBvcGVyYXRvciAAb3BlcmF0b3IgZGVsZXRlW10Ab3BlcmF0b3IqAG9wZXJhdG9yLwBvcGVyYXRvci89AG9wZXJhdG9yXgBvcGVyYXRvcl49AG9wZXJhdG9yPT0Ab3BlcmF0b3I+PQBvcGVyYXRvcj4Ab3BlcmF0b3JbXQBvcGVyYXRvcjw9AG9wZXJhdG9yIiIgAG9wZXJhdG9yPDwAb3BlcmF0b3I8PD0Ab3BlcmF0b3I8AG9wZXJhdG9yLQBvcGVyYXRvci09AG9wZXJhdG9yKj0Ab3BlcmF0b3ItLQBvcGVyYXRvciBuZXdbXQBvcGVyYXRvciE9AG9wZXJhdG9yIQBvcGVyYXRvciBuZXcAb3BlcmF0b3J8fABvcGVyYXRvcnwAb3BlcmF0b3J8PQBvcGVyYXRvci0+KgBvcGVyYXRvcisAb3BlcmF0b3IrPQBvcGVyYXRvcisrAG9wZXJhdG9yLT4Ab3BlcmF0b3I/AG9wZXJhdG9yJQBvcGVyYXRvciU9AG9wZXJhdG9yPj4Ab3BlcmF0b3I+Pj0Ab3BlcmF0b3IgZGVsZXRlACd1bm5hbWVkACdsYW1iZGEnKABzdGQ6OnN0cmluZwBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LCBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+AGJhc2ljX3N0cmluZwBzdGQ6OmlzdHJlYW0Ac3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPgBiYXNpY19pc3RyZWFtAHN0ZDo6b3N0cmVhbQBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhciwgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+AGJhc2ljX29zdHJlYW0Ac3RkOjppb3N0cmVhbQBzdGQ6OmJhc2ljX2lvc3RyZWFtPGNoYXIsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPgBiYXNpY19pb3N0cmVhbQBkeW5hbWljX2Nhc3Q8ACkoAGNvbnN0X2Nhc3Q8AGFsaWdub2YgKABmcAB3Y2hhcl90AGZhbHNlAHRydWUAY2hhcgBzaWduZWQgY2hhcgB1bnNpZ25lZCBjaGFyAHNob3J0AHVuc2lnbmVkIHNob3J0AHUAbAB1bABsbAB1bGwAX19pbnQxMjgAdW5zaWduZWQgX19pbnQxMjgAJUxhTAAlYQAlYWYAZGVjbHR5cGUoAHN0ZDo6YWxsb2NhdG9yAHN0ZDo6YmFzaWNfc3RyaW5nADo6c3RyaW5nIGxpdGVyYWwAc3RkAF9HTE9CQUxfX04AKGFub255bW91cyBuYW1lc3BhY2UpACA+AFRfAGlkADo6KgAgJgAgJiYAIFtdAHZvaWQAYm9vbABpbnQAdW5zaWduZWQgaW50AGxvbmcAdW5zaWduZWQgbG9uZwBsb25nIGxvbmcAZmxvYXQAbG9uZyBkb3VibGUAX19mbG9hdDEyOAAuLi4AZGVjaW1hbDY0AGRlY2ltYWwxMjgAZGVjaW1hbDMyAGRlY2ltYWwxNgBjaGFyMzJfdABjaGFyMTZfdABhdXRvAHN0ZDo6bnVsbHB0cl90AGRvdWJsZQB1bnNpZ25lZCBsb25nIGxvbmcAX2Jsb2NrX2ludm9rZQBpbnZvY2F0aW9uIGZ1bmN0aW9uIGZvciBibG9jayBpbiAAdnRhYmxlIGZvciAAVlRUIGZvciAAdHlwZWluZm8gZm9yIAB0eXBlaW5mbyBuYW1lIGZvciAAY292YXJpYW50IHJldHVybiB0aHVuayB0byAAY29uc3RydWN0aW9uIHZ0YWJsZSBmb3IgAC1pbi0AdmlydHVhbCB0aHVuayB0byAAbm9uLXZpcnR1YWwgdGh1bmsgdG8gAGd1YXJkIHZhcmlhYmxlIGZvciAAcmVmZXJlbmNlIHRlbXBvcmFyeSBmb3Ig";var asmjsCodeFile="";if(!isDataURI(wasmTextFile)){wasmTextFile=locateFile(wasmTextFile);}if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile);}if(!isDataURI(asmjsCodeFile)){asmjsCodeFile=locateFile(asmjsCodeFile);}var wasmPageSize=64*1024;var info={"global":null,"env":null,"asm2wasm":asm2wasmImports,"parent":Module};var exports=null;function mergeMemory(newBuffer){var oldBuffer=Module["buffer"];if(newBuffer.byteLength<oldBuffer.byteLength){err("the new buffer in mergeMemory is smaller than the previous one. in native wasm, we should grow memory here");}var oldView=new Int8Array(oldBuffer);var newView=new Int8Array(newBuffer);newView.set(oldView);updateGlobalBuffer(newBuffer);updateGlobalBufferViews();}function fixImports(imports){return imports;}function getBinary(){try{if(Module["wasmBinary"]){return new Uint8Array(Module["wasmBinary"]);}var binary=tryParseAsDataURI(wasmBinaryFile);if(binary){return binary;}if(Module["readBinary"]){return Module["readBinary"](wasmBinaryFile);}else{throw"both async and sync fetching of the wasm failed";}}catch(err){abort(err);}}function getBinaryPromise(){if(!Module["wasmBinary"]&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'";}return response["arrayBuffer"]();}).catch(function(){return getBinary();});}return new Promise(function(resolve,reject){resolve(getBinary());});}function doNativeWasm(global,env,providedBuffer){if((typeof WebAssembly==='undefined'?'undefined':_typeof(WebAssembly))!=="object"){err("no native wasm support detected");return false;}if(!(Module["wasmMemory"]instanceof WebAssembly.Memory)){err("no native wasm Memory in use");return false;}env["memory"]=Module["wasmMemory"];info["global"]={"NaN":NaN,"Infinity":Infinity};info["global.Math"]=Math;info["env"]=env;function receiveInstance(instance,module){exports=instance.exports;if(exports.memory)mergeMemory(exports.memory);Module["asm"]=exports;Module["usingWasm"]=true;removeRunDependency("wasm-instantiate");}addRunDependency("wasm-instantiate");if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance);}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false;}}function receiveInstantiatedSource(output){receiveInstance(output["instance"],output["module"]);}function instantiateArrayBuffer(receiver){getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info);}).then(receiver).catch(function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason);});}if(!Module["wasmBinary"]&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&typeof fetch==="function"){WebAssembly.instantiateStreaming(fetch(wasmBinaryFile,{credentials:"same-origin"}),info).then(receiveInstantiatedSource).catch(function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");instantiateArrayBuffer(receiveInstantiatedSource);});}else{instantiateArrayBuffer(receiveInstantiatedSource);}return{};}Module["asmPreload"]=Module["asm"];var asmjsReallocBuffer=Module["reallocBuffer"];var wasmReallocBuffer=function wasmReallocBuffer(size){var PAGE_MULTIPLE=Module["usingWasm"]?WASM_PAGE_SIZE:ASMJS_PAGE_SIZE;size=alignUp(size,PAGE_MULTIPLE);var old=Module["buffer"];var oldSize=old.byteLength;if(Module["usingWasm"]){try{var result=Module["wasmMemory"].grow((size-oldSize)/wasmPageSize);if(result!==(-1|0)){return Module["buffer"]=Module["wasmMemory"].buffer;}else{return null;}}catch(e){return null;}}};Module["reallocBuffer"]=function(size){if(finalMethod==="asmjs"){return asmjsReallocBuffer(size);}else{return wasmReallocBuffer(size);}};var finalMethod="";Module["asm"]=function(global,env,providedBuffer){env=fixImports(env);if(!env["table"]){var TABLE_SIZE=Module["wasmTableSize"];if(TABLE_SIZE===undefined)TABLE_SIZE=1024;var MAX_TABLE_SIZE=Module["wasmMaxTableSize"];if((typeof WebAssembly==='undefined'?'undefined':_typeof(WebAssembly))==="object"&&typeof WebAssembly.Table==="function"){if(MAX_TABLE_SIZE!==undefined){env["table"]=new WebAssembly.Table({"initial":TABLE_SIZE,"maximum":MAX_TABLE_SIZE,"element":"anyfunc"});}else{env["table"]=new WebAssembly.Table({"initial":TABLE_SIZE,element:"anyfunc"});}}else{env["table"]=new Array(TABLE_SIZE);}Module["wasmTable"]=env["table"];}if(!env["memoryBase"]){env["memoryBase"]=Module["STATIC_BASE"];}if(!env["tableBase"]){env["tableBase"]=0;}var exports;exports=doNativeWasm(global,env,providedBuffer);assert(exports,"no binaryen method succeeded.");return exports;};}integrateWasmJS();STATIC_BASE=GLOBAL_BASE;STATICTOP=STATIC_BASE+23280;__ATINIT__.push({func:function func(){__GLOBAL__sub_I_zstd_binding_cc();}},{func:function func(){__GLOBAL__sub_I_bind_cpp();}});var STATIC_BUMP=23280;Module["STATIC_BASE"]=STATIC_BASE;Module["STATIC_BUMP"]=STATIC_BUMP;var tempDoublePtr=STATICTOP;STATICTOP+=16;function ___cxa_allocate_exception(size){return _malloc(size);}function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception;}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:function deAdjust(adjusted){if(!adjusted||EXCEPTIONS.infos[adjusted])return adjusted;for(var key in EXCEPTIONS.infos){var ptr=+key;var info=EXCEPTIONS.infos[ptr];if(info.adjusted===adjusted){return ptr;}}return adjusted;},addRef:function addRef(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount++;},decRef:function decRef(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];assert(info.refcount>0);info.refcount--;if(info.refcount===0&&!info.rethrown){if(info.destructor){Module["dynCall_vi"](info.destructor,ptr);}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr);}},clearRef:function clearRef(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0;}};function ___cxa_begin_catch(ptr){var info=EXCEPTIONS.infos[ptr];if(info&&!info.caught){info.caught=true;__ZSt18uncaught_exceptionv.uncaught_exception--;}if(info)info.rethrown=false;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr;}function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr;}throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.";}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(setTempRet0(0),0)|0;}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0;}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module["___cxa_is_pointer_type"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i<typeArray.length;i++){if(typeArray[i]&&Module["___cxa_can_catch"](typeArray[i],throwntype,thrown)){thrown=HEAP32[thrown>>2];info.adjusted=thrown;return(setTempRet0(typeArray[i]),thrown)|0;}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0;}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};EXCEPTIONS.last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1;}else{__ZSt18uncaught_exceptionv.uncaught_exception++;}throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.";}function ___gxx_personality_v0(){}function ___lock(){}var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value;}var PATH={splitPath:function splitPath(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1);},normalizeArray:function normalizeArray(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1);}else if(last===".."){parts.splice(i,1);up++;}else if(up){parts.splice(i,1);up--;}}if(allowAboveRoot){for(;up;up--){parts.unshift("..");}}return parts;},normalize:function normalize(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p;}),!isAbsolute).join("/");if(!path&&!isAbsolute){path=".";}if(path&&trailingSlash){path+="/";}return(isAbsolute?"/":"")+path;},dirname:function dirname(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return".";}if(dir){dir=dir.substr(0,dir.length-1);}return root+dir;},basename:function basename(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1);},extname:function extname(path){return PATH.splitPath(path)[3];},join:function join(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"));},join2:function join2(l,r){return PATH.normalize(l+"/"+r);},resolve:function resolve(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings");}else if(!path){return"";}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/";}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p;}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||".";},relative:function relative(from,to){from=PATH.resolve(from).substr(1);to=PATH.resolve(to).substr(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break;}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break;}if(start>end)return[];return arr.slice(start,end-start+1);}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break;}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..");}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/");}};var TTY={ttys:[],init:function init(){},shutdown:function shutdown(){},register:function register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops);},stream_ops:{open:function open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(ERRNO_CODES.ENODEV);}stream.tty=tty;stream.seekable=false;},close:function close(stream){stream.tty.ops.flush(stream.tty);},flush:function flush(stream){stream.tty.ops.flush(stream.tty);},read:function read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(ERRNO_CODES.ENXIO);}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty);}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO);}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result;}if(bytesRead){stream.node.timestamp=Date.now();}return bytesRead;},write:function write(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(ERRNO_CODES.ENXIO);}for(var i=0;i<length;i++){try{stream.tty.ops.put_char(stream.tty,buffer[offset+i]);}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO);}}if(length){stream.node.timestamp=Date.now();}return i;}},default_tty_ops:{get_char:function get_char(tty){if(!tty.input.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=new Buffer(BUFSIZE);var bytesRead=0;var isPosixPlatform=process.platform!="win32";var fd=process.stdin.fd;if(isPosixPlatform){var usingDevice=false;try{fd=fs.openSync("/dev/stdin","r");usingDevice=true;}catch(e){}}try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE,null);}catch(e){if(e.toString().indexOf("EOF")!=-1)bytesRead=0;else throw e;}if(usingDevice){fs.closeSync(fd);}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8");}else{result=null;}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n";}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n";}}if(!result){return null;}tty.input=intArrayFromString(result,true);}return tty.input.shift();},put_char:function put_char(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[];}else{if(val!=0)tty.output.push(val);}},flush:function flush(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[];}}},default_tty1_ops:{put_char:function put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[];}else{if(val!=0)tty.output.push(val);}},flush:function flush(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[];}}}};var MEMFS={ops_table:null,mount:function mount(_mount){return MEMFS.createNode(null,"/",16384|511,0);},createNode:function createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(ERRNO_CODES.EPERM);}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={};}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null;}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream;}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream;}node.timestamp=Date.now();if(parent){parent.contents[name]=node;}return node;},getFileDataAsRegularArray:function getFileDataAsRegularArray(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;i<node.usedBytes;++i){arr.push(node.contents[i]);}return arr;}return node.contents;},getFileDataAsTypedArray:function getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array();if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents);},expandFileStorage:function expandFileStorage(node,newCapacity){if(node.contents&&node.contents.subarray&&newCapacity>node.contents.length){node.contents=MEMFS.getFileDataAsRegularArray(node);node.usedBytes=node.contents.length;}if(!node.contents||node.contents.subarray){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)|0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return;}if(!node.contents&&newCapacity>0)node.contents=[];while(node.contents.length<newCapacity){node.contents.push(0);}},resizeFileStorage:function resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return;}if(!node.contents||node.contents.subarray){var oldContents=node.contents;node.contents=new Uint8Array(new ArrayBuffer(newSize));if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)));}node.usedBytes=newSize;return;}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length<newSize){node.contents.push(0);}node.usedBytes=newSize;},node_ops:{getattr:function getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096;}else if(FS.isFile(node.mode)){attr.size=node.usedBytes;}else if(FS.isLink(node.mode)){attr.size=node.link.length;}else{attr.size=0;}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr;},setattr:function setattr(node,attr){if(attr.mode!==undefined){node.mode=attr.mode;}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp;}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size);}},lookup:function lookup(parent,name){throw FS.genericErrors[ERRNO_CODES.ENOENT];},mknod:function mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev);},rename:function rename(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name);}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);}}}delete old_node.parent.contents[old_node.name];old_node.name=new_name;new_dir.contents[new_name]=old_node;old_node.parent=new_dir;},unlink:function unlink(parent,name){delete parent.contents[name];},rmdir:function rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);}delete parent.contents[name];},readdir:function readdir(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue;}entries.push(key);}return entries;},symlink:function symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node;},readlink:function readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}return node.link;}},stream_ops:{read:function read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset);}else{for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i];}}return size;},write:function write(stream,buffer,offset,length,position,canOwn){if(!length)return 0;var node=stream.node;node.timestamp=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length;}else if(node.usedBytes===0&&position===0){node.contents=new Uint8Array(buffer.subarray(offset,offset+length));node.usedBytes=length;return length;}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length;}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray)node.contents.set(buffer.subarray(offset,offset+length),position);else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i];}}node.usedBytes=Math.max(node.usedBytes,position+length);return length;},llseek:function llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position;}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes;}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}return position;},allocate:function allocate(stream,offset,length){MEMFS.expandFileStorage(stream.node,offset+length);stream.node.usedBytes=Math.max(stream.node.usedBytes,offset+length);},mmap:function mmap(stream,buffer,offset,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV);}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&(contents.buffer===buffer||contents.buffer===buffer.buffer)){allocated=false;ptr=contents.byteOffset;}else{if(position>0||position+length<stream.node.usedBytes){if(contents.subarray){contents=contents.subarray(position,position+length);}else{contents=Array.prototype.slice.call(contents,position,position+length);}}allocated=true;ptr=_malloc(length);if(!ptr){throw new FS.ErrnoError(ERRNO_CODES.ENOMEM);}buffer.set(contents,ptr);}return{ptr:ptr,allocated:allocated};},msync:function msync(stream,buffer,offset,length,mmapFlags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV);}if(mmapFlags&2){return 0;}var bytesWritten=MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0;}}};var IDBFS={dbs:{},indexedDB:function(_indexedDB){function indexedDB(){return _indexedDB.apply(this,arguments);}indexedDB.toString=function(){return _indexedDB.toString();};return indexedDB;}(function(){if(typeof indexedDB!=="undefined")return indexedDB;var ret=null;if((typeof window==='undefined'?'undefined':_typeof(window))==="object")ret=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;assert(ret,"IDBFS used, but indexedDB not supported");return ret;}),DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function mount(_mount2){return MEMFS.mount.apply(null,arguments);},syncfs:function syncfs(mount,populate,callback){IDBFS.getLocalSet(mount,function(err,local){if(err)return callback(err);IDBFS.getRemoteSet(mount,function(err,remote){if(err)return callback(err);var src=populate?remote:local;var dst=populate?local:remote;IDBFS.reconcile(src,dst,callback);});});},getDB:function getDB(name,callback){var db=IDBFS.dbs[name];if(db){return callback(null,db);}var req;try{req=IDBFS.indexedDB().open(name,IDBFS.DB_VERSION);}catch(e){return callback(e);}if(!req){return callback("Unable to connect to IndexedDB");}req.onupgradeneeded=function(e){var db=e.target.result;var transaction=e.target.transaction;var fileStore;if(db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)){fileStore=transaction.objectStore(IDBFS.DB_STORE_NAME);}else{fileStore=db.createObjectStore(IDBFS.DB_STORE_NAME);}if(!fileStore.indexNames.contains("timestamp")){fileStore.createIndex("timestamp","timestamp",{unique:false});}};req.onsuccess=function(){db=req.result;IDBFS.dbs[name]=db;callback(null,db);};req.onerror=function(e){callback(this.error);e.preventDefault();};},getLocalSet:function getLocalSet(mount,callback){var entries={};function isRealDir(p){return p!=="."&&p!=="..";}function toAbsolute(root){return function(p){return PATH.join2(root,p);};}var check=FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));while(check.length){var path=check.pop();var stat;try{stat=FS.stat(path);}catch(e){return callback(e);}if(FS.isDir(stat.mode)){check.push.apply(check,FS.readdir(path).filter(isRealDir).map(toAbsolute(path)));}entries[path]={timestamp:stat.mtime};}return callback(null,{type:"local",entries:entries});},getRemoteSet:function getRemoteSet(mount,callback){var entries={};IDBFS.getDB(mount.mountpoint,function(err,db){if(err)return callback(err);try{var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readonly");transaction.onerror=function(e){callback(this.error);e.preventDefault();};var store=transaction.objectStore(IDBFS.DB_STORE_NAME);var index=store.index("timestamp");index.openKeyCursor().onsuccess=function(event){var cursor=event.target.result;if(!cursor){return callback(null,{type:"remote",db:db,entries:entries});}entries[cursor.primaryKey]={timestamp:cursor.key};cursor.continue();};}catch(e){return callback(e);}});},loadLocalEntry:function loadLocalEntry(path,callback){var stat,node;try{var lookup=FS.lookupPath(path);node=lookup.node;stat=FS.stat(path);}catch(e){return callback(e);}if(FS.isDir(stat.mode)){return callback(null,{timestamp:stat.mtime,mode:stat.mode});}else if(FS.isFile(stat.mode)){node.contents=MEMFS.getFileDataAsTypedArray(node);return callback(null,{timestamp:stat.mtime,mode:stat.mode,contents:node.contents});}else{return callback(new Error("node type not supported"));}},storeLocalEntry:function storeLocalEntry(path,entry,callback){try{if(FS.isDir(entry.mode)){FS.mkdir(path,entry.mode);}else if(FS.isFile(entry.mode)){FS.writeFile(path,entry.contents,{canOwn:true});}else{return callback(new Error("node type not supported"));}FS.chmod(path,entry.mode);FS.utime(path,entry.timestamp,entry.timestamp);}catch(e){return callback(e);}callback(null);},removeLocalEntry:function removeLocalEntry(path,callback){try{var lookup=FS.lookupPath(path);var stat=FS.stat(path);if(FS.isDir(stat.mode)){FS.rmdir(path);}else if(FS.isFile(stat.mode)){FS.unlink(path);}}catch(e){return callback(e);}callback(null);},loadRemoteEntry:function loadRemoteEntry(store,path,callback){var req=store.get(path);req.onsuccess=function(event){callback(null,event.target.result);};req.onerror=function(e){callback(this.error);e.preventDefault();};},storeRemoteEntry:function storeRemoteEntry(store,path,entry,callback){var req=store.put(entry,path);req.onsuccess=function(){callback(null);};req.onerror=function(e){callback(this.error);e.preventDefault();};},removeRemoteEntry:function removeRemoteEntry(store,path,callback){var req=store.delete(path);req.onsuccess=function(){callback(null);};req.onerror=function(e){callback(this.error);e.preventDefault();};},reconcile:function reconcile(src,dst,callback){var total=0;var create=[];Object.keys(src.entries).forEach(function(key){var e=src.entries[key];var e2=dst.entries[key];if(!e2||e.timestamp>e2.timestamp){create.push(key);total++;}});var remove=[];Object.keys(dst.entries).forEach(function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++;}});if(!total){return callback(null);}var completed=0;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err){if(!done.errored){done.errored=true;return callback(err);}return;}if(++completed>=total){return callback(null);}}transaction.onerror=function(e){done(this.error);e.preventDefault();};create.sort().forEach(function(path){if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,function(err,entry){if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done);});}else{IDBFS.loadLocalEntry(path,function(err,entry){if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done);});}});remove.sort().reverse().forEach(function(path){if(dst.type==="local"){IDBFS.removeLocalEntry(path,done);}else{IDBFS.removeRemoteEntry(store,path,done);}});}};var NODEFS={isWindows:false,staticInit:function staticInit(){NODEFS.isWindows=!!process.platform.match(/^win/);var flags=process["binding"]("constants");if(flags["fs"]){flags=flags["fs"];}NODEFS.flagsForNodeMap={"1024":flags["O_APPEND"],"64":flags["O_CREAT"],"128":flags["O_EXCL"],"0":flags["O_RDONLY"],"2":flags["O_RDWR"],"4096":flags["O_SYNC"],"512":flags["O_TRUNC"],"1":flags["O_WRONLY"]};},bufferFrom:function bufferFrom(arrayBuffer){return Buffer.alloc?Buffer.from(arrayBuffer):new Buffer(arrayBuffer);},mount:function mount(_mount3){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(_mount3.opts.root),0);},createNode:function createNode(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node;},getMode:function getMode(path){var stat;try{stat=fs.lstatSync(path);if(NODEFS.isWindows){stat.mode=stat.mode|(stat.mode&292)>>2;}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code]);}return stat.mode;},realPath:function realPath(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent;}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts);},flagsForNode:function flagsForNode(flags){flags&=~2097152;flags&=~2048;flags&=~32768;flags&=~524288;var newFlags=0;for(var k in NODEFS.flagsForNodeMap){if(flags&k){newFlags|=NODEFS.flagsForNodeMap[k];flags^=k;}}if(!flags){return newFlags;}else{throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}},node_ops:{getattr:function getattr(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path);}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code]);}if(NODEFS.isWindows&&!stat.blksize){stat.blksize=4096;}if(NODEFS.isWindows&&!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0;}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks};},setattr:function setattr(node,attr){var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode;}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);fs.utimesSync(path,date,date);}if(attr.size!==undefined){fs.truncateSync(path,attr.size);}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code]);}},lookup:function lookup(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode);},mknod:function mknod(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode);}else{fs.writeFileSync(path,"",{mode:node.mode});}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code]);}return node;},rename:function rename(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath);}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code]);}},unlink:function unlink(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path);}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code]);}},rmdir:function rmdir(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path);}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code]);}},readdir:function readdir(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path);}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code]);}},symlink:function symlink(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath);}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code]);}},readlink:function readlink(node){var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root),path);return path;}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code]);}}},stream_ops:{open:function open(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsForNode(stream.flags));}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code]);}},close:function close(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd);}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code]);}},read:function read(stream,buffer,offset,length,position){if(length===0)return 0;try{return fs.readSync(stream.nfd,NODEFS.bufferFrom(buffer.buffer),offset,length,position);}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code]);}},write:function write(stream,buffer,offset,length,position){try{return fs.writeSync(stream.nfd,NODEFS.bufferFrom(buffer.buffer),offset,length,position);}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code]);}},llseek:function llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position;}else if(whence===2){if(FS.isFile(stream.node.mode)){try{var stat=fs.fstatSync(stream.nfd);position+=stat.size;}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code]);}}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}return position;}}};var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:function mount(_mount4){assert(ENVIRONMENT_IS_WORKER);if(!WORKERFS.reader)WORKERFS.reader=new FileReaderSync();var root=WORKERFS.createNode(null,"/",WORKERFS.DIR_MODE,0);var createdParents={};function ensureParent(path){var parts=path.split("/");var parent=root;for(var i=0;i<parts.length-1;i++){var curr=parts.slice(0,i+1).join("/");if(!createdParents[curr]){createdParents[curr]=WORKERFS.createNode(parent,parts[i],WORKERFS.DIR_MODE,0);}parent=createdParents[curr];}return parent;}function base(path){var parts=path.split("/");return parts[parts.length-1];}Array.prototype.forEach.call(_mount4.opts["files"]||[],function(file){WORKERFS.createNode(ensureParent(file.name),base(file.name),WORKERFS.FILE_MODE,0,file,file.lastModifiedDate);});(_mount4.opts["blobs"]||[]).forEach(function(obj){WORKERFS.createNode(ensureParent(obj["name"]),base(obj["name"]),WORKERFS.FILE_MODE,0,obj["data"]);});(_mount4.opts["packages"]||[]).forEach(function(pack){pack["metadata"].files.forEach(function(file){var name=file.filename.substr(1);WORKERFS.createNode(ensureParent(name),base(name),WORKERFS.FILE_MODE,0,pack["blob"].slice(file.start,file.end));});});return root;},createNode:function createNode(parent,name,mode,dev,contents,mtime){var node=FS.createNode(parent,name,mode);node.mode=mode;node.node_ops=WORKERFS.node_ops;node.stream_ops=WORKERFS.stream_ops;node.timestamp=(mtime||new Date()).getTime();assert(WORKERFS.FILE_MODE!==WORKERFS.DIR_MODE);if(mode===WORKERFS.FILE_MODE){node.size=contents.size;node.contents=contents;}else{node.size=4096;node.contents={};}if(parent){parent.contents[name]=node;}return node;},node_ops:{getattr:function getattr(node){return{dev:1,ino:undefined,mode:node.mode,nlink:1,uid:0,gid:0,rdev:undefined,size:node.size,atime:new Date(node.timestamp),mtime:new Date(node.timestamp),ctime:new Date(node.timestamp),blksize:4096,blocks:Math.ceil(node.size/4096)};},setattr:function setattr(node,attr){if(attr.mode!==undefined){node.mode=attr.mode;}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp;}},lookup:function lookup(parent,name){throw new FS.ErrnoError(ERRNO_CODES.ENOENT);},mknod:function mknod(parent,name,mode,dev){throw new FS.ErrnoError(ERRNO_CODES.EPERM);},rename:function rename(oldNode,newDir,newName){throw new FS.ErrnoError(ERRNO_CODES.EPERM);},unlink:function unlink(parent,name){throw new FS.ErrnoError(ERRNO_CODES.EPERM);},rmdir:function rmdir(parent,name){throw new FS.ErrnoError(ERRNO_CODES.EPERM);},readdir:function readdir(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue;}entries.push(key);}return entries;},symlink:function symlink(parent,newName,oldPath){throw new FS.ErrnoError(ERRNO_CODES.EPERM);},readlink:function readlink(node){throw new FS.ErrnoError(ERRNO_CODES.EPERM);}},stream_ops:{read:function read(stream,buffer,offset,length,position){if(position>=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size;},write:function write(stream,buffer,offset,length,position){throw new FS.ErrnoError(ERRNO_CODES.EIO);},llseek:function llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position;}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size;}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}return position;}}};STATICTOP+=16;STATICTOP+=16;STATICTOP+=16;var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function handleFSError(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno);},lookupPath:function lookupPath(path,opts){path=PATH.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key];}}if(opts.recurse_count>8){throw new FS.ErrnoError(ERRNO_CODES.ELOOP);}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p;}),false);var current=FS.root;var current_path="/";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break;}current=FS.lookupNode(current,parts[i]);current_path=PATH.join2(current_path,parts[i]);if(FS.isMountpoint(current)){if(!islast||islast&&opts.follow_mount){current=current.mounted.root;}}if(!islast||opts.follow){var count=0;while(FS.isLink(current.mode)){var link=FS.readlink(current_path);current_path=PATH.resolve(PATH.dirname(current_path),link);var lookup=FS.lookupPath(current_path,{recurse_count:opts.recurse_count});current=lookup.node;if(count++>40){throw new FS.ErrnoError(ERRNO_CODES.ELOOP);}}}}return{path:current_path,node:current};},getPath:function getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path;}path=path?node.name+"/"+path:node.name;node=node.parent;}},hashName:function hashName(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0;}return(parentid+hash>>>0)%FS.nameTable.length;},hashAddNode:function hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node;},hashRemoveNode:function hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next;}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break;}current=current.name_next;}}},lookupNode:function lookupNode(parent,name){var err=FS.mayLookup(parent);if(err){throw new FS.ErrnoError(err,parent);}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node;}}return FS.lookup(parent,name);},createNode:function createNode(parent,name,mode,rdev){if(!FS.FSNode){FS.FSNode=function(parent,name,mode,rdev){if(!parent){parent=this;}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev;};FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:function get(){return(this.mode&readMode)===readMode;},set:function set(val){val?this.mode|=readMode:this.mode&=~readMode;}},write:{get:function get(){return(this.mode&writeMode)===writeMode;},set:function set(val){val?this.mode|=writeMode:this.mode&=~writeMode;}},isFolder:{get:function get(){return FS.isDir(this.mode);}},isDevice:{get:function get(){return FS.isChrdev(this.mode);}}});}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node;},destroyNode:function destroyNode(node){FS.hashRemoveNode(node);},isRoot:function isRoot(node){return node===node.parent;},isMountpoint:function isMountpoint(node){return!!node.mounted;},isFile:function isFile(mode){return(mode&61440)===32768;},isDir:function isDir(mode){return(mode&61440)===16384;},isLink:function isLink(mode){return(mode&61440)===40960;},isChrdev:function isChrdev(mode){return(mode&61440)===8192;},isBlkdev:function isBlkdev(mode){return(mode&61440)===24576;},isFIFO:function isFIFO(mode){return(mode&61440)===4096;},isSocket:function isSocket(mode){return(mode&49152)===49152;},flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function modeStringToFlags(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str);}return flags;},flagsToPermissionString:function flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w";}return perms;},nodePermissions:function nodePermissions(node,perms){if(FS.ignorePermissions){return 0;}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return ERRNO_CODES.EACCES;}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return ERRNO_CODES.EACCES;}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return ERRNO_CODES.EACCES;}return 0;},mayLookup:function mayLookup(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return ERRNO_CODES.EACCES;return 0;},mayCreate:function mayCreate(dir,name){try{var node=FS.lookupNode(dir,name);return ERRNO_CODES.EEXIST;}catch(e){}return FS.nodePermissions(dir,"wx");},mayDelete:function mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name);}catch(e){return e.errno;}var err=FS.nodePermissions(dir,"wx");if(err){return err;}if(isdir){if(!FS.isDir(node.mode)){return ERRNO_CODES.ENOTDIR;}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return ERRNO_CODES.EBUSY;}}else{if(FS.isDir(node.mode)){return ERRNO_CODES.EISDIR;}}return 0;},mayOpen:function mayOpen(node,flags){if(!node){return ERRNO_CODES.ENOENT;}if(FS.isLink(node.mode)){return ERRNO_CODES.ELOOP;}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return ERRNO_CODES.EISDIR;}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags));},MAX_OPEN_FDS:4096,nextfd:function nextfd(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd;}}throw new FS.ErrnoError(ERRNO_CODES.EMFILE);},getStream:function getStream(fd){return FS.streams[fd];},createStream:function createStream(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:function get(){return this.node;},set:function set(val){this.node=val;}},isRead:{get:function get(){return(this.flags&2097155)!==1;}},isWrite:{get:function get(){return(this.flags&2097155)!==0;}},isAppend:{get:function get(){return this.flags&1024;}}});}var newStream=new FS.FSStream();for(var p in stream){newStream[p]=stream[p];}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream;},closeStream:function closeStream(fd){FS.streams[fd]=null;},chrdev_stream_ops:{open:function open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream);}},llseek:function llseek(){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);}},major:function major(dev){return dev>>8;},minor:function minor(dev){return dev&255;},makedev:function makedev(ma,mi){return ma<<8|mi;},registerDevice:function registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops};},getDevice:function getDevice(dev){return FS.devices[dev];},getMounts:function getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts);}return mounts;},syncfs:function syncfs(populate,callback){if(typeof populate==="function"){callback=populate;populate=false;}FS.syncFSRequests++;if(FS.syncFSRequests>1){console.log("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(err){assert(FS.syncFSRequests>0);FS.syncFSRequests--;return callback(err);}function done(err){if(err){if(!done.errored){done.errored=true;return doCallback(err);}return;}if(++completed>=mounts.length){doCallback(null);}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null);}mount.type.syncfs(mount,populate,done);});},mount:function mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(ERRNO_CODES.EBUSY);}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY);}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot;}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount);}}return mountRoot;},unmount:function unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current);}current=next;}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1);},lookup:function lookup(parent,name){return parent.node_ops.lookup(parent,name);},mknod:function mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err);}if(!parent.node_ops.mknod){throw new FS.ErrnoError(ERRNO_CODES.EPERM);}return parent.node_ops.mknod(parent,name,mode,dev);},create:function create(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0);},mkdir:function mkdir(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0);},mkdirTree:function mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var i=0;i<dirs.length;++i){if(!dirs[i])continue;d+="/"+dirs[i];try{FS.mkdir(d,mode);}catch(e){if(e.errno!=ERRNO_CODES.EEXIST)throw e;}}},mkdev:function mkdev(path,mode,dev){if(typeof dev==="undefined"){dev=mode;mode=438;}mode|=8192;return FS.mknod(path,mode,dev);},symlink:function symlink(oldpath,newpath){if(!PATH.resolve(oldpath)){throw new FS.ErrnoError(ERRNO_CODES.ENOENT);}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(ERRNO_CODES.ENOENT);}var newname=PATH.basename(newpath);var err=FS.mayCreate(parent,newname);if(err){throw new FS.ErrnoError(err);}if(!parent.node_ops.symlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM);}return parent.node_ops.symlink(parent,newname,oldpath);},rename:function rename(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;try{lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EBUSY);}if(!old_dir||!new_dir)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(ERRNO_CODES.EXDEV);}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}relative=PATH.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);}var new_node;try{new_node=FS.lookupNode(new_dir,new_name);}catch(e){}if(old_node===new_node){return;}var isdir=FS.isDir(old_node.mode);var err=FS.mayDelete(old_dir,old_name,isdir);if(err){throw new FS.ErrnoError(err);}err=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(err){throw new FS.ErrnoError(err);}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(ERRNO_CODES.EPERM);}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY);}if(new_dir!==old_dir){err=FS.nodePermissions(old_dir,"w");if(err){throw new FS.ErrnoError(err);}}try{if(FS.trackingDelegate["willMovePath"]){FS.trackingDelegate["willMovePath"](old_path,new_path);}}catch(e){console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message);}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name);}catch(e){throw e;}finally{FS.hashAddNode(old_node);}try{if(FS.trackingDelegate["onMovePath"])FS.trackingDelegate["onMovePath"](old_path,new_path);}catch(e){console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message);}},rmdir:function rmdir(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,true);if(err){throw new FS.ErrnoError(err);}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(ERRNO_CODES.EPERM);}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY);}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path);}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message);}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path);}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message);}},readdir:function readdir(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);}return node.node_ops.readdir(node);},unlink:function unlink(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,false);if(err){throw new FS.ErrnoError(err);}if(!parent.node_ops.unlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM);}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY);}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path);}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message);}parent.node_ops.unlink(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path);}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message);}},readlink:function readlink(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(ERRNO_CODES.ENOENT);}if(!link.node_ops.readlink){throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}return PATH.resolve(FS.getPath(link.parent),link.node_ops.readlink(link));},stat:function stat(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT);}if(!node.node_ops.getattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM);}return node.node_ops.getattr(node);},lstat:function lstat(path){return FS.stat(path,true);},chmod:function chmod(path,mode,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node;}else{node=path;}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM);}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()});},lchmod:function lchmod(path,mode){FS.chmod(path,mode,true);},fchmod:function fchmod(fd,mode){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF);}FS.chmod(stream.node,mode);},chown:function chown(path,uid,gid,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node;}else{node=path;}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM);}node.node_ops.setattr(node,{timestamp:Date.now()});},lchown:function lchown(path,uid,gid){FS.chown(path,uid,gid,true);},fchown:function fchown(fd,uid,gid){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF);}FS.chown(stream.node,uid,gid);},truncate:function truncate(path,len){if(len<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;}else{node=path;}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM);}if(FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR);}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}var err=FS.nodePermissions(node,"w");if(err){throw new FS.ErrnoError(err);}node.node_ops.setattr(node,{size:len,timestamp:Date.now()});},ftruncate:function ftruncate(fd,len){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF);}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}FS.truncate(stream.node,len);},utime:function utime(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)});},open:function open(path,flags,mode,fd_start,fd_end){if(path===""){throw new FS.ErrnoError(ERRNO_CODES.ENOENT);}flags=typeof flags==="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode==="undefined"?438:mode;if(flags&64){mode=mode&4095|32768;}else{mode=0;}var node;if((typeof path==='undefined'?'undefined':_typeof(path))==="object"){node=path;}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node;}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(ERRNO_CODES.EEXIST);}}else{node=FS.mknod(path,mode,0);created=true;}}if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT);}if(FS.isChrdev(node.mode)){flags&=~512;}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);}if(!created){var err=FS.mayOpen(node,flags);if(err){throw new FS.ErrnoError(err);}}if(flags&512){FS.truncate(node,0);}flags&=~(128|512);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream);}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1;err("read file: "+path);}}try{if(FS.trackingDelegate["onOpenFile"]){var trackingFlags=0;if((flags&2097155)!==1){trackingFlags|=FS.tracking.openFlags.READ;}if((flags&2097155)!==0){trackingFlags|=FS.tracking.openFlags.WRITE;}FS.trackingDelegate["onOpenFile"](path,trackingFlags);}}catch(e){console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: "+e.message);}return stream;},close:function close(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(ERRNO_CODES.EBADF);}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream);}}catch(e){throw e;}finally{FS.closeStream(stream.fd);}stream.fd=null;},isClosed:function isClosed(stream){return stream.fd===null;},llseek:function llseek(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(ERRNO_CODES.EBADF);}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position;},read:function read(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}if(FS.isClosed(stream)){throw new FS.ErrnoError(ERRNO_CODES.EBADF);}if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EBADF);}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR);}if(!stream.stream_ops.read){throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}var seeking=typeof position!=="undefined";if(!seeking){position=stream.position;}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead;},write:function write(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}if(FS.isClosed(stream)){throw new FS.ErrnoError(ERRNO_CODES.EBADF);}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF);}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR);}if(!stream.stream_ops.write){throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}if(stream.flags&1024){FS.llseek(stream,0,2);}var seeking=typeof position!=="undefined";if(!seeking){position=stream.position;}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;try{if(stream.path&&FS.trackingDelegate["onWriteToFile"])FS.trackingDelegate["onWriteToFile"](stream.path);}catch(e){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+e.message);}return bytesWritten;},allocate:function allocate(stream,offset,length){if(FS.isClosed(stream)){throw new FS.ErrnoError(ERRNO_CODES.EBADF);}if(offset<0||length<=0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF);}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV);}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP);}stream.stream_ops.allocate(stream,offset,length);},mmap:function mmap(stream,buffer,offset,length,position,prot,flags){if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EACCES);}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(ERRNO_CODES.ENODEV);}return stream.stream_ops.mmap(stream,buffer,offset,length,position,prot,flags);},msync:function msync(stream,buffer,offset,length,mmapFlags){if(!stream||!stream.stream_ops.msync){return 0;}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags);},munmap:function munmap(stream){return 0;},ioctl:function ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(ERRNO_CODES.ENOTTY);}return stream.stream_ops.ioctl(stream,cmd,arg);},readFile:function readFile(path,opts){opts=opts||{};opts.flags=opts.flags||"r";opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"');}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0);}else if(opts.encoding==="binary"){ret=buf;}FS.close(stream);return ret;},writeFile:function writeFile(path,data,opts){opts=opts||{};opts.flags=opts.flags||"w";var stream=FS.open(path,opts.flags,opts.mode);if(typeof data==="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn);}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn);}else{throw new Error("Unsupported data type");}FS.close(stream);},cwd:function cwd(){return FS.currentPath;},chdir:function chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(ERRNO_CODES.ENOENT);}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);}var err=FS.nodePermissions(lookup.node,"x");if(err){throw new FS.ErrnoError(err);}FS.currentPath=lookup.path;},createDefaultDirectories:function createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user");},createDefaultDevices:function createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:function read(){return 0;},write:function write(stream,buffer,offset,length,pos){return length;}});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device;if(typeof crypto!=="undefined"){var randomBuffer=new Uint8Array(1);random_device=function random_device(){crypto.getRandomValues(randomBuffer);return randomBuffer[0];};}else if(ENVIRONMENT_IS_NODE){random_device=function random_device(){return require("crypto")["randomBytes"](1)[0];};}else{random_device=function random_device(){return Math.random()*256|0;};}FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp");},createSpecialDirectories:function createSpecialDirectories(){FS.mkdir("/proc");FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:function mount(){var node=FS.createNode("/proc/self","fd",16384|511,73);node.node_ops={lookup:function lookup(parent,name){var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function readlink(){return stream.path;}}};ret.parent=ret;return ret;}};return node;}},{},"/proc/self/fd");},createStandardStreams:function createStandardStreams(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"]);}else{FS.symlink("/dev/tty","/dev/stdin");}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"]);}else{FS.symlink("/dev/tty","/dev/stdout");}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"]);}else{FS.symlink("/dev/tty1","/dev/stderr");}var stdin=FS.open("/dev/stdin","r");assert(stdin.fd===0,"invalid handle for stdin ("+stdin.fd+")");var stdout=FS.open("/dev/stdout","w");assert(stdout.fd===1,"invalid handle for stdout ("+stdout.fd+")");var stderr=FS.open("/dev/stderr","w");assert(stderr.fd===2,"invalid handle for stderr ("+stderr.fd+")");},ensureErrnoError:function ensureErrnoError(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=function(errno){this.errno=errno;for(var key in ERRNO_CODES){if(ERRNO_CODES[key]===errno){this.code=key;break;}}};this.setErrno(errno);this.message=ERRNO_MESSAGES[errno];if(this.stack)Object.defineProperty(this,"stack",{value:new Error().stack,writable:true});};FS.ErrnoError.prototype=new Error();FS.ErrnoError.prototype.constructor=FS.ErrnoError;[ERRNO_CODES.ENOENT].forEach(function(code){FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack="<generic error, no stack>";});},staticInit:function staticInit(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS,"IDBFS":IDBFS,"NODEFS":NODEFS,"WORKERFS":WORKERFS};},init:function init(input,output,error){assert(!FS.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams();},quit:function quit(){FS.init.initialized=false;var fflush=Module["_fflush"];if(fflush)fflush(0);for(var i=0;i<FS.streams.length;i++){var stream=FS.streams[i];if(!stream){continue;}FS.close(stream);}},getMode:function getMode(canRead,canWrite){var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode;},joinPath:function joinPath(parts,forceRelative){var path=PATH.join.apply(null,parts);if(forceRelative&&path[0]=="/")path=path.substr(1);return path;},absolutePath:function absolutePath(relative,base){return PATH.resolve(base,relative);},standardizePath:function standardizePath(path){return PATH.normalize(path);},findObject:function findObject(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object;}else{___setErrNo(ret.error);return null;}},analyzePath:function analyzePath(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path;}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/";}catch(e){ret.error=e.errno;}return ret;},createFolder:function createFolder(parent,name,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.mkdir(path,mode);},createPath:function createPath(parent,path,canRead,canWrite){parent=typeof parent==="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current);}catch(e){}parent=current;}return current;},createFile:function createFile(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode);},createDataFile:function createDataFile(parent,name,data,canRead,canWrite,canOwn){var path=name?PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name):parent;var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i){arr[i]=data.charCodeAt(i);}data=arr;}FS.chmod(node,mode|146);var stream=FS.open(node,"w");FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode);}return node;},createDevice:function createDevice(parent,name,input,output){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:function open(stream){stream.seekable=false;},close:function close(stream){if(output&&output.buffer&&output.buffer.length){output(10);}},read:function read(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input();}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO);}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result;}if(bytesRead){stream.node.timestamp=Date.now();}return bytesRead;},write:function write(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i]);}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO);}}if(length){stream.node.timestamp=Date.now();}return i;}});return FS.mkdev(path,mode,dev);},createLink:function createLink(parent,name,target,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);return FS.symlink(target,path);},forceLoadFile:function forceLoadFile(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;var success=true;if(typeof XMLHttpRequest!=="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");}else if(Module["read"]){try{obj.contents=intArrayFromString(Module["read"](obj.url),true);obj.usedBytes=obj.contents.length;}catch(e){success=false;}}else{throw new Error("Cannot load without read() or XMLHttpRequest.");}if(!success)___setErrNo(ERRNO_CODES.EIO);return success;},createLazyFile:function createLazyFile(parent,name,url,canRead,canWrite){function LazyUint8Array(){this.lengthKnown=false;this.chunks=[];}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined;}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset];};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter;};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest();xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function doXHR(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest();xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined");}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[]);}else{return intArrayFromString(xhr.responseText||"",true);}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end);}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum];});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;console.log("LazyFiles on gzip forces download of the whole file when length is accessed");}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true;};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array();Object.defineProperties(lazyArray,{length:{get:function get(){if(!this.lengthKnown){this.cacheLength();}return this._length;}},chunkSize:{get:function get(){if(!this.lengthKnown){this.cacheLength();}return this._chunkSize;}}});var properties={isDevice:false,contents:lazyArray};}else{var properties={isDevice:false,url:url};}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents;}else if(properties.url){node.contents=null;node.url=properties.url;}Object.defineProperties(node,{usedBytes:{get:function get(){return this.contents.length;}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO);}return fn.apply(null,arguments);};});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO);}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i];}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i);}}return size;};node.stream_ops=stream_ops;return node;},createPreloadedFile:function createPreloadedFile(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){Browser.init();var fullname=name?PATH.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn);}if(onload)onload();removeRunDependency(dep);}var handled=false;Module["preloadPlugins"].forEach(function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,function(){if(onerror)onerror();removeRunDependency(dep);});handled=true;}});if(!handled)finish(byteArray);}addRunDependency(dep);if(typeof url=="string"){Browser.asyncLoad(url,function(byteArray){processData(byteArray);},onerror);}else{processData(url);}},indexedDB:function indexedDB(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;},DB_NAME:function DB_NAME(){return"EM_FS_"+window.location.pathname;},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function saveFilesToDB(paths,onload,onerror){onload=onload||function(){};onerror=onerror||function(){};var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION);}catch(e){return onerror(e);}openRequest.onupgradeneeded=function openRequest_onupgradeneeded(){console.log("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME);};openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror();}paths.forEach(function(path){var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=function putRequest_onsuccess(){ok++;if(ok+fail==total)finish();};putRequest.onerror=function putRequest_onerror(){fail++;if(ok+fail==total)finish();};});transaction.onerror=onerror;};openRequest.onerror=onerror;},loadFilesFromDB:function loadFilesFromDB(paths,onload,onerror){onload=onload||function(){};onerror=onerror||function(){};var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION);}catch(e){return onerror(e);}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly");}catch(e){onerror(e);return;}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror();}paths.forEach(function(path){var getRequest=files.get(path);getRequest.onsuccess=function getRequest_onsuccess(){if(FS.analyzePath(path).exists){FS.unlink(path);}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish();};getRequest.onerror=function getRequest_onerror(){fail++;if(ok+fail==total)finish();};});transaction.onerror=onerror;};openRequest.onerror=onerror;}};var SYSCALLS={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:function calculateAt(dirfd,path){if(path[0]!=="/"){var dir;if(dirfd===-100){dir=FS.cwd();}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);dir=dirstream.path;}path=PATH.join2(dir,path);}return path;},doStat:function doStat(func,path,buf){try{var stat=func(path);}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-ERRNO_CODES.ENOTDIR;}throw e;}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;HEAP32[buf+36>>2]=stat.size;HEAP32[buf+40>>2]=4096;HEAP32[buf+44>>2]=stat.blocks;HEAP32[buf+48>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+52>>2]=0;HEAP32[buf+56>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ino;return 0;},doMsync:function doMsync(addr,stream,len,flags){var buffer=new Uint8Array(HEAPU8.subarray(addr,addr+len));FS.msync(stream,buffer,0,len,flags);},doMkdir:function doMkdir(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0;},doMknod:function doMknod(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-ERRNO_CODES.EINVAL;}FS.mknod(path,mode,dev);return 0;},doReadlink:function doReadlink(path,buf,bufsize){if(bufsize<=0)return-ERRNO_CODES.EINVAL;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len;},doAccess:function doAccess(path,amode){if(amode&~7){return-ERRNO_CODES.EINVAL;}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-ERRNO_CODES.EACCES;}return 0;},doDup:function doDup(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd;},doReadv:function doReadv(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break;}return ret;},doWritev:function doWritev(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;}return ret;},varargs:0,get:function get(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret;},getStr:function getStr(){var ret=Pointer_stringify(SYSCALLS.get());return ret;},getStreamFromFD:function getStreamFromFD(){var stream=FS.getStream(SYSCALLS.get());if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return stream;},getSocketFromFD:function getSocketFromFD(){var socket=SOCKFS.getSocket(SYSCALLS.get());if(!socket)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return socket;},getSocketAddress:function getSocketAddress(allowNull){var addrp=SYSCALLS.get(),addrlen=SYSCALLS.get();if(allowNull&&addrp===0)return null;var info=__read_sockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info;},get64:function get64(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low;},getZero:function getZero(){assert(SYSCALLS.get()===0);}};function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0;}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno;}}function ___syscall145(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doReadv(stream,iov,iovcnt);}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno;}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doWritev(stream,iov,iovcnt);}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno;}}function ___syscall221(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),cmd=SYSCALLS.get();switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-ERRNO_CODES.EINVAL;}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd;};case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0;};case 12:case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0;};case 13:case 14:case 13:case 14:return 0;case 16:case 8:return-ERRNO_CODES.EINVAL;case 9:___setErrNo(ERRNO_CODES.EINVAL);return-1;default:{return-ERRNO_CODES.EINVAL;}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno;}}function ___syscall5(which,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(),flags=SYSCALLS.get(),mode=SYSCALLS.get();var stream=FS.open(pathname,flags,mode);return stream.fd;}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno;}}function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),op=SYSCALLS.get();switch(op){case 21509:case 21505:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0;};case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0;};case 21519:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0;};case 21520:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return-ERRNO_CODES.EINVAL;};case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp);};case 21523:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0;};case 21524:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0;};default:abort("bad ioctl syscall "+op);}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno;}}function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0;}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno;}}function ___unlock(){}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+size);}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i);}embind_charCodes=codes;}var embind_charCodes=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]];}return ret;}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown";}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name;}else{return name;}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n")(body);}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"");}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name;}else{return this.name+": "+this.message;}};return errorClass;}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message);}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message);}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes;});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count");}for(var i=0;i<myTypes.length;++i){registerType(myTypes[i],myTypeConverters[i]);}}var typeConverters=new Array(dependentTypes.length);var unregisteredTypes=[];var registered=0;dependentTypes.forEach(function(dt,i){if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt];}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[];}awaitingDependencies[dt].push(function(){typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters);}});}});if(0===unregisteredTypes.length){onComplete(typeConverters);}}function registerType(rawType,registeredInstance,options){options=options||{};if(!("argPackAdvance"in registeredInstance)){throw new TypeError("registerType registeredInstance requires argPackAdvance");}var name=registeredInstance.name;if(!rawType){throwBindingError('type "'+name+'" must have a positive integer typeid pointer');}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return;}else{throwBindingError("Cannot register type '"+name+"' twice");}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(function(cb){cb();});}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function fromWireType(wt){return!!wt;},"toWireType":function toWireType(destructors,o){return o?trueValue:falseValue;},"argPackAdvance":8,"readValueFromPointer":function readValueFromPointer(pointer){var heap;if(size===1){heap=HEAP8;}else if(size===2){heap=HEAP16;}else if(size===4){heap=HEAP32;}else{throw new TypeError("Unknown boolean type size: "+name);}return this["fromWireType"](heap[pointer>>shift]);},destructorFunction:null});}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false;}if(!(other instanceof ClassHandle)){return false;}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass;}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass;}return leftClass===rightClass&&left===right;}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType};}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name;}throwBindingError(getInstanceTypeName(obj)+" instance already deleted");}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this);}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this;}else{var clone=Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}});clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone;}}function runDestructor(handle){var $$=handle.$$;if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr);}else{$$.ptrType.registeredClass.rawDestructor($$.ptr);}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this);}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion");}this.$$.count.value-=1;var toDelete=0===this.$$.count.value;if(toDelete){runDestructor(this);}if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined;}}function ClassHandle_isDeleted(){return!this.$$.ptr;}var delayFunction=undefined;var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]();}}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this);}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion");}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes);}this.$$.deleteScheduled=true;return this;}function init_ClassHandle(){ClassHandle.prototype["isAliasOf"]=ClassHandle_isAliasOf;ClassHandle.prototype["clone"]=ClassHandle_clone;ClassHandle.prototype["delete"]=ClassHandle_delete;ClassHandle.prototype["isDeleted"]=ClassHandle_isDeleted;ClassHandle.prototype["deleteLater"]=ClassHandle_deleteLater;}function ClassHandle(){}var registeredPointers={};function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError("Function '"+humanName+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+proto[methodName].overloadTable+")!");}return proto[methodName].overloadTable[arguments.length].apply(this,arguments);};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc;}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError("Cannot register public name '"+name+"' twice");}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError("Cannot register multiple overloads of a function with the same number of arguments ("+numArguments+")!");}Module[name].overloadTable[numArguments]=value;}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments;}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[];}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError("Expected null or instance of "+desiredClass.name+", got an instance of "+ptrClass.name);}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass;}return ptr;}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name);}return 0;}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name);}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name);}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr;}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name);}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr);}return ptr;}else{return 0;}}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name);}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name);}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name);}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal");}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr;}else{throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name);}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr;}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,__emval_register(function(){clonedHandle["delete"]();}));if(destructors!==null){destructors.push(this.rawDestructor,ptr);}}break;default:throwBindingError("Unsupporting sharing policy");}}return ptr;}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name);}return 0;}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name);}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name);}if(handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+handle.$$.ptrType.name+" to parameter type "+this.name);}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr;}function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2]);}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr);}return ptr;}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr);}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle["delete"]();}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr;}if(undefined===desiredClass.baseClass){return null;}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null;}return desiredClass.downcast(rv);}function getInheritedInstanceCount(){return Object.keys(registeredInstances).length;}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k]);}}return rv;}function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes);}}function init_embind(){Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction;}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError("ptr should not be undefined");}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass;}return ptr;}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr];}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType");}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified");}record.count={value:1};return Object.create(prototype,{$$:{value:record}});}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null;}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]();}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv;}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr});}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr});}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this);}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType;}else{toType=registeredPointerRecord.pointerType;}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this);}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr});}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp});}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype["argPackAdvance"]=8;RegisteredPointer.prototype["readValueFromPointer"]=simpleReadValueFromPointer;RegisteredPointer.prototype["deleteObject"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype["fromWireType"]=RegisteredPointer_fromWireType;}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&&registeredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null;}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null;}}else{this["toWireType"]=genericPointerToWireType;}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol");}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value;}else{Module[name]=value;Module[name].argCount=numArguments;}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(dynCall){var args=[];for(var i=1;i<signature.length;++i){args.push("a"+i);}var name="dynCall_"+signature+"_"+rawFunction;var body="return function "+name+"("+args.join(", ")+") {\n";body+=" return dynCall(rawFunction"+(args.length?", ":"")+args.join(", ")+");\n";body+="};\n";return new Function("dynCall","rawFunction",body)(dynCall,rawFunction);}var fp;if(Module["FUNCTION_TABLE_"+signature]!==undefined){fp=Module["FUNCTION_TABLE_"+signature][rawFunction];}else if(typeof FUNCTION_TABLE!=="undefined"){fp=FUNCTION_TABLE[rawFunction];}else{var dc=Module["asm"]["dynCall_"+signature];if(dc===undefined){dc=Module["asm"]["dynCall_"+signature.replace(/f/g,"d")];if(dc===undefined){throwBindingError("No dynCall invoker for signature: "+signature);}}fp=makeDynCaller(dc);}if(typeof fp!=="function"){throwBindingError("unknown function pointer with signature "+signature+": "+rawFunction);}return fp;}var UnboundTypeError=undefined;function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv;}function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return;}if(registeredTypes[type]){return;}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return;}unboundTypes.push(type);seen[type]=true;}types.forEach(visit);throw new UnboundTypeError(message+": "+unboundTypes.map(getTypeName).join([", "]));}function __embind_register_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast);}if(downcast){downcast=embind__requireFunction(downcastSignature,downcast);}rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError("Cannot construct "+name+" due to unbound types",[baseClassRawType]);});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype;}else{basePrototype=ClassHandle.prototype;}var constructor=createNamedFunction(legalFunctionName,function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError("Use 'new' to construct "+name);}if(undefined===registeredClass.constructor_body){throw new BindingError(name+" has no accessible constructor");}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError("Tried to invoke ctor of "+name+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(registeredClass.constructor_body).toString()+") parameters instead!");}return body.apply(this,arguments);});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+"*",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+" const*",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter];});}function heap32VectorToArray(count,firstElement){var array=[];for(var i=0;i<count;i++){array.push(HEAP32[(firstElement>>2)+i]);}return array;}function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr);}}function __embind_register_class_constructor(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName="constructor "+classType.name;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[];}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError("Cannot register multiple constructors with identical number of parameters ("+(argCount-1)+") for class '"+classType.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");}classType.registeredClass.constructor_body[argCount-1]=function unboundTypeHandler(){throwUnboundTypeError("Cannot construct "+classType.name+" due to unbound types",rawArgTypes);};whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){classType.registeredClass.constructor_body[argCount-1]=function constructor_body(){if(arguments.length!==argCount-1){throwBindingError(humanName+" called with "+arguments.length+" arguments, expected "+(argCount-1));}var destructors=[];var args=new Array(argCount);args[0]=rawConstructor;for(var i=1;i<argCount;++i){args[i]=argTypes[i]["toWireType"](destructors,arguments[i-1]);}var ptr=invoker.apply(null,args);runDestructors(destructors);return argTypes[0]["fromWireType"](ptr);};return[];});return[];});}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+(typeof constructor==='undefined'?'undefined':_typeof(constructor))+" which is not a function");}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",function(){});dummy.prototype=constructor.prototype;var obj=new dummy();var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj;}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!");}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i<argTypes.length;++i){if(argTypes[i]!==null&&argTypes[i].destructorFunction===undefined){needsDestructorStack=true;break;}}var returns=argTypes[0].name!=="void";var argsList="";var argsListWired="";for(var i=0;i<argCount-2;++i){argsList+=(i!==0?", ":"")+"arg"+i;argsListWired+=(i!==0?", ":"")+"arg"+i+"Wired";}var invokerFnBody="return function "+makeLegalFunctionName(humanName)+"("+argsList+") {\n"+"if (arguments.length !== "+(argCount-2)+") {\n"+"throwBindingError('function "+humanName+" called with ' + arguments.length + ' arguments, expected "+(argCount-2)+" args!');\n"+"}\n";if(needsDestructorStack){invokerFnBody+="var destructors = [];\n";}var dtorStack=needsDestructorStack?"destructors":"null";var args1=["throwBindingError","invoker","fn","runDestructors","retType","classParam"];var args2=[throwBindingError,cppInvokerFunc,cppTargetFunc,runDestructors,argTypes[0],argTypes[1]];if(isClassMethodFunc){invokerFnBody+="var thisWired = classParam.toWireType("+dtorStack+", this);\n";}for(var i=0;i<argCount-2;++i){invokerFnBody+="var arg"+i+"Wired = argType"+i+".toWireType("+dtorStack+", arg"+i+"); // "+argTypes[i+2].name+"\n";args1.push("argType"+i);args2.push(argTypes[i+2]);}if(isClassMethodFunc){argsListWired="thisWired"+(argsListWired.length>0?", ":"")+argsListWired;}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n";}else{for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){var paramName=i===1?"thisWired":"arg"+(i-2)+"Wired";if(argTypes[i].destructorFunction!==null){invokerFnBody+=paramName+"_dtor("+paramName+"); // "+argTypes[i].name+"\n";args1.push(paramName+"_dtor");args2.push(argTypes[i].destructorFunction);}}}if(returns){invokerFnBody+="var ret = retType.fromWireType(rv);\n"+"return ret;\n";}else{}invokerFnBody+="}\n";args1.push(invokerFnBody);var invokerFunction=new_(Function,args1).apply(null,args2);return invokerFunction;}function __embind_register_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=classType.name+"."+methodName;if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName);}function unboundTypesHandler(){throwUnboundTypeError("Cannot call "+humanName+" due to unbound types",rawArgTypes);}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler;}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler;}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction;}else{proto[methodName].overloadTable[argCount-2]=memberFunction;}return[];});return[];});}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle);}}function count_emval_handles(){var count=0;for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){++count;}}return count;}function get_first_emval(){for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){return emval_handle_array[i];}}return null;}function init_emval(){Module["count_emval_handles"]=count_emval_handles;Module["get_first_emval"]=get_first_emval;}function __emval_register(value){switch(value){case undefined:{return 1;};case null:{return 2;};case true:{return 3;};case false:{return 4;};default:{var handle=emval_free_list.length?emval_free_list.pop():emval_handle_array.length;emval_handle_array[handle]={refcount:1,value:value};return handle;}}}function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function fromWireType(handle){var rv=emval_handle_array[handle].value;__emval_decref(handle);return rv;},"toWireType":function toWireType(destructors,value){return __emval_register(value);},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:null});}function _embind_repr(v){if(v===null){return"null";}var t=typeof v==='undefined'?'undefined':_typeof(v);if(t==="object"||t==="array"||t==="function"){return v.toString();}else{return""+v;}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2]);};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3]);};default:throw new TypeError("Unknown float type: "+name);}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function fromWireType(value){return value;},"toWireType":function toWireType(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name);}return value;},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null});}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError("Cannot call "+name+" due to unbound types",argTypes);},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn),argCount-1);return[];});}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer];}:function readU8FromPointer(pointer){return HEAPU8[pointer];};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1];}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1];};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2];}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2];};default:throw new TypeError("Unknown integer type: "+name);}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295;}var shift=getShiftFromSize(size);var fromWireType=function fromWireType(value){return value;};if(minRange===0){var bitshift=32-8*size;fromWireType=function fromWireType(value){return value<<bitshift>>>bitshift;};}var isUnsignedType=name.indexOf("unsigned")!=-1;registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":function toWireType(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name);}if(value<minRange||value>maxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!");}return isUnsignedType?value>>>0:value|0;},"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null});}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(heap["buffer"],data,size);}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true});}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function fromWireType(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var endChar=HEAPU8[value+4+length];var endCharSwap=0;if(endChar!=0){endCharSwap=endChar;HEAPU8[value+4+length]=0;}var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(HEAPU8[currentBytePtr]==0){var stringSegment=UTF8ToString(decodeStartPtr);if(str===undefined)str=stringSegment;else{str+=String.fromCharCode(0);str+=stringSegment;}decodeStartPtr=currentBytePtr+1;}}if(endCharSwap!=0)HEAPU8[value+4+length]=endCharSwap;}else{var a=new Array(length);for(var i=0;i<length;++i){a[i]=String.fromCharCode(HEAPU8[value+4+i]);}str=a.join("");}_free(value);return str;},"toWireType":function toWireType(destructors,value){if(value instanceof ArrayBuffer){value=new Uint8Array(value);}var getLength;var valueIsOfTypeString=typeof value==="string";if(!(valueIsOfTypeString||value instanceof Uint8Array||value instanceof Uint8ClampedArray||value instanceof Int8Array)){throwBindingError("Cannot pass non-string to std::string");}if(stdStringIsUTF8&&valueIsOfTypeString){getLength=function getLength(){return lengthBytesUTF8(value);};}else{getLength=function getLength(){return value.length;};}var length=getLength();var ptr=_malloc(4+length+1);HEAPU32[ptr>>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1);}else{if(valueIsOfTypeString){for(var i=0;i<length;++i){var charCode=value.charCodeAt(i);if(charCode>255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits");}HEAPU8[ptr+4+i]=charCode;}}else{for(var i=0;i<length;++i){HEAPU8[ptr+4+i]=value[i];}}}if(destructors!==null){destructors.push(_free,ptr);}return ptr;},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function destructorFunction(ptr){_free(ptr);}});}function __embind_register_std_wstring(rawType,charSize,name){name=readLatin1String(name);var getHeap,shift;if(charSize===2){getHeap=function getHeap(){return HEAPU16;};shift=1;}else if(charSize===4){getHeap=function getHeap(){return HEAPU32;};shift=2;}registerType(rawType,{name:name,"fromWireType":function fromWireType(value){var HEAP=getHeap();var length=HEAPU32[value>>2];var a=new Array(length);var start=value+4>>shift;for(var i=0;i<length;++i){a[i]=String.fromCharCode(HEAP[start+i]);}_free(value);return a.join("");},"toWireType":function toWireType(destructors,value){var HEAP=getHeap();var length=value.length;var ptr=_malloc(4+length*charSize);HEAPU32[ptr>>2]=length;var start=ptr+4>>shift;for(var i=0;i<length;++i){HEAP[start+i]=value.charCodeAt(i);}if(destructors!==null){destructors.push(_free,ptr);}return ptr;},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function destructorFunction(ptr){_free(ptr);}});}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":function fromWireType(){return undefined;},"toWireType":function toWireType(destructors,o){return undefined;}});}function requireHandle(handle){if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle);}return emval_handle_array[handle].value;}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType));}return impl;}function __emval_as(handle,returnType,destructorsRef){handle=requireHandle(handle);returnType=requireRegisteredType(returnType,"emval::as");var destructors=[];var rd=__emval_register(destructors);HEAP32[destructorsRef>>2]=rd;return returnType["toWireType"](destructors,handle);}function __emval_lookupTypes(argCount,argTypes,argWireTypes){var a=new Array(argCount);for(var i=0;i<argCount;++i){a[i]=requireRegisteredType(HEAP32[(argTypes>>2)+i],"parameter "+i);}return a;}function __emval_call(handle,argCount,argTypes,argv){handle=requireHandle(handle);var types=__emval_lookupTypes(argCount,argTypes);var args=new Array(argCount);for(var i=0;i<argCount;++i){var type=types[i];args[i]=type["readValueFromPointer"](argv);argv+=type["argPackAdvance"];}var rv=handle.apply(undefined,args);return __emval_register(rv);}function __emval_allocateDestructors(destructorsRef){var destructors=[];HEAP32[destructorsRef>>2]=__emval_register(destructors);return destructors;}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address);}else{return symbol;}}var emval_methodCallers=[];function __emval_call_void_method(caller,handle,methodName,args){caller=emval_methodCallers[caller];handle=requireHandle(handle);methodName=getStringOrSymbol(methodName);caller(handle,methodName,null,args);}function __emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id;}function __emval_get_method_caller(argCount,argTypes){var types=__emval_lookupTypes(argCount,argTypes);var retType=types[0];var signatureName=retType.name+"_$"+types.slice(1).map(function(t){return t.name;}).join("_")+"$";var params=["retType"];var args=[retType];var argsList="";for(var i=0;i<argCount-1;++i){argsList+=(i!==0?", ":"")+"arg"+i;params.push("argType"+i);args.push(types[1+i]);}var functionName=makeLegalFunctionName("methodCaller_"+signatureName);var functionBody="return function "+functionName+"(handle, name, destructors, args) {\n";var offset=0;for(var i=0;i<argCount-1;++i){functionBody+=" var arg"+i+" = argType"+i+".readValueFromPointer(args"+(offset?"+"+offset:"")+");\n";offset+=types[i+1]["argPackAdvance"];}functionBody+=" var rv = handle[name]("+argsList+");\n";for(var i=0;i<argCount-1;++i){if(types[i+1]["deleteObject"]){functionBody+=" argType"+i+".deleteObject(arg"+i+");\n";}}if(!retType.isVoid){functionBody+=" return retType.toWireType(destructors, rv);\n";}functionBody+="};\n";params.push(functionBody);var invokerFunction=new_(Function,params).apply(null,args);return __emval_addMethodCaller(invokerFunction);}function __emval_get_module_property(name){name=getStringOrSymbol(name);return __emval_register(Module[name]);}function __emval_get_property(handle,key){handle=requireHandle(handle);key=requireHandle(key);return __emval_register(handle[key]);}function __emval_incref(handle){if(handle>4){emval_handle_array[handle].refcount+=1;}}function craftEmvalAllocator(argCount){var argsList="";for(var i=0;i<argCount;++i){argsList+=(i!==0?", ":"")+"arg"+i;}var functionBody="return function emval_allocator_"+argCount+"(constructor, argTypes, args) {\n";for(var i=0;i<argCount;++i){functionBody+="var argType"+i+" = requireRegisteredType(HEAP32[(argTypes >> 2) + "+i+'], "parameter '+i+'");\n'+"var arg"+i+" = argType"+i+".readValueFromPointer(args);\n"+"args += argType"+i+"['argPackAdvance'];\n";}functionBody+="var obj = new constructor("+argsList+");\n"+"return __emval_register(obj);\n"+"}\n";return new Function("requireRegisteredType","HEAP32","__emval_register",functionBody)(requireRegisteredType,HEAP32,__emval_register);}var emval_newers={};function __emval_new(handle,argCount,argTypes,args){handle=requireHandle(handle);var newer=emval_newers[argCount];if(!newer){newer=craftEmvalAllocator(argCount);emval_newers[argCount]=newer;}return newer(handle,argTypes,args);}function __emval_new_cstring(v){return __emval_register(getStringOrSymbol(v));}function __emval_run_destructors(handle){var destructors=emval_handle_array[handle].value;runDestructors(destructors);__emval_decref(handle);}function __emval_take_value(type,argv){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](argv);return __emval_register(v);}function _abort(){Module["abort"]();}function _llvm_cttz_i32(x){x=x|0;return(x?31-(Math_clz32(x^x-1)|0)|0:32)|0;}function _llvm_cttz_i64(l,h){var ret=_llvm_cttz_i32(l);if(ret==32)ret+=_llvm_cttz_i32(h);return(setTempRet0(0),ret)|0;}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest;}var PTHREAD_SPECIFIC={};function _pthread_getspecific(key){return PTHREAD_SPECIFIC[key]||0;}var PTHREAD_SPECIFIC_NEXT_KEY=1;function _pthread_key_create(key,destructor){if(key==0){return ERRNO_CODES.EINVAL;}HEAP32[key>>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0;}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Module["dynCall_v"](func);_pthread_once.seen[ptr]=1;}function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){return ERRNO_CODES.EINVAL;}PTHREAD_SPECIFIC[key]=value;return 0;}FS.staticInit();__ATINIT__.unshift(function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();});__ATMAIN__.push(function(){FS.ignorePermissions=false;});__ATEXIT__.push(function(){FS.quit();});__ATINIT__.unshift(function(){TTY.init();});__ATEXIT__.push(function(){TTY.shutdown();});if(ENVIRONMENT_IS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit();}embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");InternalError=Module["InternalError"]=extendError(Error,"InternalError");init_ClassHandle();init_RegisteredPointer();init_embind();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();DYNAMICTOP_PTR=staticAlloc(4);STACK_BASE=STACKTOP=alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;var ASSERTIONS=false;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array;}function intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){if(ASSERTIONS){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.");}chr&=255;}ret.push(String.fromCharCode(chr));}return ret.join("");}var decodeBase64=typeof atob==="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2);}if(enc4!==64){output=output+String.fromCharCode(chr3);}}while(i<input.length);return output;};function intArrayFromBase64(s){if(typeof ENVIRONMENT_IS_NODE==="boolean"&&ENVIRONMENT_IS_NODE){var buf;try{buf=Buffer.from(s,"base64");}catch(_){buf=new Buffer(s,"base64");}return new Uint8Array(buf.buffer,buf.byteOffset,buf.byteLength);}try{var decoded=decodeBase64(s);var bytes=new Uint8Array(decoded.length);for(var i=0;i<decoded.length;++i){bytes[i]=decoded.charCodeAt(i);}return bytes;}catch(_){throw new Error("Converting base64 string to bytes failed.");}}function tryParseAsDataURI(filename){if(!isDataURI(filename)){return;}return intArrayFromBase64(filename.slice(dataURIPrefix.length));}Module["wasmTableSize"]=412;Module["wasmMaxTableSize"]=412;function invoke_i(index){var sp=_stackSave();try{return Module["dynCall_i"](index);}catch(e){_stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0);}}function invoke_ii(index,a1){var sp=_stackSave();try{return Module["dynCall_ii"](index,a1);}catch(e){_stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0);}}function invoke_iii(index,a1,a2){var sp=_stackSave();try{return Module["dynCall_iii"](index,a1,a2);}catch(e){_stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0);}}function invoke_iiii(index,a1,a2,a3){var sp=_stackSave();try{return Module["dynCall_iiii"](index,a1,a2,a3);}catch(e){_stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0);}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=_stackSave();try{return Module["dynCall_iiiii"](index,a1,a2,a3,a4);}catch(e){_stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0);}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=_stackSave();try{return Module["dynCall_iiiiii"](index,a1,a2,a3,a4,a5);}catch(e){_stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0);}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=_stackSave();try{return Module["dynCall_iiiiiii"](index,a1,a2,a3,a4,a5,a6);}catch(e){_stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0);}}function invoke_v(index){var sp=_stackSave();try{Module["dynCall_v"](index);}catch(e){_stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0);}}function invoke_vi(index,a1){var sp=_stackSave();try{Module["dynCall_vi"](index,a1);}catch(e){_stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0);}}function invoke_vii(index,a1,a2){var sp=_stackSave();try{Module["dynCall_vii"](index,a1,a2);}catch(e){_stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0);}}function invoke_viii(index,a1,a2,a3){var sp=_stackSave();try{Module["dynCall_viii"](index,a1,a2,a3);}catch(e){_stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0);}}function invoke_viiii(index,a1,a2,a3,a4){var sp=_stackSave();try{Module["dynCall_viiii"](index,a1,a2,a3,a4);}catch(e){_stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0);}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=_stackSave();try{Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5);}catch(e){_stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0);}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=_stackSave();try{Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6);}catch(e){_stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0);}}Module.asmGlobalArg={};Module.asmLibraryArg={"abort":abort,"assert":assert,"enlargeMemory":enlargeMemory,"getTotalMemory":getTotalMemory,"abortOnCannotGrowMemory":abortOnCannotGrowMemory,"invoke_i":invoke_i,"invoke_ii":invoke_ii,"invoke_iii":invoke_iii,"invoke_iiii":invoke_iiii,"invoke_iiiii":invoke_iiiii,"invoke_iiiiii":invoke_iiiiii,"invoke_iiiiiii":invoke_iiiiiii,"invoke_v":invoke_v,"invoke_vi":invoke_vi,"invoke_vii":invoke_vii,"invoke_viii":invoke_viii,"invoke_viiii":invoke_viiii,"invoke_viiiii":invoke_viiiii,"invoke_viiiiii":invoke_viiiiii,"ClassHandle":ClassHandle,"ClassHandle_clone":ClassHandle_clone,"ClassHandle_delete":ClassHandle_delete,"ClassHandle_deleteLater":ClassHandle_deleteLater,"ClassHandle_isAliasOf":ClassHandle_isAliasOf,"ClassHandle_isDeleted":ClassHandle_isDeleted,"RegisteredClass":RegisteredClass,"RegisteredPointer":RegisteredPointer,"RegisteredPointer_deleteObject":RegisteredPointer_deleteObject,"RegisteredPointer_destructor":RegisteredPointer_destructor,"RegisteredPointer_fromWireType":RegisteredPointer_fromWireType,"RegisteredPointer_getPointee":RegisteredPointer_getPointee,"__ZSt18uncaught_exceptionv":__ZSt18uncaught_exceptionv,"___cxa_allocate_exception":___cxa_allocate_exception,"___cxa_begin_catch":___cxa_begin_catch,"___cxa_find_matching_catch":___cxa_find_matching_catch,"___cxa_throw":___cxa_throw,"___gxx_personality_v0":___gxx_personality_v0,"___lock":___lock,"___resumeException":___resumeException,"___setErrNo":___setErrNo,"___syscall140":___syscall140,"___syscall145":___syscall145,"___syscall146":___syscall146,"___syscall221":___syscall221,"___syscall5":___syscall5,"___syscall54":___syscall54,"___syscall6":___syscall6,"___unlock":___unlock,"__embind_register_bool":__embind_register_bool,"__embind_register_class":__embind_register_class,"__embind_register_class_constructor":__embind_register_class_constructor,"__embind_register_class_function":__embind_register_class_function,"__embind_register_emval":__embind_register_emval,"__embind_register_float":__embind_register_float,"__embind_register_function":__embind_register_function,"__embind_register_integer":__embind_register_integer,"__embind_register_memory_view":__embind_register_memory_view,"__embind_register_std_string":__embind_register_std_string,"__embind_register_std_wstring":__embind_register_std_wstring,"__embind_register_void":__embind_register_void,"__emval_addMethodCaller":__emval_addMethodCaller,"__emval_allocateDestructors":__emval_allocateDestructors,"__emval_as":__emval_as,"__emval_call":__emval_call,"__emval_call_void_method":__emval_call_void_method,"__emval_decref":__emval_decref,"__emval_get_method_caller":__emval_get_method_caller,"__emval_get_module_property":__emval_get_module_property,"__emval_get_property":__emval_get_property,"__emval_incref":__emval_incref,"__emval_lookupTypes":__emval_lookupTypes,"__emval_new":__emval_new,"__emval_new_cstring":__emval_new_cstring,"__emval_register":__emval_register,"__emval_run_destructors":__emval_run_destructors,"__emval_take_value":__emval_take_value,"_abort":_abort,"_embind_repr":_embind_repr,"_emscripten_memcpy_big":_emscripten_memcpy_big,"_llvm_cttz_i32":_llvm_cttz_i32,"_llvm_cttz_i64":_llvm_cttz_i64,"_pthread_getspecific":_pthread_getspecific,"_pthread_key_create":_pthread_key_create,"_pthread_once":_pthread_once,"_pthread_setspecific":_pthread_setspecific,"constNoSmartPtrRawPointerToWireType":constNoSmartPtrRawPointerToWireType,"count_emval_handles":count_emval_handles,"craftEmvalAllocator":craftEmvalAllocator,"craftInvokerFunction":craftInvokerFunction,"createNamedFunction":createNamedFunction,"downcastPointer":downcastPointer,"embind__requireFunction":embind__requireFunction,"embind_init_charCodes":embind_init_charCodes,"ensureOverloadTable":ensureOverloadTable,"exposePublicSymbol":exposePublicSymbol,"extendError":extendError,"floatReadValueFromPointer":floatReadValueFromPointer,"flushPendingDeletes":flushPendingDeletes,"genericPointerToWireType":genericPointerToWireType,"getBasestPointer":getBasestPointer,"getInheritedInstance":getInheritedInstance,"getInheritedInstanceCount":getInheritedInstanceCount,"getLiveInheritedInstances":getLiveInheritedInstances,"getShiftFromSize":getShiftFromSize,"getStringOrSymbol":getStringOrSymbol,"getTypeName":getTypeName,"get_first_emval":get_first_emval,"heap32VectorToArray":heap32VectorToArray,"init_ClassHandle":init_ClassHandle,"init_RegisteredPointer":init_RegisteredPointer,"init_embind":init_embind,"init_emval":init_emval,"integerReadValueFromPointer":integerReadValueFromPointer,"makeClassHandle":makeClassHandle,"makeLegalFunctionName":makeLegalFunctionName,"new_":new_,"nonConstNoSmartPtrRawPointerToWireType":nonConstNoSmartPtrRawPointerToWireType,"readLatin1String":readLatin1String,"registerType":registerType,"replacePublicSymbol":replacePublicSymbol,"requireHandle":requireHandle,"requireRegisteredType":requireRegisteredType,"runDestructor":runDestructor,"runDestructors":runDestructors,"setDelayFunction":setDelayFunction,"shallowCopyInternalPointer":shallowCopyInternalPointer,"simpleReadValueFromPointer":simpleReadValueFromPointer,"throwBindingError":throwBindingError,"throwInstanceAlreadyDeleted":throwInstanceAlreadyDeleted,"throwInternalError":throwInternalError,"throwUnboundTypeError":throwUnboundTypeError,"upcastPointer":upcastPointer,"whenDependentTypesAreResolved":whenDependentTypesAreResolved,"DYNAMICTOP_PTR":DYNAMICTOP_PTR,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX};var asm=Module["asm"](Module.asmGlobalArg,Module.asmLibraryArg,buffer);Module["asm"]=asm;var __GLOBAL__sub_I_bind_cpp=Module["__GLOBAL__sub_I_bind_cpp"]=function(){return Module["asm"]["__GLOBAL__sub_I_bind_cpp"].apply(null,arguments);};var __GLOBAL__sub_I_zstd_binding_cc=Module["__GLOBAL__sub_I_zstd_binding_cc"]=function(){return Module["asm"]["__GLOBAL__sub_I_zstd_binding_cc"].apply(null,arguments);};var ___cxa_can_catch=Module["___cxa_can_catch"]=function(){return Module["asm"]["___cxa_can_catch"].apply(null,arguments);};var ___cxa_demangle=Module["___cxa_demangle"]=function(){return Module["asm"]["___cxa_demangle"].apply(null,arguments);};var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=function(){return Module["asm"]["___cxa_is_pointer_type"].apply(null,arguments);};var ___errno_location=Module["___errno_location"]=function(){return Module["asm"]["___errno_location"].apply(null,arguments);};var ___getTypeName=Module["___getTypeName"]=function(){return Module["asm"]["___getTypeName"].apply(null,arguments);};var _free=Module["_free"]=function(){return Module["asm"]["_free"].apply(null,arguments);};var _llvm_bswap_i32=Module["_llvm_bswap_i32"]=function(){return Module["asm"]["_llvm_bswap_i32"].apply(null,arguments);};var _llvm_ctlz_i64=Module["_llvm_ctlz_i64"]=function(){return Module["asm"]["_llvm_ctlz_i64"].apply(null,arguments);};var _malloc=Module["_malloc"]=function(){return Module["asm"]["_malloc"].apply(null,arguments);};var _memcpy=Module["_memcpy"]=function(){return Module["asm"]["_memcpy"].apply(null,arguments);};var _memmove=Module["_memmove"]=function(){return Module["asm"]["_memmove"].apply(null,arguments);};var _memset=Module["_memset"]=function(){return Module["asm"]["_memset"].apply(null,arguments);};var _sbrk=Module["_sbrk"]=function(){return Module["asm"]["_sbrk"].apply(null,arguments);};var establishStackSpace=Module["establishStackSpace"]=function(){return Module["asm"]["establishStackSpace"].apply(null,arguments);};var getTempRet0=Module["getTempRet0"]=function(){return Module["asm"]["getTempRet0"].apply(null,arguments);};var runPostSets=Module["runPostSets"]=function(){return Module["asm"]["runPostSets"].apply(null,arguments);};var setTempRet0=Module["setTempRet0"]=function(){return Module["asm"]["setTempRet0"].apply(null,arguments);};var setThrew=Module["setThrew"]=function(){return Module["asm"]["setThrew"].apply(null,arguments);};var stackAlloc=Module["stackAlloc"]=function(){return Module["asm"]["stackAlloc"].apply(null,arguments);};var _stackRestore=Module["stackRestore"]=function(){return Module["asm"]["stackRestore"].apply(null,arguments);};var _stackSave=Module["stackSave"]=function(){return Module["asm"]["stackSave"].apply(null,arguments);};var dynCall_i=Module["dynCall_i"]=function(){return Module["asm"]["dynCall_i"].apply(null,arguments);};var dynCall_ii=Module["dynCall_ii"]=function(){return Module["asm"]["dynCall_ii"].apply(null,arguments);};var dynCall_iii=Module["dynCall_iii"]=function(){return Module["asm"]["dynCall_iii"].apply(null,arguments);};var dynCall_iiii=Module["dynCall_iiii"]=function(){return Module["asm"]["dynCall_iiii"].apply(null,arguments);};var dynCall_iiiii=Module["dynCall_iiiii"]=function(){return Module["asm"]["dynCall_iiiii"].apply(null,arguments);};var dynCall_iiiiii=Module["dynCall_iiiiii"]=function(){return Module["asm"]["dynCall_iiiiii"].apply(null,arguments);};var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=function(){return Module["asm"]["dynCall_iiiiiii"].apply(null,arguments);};var dynCall_v=Module["dynCall_v"]=function(){return Module["asm"]["dynCall_v"].apply(null,arguments);};var dynCall_vi=Module["dynCall_vi"]=function(){return Module["asm"]["dynCall_vi"].apply(null,arguments);};var dynCall_vii=Module["dynCall_vii"]=function(){return Module["asm"]["dynCall_vii"].apply(null,arguments);};var dynCall_viii=Module["dynCall_viii"]=function(){return Module["asm"]["dynCall_viii"].apply(null,arguments);};var dynCall_viiii=Module["dynCall_viiii"]=function(){return Module["asm"]["dynCall_viiii"].apply(null,arguments);};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return Module["asm"]["dynCall_viiiii"].apply(null,arguments);};var dynCall_viiiiii=Module["dynCall_viiiiii"]=function(){return Module["asm"]["dynCall_viiiiii"].apply(null,arguments);};Module["asm"]=asm;Module["FS"]=FS;Module["then"]=function(func){if(Module["calledRun"]){func(Module);}else{var old=Module["onRuntimeInitialized"];Module["onRuntimeInitialized"]=function(){if(old)old();func(Module);};}return Module;};function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status;}ExitStatus.prototype=new Error();ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller;};function run(args){args=args||Module["arguments"];if(runDependencies>0){return;}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun();}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("");},1);doRun();},1);}else{doRun();}}Module["run"]=run;function abort(what){if(Module["onAbort"]){Module["onAbort"](what);}if(what!==undefined){out(what);err(what);what=JSON.stringify(what);}else{what="";}ABORT=true;EXITSTATUS=1;throw"abort("+what+"). Build with -s ASSERTIONS=1 for more info.";}Module["abort"]=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()();}}Module["noExitRuntime"]=true;run();return Module;};}();if((typeof exports==='undefined'?'undefined':_typeof(exports))==='object'&&(typeof module==='undefined'?'undefined':_typeof(module))==='object')module.exports=Module;else if(typeof define==='function'&&define['amd'])define([],function(){return Module;});else if((typeof exports==='undefined'?'undefined':_typeof(exports))==='object')exports["Module"]=Module;
  19. }).call(this,require('_process'),require("buffer").Buffer,"/lib")
  20. },{"_process":126,"buffer":54,"crypto":63,"fs":9,"path":119}],6:[function(require,module,exports){
  21. (function (process,Buffer,__dirname){
  22. 'use strict';var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj;}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};var Module=function(){var _scriptDir=typeof document!=='undefined'&&document.currentScript?document.currentScript.src:undefined;return function(Module){Module=Module||{};var Module;if(!Module)Module=typeof Module!=='undefined'?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key];}}Module["arguments"]=[];Module["thisProgram"]="./this.program";Module["quit"]=function(status,toThrow){throw toThrow;};Module["preRun"]=[];Module["postRun"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=(typeof window==='undefined'?'undefined':_typeof(window))==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=(typeof process==='undefined'?'undefined':_typeof(process))==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory);}else{return scriptDirectory+path;}}if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname+"/";var nodeFS;var nodePath;Module["read"]=function shell_read(filename,binary){var ret;ret=tryParseAsDataURI(filename);if(!ret){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);ret=nodeFS["readFileSync"](filename);}return binary?ret:ret.toString();};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret);}assert(ret.buffer);return ret;};if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/");}Module["arguments"]=process["argv"].slice(2);process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex;}});process["on"]("unhandledRejection",function(reason,p){process["exit"](1);});Module["quit"]=function(status){process["exit"](status);};Module["inspect"]=function(){return"[Emscripten Module object]";};}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){Module["read"]=function shell_read(f){var data=tryParseAsDataURI(f);if(data){return intArrayToString(data);}return read(f);};}Module["readBinary"]=function readBinary(f){var data;data=tryParseAsDataURI(f);if(data){return data;}if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f));}data=read(f,"binary");assert((typeof data==='undefined'?'undefined':_typeof(data))==="object");return data;};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs;}else if(typeof arguments!="undefined"){Module["arguments"]=arguments;}if(typeof quit==="function"){Module["quit"]=function(status){quit(status);};}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WEB){if(document.currentScript){scriptDirectory=document.currentScript.src;}}else{scriptDirectory=self.location.href;}if(_scriptDir){scriptDirectory=_scriptDir;}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.split("/").slice(0,-1).join("/")+"/";}else{scriptDirectory="";}Module["read"]=function shell_read(url){try{var xhr=new XMLHttpRequest();xhr.open("GET",url,false);xhr.send(null);return xhr.responseText;}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data);}throw err;}};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function readBinary(url){try{var xhr=new XMLHttpRequest();xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response);}catch(err){var data=tryParseAsDataURI(url);if(data){return data;}throw err;}};}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest();xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return;}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return;}onerror();};xhr.onerror=onerror;xhr.send(null);};Module["setWindowTitle"]=function(title){document.title=title;};}else{}var out=Module["print"]||(typeof console!=="undefined"?console.log.bind(console):typeof print!=="undefined"?print:null);var err=Module["printErr"]||(typeof printErr!=="undefined"?printErr:typeof console!=="undefined"&&console.warn.bind(console)||out);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key];}}moduleOverrides=undefined;var STACK_ALIGN=16;function staticAlloc(size){var ret=STATICTOP;STATICTOP=STATICTOP+size+15&-16;return ret;}function dynamicAlloc(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;if(end>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){HEAP32[DYNAMICTOP_PTR>>2]=ret;return 0;}}return ret;}function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;var ret=size=Math.ceil(size/factor)*factor;return ret;}function getNativeTypeSize(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return 4;}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8;}else{return 0;}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text);}}var jsCallStartIndex=1;var functionPointers=new Array(0);var funcWrappers={};function dynCall(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args));}else{return Module["dynCall_"+sig].call(null,ptr);}}var GLOBAL_BASE=8;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text);}}function getCFunc(ident){var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func;}var JSfuncs={"stackSave":function stackSave(){_stackSave();},"stackRestore":function stackRestore(){_stackRestore();},"arrayToC":function arrayToC(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret;},"stringToC":function stringToC(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len);}return ret;}};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};function ccall(ident,returnType,argTypes,args,opts){function convertReturnValue(ret){if(returnType==="string")return Pointer_stringify(ret);if(returnType==="boolean")return Boolean(ret);return ret;}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=_stackSave();cArgs[i]=converter(args[i]);}else{cArgs[i]=args[i];}}}var ret=func.apply(null,cArgs);ret=convertReturnValue(ret);if(stack!==0)_stackRestore(stack);return ret;}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type);}}var ALLOC_STATIC=2;var ALLOC_NONE=4;function Pointer_stringify(ptr,length){if(length===0||!ptr)return"";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break;}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK;}return ret;}return UTF8ToString(ptr);}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr]){++endPtr;}if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr));}else{var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue;}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue;}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2;}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3;}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4;}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5;}}}if(u0<65536){str+=String.fromCharCode(u0);}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023);}}}}function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr);}function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023;}if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u;}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63;}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63;}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63;}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63;}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63;}}outU8Array[outIdx]=0;return outIdx-startIdx;}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len;}else if(u<=2047){len+=2;}else if(u<=65535){len+=3;}else if(u<=2097151){len+=4;}else if(u<=67108863){len+=5;}else{len+=6;}}return len;}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function demangle(func){var __cxa_demangle_func=Module["___cxa_demangle"]||Module["__cxa_demangle"];assert(__cxa_demangle_func);try{var s=func.substr(1);var len=lengthBytesUTF8(s)+1;var buf=_malloc(len);stringToUTF8(s,buf,len);var status=_malloc(4);var ret=__cxa_demangle_func(buf,0,0,status);if(HEAP32[status>>2]===0&&ret){return Pointer_stringify(ret);}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret);}return func;}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]";});}function jsStackTrace(){var err=new Error();if(!err.stack){try{throw new Error(0);}catch(e){err=e;}if(!err.stack){return"(no stack trace available)";}}return err.stack.toString();}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js);}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer);}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ");}function enlargeMemory(){abortOnCannotGrowMemory();}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;if(TOTAL_MEMORY<TOTAL_STACK)err("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+TOTAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")");if(Module["buffer"]){buffer=Module["buffer"];}else{{buffer=new ArrayBuffer(TOTAL_MEMORY);}Module["buffer"]=buffer;}updateGlobalBufferViews();function getTotalMemory(){return TOTAL_MEMORY;}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue;}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func);}else{Module["dynCall_vi"](func,callback.arg);}}else{func(callback.arg===undefined?null:callback.arg);}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift());}}callRuntimeCallbacks(__ATPRERUN__);}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__);}function preMain(){callRuntimeCallbacks(__ATMAIN__);}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true;}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift());}}callRuntimeCallbacks(__ATPOSTRUN__);}function addOnPreRun(cb){__ATPRERUN__.unshift(cb);}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb);}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer);}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i);}if(!dontAddNull)HEAP8[buffer>>0]=0;}var Math_abs=Math.abs;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_min=Math.min;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id;}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies);}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies);}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null;}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback();}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0;}STATIC_BASE=GLOBAL_BASE;STATICTOP=STATIC_BASE+22272;__ATINIT__.push({func:function func(){__GLOBAL__sub_I_zstd_binding_cc();}},{func:function func(){__GLOBAL__sub_I_bind_cpp();}});memoryInitializer="data:application/octet-stream;base64,AAAAAAAAAACwKgAASCcAAAgrAADQKgAAwCoAADAnAAAIKwAA0CoAAPAqAADwJwAAMCcAADAnAADwKgAAAAAAAAAAAAAAAAAA8CoAAPAnAAAwJwAAMCcAAPAqAADwJwAAMCcAADAnAABwJwAAAAAAAAAAAAAAAAAA8CoAAPAnAAAwJwAAMCcAAKgnAAAAAAAAAAAAAAAAAADAKgAACCgAAHAmAABwJgAAwCoAADAoAABwJgAAcCYAAAAAAABrOAcADbIHAJzyBwBwZAgAYK4KALBxCwAwqgwAEwAAAAwAAAANAAAAAQAAAAYAAAABAAAAAQAAABMAAAANAAAADgAAAAEAAAAHAAAAAQAAAAEAAAATAAAADwAAABAAAAABAAAABgAAAAEAAAABAAAAFAAAABAAAAARAAAAAQAAAAUAAAAIAAAAAgAAABQAAAARAAAAEgAAAAEAAAAFAAAACAAAAAIAAAAUAAAAEQAAABIAAAACAAAABQAAABAAAAADAAAAFQAAABEAAAATAAAAAgAAAAUAAAAQAAAABAAAABUAAAASAAAAEwAAAAMAAAAFAAAAEAAAAAQAAAAVAAAAEgAAABQAAAADAAAABQAAABAAAAAFAAAAFQAAABMAAAAUAAAAAwAAAAUAAAAQAAAABQAAABUAAAATAAAAFQAAAAQAAAAFAAAAEAAAAAUAAAAWAAAAFAAAABYAAAAEAAAABQAAABAAAAAFAAAAFgAAABQAAAAWAAAABQAAAAUAAAAQAAAABQAAABYAAAAVAAAAFgAAAAQAAAAFAAAAIAAAAAYAAAAWAAAAFQAAABYAAAAFAAAABQAAACAAAAAGAAAAFgAAABYAAAAWAAAABgAAAAUAAAAgAAAABgAAABYAAAAVAAAAFgAAAAQAAAAFAAAAMAAAAAcAAAAXAAAAFgAAABYAAAAEAAAABAAAADAAAAAHAAAAFwAAABYAAAAWAAAABQAAAAMAAABAAAAABwAAABcAAAAXAAAAFgAAAAcAAAADAAAAgAAAAAcAAAAZAAAAGQAAABcAAAAHAAAAAwAAAIAAAAAIAAAAGgAAABoAAAAYAAAABwAAAAMAAAAAAQAACAAAABsAAAAbAAAAGQAAAAkAAAADAAAAAAIAAAgAAAASAAAADAAAAA0AAAABAAAABQAAAAEAAAABAAAAEgAAAA0AAAAOAAAAAQAAAAYAAAABAAAAAQAAABIAAAAOAAAADQAAAAEAAAAFAAAACAAAAAIAAAASAAAAEAAAAA8AAAABAAAABQAAAAgAAAACAAAAEgAAAA8AAAARAAAAAQAAAAUAAAAIAAAAAwAAABIAAAAQAAAAEQAAAAQAAAAFAAAACAAAAAMAAAASAAAAEAAAABEAAAADAAAABQAAAAgAAAAEAAAAEgAAABEAAAARAAAABAAAAAQAAAAIAAAABAAAABIAAAARAAAAEQAAAAQAAAAEAAAACAAAAAUAAAASAAAAEQAAABEAAAAFAAAABAAAAAgAAAAFAAAAEgAAABEAAAARAAAABgAAAAQAAAAIAAAABQAAABIAAAASAAAAEQAAAAYAAAAEAAAACAAAAAUAAAASAAAAEgAAABEAAAAFAAAABAAAAAgAAAAGAAAAEgAAABMAAAARAAAABwAAAAQAAAAIAAAABgAAABIAAAASAAAAEgAAAAQAAAAEAAAAEAAAAAcAAAASAAAAEgAAABIAAAAEAAAAAwAAABAAAAAHAAAAEgAAABMAAAASAAAABgAAAAMAAAAgAAAABwAAABIAAAATAAAAEgAAAAgAAAADAAAAQAAAAAcAAAASAAAAEwAAABIAAAAJAAAAAwAAAIAAAAAHAAAAEgAAABMAAAASAAAACgAAAAMAAAAAAQAABwAAABIAAAATAAAAEgAAAAsAAAADAAAAAAIAAAgAAAASAAAAEwAAABIAAAAMAAAAAwAAAAACAAAIAAAAEgAAABMAAAASAAAADQAAAAMAAAAAAgAACAAAABEAAAAMAAAADAAAAAEAAAAFAAAAAQAAAAEAAAARAAAADAAAAA0AAAABAAAABgAAAAEAAAABAAAAEQAAAA0AAAAQAAAAAQAAAAUAAAABAAAAAQAAABEAAAAQAAAAEAAAAAIAAAAFAAAACAAAAAIAAAARAAAADQAAAA8AAAADAAAABAAAAAgAAAADAAAAEQAAAA8AAAARAAAABAAAAAQAAAAIAAAAAwAAABEAAAAQAAAAEQAAAAMAAAAEAAAACAAAAAQAAAARAAAADwAAABEAAAAEAAAABAAAAAgAAAAFAAAAEQAAABEAAAARAAAABAAAAAQAAAAIAAAABQAAABEAAAARAAAAEQAAAAUAAAAEAAAACAAAAAUAAAARAAAAEQAAABEAAAAGAAAABAAAAAgAAAAFAAAAEQAAABEAAAARAAAABwAAAAQAAAAIAAAABQAAABEAAAARAAAAEQAAAAgAAAAEAAAACAAAAAUAAAARAAAAEgAAABEAAAAGAAAABAAAAAgAAAAGAAAAEQAAABEAAAARAAAABwAAAAMAAAAIAAAABwAAABEAAAARAAAAEQAAAAcAAAADAAAAEAAAAAcAAAARAAAAEgAAABEAAAAHAAAAAwAAACAAAAAHAAAAEQAAABIAAAARAAAABwAAAAMAAABAAAAABwAAABEAAAASAAAAEQAAAAcAAAADAAAAAAEAAAcAAAARAAAAEgAAABEAAAAIAAAAAwAAAAABAAAHAAAAEQAAABIAAAARAAAACQAAAAMAAAAAAQAACAAAABEAAAASAAAAEQAAAAoAAAADAAAAAAEAAAgAAAARAAAAEgAAABEAAAALAAAAAwAAAAACAAAIAAAADgAAAAwAAAANAAAAAQAAAAUAAAABAAAAAQAAAA4AAAAOAAAADgAAAAEAAAAGAAAAAQAAAAEAAAAOAAAADgAAAA4AAAABAAAABAAAAAEAAAABAAAADgAAAA4AAAAOAAAAAQAAAAQAAAAGAAAAAgAAAA4AAAAOAAAADgAAAAQAAAAEAAAABgAAAAMAAAAOAAAADgAAAA4AAAADAAAABAAAAAYAAAAEAAAADgAAAA4AAAAOAAAABAAAAAQAAAAGAAAABQAAAA4AAAAOAAAADgAAAAUAAAAEAAAABgAAAAUAAAAOAAAADgAAAA4AAAAGAAAABAAAAAYAAAAFAAAADgAAAA8AAAAOAAAABgAAAAQAAAAGAAAABgAAAA4AAAAPAAAADgAAAAMAAAADAAAABgAAAAcAAAAOAAAADwAAAA4AAAAGAAAAAwAAAAgAAAAHAAAADgAAAA8AAAAOAAAABgAAAAMAAAAQAAAABwAAAA4AAAAPAAAADgAAAAYAAAADAAAAGAAAAAcAAAAOAAAADwAAAA8AAAAGAAAAAwAAADAAAAAHAAAADgAAAA8AAAAPAAAABgAAAAMAAABAAAAABwAAAA4AAAAPAAAADwAAAAYAAAADAAAAYAAAAAcAAAAOAAAADwAAAA8AAAAGAAAAAwAAAIAAAAAHAAAADgAAAA8AAAAPAAAABgAAAAMAAAAAAQAABwAAAA4AAAAPAAAADwAAAAcAAAADAAAAAAEAAAcAAAAOAAAADwAAAA8AAAAIAAAAAwAAAAABAAAIAAAADgAAAA8AAAAPAAAACQAAAAMAAAAAAQAACAAAAA4AAAAPAAAADwAAAAoAAAADAAAAAAEAAAgAAAAAAAAAAQAAAAMAAAAHAAAADwAAAB8AAAA/AAAAfwAAAP8AAAD/AQAA/wMAAP8HAAD/DwAA/x8AAP8/AAD/fwAA//8AAP//AQD//wMA//8HAP//DwD//x8A//8/AP//fwD///8A////Af///wP///8H////D////x////8/////fwEAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAAAAAAAAAAAAAAAECAwQFBgcICQoLDA0ODxAQERESEhMTFBQUFBUVFRUWFhYWFhYWFhcXFxcXFxcXGBgYGBgYGBgYGBgYGBgYGAABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICAhISIiIyMkJCQkJSUlJSYmJiYmJiYmJycnJycnJycoKCgoKCgoKCgoKCgoKCgoKSkpKSkpKSkpKSkpKSkpKSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqBAADAAIAAgACAAIAAgACAAIAAgACAAIAAgABAAEAAQACAAIAAgACAAIAAgACAAIAAgADAAIAAQABAAEAAQABAP//////////AAAAAAAAAAABAAEAAQABAAEAAQACAAIAAgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQD/////////////AAAAAAAAAQAEAAMAAgACAAIAAgACAAIAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQD//////////////////wAAAAAAAAAAAAABAAAAAgAAAAQAAAAAAAAAAgAAAAQAAAAIAAAAAAAAAAEAAAACAAAACAAAAAEAAQEGAAAAAAAABAAAAAAQAAAEAAAAACAAAAUBAAAAAAAABQMAAAAAAAAFBAAAAAAAAAUGAAAAAAAABQcAAAAAAAAFCQAAAAAAAAUKAAAAAAAABQwAAAAAAAAGDgAAAAAAAQUQAAAA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AxAAAAMgAAADQAAAA4AAAAMAAQAAAAAAAAAAAAAAAAAEAAMAAgACAAIAAgACAAIAAgACAAIAAgACAAEAAQABAAIAAgACAAIAAgACAAIAAgACAAMAAgABAAEAAQABAAEA//////////8AAAAAAAAAAAEAAQABAAEAAQABAAIAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP////////////8AAAAAAAABAAQAAwACAAIAAgACAAIAAgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP//////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAMAAAADAAAABAAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAEAAAABQAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAHAAAADwAAAB8AAAA/AAAAfwAAAP8AAAD/AQAA/wMAAP8HAAD/DwAA/x8AAP8/AAD/fwAA//8AAP//AQD//wMA//8HAP//DwD//x8A//8/AP//fwD///8A////Af///wMBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAATAAAAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAIAAAACIAAAAkAAAAJgAAACgAAAAsAAAAMAAAADgAAABAAAAAUAAAAGAAAACAAAAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAEAAAACAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAASAAAAFAAAABYAAAAYAAAAHAAAACAAAAAoAAAAMAAAAEAAAACAAAAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAEAAAACAAAAAAAEABAADAAIAAgACAAIAAgACAAIAAgACAAIAAgABAAEAAQACAAIAAgACAAIAAgACAAIAAgADAAIAAQABAAEAAQABAP//////////AAAAAAAAAAABAAEAAQABAAEAAQACAAIAAgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQD/////////////AAAAAAAAAQAEAAMAAgACAAIAAgACAAIAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQD//////////////////wAAAAAAAAgAAAAIAAAACAAAAAcAAAAIAAAACQAAAAoAAAALAAAAAAAAAAEAAAACAAAAAQAAAAQAAAAEAAAABAAAAAQAAAABAAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAAAAQAAAAIBAAAAAQAAAAEAAAABAAAAAQAAAAAAAAAAAAAAAQAAAAEAAAACAAAAAgAAAAAAAAAAAAAAAQAAAAEAAAACAAAAAgAAACYAAACCAAAAIQUAAEoAAABnCAAAJgAAAMABAACAAAAASQUAAEoAAAC+CAAAKQAAACwCAACAAAAASQUAAEoAAAC+CAAALwAAAMoCAACAAAAAigUAAEoAAACECQAANQAAAHMDAACAAAAAnQUAAEoAAACgCQAAPQAAAIEDAACAAAAA6wUAAEsAAAA+CgAARAAAAJ4DAACAAAAATQYAAEsAAACqCgAASwAAALMDAACAAAAAwQYAAE0AAAAfDQAATQAAAFMEAACAAAAAIwgAAFEAAACmDwAAVAAAAJkEAACAAAAASwkAAFcAAACxEgAAWAAAANoEAACAAAAAbwkAAF0AAAAjFAAAVAAAAEUFAACAAAAAVAoAAGoAAACMFAAAagAAAK8FAACAAAAAdgkAAHwAAABOEAAAfAAAANICAACAAAAAYwcAAJEAAACQBwAAkgAAAAEAAAACAAAAAwAAAAQAAAAHAAAACAAAAA8AAAAQAAAAHwAAACAAAAA/AAAAQAAAAH8AAACAAAAAAAAAAAAAAAARAAoAERERAAAAAAUAAAAAAAAJAAAAAAsAAAAAAAAAABEADwoREREDCgcAARMJCwsAAAkGCwAACwAGEQAAABEREQAAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAARAAoKERERAAoAAAIACQsAAAAJAAsAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA0AAAAEDQAAAAAJDgAAAAAADgAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAPAAAAAA8AAAAACRAAAAAAABAAABAAABIAAAASEhIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAABISEgAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAoAAAAACgAAAAAJCwAAAAAACwAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAwAAAAACQwAAAAAAAwAAAwAADAxMjM0NTY3ODlBQkNERUZUISIZDQECAxFLHAwQBAsdEh4naG5vcHFiIAUGDxMUFRoIFgcoJBcYCQoOGx8lI4OCfSYqKzw9Pj9DR0pNWFlaW1xdXl9gYWNkZWZnaWprbHJzdHl6e3wAAAAAAAAAAABJbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgAAAAAAAHQxAAC1MwAAdDEAAFY0AACcMQAAyDMAAHgmAAAAAAAAdDEAAJg0AACcMQAA2zQAAHgmAAAAAAAAdDEAAGI1AACcMQAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMCoAADIAAAAzAAAAHgAAAAEAAAAAAAAASCoAADQAAAA1AAAANgAAADcAAAAFAAAAAQAAAAEAAAABAAAAAAAAAHAqAAA0AAAAOAAAADYAAAA3AAAABQAAAAIAAAACAAAAAgAAAAAAAACgKgAANAAAADkAAAA2AAAANwAAAAYAAAAAAAAAkCoAADQAAAA6AAAANgAAADcAAAAHAAAAAAAAACArAAA0AAAAOwAAADYAAAA3AAAACAAAAAAAAAAwKwAANAAAADwAAAA2AAAANwAAAAUAAAADAAAAAwAAAAMAAABkdW1teQByYgBsZW5ndGgAYnVmZmVyAGNvbnN0cnVjdG9yAHNldABIRUFQVTgAVmVjdG9yVTgAY2xvbmVUb1ZlY3RvcgBjbG9uZUFzVHlwZWRBcnJheQB0b1R5cGVkQXJyYXlWaWV3AFpzdGRDb21wcmVzc2lvbkRpY3QAY3JlYXRlQ29tcHJlc3Npb25EaWN0AFpzdGREZWNvbXByZXNzaW9uRGljdABjcmVhdGVEZWNvbXByZXNzaW9uRGljdABac3RkQ29kZWMAY29tcHJlc3NCb3VuZABjb250ZW50U2l6ZQBjb21wcmVzcwBkZWNvbXByZXNzAGNvbXByZXNzVXNpbmdEaWN0AGRlY29tcHJlc3NVc2luZ0RpY3QAWnN0ZENvbXByZXNzU3RyZWFtQmluZGluZwBiZWdpbgBiZWdpblVzaW5nRGljdAB0cmFuc2Zvcm0AZmx1c2gAZW5kAFpzdGREZWNvbXByZXNzU3RyZWFtQmluZGluZwBOMTBlbXNjcmlwdGVuM3ZhbEUATlN0M19fMjEwX19mdW5jdGlvbjZfX2Z1bmNJWk4yNVpzdGRDb21wcmVzc1N0cmVhbUJpbmRpbmc5VHJhbnNmb3JtRU4xMGVtc2NyaXB0ZW4zdmFsRVM0X0UzJF8wTlNfOWFsbG9jYXRvcklTNV9FRUZ2UktOU182dmVjdG9ySWhOUzZfSWhFRUVFRUVFAE5TdDNfXzIxMF9fZnVuY3Rpb242X19iYXNlSUZ2UktOU182dmVjdG9ySWhOU185YWxsb2NhdG9ySWhFRUVFRUVFAFpOMjVac3RkQ29tcHJlc3NTdHJlYW1CaW5kaW5nOVRyYW5zZm9ybUVOMTBlbXNjcmlwdGVuM3ZhbEVTMV9FMyRfMABOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjI1WnN0ZENvbXByZXNzU3RyZWFtQmluZGluZzVGbHVzaEVOMTBlbXNjcmlwdGVuM3ZhbEVFMyRfMU5TXzlhbGxvY2F0b3JJUzVfRUVGdlJLTlNfNnZlY3RvckloTlM2X0loRUVFRUVFRQBaTjI1WnN0ZENvbXByZXNzU3RyZWFtQmluZGluZzVGbHVzaEVOMTBlbXNjcmlwdGVuM3ZhbEVFMyRfMQBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjI1WnN0ZENvbXByZXNzU3RyZWFtQmluZGluZzNFbmRFTjEwZW1zY3JpcHRlbjN2YWxFRTMkXzJOU185YWxsb2NhdG9ySVM1X0VFRnZSS05TXzZ2ZWN0b3JJaE5TNl9JaEVFRUVFRUUAWk4yNVpzdGRDb21wcmVzc1N0cmVhbUJpbmRpbmczRW5kRU4xMGVtc2NyaXB0ZW4zdmFsRUUzJF8yAE5TdDNfXzIxMF9fZnVuY3Rpb242X19mdW5jSVpOMjdac3RkRGVjb21wcmVzc1N0cmVhbUJpbmRpbmc5VHJhbnNmb3JtRU4xMGVtc2NyaXB0ZW4zdmFsRVM0X0UzJF8zTlNfOWFsbG9jYXRvcklTNV9FRUZ2UktOU182dmVjdG9ySWhOUzZfSWhFRUVFRUVFAFpOMjdac3RkRGVjb21wcmVzc1N0cmVhbUJpbmRpbmc5VHJhbnNmb3JtRU4xMGVtc2NyaXB0ZW4zdmFsRVMxX0UzJF8zAE5TdDNfXzIxMF9fZnVuY3Rpb242X19mdW5jSVpOMjdac3RkRGVjb21wcmVzc1N0cmVhbUJpbmRpbmc1Rmx1c2hFTjEwZW1zY3JpcHRlbjN2YWxFRTMkXzROU185YWxsb2NhdG9ySVM1X0VFRnZSS05TXzZ2ZWN0b3JJaE5TNl9JaEVFRUVFRUUAWk4yN1pzdGREZWNvbXByZXNzU3RyZWFtQmluZGluZzVGbHVzaEVOMTBlbXNjcmlwdGVuM3ZhbEVFMyRfNABOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjI3WnN0ZERlY29tcHJlc3NTdHJlYW1CaW5kaW5nM0VuZEVOMTBlbXNjcmlwdGVuM3ZhbEVFMyRfNU5TXzlhbGxvY2F0b3JJUzVfRUVGdlJLTlNfNnZlY3RvckloTlM2X0loRUVFRUVFRQBaTjI3WnN0ZERlY29tcHJlc3NTdHJlYW1CaW5kaW5nM0VuZEVOMTBlbXNjcmlwdGVuM3ZhbEVFMyRfNQBwdXNoX2JhY2sAcmVzaXplAHNpemUAZ2V0AE5TdDNfXzI2dmVjdG9ySWhOU185YWxsb2NhdG9ySWhFRUVFAE5TdDNfXzIxM19fdmVjdG9yX2Jhc2VJaE5TXzlhbGxvY2F0b3JJaEVFRUUATlN0M19fMjIwX192ZWN0b3JfYmFzZV9jb21tb25JTGIxRUVFAFBOU3QzX18yNnZlY3RvckloTlNfOWFsbG9jYXRvckloRUVFRQBQS05TdDNfXzI2dmVjdG9ySWhOU185YWxsb2NhdG9ySWhFRUVFAGlpAHYAdmkAdmlpaQB2aWlpaQBpaWkAaWlpaQBpaWlpaQAxOVpzdGRDb21wcmVzc2lvbkRpY3QAOFJlc291cmNlSTEyWlNURF9DRGljdF9zRQBQMTlac3RkQ29tcHJlc3Npb25EaWN0AFBLMTlac3RkQ29tcHJlc3Npb25EaWN0ADIxWnN0ZERlY29tcHJlc3Npb25EaWN0ADhSZXNvdXJjZUkxMlpTVERfRERpY3Rfc0UAUDIxWnN0ZERlY29tcHJlc3Npb25EaWN0AFBLMjFac3RkRGVjb21wcmVzc2lvbkRpY3QAOVpzdGRDb2RlYwBQOVpzdGRDb2RlYwBQSzlac3RkQ29kZWMAaWlpaWlpADI1WnN0ZENvbXByZXNzU3RyZWFtQmluZGluZwBQMjVac3RkQ29tcHJlc3NTdHJlYW1CaW5kaW5nAFBLMjVac3RkQ29tcHJlc3NTdHJlYW1CaW5kaW5nADI3WnN0ZERlY29tcHJlc3NTdHJlYW1CaW5kaW5nAFAyN1pzdGREZWNvbXByZXNzU3RyZWFtQmluZGluZwBQSzI3WnN0ZERlY29tcHJlc3NTdHJlYW1CaW5kaW5nAFBGdlAxMVpTVERfQ0N0eF9zRQBGdlAxMVpTVERfQ0N0eF9zRQBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0lQRnZQMTFaU1REX0NDdHhfc0VOU185YWxsb2NhdG9ySVM1X0VFUzRfRUUATlN0M19fMjEwX19mdW5jdGlvbjZfX2Jhc2VJRnZQMTFaU1REX0NDdHhfc0VFRQBQRnZQMTFaU1REX0RDdHhfc0UARnZQMTFaU1REX0RDdHhfc0UATlN0M19fMjEwX19mdW5jdGlvbjZfX2Z1bmNJUEZ2UDExWlNURF9EQ3R4X3NFTlNfOWFsbG9jYXRvcklTNV9FRVM0X0VFAE5TdDNfXzIxMF9fZnVuY3Rpb242X19iYXNlSUZ2UDExWlNURF9EQ3R4X3NFRUUAUEZ2UDEyWlNURF9DRGljdF9zRQBGdlAxMlpTVERfQ0RpY3Rfc0UATlN0M19fMjEwX19mdW5jdGlvbjZfX2Z1bmNJUEZ2UDEyWlNURF9DRGljdF9zRU5TXzlhbGxvY2F0b3JJUzVfRUVTNF9FRQBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fYmFzZUlGdlAxMlpTVERfQ0RpY3Rfc0VFRQBQRnZQMTJaU1REX0REaWN0X3NFAEZ2UDEyWlNURF9ERGljdF9zRQBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0lQRnZQMTJaU1REX0REaWN0X3NFTlNfOWFsbG9jYXRvcklTNV9FRVM0X0VFAE5TdDNfXzIxMF9fZnVuY3Rpb242X19iYXNlSUZ2UDEyWlNURF9ERGljdF9zRUVFAFpOMThac3RkQ29tcHJlc3NTdHJlYW01QmVnaW5FaUUzJF8wAE5TdDNfXzIxMF9fZnVuY3Rpb242X19mdW5jSVpOMThac3RkQ29tcHJlc3NTdHJlYW01QmVnaW5FaUUzJF8wTlNfOWFsbG9jYXRvcklTM19FRUZtUDExWlNURF9DQ3R4X3NFRUUATlN0M19fMjEwX19mdW5jdGlvbjZfX2Jhc2VJRm1QMTFaU1REX0NDdHhfc0VFRQBaTjE4WnN0ZENvbXByZXNzU3RyZWFtNUJlZ2luRVJLMTlac3RkQ29tcHJlc3Npb25EaWN0RTMkXzEATlN0M19fMjEwX19mdW5jdGlvbjZfX2Z1bmNJWk4xOFpzdGRDb21wcmVzc1N0cmVhbTVCZWdpbkVSSzE5WnN0ZENvbXByZXNzaW9uRGljdEUzJF8xTlNfOWFsbG9jYXRvcklTNl9FRUZtUDExWlNURF9DQ3R4X3NFRUUAWk4yMFpzdGREZWNvbXByZXNzU3RyZWFtNUJlZ2luRXZFMyRfMgBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjIwWnN0ZERlY29tcHJlc3NTdHJlYW01QmVnaW5FdkUzJF8yTlNfOWFsbG9jYXRvcklTM19FRUZtUDExWlNURF9EQ3R4X3NFRUUATlN0M19fMjEwX19mdW5jdGlvbjZfX2Jhc2VJRm1QMTFaU1REX0RDdHhfc0VFRQBaTjIwWnN0ZERlY29tcHJlc3NTdHJlYW01QmVnaW5FUksyMVpzdGREZWNvbXByZXNzaW9uRGljdEUzJF8zAE5TdDNfXzIxMF9fZnVuY3Rpb242X19mdW5jSVpOMjBac3RkRGVjb21wcmVzc1N0cmVhbTVCZWdpbkVSSzIxWnN0ZERlY29tcHJlc3Npb25EaWN0RTMkXzNOU185YWxsb2NhdG9ySVM2X0VFRm1QMTFaU1REX0RDdHhfc0VFRQBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBzdGQ6OndzdHJpbmcAZW1zY3JpcHRlbjo6dmFsAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgc2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgaW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGRvdWJsZT4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZyBkb3VibGU+AE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWVFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lkRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJZkVFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SW1FRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lsRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJakVFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWlFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l0RUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJc0VFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWhFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lhRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJY0VFAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0l3TlNfMTFjaGFyX3RyYWl0c0l3RUVOU185YWxsb2NhdG9ySXdFRUVFAE5TdDNfXzIyMV9fYmFzaWNfc3RyaW5nX2NvbW1vbklMYjFFRUUATlN0M19fMjEyYmFzaWNfc3RyaW5nSWhOU18xMWNoYXJfdHJhaXRzSWhFRU5TXzlhbGxvY2F0b3JJaEVFRUUATlN0M19fMjEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUALSsgICAwWDB4AChudWxsKQAtMFgrMFggMFgtMHgrMHggMHgAaW5mAElORgBuYW4ATkFOAHJ3YQBzdGQ6OmJhZF9mdW5jdGlvbl9jYWxsAE5TdDNfXzIxN2JhZF9mdW5jdGlvbl9jYWxsRQB0ZXJtaW5hdGluZyB3aXRoICVzIGV4Y2VwdGlvbiBvZiB0eXBlICVzOiAlcwB0ZXJtaW5hdGluZyB3aXRoICVzIGV4Y2VwdGlvbiBvZiB0eXBlICVzAHRlcm1pbmF0aW5nIHdpdGggJXMgZm9yZWlnbiBleGNlcHRpb24AdGVybWluYXRpbmcAdW5jYXVnaHQAU3Q5ZXhjZXB0aW9uAE4xMF9fY3h4YWJpdjExNl9fc2hpbV90eXBlX2luZm9FAFN0OXR5cGVfaW5mbwBOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNzX3R5cGVfaW5mb0UATjEwX19jeHhhYml2MTE3X19jbGFzc190eXBlX2luZm9FAHB0aHJlYWRfb25jZSBmYWlsdXJlIGluIF9fY3hhX2dldF9nbG9iYWxzX2Zhc3QoKQBjYW5ub3QgY3JlYXRlIHB0aHJlYWQga2V5IGZvciBfX2N4YV9nZXRfZ2xvYmFscygpAGNhbm5vdCB6ZXJvIG91dCB0aHJlYWQgdmFsdWUgZm9yIF9fY3hhX2dldF9nbG9iYWxzKCkAdGVybWluYXRlX2hhbmRsZXIgdW5leHBlY3RlZGx5IHJldHVybmVkAE4xMF9fY3h4YWJpdjExOV9fcG9pbnRlcl90eXBlX2luZm9FAE4xMF9fY3h4YWJpdjExN19fcGJhc2VfdHlwZV9pbmZvRQBOMTBfX2N4eGFiaXYxMjNfX2Z1bmRhbWVudGFsX3R5cGVfaW5mb0UAdgBEbgBiAGMAaABhAHMAdABpAGoAbQBmAGQATjEwX19jeHhhYml2MTIwX19mdW5jdGlvbl90eXBlX2luZm9FAE4xMF9fY3h4YWJpdjEyMV9fdm1pX2NsYXNzX3R5cGVfaW5mb0UAIGNvbnN0ACB2b2xhdGlsZQAgcmVzdHJpY3QAIGNvbXBsZXgAIGltYWdpbmFyeQAgWwAgKAApACgAJiYAb2JqY19vYmplY3Q8ACoAJgBvYmpjcHJvdG8AIAA8AD4AIHZlY3RvclsAXQBwaXhlbCB2ZWN0b3JbACY9AD0ALAB+ADo6AGRlbGV0ZVtdIABkZWxldGUgAC8ALz0AXgBePQA9PQA+PQApWwA8PQA8PAA8PD0ALQAtPQAqPQAtLQApLS0AIT0AIQB8fAB8AHw9AC0+KgArACs9ACsrACkrKwApID8gKAApIDogKAAlACU9AD4+AD4+PQB0aHJvdwB0aHJvdyAAdHlwZWlkKABzaXplb2YuLi4oACwgAHNpemVvZiAoAHN0YXRpY19jYXN0PAA+KAByZWludGVycHJldF9jYXN0PAAtPgBub2V4Y2VwdCAoAFtdIAApIAAuAC4qAHN0ZDo6AG9wZXJhdG9yJiYAb3BlcmF0b3ImAG9wZXJhdG9yJj0Ab3BlcmF0b3I9AG9wZXJhdG9yKCkAb3BlcmF0b3IsAG9wZXJhdG9yfgBvcGVyYXRvciAAb3BlcmF0b3IgZGVsZXRlW10Ab3BlcmF0b3IqAG9wZXJhdG9yLwBvcGVyYXRvci89AG9wZXJhdG9yXgBvcGVyYXRvcl49AG9wZXJhdG9yPT0Ab3BlcmF0b3I+PQBvcGVyYXRvcj4Ab3BlcmF0b3JbXQBvcGVyYXRvcjw9AG9wZXJhdG9yIiIgAG9wZXJhdG9yPDwAb3BlcmF0b3I8PD0Ab3BlcmF0b3I8AG9wZXJhdG9yLQBvcGVyYXRvci09AG9wZXJhdG9yKj0Ab3BlcmF0b3ItLQBvcGVyYXRvciBuZXdbXQBvcGVyYXRvciE9AG9wZXJhdG9yIQBvcGVyYXRvciBuZXcAb3BlcmF0b3J8fABvcGVyYXRvcnwAb3BlcmF0b3J8PQBvcGVyYXRvci0+KgBvcGVyYXRvcisAb3BlcmF0b3IrPQBvcGVyYXRvcisrAG9wZXJhdG9yLT4Ab3BlcmF0b3I/AG9wZXJhdG9yJQBvcGVyYXRvciU9AG9wZXJhdG9yPj4Ab3BlcmF0b3I+Pj0Ab3BlcmF0b3IgZGVsZXRlACd1bm5hbWVkACdsYW1iZGEnKABzdGQ6OnN0cmluZwBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LCBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+AGJhc2ljX3N0cmluZwBzdGQ6OmlzdHJlYW0Ac3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPgBiYXNpY19pc3RyZWFtAHN0ZDo6b3N0cmVhbQBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhciwgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+AGJhc2ljX29zdHJlYW0Ac3RkOjppb3N0cmVhbQBzdGQ6OmJhc2ljX2lvc3RyZWFtPGNoYXIsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPgBiYXNpY19pb3N0cmVhbQBkeW5hbWljX2Nhc3Q8ACkoAGNvbnN0X2Nhc3Q8AGFsaWdub2YgKABmcAB3Y2hhcl90AGZhbHNlAHRydWUAY2hhcgBzaWduZWQgY2hhcgB1bnNpZ25lZCBjaGFyAHNob3J0AHVuc2lnbmVkIHNob3J0AHUAbAB1bABsbAB1bGwAX19pbnQxMjgAdW5zaWduZWQgX19pbnQxMjgAJUxhTAAlYQAlYWYAZGVjbHR5cGUoAHN0ZDo6YWxsb2NhdG9yAHN0ZDo6YmFzaWNfc3RyaW5nADo6c3RyaW5nIGxpdGVyYWwAc3RkAF9HTE9CQUxfX04AKGFub255bW91cyBuYW1lc3BhY2UpACA+AFRfAGlkADo6KgAgJgAgJiYAIFtdAHZvaWQAYm9vbABpbnQAdW5zaWduZWQgaW50AGxvbmcAdW5zaWduZWQgbG9uZwBsb25nIGxvbmcAZmxvYXQAbG9uZyBkb3VibGUAX19mbG9hdDEyOAAuLi4AZGVjaW1hbDY0AGRlY2ltYWwxMjgAZGVjaW1hbDMyAGRlY2ltYWwxNgBjaGFyMzJfdABjaGFyMTZfdABhdXRvAHN0ZDo6bnVsbHB0cl90AGRvdWJsZQB1bnNpZ25lZCBsb25nIGxvbmcAX2Jsb2NrX2ludm9rZQBpbnZvY2F0aW9uIGZ1bmN0aW9uIGZvciBibG9jayBpbiAAdnRhYmxlIGZvciAAVlRUIGZvciAAdHlwZWluZm8gZm9yIAB0eXBlaW5mbyBuYW1lIGZvciAAY292YXJpYW50IHJldHVybiB0aHVuayB0byAAY29uc3RydWN0aW9uIHZ0YWJsZSBmb3IgAC1pbi0AdmlydHVhbCB0aHVuayB0byAAbm9uLXZpcnR1YWwgdGh1bmsgdG8gAGd1YXJkIHZhcmlhYmxlIGZvciAAcmVmZXJlbmNlIHRlbXBvcmFyeSBmb3Ig";var tempDoublePtr=STATICTOP;STATICTOP+=16;function ___cxa_allocate_exception(size){return _malloc(size);}function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception;}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:function deAdjust(adjusted){if(!adjusted||EXCEPTIONS.infos[adjusted])return adjusted;for(var key in EXCEPTIONS.infos){var ptr=+key;var info=EXCEPTIONS.infos[ptr];if(info.adjusted===adjusted){return ptr;}}return adjusted;},addRef:function addRef(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount++;},decRef:function decRef(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];assert(info.refcount>0);info.refcount--;if(info.refcount===0&&!info.rethrown){if(info.destructor){Module["dynCall_vi"](info.destructor,ptr);}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr);}},clearRef:function clearRef(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0;}};function ___cxa_begin_catch(ptr){var info=EXCEPTIONS.infos[ptr];if(info&&!info.caught){info.caught=true;__ZSt18uncaught_exceptionv.uncaught_exception--;}if(info)info.rethrown=false;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr;}function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr;}throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.";}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(setTempRet0(0),0)|0;}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0;}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module["___cxa_is_pointer_type"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i<typeArray.length;i++){if(typeArray[i]&&Module["___cxa_can_catch"](typeArray[i],throwntype,thrown)){thrown=HEAP32[thrown>>2];info.adjusted=thrown;return(setTempRet0(typeArray[i]),thrown)|0;}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0;}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};EXCEPTIONS.last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1;}else{__ZSt18uncaught_exceptionv.uncaught_exception++;}throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.";}function ___gxx_personality_v0(){}function ___lock(){}var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value;}var PATH={splitPath:function splitPath(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1);},normalizeArray:function normalizeArray(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1);}else if(last===".."){parts.splice(i,1);up++;}else if(up){parts.splice(i,1);up--;}}if(allowAboveRoot){for(;up;up--){parts.unshift("..");}}return parts;},normalize:function normalize(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p;}),!isAbsolute).join("/");if(!path&&!isAbsolute){path=".";}if(path&&trailingSlash){path+="/";}return(isAbsolute?"/":"")+path;},dirname:function dirname(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return".";}if(dir){dir=dir.substr(0,dir.length-1);}return root+dir;},basename:function basename(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1);},extname:function extname(path){return PATH.splitPath(path)[3];},join:function join(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"));},join2:function join2(l,r){return PATH.normalize(l+"/"+r);},resolve:function resolve(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings");}else if(!path){return"";}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/";}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p;}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||".";},relative:function relative(from,to){from=PATH.resolve(from).substr(1);to=PATH.resolve(to).substr(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break;}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break;}if(start>end)return[];return arr.slice(start,end-start+1);}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break;}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..");}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/");}};var TTY={ttys:[],init:function init(){},shutdown:function shutdown(){},register:function register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops);},stream_ops:{open:function open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(ERRNO_CODES.ENODEV);}stream.tty=tty;stream.seekable=false;},close:function close(stream){stream.tty.ops.flush(stream.tty);},flush:function flush(stream){stream.tty.ops.flush(stream.tty);},read:function read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(ERRNO_CODES.ENXIO);}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty);}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO);}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result;}if(bytesRead){stream.node.timestamp=Date.now();}return bytesRead;},write:function write(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(ERRNO_CODES.ENXIO);}for(var i=0;i<length;i++){try{stream.tty.ops.put_char(stream.tty,buffer[offset+i]);}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO);}}if(length){stream.node.timestamp=Date.now();}return i;}},default_tty_ops:{get_char:function get_char(tty){if(!tty.input.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=new Buffer(BUFSIZE);var bytesRead=0;var isPosixPlatform=process.platform!="win32";var fd=process.stdin.fd;if(isPosixPlatform){var usingDevice=false;try{fd=fs.openSync("/dev/stdin","r");usingDevice=true;}catch(e){}}try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE,null);}catch(e){if(e.toString().indexOf("EOF")!=-1)bytesRead=0;else throw e;}if(usingDevice){fs.closeSync(fd);}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8");}else{result=null;}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n";}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n";}}if(!result){return null;}tty.input=intArrayFromString(result,true);}return tty.input.shift();},put_char:function put_char(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[];}else{if(val!=0)tty.output.push(val);}},flush:function flush(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[];}}},default_tty1_ops:{put_char:function put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[];}else{if(val!=0)tty.output.push(val);}},flush:function flush(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[];}}}};var MEMFS={ops_table:null,mount:function mount(_mount){return MEMFS.createNode(null,"/",16384|511,0);},createNode:function createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(ERRNO_CODES.EPERM);}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={};}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null;}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream;}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream;}node.timestamp=Date.now();if(parent){parent.contents[name]=node;}return node;},getFileDataAsRegularArray:function getFileDataAsRegularArray(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;i<node.usedBytes;++i){arr.push(node.contents[i]);}return arr;}return node.contents;},getFileDataAsTypedArray:function getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array();if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents);},expandFileStorage:function expandFileStorage(node,newCapacity){if(node.contents&&node.contents.subarray&&newCapacity>node.contents.length){node.contents=MEMFS.getFileDataAsRegularArray(node);node.usedBytes=node.contents.length;}if(!node.contents||node.contents.subarray){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)|0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return;}if(!node.contents&&newCapacity>0)node.contents=[];while(node.contents.length<newCapacity){node.contents.push(0);}},resizeFileStorage:function resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return;}if(!node.contents||node.contents.subarray){var oldContents=node.contents;node.contents=new Uint8Array(new ArrayBuffer(newSize));if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)));}node.usedBytes=newSize;return;}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length<newSize){node.contents.push(0);}node.usedBytes=newSize;},node_ops:{getattr:function getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096;}else if(FS.isFile(node.mode)){attr.size=node.usedBytes;}else if(FS.isLink(node.mode)){attr.size=node.link.length;}else{attr.size=0;}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr;},setattr:function setattr(node,attr){if(attr.mode!==undefined){node.mode=attr.mode;}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp;}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size);}},lookup:function lookup(parent,name){throw FS.genericErrors[ERRNO_CODES.ENOENT];},mknod:function mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev);},rename:function rename(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name);}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);}}}delete old_node.parent.contents[old_node.name];old_node.name=new_name;new_dir.contents[new_name]=old_node;old_node.parent=new_dir;},unlink:function unlink(parent,name){delete parent.contents[name];},rmdir:function rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);}delete parent.contents[name];},readdir:function readdir(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue;}entries.push(key);}return entries;},symlink:function symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node;},readlink:function readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}return node.link;}},stream_ops:{read:function read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset);}else{for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i];}}return size;},write:function write(stream,buffer,offset,length,position,canOwn){if(!length)return 0;var node=stream.node;node.timestamp=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length;}else if(node.usedBytes===0&&position===0){node.contents=new Uint8Array(buffer.subarray(offset,offset+length));node.usedBytes=length;return length;}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length;}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray)node.contents.set(buffer.subarray(offset,offset+length),position);else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i];}}node.usedBytes=Math.max(node.usedBytes,position+length);return length;},llseek:function llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position;}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes;}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}return position;},allocate:function allocate(stream,offset,length){MEMFS.expandFileStorage(stream.node,offset+length);stream.node.usedBytes=Math.max(stream.node.usedBytes,offset+length);},mmap:function mmap(stream,buffer,offset,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV);}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&(contents.buffer===buffer||contents.buffer===buffer.buffer)){allocated=false;ptr=contents.byteOffset;}else{if(position>0||position+length<stream.node.usedBytes){if(contents.subarray){contents=contents.subarray(position,position+length);}else{contents=Array.prototype.slice.call(contents,position,position+length);}}allocated=true;ptr=_malloc(length);if(!ptr){throw new FS.ErrnoError(ERRNO_CODES.ENOMEM);}buffer.set(contents,ptr);}return{ptr:ptr,allocated:allocated};},msync:function msync(stream,buffer,offset,length,mmapFlags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV);}if(mmapFlags&2){return 0;}var bytesWritten=MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0;}}};var IDBFS={dbs:{},indexedDB:function(_indexedDB){function indexedDB(){return _indexedDB.apply(this,arguments);}indexedDB.toString=function(){return _indexedDB.toString();};return indexedDB;}(function(){if(typeof indexedDB!=="undefined")return indexedDB;var ret=null;if((typeof window==='undefined'?'undefined':_typeof(window))==="object")ret=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;assert(ret,"IDBFS used, but indexedDB not supported");return ret;}),DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function mount(_mount2){return MEMFS.mount.apply(null,arguments);},syncfs:function syncfs(mount,populate,callback){IDBFS.getLocalSet(mount,function(err,local){if(err)return callback(err);IDBFS.getRemoteSet(mount,function(err,remote){if(err)return callback(err);var src=populate?remote:local;var dst=populate?local:remote;IDBFS.reconcile(src,dst,callback);});});},getDB:function getDB(name,callback){var db=IDBFS.dbs[name];if(db){return callback(null,db);}var req;try{req=IDBFS.indexedDB().open(name,IDBFS.DB_VERSION);}catch(e){return callback(e);}if(!req){return callback("Unable to connect to IndexedDB");}req.onupgradeneeded=function(e){var db=e.target.result;var transaction=e.target.transaction;var fileStore;if(db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)){fileStore=transaction.objectStore(IDBFS.DB_STORE_NAME);}else{fileStore=db.createObjectStore(IDBFS.DB_STORE_NAME);}if(!fileStore.indexNames.contains("timestamp")){fileStore.createIndex("timestamp","timestamp",{unique:false});}};req.onsuccess=function(){db=req.result;IDBFS.dbs[name]=db;callback(null,db);};req.onerror=function(e){callback(this.error);e.preventDefault();};},getLocalSet:function getLocalSet(mount,callback){var entries={};function isRealDir(p){return p!=="."&&p!=="..";}function toAbsolute(root){return function(p){return PATH.join2(root,p);};}var check=FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));while(check.length){var path=check.pop();var stat;try{stat=FS.stat(path);}catch(e){return callback(e);}if(FS.isDir(stat.mode)){check.push.apply(check,FS.readdir(path).filter(isRealDir).map(toAbsolute(path)));}entries[path]={timestamp:stat.mtime};}return callback(null,{type:"local",entries:entries});},getRemoteSet:function getRemoteSet(mount,callback){var entries={};IDBFS.getDB(mount.mountpoint,function(err,db){if(err)return callback(err);try{var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readonly");transaction.onerror=function(e){callback(this.error);e.preventDefault();};var store=transaction.objectStore(IDBFS.DB_STORE_NAME);var index=store.index("timestamp");index.openKeyCursor().onsuccess=function(event){var cursor=event.target.result;if(!cursor){return callback(null,{type:"remote",db:db,entries:entries});}entries[cursor.primaryKey]={timestamp:cursor.key};cursor.continue();};}catch(e){return callback(e);}});},loadLocalEntry:function loadLocalEntry(path,callback){var stat,node;try{var lookup=FS.lookupPath(path);node=lookup.node;stat=FS.stat(path);}catch(e){return callback(e);}if(FS.isDir(stat.mode)){return callback(null,{timestamp:stat.mtime,mode:stat.mode});}else if(FS.isFile(stat.mode)){node.contents=MEMFS.getFileDataAsTypedArray(node);return callback(null,{timestamp:stat.mtime,mode:stat.mode,contents:node.contents});}else{return callback(new Error("node type not supported"));}},storeLocalEntry:function storeLocalEntry(path,entry,callback){try{if(FS.isDir(entry.mode)){FS.mkdir(path,entry.mode);}else if(FS.isFile(entry.mode)){FS.writeFile(path,entry.contents,{canOwn:true});}else{return callback(new Error("node type not supported"));}FS.chmod(path,entry.mode);FS.utime(path,entry.timestamp,entry.timestamp);}catch(e){return callback(e);}callback(null);},removeLocalEntry:function removeLocalEntry(path,callback){try{var lookup=FS.lookupPath(path);var stat=FS.stat(path);if(FS.isDir(stat.mode)){FS.rmdir(path);}else if(FS.isFile(stat.mode)){FS.unlink(path);}}catch(e){return callback(e);}callback(null);},loadRemoteEntry:function loadRemoteEntry(store,path,callback){var req=store.get(path);req.onsuccess=function(event){callback(null,event.target.result);};req.onerror=function(e){callback(this.error);e.preventDefault();};},storeRemoteEntry:function storeRemoteEntry(store,path,entry,callback){var req=store.put(entry,path);req.onsuccess=function(){callback(null);};req.onerror=function(e){callback(this.error);e.preventDefault();};},removeRemoteEntry:function removeRemoteEntry(store,path,callback){var req=store.delete(path);req.onsuccess=function(){callback(null);};req.onerror=function(e){callback(this.error);e.preventDefault();};},reconcile:function reconcile(src,dst,callback){var total=0;var create=[];Object.keys(src.entries).forEach(function(key){var e=src.entries[key];var e2=dst.entries[key];if(!e2||e.timestamp>e2.timestamp){create.push(key);total++;}});var remove=[];Object.keys(dst.entries).forEach(function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++;}});if(!total){return callback(null);}var completed=0;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err){if(!done.errored){done.errored=true;return callback(err);}return;}if(++completed>=total){return callback(null);}}transaction.onerror=function(e){done(this.error);e.preventDefault();};create.sort().forEach(function(path){if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,function(err,entry){if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done);});}else{IDBFS.loadLocalEntry(path,function(err,entry){if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done);});}});remove.sort().reverse().forEach(function(path){if(dst.type==="local"){IDBFS.removeLocalEntry(path,done);}else{IDBFS.removeRemoteEntry(store,path,done);}});}};var NODEFS={isWindows:false,staticInit:function staticInit(){NODEFS.isWindows=!!process.platform.match(/^win/);var flags=process["binding"]("constants");if(flags["fs"]){flags=flags["fs"];}NODEFS.flagsForNodeMap={"1024":flags["O_APPEND"],"64":flags["O_CREAT"],"128":flags["O_EXCL"],"0":flags["O_RDONLY"],"2":flags["O_RDWR"],"4096":flags["O_SYNC"],"512":flags["O_TRUNC"],"1":flags["O_WRONLY"]};},bufferFrom:function bufferFrom(arrayBuffer){return Buffer.alloc?Buffer.from(arrayBuffer):new Buffer(arrayBuffer);},mount:function mount(_mount3){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(_mount3.opts.root),0);},createNode:function createNode(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node;},getMode:function getMode(path){var stat;try{stat=fs.lstatSync(path);if(NODEFS.isWindows){stat.mode=stat.mode|(stat.mode&292)>>2;}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code]);}return stat.mode;},realPath:function realPath(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent;}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts);},flagsForNode:function flagsForNode(flags){flags&=~2097152;flags&=~2048;flags&=~32768;flags&=~524288;var newFlags=0;for(var k in NODEFS.flagsForNodeMap){if(flags&k){newFlags|=NODEFS.flagsForNodeMap[k];flags^=k;}}if(!flags){return newFlags;}else{throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}},node_ops:{getattr:function getattr(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path);}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code]);}if(NODEFS.isWindows&&!stat.blksize){stat.blksize=4096;}if(NODEFS.isWindows&&!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0;}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks};},setattr:function setattr(node,attr){var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode;}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);fs.utimesSync(path,date,date);}if(attr.size!==undefined){fs.truncateSync(path,attr.size);}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code]);}},lookup:function lookup(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode);},mknod:function mknod(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode);}else{fs.writeFileSync(path,"",{mode:node.mode});}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code]);}return node;},rename:function rename(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath);}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code]);}},unlink:function unlink(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path);}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code]);}},rmdir:function rmdir(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path);}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code]);}},readdir:function readdir(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path);}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code]);}},symlink:function symlink(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath);}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code]);}},readlink:function readlink(node){var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root),path);return path;}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code]);}}},stream_ops:{open:function open(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsForNode(stream.flags));}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code]);}},close:function close(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd);}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code]);}},read:function read(stream,buffer,offset,length,position){if(length===0)return 0;try{return fs.readSync(stream.nfd,NODEFS.bufferFrom(buffer.buffer),offset,length,position);}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code]);}},write:function write(stream,buffer,offset,length,position){try{return fs.writeSync(stream.nfd,NODEFS.bufferFrom(buffer.buffer),offset,length,position);}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code]);}},llseek:function llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position;}else if(whence===2){if(FS.isFile(stream.node.mode)){try{var stat=fs.fstatSync(stream.nfd);position+=stat.size;}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code]);}}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}return position;}}};var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:function mount(_mount4){assert(ENVIRONMENT_IS_WORKER);if(!WORKERFS.reader)WORKERFS.reader=new FileReaderSync();var root=WORKERFS.createNode(null,"/",WORKERFS.DIR_MODE,0);var createdParents={};function ensureParent(path){var parts=path.split("/");var parent=root;for(var i=0;i<parts.length-1;i++){var curr=parts.slice(0,i+1).join("/");if(!createdParents[curr]){createdParents[curr]=WORKERFS.createNode(parent,parts[i],WORKERFS.DIR_MODE,0);}parent=createdParents[curr];}return parent;}function base(path){var parts=path.split("/");return parts[parts.length-1];}Array.prototype.forEach.call(_mount4.opts["files"]||[],function(file){WORKERFS.createNode(ensureParent(file.name),base(file.name),WORKERFS.FILE_MODE,0,file,file.lastModifiedDate);});(_mount4.opts["blobs"]||[]).forEach(function(obj){WORKERFS.createNode(ensureParent(obj["name"]),base(obj["name"]),WORKERFS.FILE_MODE,0,obj["data"]);});(_mount4.opts["packages"]||[]).forEach(function(pack){pack["metadata"].files.forEach(function(file){var name=file.filename.substr(1);WORKERFS.createNode(ensureParent(name),base(name),WORKERFS.FILE_MODE,0,pack["blob"].slice(file.start,file.end));});});return root;},createNode:function createNode(parent,name,mode,dev,contents,mtime){var node=FS.createNode(parent,name,mode);node.mode=mode;node.node_ops=WORKERFS.node_ops;node.stream_ops=WORKERFS.stream_ops;node.timestamp=(mtime||new Date()).getTime();assert(WORKERFS.FILE_MODE!==WORKERFS.DIR_MODE);if(mode===WORKERFS.FILE_MODE){node.size=contents.size;node.contents=contents;}else{node.size=4096;node.contents={};}if(parent){parent.contents[name]=node;}return node;},node_ops:{getattr:function getattr(node){return{dev:1,ino:undefined,mode:node.mode,nlink:1,uid:0,gid:0,rdev:undefined,size:node.size,atime:new Date(node.timestamp),mtime:new Date(node.timestamp),ctime:new Date(node.timestamp),blksize:4096,blocks:Math.ceil(node.size/4096)};},setattr:function setattr(node,attr){if(attr.mode!==undefined){node.mode=attr.mode;}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp;}},lookup:function lookup(parent,name){throw new FS.ErrnoError(ERRNO_CODES.ENOENT);},mknod:function mknod(parent,name,mode,dev){throw new FS.ErrnoError(ERRNO_CODES.EPERM);},rename:function rename(oldNode,newDir,newName){throw new FS.ErrnoError(ERRNO_CODES.EPERM);},unlink:function unlink(parent,name){throw new FS.ErrnoError(ERRNO_CODES.EPERM);},rmdir:function rmdir(parent,name){throw new FS.ErrnoError(ERRNO_CODES.EPERM);},readdir:function readdir(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue;}entries.push(key);}return entries;},symlink:function symlink(parent,newName,oldPath){throw new FS.ErrnoError(ERRNO_CODES.EPERM);},readlink:function readlink(node){throw new FS.ErrnoError(ERRNO_CODES.EPERM);}},stream_ops:{read:function read(stream,buffer,offset,length,position){if(position>=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size;},write:function write(stream,buffer,offset,length,position){throw new FS.ErrnoError(ERRNO_CODES.EIO);},llseek:function llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position;}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size;}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}return position;}}};STATICTOP+=16;STATICTOP+=16;STATICTOP+=16;var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function handleFSError(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno);},lookupPath:function lookupPath(path,opts){path=PATH.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key];}}if(opts.recurse_count>8){throw new FS.ErrnoError(ERRNO_CODES.ELOOP);}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p;}),false);var current=FS.root;var current_path="/";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break;}current=FS.lookupNode(current,parts[i]);current_path=PATH.join2(current_path,parts[i]);if(FS.isMountpoint(current)){if(!islast||islast&&opts.follow_mount){current=current.mounted.root;}}if(!islast||opts.follow){var count=0;while(FS.isLink(current.mode)){var link=FS.readlink(current_path);current_path=PATH.resolve(PATH.dirname(current_path),link);var lookup=FS.lookupPath(current_path,{recurse_count:opts.recurse_count});current=lookup.node;if(count++>40){throw new FS.ErrnoError(ERRNO_CODES.ELOOP);}}}}return{path:current_path,node:current};},getPath:function getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path;}path=path?node.name+"/"+path:node.name;node=node.parent;}},hashName:function hashName(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0;}return(parentid+hash>>>0)%FS.nameTable.length;},hashAddNode:function hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node;},hashRemoveNode:function hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next;}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break;}current=current.name_next;}}},lookupNode:function lookupNode(parent,name){var err=FS.mayLookup(parent);if(err){throw new FS.ErrnoError(err,parent);}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node;}}return FS.lookup(parent,name);},createNode:function createNode(parent,name,mode,rdev){if(!FS.FSNode){FS.FSNode=function(parent,name,mode,rdev){if(!parent){parent=this;}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev;};FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:function get(){return(this.mode&readMode)===readMode;},set:function set(val){val?this.mode|=readMode:this.mode&=~readMode;}},write:{get:function get(){return(this.mode&writeMode)===writeMode;},set:function set(val){val?this.mode|=writeMode:this.mode&=~writeMode;}},isFolder:{get:function get(){return FS.isDir(this.mode);}},isDevice:{get:function get(){return FS.isChrdev(this.mode);}}});}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node;},destroyNode:function destroyNode(node){FS.hashRemoveNode(node);},isRoot:function isRoot(node){return node===node.parent;},isMountpoint:function isMountpoint(node){return!!node.mounted;},isFile:function isFile(mode){return(mode&61440)===32768;},isDir:function isDir(mode){return(mode&61440)===16384;},isLink:function isLink(mode){return(mode&61440)===40960;},isChrdev:function isChrdev(mode){return(mode&61440)===8192;},isBlkdev:function isBlkdev(mode){return(mode&61440)===24576;},isFIFO:function isFIFO(mode){return(mode&61440)===4096;},isSocket:function isSocket(mode){return(mode&49152)===49152;},flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function modeStringToFlags(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str);}return flags;},flagsToPermissionString:function flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w";}return perms;},nodePermissions:function nodePermissions(node,perms){if(FS.ignorePermissions){return 0;}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return ERRNO_CODES.EACCES;}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return ERRNO_CODES.EACCES;}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return ERRNO_CODES.EACCES;}return 0;},mayLookup:function mayLookup(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return ERRNO_CODES.EACCES;return 0;},mayCreate:function mayCreate(dir,name){try{var node=FS.lookupNode(dir,name);return ERRNO_CODES.EEXIST;}catch(e){}return FS.nodePermissions(dir,"wx");},mayDelete:function mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name);}catch(e){return e.errno;}var err=FS.nodePermissions(dir,"wx");if(err){return err;}if(isdir){if(!FS.isDir(node.mode)){return ERRNO_CODES.ENOTDIR;}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return ERRNO_CODES.EBUSY;}}else{if(FS.isDir(node.mode)){return ERRNO_CODES.EISDIR;}}return 0;},mayOpen:function mayOpen(node,flags){if(!node){return ERRNO_CODES.ENOENT;}if(FS.isLink(node.mode)){return ERRNO_CODES.ELOOP;}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return ERRNO_CODES.EISDIR;}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags));},MAX_OPEN_FDS:4096,nextfd:function nextfd(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd;}}throw new FS.ErrnoError(ERRNO_CODES.EMFILE);},getStream:function getStream(fd){return FS.streams[fd];},createStream:function createStream(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:function get(){return this.node;},set:function set(val){this.node=val;}},isRead:{get:function get(){return(this.flags&2097155)!==1;}},isWrite:{get:function get(){return(this.flags&2097155)!==0;}},isAppend:{get:function get(){return this.flags&1024;}}});}var newStream=new FS.FSStream();for(var p in stream){newStream[p]=stream[p];}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream;},closeStream:function closeStream(fd){FS.streams[fd]=null;},chrdev_stream_ops:{open:function open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream);}},llseek:function llseek(){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);}},major:function major(dev){return dev>>8;},minor:function minor(dev){return dev&255;},makedev:function makedev(ma,mi){return ma<<8|mi;},registerDevice:function registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops};},getDevice:function getDevice(dev){return FS.devices[dev];},getMounts:function getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts);}return mounts;},syncfs:function syncfs(populate,callback){if(typeof populate==="function"){callback=populate;populate=false;}FS.syncFSRequests++;if(FS.syncFSRequests>1){console.log("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(err){assert(FS.syncFSRequests>0);FS.syncFSRequests--;return callback(err);}function done(err){if(err){if(!done.errored){done.errored=true;return doCallback(err);}return;}if(++completed>=mounts.length){doCallback(null);}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null);}mount.type.syncfs(mount,populate,done);});},mount:function mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(ERRNO_CODES.EBUSY);}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY);}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot;}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount);}}return mountRoot;},unmount:function unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current);}current=next;}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1);},lookup:function lookup(parent,name){return parent.node_ops.lookup(parent,name);},mknod:function mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err);}if(!parent.node_ops.mknod){throw new FS.ErrnoError(ERRNO_CODES.EPERM);}return parent.node_ops.mknod(parent,name,mode,dev);},create:function create(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0);},mkdir:function mkdir(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0);},mkdirTree:function mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var i=0;i<dirs.length;++i){if(!dirs[i])continue;d+="/"+dirs[i];try{FS.mkdir(d,mode);}catch(e){if(e.errno!=ERRNO_CODES.EEXIST)throw e;}}},mkdev:function mkdev(path,mode,dev){if(typeof dev==="undefined"){dev=mode;mode=438;}mode|=8192;return FS.mknod(path,mode,dev);},symlink:function symlink(oldpath,newpath){if(!PATH.resolve(oldpath)){throw new FS.ErrnoError(ERRNO_CODES.ENOENT);}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(ERRNO_CODES.ENOENT);}var newname=PATH.basename(newpath);var err=FS.mayCreate(parent,newname);if(err){throw new FS.ErrnoError(err);}if(!parent.node_ops.symlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM);}return parent.node_ops.symlink(parent,newname,oldpath);},rename:function rename(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;try{lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EBUSY);}if(!old_dir||!new_dir)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(ERRNO_CODES.EXDEV);}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}relative=PATH.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);}var new_node;try{new_node=FS.lookupNode(new_dir,new_name);}catch(e){}if(old_node===new_node){return;}var isdir=FS.isDir(old_node.mode);var err=FS.mayDelete(old_dir,old_name,isdir);if(err){throw new FS.ErrnoError(err);}err=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(err){throw new FS.ErrnoError(err);}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(ERRNO_CODES.EPERM);}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY);}if(new_dir!==old_dir){err=FS.nodePermissions(old_dir,"w");if(err){throw new FS.ErrnoError(err);}}try{if(FS.trackingDelegate["willMovePath"]){FS.trackingDelegate["willMovePath"](old_path,new_path);}}catch(e){console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message);}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name);}catch(e){throw e;}finally{FS.hashAddNode(old_node);}try{if(FS.trackingDelegate["onMovePath"])FS.trackingDelegate["onMovePath"](old_path,new_path);}catch(e){console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message);}},rmdir:function rmdir(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,true);if(err){throw new FS.ErrnoError(err);}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(ERRNO_CODES.EPERM);}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY);}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path);}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message);}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path);}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message);}},readdir:function readdir(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);}return node.node_ops.readdir(node);},unlink:function unlink(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,false);if(err){throw new FS.ErrnoError(err);}if(!parent.node_ops.unlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM);}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY);}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path);}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message);}parent.node_ops.unlink(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path);}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message);}},readlink:function readlink(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(ERRNO_CODES.ENOENT);}if(!link.node_ops.readlink){throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}return PATH.resolve(FS.getPath(link.parent),link.node_ops.readlink(link));},stat:function stat(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT);}if(!node.node_ops.getattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM);}return node.node_ops.getattr(node);},lstat:function lstat(path){return FS.stat(path,true);},chmod:function chmod(path,mode,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node;}else{node=path;}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM);}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()});},lchmod:function lchmod(path,mode){FS.chmod(path,mode,true);},fchmod:function fchmod(fd,mode){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF);}FS.chmod(stream.node,mode);},chown:function chown(path,uid,gid,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node;}else{node=path;}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM);}node.node_ops.setattr(node,{timestamp:Date.now()});},lchown:function lchown(path,uid,gid){FS.chown(path,uid,gid,true);},fchown:function fchown(fd,uid,gid){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF);}FS.chown(stream.node,uid,gid);},truncate:function truncate(path,len){if(len<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;}else{node=path;}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM);}if(FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR);}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}var err=FS.nodePermissions(node,"w");if(err){throw new FS.ErrnoError(err);}node.node_ops.setattr(node,{size:len,timestamp:Date.now()});},ftruncate:function ftruncate(fd,len){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF);}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}FS.truncate(stream.node,len);},utime:function utime(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)});},open:function open(path,flags,mode,fd_start,fd_end){if(path===""){throw new FS.ErrnoError(ERRNO_CODES.ENOENT);}flags=typeof flags==="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode==="undefined"?438:mode;if(flags&64){mode=mode&4095|32768;}else{mode=0;}var node;if((typeof path==='undefined'?'undefined':_typeof(path))==="object"){node=path;}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node;}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(ERRNO_CODES.EEXIST);}}else{node=FS.mknod(path,mode,0);created=true;}}if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT);}if(FS.isChrdev(node.mode)){flags&=~512;}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);}if(!created){var err=FS.mayOpen(node,flags);if(err){throw new FS.ErrnoError(err);}}if(flags&512){FS.truncate(node,0);}flags&=~(128|512);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream);}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1;err("read file: "+path);}}try{if(FS.trackingDelegate["onOpenFile"]){var trackingFlags=0;if((flags&2097155)!==1){trackingFlags|=FS.tracking.openFlags.READ;}if((flags&2097155)!==0){trackingFlags|=FS.tracking.openFlags.WRITE;}FS.trackingDelegate["onOpenFile"](path,trackingFlags);}}catch(e){console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: "+e.message);}return stream;},close:function close(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(ERRNO_CODES.EBADF);}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream);}}catch(e){throw e;}finally{FS.closeStream(stream.fd);}stream.fd=null;},isClosed:function isClosed(stream){return stream.fd===null;},llseek:function llseek(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(ERRNO_CODES.EBADF);}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position;},read:function read(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}if(FS.isClosed(stream)){throw new FS.ErrnoError(ERRNO_CODES.EBADF);}if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EBADF);}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR);}if(!stream.stream_ops.read){throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}var seeking=typeof position!=="undefined";if(!seeking){position=stream.position;}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead;},write:function write(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}if(FS.isClosed(stream)){throw new FS.ErrnoError(ERRNO_CODES.EBADF);}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF);}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR);}if(!stream.stream_ops.write){throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}if(stream.flags&1024){FS.llseek(stream,0,2);}var seeking=typeof position!=="undefined";if(!seeking){position=stream.position;}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;try{if(stream.path&&FS.trackingDelegate["onWriteToFile"])FS.trackingDelegate["onWriteToFile"](stream.path);}catch(e){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+e.message);}return bytesWritten;},allocate:function allocate(stream,offset,length){if(FS.isClosed(stream)){throw new FS.ErrnoError(ERRNO_CODES.EBADF);}if(offset<0||length<=0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF);}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV);}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP);}stream.stream_ops.allocate(stream,offset,length);},mmap:function mmap(stream,buffer,offset,length,position,prot,flags){if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EACCES);}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(ERRNO_CODES.ENODEV);}return stream.stream_ops.mmap(stream,buffer,offset,length,position,prot,flags);},msync:function msync(stream,buffer,offset,length,mmapFlags){if(!stream||!stream.stream_ops.msync){return 0;}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags);},munmap:function munmap(stream){return 0;},ioctl:function ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(ERRNO_CODES.ENOTTY);}return stream.stream_ops.ioctl(stream,cmd,arg);},readFile:function readFile(path,opts){opts=opts||{};opts.flags=opts.flags||"r";opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"');}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0);}else if(opts.encoding==="binary"){ret=buf;}FS.close(stream);return ret;},writeFile:function writeFile(path,data,opts){opts=opts||{};opts.flags=opts.flags||"w";var stream=FS.open(path,opts.flags,opts.mode);if(typeof data==="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn);}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn);}else{throw new Error("Unsupported data type");}FS.close(stream);},cwd:function cwd(){return FS.currentPath;},chdir:function chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(ERRNO_CODES.ENOENT);}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);}var err=FS.nodePermissions(lookup.node,"x");if(err){throw new FS.ErrnoError(err);}FS.currentPath=lookup.path;},createDefaultDirectories:function createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user");},createDefaultDevices:function createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:function read(){return 0;},write:function write(stream,buffer,offset,length,pos){return length;}});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device;if(typeof crypto!=="undefined"){var randomBuffer=new Uint8Array(1);random_device=function random_device(){crypto.getRandomValues(randomBuffer);return randomBuffer[0];};}else if(ENVIRONMENT_IS_NODE){random_device=function random_device(){return require("crypto")["randomBytes"](1)[0];};}else{random_device=function random_device(){return Math.random()*256|0;};}FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp");},createSpecialDirectories:function createSpecialDirectories(){FS.mkdir("/proc");FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:function mount(){var node=FS.createNode("/proc/self","fd",16384|511,73);node.node_ops={lookup:function lookup(parent,name){var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function readlink(){return stream.path;}}};ret.parent=ret;return ret;}};return node;}},{},"/proc/self/fd");},createStandardStreams:function createStandardStreams(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"]);}else{FS.symlink("/dev/tty","/dev/stdin");}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"]);}else{FS.symlink("/dev/tty","/dev/stdout");}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"]);}else{FS.symlink("/dev/tty1","/dev/stderr");}var stdin=FS.open("/dev/stdin","r");assert(stdin.fd===0,"invalid handle for stdin ("+stdin.fd+")");var stdout=FS.open("/dev/stdout","w");assert(stdout.fd===1,"invalid handle for stdout ("+stdout.fd+")");var stderr=FS.open("/dev/stderr","w");assert(stderr.fd===2,"invalid handle for stderr ("+stderr.fd+")");},ensureErrnoError:function ensureErrnoError(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=function(errno){this.errno=errno;for(var key in ERRNO_CODES){if(ERRNO_CODES[key]===errno){this.code=key;break;}}};this.setErrno(errno);this.message=ERRNO_MESSAGES[errno];if(this.stack)Object.defineProperty(this,"stack",{value:new Error().stack,writable:true});};FS.ErrnoError.prototype=new Error();FS.ErrnoError.prototype.constructor=FS.ErrnoError;[ERRNO_CODES.ENOENT].forEach(function(code){FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack="<generic error, no stack>";});},staticInit:function staticInit(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS,"IDBFS":IDBFS,"NODEFS":NODEFS,"WORKERFS":WORKERFS};},init:function init(input,output,error){assert(!FS.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams();},quit:function quit(){FS.init.initialized=false;var fflush=Module["_fflush"];if(fflush)fflush(0);for(var i=0;i<FS.streams.length;i++){var stream=FS.streams[i];if(!stream){continue;}FS.close(stream);}},getMode:function getMode(canRead,canWrite){var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode;},joinPath:function joinPath(parts,forceRelative){var path=PATH.join.apply(null,parts);if(forceRelative&&path[0]=="/")path=path.substr(1);return path;},absolutePath:function absolutePath(relative,base){return PATH.resolve(base,relative);},standardizePath:function standardizePath(path){return PATH.normalize(path);},findObject:function findObject(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object;}else{___setErrNo(ret.error);return null;}},analyzePath:function analyzePath(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path;}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/";}catch(e){ret.error=e.errno;}return ret;},createFolder:function createFolder(parent,name,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.mkdir(path,mode);},createPath:function createPath(parent,path,canRead,canWrite){parent=typeof parent==="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current);}catch(e){}parent=current;}return current;},createFile:function createFile(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode);},createDataFile:function createDataFile(parent,name,data,canRead,canWrite,canOwn){var path=name?PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name):parent;var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i){arr[i]=data.charCodeAt(i);}data=arr;}FS.chmod(node,mode|146);var stream=FS.open(node,"w");FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode);}return node;},createDevice:function createDevice(parent,name,input,output){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:function open(stream){stream.seekable=false;},close:function close(stream){if(output&&output.buffer&&output.buffer.length){output(10);}},read:function read(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input();}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO);}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result;}if(bytesRead){stream.node.timestamp=Date.now();}return bytesRead;},write:function write(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i]);}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO);}}if(length){stream.node.timestamp=Date.now();}return i;}});return FS.mkdev(path,mode,dev);},createLink:function createLink(parent,name,target,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);return FS.symlink(target,path);},forceLoadFile:function forceLoadFile(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;var success=true;if(typeof XMLHttpRequest!=="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");}else if(Module["read"]){try{obj.contents=intArrayFromString(Module["read"](obj.url),true);obj.usedBytes=obj.contents.length;}catch(e){success=false;}}else{throw new Error("Cannot load without read() or XMLHttpRequest.");}if(!success)___setErrNo(ERRNO_CODES.EIO);return success;},createLazyFile:function createLazyFile(parent,name,url,canRead,canWrite){function LazyUint8Array(){this.lengthKnown=false;this.chunks=[];}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined;}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset];};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter;};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest();xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function doXHR(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest();xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined");}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[]);}else{return intArrayFromString(xhr.responseText||"",true);}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end);}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum];});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;console.log("LazyFiles on gzip forces download of the whole file when length is accessed");}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true;};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array();Object.defineProperties(lazyArray,{length:{get:function get(){if(!this.lengthKnown){this.cacheLength();}return this._length;}},chunkSize:{get:function get(){if(!this.lengthKnown){this.cacheLength();}return this._chunkSize;}}});var properties={isDevice:false,contents:lazyArray};}else{var properties={isDevice:false,url:url};}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents;}else if(properties.url){node.contents=null;node.url=properties.url;}Object.defineProperties(node,{usedBytes:{get:function get(){return this.contents.length;}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO);}return fn.apply(null,arguments);};});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO);}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i];}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i);}}return size;};node.stream_ops=stream_ops;return node;},createPreloadedFile:function createPreloadedFile(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){Browser.init();var fullname=name?PATH.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn);}if(onload)onload();removeRunDependency(dep);}var handled=false;Module["preloadPlugins"].forEach(function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,function(){if(onerror)onerror();removeRunDependency(dep);});handled=true;}});if(!handled)finish(byteArray);}addRunDependency(dep);if(typeof url=="string"){Browser.asyncLoad(url,function(byteArray){processData(byteArray);},onerror);}else{processData(url);}},indexedDB:function indexedDB(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;},DB_NAME:function DB_NAME(){return"EM_FS_"+window.location.pathname;},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function saveFilesToDB(paths,onload,onerror){onload=onload||function(){};onerror=onerror||function(){};var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION);}catch(e){return onerror(e);}openRequest.onupgradeneeded=function openRequest_onupgradeneeded(){console.log("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME);};openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror();}paths.forEach(function(path){var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=function putRequest_onsuccess(){ok++;if(ok+fail==total)finish();};putRequest.onerror=function putRequest_onerror(){fail++;if(ok+fail==total)finish();};});transaction.onerror=onerror;};openRequest.onerror=onerror;},loadFilesFromDB:function loadFilesFromDB(paths,onload,onerror){onload=onload||function(){};onerror=onerror||function(){};var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION);}catch(e){return onerror(e);}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly");}catch(e){onerror(e);return;}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror();}paths.forEach(function(path){var getRequest=files.get(path);getRequest.onsuccess=function getRequest_onsuccess(){if(FS.analyzePath(path).exists){FS.unlink(path);}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish();};getRequest.onerror=function getRequest_onerror(){fail++;if(ok+fail==total)finish();};});transaction.onerror=onerror;};openRequest.onerror=onerror;}};var SYSCALLS={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:function calculateAt(dirfd,path){if(path[0]!=="/"){var dir;if(dirfd===-100){dir=FS.cwd();}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);dir=dirstream.path;}path=PATH.join2(dir,path);}return path;},doStat:function doStat(func,path,buf){try{var stat=func(path);}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-ERRNO_CODES.ENOTDIR;}throw e;}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;HEAP32[buf+36>>2]=stat.size;HEAP32[buf+40>>2]=4096;HEAP32[buf+44>>2]=stat.blocks;HEAP32[buf+48>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+52>>2]=0;HEAP32[buf+56>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ino;return 0;},doMsync:function doMsync(addr,stream,len,flags){var buffer=new Uint8Array(HEAPU8.subarray(addr,addr+len));FS.msync(stream,buffer,0,len,flags);},doMkdir:function doMkdir(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0;},doMknod:function doMknod(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-ERRNO_CODES.EINVAL;}FS.mknod(path,mode,dev);return 0;},doReadlink:function doReadlink(path,buf,bufsize){if(bufsize<=0)return-ERRNO_CODES.EINVAL;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len;},doAccess:function doAccess(path,amode){if(amode&~7){return-ERRNO_CODES.EINVAL;}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-ERRNO_CODES.EACCES;}return 0;},doDup:function doDup(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd;},doReadv:function doReadv(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break;}return ret;},doWritev:function doWritev(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;}return ret;},varargs:0,get:function get(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret;},getStr:function getStr(){var ret=Pointer_stringify(SYSCALLS.get());return ret;},getStreamFromFD:function getStreamFromFD(){var stream=FS.getStream(SYSCALLS.get());if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return stream;},getSocketFromFD:function getSocketFromFD(){var socket=SOCKFS.getSocket(SYSCALLS.get());if(!socket)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return socket;},getSocketAddress:function getSocketAddress(allowNull){var addrp=SYSCALLS.get(),addrlen=SYSCALLS.get();if(allowNull&&addrp===0)return null;var info=__read_sockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info;},get64:function get64(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low;},getZero:function getZero(){assert(SYSCALLS.get()===0);}};function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0;}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno;}}function ___syscall145(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doReadv(stream,iov,iovcnt);}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno;}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doWritev(stream,iov,iovcnt);}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno;}}function ___syscall221(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),cmd=SYSCALLS.get();switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-ERRNO_CODES.EINVAL;}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd;};case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0;};case 12:case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0;};case 13:case 14:case 13:case 14:return 0;case 16:case 8:return-ERRNO_CODES.EINVAL;case 9:___setErrNo(ERRNO_CODES.EINVAL);return-1;default:{return-ERRNO_CODES.EINVAL;}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno;}}function ___syscall5(which,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(),flags=SYSCALLS.get(),mode=SYSCALLS.get();var stream=FS.open(pathname,flags,mode);return stream.fd;}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno;}}function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),op=SYSCALLS.get();switch(op){case 21509:case 21505:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0;};case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0;};case 21519:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0;};case 21520:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return-ERRNO_CODES.EINVAL;};case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp);};case 21523:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0;};case 21524:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0;};default:abort("bad ioctl syscall "+op);}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno;}}function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0;}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno;}}function ___unlock(){}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+size);}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i);}embind_charCodes=codes;}var embind_charCodes=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]];}return ret;}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown";}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name;}else{return name;}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n")(body);}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"");}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name;}else{return this.name+": "+this.message;}};return errorClass;}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message);}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message);}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes;});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count");}for(var i=0;i<myTypes.length;++i){registerType(myTypes[i],myTypeConverters[i]);}}var typeConverters=new Array(dependentTypes.length);var unregisteredTypes=[];var registered=0;dependentTypes.forEach(function(dt,i){if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt];}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[];}awaitingDependencies[dt].push(function(){typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters);}});}});if(0===unregisteredTypes.length){onComplete(typeConverters);}}function registerType(rawType,registeredInstance,options){options=options||{};if(!("argPackAdvance"in registeredInstance)){throw new TypeError("registerType registeredInstance requires argPackAdvance");}var name=registeredInstance.name;if(!rawType){throwBindingError('type "'+name+'" must have a positive integer typeid pointer');}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return;}else{throwBindingError("Cannot register type '"+name+"' twice");}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(function(cb){cb();});}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function fromWireType(wt){return!!wt;},"toWireType":function toWireType(destructors,o){return o?trueValue:falseValue;},"argPackAdvance":8,"readValueFromPointer":function readValueFromPointer(pointer){var heap;if(size===1){heap=HEAP8;}else if(size===2){heap=HEAP16;}else if(size===4){heap=HEAP32;}else{throw new TypeError("Unknown boolean type size: "+name);}return this["fromWireType"](heap[pointer>>shift]);},destructorFunction:null});}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false;}if(!(other instanceof ClassHandle)){return false;}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass;}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass;}return leftClass===rightClass&&left===right;}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType};}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name;}throwBindingError(getInstanceTypeName(obj)+" instance already deleted");}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this);}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this;}else{var clone=Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}});clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone;}}function runDestructor(handle){var $$=handle.$$;if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr);}else{$$.ptrType.registeredClass.rawDestructor($$.ptr);}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this);}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion");}this.$$.count.value-=1;var toDelete=0===this.$$.count.value;if(toDelete){runDestructor(this);}if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined;}}function ClassHandle_isDeleted(){return!this.$$.ptr;}var delayFunction=undefined;var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]();}}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this);}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion");}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes);}this.$$.deleteScheduled=true;return this;}function init_ClassHandle(){ClassHandle.prototype["isAliasOf"]=ClassHandle_isAliasOf;ClassHandle.prototype["clone"]=ClassHandle_clone;ClassHandle.prototype["delete"]=ClassHandle_delete;ClassHandle.prototype["isDeleted"]=ClassHandle_isDeleted;ClassHandle.prototype["deleteLater"]=ClassHandle_deleteLater;}function ClassHandle(){}var registeredPointers={};function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError("Function '"+humanName+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+proto[methodName].overloadTable+")!");}return proto[methodName].overloadTable[arguments.length].apply(this,arguments);};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc;}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError("Cannot register public name '"+name+"' twice");}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError("Cannot register multiple overloads of a function with the same number of arguments ("+numArguments+")!");}Module[name].overloadTable[numArguments]=value;}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments;}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[];}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError("Expected null or instance of "+desiredClass.name+", got an instance of "+ptrClass.name);}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass;}return ptr;}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name);}return 0;}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name);}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name);}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr;}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name);}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr);}return ptr;}else{return 0;}}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name);}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name);}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name);}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal");}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr;}else{throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name);}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr;}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,__emval_register(function(){clonedHandle["delete"]();}));if(destructors!==null){destructors.push(this.rawDestructor,ptr);}}break;default:throwBindingError("Unsupporting sharing policy");}}return ptr;}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name);}return 0;}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name);}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name);}if(handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+handle.$$.ptrType.name+" to parameter type "+this.name);}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr;}function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2]);}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr);}return ptr;}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr);}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle["delete"]();}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr;}if(undefined===desiredClass.baseClass){return null;}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null;}return desiredClass.downcast(rv);}function getInheritedInstanceCount(){return Object.keys(registeredInstances).length;}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k]);}}return rv;}function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes);}}function init_embind(){Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction;}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError("ptr should not be undefined");}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass;}return ptr;}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr];}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType");}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified");}record.count={value:1};return Object.create(prototype,{$$:{value:record}});}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null;}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]();}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv;}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr});}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr});}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this);}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType;}else{toType=registeredPointerRecord.pointerType;}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this);}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr});}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp});}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype["argPackAdvance"]=8;RegisteredPointer.prototype["readValueFromPointer"]=simpleReadValueFromPointer;RegisteredPointer.prototype["deleteObject"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype["fromWireType"]=RegisteredPointer_fromWireType;}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&&registeredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null;}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null;}}else{this["toWireType"]=genericPointerToWireType;}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol");}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value;}else{Module[name]=value;Module[name].argCount=numArguments;}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(dynCall){var args=[];for(var i=1;i<signature.length;++i){args.push("a"+i);}var name="dynCall_"+signature+"_"+rawFunction;var body="return function "+name+"("+args.join(", ")+") {\n";body+=" return dynCall(rawFunction"+(args.length?", ":"")+args.join(", ")+");\n";body+="};\n";return new Function("dynCall","rawFunction",body)(dynCall,rawFunction);}var fp;if(Module["FUNCTION_TABLE_"+signature]!==undefined){fp=Module["FUNCTION_TABLE_"+signature][rawFunction];}else if(typeof FUNCTION_TABLE!=="undefined"){fp=FUNCTION_TABLE[rawFunction];}else{var dc=Module["asm"]["dynCall_"+signature];if(dc===undefined){dc=Module["asm"]["dynCall_"+signature.replace(/f/g,"d")];if(dc===undefined){throwBindingError("No dynCall invoker for signature: "+signature);}}fp=makeDynCaller(dc);}if(typeof fp!=="function"){throwBindingError("unknown function pointer with signature "+signature+": "+rawFunction);}return fp;}var UnboundTypeError=undefined;function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv;}function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return;}if(registeredTypes[type]){return;}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return;}unboundTypes.push(type);seen[type]=true;}types.forEach(visit);throw new UnboundTypeError(message+": "+unboundTypes.map(getTypeName).join([", "]));}function __embind_register_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast);}if(downcast){downcast=embind__requireFunction(downcastSignature,downcast);}rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError("Cannot construct "+name+" due to unbound types",[baseClassRawType]);});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype;}else{basePrototype=ClassHandle.prototype;}var constructor=createNamedFunction(legalFunctionName,function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError("Use 'new' to construct "+name);}if(undefined===registeredClass.constructor_body){throw new BindingError(name+" has no accessible constructor");}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError("Tried to invoke ctor of "+name+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(registeredClass.constructor_body).toString()+") parameters instead!");}return body.apply(this,arguments);});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+"*",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+" const*",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter];});}function heap32VectorToArray(count,firstElement){var array=[];for(var i=0;i<count;i++){array.push(HEAP32[(firstElement>>2)+i]);}return array;}function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr);}}function __embind_register_class_constructor(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName="constructor "+classType.name;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[];}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError("Cannot register multiple constructors with identical number of parameters ("+(argCount-1)+") for class '"+classType.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");}classType.registeredClass.constructor_body[argCount-1]=function unboundTypeHandler(){throwUnboundTypeError("Cannot construct "+classType.name+" due to unbound types",rawArgTypes);};whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){classType.registeredClass.constructor_body[argCount-1]=function constructor_body(){if(arguments.length!==argCount-1){throwBindingError(humanName+" called with "+arguments.length+" arguments, expected "+(argCount-1));}var destructors=[];var args=new Array(argCount);args[0]=rawConstructor;for(var i=1;i<argCount;++i){args[i]=argTypes[i]["toWireType"](destructors,arguments[i-1]);}var ptr=invoker.apply(null,args);runDestructors(destructors);return argTypes[0]["fromWireType"](ptr);};return[];});return[];});}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+(typeof constructor==='undefined'?'undefined':_typeof(constructor))+" which is not a function");}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",function(){});dummy.prototype=constructor.prototype;var obj=new dummy();var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj;}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!");}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i<argTypes.length;++i){if(argTypes[i]!==null&&argTypes[i].destructorFunction===undefined){needsDestructorStack=true;break;}}var returns=argTypes[0].name!=="void";var argsList="";var argsListWired="";for(var i=0;i<argCount-2;++i){argsList+=(i!==0?", ":"")+"arg"+i;argsListWired+=(i!==0?", ":"")+"arg"+i+"Wired";}var invokerFnBody="return function "+makeLegalFunctionName(humanName)+"("+argsList+") {\n"+"if (arguments.length !== "+(argCount-2)+") {\n"+"throwBindingError('function "+humanName+" called with ' + arguments.length + ' arguments, expected "+(argCount-2)+" args!');\n"+"}\n";if(needsDestructorStack){invokerFnBody+="var destructors = [];\n";}var dtorStack=needsDestructorStack?"destructors":"null";var args1=["throwBindingError","invoker","fn","runDestructors","retType","classParam"];var args2=[throwBindingError,cppInvokerFunc,cppTargetFunc,runDestructors,argTypes[0],argTypes[1]];if(isClassMethodFunc){invokerFnBody+="var thisWired = classParam.toWireType("+dtorStack+", this);\n";}for(var i=0;i<argCount-2;++i){invokerFnBody+="var arg"+i+"Wired = argType"+i+".toWireType("+dtorStack+", arg"+i+"); // "+argTypes[i+2].name+"\n";args1.push("argType"+i);args2.push(argTypes[i+2]);}if(isClassMethodFunc){argsListWired="thisWired"+(argsListWired.length>0?", ":"")+argsListWired;}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n";}else{for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){var paramName=i===1?"thisWired":"arg"+(i-2)+"Wired";if(argTypes[i].destructorFunction!==null){invokerFnBody+=paramName+"_dtor("+paramName+"); // "+argTypes[i].name+"\n";args1.push(paramName+"_dtor");args2.push(argTypes[i].destructorFunction);}}}if(returns){invokerFnBody+="var ret = retType.fromWireType(rv);\n"+"return ret;\n";}else{}invokerFnBody+="}\n";args1.push(invokerFnBody);var invokerFunction=new_(Function,args1).apply(null,args2);return invokerFunction;}function __embind_register_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=classType.name+"."+methodName;if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName);}function unboundTypesHandler(){throwUnboundTypeError("Cannot call "+humanName+" due to unbound types",rawArgTypes);}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler;}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler;}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction;}else{proto[methodName].overloadTable[argCount-2]=memberFunction;}return[];});return[];});}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle);}}function count_emval_handles(){var count=0;for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){++count;}}return count;}function get_first_emval(){for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){return emval_handle_array[i];}}return null;}function init_emval(){Module["count_emval_handles"]=count_emval_handles;Module["get_first_emval"]=get_first_emval;}function __emval_register(value){switch(value){case undefined:{return 1;};case null:{return 2;};case true:{return 3;};case false:{return 4;};default:{var handle=emval_free_list.length?emval_free_list.pop():emval_handle_array.length;emval_handle_array[handle]={refcount:1,value:value};return handle;}}}function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function fromWireType(handle){var rv=emval_handle_array[handle].value;__emval_decref(handle);return rv;},"toWireType":function toWireType(destructors,value){return __emval_register(value);},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:null});}function _embind_repr(v){if(v===null){return"null";}var t=typeof v==='undefined'?'undefined':_typeof(v);if(t==="object"||t==="array"||t==="function"){return v.toString();}else{return""+v;}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2]);};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3]);};default:throw new TypeError("Unknown float type: "+name);}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function fromWireType(value){return value;},"toWireType":function toWireType(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name);}return value;},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null});}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError("Cannot call "+name+" due to unbound types",argTypes);},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn),argCount-1);return[];});}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer];}:function readU8FromPointer(pointer){return HEAPU8[pointer];};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1];}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1];};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2];}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2];};default:throw new TypeError("Unknown integer type: "+name);}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295;}var shift=getShiftFromSize(size);var fromWireType=function fromWireType(value){return value;};if(minRange===0){var bitshift=32-8*size;fromWireType=function fromWireType(value){return value<<bitshift>>>bitshift;};}var isUnsignedType=name.indexOf("unsigned")!=-1;registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":function toWireType(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name);}if(value<minRange||value>maxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!");}return isUnsignedType?value>>>0:value|0;},"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null});}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(heap["buffer"],data,size);}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true});}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function fromWireType(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var endChar=HEAPU8[value+4+length];var endCharSwap=0;if(endChar!=0){endCharSwap=endChar;HEAPU8[value+4+length]=0;}var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(HEAPU8[currentBytePtr]==0){var stringSegment=UTF8ToString(decodeStartPtr);if(str===undefined)str=stringSegment;else{str+=String.fromCharCode(0);str+=stringSegment;}decodeStartPtr=currentBytePtr+1;}}if(endCharSwap!=0)HEAPU8[value+4+length]=endCharSwap;}else{var a=new Array(length);for(var i=0;i<length;++i){a[i]=String.fromCharCode(HEAPU8[value+4+i]);}str=a.join("");}_free(value);return str;},"toWireType":function toWireType(destructors,value){if(value instanceof ArrayBuffer){value=new Uint8Array(value);}var getLength;var valueIsOfTypeString=typeof value==="string";if(!(valueIsOfTypeString||value instanceof Uint8Array||value instanceof Uint8ClampedArray||value instanceof Int8Array)){throwBindingError("Cannot pass non-string to std::string");}if(stdStringIsUTF8&&valueIsOfTypeString){getLength=function getLength(){return lengthBytesUTF8(value);};}else{getLength=function getLength(){return value.length;};}var length=getLength();var ptr=_malloc(4+length+1);HEAPU32[ptr>>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1);}else{if(valueIsOfTypeString){for(var i=0;i<length;++i){var charCode=value.charCodeAt(i);if(charCode>255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits");}HEAPU8[ptr+4+i]=charCode;}}else{for(var i=0;i<length;++i){HEAPU8[ptr+4+i]=value[i];}}}if(destructors!==null){destructors.push(_free,ptr);}return ptr;},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function destructorFunction(ptr){_free(ptr);}});}function __embind_register_std_wstring(rawType,charSize,name){name=readLatin1String(name);var getHeap,shift;if(charSize===2){getHeap=function getHeap(){return HEAPU16;};shift=1;}else if(charSize===4){getHeap=function getHeap(){return HEAPU32;};shift=2;}registerType(rawType,{name:name,"fromWireType":function fromWireType(value){var HEAP=getHeap();var length=HEAPU32[value>>2];var a=new Array(length);var start=value+4>>shift;for(var i=0;i<length;++i){a[i]=String.fromCharCode(HEAP[start+i]);}_free(value);return a.join("");},"toWireType":function toWireType(destructors,value){var HEAP=getHeap();var length=value.length;var ptr=_malloc(4+length*charSize);HEAPU32[ptr>>2]=length;var start=ptr+4>>shift;for(var i=0;i<length;++i){HEAP[start+i]=value.charCodeAt(i);}if(destructors!==null){destructors.push(_free,ptr);}return ptr;},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function destructorFunction(ptr){_free(ptr);}});}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":function fromWireType(){return undefined;},"toWireType":function toWireType(destructors,o){return undefined;}});}function requireHandle(handle){if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle);}return emval_handle_array[handle].value;}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType));}return impl;}function __emval_as(handle,returnType,destructorsRef){handle=requireHandle(handle);returnType=requireRegisteredType(returnType,"emval::as");var destructors=[];var rd=__emval_register(destructors);HEAP32[destructorsRef>>2]=rd;return returnType["toWireType"](destructors,handle);}function __emval_lookupTypes(argCount,argTypes,argWireTypes){var a=new Array(argCount);for(var i=0;i<argCount;++i){a[i]=requireRegisteredType(HEAP32[(argTypes>>2)+i],"parameter "+i);}return a;}function __emval_call(handle,argCount,argTypes,argv){handle=requireHandle(handle);var types=__emval_lookupTypes(argCount,argTypes);var args=new Array(argCount);for(var i=0;i<argCount;++i){var type=types[i];args[i]=type["readValueFromPointer"](argv);argv+=type["argPackAdvance"];}var rv=handle.apply(undefined,args);return __emval_register(rv);}function __emval_allocateDestructors(destructorsRef){var destructors=[];HEAP32[destructorsRef>>2]=__emval_register(destructors);return destructors;}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address);}else{return symbol;}}var emval_methodCallers=[];function __emval_call_void_method(caller,handle,methodName,args){caller=emval_methodCallers[caller];handle=requireHandle(handle);methodName=getStringOrSymbol(methodName);caller(handle,methodName,null,args);}function __emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id;}function __emval_get_method_caller(argCount,argTypes){var types=__emval_lookupTypes(argCount,argTypes);var retType=types[0];var signatureName=retType.name+"_$"+types.slice(1).map(function(t){return t.name;}).join("_")+"$";var params=["retType"];var args=[retType];var argsList="";for(var i=0;i<argCount-1;++i){argsList+=(i!==0?", ":"")+"arg"+i;params.push("argType"+i);args.push(types[1+i]);}var functionName=makeLegalFunctionName("methodCaller_"+signatureName);var functionBody="return function "+functionName+"(handle, name, destructors, args) {\n";var offset=0;for(var i=0;i<argCount-1;++i){functionBody+=" var arg"+i+" = argType"+i+".readValueFromPointer(args"+(offset?"+"+offset:"")+");\n";offset+=types[i+1]["argPackAdvance"];}functionBody+=" var rv = handle[name]("+argsList+");\n";for(var i=0;i<argCount-1;++i){if(types[i+1]["deleteObject"]){functionBody+=" argType"+i+".deleteObject(arg"+i+");\n";}}if(!retType.isVoid){functionBody+=" return retType.toWireType(destructors, rv);\n";}functionBody+="};\n";params.push(functionBody);var invokerFunction=new_(Function,params).apply(null,args);return __emval_addMethodCaller(invokerFunction);}function __emval_get_module_property(name){name=getStringOrSymbol(name);return __emval_register(Module[name]);}function __emval_get_property(handle,key){handle=requireHandle(handle);key=requireHandle(key);return __emval_register(handle[key]);}function __emval_incref(handle){if(handle>4){emval_handle_array[handle].refcount+=1;}}function craftEmvalAllocator(argCount){var argsList="";for(var i=0;i<argCount;++i){argsList+=(i!==0?", ":"")+"arg"+i;}var functionBody="return function emval_allocator_"+argCount+"(constructor, argTypes, args) {\n";for(var i=0;i<argCount;++i){functionBody+="var argType"+i+" = requireRegisteredType(HEAP32[(argTypes >> 2) + "+i+'], "parameter '+i+'");\n'+"var arg"+i+" = argType"+i+".readValueFromPointer(args);\n"+"args += argType"+i+"['argPackAdvance'];\n";}functionBody+="var obj = new constructor("+argsList+");\n"+"return __emval_register(obj);\n"+"}\n";return new Function("requireRegisteredType","HEAP32","__emval_register",functionBody)(requireRegisteredType,HEAP32,__emval_register);}var emval_newers={};function __emval_new(handle,argCount,argTypes,args){handle=requireHandle(handle);var newer=emval_newers[argCount];if(!newer){newer=craftEmvalAllocator(argCount);emval_newers[argCount]=newer;}return newer(handle,argTypes,args);}function __emval_new_cstring(v){return __emval_register(getStringOrSymbol(v));}function __emval_run_destructors(handle){var destructors=emval_handle_array[handle].value;runDestructors(destructors);__emval_decref(handle);}function __emval_take_value(type,argv){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](argv);return __emval_register(v);}function _abort(){Module["abort"]();}function _llvm_cttz_i64(l,h){var ret=_llvm_cttz_i32(l);if(ret==32)ret+=_llvm_cttz_i32(h);return(setTempRet0(0),ret)|0;}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest;}var PTHREAD_SPECIFIC={};function _pthread_getspecific(key){return PTHREAD_SPECIFIC[key]||0;}var PTHREAD_SPECIFIC_NEXT_KEY=1;function _pthread_key_create(key,destructor){if(key==0){return ERRNO_CODES.EINVAL;}HEAP32[key>>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0;}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Module["dynCall_v"](func);_pthread_once.seen[ptr]=1;}function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){return ERRNO_CODES.EINVAL;}PTHREAD_SPECIFIC[key]=value;return 0;}FS.staticInit();__ATINIT__.unshift(function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();});__ATMAIN__.push(function(){FS.ignorePermissions=false;});__ATEXIT__.push(function(){FS.quit();});__ATINIT__.unshift(function(){TTY.init();});__ATEXIT__.push(function(){TTY.shutdown();});if(ENVIRONMENT_IS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit();}embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");InternalError=Module["InternalError"]=extendError(Error,"InternalError");init_ClassHandle();init_RegisteredPointer();init_embind();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();DYNAMICTOP_PTR=staticAlloc(4);STACK_BASE=STACKTOP=alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;var ASSERTIONS=false;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array;}function intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){if(ASSERTIONS){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.");}chr&=255;}ret.push(String.fromCharCode(chr));}return ret.join("");}var decodeBase64=typeof atob==="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2);}if(enc4!==64){output=output+String.fromCharCode(chr3);}}while(i<input.length);return output;};function intArrayFromBase64(s){if(typeof ENVIRONMENT_IS_NODE==="boolean"&&ENVIRONMENT_IS_NODE){var buf;try{buf=Buffer.from(s,"base64");}catch(_){buf=new Buffer(s,"base64");}return new Uint8Array(buf.buffer,buf.byteOffset,buf.byteLength);}try{var decoded=decodeBase64(s);var bytes=new Uint8Array(decoded.length);for(var i=0;i<decoded.length;++i){bytes[i]=decoded.charCodeAt(i);}return bytes;}catch(_){throw new Error("Converting base64 string to bytes failed.");}}function tryParseAsDataURI(filename){if(!isDataURI(filename)){return;}return intArrayFromBase64(filename.slice(dataURIPrefix.length));}function invoke_i(index){var sp=_stackSave();try{return Module["dynCall_i"](index);}catch(e){_stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0);}}function invoke_ii(index,a1){var sp=_stackSave();try{return Module["dynCall_ii"](index,a1);}catch(e){_stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0);}}function invoke_iii(index,a1,a2){var sp=_stackSave();try{return Module["dynCall_iii"](index,a1,a2);}catch(e){_stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0);}}function invoke_iiii(index,a1,a2,a3){var sp=_stackSave();try{return Module["dynCall_iiii"](index,a1,a2,a3);}catch(e){_stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0);}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=_stackSave();try{return Module["dynCall_iiiii"](index,a1,a2,a3,a4);}catch(e){_stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0);}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=_stackSave();try{return Module["dynCall_iiiiii"](index,a1,a2,a3,a4,a5);}catch(e){_stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0);}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=_stackSave();try{return Module["dynCall_iiiiiii"](index,a1,a2,a3,a4,a5,a6);}catch(e){_stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0);}}function invoke_v(index){var sp=_stackSave();try{Module["dynCall_v"](index);}catch(e){_stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0);}}function invoke_vi(index,a1){var sp=_stackSave();try{Module["dynCall_vi"](index,a1);}catch(e){_stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0);}}function invoke_vii(index,a1,a2){var sp=_stackSave();try{Module["dynCall_vii"](index,a1,a2);}catch(e){_stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0);}}function invoke_viii(index,a1,a2,a3){var sp=_stackSave();try{Module["dynCall_viii"](index,a1,a2,a3);}catch(e){_stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0);}}function invoke_viiii(index,a1,a2,a3,a4){var sp=_stackSave();try{Module["dynCall_viiii"](index,a1,a2,a3,a4);}catch(e){_stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0);}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=_stackSave();try{Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5);}catch(e){_stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0);}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=_stackSave();try{Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6);}catch(e){_stackRestore(sp);if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0);}}Module.asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Uint32Array":Uint32Array,"Float32Array":Float32Array,"Float64Array":Float64Array,"NaN":NaN,"Infinity":Infinity};Module.asmLibraryArg={"abort":abort,"assert":assert,"enlargeMemory":enlargeMemory,"getTotalMemory":getTotalMemory,"abortOnCannotGrowMemory":abortOnCannotGrowMemory,"invoke_i":invoke_i,"invoke_ii":invoke_ii,"invoke_iii":invoke_iii,"invoke_iiii":invoke_iiii,"invoke_iiiii":invoke_iiiii,"invoke_iiiiii":invoke_iiiiii,"invoke_iiiiiii":invoke_iiiiiii,"invoke_v":invoke_v,"invoke_vi":invoke_vi,"invoke_vii":invoke_vii,"invoke_viii":invoke_viii,"invoke_viiii":invoke_viiii,"invoke_viiiii":invoke_viiiii,"invoke_viiiiii":invoke_viiiiii,"ClassHandle":ClassHandle,"ClassHandle_clone":ClassHandle_clone,"ClassHandle_delete":ClassHandle_delete,"ClassHandle_deleteLater":ClassHandle_deleteLater,"ClassHandle_isAliasOf":ClassHandle_isAliasOf,"ClassHandle_isDeleted":ClassHandle_isDeleted,"RegisteredClass":RegisteredClass,"RegisteredPointer":RegisteredPointer,"RegisteredPointer_deleteObject":RegisteredPointer_deleteObject,"RegisteredPointer_destructor":RegisteredPointer_destructor,"RegisteredPointer_fromWireType":RegisteredPointer_fromWireType,"RegisteredPointer_getPointee":RegisteredPointer_getPointee,"__ZSt18uncaught_exceptionv":__ZSt18uncaught_exceptionv,"___cxa_allocate_exception":___cxa_allocate_exception,"___cxa_begin_catch":___cxa_begin_catch,"___cxa_find_matching_catch":___cxa_find_matching_catch,"___cxa_throw":___cxa_throw,"___gxx_personality_v0":___gxx_personality_v0,"___lock":___lock,"___resumeException":___resumeException,"___setErrNo":___setErrNo,"___syscall140":___syscall140,"___syscall145":___syscall145,"___syscall146":___syscall146,"___syscall221":___syscall221,"___syscall5":___syscall5,"___syscall54":___syscall54,"___syscall6":___syscall6,"___unlock":___unlock,"__embind_register_bool":__embind_register_bool,"__embind_register_class":__embind_register_class,"__embind_register_class_constructor":__embind_register_class_constructor,"__embind_register_class_function":__embind_register_class_function,"__embind_register_emval":__embind_register_emval,"__embind_register_float":__embind_register_float,"__embind_register_function":__embind_register_function,"__embind_register_integer":__embind_register_integer,"__embind_register_memory_view":__embind_register_memory_view,"__embind_register_std_string":__embind_register_std_string,"__embind_register_std_wstring":__embind_register_std_wstring,"__embind_register_void":__embind_register_void,"__emval_addMethodCaller":__emval_addMethodCaller,"__emval_allocateDestructors":__emval_allocateDestructors,"__emval_as":__emval_as,"__emval_call":__emval_call,"__emval_call_void_method":__emval_call_void_method,"__emval_decref":__emval_decref,"__emval_get_method_caller":__emval_get_method_caller,"__emval_get_module_property":__emval_get_module_property,"__emval_get_property":__emval_get_property,"__emval_incref":__emval_incref,"__emval_lookupTypes":__emval_lookupTypes,"__emval_new":__emval_new,"__emval_new_cstring":__emval_new_cstring,"__emval_register":__emval_register,"__emval_run_destructors":__emval_run_destructors,"__emval_take_value":__emval_take_value,"_abort":_abort,"_embind_repr":_embind_repr,"_emscripten_memcpy_big":_emscripten_memcpy_big,"_llvm_cttz_i64":_llvm_cttz_i64,"_pthread_getspecific":_pthread_getspecific,"_pthread_key_create":_pthread_key_create,"_pthread_once":_pthread_once,"_pthread_setspecific":_pthread_setspecific,"constNoSmartPtrRawPointerToWireType":constNoSmartPtrRawPointerToWireType,"count_emval_handles":count_emval_handles,"craftEmvalAllocator":craftEmvalAllocator,"craftInvokerFunction":craftInvokerFunction,"createNamedFunction":createNamedFunction,"downcastPointer":downcastPointer,"embind__requireFunction":embind__requireFunction,"embind_init_charCodes":embind_init_charCodes,"ensureOverloadTable":ensureOverloadTable,"exposePublicSymbol":exposePublicSymbol,"extendError":extendError,"floatReadValueFromPointer":floatReadValueFromPointer,"flushPendingDeletes":flushPendingDeletes,"genericPointerToWireType":genericPointerToWireType,"getBasestPointer":getBasestPointer,"getInheritedInstance":getInheritedInstance,"getInheritedInstanceCount":getInheritedInstanceCount,"getLiveInheritedInstances":getLiveInheritedInstances,"getShiftFromSize":getShiftFromSize,"getStringOrSymbol":getStringOrSymbol,"getTypeName":getTypeName,"get_first_emval":get_first_emval,"heap32VectorToArray":heap32VectorToArray,"init_ClassHandle":init_ClassHandle,"init_RegisteredPointer":init_RegisteredPointer,"init_embind":init_embind,"init_emval":init_emval,"integerReadValueFromPointer":integerReadValueFromPointer,"makeClassHandle":makeClassHandle,"makeLegalFunctionName":makeLegalFunctionName,"new_":new_,"nonConstNoSmartPtrRawPointerToWireType":nonConstNoSmartPtrRawPointerToWireType,"readLatin1String":readLatin1String,"registerType":registerType,"replacePublicSymbol":replacePublicSymbol,"requireHandle":requireHandle,"requireRegisteredType":requireRegisteredType,"runDestructor":runDestructor,"runDestructors":runDestructors,"setDelayFunction":setDelayFunction,"shallowCopyInternalPointer":shallowCopyInternalPointer,"simpleReadValueFromPointer":simpleReadValueFromPointer,"throwBindingError":throwBindingError,"throwInstanceAlreadyDeleted":throwInstanceAlreadyDeleted,"throwInternalError":throwInternalError,"throwUnboundTypeError":throwUnboundTypeError,"upcastPointer":upcastPointer,"whenDependentTypesAreResolved":whenDependentTypesAreResolved,"DYNAMICTOP_PTR":DYNAMICTOP_PTR,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX};// EMSCRIPTEN_START_ASM
  23. var asm=/** @suppress {uselessCode} */function(global,env,buffer){"use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.DYNAMICTOP_PTR|0;var j=env.tempDoublePtr|0;var k=env.ABORT|0;var l=env.STACKTOP|0;var m=env.STACK_MAX|0;var n=0;var o=0;var p=0;var q=0;var r=global.NaN,s=global.Infinity;var t=0,u=0,v=0,w=0,x=0.0;var y=0;var z=global.Math.floor;var A=global.Math.abs;var B=global.Math.sqrt;var C=global.Math.pow;var D=global.Math.cos;var E=global.Math.sin;var F=global.Math.tan;var G=global.Math.acos;var H=global.Math.asin;var I=global.Math.atan;var J=global.Math.atan2;var K=global.Math.exp;var L=global.Math.log;var M=global.Math.ceil;var N=global.Math.imul;var O=global.Math.min;var P=global.Math.max;var Q=global.Math.clz32;var R=env.abort;var S=env.assert;var T=env.enlargeMemory;var U=env.getTotalMemory;var V=env.abortOnCannotGrowMemory;var W=env.invoke_i;var X=env.invoke_ii;var Y=env.invoke_iii;var Z=env.invoke_iiii;var _=env.invoke_iiiii;var $=env.invoke_iiiiii;var aa=env.invoke_iiiiiii;var ba=env.invoke_v;var ca=env.invoke_vi;var da=env.invoke_vii;var ea=env.invoke_viii;var fa=env.invoke_viiii;var ga=env.invoke_viiiii;var ha=env.invoke_viiiiii;var ia=env.ClassHandle;var ja=env.ClassHandle_clone;var ka=env.ClassHandle_delete;var la=env.ClassHandle_deleteLater;var ma=env.ClassHandle_isAliasOf;var na=env.ClassHandle_isDeleted;var oa=env.RegisteredClass;var pa=env.RegisteredPointer;var qa=env.RegisteredPointer_deleteObject;var ra=env.RegisteredPointer_destructor;var sa=env.RegisteredPointer_fromWireType;var ta=env.RegisteredPointer_getPointee;var ua=env.__ZSt18uncaught_exceptionv;var va=env.___cxa_allocate_exception;var wa=env.___cxa_begin_catch;var xa=env.___cxa_find_matching_catch;var ya=env.___cxa_throw;var za=env.___gxx_personality_v0;var Aa=env.___lock;var Ba=env.___resumeException;var Ca=env.___setErrNo;var Da=env.___syscall140;var Ea=env.___syscall145;var Fa=env.___syscall146;var Ga=env.___syscall221;var Ha=env.___syscall5;var Ia=env.___syscall54;var Ja=env.___syscall6;var Ka=env.___unlock;var La=env.__embind_register_bool;var Ma=env.__embind_register_class;var Na=env.__embind_register_class_constructor;var Oa=env.__embind_register_class_function;var Pa=env.__embind_register_emval;var Qa=env.__embind_register_float;var Ra=env.__embind_register_function;var Sa=env.__embind_register_integer;var Ta=env.__embind_register_memory_view;var Ua=env.__embind_register_std_string;var Va=env.__embind_register_std_wstring;var Wa=env.__embind_register_void;var Xa=env.__emval_addMethodCaller;var Ya=env.__emval_allocateDestructors;var Za=env.__emval_as;var _a=env.__emval_call;var $a=env.__emval_call_void_method;var ab=env.__emval_decref;var bb=env.__emval_get_method_caller;var cb=env.__emval_get_module_property;var db=env.__emval_get_property;var eb=env.__emval_incref;var fb=env.__emval_lookupTypes;var gb=env.__emval_new;var hb=env.__emval_new_cstring;var ib=env.__emval_register;var jb=env.__emval_run_destructors;var kb=env.__emval_take_value;var lb=env._abort;var mb=env._embind_repr;var nb=env._emscripten_memcpy_big;var ob=env._llvm_cttz_i64;var pb=env._pthread_getspecific;var qb=env._pthread_key_create;var rb=env._pthread_once;var sb=env._pthread_setspecific;var tb=env.constNoSmartPtrRawPointerToWireType;var ub=env.count_emval_handles;var vb=env.craftEmvalAllocator;var wb=env.craftInvokerFunction;var xb=env.createNamedFunction;var yb=env.downcastPointer;var zb=env.embind__requireFunction;var Ab=env.embind_init_charCodes;var Bb=env.ensureOverloadTable;var Cb=env.exposePublicSymbol;var Db=env.extendError;var Eb=env.floatReadValueFromPointer;var Fb=env.flushPendingDeletes;var Gb=env.genericPointerToWireType;var Hb=env.getBasestPointer;var Ib=env.getInheritedInstance;var Jb=env.getInheritedInstanceCount;var Kb=env.getLiveInheritedInstances;var Lb=env.getShiftFromSize;var Mb=env.getStringOrSymbol;var Nb=env.getTypeName;var Ob=env.get_first_emval;var Pb=env.heap32VectorToArray;var Qb=env.init_ClassHandle;var Rb=env.init_RegisteredPointer;var Sb=env.init_embind;var Tb=env.init_emval;var Ub=env.integerReadValueFromPointer;var Vb=env.makeClassHandle;var Wb=env.makeLegalFunctionName;var Xb=env.new_;var Yb=env.nonConstNoSmartPtrRawPointerToWireType;var Zb=env.readLatin1String;var _b=env.registerType;var $b=env.replacePublicSymbol;var ac=env.requireHandle;var bc=env.requireRegisteredType;var cc=env.runDestructor;var dc=env.runDestructors;var ec=env.setDelayFunction;var fc=env.shallowCopyInternalPointer;var gc=env.simpleReadValueFromPointer;var hc=env.throwBindingError;var ic=env.throwInstanceAlreadyDeleted;var jc=env.throwInternalError;var kc=env.throwUnboundTypeError;var lc=env.upcastPointer;var mc=env.whenDependentTypesAreResolved;var nc=0.0;// EMSCRIPTEN_START_FUNCS
  24. function Ds(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;g=l;l=l+32|0;h=g+12|0;i=g+8|0;j=g+4|0;k=g;m=g+17|0;n=g+16|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;if((c[k>>2]|0)>>>0<1){f=c[i>>2]|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[h>>2]=-72;o=c[h>>2]|0;l=g;return o|0;}f=(c[k>>2]|0)>>>0>=4;c[(c[i>>2]|0)+12>>2]=c[j>>2];do{if(f){c[(c[i>>2]|0)+8>>2]=(c[j>>2]|0)+(c[k>>2]|0)+-4;e=Qs(c[(c[i>>2]|0)+8>>2]|0)|0;c[c[i>>2]>>2]=e;a[m>>0]=a[(c[j>>2]|0)+((c[k>>2]|0)-1)>>0]|0;if(d[m>>0]|0|0)p=8-(Rs(d[m>>0]|0)|0)|0;else p=0;c[(c[i>>2]|0)+4>>2]=p;if(!(d[m>>0]|0)){c[h>>2]=-1;o=c[h>>2]|0;l=g;return o|0;}}else{c[(c[i>>2]|0)+8>>2]=c[(c[i>>2]|0)+12>>2];c[c[i>>2]>>2]=d[c[(c[i>>2]|0)+12>>2]>>0];switch(c[k>>2]|0){case 7:{e=c[i>>2]|0;c[e>>2]=(c[e>>2]|0)+((d[(c[j>>2]|0)+6>>0]|0)<<16);q=10;break;}case 6:{q=10;break;}case 5:{q=11;break;}case 4:{q=12;break;}case 3:{q=13;break;}case 2:{q=14;break;}default:{}}if((q|0)==10){e=c[i>>2]|0;c[e>>2]=(c[e>>2]|0)+((d[(c[j>>2]|0)+5>>0]|0)<<8);q=11;}if((q|0)==11){e=c[i>>2]|0;c[e>>2]=(c[e>>2]|0)+((d[(c[j>>2]|0)+4>>0]|0)<<0);q=12;}if((q|0)==12){e=c[i>>2]|0;c[e>>2]=(c[e>>2]|0)+((d[(c[j>>2]|0)+3>>0]|0)<<24);q=13;}if((q|0)==13){e=c[i>>2]|0;c[e>>2]=(c[e>>2]|0)+((d[(c[j>>2]|0)+2>>0]|0)<<16);q=14;}if((q|0)==14){e=c[i>>2]|0;c[e>>2]=(c[e>>2]|0)+((d[(c[j>>2]|0)+1>>0]|0)<<8);}a[n>>0]=a[(c[j>>2]|0)+((c[k>>2]|0)-1)>>0]|0;if(d[n>>0]|0|0)r=8-(Rs(d[n>>0]|0)|0)|0;else r=0;c[(c[i>>2]|0)+4>>2]=r;if(d[n>>0]|0|0){e=(c[i>>2]|0)+4|0;c[e>>2]=(c[e>>2]|0)+(4-(c[k>>2]|0)<<3);break;}c[h>>2]=-1;o=c[h>>2]|0;l=g;return o|0;}}while(0);c[h>>2]=c[k>>2];o=c[h>>2]|0;l=g;return o|0;}function Es(a,b,d){a=a|0;b=b|0;d=d|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=c[i>>2];c[k>>2]=c[j>>2];j=Ms(c[h>>2]|0,e[c[k>>2]>>1]|0)|0;c[c[g>>2]>>2]=j;Fs(c[h>>2]|0)|0;c[(c[g>>2]|0)+4>>2]=(c[i>>2]|0)+4;l=f;return;}function Fs(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+16|0;d=b+12|0;e=b+8|0;f=b+4|0;g=b;c[e>>2]=a;if((c[(c[e>>2]|0)+4>>2]|0)>>>0>32){c[d>>2]=3;h=c[d>>2]|0;l=b;return h|0;}a=c[e>>2]|0;if((c[(c[e>>2]|0)+8>>2]|0)>>>0>=((c[(c[e>>2]|0)+12>>2]|0)+4|0)>>>0){i=(c[e>>2]|0)+8|0;c[i>>2]=(c[i>>2]|0)+(0-((c[a+4>>2]|0)>>>3));i=(c[e>>2]|0)+4|0;c[i>>2]=c[i>>2]&7;i=Qs(c[(c[e>>2]|0)+8>>2]|0)|0;c[c[e>>2]>>2]=i;c[d>>2]=0;h=c[d>>2]|0;l=b;return h|0;}i=c[(c[e>>2]|0)+4>>2]|0;if((c[a+8>>2]|0)!=(c[(c[e>>2]|0)+12>>2]|0)){c[f>>2]=i>>>3;c[g>>2]=0;if(((c[(c[e>>2]|0)+8>>2]|0)+(0-(c[f>>2]|0))|0)>>>0<(c[(c[e>>2]|0)+12>>2]|0)>>>0){c[f>>2]=(c[(c[e>>2]|0)+8>>2]|0)-(c[(c[e>>2]|0)+12>>2]|0);c[g>>2]=1;}a=(c[e>>2]|0)+8|0;c[a>>2]=(c[a>>2]|0)+(0-(c[f>>2]|0));a=(c[e>>2]|0)+4|0;c[a>>2]=(c[a>>2]|0)-(c[f>>2]<<3);f=Qs(c[(c[e>>2]|0)+8>>2]|0)|0;c[c[e>>2]>>2]=f;c[d>>2]=c[g>>2];h=c[d>>2]|0;l=b;return h|0;}if(i>>>0<32){c[d>>2]=1;h=c[d>>2]|0;l=b;return h|0;}else{c[d>>2]=2;h=c[d>>2]|0;l=b;return h|0;}return 0;}function Gs(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;d=l;l=l+64|0;e=d+48|0;f=d+36|0;g=d+32|0;h=d+28|0;i=d+24|0;j=d+20|0;k=d+16|0;m=d+12|0;n=d+8|0;o=d+4|0;p=d;c[e>>2]=b;c[g>>2]=(Ls((c[e>>2]|0)+16|0)|0)&255;c[h>>2]=(Ls((c[e>>2]|0)+32|0)|0)&255;c[i>>2]=(Ls((c[e>>2]|0)+24|0)|0)&255;c[j>>2]=c[5696+(c[g>>2]<<2)>>2];c[k>>2]=c[5840+(c[h>>2]<<2)>>2];c[m>>2]=c[i>>2];c[n>>2]=(c[j>>2]|0)+(c[k>>2]|0)+(c[m>>2]|0);if(c[i>>2]|0){b=c[5088+(c[i>>2]<<2)>>2]|0;c[o>>2]=b+(Ms(c[e>>2]|0,c[m>>2]|0)|0);if(Dq()|0)Fs(c[e>>2]|0)|0;}else c[o>>2]=0;do{if((c[i>>2]|0)>>>0<=1){if((c[g>>2]|0)==0&(c[o>>2]|0)>>>0<=1|0)c[o>>2]=1-(c[o>>2]|0);m=(c[e>>2]|0)+40|0;if(!(c[o>>2]|0)){c[o>>2]=c[m>>2];break;}c[p>>2]=c[m+(c[o>>2]<<2)>>2];if((c[o>>2]|0)!=1)c[(c[e>>2]|0)+40+8>>2]=c[(c[e>>2]|0)+40+4>>2];c[(c[e>>2]|0)+40+4>>2]=c[(c[e>>2]|0)+40>>2];m=c[p>>2]|0;c[o>>2]=m;c[(c[e>>2]|0)+40>>2]=m;}else{c[(c[e>>2]|0)+40+8>>2]=c[(c[e>>2]|0)+40+4>>2];c[(c[e>>2]|0)+40+4>>2]=c[(c[e>>2]|0)+40>>2];c[(c[e>>2]|0)+40>>2]=c[o>>2];}}while(0);c[f+8>>2]=c[o>>2];o=c[5216+(c[h>>2]<<2)>>2]|0;if((c[h>>2]|0)>>>0>31)q=Ms(c[e>>2]|0,c[k>>2]|0)|0;else q=0;c[f+4>>2]=o+q;if(Dq()|0?((c[k>>2]|0)+(c[j>>2]|0)|0)>>>0>24:0)Fs(c[e>>2]|0)|0;k=c[6416+(c[g>>2]<<2)>>2]|0;if((c[g>>2]|0)>>>0>15)r=Ms(c[e>>2]|0,c[j>>2]|0)|0;else r=0;c[f>>2]=k+r;r=(Dq()|0)!=0;if(r|(c[n>>2]|0)>>>0>31)Fs(c[e>>2]|0)|0;Ns((c[e>>2]|0)+16|0,c[e>>2]|0);Ns((c[e>>2]|0)+32|0,c[e>>2]|0);if(!(Dq()|0)){s=c[e>>2]|0;t=s+24|0;u=c[e>>2]|0;Ns(t,u);c[a>>2]=c[f>>2];c[a+4>>2]=c[f+4>>2];c[a+8>>2]=c[f+8>>2];l=d;return;}Fs(c[e>>2]|0)|0;s=c[e>>2]|0;t=s+24|0;u=c[e>>2]|0;Ns(t,u);c[a>>2]=c[f>>2];c[a+4>>2]=c[f+4>>2];c[a+8>>2]=c[f+8>>2];l=d;return;}function Hs(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;k=l;l=l+64|0;m=k+60|0;n=k+56|0;o=k+52|0;p=k+48|0;q=k+44|0;r=k+40|0;s=k+36|0;t=k+32|0;u=k+28|0;v=k+24|0;w=k+20|0;x=k+16|0;y=k+12|0;z=k+8|0;A=k+4|0;B=k;c[n>>2]=b;c[o>>2]=d;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[u>>2]=(c[n>>2]|0)+(c[e>>2]|0);c[v>>2]=(c[e>>2]|0)+(c[e+4>>2]|0);c[w>>2]=(c[n>>2]|0)+(c[v>>2]|0);c[x>>2]=(c[o>>2]|0)+-8;c[y>>2]=(c[c[p>>2]>>2]|0)+(c[e>>2]|0);c[z>>2]=(c[u>>2]|0)+(0-(c[e+8>>2]|0));if(((c[u>>2]|0)>>>0>(c[x>>2]|0)>>>0?1:(c[w>>2]|0)>>>0>(c[o>>2]|0)>>>0)|0){c[m>>2]=-70;C=c[m>>2]|0;l=k;return C|0;}if((c[y>>2]|0)>>>0>(c[q>>2]|0)>>>0){c[m>>2]=-20;C=c[m>>2]|0;l=k;return C|0;}Is(c[n>>2]|0,c[c[p>>2]>>2]|0,c[e>>2]|0);c[n>>2]=c[u>>2];c[c[p>>2]>>2]=c[y>>2];do{if((c[e+8>>2]|0)>>>0>((c[u>>2]|0)-(c[r>>2]|0)|0)>>>0){if((c[e+8>>2]|0)>>>0>((c[u>>2]|0)-(c[s>>2]|0)|0)>>>0){c[m>>2]=-20;C=c[m>>2]|0;l=k;return C|0;}c[z>>2]=(c[t>>2]|0)+(0-((c[r>>2]|0)-(c[z>>2]|0)));if(((c[z>>2]|0)+(c[e+4>>2]|0)|0)>>>0<=(c[t>>2]|0)>>>0){nE(c[u>>2]|0,c[z>>2]|0,c[e+4>>2]|0)|0;c[m>>2]=c[v>>2];C=c[m>>2]|0;l=k;return C|0;}c[A>>2]=(c[t>>2]|0)-(c[z>>2]|0);nE(c[u>>2]|0,c[z>>2]|0,c[A>>2]|0)|0;c[n>>2]=(c[u>>2]|0)+(c[A>>2]|0);y=e+4|0;c[y>>2]=(c[y>>2]|0)-(c[A>>2]|0);c[z>>2]=c[r>>2];if((c[n>>2]|0)>>>0<=(c[x>>2]|0)>>>0?(c[e+4>>2]|0)>>>0>=3:0)break;while(1){if((c[n>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;y=c[z>>2]|0;c[z>>2]=y+1;p=a[y>>0]|0;y=c[n>>2]|0;c[n>>2]=y+1;a[y>>0]=p;}c[m>>2]=c[v>>2];C=c[m>>2]|0;l=k;return C|0;}}while(0);if((c[e+8>>2]|0)>>>0<8){c[B>>2]=c[6816+(c[e+8>>2]<<2)>>2];a[c[n>>2]>>0]=a[c[z>>2]>>0]|0;a[(c[n>>2]|0)+1>>0]=a[(c[z>>2]|0)+1>>0]|0;a[(c[n>>2]|0)+2>>0]=a[(c[z>>2]|0)+2>>0]|0;a[(c[n>>2]|0)+3>>0]=a[(c[z>>2]|0)+3>>0]|0;c[z>>2]=(c[z>>2]|0)+(c[6848+(c[e+8>>2]<<2)>>2]|0);Js((c[n>>2]|0)+4|0,c[z>>2]|0);c[z>>2]=(c[z>>2]|0)+(0-(c[B>>2]|0));}else Ks(c[n>>2]|0,c[z>>2]|0);c[n>>2]=(c[n>>2]|0)+8;c[z>>2]=(c[z>>2]|0)+8;B=c[n>>2]|0;a:do{if((c[w>>2]|0)>>>0>((c[o>>2]|0)+-13|0)>>>0){if(B>>>0<(c[x>>2]|0)>>>0){Is(c[n>>2]|0,c[z>>2]|0,(c[x>>2]|0)-(c[n>>2]|0)|0);c[z>>2]=(c[z>>2]|0)+((c[x>>2]|0)-(c[n>>2]|0));c[n>>2]=c[x>>2];}while(1){if((c[n>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;r=c[z>>2]|0;c[z>>2]=r+1;A=a[r>>0]|0;r=c[n>>2]|0;c[n>>2]=r+1;a[r>>0]=A;}}else Is(B,c[z>>2]|0,(c[e+4>>2]|0)-8|0);}while(0);c[m>>2]=c[v>>2];C=c[m>>2]|0;l=k;return C|0;}function Is(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[g>>2];c[j>>2]=c[f>>2];c[k>>2]=(c[j>>2]|0)+(c[h>>2]|0);do{Ks(c[j>>2]|0,c[i>>2]|0);c[j>>2]=(c[j>>2]|0)+8;c[i>>2]=(c[i>>2]|0)+8;}while((c[j>>2]|0)>>>0<(c[k>>2]|0)>>>0);l=e;return;}function Js(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[f>>2]|0;f=c[g>>2]|0;a[d>>0]=a[f>>0]|0;a[d+1>>0]=a[f+1>>0]|0;a[d+2>>0]=a[f+2>>0]|0;a[d+3>>0]=a[f+3>>0]|0;l=e;return;}function Ks(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[f>>2]|0;f=c[g>>2]|0;a[d>>0]=a[f>>0]|0;a[d+1>>0]=a[f+1>>0]|0;a[d+2>>0]=a[f+2>>0]|0;a[d+3>>0]=a[f+3>>0]|0;a[d+4>>0]=a[f+4>>0]|0;a[d+5>>0]=a[f+5>>0]|0;a[d+6>>0]=a[f+6>>0]|0;a[d+7>>0]=a[f+7>>0]|0;l=e;return;}function Ls(d){d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e;g=e+4|0;c[f>>2]=d;d=(c[(c[f>>2]|0)+4>>2]|0)+(c[c[f>>2]>>2]<<2)|0;b[g>>1]=b[d>>1]|0;b[g+2>>1]=b[d+2>>1]|0;l=e;return a[g+2>>0]|0;}function Ms(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=Os(c[e>>2]|0,c[f>>2]|0)|0;Ps(c[e>>2]|0,c[f>>2]|0);l=d;return c[g>>2]|0;}function Ns(a,f){a=a|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0;g=l;l=l+32|0;h=g+12|0;i=g+8|0;j=g+16|0;k=g+4|0;m=g;c[h>>2]=a;c[i>>2]=f;f=(c[(c[h>>2]|0)+4>>2]|0)+(c[c[h>>2]>>2]<<2)|0;b[j>>1]=b[f>>1]|0;b[j+2>>1]=b[f+2>>1]|0;c[k>>2]=d[j+3>>0];c[m>>2]=Ms(c[i>>2]|0,c[k>>2]|0)|0;c[c[h>>2]>>2]=(e[j>>1]|0)+(c[m>>2]|0);l=g;return;}function Os(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;c[e>>2]=a;c[f>>2]=b;c[d>>2]=31;l=d;return c[c[e>>2]>>2]<<(c[(c[e>>2]|0)+4>>2]&31)>>>1>>>(31-(c[f>>2]|0)&31)|0;}function Ps(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=(c[e>>2]|0)+4|0;c[b>>2]=(c[b>>2]|0)+(c[f>>2]|0);l=d;return;}function Qs(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(Dq()|0)!=0;f=c[e>>2]|0;if(a){c[d>>2]=Bq(f)|0;g=c[d>>2]|0;l=b;return g|0;}else{a=Fq(f)|0;c[d>>2]=a;g=c[d>>2]|0;l=b;return g|0;}return 0;}function Rs(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=31-(Q(c[d>>2]|0)|0)|0;l=b;return a|0;}function Ss(b,e,f,g,h,i,j,k,m){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;n=l;l=l+160|0;o=n+152|0;p=n+148|0;q=n+144|0;r=n+140|0;s=n+136|0;t=n+132|0;u=n+128|0;v=n+124|0;w=n+120|0;x=n+116|0;y=n+112|0;z=n;A=n+108|0;c[p>>2]=b;c[q>>2]=e;c[r>>2]=f;c[s>>2]=g;c[t>>2]=h;c[u>>2]=i;c[v>>2]=j;c[w>>2]=k;c[x>>2]=m;a:do{switch(c[q>>2]|0){case 1:{if(!(c[u>>2]|0)){c[o>>2]=-72;break a;}if((d[c[t>>2]>>0]|0)>>>0>(c[r>>2]|0)>>>0){c[o>>2]=-20;break a;}else{Ts(c[p>>2]|0,a[c[t>>2]>>0]|0)|0;c[o>>2]=1;break a;}break;}case 0:{Us(c[p>>2]|0,c[v>>2]|0,c[r>>2]|0,c[w>>2]|0)|0;c[o>>2]=0;break;}case 2:{if(c[x>>2]|0){c[o>>2]=0;break a;}else{c[o>>2]=-20;break a;}break;}default:{c[A>>2]=Vs(z,r,y,c[t>>2]|0,c[u>>2]|0)|0;if(hr(c[A>>2]|0)|0){c[o>>2]=-20;break a;}if((c[y>>2]|0)>>>0>(c[s>>2]|0)>>>0){c[o>>2]=-20;break a;}else{Us(c[p>>2]|0,z,c[r>>2]|0,c[y>>2]|0)|0;c[o>>2]=c[A>>2];break a;}}}}while(0);l=n;return c[o>>2]|0;}function Ts(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+16|0;h=f+20|0;i=f+12|0;j=f+8|0;k=f+4|0;m=f;c[g>>2]=d;a[h>>0]=e;c[i>>2]=c[g>>2];c[j>>2]=c[i>>2];c[k>>2]=(c[g>>2]|0)+4;c[m>>2]=c[k>>2];b[c[j>>2]>>1]=0;b[(c[j>>2]|0)+2>>1]=0;b[c[m>>2]>>1]=0;a[(c[m>>2]|0)+2>>0]=a[h>>0]|0;a[(c[m>>2]|0)+3>>0]=0;l=f;return 0;}function Us(f,g,h,i){f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;j=l;l=l+592|0;k=j+576|0;m=j+572|0;n=j+568|0;o=j+564|0;p=j+560|0;q=j+556|0;r=j+552|0;s=j;t=j+548|0;u=j+544|0;v=j+540|0;w=j+584|0;x=j+582|0;y=j+536|0;z=j+532|0;A=j+528|0;B=j+524|0;C=j+520|0;D=j+516|0;E=j+512|0;F=j+588|0;G=j+580|0;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;c[p>>2]=i;c[q>>2]=(c[m>>2]|0)+4;c[r>>2]=c[q>>2];c[t>>2]=(c[o>>2]|0)+1;c[u>>2]=1<<c[p>>2];c[v>>2]=(c[u>>2]|0)-1;if((c[o>>2]|0)>>>0>255){c[k>>2]=-46;H=c[k>>2]|0;l=j;return H|0;}if((c[p>>2]|0)>>>0>12){c[k>>2]=-44;H=c[k>>2]|0;l=j;return H|0;}b[w>>1]=c[p>>2];b[w+2>>1]=1;b[x>>1]=1<<(c[p>>2]|0)-1;c[y>>2]=0;while(1){if((c[y>>2]|0)>>>0>=(c[t>>2]|0)>>>0)break;if((b[(c[n>>2]|0)+(c[y>>2]<<1)>>1]|0)==-1){o=c[y>>2]&255;q=c[r>>2]|0;i=c[v>>2]|0;c[v>>2]=i+-1;a[q+(i<<2)+2>>0]=o;b[s+(c[y>>2]<<1)>>1]=1;}else{if((b[(c[n>>2]|0)+(c[y>>2]<<1)>>1]|0)>=(b[x>>1]|0))b[w+2>>1]=0;b[s+(c[y>>2]<<1)>>1]=b[(c[n>>2]|0)+(c[y>>2]<<1)>>1]|0;}c[y>>2]=(c[y>>2]|0)+1;}y=c[m>>2]|0;b[y>>1]=b[w>>1]|0;b[y+2>>1]=b[w+2>>1]|0;c[z>>2]=(c[u>>2]|0)-1;c[A>>2]=((c[u>>2]|0)>>>1)+((c[u>>2]|0)>>>3)+3;c[C>>2]=0;c[B>>2]=0;while(1){if((c[B>>2]|0)>>>0>=(c[t>>2]|0)>>>0)break;c[D>>2]=0;while(1){I=c[B>>2]|0;if((c[D>>2]|0)>=(b[(c[n>>2]|0)+(c[B>>2]<<1)>>1]|0))break;a[(c[r>>2]|0)+(c[C>>2]<<2)+2>>0]=I;c[C>>2]=(c[C>>2]|0)+(c[A>>2]|0)&c[z>>2];while(1){if((c[C>>2]|0)>>>0<=(c[v>>2]|0)>>>0)break;c[C>>2]=(c[C>>2]|0)+(c[A>>2]|0)&c[z>>2];}c[D>>2]=(c[D>>2]|0)+1;}c[B>>2]=I+1;}if(c[C>>2]|0){c[k>>2]=-1;H=c[k>>2]|0;l=j;return H|0;}c[E>>2]=0;while(1){if((c[E>>2]|0)>>>0>=(c[u>>2]|0)>>>0)break;a[F>>0]=a[(c[r>>2]|0)+(c[E>>2]<<2)+2>>0]|0;C=s+(d[F>>0]<<1)|0;I=b[C>>1]|0;b[C>>1]=I+1<<16>>16;b[G>>1]=I;I=c[p>>2]|0;C=I-(Rs(e[G>>1]|0)|0)&255;a[(c[r>>2]|0)+(c[E>>2]<<2)+3>>0]=C;b[(c[r>>2]|0)+(c[E>>2]<<2)>>1]=(e[G>>1]<<d[(c[r>>2]|0)+(c[E>>2]<<2)+3>>0])-(c[u>>2]|0);c[E>>2]=(c[E>>2]|0)+1;}c[k>>2]=0;H=c[k>>2]|0;l=j;return H|0;}function Vs(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;h=l;l=l+80|0;i=h+64|0;j=h+60|0;k=h+56|0;m=h+52|0;n=h+48|0;o=h+44|0;p=h+40|0;q=h+36|0;r=h+32|0;s=h+28|0;t=h+24|0;u=h+20|0;v=h+16|0;w=h+12|0;x=h+8|0;y=h+4|0;z=h;A=h+70|0;B=h+68|0;c[j>>2]=a;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=c[n>>2];c[q>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[r>>2]=c[p>>2];c[x>>2]=0;c[y>>2]=0;if((c[o>>2]|0)>>>0<4){c[i>>2]=-72;C=c[i>>2]|0;l=h;return C|0;}c[v>>2]=Bq(c[r>>2]|0)|0;c[s>>2]=(c[v>>2]&15)+5;if((c[s>>2]|0)>15){c[i>>2]=-44;C=c[i>>2]|0;l=h;return C|0;}c[v>>2]=(c[v>>2]|0)>>>4;c[w>>2]=4;c[c[m>>2]>>2]=c[s>>2];c[t>>2]=(1<<c[s>>2])+1;c[u>>2]=1<<c[s>>2];c[s>>2]=(c[s>>2]|0)+1;a:while(1){if((c[t>>2]|0)<=1)break;if((c[x>>2]|0)>>>0>(c[c[k>>2]>>2]|0)>>>0)break;do{if(c[y>>2]|0){c[z>>2]=c[x>>2];while(1){if((c[v>>2]&65535|0)!=65535)break;c[z>>2]=(c[z>>2]|0)+24;if((c[r>>2]|0)>>>0<((c[q>>2]|0)+-5|0)>>>0){c[r>>2]=(c[r>>2]|0)+2;m=Bq(c[r>>2]|0)|0;c[v>>2]=m>>>(c[w>>2]|0);}else{c[v>>2]=(c[v>>2]|0)>>>16;c[w>>2]=(c[w>>2]|0)+16;}}while(1){if((c[v>>2]&3|0)!=3)break;c[z>>2]=(c[z>>2]|0)+3;c[v>>2]=(c[v>>2]|0)>>>2;c[w>>2]=(c[w>>2]|0)+2;}c[z>>2]=(c[z>>2]|0)+(c[v>>2]&3);c[w>>2]=(c[w>>2]|0)+2;if((c[z>>2]|0)>>>0>(c[c[k>>2]>>2]|0)>>>0){D=19;break a;}while(1){if((c[x>>2]|0)>>>0>=(c[z>>2]|0)>>>0)break;m=c[j>>2]|0;n=c[x>>2]|0;c[x>>2]=n+1;b[m+(n<<1)>>1]=0;}if((c[r>>2]|0)>>>0>((c[q>>2]|0)+-7|0)>>>0?((c[r>>2]|0)+(c[w>>2]>>3)|0)>>>0>((c[q>>2]|0)+-4|0)>>>0:0){c[v>>2]=(c[v>>2]|0)>>>2;break;}c[r>>2]=(c[r>>2]|0)+(c[w>>2]>>3);c[w>>2]=c[w>>2]&7;n=Bq(c[r>>2]|0)|0;c[v>>2]=n>>>(c[w>>2]|0);}}while(0);b[A>>1]=(c[u>>2]<<1)-1-(c[t>>2]|0);n=c[v>>2]|0;m=c[u>>2]|0;if((c[v>>2]&(c[u>>2]|0)-1)>>>0<(b[A>>1]|0)>>>0){b[B>>1]=n&m-1;c[w>>2]=(c[w>>2]|0)+((c[s>>2]|0)-1);}else{b[B>>1]=n&(m<<1)-1;if((b[B>>1]|0)>=(c[u>>2]|0))b[B>>1]=(b[B>>1]|0)-(b[A>>1]|0);c[w>>2]=(c[w>>2]|0)+(c[s>>2]|0);}b[B>>1]=(b[B>>1]|0)+-1<<16>>16;m=(Ws(b[B>>1]|0)|0)<<16>>16;c[t>>2]=(c[t>>2]|0)-m;m=b[B>>1]|0;n=c[j>>2]|0;g=c[x>>2]|0;c[x>>2]=g+1;b[n+(g<<1)>>1]=m;c[y>>2]=((b[B>>1]|0)!=0^1)&1;while(1){if((c[t>>2]|0)>=(c[u>>2]|0))break;c[s>>2]=(c[s>>2]|0)+-1;c[u>>2]=c[u>>2]>>1;}if((c[r>>2]|0)>>>0>((c[q>>2]|0)+-7|0)>>>0?((c[r>>2]|0)+(c[w>>2]>>3)|0)>>>0>((c[q>>2]|0)+-4|0)>>>0:0){c[w>>2]=(c[w>>2]|0)-((c[q>>2]|0)+-4-(c[r>>2]|0)<<3);c[r>>2]=(c[q>>2]|0)+-4;}else{c[r>>2]=(c[r>>2]|0)+(c[w>>2]>>3);c[w>>2]=c[w>>2]&7;}m=Bq(c[r>>2]|0)|0;c[v>>2]=m>>>(c[w>>2]&31);}if((D|0)==19){c[i>>2]=-48;C=c[i>>2]|0;l=h;return C|0;}if((c[t>>2]|0)!=1){c[i>>2]=-1;C=c[i>>2]|0;l=h;return C|0;}c[c[k>>2]>>2]=(c[x>>2]|0)-1;c[r>>2]=(c[r>>2]|0)+((c[w>>2]|0)+7>>3);if(((c[r>>2]|0)-(c[p>>2]|0)|0)>>>0>(c[o>>2]|0)>>>0){c[i>>2]=-72;C=c[i>>2]|0;l=h;return C|0;}else{c[i>>2]=(c[r>>2]|0)-(c[p>>2]|0);C=c[i>>2]|0;l=h;return C|0;}return 0;}function Ws(a){a=a|0;var c=0,d=0;c=l;l=l+16|0;d=c;b[d>>1]=a;a=b[d>>1]|0;l=c;return((b[d>>1]|0)<0?0-a|0:a)&65535|0;}function Xs(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;g=l;l=l+32|0;h=g+28|0;i=g+24|0;j=g+20|0;k=g+16|0;m=g+12|0;n=g+8|0;o=g+4|0;p=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=c[m>>2];c[p>>2]=kt(c[i>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;m=(at(c[p>>2]|0)|0)!=0;f=c[p>>2]|0;if(m){c[h>>2]=f;q=c[h>>2]|0;l=g;return q|0;}if(f>>>0>=(c[n>>2]|0)>>>0){c[h>>2]=-72;q=c[h>>2]|0;l=g;return q|0;}else{c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[n>>2]=(c[n>>2]|0)-(c[p>>2]|0);c[h>>2]=Bt(c[j>>2]|0,c[k>>2]|0,c[o>>2]|0,c[n>>2]|0,c[i>>2]|0)|0;q=c[h>>2]|0;l=g;return q|0;}return 0;}function Ys(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;g=l;l=l+32|0;h=g+24|0;i=g+20|0;j=g+16|0;k=g+12|0;m=g+8|0;n=g+4|0;o=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;if(!(c[k>>2]|0)){c[h>>2]=-70;p=c[h>>2]|0;l=g;return p|0;}if((c[n>>2]|0)>>>0<=1?1:(c[n>>2]|0)>>>0>=(c[k>>2]|0)>>>0){c[h>>2]=-20;p=c[h>>2]|0;l=g;return p|0;}c[o>>2]=ht(c[k>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;i=c[j>>2]|0;j=c[k>>2]|0;k=c[m>>2]|0;m=c[n>>2]|0;if(c[o>>2]|0)q=it(f,i,j,k,m)|0;else q=jt(f,i,j,k,m)|0;c[h>>2]=q;p=c[h>>2]|0;l=g;return p|0;}function Zs(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;h=l;l=l+32|0;i=h+20|0;j=h+16|0;k=h+12|0;m=h+8|0;n=h+4|0;o=h;p=h+24|0;c[j>>2]=a;c[k>>2]=b;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;_s(p,c[o>>2]|0);if((d[p+1>>0]|0|0)!=1){c[i>>2]=-1;q=c[i>>2]|0;l=h;return q|0;}else{c[i>>2]=$s(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;q=c[i>>2]|0;l=h;return q|0;}return 0;}function _s(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e;g=e+4|0;c[f>>2]=d;d=c[f>>2]|0;a[g>>0]=a[d>>0]|0;a[g+1>>0]=a[d+1>>0]|0;a[g+2>>0]=a[d+2>>0]|0;a[g+3>>0]=a[d+3>>0]|0;a[b>>0]=a[g>>0]|0;a[b+1>>0]=a[g+1>>0]|0;a[b+2>>0]=a[g+2>>0]|0;a[b+3>>0]=a[g+3>>0]|0;l=e;return;}function $s(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;h=l;l=l+80|0;i=h+60|0;j=h+56|0;k=h+52|0;m=h+48|0;n=h+44|0;o=h+40|0;p=h+24|0;q=h+16|0;r=h+12|0;s=h+8|0;t=h+4|0;u=h;v=h+64|0;c[j>>2]=a;c[k>>2]=b;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[q>>2]=Ds(p,c[m>>2]|0,c[n>>2]|0)|0;if(at(c[q>>2]|0)|0){c[i>>2]=c[q>>2];w=c[i>>2]|0;l=h;return w|0;}c[r>>2]=c[j>>2];c[s>>2]=(c[r>>2]|0)+(c[k>>2]|0);c[t>>2]=(c[o>>2]|0)+4;c[u>>2]=c[t>>2];_s(v,c[o>>2]|0);bt(c[r>>2]|0,p,c[s>>2]|0,c[u>>2]|0,d[v+2>>0]|0)|0;if(ct(p)|0){c[i>>2]=c[k>>2];w=c[i>>2]|0;l=h;return w|0;}else{c[i>>2]=-20;w=c[i>>2]|0;l=h;return w|0;}return 0;}function at(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=hr(c[d>>2]|0)|0;l=b;return a|0;}function bt(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=l;l=l+32|0;h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;m=g+4|0;n=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=c[h>>2];while(1){if(Fs(c[i>>2]|0)|0)break;if((c[h>>2]|0)>>>0>=((c[j>>2]|0)+-7|0)>>>0)break;if(dt()|0){f=et(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}dt()|0;f=et(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;if(dt()|0){f=et(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}f=et(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}while(1){if(Fs(c[i>>2]|0)|0)break;if((c[h>>2]|0)>>>0>((c[j>>2]|0)+-2|0)>>>0)break;f=et(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}while(1){o=c[h>>2]|0;if((c[h>>2]|0)>>>0>((c[j>>2]|0)+-2|0)>>>0)break;f=et(o,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}if(o>>>0>=(c[j>>2]|0)>>>0){p=c[h>>2]|0;q=c[n>>2]|0;r=p;s=q;t=r-s|0;l=g;return t|0;}j=ft(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+j;p=c[h>>2]|0;q=c[n>>2]|0;r=p;s=q;t=r-s|0;l=g;return t|0;}function ct(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b;c[d>>2]=a;if((c[(c[d>>2]|0)+8>>2]|0)!=(c[(c[d>>2]|0)+12>>2]|0)){e=0;f=e&1;l=b;return f|0;}e=(c[(c[d>>2]|0)+4>>2]|0)==32;f=e&1;l=b;return f|0;}function dt(){return 0;}function et(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0;h=l;l=l+32|0;i=h+16|0;j=h+12|0;k=h+8|0;m=h+4|0;n=h;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=g;c[n>>2]=gt(c[j>>2]|0,c[m>>2]|0)|0;m=c[i>>2]|0;i=(c[k>>2]|0)+(c[n>>2]<<2)|0;a[m>>0]=a[i>>0]|0;a[m+1>>0]=a[i+1>>0]|0;Ps(c[j>>2]|0,d[(c[k>>2]|0)+(c[n>>2]<<2)+2>>0]|0);l=h;return d[(c[k>>2]|0)+(c[n>>2]<<2)+3>>0]|0|0;}function ft(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0;h=l;l=l+32|0;i=h+16|0;j=h+12|0;k=h+8|0;m=h+4|0;n=h;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=g;c[n>>2]=gt(c[j>>2]|0,c[m>>2]|0)|0;a[c[i>>2]>>0]=a[(c[k>>2]|0)+(c[n>>2]<<2)>>0]|0;i=c[j>>2]|0;if((d[(c[k>>2]|0)+(c[n>>2]<<2)+3>>0]|0|0)==1){Ps(i,d[(c[k>>2]|0)+(c[n>>2]<<2)+2>>0]|0);l=h;return 1;}if((c[i+4>>2]|0)>>>0>=32){l=h;return 1;}Ps(c[j>>2]|0,d[(c[k>>2]|0)+(c[n>>2]<<2)+2>>0]|0);if((c[(c[j>>2]|0)+4>>2]|0)>>>0<=32){l=h;return 1;}c[(c[j>>2]|0)+4>>2]=32;l=h;return 1;}function gt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;c[e>>2]=a;c[f>>2]=b;c[d>>2]=31;l=d;return c[c[e>>2]>>2]<<(c[(c[e>>2]|0)+4>>2]&31)>>>(32-(c[f>>2]|0)&31)|0;}function ht(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=l;l=l+32|0;e=d+20|0;f=d+16|0;g=d+12|0;h=d+8|0;i=d+4|0;j=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=(c[f>>2]<<4>>>0)/((c[e>>2]|0)>>>0)|0;c[h>>2]=(c[e>>2]|0)>>>8;c[i>>2]=(c[7008+((c[g>>2]|0)*24|0)>>2]|0)+(N(c[7008+((c[g>>2]|0)*24|0)+4>>2]|0,c[h>>2]|0)|0);c[j>>2]=(c[7008+((c[g>>2]|0)*24|0)+8>>2]|0)+(N(c[7008+((c[g>>2]|0)*24|0)+8+4>>2]|0,c[h>>2]|0)|0);c[j>>2]=(c[j>>2]|0)+((c[j>>2]|0)>>>3);l=d;return(c[j>>2]|0)>>>0<(c[i>>2]|0)>>>0|0;}function it(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;g=l;l=l+32|0;h=g+28|0;i=g+24|0;j=g+20|0;k=g+16|0;m=g+12|0;n=g+8|0;o=g+4|0;p=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=c[m>>2];c[p>>2]=vt(c[i>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;m=(at(c[p>>2]|0)|0)!=0;f=c[p>>2]|0;if(m){c[h>>2]=f;q=c[h>>2]|0;l=g;return q|0;}if(f>>>0>=(c[n>>2]|0)>>>0){c[h>>2]=-72;q=c[h>>2]|0;l=g;return q|0;}else{c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[n>>2]=(c[n>>2]|0)-(c[p>>2]|0);c[h>>2]=wt(c[j>>2]|0,c[k>>2]|0,c[o>>2]|0,c[n>>2]|0,c[i>>2]|0)|0;q=c[h>>2]|0;l=g;return q|0;}return 0;}function jt(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;g=l;l=l+32|0;h=g+28|0;i=g+24|0;j=g+20|0;k=g+16|0;m=g+12|0;n=g+8|0;o=g+4|0;p=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=c[m>>2];c[p>>2]=kt(c[i>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;m=(at(c[p>>2]|0)|0)!=0;f=c[p>>2]|0;if(m){c[h>>2]=f;q=c[h>>2]|0;l=g;return q|0;}if(f>>>0>=(c[n>>2]|0)>>>0){c[h>>2]=-72;q=c[h>>2]|0;l=g;return q|0;}else{c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[n>>2]=(c[n>>2]|0)-(c[p>>2]|0);c[h>>2]=lt(c[j>>2]|0,c[k>>2]|0,c[o>>2]|0,c[n>>2]|0,c[i>>2]|0)|0;q=c[h>>2]|0;l=g;return q|0;}return 0;}function kt(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;g=l;l=l+416|0;h=g+396|0;i=g+392|0;j=g+388|0;k=g+384|0;m=g+80|0;n=g;o=g+380|0;p=g+376|0;q=g+372|0;r=g+368|0;s=g+364|0;t=g+404|0;u=g+360|0;v=g+356|0;w=g+352|0;x=g+348|0;y=g+344|0;z=g+340|0;A=g+336|0;B=g+400|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[o>>2]=0;c[p>>2]=0;c[r>>2]=(c[i>>2]|0)+4;c[s>>2]=c[r>>2];c[q>>2]=ot(m,256,n,p,o,c[j>>2]|0,c[k>>2]|0)|0;if(at(c[q>>2]|0)|0){c[h>>2]=c[q>>2];C=c[h>>2]|0;l=g;return C|0;}_s(t,c[i>>2]|0);if((c[o>>2]|0)>>>0>((d[t>>0]|0)+1|0)>>>0){c[h>>2]=-44;C=c[h>>2]|0;l=g;return C|0;}a[t+1>>0]=0;a[t+2>>0]=c[o>>2];k=c[i>>2]|0;a[k>>0]=a[t>>0]|0;a[k+1>>0]=a[t+1>>0]|0;a[k+2>>0]=a[t+2>>0]|0;a[k+3>>0]=a[t+3>>0]|0;c[v>>2]=0;c[u>>2]=1;while(1){if((c[u>>2]|0)>>>0>=((c[o>>2]|0)+1|0)>>>0)break;c[w>>2]=c[v>>2];c[v>>2]=(c[v>>2]|0)+(c[n+(c[u>>2]<<2)>>2]<<(c[u>>2]|0)-1);c[n+(c[u>>2]<<2)>>2]=c[w>>2];c[u>>2]=(c[u>>2]|0)+1;}c[x>>2]=0;while(1){if((c[x>>2]|0)>>>0>=(c[p>>2]|0)>>>0)break;c[y>>2]=d[m+(c[x>>2]|0)>>0];c[z>>2]=1<<c[y>>2]>>1;a[B>>0]=c[x>>2];a[B+1>>0]=(c[o>>2]|0)+1-(c[y>>2]|0);c[A>>2]=c[n+(c[y>>2]<<2)>>2];while(1){if((c[A>>2]|0)>>>0>=((c[n+(c[y>>2]<<2)>>2]|0)+(c[z>>2]|0)|0)>>>0)break;u=(c[s>>2]|0)+(c[A>>2]<<1)|0;a[u>>0]=a[B>>0]|0;a[u+1>>0]=a[B+1>>0]|0;c[A>>2]=(c[A>>2]|0)+1;}u=n+(c[y>>2]<<2)|0;c[u>>2]=(c[u>>2]|0)+(c[z>>2]|0);c[x>>2]=(c[x>>2]|0)+1;}c[h>>2]=c[q>>2];C=c[h>>2]|0;l=g;return C|0;}function lt(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;i=l;l=l+208|0;j=i+192|0;k=i+188|0;m=i+184|0;n=i+180|0;o=i+176|0;p=i+172|0;q=i+168|0;r=i+164|0;s=i+160|0;t=i+156|0;u=i+152|0;v=i+136|0;w=i+120|0;x=i+104|0;y=i+88|0;z=i+84|0;A=i+80|0;B=i+76|0;C=i+72|0;D=i+68|0;E=i+64|0;F=i+60|0;G=i+56|0;H=i+52|0;I=i+48|0;J=i+44|0;K=i+40|0;L=i+36|0;M=i+32|0;N=i+28|0;O=i+24|0;P=i+20|0;Q=i+196|0;R=i+16|0;S=i+12|0;T=i+8|0;U=i+4|0;V=i;c[k>>2]=b;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;if((c[o>>2]|0)>>>0<10){c[j>>2]=-20;W=c[j>>2]|0;l=i;return W|0;}c[q>>2]=c[n>>2];c[r>>2]=c[k>>2];c[s>>2]=(c[r>>2]|0)+(c[m>>2]|0);c[t>>2]=(c[p>>2]|0)+4;c[u>>2]=c[t>>2];c[z>>2]=(Eq(c[q>>2]|0)|0)&65535;c[A>>2]=(Eq((c[q>>2]|0)+2|0)|0)&65535;c[B>>2]=(Eq((c[q>>2]|0)+4|0)|0)&65535;c[C>>2]=(c[o>>2]|0)-((c[z>>2]|0)+(c[A>>2]|0)+(c[B>>2]|0)+6);c[D>>2]=(c[q>>2]|0)+6;c[E>>2]=(c[D>>2]|0)+(c[z>>2]|0);c[F>>2]=(c[E>>2]|0)+(c[A>>2]|0);c[G>>2]=(c[F>>2]|0)+(c[B>>2]|0);c[H>>2]=(((c[m>>2]|0)+3|0)>>>0)/4|0;c[I>>2]=(c[r>>2]|0)+(c[H>>2]|0);c[J>>2]=(c[I>>2]|0)+(c[H>>2]|0);c[K>>2]=(c[J>>2]|0)+(c[H>>2]|0);c[L>>2]=c[r>>2];c[M>>2]=c[I>>2];c[N>>2]=c[J>>2];c[O>>2]=c[K>>2];_s(Q,c[p>>2]|0);c[R>>2]=d[Q+2>>0];if((c[C>>2]|0)>>>0>(c[o>>2]|0)>>>0){c[j>>2]=-20;W=c[j>>2]|0;l=i;return W|0;}c[S>>2]=Ds(v,c[D>>2]|0,c[z>>2]|0)|0;if(at(c[S>>2]|0)|0){c[j>>2]=c[S>>2];W=c[j>>2]|0;l=i;return W|0;}c[T>>2]=Ds(w,c[E>>2]|0,c[A>>2]|0)|0;if(at(c[T>>2]|0)|0){c[j>>2]=c[T>>2];W=c[j>>2]|0;l=i;return W|0;}c[U>>2]=Ds(x,c[F>>2]|0,c[B>>2]|0)|0;if(at(c[U>>2]|0)|0){c[j>>2]=c[U>>2];W=c[j>>2]|0;l=i;return W|0;}c[V>>2]=Ds(y,c[G>>2]|0,c[C>>2]|0)|0;if(at(c[V>>2]|0)|0){c[j>>2]=c[V>>2];W=c[j>>2]|0;l=i;return W|0;}V=Fs(v)|0;C=V|(Fs(w)|0);V=C|(Fs(x)|0);c[P>>2]=V|(Fs(y)|0);while(1){if(c[P>>2]|0)break;if((c[O>>2]|0)>>>0>=((c[s>>2]|0)+-7|0)>>>0)break;if(dt()|0){V=mt(v,c[u>>2]|0,c[R>>2]|0)|0;C=c[L>>2]|0;c[L>>2]=C+1;a[C>>0]=V;}if(dt()|0){V=mt(w,c[u>>2]|0,c[R>>2]|0)|0;C=c[M>>2]|0;c[M>>2]=C+1;a[C>>0]=V;}if(dt()|0){V=mt(x,c[u>>2]|0,c[R>>2]|0)|0;C=c[N>>2]|0;c[N>>2]=C+1;a[C>>0]=V;}if(dt()|0){V=mt(y,c[u>>2]|0,c[R>>2]|0)|0;C=c[O>>2]|0;c[O>>2]=C+1;a[C>>0]=V;}dt()|0;V=mt(v,c[u>>2]|0,c[R>>2]|0)|0;C=c[L>>2]|0;c[L>>2]=C+1;a[C>>0]=V;dt()|0;V=mt(w,c[u>>2]|0,c[R>>2]|0)|0;C=c[M>>2]|0;c[M>>2]=C+1;a[C>>0]=V;dt()|0;V=mt(x,c[u>>2]|0,c[R>>2]|0)|0;C=c[N>>2]|0;c[N>>2]=C+1;a[C>>0]=V;dt()|0;V=mt(y,c[u>>2]|0,c[R>>2]|0)|0;C=c[O>>2]|0;c[O>>2]=C+1;a[C>>0]=V;if(dt()|0){V=mt(v,c[u>>2]|0,c[R>>2]|0)|0;C=c[L>>2]|0;c[L>>2]=C+1;a[C>>0]=V;}if(dt()|0){V=mt(w,c[u>>2]|0,c[R>>2]|0)|0;C=c[M>>2]|0;c[M>>2]=C+1;a[C>>0]=V;}if(dt()|0){V=mt(x,c[u>>2]|0,c[R>>2]|0)|0;C=c[N>>2]|0;c[N>>2]=C+1;a[C>>0]=V;}if(dt()|0){V=mt(y,c[u>>2]|0,c[R>>2]|0)|0;C=c[O>>2]|0;c[O>>2]=C+1;a[C>>0]=V;}V=mt(v,c[u>>2]|0,c[R>>2]|0)|0;C=c[L>>2]|0;c[L>>2]=C+1;a[C>>0]=V;V=mt(w,c[u>>2]|0,c[R>>2]|0)|0;C=c[M>>2]|0;c[M>>2]=C+1;a[C>>0]=V;V=mt(x,c[u>>2]|0,c[R>>2]|0)|0;C=c[N>>2]|0;c[N>>2]=C+1;a[C>>0]=V;V=mt(y,c[u>>2]|0,c[R>>2]|0)|0;C=c[O>>2]|0;c[O>>2]=C+1;a[C>>0]=V;V=Fs(v)|0;C=V|(Fs(w)|0);V=C|(Fs(x)|0);c[P>>2]=V|(Fs(y)|0);}if((c[L>>2]|0)>>>0>(c[I>>2]|0)>>>0){c[j>>2]=-20;W=c[j>>2]|0;l=i;return W|0;}if((c[M>>2]|0)>>>0>(c[J>>2]|0)>>>0){c[j>>2]=-20;W=c[j>>2]|0;l=i;return W|0;}if((c[N>>2]|0)>>>0>(c[K>>2]|0)>>>0){c[j>>2]=-20;W=c[j>>2]|0;l=i;return W|0;}nt(c[L>>2]|0,v,c[I>>2]|0,c[u>>2]|0,c[R>>2]|0)|0;nt(c[M>>2]|0,w,c[J>>2]|0,c[u>>2]|0,c[R>>2]|0)|0;nt(c[N>>2]|0,x,c[K>>2]|0,c[u>>2]|0,c[R>>2]|0)|0;nt(c[O>>2]|0,y,c[s>>2]|0,c[u>>2]|0,c[R>>2]|0)|0;R=ct(v)|0;v=R&(ct(w)|0);w=v&(ct(x)|0);c[P>>2]=w&(ct(y)|0);if(c[P>>2]|0){c[j>>2]=c[m>>2];W=c[j>>2]|0;l=i;return W|0;}else{c[j>>2]=-20;W=c[j>>2]|0;l=i;return W|0;}return 0;}function mt(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0;g=l;l=l+32|0;h=g+12|0;i=g+8|0;j=g+4|0;k=g;m=g+16|0;c[h>>2]=b;c[i>>2]=e;c[j>>2]=f;c[k>>2]=gt(c[h>>2]|0,c[j>>2]|0)|0;a[m>>0]=a[(c[i>>2]|0)+(c[k>>2]<<1)>>0]|0;Ps(c[h>>2]|0,d[(c[i>>2]|0)+(c[k>>2]<<1)+1>>0]|0);l=g;return a[m>>0]|0;}function nt(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+20|0;j=h+16|0;k=h+12|0;m=h+8|0;n=h+4|0;o=h;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=c[i>>2];while(1){if(Fs(c[j>>2]|0)|0)break;if((c[i>>2]|0)>>>0>((c[k>>2]|0)+-4|0)>>>0)break;if(dt()|0){g=mt(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}dt()|0;g=mt(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;if(dt()|0){g=mt(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}g=mt(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}while(1){if(Fs(c[j>>2]|0)|0)break;if((c[i>>2]|0)>>>0>=(c[k>>2]|0)>>>0)break;g=mt(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}while(1){if((c[i>>2]|0)>>>0>=(c[k>>2]|0)>>>0)break;g=mt(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}l=h;return(c[k>>2]|0)-(c[o>>2]|0)|0;}function ot(b,e,f,g,h,i,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;k=l;l=l+80|0;m=k+72|0;n=k+68|0;o=k+64|0;p=k+60|0;q=k+56|0;r=k+52|0;s=k+48|0;t=k+44|0;u=k+40|0;v=k+36|0;w=k+32|0;x=k+28|0;y=k+24|0;z=k+20|0;A=k+16|0;B=k+12|0;C=k+8|0;D=k+4|0;E=k;c[n>>2]=b;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[v>>2]=c[s>>2];if(!(c[t>>2]|0)){c[m>>2]=-72;F=c[m>>2]|0;l=k;return F|0;}c[w>>2]=d[c[v>>2]>>0];s=c[w>>2]|0;a:do{if((c[w>>2]|0)>>>0<128){if((s+1|0)>>>0>(c[t>>2]|0)>>>0){c[m>>2]=-72;F=c[m>>2]|0;l=k;return F|0;}c[x>>2]=pt(c[n>>2]|0,(c[o>>2]|0)-1|0,(c[v>>2]|0)+1|0,c[w>>2]|0)|0;if(qt(c[x>>2]|0)|0){c[m>>2]=c[x>>2];F=c[m>>2]|0;l=k;return F|0;}}else{j=c[w>>2]|0;if(s>>>0>=242){c[x>>2]=c[7392+(j-242<<2)>>2];oE(c[n>>2]|0,1,c[o>>2]|0)|0;c[w>>2]=0;break;}c[x>>2]=j-127;c[w>>2]=(((c[x>>2]|0)+1|0)>>>0)/2|0;if(((c[w>>2]|0)+1|0)>>>0>(c[t>>2]|0)>>>0){c[m>>2]=-72;F=c[m>>2]|0;l=k;return F|0;}if((c[x>>2]|0)>>>0>=(c[o>>2]|0)>>>0){c[m>>2]=-20;F=c[m>>2]|0;l=k;return F|0;}c[v>>2]=(c[v>>2]|0)+1;c[y>>2]=0;while(1){if((c[y>>2]|0)>>>0>=(c[x>>2]|0)>>>0)break a;a[(c[n>>2]|0)+(c[y>>2]|0)>>0]=(d[(c[v>>2]|0)+(((c[y>>2]|0)>>>0)/2|0)>>0]|0)>>4;a[(c[n>>2]|0)+((c[y>>2]|0)+1)>>0]=(d[(c[v>>2]|0)+(((c[y>>2]|0)>>>0)/2|0)>>0]|0)&15;c[y>>2]=(c[y>>2]|0)+2;}}}while(0);y=c[p>>2]|0;v=y+68|0;do{c[y>>2]=0;y=y+4|0;}while((y|0)<(v|0));c[u>>2]=0;c[z>>2]=0;while(1){if((c[z>>2]|0)>>>0>=(c[x>>2]|0)>>>0)break;if((d[(c[n>>2]|0)+(c[z>>2]|0)>>0]|0|0)>=16){G=20;break;}y=(c[p>>2]|0)+((d[(c[n>>2]|0)+(c[z>>2]|0)>>0]|0)<<2)|0;c[y>>2]=(c[y>>2]|0)+1;c[u>>2]=(c[u>>2]|0)+(1<<(d[(c[n>>2]|0)+(c[z>>2]|0)>>0]|0)>>1);c[z>>2]=(c[z>>2]|0)+1;}if((G|0)==20){c[m>>2]=-20;F=c[m>>2]|0;l=k;return F|0;}if(!(c[u>>2]|0)){c[m>>2]=-20;F=c[m>>2]|0;l=k;return F|0;}c[A>>2]=(Rs(c[u>>2]|0)|0)+1;if((c[A>>2]|0)>>>0>16){c[m>>2]=-20;F=c[m>>2]|0;l=k;return F|0;}c[c[r>>2]>>2]=c[A>>2];c[B>>2]=1<<c[A>>2];c[C>>2]=(c[B>>2]|0)-(c[u>>2]|0);c[D>>2]=1<<(Rs(c[C>>2]|0)|0);c[E>>2]=(Rs(c[C>>2]|0)|0)+1;if((c[D>>2]|0)!=(c[C>>2]|0)){c[m>>2]=-20;F=c[m>>2]|0;l=k;return F|0;}a[(c[n>>2]|0)+(c[x>>2]|0)>>0]=c[E>>2];n=(c[p>>2]|0)+(c[E>>2]<<2)|0;c[n>>2]=(c[n>>2]|0)+1;if((c[(c[p>>2]|0)+4>>2]|0)>>>0>=2?(c[(c[p>>2]|0)+4>>2]&1|0)==0:0){c[c[q>>2]>>2]=(c[x>>2]|0)+1;c[m>>2]=(c[w>>2]|0)+1;F=c[m>>2]|0;l=k;return F|0;}c[m>>2]=-20;F=c[m>>2]|0;l=k;return F|0;}function pt(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;f=l;l=l+16960|0;g=f+16952|0;h=f+16948|0;i=f+16944|0;j=f+16940|0;k=f+16936|0;m=f+16932|0;n=f+16928|0;o=f+16400|0;p=f;q=f+16924|0;r=f+16920|0;s=f+16916|0;t=f+16912|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=c[j>>2];c[n>>2]=c[m>>2];c[r>>2]=255;if((c[k>>2]|0)>>>0<2){c[g>>2]=-72;u=c[g>>2]|0;l=f;return u|0;}c[s>>2]=Vs(o,r,q,c[m>>2]|0,c[k>>2]|0)|0;m=(hr(c[s>>2]|0)|0)!=0;j=c[s>>2]|0;if(m){c[g>>2]=j;u=c[g>>2]|0;l=f;return u|0;}if(j>>>0>=(c[k>>2]|0)>>>0){c[g>>2]=-72;u=c[g>>2]|0;l=f;return u|0;}c[n>>2]=(c[n>>2]|0)+(c[s>>2]|0);c[k>>2]=(c[k>>2]|0)-(c[s>>2]|0);c[t>>2]=Us(p,o,c[r>>2]|0,c[q>>2]|0)|0;if(hr(c[t>>2]|0)|0){c[g>>2]=c[t>>2];u=c[g>>2]|0;l=f;return u|0;}else{c[g>>2]=rt(c[h>>2]|0,c[i>>2]|0,c[n>>2]|0,c[k>>2]|0,p)|0;u=c[g>>2]|0;l=f;return u|0;}return 0;}function qt(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=hr(c[d>>2]|0)|0;l=b;return a|0;}function rt(b,d,f,g,h){b=b|0;d=d|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0;i=l;l=l+208|0;j=i+192|0;k=i+188|0;m=i+184|0;n=i+180|0;o=i+176|0;p=i+172|0;q=i+168|0;r=i+164|0;s=i+160|0;t=i+156|0;u=i+152|0;v=i+136|0;w=i+128|0;x=i+120|0;y=i+116|0;z=i+112|0;A=i+108|0;B=i+104|0;C=i+100|0;D=i+96|0;E=i+92|0;F=i+88|0;G=i+84|0;H=i+80|0;I=i+76|0;J=i+72|0;K=i+56|0;L=i+48|0;M=i+40|0;N=i+36|0;O=i+32|0;P=i+28|0;Q=i+24|0;R=i+20|0;S=i+16|0;T=i+12|0;U=i+8|0;V=i+4|0;W=i;c[P>>2]=b;c[Q>>2]=d;c[R>>2]=f;c[S>>2]=g;c[T>>2]=h;c[U>>2]=c[T>>2];c[V>>2]=c[U>>2];c[W>>2]=e[(c[V>>2]|0)+2>>1];V=c[P>>2]|0;P=c[Q>>2]|0;Q=c[R>>2]|0;R=c[S>>2]|0;S=c[T>>2]|0;if(c[W>>2]|0){c[A>>2]=V;c[B>>2]=P;c[C>>2]=Q;c[D>>2]=R;c[E>>2]=S;c[F>>2]=1;c[G>>2]=c[A>>2];c[H>>2]=c[G>>2];c[I>>2]=(c[H>>2]|0)+(c[B>>2]|0);c[J>>2]=(c[I>>2]|0)+-3;c[N>>2]=Ds(K,c[C>>2]|0,c[D>>2]|0)|0;do{if(hr(c[N>>2]|0)|0)c[z>>2]=c[N>>2];else{Es(L,K,c[E>>2]|0);Es(M,K,c[E>>2]|0);while(1){if(Fs(K)|0)break;if((c[H>>2]|0)>>>0>=(c[J>>2]|0)>>>0)break;if(c[F>>2]|0)X=(st(L,K)|0)&255;else X=(tt(L,K)|0)&255;a[c[H>>2]>>0]=X;if(c[F>>2]|0)Y=(st(M,K)|0)&255;else Y=(tt(M,K)|0)&255;a[(c[H>>2]|0)+1>>0]=Y;if((Fs(K)|0)>>>0>0){Z=14;break;}if(c[F>>2]|0)_=(st(L,K)|0)&255;else _=(tt(L,K)|0)&255;a[(c[H>>2]|0)+2>>0]=_;if(c[F>>2]|0)$=(st(M,K)|0)&255;else $=(tt(M,K)|0)&255;a[(c[H>>2]|0)+3>>0]=$;c[H>>2]=(c[H>>2]|0)+4;}if((Z|0)==14)c[H>>2]=(c[H>>2]|0)+2;while(1){if((c[H>>2]|0)>>>0>((c[I>>2]|0)+-2|0)>>>0){Z=24;break;}if(c[F>>2]|0)aa=(st(L,K)|0)&255;else aa=(tt(L,K)|0)&255;D=c[H>>2]|0;c[H>>2]=D+1;a[D>>0]=aa;if((Fs(K)|0)==3){Z=29;break;}if((c[H>>2]|0)>>>0>((c[I>>2]|0)+-2|0)>>>0){Z=34;break;}if(c[F>>2]|0)ba=(st(M,K)|0)&255;else ba=(tt(M,K)|0)&255;D=c[H>>2]|0;c[H>>2]=D+1;a[D>>0]=ba;if((Fs(K)|0)==3){Z=39;break;}}if((Z|0)==24){c[z>>2]=-70;break;}else if((Z|0)==29){if(c[F>>2]|0)ca=(st(M,K)|0)&255;else ca=(tt(M,K)|0)&255;D=c[H>>2]|0;c[H>>2]=D+1;a[D>>0]=ca;}else if((Z|0)==34){c[z>>2]=-70;break;}else if((Z|0)==39){if(c[F>>2]|0)da=(st(L,K)|0)&255;else da=(tt(L,K)|0)&255;D=c[H>>2]|0;c[H>>2]=D+1;a[D>>0]=da;}c[z>>2]=(c[H>>2]|0)-(c[G>>2]|0);}}while(0);c[O>>2]=c[z>>2];ea=c[O>>2]|0;l=i;return ea|0;}else{c[k>>2]=V;c[m>>2]=P;c[n>>2]=Q;c[o>>2]=R;c[p>>2]=S;c[q>>2]=0;c[r>>2]=c[k>>2];c[s>>2]=c[r>>2];c[t>>2]=(c[s>>2]|0)+(c[m>>2]|0);c[u>>2]=(c[t>>2]|0)+-3;c[y>>2]=Ds(v,c[n>>2]|0,c[o>>2]|0)|0;do{if(hr(c[y>>2]|0)|0)c[j>>2]=c[y>>2];else{Es(w,v,c[p>>2]|0);Es(x,v,c[p>>2]|0);while(1){if(Fs(v)|0)break;if((c[s>>2]|0)>>>0>=(c[u>>2]|0)>>>0)break;if(c[q>>2]|0)fa=(st(w,v)|0)&255;else fa=(tt(w,v)|0)&255;a[c[s>>2]>>0]=fa;if(c[q>>2]|0)ga=(st(x,v)|0)&255;else ga=(tt(x,v)|0)&255;a[(c[s>>2]|0)+1>>0]=ga;if((Fs(v)|0)>>>0>0){Z=58;break;}if(c[q>>2]|0)ha=(st(w,v)|0)&255;else ha=(tt(w,v)|0)&255;a[(c[s>>2]|0)+2>>0]=ha;if(c[q>>2]|0)ia=(st(x,v)|0)&255;else ia=(tt(x,v)|0)&255;a[(c[s>>2]|0)+3>>0]=ia;c[s>>2]=(c[s>>2]|0)+4;}if((Z|0)==58)c[s>>2]=(c[s>>2]|0)+2;while(1){if((c[s>>2]|0)>>>0>((c[t>>2]|0)+-2|0)>>>0){Z=68;break;}if(c[q>>2]|0)ja=(st(w,v)|0)&255;else ja=(tt(w,v)|0)&255;o=c[s>>2]|0;c[s>>2]=o+1;a[o>>0]=ja;if((Fs(v)|0)==3){Z=73;break;}if((c[s>>2]|0)>>>0>((c[t>>2]|0)+-2|0)>>>0){Z=78;break;}if(c[q>>2]|0)ka=(st(x,v)|0)&255;else ka=(tt(x,v)|0)&255;o=c[s>>2]|0;c[s>>2]=o+1;a[o>>0]=ka;if((Fs(v)|0)==3){Z=83;break;}}if((Z|0)==68){c[j>>2]=-70;break;}else if((Z|0)==73){if(c[q>>2]|0)la=(st(x,v)|0)&255;else la=(tt(x,v)|0)&255;o=c[s>>2]|0;c[s>>2]=o+1;a[o>>0]=la;}else if((Z|0)==78){c[j>>2]=-70;break;}else if((Z|0)==83){if(c[q>>2]|0)ma=(st(w,v)|0)&255;else ma=(tt(w,v)|0)&255;o=c[s>>2]|0;c[s>>2]=o+1;a[o>>0]=ma;}c[j>>2]=(c[s>>2]|0)-(c[r>>2]|0);}}while(0);c[O>>2]=c[j>>2];ea=c[O>>2]|0;l=i;return ea|0;}return 0;}function st(f,g){f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+12|0;j=h+8|0;k=h+16|0;m=h+4|0;n=h+20|0;o=h;c[i>>2]=f;c[j>>2]=g;g=(c[(c[i>>2]|0)+4>>2]|0)+(c[c[i>>2]>>2]<<2)|0;b[k>>1]=b[g>>1]|0;b[k+2>>1]=b[g+2>>1]|0;c[m>>2]=d[k+3>>0];a[n>>0]=a[k+2>>0]|0;c[o>>2]=ut(c[j>>2]|0,c[m>>2]|0)|0;c[c[i>>2]>>2]=(e[k>>1]|0)+(c[o>>2]|0);l=h;return a[n>>0]|0;}function tt(f,g){f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+12|0;j=h+8|0;k=h+16|0;m=h+4|0;n=h+20|0;o=h;c[i>>2]=f;c[j>>2]=g;g=(c[(c[i>>2]|0)+4>>2]|0)+(c[c[i>>2]>>2]<<2)|0;b[k>>1]=b[g>>1]|0;b[k+2>>1]=b[g+2>>1]|0;c[m>>2]=d[k+3>>0];a[n>>0]=a[k+2>>0]|0;c[o>>2]=Ms(c[j>>2]|0,c[m>>2]|0)|0;c[c[i>>2]>>2]=(e[k>>1]|0)+(c[o>>2]|0);l=h;return a[n>>0]|0;}function ut(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=gt(c[e>>2]|0,c[f>>2]|0)|0;Ps(c[e>>2]|0,c[f>>2]|0);l=d;return c[g>>2]|0;}function vt(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0;g=l;l=l+2144|0;h=g+2124|0;i=g+2120|0;j=g+2116|0;k=g+2112|0;m=g+1760|0;n=g+1248|0;o=g+1168|0;p=g+1088|0;q=g+2108|0;r=g;s=g+2104|0;t=g+2100|0;u=g+2096|0;v=g+2092|0;w=g+2128|0;x=g+2088|0;y=g+2084|0;z=g+2080|0;A=g+2076|0;B=g+2072|0;C=g+2068|0;D=g+2064|0;E=g+2060|0;F=g+2056|0;G=g+2052|0;H=g+2048|0;I=g+2044|0;J=g+2040|0;K=g+2036|0;L=g+2032|0;M=g+2028|0;N=g+2024|0;O=g+2020|0;P=g+2016|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;f=o;e=f+68|0;do{c[f>>2]=0;f=f+4|0;}while((f|0)<(e|0));f=p;e=f+72|0;do{c[f>>2]=0;f=f+4|0;}while((f|0)<(e|0));c[q>>2]=p+4;_s(w,c[i>>2]|0);c[x>>2]=d[w>>0];c[z>>2]=(c[i>>2]|0)+4;c[A>>2]=c[z>>2];if((c[x>>2]|0)>>>0>16){c[h>>2]=-44;Q=c[h>>2]|0;l=g;return Q|0;}c[y>>2]=ot(m,256,o,v,s,c[j>>2]|0,c[k>>2]|0)|0;if(at(c[y>>2]|0)|0){c[h>>2]=c[y>>2];Q=c[h>>2]|0;l=g;return Q|0;}if((c[s>>2]|0)>>>0>(c[x>>2]|0)>>>0){c[h>>2]=-44;Q=c[h>>2]|0;l=g;return Q|0;}c[t>>2]=c[s>>2];while(1){if(c[o+(c[t>>2]<<2)>>2]|0)break;c[t>>2]=(c[t>>2]|0)+-1;}c[C>>2]=0;c[B>>2]=1;while(1){R=c[C>>2]|0;if((c[B>>2]|0)>>>0>=((c[t>>2]|0)+1|0)>>>0)break;c[D>>2]=R;c[C>>2]=(c[C>>2]|0)+(c[o+(c[B>>2]<<2)>>2]|0);c[(c[q>>2]|0)+(c[B>>2]<<2)>>2]=c[D>>2];c[B>>2]=(c[B>>2]|0)+1;}c[c[q>>2]>>2]=R;c[u>>2]=c[C>>2];c[E>>2]=0;while(1){if((c[E>>2]|0)>>>0>=(c[v>>2]|0)>>>0)break;c[F>>2]=d[m+(c[E>>2]|0)>>0];C=(c[q>>2]|0)+(c[F>>2]<<2)|0;R=c[C>>2]|0;c[C>>2]=R+1;c[G>>2]=R;a[n+(c[G>>2]<<1)>>0]=c[E>>2];a[n+(c[G>>2]<<1)+1>>0]=c[F>>2];c[E>>2]=(c[E>>2]|0)+1;}c[c[q>>2]>>2]=0;c[H>>2]=r;c[I>>2]=(c[x>>2]|0)-(c[s>>2]|0)-1;c[J>>2]=0;c[K>>2]=1;while(1){if((c[K>>2]|0)>>>0>=((c[t>>2]|0)+1|0)>>>0)break;c[L>>2]=c[J>>2];c[J>>2]=(c[J>>2]|0)+(c[o+(c[K>>2]<<2)>>2]<<(c[K>>2]|0)+(c[I>>2]|0));c[(c[H>>2]|0)+(c[K>>2]<<2)>>2]=c[L>>2];c[K>>2]=(c[K>>2]|0)+1;}c[M>>2]=(c[s>>2]|0)+1-(c[t>>2]|0);c[N>>2]=c[M>>2];while(1){if((c[N>>2]|0)>>>0>=((c[x>>2]|0)-(c[M>>2]|0)+1|0)>>>0)break;c[O>>2]=r+((c[N>>2]|0)*68|0);c[P>>2]=1;while(1){if((c[P>>2]|0)>>>0>=((c[t>>2]|0)+1|0)>>>0)break;c[(c[O>>2]|0)+(c[P>>2]<<2)>>2]=(c[(c[H>>2]|0)+(c[P>>2]<<2)>>2]|0)>>>(c[N>>2]|0);c[P>>2]=(c[P>>2]|0)+1;}c[N>>2]=(c[N>>2]|0)+1;}xt(c[A>>2]|0,c[x>>2]|0,n,c[u>>2]|0,p,r,c[t>>2]|0,(c[s>>2]|0)+1|0);a[w+2>>0]=c[x>>2];a[w+1>>0]=1;x=c[i>>2]|0;a[x>>0]=a[w>>0]|0;a[x+1>>0]=a[w+1>>0]|0;a[x+2>>0]=a[w+2>>0]|0;a[x+3>>0]=a[w+3>>0]|0;c[h>>2]=c[y>>2];Q=c[h>>2]|0;l=g;return Q|0;}function wt(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;h=l;l=l+208|0;i=h+200|0;j=h+196|0;k=h+192|0;m=h+188|0;n=h+184|0;o=h+180|0;p=h+176|0;q=h+172|0;r=h+168|0;s=h+164|0;t=h+160|0;u=h+144|0;v=h+128|0;w=h+112|0;x=h+96|0;y=h+88|0;z=h+84|0;A=h+80|0;B=h+76|0;C=h+72|0;D=h+68|0;E=h+64|0;F=h+60|0;G=h+56|0;H=h+52|0;I=h+48|0;J=h+44|0;K=h+40|0;L=h+36|0;M=h+32|0;N=h+28|0;O=h+24|0;P=h+204|0;Q=h+20|0;R=h+16|0;S=h+12|0;T=h+8|0;U=h+4|0;V=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;if((c[n>>2]|0)>>>0<10){c[i>>2]=-20;W=c[i>>2]|0;l=h;return W|0;}c[p>>2]=c[m>>2];c[q>>2]=c[j>>2];c[r>>2]=(c[q>>2]|0)+(c[k>>2]|0);c[s>>2]=(c[o>>2]|0)+4;c[t>>2]=c[s>>2];c[y>>2]=(Eq(c[p>>2]|0)|0)&65535;c[z>>2]=(Eq((c[p>>2]|0)+2|0)|0)&65535;c[A>>2]=(Eq((c[p>>2]|0)+4|0)|0)&65535;c[B>>2]=(c[n>>2]|0)-((c[y>>2]|0)+(c[z>>2]|0)+(c[A>>2]|0)+6);c[C>>2]=(c[p>>2]|0)+6;c[D>>2]=(c[C>>2]|0)+(c[y>>2]|0);c[E>>2]=(c[D>>2]|0)+(c[z>>2]|0);c[F>>2]=(c[E>>2]|0)+(c[A>>2]|0);c[G>>2]=(((c[k>>2]|0)+3|0)>>>0)/4|0;c[H>>2]=(c[q>>2]|0)+(c[G>>2]|0);c[I>>2]=(c[H>>2]|0)+(c[G>>2]|0);c[J>>2]=(c[I>>2]|0)+(c[G>>2]|0);c[K>>2]=c[q>>2];c[L>>2]=c[H>>2];c[M>>2]=c[I>>2];c[N>>2]=c[J>>2];_s(P,c[o>>2]|0);c[Q>>2]=d[P+2>>0];if((c[B>>2]|0)>>>0>(c[n>>2]|0)>>>0){c[i>>2]=-20;W=c[i>>2]|0;l=h;return W|0;}c[R>>2]=Ds(u,c[C>>2]|0,c[y>>2]|0)|0;if(at(c[R>>2]|0)|0){c[i>>2]=c[R>>2];W=c[i>>2]|0;l=h;return W|0;}c[S>>2]=Ds(v,c[D>>2]|0,c[z>>2]|0)|0;if(at(c[S>>2]|0)|0){c[i>>2]=c[S>>2];W=c[i>>2]|0;l=h;return W|0;}c[T>>2]=Ds(w,c[E>>2]|0,c[A>>2]|0)|0;if(at(c[T>>2]|0)|0){c[i>>2]=c[T>>2];W=c[i>>2]|0;l=h;return W|0;}c[U>>2]=Ds(x,c[F>>2]|0,c[B>>2]|0)|0;if(at(c[U>>2]|0)|0){c[i>>2]=c[U>>2];W=c[i>>2]|0;l=h;return W|0;}U=Fs(u)|0;B=U|(Fs(v)|0);U=B|(Fs(w)|0);c[O>>2]=U|(Fs(x)|0);while(1){if(c[O>>2]|0)break;if((c[N>>2]|0)>>>0>=((c[r>>2]|0)+-7|0)>>>0)break;if(dt()|0){U=et(c[K>>2]|0,u,c[t>>2]|0,c[Q>>2]|0)|0;c[K>>2]=(c[K>>2]|0)+U;}if(dt()|0){U=et(c[L>>2]|0,v,c[t>>2]|0,c[Q>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+U;}if(dt()|0){U=et(c[M>>2]|0,w,c[t>>2]|0,c[Q>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+U;}if(dt()|0){U=et(c[N>>2]|0,x,c[t>>2]|0,c[Q>>2]|0)|0;c[N>>2]=(c[N>>2]|0)+U;}dt()|0;U=et(c[K>>2]|0,u,c[t>>2]|0,c[Q>>2]|0)|0;c[K>>2]=(c[K>>2]|0)+U;dt()|0;U=et(c[L>>2]|0,v,c[t>>2]|0,c[Q>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+U;dt()|0;U=et(c[M>>2]|0,w,c[t>>2]|0,c[Q>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+U;dt()|0;U=et(c[N>>2]|0,x,c[t>>2]|0,c[Q>>2]|0)|0;c[N>>2]=(c[N>>2]|0)+U;if(dt()|0){U=et(c[K>>2]|0,u,c[t>>2]|0,c[Q>>2]|0)|0;c[K>>2]=(c[K>>2]|0)+U;}if(dt()|0){U=et(c[L>>2]|0,v,c[t>>2]|0,c[Q>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+U;}if(dt()|0){U=et(c[M>>2]|0,w,c[t>>2]|0,c[Q>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+U;}if(dt()|0){U=et(c[N>>2]|0,x,c[t>>2]|0,c[Q>>2]|0)|0;c[N>>2]=(c[N>>2]|0)+U;}U=et(c[K>>2]|0,u,c[t>>2]|0,c[Q>>2]|0)|0;c[K>>2]=(c[K>>2]|0)+U;U=et(c[L>>2]|0,v,c[t>>2]|0,c[Q>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+U;U=et(c[M>>2]|0,w,c[t>>2]|0,c[Q>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+U;U=et(c[N>>2]|0,x,c[t>>2]|0,c[Q>>2]|0)|0;c[N>>2]=(c[N>>2]|0)+U;U=Fs(u)|0;B=U|(Fs(v)|0);U=B|(Fs(w)|0);c[O>>2]=U|(Fs(x)|0);}if((c[K>>2]|0)>>>0>(c[H>>2]|0)>>>0){c[i>>2]=-20;W=c[i>>2]|0;l=h;return W|0;}if((c[L>>2]|0)>>>0>(c[I>>2]|0)>>>0){c[i>>2]=-20;W=c[i>>2]|0;l=h;return W|0;}if((c[M>>2]|0)>>>0>(c[J>>2]|0)>>>0){c[i>>2]=-20;W=c[i>>2]|0;l=h;return W|0;}bt(c[K>>2]|0,u,c[H>>2]|0,c[t>>2]|0,c[Q>>2]|0)|0;bt(c[L>>2]|0,v,c[I>>2]|0,c[t>>2]|0,c[Q>>2]|0)|0;bt(c[M>>2]|0,w,c[J>>2]|0,c[t>>2]|0,c[Q>>2]|0)|0;bt(c[N>>2]|0,x,c[r>>2]|0,c[t>>2]|0,c[Q>>2]|0)|0;Q=ct(u)|0;u=Q&(ct(v)|0);v=u&(ct(w)|0);c[V>>2]=v&(ct(x)|0);if(c[V>>2]|0){c[i>>2]=c[k>>2];W=c[i>>2]|0;l=h;return W|0;}else{c[i>>2]=-20;W=c[i>>2]|0;l=h;return W|0;}return 0;}function xt(e,f,g,h,i,j,k,m){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;n=l;l=l+160|0;o=n+140|0;p=n+136|0;q=n+132|0;r=n+128|0;s=n+124|0;t=n+120|0;u=n+116|0;v=n+112|0;w=n;x=n+108|0;y=n+104|0;z=n+100|0;A=n+148|0;B=n+96|0;C=n+92|0;D=n+88|0;E=n+84|0;F=n+80|0;G=n+76|0;H=n+144|0;I=n+72|0;J=n+68|0;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[u>>2]=k;c[v>>2]=m;c[x>>2]=(c[v>>2]|0)-(c[p>>2]|0);c[y>>2]=(c[v>>2]|0)-(c[u>>2]|0);u=w;m=c[t>>2]|0;k=u+68|0;do{c[u>>2]=c[m>>2];u=u+4|0;m=m+4|0;}while((u|0)<(k|0));c[z>>2]=0;while(1){if((c[z>>2]|0)>>>0>=(c[r>>2]|0)>>>0)break;b[A>>1]=d[(c[q>>2]|0)+(c[z>>2]<<1)>>0]|0;c[B>>2]=d[(c[q>>2]|0)+(c[z>>2]<<1)+1>>0];c[C>>2]=(c[v>>2]|0)-(c[B>>2]|0);c[D>>2]=c[w+(c[B>>2]<<2)>>2];c[E>>2]=1<<(c[p>>2]|0)-(c[C>>2]|0);a:do{if(((c[p>>2]|0)-(c[C>>2]|0)|0)>>>0>=(c[y>>2]|0)>>>0){m=(c[C>>2]|0)+(c[x>>2]|0)|0;c[G>>2]=m;c[G>>2]=(c[G>>2]|0)<1?1:m;c[F>>2]=c[(c[s>>2]|0)+(c[G>>2]<<2)>>2];yt((c[o>>2]|0)+(c[D>>2]<<2)|0,(c[p>>2]|0)-(c[C>>2]|0)|0,c[C>>2]|0,(c[t>>2]|0)+((c[C>>2]|0)*68|0)|0,c[G>>2]|0,(c[q>>2]|0)+(c[F>>2]<<1)|0,(c[r>>2]|0)-(c[F>>2]|0)|0,c[v>>2]|0,b[A>>1]|0);}else{zt(H,b[A>>1]|0);a[H+2>>0]=c[C>>2];a[H+3>>0]=1;c[J>>2]=(c[D>>2]|0)+(c[E>>2]|0);c[I>>2]=c[D>>2];while(1){if((c[I>>2]|0)>>>0>=(c[J>>2]|0)>>>0)break a;m=(c[o>>2]|0)+(c[I>>2]<<2)|0;b[m>>1]=b[H>>1]|0;b[m+2>>1]=b[H+2>>1]|0;c[I>>2]=(c[I>>2]|0)+1;}}}while(0);m=w+(c[B>>2]<<2)|0;c[m>>2]=(c[m>>2]|0)+(c[E>>2]|0);c[z>>2]=(c[z>>2]|0)+1;}l=n;return;}function yt(f,g,h,i,j,k,m,n,o){f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;p=l;l=l+160|0;q=p+136|0;r=p+132|0;s=p+128|0;t=p+124|0;u=p+120|0;v=p+116|0;w=p+112|0;x=p+108|0;y=p+144|0;z=p+140|0;A=p;B=p+104|0;C=p+100|0;D=p+96|0;E=p+92|0;F=p+88|0;G=p+84|0;H=p+80|0;I=p+76|0;J=p+72|0;K=p+68|0;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=i;c[u>>2]=j;c[v>>2]=k;c[w>>2]=m;c[x>>2]=n;b[y>>1]=o;o=A;n=c[t>>2]|0;t=o+68|0;do{c[o>>2]=c[n>>2];o=o+4|0;n=n+4|0;}while((o|0)<(t|0));a:do{if((c[u>>2]|0)>1){c[C>>2]=c[A+(c[u>>2]<<2)>>2];zt(z,b[y>>1]|0);a[z+2>>0]=c[s>>2];a[z+3>>0]=1;c[B>>2]=0;while(1){if((c[B>>2]|0)>>>0>=(c[C>>2]|0)>>>0)break a;n=(c[q>>2]|0)+(c[B>>2]<<2)|0;b[n>>1]=b[z>>1]|0;b[n+2>>1]=b[z+2>>1]|0;c[B>>2]=(c[B>>2]|0)+1;}}}while(0);c[D>>2]=0;while(1){if((c[D>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;c[E>>2]=d[(c[v>>2]|0)+(c[D>>2]<<1)>>0];c[F>>2]=d[(c[v>>2]|0)+(c[D>>2]<<1)+1>>0];c[G>>2]=(c[x>>2]|0)-(c[F>>2]|0);c[H>>2]=1<<(c[r>>2]|0)-(c[G>>2]|0);c[I>>2]=c[A+(c[F>>2]<<2)>>2];c[J>>2]=c[I>>2];c[K>>2]=(c[I>>2]|0)+(c[H>>2]|0);zt(z,(e[y>>1]|0)+(c[E>>2]<<8)&65535);a[z+2>>0]=(c[G>>2]|0)+(c[s>>2]|0);a[z+3>>0]=2;do{B=c[q>>2]|0;C=c[J>>2]|0;c[J>>2]=C+1;u=B+(C<<2)|0;b[u>>1]=b[z>>1]|0;b[u+2>>1]=b[z+2>>1]|0;}while((c[J>>2]|0)>>>0<(c[K>>2]|0)>>>0);u=A+(c[F>>2]<<2)|0;c[u>>2]=(c[u>>2]|0)+(c[H>>2]|0);c[D>>2]=(c[D>>2]|0)+1;}l=p;return;}function zt(d,f){d=d|0;f=f|0;var g=0,h=0,i=0,j=0;g=l;l=l+16|0;h=g+4|0;i=g+8|0;j=g;c[h>>2]=d;b[i>>1]=f;f=(Gq()|0)!=0;d=c[h>>2]|0;if(f){At(d,b[i>>1]|0);l=g;return;}else{c[j>>2]=d;a[c[j>>2]>>0]=b[i>>1];a[(c[j>>2]|0)+1>>0]=(e[i>>1]|0)>>8;l=g;return;}}function At(d,e){d=d|0;e=e|0;var f=0,g=0,h=0;f=l;l=l+16|0;g=f;h=f+4|0;c[g>>2]=d;b[h>>1]=e;e=c[g>>2]|0;a[e>>0]=a[h>>0]|0;a[e+1>>0]=a[h+1>>0]|0;l=f;return;}function Bt(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;h=l;l=l+80|0;i=h+60|0;j=h+56|0;k=h+52|0;m=h+48|0;n=h+44|0;o=h+40|0;p=h+36|0;q=h+32|0;r=h+28|0;s=h+24|0;t=h+8|0;u=h+64|0;v=h+4|0;w=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=c[j>>2];c[q>>2]=(c[p>>2]|0)+(c[k>>2]|0);c[r>>2]=(c[o>>2]|0)+4;c[s>>2]=c[r>>2];_s(u,c[o>>2]|0);c[v>>2]=d[u+2>>0];c[w>>2]=Ds(t,c[m>>2]|0,c[n>>2]|0)|0;if(at(c[w>>2]|0)|0){c[i>>2]=c[w>>2];x=c[i>>2]|0;l=h;return x|0;}nt(c[p>>2]|0,t,c[q>>2]|0,c[s>>2]|0,c[v>>2]|0)|0;if(ct(t)|0){c[i>>2]=c[k>>2];x=c[i>>2]|0;l=h;return x|0;}else{c[i>>2]=-20;x=c[i>>2]|0;l=h;return x|0;}return 0;}function Ct(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;d=b+4|0;e=b;c[d>>2]=a;c[(c[d>>2]|0)+21536>>2]=5;c[(c[d>>2]|0)+21580>>2]=0;c[(c[d>>2]|0)+21520>>2]=0;c[(c[d>>2]|0)+21524>>2]=0;c[(c[d>>2]|0)+21528>>2]=0;c[(c[d>>2]|0)+21532>>2]=0;c[(c[d>>2]|0)+5132>>2]=201326604;c[(c[d>>2]|0)+21588>>2]=0;c[(c[d>>2]|0)+21584>>2]=0;c[(c[d>>2]|0)+21684>>2]=0;c[e>>2]=0;while(1){if((c[e>>2]|0)>=3)break;c[(c[d>>2]|0)+21540+(c[e>>2]<<2)>>2]=c[11940+(c[e>>2]<<2)>>2];c[e>>2]=(c[e>>2]|0)+1;}l=b;return 0;}function Dt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;if((c[i>>2]|0)>>>0<8){c[f>>2]=Et(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0;m=c[f>>2]|0;l=e;return m|0;}c[j>>2]=Bq(c[h>>2]|0)|0;if((c[j>>2]|0)!=-332356553){c[f>>2]=Et(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0;m=c[f>>2]|0;l=e;return m|0;}j=Bq((c[h>>2]|0)+4|0)|0;c[(c[g>>2]|0)+21684>>2]=j;c[h>>2]=(c[h>>2]|0)+8;c[i>>2]=(c[i>>2]|0)-8;c[k>>2]=Ft(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0;if(hr(c[k>>2]|0)|0){c[f>>2]=-30;m=c[f>>2]|0;l=e;return m|0;}else{c[h>>2]=(c[h>>2]|0)+(c[k>>2]|0);c[i>>2]=(c[i>>2]|0)-(c[k>>2]|0);c[f>>2]=Et(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0;m=c[f>>2]|0;l=e;return m|0;}return 0;}function Et(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[(c[f>>2]|0)+21532>>2]=c[(c[f>>2]|0)+21520>>2];c[(c[f>>2]|0)+21528>>2]=(c[g>>2]|0)+(0-((c[(c[f>>2]|0)+21520>>2]|0)-(c[(c[f>>2]|0)+21524>>2]|0)));c[(c[f>>2]|0)+21524>>2]=c[g>>2];c[(c[f>>2]|0)+21520>>2]=(c[g>>2]|0)+(c[h>>2]|0);l=e;return 0;}function Ft(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;e=l;l=l+336|0;f=e+324|0;g=e+320|0;h=e+316|0;i=e+312|0;j=e+308|0;k=e+304|0;m=e+300|0;n=e+192|0;o=e+296|0;p=e+292|0;q=e+288|0;r=e+284|0;s=e+80|0;t=e+280|0;u=e+276|0;v=e+272|0;w=e+268|0;x=e;y=e+264|0;z=e+260|0;A=e+256|0;B=e+252|0;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=c[h>>2];c[k>>2]=(c[j>>2]|0)+(c[i>>2]|0);c[m>>2]=vt((c[g>>2]|0)+5132|0,c[h>>2]|0,c[i>>2]|0)|0;if(hr(c[m>>2]|0)|0){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}c[j>>2]=(c[j>>2]|0)+(c[m>>2]|0);c[o>>2]=28;c[q>>2]=Vs(n,o,p,c[j>>2]|0,(c[k>>2]|0)-(c[j>>2]|0)|0)|0;if(hr(c[q>>2]|0)|0){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}if((c[p>>2]|0)>>>0>8){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}c[r>>2]=Us((c[g>>2]|0)+2052|0,n,c[o>>2]|0,c[p>>2]|0)|0;if(hr(c[r>>2]|0)|0){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}c[j>>2]=(c[j>>2]|0)+(c[q>>2]|0);c[t>>2]=52;c[v>>2]=Vs(s,t,u,c[j>>2]|0,(c[k>>2]|0)-(c[j>>2]|0)|0)|0;if(hr(c[v>>2]|0)|0){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}if((c[u>>2]|0)>>>0>9){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}c[w>>2]=Us((c[g>>2]|0)+3080|0,s,c[t>>2]|0,c[u>>2]|0)|0;if(hr(c[w>>2]|0)|0){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}c[j>>2]=(c[j>>2]|0)+(c[v>>2]|0);c[y>>2]=35;c[A>>2]=Vs(x,y,z,c[j>>2]|0,(c[k>>2]|0)-(c[j>>2]|0)|0)|0;if(hr(c[A>>2]|0)|0){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}if((c[z>>2]|0)>>>0>9){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}c[B>>2]=Us(c[g>>2]|0,x,c[y>>2]|0,c[z>>2]|0)|0;if(hr(c[B>>2]|0)|0){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}c[j>>2]=(c[j>>2]|0)+(c[A>>2]|0);if(((c[j>>2]|0)+12|0)>>>0>(c[k>>2]|0)>>>0){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}k=Bq(c[j>>2]|0)|0;c[(c[g>>2]|0)+21540>>2]=k;if(c[(c[g>>2]|0)+21540>>2]|0?(c[(c[g>>2]|0)+21540>>2]|0)>>>0<(c[i>>2]|0)>>>0:0){k=Bq((c[j>>2]|0)+4|0)|0;c[(c[g>>2]|0)+21540+4>>2]=k;if(c[(c[g>>2]|0)+21540+4>>2]|0?(c[(c[g>>2]|0)+21540+4>>2]|0)>>>0<(c[i>>2]|0)>>>0:0){k=Bq((c[j>>2]|0)+8|0)|0;c[(c[g>>2]|0)+21540+8>>2]=k;if(c[(c[g>>2]|0)+21540+8>>2]|0?(c[(c[g>>2]|0)+21540+8>>2]|0)>>>0<(c[i>>2]|0)>>>0:0){c[j>>2]=(c[j>>2]|0)+12;c[(c[g>>2]|0)+21588>>2]=1;c[(c[g>>2]|0)+21584>>2]=1;c[f>>2]=(c[j>>2]|0)-(c[h>>2]|0);C=c[f>>2]|0;l=e;return C|0;}c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}function Gt(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;if((c[a>>2]|0)==0?(c[a+4>>2]|0)==0:0){c[a>>2]=c[2988];c[a+4>>2]=c[2989];c[a+8>>2]=c[2990];}if(c[a>>2]|0?c[a+4>>2]|0:0){c[e>>2]=qc[c[a>>2]&63](c[a+8>>2]|0,152808)|0;if(c[e>>2]|0){f=(c[e>>2]|0)+21692|0;c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];Ct(c[e>>2]|0)|0;c[d>>2]=c[e>>2];g=c[d>>2]|0;l=b;return g|0;}else{c[d>>2]=0;g=c[d>>2]|0;l=b;return g|0;}}c[d>>2]=0;g=c[d>>2]|0;l=b;return g|0;}function Ht(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[d+8>>2]=a;c[e>>2]=b;c[f>>2]=Cy(c[e>>2]|0)|0;l=d;return c[f>>2]|0;}function It(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[d+4>>2]=a;c[e>>2]=b;Dy(c[e>>2]|0);l=d;return;}function Jt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=Ou(c[g>>2]|0)|0;if(jr(c[j>>2]|0)|0){c[f>>2]=c[j>>2];m=c[f>>2]|0;l=e;return m|0;}if((c[h>>2]|0)!=0&(c[i>>2]|0)!=0?(c[k>>2]=Pu(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0,jr(c[k>>2]|0)|0):0){c[f>>2]=-30;m=c[f>>2]|0;l=e;return m|0;}c[f>>2]=0;m=c[f>>2]|0;l=e;return m|0;}function Kt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;if((c[f>>2]|0)==(c[(c[e>>2]|0)+21520>>2]|0)){l=d;return;}c[(c[e>>2]|0)+21532>>2]=c[(c[e>>2]|0)+21520>>2];c[(c[e>>2]|0)+21528>>2]=(c[f>>2]|0)+(0-((c[(c[e>>2]|0)+21520>>2]|0)-(c[(c[e>>2]|0)+21524>>2]|0)));c[(c[e>>2]|0)+21524>>2]=c[f>>2];c[(c[e>>2]|0)+21520>>2]=c[f>>2];l=d;return;}function Lt(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;g=l;l=l+80|0;h=g+68|0;i=g+64|0;j=g+60|0;k=g+56|0;m=g+52|0;n=g+48|0;o=g+44|0;p=g+40|0;q=g+36|0;r=g+32|0;s=g+28|0;t=g+24|0;u=g+16|0;v=g+8|0;w=g+4|0;x=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=c[m>>2];c[p>>2]=(c[o>>2]|0)+(c[n>>2]|0);c[q>>2]=c[j>>2];c[r>>2]=c[q>>2];c[s>>2]=(c[q>>2]|0)+(c[k>>2]|0);c[t>>2]=c[n>>2];c[u>>2]=0;c[u+4>>2]=0;if((c[n>>2]|0)>>>0<8){c[h>>2]=-72;y=c[h>>2]|0;l=g;return y|0;}c[v>>2]=Nq(c[m>>2]|0,5)|0;if(jr(c[v>>2]|0)|0){c[h>>2]=c[v>>2];y=c[h>>2]|0;l=g;return y|0;}if((c[n>>2]|0)>>>0<((c[v>>2]|0)+3|0)>>>0){c[h>>2]=-72;y=c[h>>2]|0;l=g;return y|0;}if(Mt(c[i>>2]|0,c[m>>2]|0,c[v>>2]|0)|0){c[h>>2]=-20;y=c[h>>2]|0;l=g;return y|0;}c[o>>2]=(c[o>>2]|0)+(c[v>>2]|0);c[t>>2]=(c[t>>2]|0)-(c[v>>2]|0);a:while(1){c[w>>2]=0;c[x>>2]=kr(c[o>>2]|0,(c[p>>2]|0)-(c[o>>2]|0)|0,u)|0;if(jr(c[x>>2]|0)|0){z=11;break;}c[o>>2]=(c[o>>2]|0)+3;c[t>>2]=(c[t>>2]|0)-3;if((c[x>>2]|0)>>>0>(c[t>>2]|0)>>>0){z=13;break;}switch(c[u>>2]|0){case 2:{z=17;break a;break;}case 0:{c[w>>2]=Nt(c[i>>2]|0,c[r>>2]|0,(c[s>>2]|0)-(c[r>>2]|0)|0,c[o>>2]|0,c[x>>2]|0)|0;break;}case 1:{c[w>>2]=Ot(c[r>>2]|0,(c[s>>2]|0)-(c[r>>2]|0)|0,c[o>>2]|0,c[x>>2]|0)|0;break;}case 3:{if(c[t>>2]|0){z=19;break a;}break;}default:{z=20;break a;}}if(!(c[x>>2]|0)){z=25;break;}v=(jr(c[w>>2]|0)|0)!=0;A=c[w>>2]|0;if(v){z=23;break;}c[r>>2]=(c[r>>2]|0)+A;c[o>>2]=(c[o>>2]|0)+(c[x>>2]|0);c[t>>2]=(c[t>>2]|0)-(c[x>>2]|0);}if((z|0)==11){c[h>>2]=c[x>>2];y=c[h>>2]|0;l=g;return y|0;}else if((z|0)==13){c[h>>2]=-72;y=c[h>>2]|0;l=g;return y|0;}else if((z|0)==17){c[h>>2]=-1;y=c[h>>2]|0;l=g;return y|0;}else if((z|0)==19){c[h>>2]=-72;y=c[h>>2]|0;l=g;return y|0;}else if((z|0)==20){c[h>>2]=-1;y=c[h>>2]|0;l=g;return y|0;}else if((z|0)==23){c[h>>2]=A;y=c[h>>2]|0;l=g;return y|0;}else if((z|0)==25){c[h>>2]=(c[r>>2]|0)-(c[q>>2]|0);y=c[h>>2]|0;l=g;return y|0;}return 0;}function Mt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=zq((c[g>>2]|0)+21544|0,c[h>>2]|0,c[i>>2]|0)|0;if(au()|0?(c[(c[g>>2]|0)+21544+8>>2]|0)>>>0>25:0){c[f>>2]=-14;k=c[f>>2]|0;l=e;return k|0;}c[f>>2]=c[j>>2];k=c[f>>2]|0;l=e;return k|0;}function Nt(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;g=l;l=l+32|0;h=g+28|0;i=g+24|0;j=g+20|0;k=g+16|0;m=g+12|0;n=g+8|0;o=g+4|0;p=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=c[m>>2];if((c[n>>2]|0)>>>0>=131072){c[h>>2]=-72;q=c[h>>2]|0;l=g;return q|0;}c[p>>2]=Pt(c[i>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;m=(jr(c[p>>2]|0)|0)!=0;f=c[p>>2]|0;if(m){c[h>>2]=f;q=c[h>>2]|0;l=g;return q|0;}else{c[o>>2]=(c[o>>2]|0)+f;c[n>>2]=(c[n>>2]|0)-(c[p>>2]|0);c[h>>2]=Qt(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[o>>2]|0,c[n>>2]|0)|0;q=c[h>>2]|0;l=g;return q|0;}return 0;}function Ot(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;if((c[k>>2]|0)>>>0>(c[i>>2]|0)>>>0){c[g>>2]=-70;m=c[g>>2]|0;l=f;return m|0;}else{mE(c[h>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;c[g>>2]=c[k>>2];m=c[g>>2]|0;l=f;return m|0;}return 0;}function Pt(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;g=l;l=l+80|0;h=g+64|0;i=g+60|0;j=g+56|0;k=g+52|0;m=g+48|0;n=g+44|0;o=g+40|0;p=g+36|0;q=g+32|0;r=g+28|0;s=g+24|0;t=g+20|0;u=g+16|0;v=g+12|0;w=g+8|0;x=g+4|0;y=g;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=c[j>>2];if((c[k>>2]|0)>>>0<3){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}switch((d[c[m>>2]>>0]|0)>>6|0){case 0:{c[p>>2]=0;c[q>>2]=(d[c[m>>2]>>0]|0)>>4&3;if((c[k>>2]|0)>>>0<5){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}switch(c[q>>2]|0){case 3:{c[q>>2]=5;c[n>>2]=(((d[c[m>>2]>>0]|0)&15)<<14)+((d[(c[m>>2]|0)+1>>0]|0)<<6)+((d[(c[m>>2]|0)+2>>0]|0)>>2);c[o>>2]=(((d[(c[m>>2]|0)+2>>0]|0)&3)<<16)+((d[(c[m>>2]|0)+3>>0]|0)<<8)+(d[(c[m>>2]|0)+4>>0]|0);break;}case 2:{c[q>>2]=4;c[n>>2]=(((d[c[m>>2]>>0]|0)&15)<<10)+((d[(c[m>>2]|0)+1>>0]|0)<<2)+((d[(c[m>>2]|0)+2>>0]|0)>>6);c[o>>2]=(((d[(c[m>>2]|0)+2>>0]|0)&63)<<8)+(d[(c[m>>2]|0)+3>>0]|0);break;}default:{c[q>>2]=3;c[p>>2]=(d[c[m>>2]>>0]|0)&16;c[n>>2]=(((d[c[m>>2]>>0]|0)&15)<<6)+((d[(c[m>>2]|0)+1>>0]|0)>>2);c[o>>2]=(((d[(c[m>>2]|0)+1>>0]|0)&3)<<8)+(d[(c[m>>2]|0)+2>>0]|0);}}if((c[n>>2]|0)>>>0>131072){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}if(((c[o>>2]|0)+(c[q>>2]|0)|0)>>>0>(c[k>>2]|0)>>>0){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}j=(c[i>>2]|0)+21580|0;f=c[n>>2]|0;e=(c[m>>2]|0)+(c[q>>2]|0)|0;b=c[o>>2]|0;if(c[p>>2]|0)A=lu(j,f,e,b)|0;else A=mu(j,f,e,b)|0;if(jr(A)|0){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}else{c[(c[i>>2]|0)+21572>>2]=(c[i>>2]|0)+21580;c[(c[i>>2]|0)+21576>>2]=c[n>>2];n=(c[i>>2]|0)+21580+(c[(c[i>>2]|0)+21576>>2]|0)|0;a[n>>0]=0;a[n+1>>0]=0;a[n+2>>0]=0;a[n+3>>0]=0;a[n+4>>0]=0;a[n+5>>0]=0;a[n+6>>0]=0;a[n+7>>0]=0;c[h>>2]=(c[o>>2]|0)+(c[q>>2]|0);z=c[h>>2]|0;l=g;return z|0;}break;}case 1:{c[t>>2]=(d[c[m>>2]>>0]|0)>>4&3;if((c[t>>2]|0)!=1){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}if(!(c[(c[i>>2]|0)+21568>>2]|0)){c[h>>2]=-30;z=c[h>>2]|0;l=g;return z|0;}c[t>>2]=3;c[r>>2]=(((d[c[m>>2]>>0]|0)&15)<<6)+((d[(c[m>>2]|0)+1>>0]|0)>>2);c[s>>2]=(((d[(c[m>>2]|0)+1>>0]|0)&3)<<8)+(d[(c[m>>2]|0)+2>>0]|0);if(((c[s>>2]|0)+(c[t>>2]|0)|0)>>>0>(c[k>>2]|0)>>>0){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}c[u>>2]=nu((c[i>>2]|0)+21580|0,c[r>>2]|0,(c[m>>2]|0)+(c[t>>2]|0)|0,c[s>>2]|0,(c[i>>2]|0)+5132|0)|0;if(jr(c[u>>2]|0)|0){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}else{c[(c[i>>2]|0)+21572>>2]=(c[i>>2]|0)+21580;c[(c[i>>2]|0)+21576>>2]=c[r>>2];r=(c[i>>2]|0)+21580+(c[(c[i>>2]|0)+21576>>2]|0)|0;a[r>>0]=0;a[r+1>>0]=0;a[r+2>>0]=0;a[r+3>>0]=0;a[r+4>>0]=0;a[r+5>>0]=0;a[r+6>>0]=0;a[r+7>>0]=0;c[h>>2]=(c[s>>2]|0)+(c[t>>2]|0);z=c[h>>2]|0;l=g;return z|0;}break;}case 2:{c[w>>2]=(d[c[m>>2]>>0]|0)>>4&3;switch(c[w>>2]|0){case 3:{c[v>>2]=(((d[c[m>>2]>>0]|0)&15)<<16)+((d[(c[m>>2]|0)+1>>0]|0)<<8)+(d[(c[m>>2]|0)+2>>0]|0);break;}case 2:{c[v>>2]=(((d[c[m>>2]>>0]|0)&15)<<8)+(d[(c[m>>2]|0)+1>>0]|0);break;}default:{c[w>>2]=1;c[v>>2]=(d[c[m>>2]>>0]|0)&31;}}if(((c[w>>2]|0)+(c[v>>2]|0)+8|0)>>>0<=(c[k>>2]|0)>>>0){c[(c[i>>2]|0)+21572>>2]=(c[m>>2]|0)+(c[w>>2]|0);c[(c[i>>2]|0)+21576>>2]=c[v>>2];c[h>>2]=(c[w>>2]|0)+(c[v>>2]|0);z=c[h>>2]|0;l=g;return z|0;}if(((c[v>>2]|0)+(c[w>>2]|0)|0)>>>0>(c[k>>2]|0)>>>0){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}else{mE((c[i>>2]|0)+21580|0,(c[m>>2]|0)+(c[w>>2]|0)|0,c[v>>2]|0)|0;c[(c[i>>2]|0)+21572>>2]=(c[i>>2]|0)+21580;c[(c[i>>2]|0)+21576>>2]=c[v>>2];t=(c[i>>2]|0)+21580+(c[(c[i>>2]|0)+21576>>2]|0)|0;a[t>>0]=0;a[t+1>>0]=0;a[t+2>>0]=0;a[t+3>>0]=0;a[t+4>>0]=0;a[t+5>>0]=0;a[t+6>>0]=0;a[t+7>>0]=0;c[h>>2]=(c[w>>2]|0)+(c[v>>2]|0);z=c[h>>2]|0;l=g;return z|0;}break;}case 3:{c[y>>2]=(d[c[m>>2]>>0]|0)>>4&3;switch(c[y>>2]|0){case 3:{c[x>>2]=(((d[c[m>>2]>>0]|0)&15)<<16)+((d[(c[m>>2]|0)+1>>0]|0)<<8)+(d[(c[m>>2]|0)+2>>0]|0);if((c[k>>2]|0)>>>0<4){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}break;}case 2:{c[x>>2]=(((d[c[m>>2]>>0]|0)&15)<<8)+(d[(c[m>>2]|0)+1>>0]|0);break;}default:{c[y>>2]=1;c[x>>2]=(d[c[m>>2]>>0]|0)&31;}}if((c[x>>2]|0)>>>0>131072){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}else{oE((c[i>>2]|0)+21580|0,(d[(c[m>>2]|0)+(c[y>>2]|0)>>0]|0)&255|0,(c[x>>2]|0)+8|0)|0;c[(c[i>>2]|0)+21572>>2]=(c[i>>2]|0)+21580;c[(c[i>>2]|0)+21576>>2]=c[x>>2];c[h>>2]=(c[y>>2]|0)+1;z=c[h>>2]|0;l=g;return z|0;}break;}default:{}}return 0;}function Qt(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;g=l;l=l+176|0;h=g+164|0;i=g+160|0;j=g+156|0;k=g+152|0;m=g+148|0;n=g+144|0;o=g+140|0;p=g+136|0;q=g+132|0;r=g+128|0;s=g+124|0;t=g+120|0;u=g+116|0;v=g+112|0;w=g+108|0;x=g+104|0;y=g+100|0;z=g+96|0;A=g+92|0;B=g+88|0;C=g+84|0;D=g+80|0;E=g+68|0;F=g+16|0;G=g+12|0;H=g+8|0;I=g+4|0;J=g;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=c[n>>2];c[q>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[r>>2]=c[k>>2];c[s>>2]=(c[r>>2]|0)+(c[m>>2]|0);c[t>>2]=c[r>>2];c[u>>2]=c[(c[j>>2]|0)+21572>>2];c[v>>2]=(c[u>>2]|0)+(c[(c[j>>2]|0)+21576>>2]|0);c[w>>2]=c[j>>2];c[x>>2]=(c[j>>2]|0)+3080;c[y>>2]=(c[j>>2]|0)+2052;c[z>>2]=c[(c[j>>2]|0)+21524>>2];c[A>>2]=c[(c[j>>2]|0)+21528>>2];c[B>>2]=c[(c[j>>2]|0)+21532>>2];c[D>>2]=Rt(C,c[w>>2]|0,c[x>>2]|0,c[y>>2]|0,c[(c[j>>2]|0)+21568>>2]|0,c[p>>2]|0,c[o>>2]|0)|0;o=(jr(c[D>>2]|0)|0)!=0;m=c[D>>2]|0;if(o){c[i>>2]=m;K=c[i>>2]|0;l=g;return K|0;}c[p>>2]=(c[p>>2]|0)+m;c[(c[j>>2]|0)+21568>>2]=0;if(c[C>>2]|0){c[E>>2]=0;c[E+4>>2]=0;c[E+8>>2]=0;c[E+8>>2]=1;c[G>>2]=0;while(1){if((c[G>>2]|0)>>>0>=3)break;c[F+40+(c[G>>2]<<2)>>2]=1;c[G>>2]=(c[G>>2]|0)+1;}c[H>>2]=St(F,c[p>>2]|0,(c[q>>2]|0)-(c[p>>2]|0)|0)|0;if(jr(c[H>>2]|0)|0){c[i>>2]=-20;K=c[i>>2]|0;l=g;return K|0;}Tt(F+16|0,F,c[w>>2]|0);Tt(F+24|0,F,c[y>>2]|0);Tt(F+32|0,F,c[x>>2]|0);while(1){x=(Ut(F)|0)>>>0<=2;L=c[C>>2]|0;if(!(x?(c[C>>2]|0)!=0:0))break;c[C>>2]=L+-1;Vt(E,F);x=c[t>>2]|0;y=c[s>>2]|0;w=c[v>>2]|0;H=c[z>>2]|0;p=c[A>>2]|0;q=c[B>>2]|0;c[h>>2]=c[E>>2];c[h+4>>2]=c[E+4>>2];c[h+8>>2]=c[E+8>>2];c[I>>2]=Wt(x,y,h,u,w,H,p,q)|0;q=(jr(c[I>>2]|0)|0)!=0;M=c[I>>2]|0;if(q){N=12;break;}c[t>>2]=(c[t>>2]|0)+M;}if((N|0)==12){c[i>>2]=M;K=c[i>>2]|0;l=g;return K|0;}if(L|0){c[i>>2]=-20;K=c[i>>2]|0;l=g;return K|0;}}c[J>>2]=(c[v>>2]|0)-(c[u>>2]|0);if((c[u>>2]|0)>>>0>(c[v>>2]|0)>>>0){c[i>>2]=-20;K=c[i>>2]|0;l=g;return K|0;}if(((c[t>>2]|0)+(c[J>>2]|0)|0)>>>0>(c[s>>2]|0)>>>0){c[i>>2]=-70;K=c[i>>2]|0;l=g;return K|0;}else{mE(c[t>>2]|0,c[u>>2]|0,c[J>>2]|0)|0;c[t>>2]=(c[t>>2]|0)+(c[J>>2]|0);c[i>>2]=(c[t>>2]|0)-(c[r>>2]|0);K=c[i>>2]|0;l=g;return K|0;}return 0;}function Rt(a,b,e,f,g,h,i){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;j=l;l=l+80|0;k=j+68|0;m=j+64|0;n=j+60|0;o=j+56|0;p=j+52|0;q=j+48|0;r=j+44|0;s=j+40|0;t=j+36|0;u=j+32|0;v=j+28|0;w=j+24|0;x=j+20|0;y=j+16|0;z=j+12|0;A=j+8|0;B=j+4|0;C=j;c[m>>2]=a;c[n>>2]=b;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=c[r>>2];c[u>>2]=(c[t>>2]|0)+(c[s>>2]|0);c[v>>2]=c[t>>2];if((c[s>>2]|0)>>>0<1){c[k>>2]=-72;D=c[k>>2]|0;l=j;return D|0;}s=c[v>>2]|0;c[v>>2]=s+1;c[w>>2]=d[s>>0];if(!(c[w>>2]|0)){c[c[m>>2]>>2]=0;c[k>>2]=1;D=c[k>>2]|0;l=j;return D|0;}do{if((c[w>>2]|0)>127){s=c[v>>2]|0;if((c[w>>2]|0)==255){if((s+2|0)>>>0<=(c[u>>2]|0)>>>0){c[w>>2]=((Oq(c[v>>2]|0)|0)&65535)+32512;c[v>>2]=(c[v>>2]|0)+2;break;}c[k>>2]=-72;D=c[k>>2]|0;l=j;return D|0;}else{if(s>>>0<(c[u>>2]|0)>>>0){s=(c[w>>2]|0)-128<<8;r=c[v>>2]|0;c[v>>2]=r+1;c[w>>2]=s+(d[r>>0]|0);break;}c[k>>2]=-72;D=c[k>>2]|0;l=j;return D|0;}}}while(0);c[c[m>>2]>>2]=c[w>>2];c[x>>2]=(d[c[v>>2]>>0]|0)>>6;c[y>>2]=(d[c[v>>2]>>0]|0)>>4&3;c[z>>2]=(d[c[v>>2]>>0]|0)>>2&3;c[v>>2]=(c[v>>2]|0)+1;if((c[v>>2]|0)>>>0>((c[u>>2]|0)+-3|0)>>>0){c[k>>2]=-72;D=c[k>>2]|0;l=j;return D|0;}c[A>>2]=gu(c[n>>2]|0,c[x>>2]|0,35,9,c[v>>2]|0,(c[u>>2]|0)-(c[v>>2]|0)|0,6560,6,c[q>>2]|0)|0;if(jr(c[A>>2]|0)|0){c[k>>2]=-20;D=c[k>>2]|0;l=j;return D|0;}c[v>>2]=(c[v>>2]|0)+(c[A>>2]|0);c[B>>2]=gu(c[p>>2]|0,c[y>>2]|0,28,8,c[v>>2]|0,(c[u>>2]|0)-(c[v>>2]|0)|0,6640,5,c[q>>2]|0)|0;if(jr(c[B>>2]|0)|0){c[k>>2]=-20;D=c[k>>2]|0;l=j;return D|0;}c[v>>2]=(c[v>>2]|0)+(c[B>>2]|0);c[C>>2]=gu(c[o>>2]|0,c[z>>2]|0,52,9,c[v>>2]|0,(c[u>>2]|0)-(c[v>>2]|0)|0,6704,6,c[q>>2]|0)|0;if(jr(c[C>>2]|0)|0){c[k>>2]=-20;D=c[k>>2]|0;l=j;return D|0;}else{c[v>>2]=(c[v>>2]|0)+(c[C>>2]|0);c[k>>2]=(c[v>>2]|0)-(c[t>>2]|0);D=c[k>>2]|0;l=j;return D|0;}return 0;}function St(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;g=l;l=l+32|0;h=g+12|0;i=g+8|0;j=g+4|0;k=g;m=g+17|0;n=g+16|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;if((c[k>>2]|0)>>>0<1){f=c[i>>2]|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[h>>2]=-72;o=c[h>>2]|0;l=g;return o|0;}f=(c[k>>2]|0)>>>0>=4;c[(c[i>>2]|0)+12>>2]=c[j>>2];do{if(f){c[(c[i>>2]|0)+8>>2]=(c[j>>2]|0)+(c[k>>2]|0)+-4;e=eu(c[(c[i>>2]|0)+8>>2]|0)|0;c[c[i>>2]>>2]=e;a[m>>0]=a[(c[j>>2]|0)+((c[k>>2]|0)-1)>>0]|0;if(d[m>>0]|0|0){e=8-(fu(d[m>>0]|0)|0)|0;c[(c[i>>2]|0)+4>>2]=e;break;}c[h>>2]=-1;o=c[h>>2]|0;l=g;return o|0;}else{c[(c[i>>2]|0)+8>>2]=c[(c[i>>2]|0)+12>>2];c[c[i>>2]>>2]=d[c[(c[i>>2]|0)+12>>2]>>0];switch(c[k>>2]|0){case 7:{e=c[i>>2]|0;c[e>>2]=(c[e>>2]|0)+((d[(c[j>>2]|0)+6>>0]|0)<<16);p=9;break;}case 6:{p=9;break;}case 5:{p=10;break;}case 4:{p=11;break;}case 3:{p=12;break;}case 2:{p=13;break;}default:{}}if((p|0)==9){e=c[i>>2]|0;c[e>>2]=(c[e>>2]|0)+((d[(c[j>>2]|0)+5>>0]|0)<<8);p=10;}if((p|0)==10){e=c[i>>2]|0;c[e>>2]=(c[e>>2]|0)+((d[(c[j>>2]|0)+4>>0]|0)<<0);p=11;}if((p|0)==11){e=c[i>>2]|0;c[e>>2]=(c[e>>2]|0)+((d[(c[j>>2]|0)+3>>0]|0)<<24);p=12;}if((p|0)==12){e=c[i>>2]|0;c[e>>2]=(c[e>>2]|0)+((d[(c[j>>2]|0)+2>>0]|0)<<16);p=13;}if((p|0)==13){e=c[i>>2]|0;c[e>>2]=(c[e>>2]|0)+((d[(c[j>>2]|0)+1>>0]|0)<<8);}a[n>>0]=a[(c[j>>2]|0)+((c[k>>2]|0)-1)>>0]|0;if(d[n>>0]|0|0){e=8-(fu(d[n>>0]|0)|0)|0;c[(c[i>>2]|0)+4>>2]=e;e=(c[i>>2]|0)+4|0;c[e>>2]=(c[e>>2]|0)+(4-(c[k>>2]|0)<<3);break;}c[h>>2]=-1;o=c[h>>2]|0;l=g;return o|0;}}while(0);c[h>>2]=c[k>>2];o=c[h>>2]|0;l=g;return o|0;}function Tt(a,b,d){a=a|0;b=b|0;d=d|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=c[i>>2];c[k>>2]=c[j>>2];j=$t(c[h>>2]|0,e[c[k>>2]>>1]|0)|0;c[c[g>>2]>>2]=j;Ut(c[h>>2]|0)|0;c[(c[g>>2]|0)+4>>2]=(c[i>>2]|0)+4;l=f;return;}function Ut(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+16|0;d=b+12|0;e=b+8|0;f=b+4|0;g=b;c[e>>2]=a;if((c[(c[e>>2]|0)+4>>2]|0)>>>0>32){c[d>>2]=3;h=c[d>>2]|0;l=b;return h|0;}a=c[e>>2]|0;if((c[(c[e>>2]|0)+8>>2]|0)>>>0>=((c[(c[e>>2]|0)+12>>2]|0)+4|0)>>>0){i=(c[e>>2]|0)+8|0;c[i>>2]=(c[i>>2]|0)+(0-((c[a+4>>2]|0)>>>3));i=(c[e>>2]|0)+4|0;c[i>>2]=c[i>>2]&7;i=eu(c[(c[e>>2]|0)+8>>2]|0)|0;c[c[e>>2]>>2]=i;c[d>>2]=0;h=c[d>>2]|0;l=b;return h|0;}i=c[(c[e>>2]|0)+4>>2]|0;if((c[a+8>>2]|0)!=(c[(c[e>>2]|0)+12>>2]|0)){c[f>>2]=i>>>3;c[g>>2]=0;if(((c[(c[e>>2]|0)+8>>2]|0)+(0-(c[f>>2]|0))|0)>>>0<(c[(c[e>>2]|0)+12>>2]|0)>>>0){c[f>>2]=(c[(c[e>>2]|0)+8>>2]|0)-(c[(c[e>>2]|0)+12>>2]|0);c[g>>2]=1;}a=(c[e>>2]|0)+8|0;c[a>>2]=(c[a>>2]|0)+(0-(c[f>>2]|0));a=(c[e>>2]|0)+4|0;c[a>>2]=(c[a>>2]|0)-(c[f>>2]<<3);f=eu(c[(c[e>>2]|0)+8>>2]|0)|0;c[c[e>>2]>>2]=f;c[d>>2]=c[g>>2];h=c[d>>2]|0;l=b;return h|0;}if(i>>>0<32){c[d>>2]=1;h=c[d>>2]|0;l=b;return h|0;}else{c[d>>2]=2;h=c[d>>2]|0;l=b;return h|0;}return 0;}function Vt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;d=l;l=l+48|0;e=d+40|0;f=d+36|0;g=d+32|0;h=d+28|0;i=d+24|0;j=d+20|0;k=d+16|0;m=d+12|0;n=d+8|0;o=d+4|0;p=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=(_t((c[f>>2]|0)+16|0)|0)&255;c[h>>2]=(_t((c[f>>2]|0)+32|0)|0)&255;c[i>>2]=(_t((c[f>>2]|0)+24|0)|0)&255;c[j>>2]=c[5696+(c[g>>2]<<2)>>2];c[k>>2]=c[5840+(c[h>>2]<<2)>>2];c[m>>2]=c[i>>2];c[n>>2]=(c[j>>2]|0)+(c[k>>2]|0)+(c[m>>2]|0);if(c[i>>2]|0){b=c[6064+(c[i>>2]<<2)>>2]|0;c[o>>2]=b+($t(c[f>>2]|0,c[m>>2]|0)|0);if(au()|0)Ut(c[f>>2]|0)|0;}else c[o>>2]=0;do{if((c[o>>2]|0)>>>0<3){if((c[g>>2]|0)==0&(c[o>>2]|0)>>>0<=1)c[o>>2]=1-(c[o>>2]|0);m=(c[f>>2]|0)+40|0;if(!(c[o>>2]|0)){c[o>>2]=c[m>>2];break;}c[p>>2]=c[m+(c[o>>2]<<2)>>2];if((c[o>>2]|0)!=1)c[(c[f>>2]|0)+40+8>>2]=c[(c[f>>2]|0)+40+4>>2];c[(c[f>>2]|0)+40+4>>2]=c[(c[f>>2]|0)+40>>2];m=c[p>>2]|0;c[o>>2]=m;c[(c[f>>2]|0)+40>>2]=m;}else{c[o>>2]=(c[o>>2]|0)-2;c[(c[f>>2]|0)+40+8>>2]=c[(c[f>>2]|0)+40+4>>2];c[(c[f>>2]|0)+40+4>>2]=c[(c[f>>2]|0)+40>>2];c[(c[f>>2]|0)+40>>2]=c[o>>2];}}while(0);c[(c[e>>2]|0)+8>>2]=c[o>>2];o=(c[6192+(c[h>>2]<<2)>>2]|0)+3|0;if((c[h>>2]|0)>>>0>31)q=$t(c[f>>2]|0,c[k>>2]|0)|0;else q=0;c[(c[e>>2]|0)+4>>2]=o+q;if(au()|0?((c[k>>2]|0)+(c[j>>2]|0)|0)>>>0>24:0)Ut(c[f>>2]|0)|0;k=c[6416+(c[g>>2]<<2)>>2]|0;if((c[g>>2]|0)>>>0>15)r=$t(c[f>>2]|0,c[j>>2]|0)|0;else r=0;c[c[e>>2]>>2]=k+r;r=(au()|0)!=0;if(r|(c[n>>2]|0)>>>0>31)Ut(c[f>>2]|0)|0;bu((c[f>>2]|0)+16|0,c[f>>2]|0);bu((c[f>>2]|0)+32|0,c[f>>2]|0);if(!(au()|0)){s=c[f>>2]|0;t=s+24|0;u=c[f>>2]|0;bu(t,u);l=d;return;}Ut(c[f>>2]|0)|0;s=c[f>>2]|0;t=s+24|0;u=c[f>>2]|0;bu(t,u);l=d;return;}function Wt(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;k=l;l=l+64|0;m=k+60|0;n=k+56|0;o=k+52|0;p=k+48|0;q=k+44|0;r=k+40|0;s=k+36|0;t=k+32|0;u=k+28|0;v=k+24|0;w=k+20|0;x=k+16|0;y=k+12|0;z=k+8|0;A=k+4|0;B=k;c[n>>2]=b;c[o>>2]=d;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[u>>2]=(c[n>>2]|0)+(c[e>>2]|0);c[v>>2]=(c[e>>2]|0)+(c[e+4>>2]|0);c[w>>2]=(c[n>>2]|0)+(c[v>>2]|0);c[x>>2]=(c[o>>2]|0)+-8;c[y>>2]=(c[c[p>>2]>>2]|0)+(c[e>>2]|0);c[z>>2]=(c[u>>2]|0)+(0-(c[e+8>>2]|0));if((c[u>>2]|0)>>>0>(c[x>>2]|0)>>>0){c[m>>2]=-70;C=c[m>>2]|0;l=k;return C|0;}if((c[w>>2]|0)>>>0>(c[o>>2]|0)>>>0){c[m>>2]=-70;C=c[m>>2]|0;l=k;return C|0;}if((c[y>>2]|0)>>>0>(c[q>>2]|0)>>>0){c[m>>2]=-20;C=c[m>>2]|0;l=k;return C|0;}Xt(c[n>>2]|0,c[c[p>>2]>>2]|0,c[e>>2]|0);c[n>>2]=c[u>>2];c[c[p>>2]>>2]=c[y>>2];do{if((c[e+8>>2]|0)>>>0>((c[u>>2]|0)-(c[r>>2]|0)|0)>>>0){if((c[e+8>>2]|0)>>>0>((c[u>>2]|0)-(c[s>>2]|0)|0)>>>0){c[m>>2]=-20;C=c[m>>2]|0;l=k;return C|0;}c[z>>2]=(c[t>>2]|0)+(0-((c[r>>2]|0)-(c[z>>2]|0)));if(((c[z>>2]|0)+(c[e+4>>2]|0)|0)>>>0<=(c[t>>2]|0)>>>0){nE(c[u>>2]|0,c[z>>2]|0,c[e+4>>2]|0)|0;c[m>>2]=c[v>>2];C=c[m>>2]|0;l=k;return C|0;}c[A>>2]=(c[t>>2]|0)-(c[z>>2]|0);nE(c[u>>2]|0,c[z>>2]|0,c[A>>2]|0)|0;c[n>>2]=(c[u>>2]|0)+(c[A>>2]|0);y=e+4|0;c[y>>2]=(c[y>>2]|0)-(c[A>>2]|0);c[z>>2]=c[r>>2];if((c[n>>2]|0)>>>0<=(c[x>>2]|0)>>>0?(c[e+4>>2]|0)>>>0>=3:0)break;while(1){if((c[n>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;y=c[z>>2]|0;c[z>>2]=y+1;p=a[y>>0]|0;y=c[n>>2]|0;c[n>>2]=y+1;a[y>>0]=p;}c[m>>2]=c[v>>2];C=c[m>>2]|0;l=k;return C|0;}}while(0);if((c[e+8>>2]|0)>>>0<8){c[B>>2]=c[6816+(c[e+8>>2]<<2)>>2];a[c[n>>2]>>0]=a[c[z>>2]>>0]|0;a[(c[n>>2]|0)+1>>0]=a[(c[z>>2]|0)+1>>0]|0;a[(c[n>>2]|0)+2>>0]=a[(c[z>>2]|0)+2>>0]|0;a[(c[n>>2]|0)+3>>0]=a[(c[z>>2]|0)+3>>0]|0;c[z>>2]=(c[z>>2]|0)+(c[6848+(c[e+8>>2]<<2)>>2]|0);Yt((c[n>>2]|0)+4|0,c[z>>2]|0);c[z>>2]=(c[z>>2]|0)+(0-(c[B>>2]|0));}else Zt(c[n>>2]|0,c[z>>2]|0);c[n>>2]=(c[n>>2]|0)+8;c[z>>2]=(c[z>>2]|0)+8;B=c[n>>2]|0;a:do{if((c[w>>2]|0)>>>0>((c[o>>2]|0)+-13|0)>>>0){if(B>>>0<(c[x>>2]|0)>>>0){Xt(c[n>>2]|0,c[z>>2]|0,(c[x>>2]|0)-(c[n>>2]|0)|0);c[z>>2]=(c[z>>2]|0)+((c[x>>2]|0)-(c[n>>2]|0));c[n>>2]=c[x>>2];}while(1){if((c[n>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;r=c[z>>2]|0;c[z>>2]=r+1;A=a[r>>0]|0;r=c[n>>2]|0;c[n>>2]=r+1;a[r>>0]=A;}}else Xt(B,c[z>>2]|0,(c[e+4>>2]|0)-8|0);}while(0);c[m>>2]=c[v>>2];C=c[m>>2]|0;l=k;return C|0;}function Xt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[g>>2];c[j>>2]=c[f>>2];c[k>>2]=(c[j>>2]|0)+(c[h>>2]|0);do{Zt(c[j>>2]|0,c[i>>2]|0);c[j>>2]=(c[j>>2]|0)+8;c[i>>2]=(c[i>>2]|0)+8;}while((c[j>>2]|0)>>>0<(c[k>>2]|0)>>>0);l=e;return;}function Yt(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[f>>2]|0;f=c[g>>2]|0;a[d>>0]=a[f>>0]|0;a[d+1>>0]=a[f+1>>0]|0;a[d+2>>0]=a[f+2>>0]|0;a[d+3>>0]=a[f+3>>0]|0;l=e;return;}function Zt(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[f>>2]|0;f=c[g>>2]|0;a[d>>0]=a[f>>0]|0;a[d+1>>0]=a[f+1>>0]|0;a[d+2>>0]=a[f+2>>0]|0;a[d+3>>0]=a[f+3>>0]|0;a[d+4>>0]=a[f+4>>0]|0;a[d+5>>0]=a[f+5>>0]|0;a[d+6>>0]=a[f+6>>0]|0;a[d+7>>0]=a[f+7>>0]|0;l=e;return;}function _t(d){d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e;g=e+4|0;c[f>>2]=d;d=(c[(c[f>>2]|0)+4>>2]|0)+(c[c[f>>2]>>2]<<2)|0;b[g>>1]=b[d>>1]|0;b[g+2>>1]=b[d+2>>1]|0;l=e;return a[g+2>>0]|0;}function $t(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=cu(c[e>>2]|0,c[f>>2]|0)|0;du(c[e>>2]|0,c[f>>2]|0);l=d;return c[g>>2]|0;}function au(){return 1;}function bu(a,f){a=a|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0;g=l;l=l+32|0;h=g+12|0;i=g+8|0;j=g+16|0;k=g+4|0;m=g;c[h>>2]=a;c[i>>2]=f;f=(c[(c[h>>2]|0)+4>>2]|0)+(c[c[h>>2]>>2]<<2)|0;b[j>>1]=b[f>>1]|0;b[j+2>>1]=b[f+2>>1]|0;c[k>>2]=d[j+3>>0];c[m>>2]=$t(c[i>>2]|0,c[k>>2]|0)|0;c[c[h>>2]>>2]=(e[j>>1]|0)+(c[m>>2]|0);l=g;return;}function cu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;c[e>>2]=a;c[f>>2]=b;c[d>>2]=31;l=d;return c[c[e>>2]>>2]<<(c[(c[e>>2]|0)+4>>2]&31)>>>1>>>(31-(c[f>>2]|0)&31)|0;}function du(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=(c[e>>2]|0)+4|0;c[b>>2]=(c[b>>2]|0)+(c[f>>2]|0);l=d;return;}function eu(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(au()|0)!=0;f=c[e>>2]|0;if(a){c[d>>2]=Mq(f)|0;g=c[d>>2]|0;l=b;return g|0;}else{a=Pq(f)|0;c[d>>2]=a;g=c[d>>2]|0;l=b;return g|0;}return 0;}function fu(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=31-(Q(c[d>>2]|0)|0)|0;l=b;return a|0;}function gu(b,e,f,g,h,i,j,k,m){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;n=l;l=l+160|0;o=n+152|0;p=n+148|0;q=n+144|0;r=n+140|0;s=n+136|0;t=n+132|0;u=n+128|0;v=n+124|0;w=n+120|0;x=n+116|0;y=n+112|0;z=n;A=n+108|0;c[p>>2]=b;c[q>>2]=e;c[r>>2]=f;c[s>>2]=g;c[t>>2]=h;c[u>>2]=i;c[v>>2]=j;c[w>>2]=k;c[x>>2]=m;a:do{switch(c[q>>2]|0){case 1:{if(!(c[u>>2]|0)){c[o>>2]=-72;break a;}if((d[c[t>>2]>>0]|0)>>>0>(c[r>>2]|0)>>>0){c[o>>2]=-20;break a;}else{hu(c[p>>2]|0,a[c[t>>2]>>0]|0)|0;c[o>>2]=1;break a;}break;}case 0:{iu(c[p>>2]|0,c[v>>2]|0,c[r>>2]|0,c[w>>2]|0)|0;c[o>>2]=0;break;}case 2:{if(c[x>>2]|0){c[o>>2]=0;break a;}else{c[o>>2]=-20;break a;}break;}default:{c[A>>2]=ju(z,r,y,c[t>>2]|0,c[u>>2]|0)|0;if(jr(c[A>>2]|0)|0){c[o>>2]=-20;break a;}if((c[y>>2]|0)>>>0>(c[s>>2]|0)>>>0){c[o>>2]=-20;break a;}else{iu(c[p>>2]|0,z,c[r>>2]|0,c[y>>2]|0)|0;c[o>>2]=c[A>>2];break a;}}}}while(0);l=n;return c[o>>2]|0;}function hu(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+16|0;h=f+20|0;i=f+12|0;j=f+8|0;k=f+4|0;m=f;c[g>>2]=d;a[h>>0]=e;c[i>>2]=c[g>>2];c[j>>2]=c[i>>2];c[k>>2]=(c[g>>2]|0)+4;c[m>>2]=c[k>>2];b[c[j>>2]>>1]=0;b[(c[j>>2]|0)+2>>1]=0;b[c[m>>2]>>1]=0;a[(c[m>>2]|0)+2>>0]=a[h>>0]|0;a[(c[m>>2]|0)+3>>0]=0;l=f;return 0;}function iu(f,g,h,i){f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;j=l;l=l+592|0;k=j+576|0;m=j+572|0;n=j+568|0;o=j+564|0;p=j+560|0;q=j+556|0;r=j+552|0;s=j;t=j+548|0;u=j+544|0;v=j+540|0;w=j+584|0;x=j+582|0;y=j+536|0;z=j+532|0;A=j+528|0;B=j+524|0;C=j+520|0;D=j+516|0;E=j+512|0;F=j+588|0;G=j+580|0;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;c[p>>2]=i;c[q>>2]=(c[m>>2]|0)+4;c[r>>2]=c[q>>2];c[t>>2]=(c[o>>2]|0)+1;c[u>>2]=1<<c[p>>2];c[v>>2]=(c[u>>2]|0)-1;if((c[o>>2]|0)>>>0>255){c[k>>2]=-46;H=c[k>>2]|0;l=j;return H|0;}if((c[p>>2]|0)>>>0>12){c[k>>2]=-44;H=c[k>>2]|0;l=j;return H|0;}b[w>>1]=c[p>>2];b[w+2>>1]=1;b[x>>1]=1<<(c[p>>2]|0)-1;c[y>>2]=0;while(1){if((c[y>>2]|0)>>>0>=(c[t>>2]|0)>>>0)break;if((b[(c[n>>2]|0)+(c[y>>2]<<1)>>1]|0)==-1){o=c[y>>2]&255;q=c[r>>2]|0;i=c[v>>2]|0;c[v>>2]=i+-1;a[q+(i<<2)+2>>0]=o;b[s+(c[y>>2]<<1)>>1]=1;}else{if((b[(c[n>>2]|0)+(c[y>>2]<<1)>>1]|0)>=(b[x>>1]|0))b[w+2>>1]=0;b[s+(c[y>>2]<<1)>>1]=b[(c[n>>2]|0)+(c[y>>2]<<1)>>1]|0;}c[y>>2]=(c[y>>2]|0)+1;}y=c[m>>2]|0;b[y>>1]=b[w>>1]|0;b[y+2>>1]=b[w+2>>1]|0;c[z>>2]=(c[u>>2]|0)-1;c[A>>2]=((c[u>>2]|0)>>>1)+((c[u>>2]|0)>>>3)+3;c[C>>2]=0;c[B>>2]=0;while(1){if((c[B>>2]|0)>>>0>=(c[t>>2]|0)>>>0)break;c[D>>2]=0;while(1){I=c[B>>2]|0;if((c[D>>2]|0)>=(b[(c[n>>2]|0)+(c[B>>2]<<1)>>1]|0))break;a[(c[r>>2]|0)+(c[C>>2]<<2)+2>>0]=I;c[C>>2]=(c[C>>2]|0)+(c[A>>2]|0)&c[z>>2];while(1){if((c[C>>2]|0)>>>0<=(c[v>>2]|0)>>>0)break;c[C>>2]=(c[C>>2]|0)+(c[A>>2]|0)&c[z>>2];}c[D>>2]=(c[D>>2]|0)+1;}c[B>>2]=I+1;}if(c[C>>2]|0){c[k>>2]=-1;H=c[k>>2]|0;l=j;return H|0;}c[E>>2]=0;while(1){if((c[E>>2]|0)>>>0>=(c[u>>2]|0)>>>0)break;a[F>>0]=a[(c[r>>2]|0)+(c[E>>2]<<2)+2>>0]|0;C=s+(d[F>>0]<<1)|0;I=b[C>>1]|0;b[C>>1]=I+1<<16>>16;b[G>>1]=I;I=c[p>>2]|0;C=I-(fu(e[G>>1]|0)|0)&255;a[(c[r>>2]|0)+(c[E>>2]<<2)+3>>0]=C;b[(c[r>>2]|0)+(c[E>>2]<<2)>>1]=(e[G>>1]<<d[(c[r>>2]|0)+(c[E>>2]<<2)+3>>0])-(c[u>>2]|0);c[E>>2]=(c[E>>2]|0)+1;}c[k>>2]=0;H=c[k>>2]|0;l=j;return H|0;}function ju(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;h=l;l=l+80|0;i=h+64|0;j=h+60|0;k=h+56|0;m=h+52|0;n=h+48|0;o=h+44|0;p=h+40|0;q=h+36|0;r=h+32|0;s=h+28|0;t=h+24|0;u=h+20|0;v=h+16|0;w=h+12|0;x=h+8|0;y=h+4|0;z=h;A=h+70|0;B=h+68|0;c[j>>2]=a;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=c[n>>2];c[q>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[r>>2]=c[p>>2];c[x>>2]=0;c[y>>2]=0;if((c[o>>2]|0)>>>0<4){c[i>>2]=-72;C=c[i>>2]|0;l=h;return C|0;}c[v>>2]=Mq(c[r>>2]|0)|0;c[s>>2]=(c[v>>2]&15)+5;if((c[s>>2]|0)>15){c[i>>2]=-44;C=c[i>>2]|0;l=h;return C|0;}c[v>>2]=(c[v>>2]|0)>>>4;c[w>>2]=4;c[c[m>>2]>>2]=c[s>>2];c[t>>2]=(1<<c[s>>2])+1;c[u>>2]=1<<c[s>>2];c[s>>2]=(c[s>>2]|0)+1;a:while(1){if((c[t>>2]|0)<=1)break;if((c[x>>2]|0)>>>0>(c[c[k>>2]>>2]|0)>>>0)break;do{if(c[y>>2]|0){c[z>>2]=c[x>>2];while(1){if((c[v>>2]&65535|0)!=65535)break;c[z>>2]=(c[z>>2]|0)+24;if((c[r>>2]|0)>>>0<((c[q>>2]|0)+-5|0)>>>0){c[r>>2]=(c[r>>2]|0)+2;m=Mq(c[r>>2]|0)|0;c[v>>2]=m>>>(c[w>>2]|0);}else{c[v>>2]=(c[v>>2]|0)>>>16;c[w>>2]=(c[w>>2]|0)+16;}}while(1){if((c[v>>2]&3|0)!=3)break;c[z>>2]=(c[z>>2]|0)+3;c[v>>2]=(c[v>>2]|0)>>>2;c[w>>2]=(c[w>>2]|0)+2;}c[z>>2]=(c[z>>2]|0)+(c[v>>2]&3);c[w>>2]=(c[w>>2]|0)+2;if((c[z>>2]|0)>>>0>(c[c[k>>2]>>2]|0)>>>0){D=19;break a;}while(1){if((c[x>>2]|0)>>>0>=(c[z>>2]|0)>>>0)break;m=c[j>>2]|0;n=c[x>>2]|0;c[x>>2]=n+1;b[m+(n<<1)>>1]=0;}if((c[r>>2]|0)>>>0>((c[q>>2]|0)+-7|0)>>>0?((c[r>>2]|0)+(c[w>>2]>>3)|0)>>>0>((c[q>>2]|0)+-4|0)>>>0:0){c[v>>2]=(c[v>>2]|0)>>>2;break;}c[r>>2]=(c[r>>2]|0)+(c[w>>2]>>3);c[w>>2]=c[w>>2]&7;n=Mq(c[r>>2]|0)|0;c[v>>2]=n>>>(c[w>>2]|0);}}while(0);b[A>>1]=(c[u>>2]<<1)-1-(c[t>>2]|0);n=c[v>>2]|0;m=c[u>>2]|0;if((c[v>>2]&(c[u>>2]|0)-1)>>>0<(b[A>>1]|0)>>>0){b[B>>1]=n&m-1;c[w>>2]=(c[w>>2]|0)+((c[s>>2]|0)-1);}else{b[B>>1]=n&(m<<1)-1;if((b[B>>1]|0)>=(c[u>>2]|0))b[B>>1]=(b[B>>1]|0)-(b[A>>1]|0);c[w>>2]=(c[w>>2]|0)+(c[s>>2]|0);}b[B>>1]=(b[B>>1]|0)+-1<<16>>16;m=(ku(b[B>>1]|0)|0)<<16>>16;c[t>>2]=(c[t>>2]|0)-m;m=b[B>>1]|0;n=c[j>>2]|0;g=c[x>>2]|0;c[x>>2]=g+1;b[n+(g<<1)>>1]=m;c[y>>2]=((b[B>>1]|0)!=0^1)&1;while(1){if((c[t>>2]|0)>=(c[u>>2]|0))break;c[s>>2]=(c[s>>2]|0)+-1;c[u>>2]=c[u>>2]>>1;}if((c[r>>2]|0)>>>0>((c[q>>2]|0)+-7|0)>>>0?((c[r>>2]|0)+(c[w>>2]>>3)|0)>>>0>((c[q>>2]|0)+-4|0)>>>0:0){c[w>>2]=(c[w>>2]|0)-((c[q>>2]|0)+-4-(c[r>>2]|0)<<3);c[r>>2]=(c[q>>2]|0)+-4;}else{c[r>>2]=(c[r>>2]|0)+(c[w>>2]>>3);c[w>>2]=c[w>>2]&7;}m=Mq(c[r>>2]|0)|0;c[v>>2]=m>>>(c[w>>2]&31);}if((D|0)==19){c[i>>2]=-48;C=c[i>>2]|0;l=h;return C|0;}if((c[t>>2]|0)!=1){c[i>>2]=-1;C=c[i>>2]|0;l=h;return C|0;}c[c[k>>2]>>2]=(c[x>>2]|0)-1;c[r>>2]=(c[r>>2]|0)+((c[w>>2]|0)+7>>3);if(((c[r>>2]|0)-(c[p>>2]|0)|0)>>>0>(c[o>>2]|0)>>>0){c[i>>2]=-72;C=c[i>>2]|0;l=h;return C|0;}else{c[i>>2]=(c[r>>2]|0)-(c[p>>2]|0);C=c[i>>2]|0;l=h;return C|0;}return 0;}function ku(a){a=a|0;var c=0,d=0;c=l;l=l+16|0;d=c;b[d>>1]=a;a=b[d>>1]|0;l=c;return((b[d>>1]|0)<0?0-a|0:a)&65535|0;}function lu(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;g=l;l=l+8224|0;h=g+8220|0;i=g+8216|0;j=g+8212|0;k=g+8208|0;m=g+8204|0;n=g;o=g+8200|0;p=g+8196|0;c[i>>2]=a;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;oE(n|0,0,8194)|0;b[n>>1]=12;c[o>>2]=c[k>>2];c[p>>2]=Ju(n,c[k>>2]|0,c[m>>2]|0)|0;k=(ou(c[p>>2]|0)|0)!=0;f=c[p>>2]|0;if(k){c[h>>2]=f;q=c[h>>2]|0;l=g;return q|0;}if(f>>>0>=(c[m>>2]|0)>>>0){c[h>>2]=-72;q=c[h>>2]|0;l=g;return q|0;}else{c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[m>>2]=(c[m>>2]|0)-(c[p>>2]|0);c[h>>2]=Nu(c[i>>2]|0,c[j>>2]|0,c[o>>2]|0,c[m>>2]|0,n)|0;q=c[h>>2]|0;l=g;return q|0;}return 0;}function mu(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;g=l;l=l+48|0;h=g+44|0;i=g+40|0;j=g+36|0;k=g+32|0;m=g+28|0;n=g+16|0;o=g+12|0;p=g+8|0;q=g+4|0;r=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=e;c[m>>2]=f;if(!(c[j>>2]|0)){c[h>>2]=-70;s=c[h>>2]|0;l=g;return s|0;}if((c[m>>2]|0)>>>0>(c[j>>2]|0)>>>0){c[h>>2]=-20;s=c[h>>2]|0;l=g;return s|0;}if((c[m>>2]|0)==(c[j>>2]|0)){mE(c[i>>2]|0,c[k>>2]|0,c[j>>2]|0)|0;c[h>>2]=c[j>>2];s=c[h>>2]|0;l=g;return s|0;}if((c[m>>2]|0)==1){oE(c[i>>2]|0,(d[c[k>>2]>>0]|0)&255|0,c[j>>2]|0)|0;c[h>>2]=c[j>>2];s=c[h>>2]|0;l=g;return s|0;}c[o>>2]=(c[m>>2]<<4>>>0)/((c[j>>2]|0)>>>0)|0;c[p>>2]=(c[j>>2]|0)>>>8;c[q>>2]=0;while(1){if((c[q>>2]|0)>>>0>=3)break;f=(c[7008+((c[o>>2]|0)*24|0)+(c[q>>2]<<3)>>2]|0)+(N(c[7008+((c[o>>2]|0)*24|0)+(c[q>>2]<<3)+4>>2]|0,c[p>>2]|0)|0)|0;c[n+(c[q>>2]<<2)>>2]=f;c[q>>2]=(c[q>>2]|0)+1;}q=n+4|0;c[q>>2]=(c[q>>2]|0)+((c[n+4>>2]|0)>>>4);q=n+8|0;c[q>>2]=(c[q>>2]|0)+((c[n+8>>2]|0)>>>3);c[r>>2]=0;c[r>>2]=(c[n+4>>2]|0)>>>0<(c[n>>2]|0)>>>0?1:0;c[h>>2]=sc[c[11964+(c[r>>2]<<2)>>2]&15](c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;s=c[h>>2]|0;l=g;return s|0;}function nu(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;g=l;l=l+80|0;h=g+68|0;i=g+64|0;j=g+60|0;k=g+56|0;m=g+52|0;n=g+48|0;o=g+44|0;p=g+40|0;q=g+36|0;r=g+32|0;s=g+28|0;t=g+24|0;u=g+8|0;v=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=c[k>>2];c[p>>2]=c[i>>2];c[q>>2]=(c[p>>2]|0)+(c[j>>2]|0);c[r>>2]=c[c[n>>2]>>2];c[s>>2]=c[n>>2];c[t>>2]=(c[s>>2]|0)+4;c[v>>2]=St(u,c[o>>2]|0,c[m>>2]|0)|0;if(ou(c[v>>2]|0)|0){c[h>>2]=c[v>>2];w=c[h>>2]|0;l=g;return w|0;}pu(c[p>>2]|0,u,c[q>>2]|0,c[t>>2]|0,c[r>>2]|0)|0;if(qu(u)|0){c[h>>2]=c[j>>2];w=c[h>>2]|0;l=g;return w|0;}else{c[h>>2]=-20;w=c[h>>2]|0;l=g;return w|0;}return 0;}function ou(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=jr(c[d>>2]|0)|0;l=b;return a|0;}function pu(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=l;l=l+32|0;h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;m=g+4|0;n=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=c[h>>2];while(1){if(Ut(c[i>>2]|0)|0)break;if((c[h>>2]|0)>>>0>=((c[j>>2]|0)+-7|0)>>>0)break;if(ru()|0){f=su(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}ru()|0;f=su(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;if(ru()|0){f=su(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}f=su(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}while(1){if(Ut(c[i>>2]|0)|0)break;if((c[h>>2]|0)>>>0>((c[j>>2]|0)+-2|0)>>>0)break;f=su(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}while(1){o=c[h>>2]|0;if((c[h>>2]|0)>>>0>((c[j>>2]|0)+-2|0)>>>0)break;f=su(o,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}if(o>>>0>=(c[j>>2]|0)>>>0){p=c[h>>2]|0;q=c[n>>2]|0;r=p;s=q;t=r-s|0;l=g;return t|0;}j=tu(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+j;p=c[h>>2]|0;q=c[n>>2]|0;r=p;s=q;t=r-s|0;l=g;return t|0;}function qu(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b;c[d>>2]=a;if((c[(c[d>>2]|0)+8>>2]|0)!=(c[(c[d>>2]|0)+12>>2]|0)){e=0;f=e&1;l=b;return f|0;}e=(c[(c[d>>2]|0)+4>>2]|0)==32;f=e&1;l=b;return f|0;}function ru(){return 0;}function su(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0;h=l;l=l+32|0;i=h+16|0;j=h+12|0;k=h+8|0;m=h+4|0;n=h;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=g;c[n>>2]=uu(c[j>>2]|0,c[m>>2]|0)|0;m=c[i>>2]|0;i=(c[k>>2]|0)+(c[n>>2]<<2)|0;a[m>>0]=a[i>>0]|0;a[m+1>>0]=a[i+1>>0]|0;du(c[j>>2]|0,d[(c[k>>2]|0)+(c[n>>2]<<2)+2>>0]|0);l=h;return d[(c[k>>2]|0)+(c[n>>2]<<2)+3>>0]|0|0;}function tu(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0;h=l;l=l+32|0;i=h+16|0;j=h+12|0;k=h+8|0;m=h+4|0;n=h;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=g;c[n>>2]=uu(c[j>>2]|0,c[m>>2]|0)|0;a[c[i>>2]>>0]=a[(c[k>>2]|0)+(c[n>>2]<<2)>>0]|0;i=c[j>>2]|0;if((d[(c[k>>2]|0)+(c[n>>2]<<2)+3>>0]|0|0)==1){du(i,d[(c[k>>2]|0)+(c[n>>2]<<2)+2>>0]|0);l=h;return 1;}if((c[i+4>>2]|0)>>>0>=32){l=h;return 1;}du(c[j>>2]|0,d[(c[k>>2]|0)+(c[n>>2]<<2)+2>>0]|0);if((c[(c[j>>2]|0)+4>>2]|0)>>>0<=32){l=h;return 1;}c[(c[j>>2]|0)+4>>2]=32;l=h;return 1;}function uu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;c[e>>2]=a;c[f>>2]=b;c[d>>2]=31;l=d;return c[c[e>>2]>>2]<<(c[(c[e>>2]|0)+4>>2]&31)>>>(32-(c[f>>2]|0)&31)|0;}function vu(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;g=l;l=l+8224|0;h=g+8220|0;i=g+8216|0;j=g+8212|0;k=g+8208|0;m=g+8204|0;n=g;o=g+8200|0;p=g+8196|0;c[i>>2]=a;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;oE(n|0,0,8194)|0;b[n>>1]=12;c[o>>2]=c[k>>2];c[p>>2]=Ju(n,c[k>>2]|0,c[m>>2]|0)|0;k=(ou(c[p>>2]|0)|0)!=0;f=c[p>>2]|0;if(k){c[h>>2]=f;q=c[h>>2]|0;l=g;return q|0;}if(f>>>0>=(c[m>>2]|0)>>>0){c[h>>2]=-72;q=c[h>>2]|0;l=g;return q|0;}else{c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[m>>2]=(c[m>>2]|0)-(c[p>>2]|0);c[h>>2]=Ku(c[i>>2]|0,c[j>>2]|0,c[o>>2]|0,c[m>>2]|0,n)|0;q=c[h>>2]|0;l=g;return q|0;}return 0;}function wu(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;f=l;l=l+16416|0;g=f+16412|0;h=f+16408|0;i=f+16404|0;j=f+16400|0;k=f+16396|0;m=f;n=f+16392|0;o=f+16388|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;oE(m|0,0,16388)|0;c[m>>2]=12;c[n>>2]=c[j>>2];c[o>>2]=xu(m,c[j>>2]|0,c[k>>2]|0)|0;j=(ou(c[o>>2]|0)|0)!=0;e=c[o>>2]|0;if(j){c[g>>2]=e;p=c[g>>2]|0;l=f;return p|0;}if(e>>>0>=(c[k>>2]|0)>>>0){c[g>>2]=-72;p=c[g>>2]|0;l=f;return p|0;}else{c[n>>2]=(c[n>>2]|0)+(c[o>>2]|0);c[k>>2]=(c[k>>2]|0)-(c[o>>2]|0);c[g>>2]=yu(c[h>>2]|0,c[i>>2]|0,c[n>>2]|0,c[k>>2]|0,m)|0;p=c[g>>2]|0;l=f;return p|0;}return 0;}function xu(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;g=l;l=l+2128|0;h=g+2124|0;i=g+2120|0;j=g+2116|0;k=g+2112|0;m=g+1760|0;n=g+1248|0;o=g+1168|0;p=g+1088|0;q=g+2108|0;r=g;s=g+2104|0;t=g+2100|0;u=g+2096|0;v=g+2092|0;w=g+2088|0;x=g+2084|0;y=g+2080|0;z=g+2076|0;A=g+2072|0;B=g+2068|0;C=g+2064|0;D=g+2060|0;E=g+2056|0;F=g+2052|0;G=g+2048|0;H=g+2044|0;I=g+2040|0;J=g+2036|0;K=g+2032|0;L=g+2028|0;M=g+2024|0;N=g+2020|0;O=g+2016|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;f=o;e=f+68|0;do{c[f>>2]=0;f=f+4|0;}while((f|0)<(e|0));f=p;e=f+72|0;do{c[f>>2]=0;f=f+4|0;}while((f|0)<(e|0));c[q>>2]=p+4;c[w>>2]=c[c[i>>2]>>2];c[y>>2]=c[i>>2];c[z>>2]=(c[y>>2]|0)+4;if((c[w>>2]|0)>>>0>16){c[h>>2]=-44;P=c[h>>2]|0;l=g;return P|0;}c[x>>2]=zu(m,256,o,v,s,c[j>>2]|0,c[k>>2]|0)|0;if(ou(c[x>>2]|0)|0){c[h>>2]=c[x>>2];P=c[h>>2]|0;l=g;return P|0;}if((c[s>>2]|0)>>>0>(c[w>>2]|0)>>>0){c[h>>2]=-44;P=c[h>>2]|0;l=g;return P|0;}c[t>>2]=c[s>>2];while(1){if(c[o+(c[t>>2]<<2)>>2]|0)break;c[t>>2]=(c[t>>2]|0)+-1;}c[B>>2]=0;c[A>>2]=1;while(1){Q=c[B>>2]|0;if((c[A>>2]|0)>>>0>=((c[t>>2]|0)+1|0)>>>0)break;c[C>>2]=Q;c[B>>2]=(c[B>>2]|0)+(c[o+(c[A>>2]<<2)>>2]|0);c[(c[q>>2]|0)+(c[A>>2]<<2)>>2]=c[C>>2];c[A>>2]=(c[A>>2]|0)+1;}c[c[q>>2]>>2]=Q;c[u>>2]=c[B>>2];c[D>>2]=0;while(1){if((c[D>>2]|0)>>>0>=(c[v>>2]|0)>>>0)break;c[E>>2]=d[m+(c[D>>2]|0)>>0];B=(c[q>>2]|0)+(c[E>>2]<<2)|0;Q=c[B>>2]|0;c[B>>2]=Q+1;c[F>>2]=Q;a[n+(c[F>>2]<<1)>>0]=c[D>>2];a[n+(c[F>>2]<<1)+1>>0]=c[E>>2];c[D>>2]=(c[D>>2]|0)+1;}c[c[q>>2]>>2]=0;c[G>>2]=r;c[H>>2]=(c[w>>2]|0)-(c[s>>2]|0)-1;c[I>>2]=0;c[J>>2]=1;while(1){if((c[J>>2]|0)>>>0>=((c[t>>2]|0)+1|0)>>>0)break;c[K>>2]=c[I>>2];c[I>>2]=(c[I>>2]|0)+(c[o+(c[J>>2]<<2)>>2]<<(c[J>>2]|0)+(c[H>>2]|0));c[(c[G>>2]|0)+(c[J>>2]<<2)>>2]=c[K>>2];c[J>>2]=(c[J>>2]|0)+1;}c[L>>2]=(c[s>>2]|0)+1-(c[t>>2]|0);c[M>>2]=c[L>>2];while(1){if((c[M>>2]|0)>>>0>=((c[w>>2]|0)-(c[L>>2]|0)+1|0)>>>0)break;c[N>>2]=r+((c[M>>2]|0)*68|0);c[O>>2]=1;while(1){if((c[O>>2]|0)>>>0>=((c[t>>2]|0)+1|0)>>>0)break;c[(c[N>>2]|0)+(c[O>>2]<<2)>>2]=(c[(c[G>>2]|0)+(c[O>>2]<<2)>>2]|0)>>>(c[M>>2]|0);c[O>>2]=(c[O>>2]|0)+1;}c[M>>2]=(c[M>>2]|0)+1;}Au(c[z>>2]|0,c[w>>2]|0,n,c[u>>2]|0,p,r,c[t>>2]|0,(c[s>>2]|0)+1|0);c[h>>2]=c[x>>2];P=c[h>>2]|0;l=g;return P|0;}function yu(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;g=l;l=l+192|0;h=g+184|0;i=g+180|0;j=g+176|0;k=g+172|0;m=g+168|0;n=g+164|0;o=g+160|0;p=g+156|0;q=g+152|0;r=g+148|0;s=g+144|0;t=g+140|0;u=g+136|0;v=g+120|0;w=g+104|0;x=g+88|0;y=g+72|0;z=g+64|0;A=g+60|0;B=g+56|0;C=g+52|0;D=g+48|0;E=g+44|0;F=g+40|0;G=g+36|0;H=g+32|0;I=g+28|0;J=g+24|0;K=g+20|0;L=g+16|0;M=g+12|0;N=g+8|0;O=g+4|0;P=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;if((c[m>>2]|0)>>>0<10){c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}c[o>>2]=c[k>>2];c[p>>2]=c[i>>2];c[q>>2]=(c[p>>2]|0)+(c[j>>2]|0);c[r>>2]=c[n>>2];c[s>>2]=(c[r>>2]|0)+4;c[t>>2]=c[c[n>>2]>>2];c[z>>2]=(Oq(c[o>>2]|0)|0)&65535;c[A>>2]=(Oq((c[o>>2]|0)+2|0)|0)&65535;c[B>>2]=(Oq((c[o>>2]|0)+4|0)|0)&65535;c[D>>2]=(c[o>>2]|0)+6;c[E>>2]=(c[D>>2]|0)+(c[z>>2]|0);c[F>>2]=(c[E>>2]|0)+(c[A>>2]|0);c[G>>2]=(c[F>>2]|0)+(c[B>>2]|0);c[H>>2]=(((c[j>>2]|0)+3|0)>>>0)/4|0;c[I>>2]=(c[p>>2]|0)+(c[H>>2]|0);c[J>>2]=(c[I>>2]|0)+(c[H>>2]|0);c[K>>2]=(c[J>>2]|0)+(c[H>>2]|0);c[L>>2]=c[p>>2];c[M>>2]=c[I>>2];c[N>>2]=c[J>>2];c[O>>2]=c[K>>2];c[C>>2]=(c[m>>2]|0)-((c[z>>2]|0)+(c[A>>2]|0)+(c[B>>2]|0)+6);if((c[C>>2]|0)>>>0>(c[m>>2]|0)>>>0){c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}c[u>>2]=St(v,c[D>>2]|0,c[z>>2]|0)|0;if(ou(c[u>>2]|0)|0){c[h>>2]=c[u>>2];Q=c[h>>2]|0;l=g;return Q|0;}c[u>>2]=St(w,c[E>>2]|0,c[A>>2]|0)|0;if(ou(c[u>>2]|0)|0){c[h>>2]=c[u>>2];Q=c[h>>2]|0;l=g;return Q|0;}c[u>>2]=St(x,c[F>>2]|0,c[B>>2]|0)|0;if(ou(c[u>>2]|0)|0){c[h>>2]=c[u>>2];Q=c[h>>2]|0;l=g;return Q|0;}c[u>>2]=St(y,c[G>>2]|0,c[C>>2]|0)|0;if(ou(c[u>>2]|0)|0){c[h>>2]=c[u>>2];Q=c[h>>2]|0;l=g;return Q|0;}u=Ut(v)|0;C=u|(Ut(w)|0);u=C|(Ut(x)|0);c[P>>2]=u|(Ut(y)|0);while(1){if(c[P>>2]|0)break;if((c[O>>2]|0)>>>0>=((c[q>>2]|0)+-7|0)>>>0)break;if(ru()|0){u=su(c[L>>2]|0,v,c[s>>2]|0,c[t>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+u;}if(ru()|0){u=su(c[M>>2]|0,w,c[s>>2]|0,c[t>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+u;}if(ru()|0){u=su(c[N>>2]|0,x,c[s>>2]|0,c[t>>2]|0)|0;c[N>>2]=(c[N>>2]|0)+u;}if(ru()|0){u=su(c[O>>2]|0,y,c[s>>2]|0,c[t>>2]|0)|0;c[O>>2]=(c[O>>2]|0)+u;}ru()|0;u=su(c[L>>2]|0,v,c[s>>2]|0,c[t>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+u;ru()|0;u=su(c[M>>2]|0,w,c[s>>2]|0,c[t>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+u;ru()|0;u=su(c[N>>2]|0,x,c[s>>2]|0,c[t>>2]|0)|0;c[N>>2]=(c[N>>2]|0)+u;ru()|0;u=su(c[O>>2]|0,y,c[s>>2]|0,c[t>>2]|0)|0;c[O>>2]=(c[O>>2]|0)+u;if(ru()|0){u=su(c[L>>2]|0,v,c[s>>2]|0,c[t>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+u;}if(ru()|0){u=su(c[M>>2]|0,w,c[s>>2]|0,c[t>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+u;}if(ru()|0){u=su(c[N>>2]|0,x,c[s>>2]|0,c[t>>2]|0)|0;c[N>>2]=(c[N>>2]|0)+u;}if(ru()|0){u=su(c[O>>2]|0,y,c[s>>2]|0,c[t>>2]|0)|0;c[O>>2]=(c[O>>2]|0)+u;}u=su(c[L>>2]|0,v,c[s>>2]|0,c[t>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+u;u=su(c[M>>2]|0,w,c[s>>2]|0,c[t>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+u;u=su(c[N>>2]|0,x,c[s>>2]|0,c[t>>2]|0)|0;c[N>>2]=(c[N>>2]|0)+u;u=su(c[O>>2]|0,y,c[s>>2]|0,c[t>>2]|0)|0;c[O>>2]=(c[O>>2]|0)+u;u=Ut(v)|0;C=u|(Ut(w)|0);u=C|(Ut(x)|0);c[P>>2]=u|(Ut(y)|0);}if((c[L>>2]|0)>>>0>(c[I>>2]|0)>>>0){c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}if((c[M>>2]|0)>>>0>(c[J>>2]|0)>>>0){c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}if((c[N>>2]|0)>>>0>(c[K>>2]|0)>>>0){c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}pu(c[L>>2]|0,v,c[I>>2]|0,c[s>>2]|0,c[t>>2]|0)|0;pu(c[M>>2]|0,w,c[J>>2]|0,c[s>>2]|0,c[t>>2]|0)|0;pu(c[N>>2]|0,x,c[K>>2]|0,c[s>>2]|0,c[t>>2]|0)|0;pu(c[O>>2]|0,y,c[q>>2]|0,c[s>>2]|0,c[t>>2]|0)|0;t=qu(v)|0;v=t&(qu(w)|0);w=v&(qu(x)|0);c[P>>2]=w&(qu(y)|0);if(c[P>>2]|0){c[h>>2]=c[j>>2];Q=c[h>>2]|0;l=g;return Q|0;}else{c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}return 0;}function zu(b,e,f,g,h,i,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;k=l;l=l+80|0;m=k+72|0;n=k+68|0;o=k+64|0;p=k+60|0;q=k+56|0;r=k+52|0;s=k+48|0;t=k+44|0;u=k+40|0;v=k+36|0;w=k+32|0;x=k+28|0;y=k+24|0;z=k+20|0;A=k+16|0;B=k+12|0;C=k+8|0;D=k+4|0;E=k;c[n>>2]=b;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[v>>2]=c[s>>2];if(!(c[t>>2]|0)){c[m>>2]=-72;F=c[m>>2]|0;l=k;return F|0;}c[w>>2]=d[c[v>>2]>>0];s=c[w>>2]|0;a:do{if((c[w>>2]|0)>>>0<128){if((s+1|0)>>>0>(c[t>>2]|0)>>>0){c[m>>2]=-72;F=c[m>>2]|0;l=k;return F|0;}c[x>>2]=Eu(c[n>>2]|0,(c[o>>2]|0)-1|0,(c[v>>2]|0)+1|0,c[w>>2]|0)|0;if(jr(c[x>>2]|0)|0){c[m>>2]=c[x>>2];F=c[m>>2]|0;l=k;return F|0;}}else{j=c[w>>2]|0;if(s>>>0>=242){c[x>>2]=c[7392+(j-242<<2)>>2];oE(c[n>>2]|0,1,c[o>>2]|0)|0;c[w>>2]=0;break;}c[x>>2]=j-127;c[w>>2]=(((c[x>>2]|0)+1|0)>>>0)/2|0;if(((c[w>>2]|0)+1|0)>>>0>(c[t>>2]|0)>>>0){c[m>>2]=-72;F=c[m>>2]|0;l=k;return F|0;}if((c[x>>2]|0)>>>0>=(c[o>>2]|0)>>>0){c[m>>2]=-20;F=c[m>>2]|0;l=k;return F|0;}c[v>>2]=(c[v>>2]|0)+1;c[y>>2]=0;while(1){if((c[y>>2]|0)>>>0>=(c[x>>2]|0)>>>0)break a;a[(c[n>>2]|0)+(c[y>>2]|0)>>0]=(d[(c[v>>2]|0)+(((c[y>>2]|0)>>>0)/2|0)>>0]|0)>>4;a[(c[n>>2]|0)+((c[y>>2]|0)+1)>>0]=(d[(c[v>>2]|0)+(((c[y>>2]|0)>>>0)/2|0)>>0]|0)&15;c[y>>2]=(c[y>>2]|0)+2;}}}while(0);y=c[p>>2]|0;v=y+68|0;do{c[y>>2]=0;y=y+4|0;}while((y|0)<(v|0));c[u>>2]=0;c[z>>2]=0;while(1){if((c[z>>2]|0)>>>0>=(c[x>>2]|0)>>>0)break;if((d[(c[n>>2]|0)+(c[z>>2]|0)>>0]|0|0)>=16){G=20;break;}y=(c[p>>2]|0)+((d[(c[n>>2]|0)+(c[z>>2]|0)>>0]|0)<<2)|0;c[y>>2]=(c[y>>2]|0)+1;c[u>>2]=(c[u>>2]|0)+(1<<(d[(c[n>>2]|0)+(c[z>>2]|0)>>0]|0)>>1);c[z>>2]=(c[z>>2]|0)+1;}if((G|0)==20){c[m>>2]=-20;F=c[m>>2]|0;l=k;return F|0;}if(!(c[u>>2]|0)){c[m>>2]=-20;F=c[m>>2]|0;l=k;return F|0;}c[A>>2]=(fu(c[u>>2]|0)|0)+1;if((c[A>>2]|0)>>>0>16){c[m>>2]=-20;F=c[m>>2]|0;l=k;return F|0;}c[c[r>>2]>>2]=c[A>>2];c[B>>2]=1<<c[A>>2];c[C>>2]=(c[B>>2]|0)-(c[u>>2]|0);c[D>>2]=1<<(fu(c[C>>2]|0)|0);c[E>>2]=(fu(c[C>>2]|0)|0)+1;if((c[D>>2]|0)!=(c[C>>2]|0)){c[m>>2]=-20;F=c[m>>2]|0;l=k;return F|0;}a[(c[n>>2]|0)+(c[x>>2]|0)>>0]=c[E>>2];n=(c[p>>2]|0)+(c[E>>2]<<2)|0;c[n>>2]=(c[n>>2]|0)+1;if((c[(c[p>>2]|0)+4>>2]|0)>>>0>=2?(c[(c[p>>2]|0)+4>>2]&1|0)==0:0){c[c[q>>2]>>2]=(c[x>>2]|0)+1;c[m>>2]=(c[w>>2]|0)+1;F=c[m>>2]|0;l=k;return F|0;}c[m>>2]=-20;F=c[m>>2]|0;l=k;return F|0;}function Au(e,f,g,h,i,j,k,m){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;n=l;l=l+160|0;o=n+140|0;p=n+136|0;q=n+132|0;r=n+128|0;s=n+124|0;t=n+120|0;u=n+116|0;v=n+112|0;w=n;x=n+108|0;y=n+104|0;z=n+100|0;A=n+148|0;B=n+96|0;C=n+92|0;D=n+88|0;E=n+84|0;F=n+80|0;G=n+76|0;H=n+144|0;I=n+72|0;J=n+68|0;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[u>>2]=k;c[v>>2]=m;c[x>>2]=(c[v>>2]|0)-(c[p>>2]|0);c[y>>2]=(c[v>>2]|0)-(c[u>>2]|0);u=w;m=c[t>>2]|0;k=u+68|0;do{c[u>>2]=c[m>>2];u=u+4|0;m=m+4|0;}while((u|0)<(k|0));c[z>>2]=0;while(1){if((c[z>>2]|0)>>>0>=(c[r>>2]|0)>>>0)break;b[A>>1]=d[(c[q>>2]|0)+(c[z>>2]<<1)>>0]|0;c[B>>2]=d[(c[q>>2]|0)+(c[z>>2]<<1)+1>>0];c[C>>2]=(c[v>>2]|0)-(c[B>>2]|0);c[D>>2]=c[w+(c[B>>2]<<2)>>2];c[E>>2]=1<<(c[p>>2]|0)-(c[C>>2]|0);a:do{if(((c[p>>2]|0)-(c[C>>2]|0)|0)>>>0>=(c[y>>2]|0)>>>0){m=(c[C>>2]|0)+(c[x>>2]|0)|0;c[G>>2]=m;c[G>>2]=(c[G>>2]|0)<1?1:m;c[F>>2]=c[(c[s>>2]|0)+(c[G>>2]<<2)>>2];Bu((c[o>>2]|0)+(c[D>>2]<<2)|0,(c[p>>2]|0)-(c[C>>2]|0)|0,c[C>>2]|0,(c[t>>2]|0)+((c[C>>2]|0)*68|0)|0,c[G>>2]|0,(c[q>>2]|0)+(c[F>>2]<<1)|0,(c[r>>2]|0)-(c[F>>2]|0)|0,c[v>>2]|0,b[A>>1]|0);}else{Cu(H,b[A>>1]|0);a[H+2>>0]=c[C>>2];a[H+3>>0]=1;c[J>>2]=(c[D>>2]|0)+(c[E>>2]|0);c[I>>2]=c[D>>2];while(1){if((c[I>>2]|0)>>>0>=(c[J>>2]|0)>>>0)break a;m=(c[o>>2]|0)+(c[I>>2]<<2)|0;b[m>>1]=b[H>>1]|0;b[m+2>>1]=b[H+2>>1]|0;c[I>>2]=(c[I>>2]|0)+1;}}}while(0);m=w+(c[B>>2]<<2)|0;c[m>>2]=(c[m>>2]|0)+(c[E>>2]|0);c[z>>2]=(c[z>>2]|0)+1;}l=n;return;}function Bu(f,g,h,i,j,k,m,n,o){f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;p=l;l=l+160|0;q=p+136|0;r=p+132|0;s=p+128|0;t=p+124|0;u=p+120|0;v=p+116|0;w=p+112|0;x=p+108|0;y=p+144|0;z=p+140|0;A=p;B=p+104|0;C=p+100|0;D=p+96|0;E=p+92|0;F=p+88|0;G=p+84|0;H=p+80|0;I=p+76|0;J=p+72|0;K=p+68|0;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=i;c[u>>2]=j;c[v>>2]=k;c[w>>2]=m;c[x>>2]=n;b[y>>1]=o;o=A;n=c[t>>2]|0;t=o+68|0;do{c[o>>2]=c[n>>2];o=o+4|0;n=n+4|0;}while((o|0)<(t|0));a:do{if((c[u>>2]|0)>1){c[C>>2]=c[A+(c[u>>2]<<2)>>2];Cu(z,b[y>>1]|0);a[z+2>>0]=c[s>>2];a[z+3>>0]=1;c[B>>2]=0;while(1){if((c[B>>2]|0)>>>0>=(c[C>>2]|0)>>>0)break a;n=(c[q>>2]|0)+(c[B>>2]<<2)|0;b[n>>1]=b[z>>1]|0;b[n+2>>1]=b[z+2>>1]|0;c[B>>2]=(c[B>>2]|0)+1;}}}while(0);c[D>>2]=0;while(1){if((c[D>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;c[E>>2]=d[(c[v>>2]|0)+(c[D>>2]<<1)>>0];c[F>>2]=d[(c[v>>2]|0)+(c[D>>2]<<1)+1>>0];c[G>>2]=(c[x>>2]|0)-(c[F>>2]|0);c[H>>2]=1<<(c[r>>2]|0)-(c[G>>2]|0);c[I>>2]=c[A+(c[F>>2]<<2)>>2];c[J>>2]=c[I>>2];c[K>>2]=(c[I>>2]|0)+(c[H>>2]|0);Cu(z,(e[y>>1]|0)+(c[E>>2]<<8)&65535);a[z+2>>0]=(c[G>>2]|0)+(c[s>>2]|0);a[z+3>>0]=2;do{B=c[q>>2]|0;C=c[J>>2]|0;c[J>>2]=C+1;u=B+(C<<2)|0;b[u>>1]=b[z>>1]|0;b[u+2>>1]=b[z+2>>1]|0;}while((c[J>>2]|0)>>>0<(c[K>>2]|0)>>>0);u=A+(c[F>>2]<<2)|0;c[u>>2]=(c[u>>2]|0)+(c[H>>2]|0);c[D>>2]=(c[D>>2]|0)+1;}l=p;return;}function Cu(d,f){d=d|0;f=f|0;var g=0,h=0,i=0,j=0;g=l;l=l+16|0;h=g+4|0;i=g+8|0;j=g;c[h>>2]=d;b[i>>1]=f;f=(Qq()|0)!=0;d=c[h>>2]|0;if(f){Du(d,b[i>>1]|0);l=g;return;}else{c[j>>2]=d;a[c[j>>2]>>0]=b[i>>1];a[(c[j>>2]|0)+1>>0]=(e[i>>1]|0)>>8;l=g;return;}}function Du(d,e){d=d|0;e=e|0;var f=0,g=0,h=0;f=l;l=l+16|0;g=f;h=f+4|0;c[g>>2]=d;b[h>>1]=e;e=c[g>>2]|0;a[e>>0]=a[h>>0]|0;a[e+1>>0]=a[h+1>>0]|0;l=f;return;}function Eu(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;f=l;l=l+16960|0;g=f+16952|0;h=f+16948|0;i=f+16944|0;j=f+16940|0;k=f+16936|0;m=f+16932|0;n=f+16928|0;o=f+16400|0;p=f;q=f+16924|0;r=f+16920|0;s=f+16916|0;t=f+16912|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=c[j>>2];c[n>>2]=c[m>>2];c[r>>2]=255;if((c[k>>2]|0)>>>0<2){c[g>>2]=-72;u=c[g>>2]|0;l=f;return u|0;}c[s>>2]=ju(o,r,q,c[m>>2]|0,c[k>>2]|0)|0;m=(jr(c[s>>2]|0)|0)!=0;j=c[s>>2]|0;if(m){c[g>>2]=j;u=c[g>>2]|0;l=f;return u|0;}if(j>>>0>=(c[k>>2]|0)>>>0){c[g>>2]=-72;u=c[g>>2]|0;l=f;return u|0;}c[n>>2]=(c[n>>2]|0)+(c[s>>2]|0);c[k>>2]=(c[k>>2]|0)-(c[s>>2]|0);c[t>>2]=iu(p,o,c[r>>2]|0,c[q>>2]|0)|0;if(jr(c[t>>2]|0)|0){c[g>>2]=c[t>>2];u=c[g>>2]|0;l=f;return u|0;}else{c[g>>2]=Fu(c[h>>2]|0,c[i>>2]|0,c[n>>2]|0,c[k>>2]|0,p)|0;u=c[g>>2]|0;l=f;return u|0;}return 0;}function Fu(b,d,f,g,h){b=b|0;d=d|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0;i=l;l=l+208|0;j=i+192|0;k=i+188|0;m=i+184|0;n=i+180|0;o=i+176|0;p=i+172|0;q=i+168|0;r=i+164|0;s=i+160|0;t=i+156|0;u=i+152|0;v=i+136|0;w=i+128|0;x=i+120|0;y=i+116|0;z=i+112|0;A=i+108|0;B=i+104|0;C=i+100|0;D=i+96|0;E=i+92|0;F=i+88|0;G=i+84|0;H=i+80|0;I=i+76|0;J=i+72|0;K=i+56|0;L=i+48|0;M=i+40|0;N=i+36|0;O=i+32|0;P=i+28|0;Q=i+24|0;R=i+20|0;S=i+16|0;T=i+12|0;U=i+8|0;V=i+4|0;W=i;c[P>>2]=b;c[Q>>2]=d;c[R>>2]=f;c[S>>2]=g;c[T>>2]=h;c[U>>2]=c[T>>2];c[V>>2]=c[U>>2];c[W>>2]=e[(c[V>>2]|0)+2>>1];V=c[P>>2]|0;P=c[Q>>2]|0;Q=c[R>>2]|0;R=c[S>>2]|0;S=c[T>>2]|0;if(c[W>>2]|0){c[A>>2]=V;c[B>>2]=P;c[C>>2]=Q;c[D>>2]=R;c[E>>2]=S;c[F>>2]=1;c[G>>2]=c[A>>2];c[H>>2]=c[G>>2];c[I>>2]=(c[H>>2]|0)+(c[B>>2]|0);c[J>>2]=(c[I>>2]|0)+-3;c[N>>2]=St(K,c[C>>2]|0,c[D>>2]|0)|0;do{if(jr(c[N>>2]|0)|0)c[z>>2]=c[N>>2];else{Tt(L,K,c[E>>2]|0);Tt(M,K,c[E>>2]|0);while(1){if(Ut(K)|0)break;if((c[H>>2]|0)>>>0>=(c[J>>2]|0)>>>0)break;if(c[F>>2]|0)X=(Gu(L,K)|0)&255;else X=(Hu(L,K)|0)&255;a[c[H>>2]>>0]=X;if(c[F>>2]|0)Y=(Gu(M,K)|0)&255;else Y=(Hu(M,K)|0)&255;a[(c[H>>2]|0)+1>>0]=Y;if((Ut(K)|0)>>>0>0){Z=14;break;}if(c[F>>2]|0)_=(Gu(L,K)|0)&255;else _=(Hu(L,K)|0)&255;a[(c[H>>2]|0)+2>>0]=_;if(c[F>>2]|0)$=(Gu(M,K)|0)&255;else $=(Hu(M,K)|0)&255;a[(c[H>>2]|0)+3>>0]=$;c[H>>2]=(c[H>>2]|0)+4;}if((Z|0)==14)c[H>>2]=(c[H>>2]|0)+2;while(1){if((c[H>>2]|0)>>>0>((c[I>>2]|0)+-2|0)>>>0){Z=24;break;}if(c[F>>2]|0)aa=(Gu(L,K)|0)&255;else aa=(Hu(L,K)|0)&255;D=c[H>>2]|0;c[H>>2]=D+1;a[D>>0]=aa;if((Ut(K)|0)==3){Z=29;break;}if((c[H>>2]|0)>>>0>((c[I>>2]|0)+-2|0)>>>0){Z=34;break;}if(c[F>>2]|0)ba=(Gu(M,K)|0)&255;else ba=(Hu(M,K)|0)&255;D=c[H>>2]|0;c[H>>2]=D+1;a[D>>0]=ba;if((Ut(K)|0)==3){Z=39;break;}}if((Z|0)==24){c[z>>2]=-70;break;}else if((Z|0)==29){if(c[F>>2]|0)ca=(Gu(M,K)|0)&255;else ca=(Hu(M,K)|0)&255;D=c[H>>2]|0;c[H>>2]=D+1;a[D>>0]=ca;}else if((Z|0)==34){c[z>>2]=-70;break;}else if((Z|0)==39){if(c[F>>2]|0)da=(Gu(L,K)|0)&255;else da=(Hu(L,K)|0)&255;D=c[H>>2]|0;c[H>>2]=D+1;a[D>>0]=da;}c[z>>2]=(c[H>>2]|0)-(c[G>>2]|0);}}while(0);c[O>>2]=c[z>>2];ea=c[O>>2]|0;l=i;return ea|0;}else{c[k>>2]=V;c[m>>2]=P;c[n>>2]=Q;c[o>>2]=R;c[p>>2]=S;c[q>>2]=0;c[r>>2]=c[k>>2];c[s>>2]=c[r>>2];c[t>>2]=(c[s>>2]|0)+(c[m>>2]|0);c[u>>2]=(c[t>>2]|0)+-3;c[y>>2]=St(v,c[n>>2]|0,c[o>>2]|0)|0;do{if(jr(c[y>>2]|0)|0)c[j>>2]=c[y>>2];else{Tt(w,v,c[p>>2]|0);Tt(x,v,c[p>>2]|0);while(1){if(Ut(v)|0)break;if((c[s>>2]|0)>>>0>=(c[u>>2]|0)>>>0)break;if(c[q>>2]|0)fa=(Gu(w,v)|0)&255;else fa=(Hu(w,v)|0)&255;a[c[s>>2]>>0]=fa;if(c[q>>2]|0)ga=(Gu(x,v)|0)&255;else ga=(Hu(x,v)|0)&255;a[(c[s>>2]|0)+1>>0]=ga;if((Ut(v)|0)>>>0>0){Z=58;break;}if(c[q>>2]|0)ha=(Gu(w,v)|0)&255;else ha=(Hu(w,v)|0)&255;a[(c[s>>2]|0)+2>>0]=ha;if(c[q>>2]|0)ia=(Gu(x,v)|0)&255;else ia=(Hu(x,v)|0)&255;a[(c[s>>2]|0)+3>>0]=ia;c[s>>2]=(c[s>>2]|0)+4;}if((Z|0)==58)c[s>>2]=(c[s>>2]|0)+2;while(1){if((c[s>>2]|0)>>>0>((c[t>>2]|0)+-2|0)>>>0){Z=68;break;}if(c[q>>2]|0)ja=(Gu(w,v)|0)&255;else ja=(Hu(w,v)|0)&255;o=c[s>>2]|0;c[s>>2]=o+1;a[o>>0]=ja;if((Ut(v)|0)==3){Z=73;break;}if((c[s>>2]|0)>>>0>((c[t>>2]|0)+-2|0)>>>0){Z=78;break;}if(c[q>>2]|0)ka=(Gu(x,v)|0)&255;else ka=(Hu(x,v)|0)&255;o=c[s>>2]|0;c[s>>2]=o+1;a[o>>0]=ka;if((Ut(v)|0)==3){Z=83;break;}}if((Z|0)==68){c[j>>2]=-70;break;}else if((Z|0)==73){if(c[q>>2]|0)la=(Gu(x,v)|0)&255;else la=(Hu(x,v)|0)&255;o=c[s>>2]|0;c[s>>2]=o+1;a[o>>0]=la;}else if((Z|0)==78){c[j>>2]=-70;break;}else if((Z|0)==83){if(c[q>>2]|0)ma=(Gu(w,v)|0)&255;else ma=(Hu(w,v)|0)&255;o=c[s>>2]|0;c[s>>2]=o+1;a[o>>0]=ma;}c[j>>2]=(c[s>>2]|0)-(c[r>>2]|0);}}while(0);c[O>>2]=c[j>>2];ea=c[O>>2]|0;l=i;return ea|0;}return 0;}function Gu(f,g){f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+12|0;j=h+8|0;k=h+16|0;m=h+4|0;n=h+20|0;o=h;c[i>>2]=f;c[j>>2]=g;g=(c[(c[i>>2]|0)+4>>2]|0)+(c[c[i>>2]>>2]<<2)|0;b[k>>1]=b[g>>1]|0;b[k+2>>1]=b[g+2>>1]|0;c[m>>2]=d[k+3>>0];a[n>>0]=a[k+2>>0]|0;c[o>>2]=Iu(c[j>>2]|0,c[m>>2]|0)|0;c[c[i>>2]>>2]=(e[k>>1]|0)+(c[o>>2]|0);l=h;return a[n>>0]|0;}function Hu(f,g){f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+12|0;j=h+8|0;k=h+16|0;m=h+4|0;n=h+20|0;o=h;c[i>>2]=f;c[j>>2]=g;g=(c[(c[i>>2]|0)+4>>2]|0)+(c[c[i>>2]>>2]<<2)|0;b[k>>1]=b[g>>1]|0;b[k+2>>1]=b[g+2>>1]|0;c[m>>2]=d[k+3>>0];a[n>>0]=a[k+2>>0]|0;c[o>>2]=$t(c[j>>2]|0,c[m>>2]|0)|0;c[c[i>>2]>>2]=(e[k>>1]|0)+(c[o>>2]|0);l=h;return a[n>>0]|0;}function Iu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=uu(c[e>>2]|0,c[f>>2]|0)|0;du(c[e>>2]|0,c[f>>2]|0);l=d;return c[g>>2]|0;}function Ju(f,g,h){f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;i=l;l=l+400|0;j=i+392|0;k=i+388|0;m=i+384|0;n=i+380|0;o=i+80|0;p=i;q=i+376|0;r=i+372|0;s=i+368|0;t=i+364|0;u=i+360|0;v=i+356|0;w=i+352|0;x=i+348|0;y=i+344|0;z=i+340|0;A=i+336|0;B=i+396|0;c[k>>2]=f;c[m>>2]=g;c[n>>2]=h;c[q>>2]=0;c[s>>2]=0;c[v>>2]=(c[k>>2]|0)+2;c[w>>2]=c[v>>2];c[r>>2]=zu(o,256,p,s,q,c[m>>2]|0,c[n>>2]|0)|0;if(ou(c[r>>2]|0)|0){c[j>>2]=c[r>>2];C=c[j>>2]|0;l=i;return C|0;}if((c[q>>2]|0)>>>0>(e[c[k>>2]>>1]|0)>>>0){c[j>>2]=-44;C=c[j>>2]|0;l=i;return C|0;}b[c[k>>2]>>1]=c[q>>2];c[u>>2]=0;c[t>>2]=1;while(1){if((c[t>>2]|0)>>>0>=((c[q>>2]|0)+1|0)>>>0)break;c[x>>2]=c[u>>2];c[u>>2]=(c[u>>2]|0)+(c[p+(c[t>>2]<<2)>>2]<<(c[t>>2]|0)-1);c[p+(c[t>>2]<<2)>>2]=c[x>>2];c[t>>2]=(c[t>>2]|0)+1;}c[t>>2]=0;while(1){if((c[t>>2]|0)>>>0>=(c[s>>2]|0)>>>0)break;c[y>>2]=d[o+(c[t>>2]|0)>>0];c[z>>2]=1<<c[y>>2]>>1;a[B>>0]=c[t>>2];a[B+1>>0]=(c[q>>2]|0)+1-(c[y>>2]|0);c[A>>2]=c[p+(c[y>>2]<<2)>>2];while(1){if((c[A>>2]|0)>>>0>=((c[p+(c[y>>2]<<2)>>2]|0)+(c[z>>2]|0)|0)>>>0)break;x=(c[w>>2]|0)+(c[A>>2]<<1)|0;a[x>>0]=a[B>>0]|0;a[x+1>>0]=a[B+1>>0]|0;c[A>>2]=(c[A>>2]|0)+1;}x=p+(c[y>>2]<<2)|0;c[x>>2]=(c[x>>2]|0)+(c[z>>2]|0);c[t>>2]=(c[t>>2]|0)+1;}c[j>>2]=c[r>>2];C=c[j>>2]|0;l=i;return C|0;}function Ku(b,d,f,g,h){b=b|0;d=d|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0;i=l;l=l+192|0;j=i+184|0;k=i+180|0;m=i+176|0;n=i+172|0;o=i+168|0;p=i+164|0;q=i+160|0;r=i+156|0;s=i+152|0;t=i+148|0;u=i+144|0;v=i+140|0;w=i+136|0;x=i+120|0;y=i+104|0;z=i+88|0;A=i+72|0;B=i+64|0;C=i+60|0;D=i+56|0;E=i+52|0;F=i+48|0;G=i+44|0;H=i+40|0;I=i+36|0;J=i+32|0;K=i+28|0;L=i+24|0;M=i+20|0;N=i+16|0;O=i+12|0;P=i+8|0;Q=i+4|0;R=i;c[k>>2]=b;c[m>>2]=d;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;if((c[o>>2]|0)>>>0<10){c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}c[q>>2]=c[n>>2];c[r>>2]=c[k>>2];c[s>>2]=(c[r>>2]|0)+(c[m>>2]|0);c[t>>2]=c[p>>2];c[u>>2]=(c[t>>2]|0)+2;c[v>>2]=e[c[p>>2]>>1];c[B>>2]=(Oq(c[q>>2]|0)|0)&65535;c[C>>2]=(Oq((c[q>>2]|0)+2|0)|0)&65535;c[D>>2]=(Oq((c[q>>2]|0)+4|0)|0)&65535;c[F>>2]=(c[q>>2]|0)+6;c[G>>2]=(c[F>>2]|0)+(c[B>>2]|0);c[H>>2]=(c[G>>2]|0)+(c[C>>2]|0);c[I>>2]=(c[H>>2]|0)+(c[D>>2]|0);c[J>>2]=(((c[m>>2]|0)+3|0)>>>0)/4|0;c[K>>2]=(c[r>>2]|0)+(c[J>>2]|0);c[L>>2]=(c[K>>2]|0)+(c[J>>2]|0);c[M>>2]=(c[L>>2]|0)+(c[J>>2]|0);c[N>>2]=c[r>>2];c[O>>2]=c[K>>2];c[P>>2]=c[L>>2];c[Q>>2]=c[M>>2];c[E>>2]=(c[o>>2]|0)-((c[B>>2]|0)+(c[C>>2]|0)+(c[D>>2]|0)+6);if((c[E>>2]|0)>>>0>(c[o>>2]|0)>>>0){c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}c[w>>2]=St(x,c[F>>2]|0,c[B>>2]|0)|0;if(ou(c[w>>2]|0)|0){c[j>>2]=c[w>>2];S=c[j>>2]|0;l=i;return S|0;}c[w>>2]=St(y,c[G>>2]|0,c[C>>2]|0)|0;if(ou(c[w>>2]|0)|0){c[j>>2]=c[w>>2];S=c[j>>2]|0;l=i;return S|0;}c[w>>2]=St(z,c[H>>2]|0,c[D>>2]|0)|0;if(ou(c[w>>2]|0)|0){c[j>>2]=c[w>>2];S=c[j>>2]|0;l=i;return S|0;}c[w>>2]=St(A,c[I>>2]|0,c[E>>2]|0)|0;if(ou(c[w>>2]|0)|0){c[j>>2]=c[w>>2];S=c[j>>2]|0;l=i;return S|0;}w=Ut(x)|0;E=w|(Ut(y)|0);w=E|(Ut(z)|0);c[R>>2]=w|(Ut(A)|0);while(1){if(c[R>>2]|0)break;if((c[Q>>2]|0)>>>0>=((c[s>>2]|0)+-7|0)>>>0)break;if(ru()|0){w=Lu(x,c[u>>2]|0,c[v>>2]|0)|0;E=c[N>>2]|0;c[N>>2]=E+1;a[E>>0]=w;}if(ru()|0){w=Lu(y,c[u>>2]|0,c[v>>2]|0)|0;E=c[O>>2]|0;c[O>>2]=E+1;a[E>>0]=w;}if(ru()|0){w=Lu(z,c[u>>2]|0,c[v>>2]|0)|0;E=c[P>>2]|0;c[P>>2]=E+1;a[E>>0]=w;}if(ru()|0){w=Lu(A,c[u>>2]|0,c[v>>2]|0)|0;E=c[Q>>2]|0;c[Q>>2]=E+1;a[E>>0]=w;}ru()|0;w=Lu(x,c[u>>2]|0,c[v>>2]|0)|0;E=c[N>>2]|0;c[N>>2]=E+1;a[E>>0]=w;ru()|0;w=Lu(y,c[u>>2]|0,c[v>>2]|0)|0;E=c[O>>2]|0;c[O>>2]=E+1;a[E>>0]=w;ru()|0;w=Lu(z,c[u>>2]|0,c[v>>2]|0)|0;E=c[P>>2]|0;c[P>>2]=E+1;a[E>>0]=w;ru()|0;w=Lu(A,c[u>>2]|0,c[v>>2]|0)|0;E=c[Q>>2]|0;c[Q>>2]=E+1;a[E>>0]=w;if(ru()|0){w=Lu(x,c[u>>2]|0,c[v>>2]|0)|0;E=c[N>>2]|0;c[N>>2]=E+1;a[E>>0]=w;}if(ru()|0){w=Lu(y,c[u>>2]|0,c[v>>2]|0)|0;E=c[O>>2]|0;c[O>>2]=E+1;a[E>>0]=w;}if(ru()|0){w=Lu(z,c[u>>2]|0,c[v>>2]|0)|0;E=c[P>>2]|0;c[P>>2]=E+1;a[E>>0]=w;}if(ru()|0){w=Lu(A,c[u>>2]|0,c[v>>2]|0)|0;E=c[Q>>2]|0;c[Q>>2]=E+1;a[E>>0]=w;}w=Lu(x,c[u>>2]|0,c[v>>2]|0)|0;E=c[N>>2]|0;c[N>>2]=E+1;a[E>>0]=w;w=Lu(y,c[u>>2]|0,c[v>>2]|0)|0;E=c[O>>2]|0;c[O>>2]=E+1;a[E>>0]=w;w=Lu(z,c[u>>2]|0,c[v>>2]|0)|0;E=c[P>>2]|0;c[P>>2]=E+1;a[E>>0]=w;w=Lu(A,c[u>>2]|0,c[v>>2]|0)|0;E=c[Q>>2]|0;c[Q>>2]=E+1;a[E>>0]=w;w=Ut(x)|0;E=w|(Ut(y)|0);w=E|(Ut(z)|0);c[R>>2]=w|(Ut(A)|0);}if((c[N>>2]|0)>>>0>(c[K>>2]|0)>>>0){c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}if((c[O>>2]|0)>>>0>(c[L>>2]|0)>>>0){c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}if((c[P>>2]|0)>>>0>(c[M>>2]|0)>>>0){c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}Mu(c[N>>2]|0,x,c[K>>2]|0,c[u>>2]|0,c[v>>2]|0)|0;Mu(c[O>>2]|0,y,c[L>>2]|0,c[u>>2]|0,c[v>>2]|0)|0;Mu(c[P>>2]|0,z,c[M>>2]|0,c[u>>2]|0,c[v>>2]|0)|0;Mu(c[Q>>2]|0,A,c[s>>2]|0,c[u>>2]|0,c[v>>2]|0)|0;v=qu(x)|0;x=v&(qu(y)|0);y=x&(qu(z)|0);c[R>>2]=y&(qu(A)|0);if(c[R>>2]|0){c[j>>2]=c[m>>2];S=c[j>>2]|0;l=i;return S|0;}else{c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}return 0;}function Lu(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0;g=l;l=l+32|0;h=g+12|0;i=g+8|0;j=g+4|0;k=g;m=g+16|0;c[h>>2]=b;c[i>>2]=e;c[j>>2]=f;c[k>>2]=uu(c[h>>2]|0,c[j>>2]|0)|0;a[m>>0]=a[(c[i>>2]|0)+(c[k>>2]<<1)>>0]|0;du(c[h>>2]|0,d[(c[i>>2]|0)+(c[k>>2]<<1)+1>>0]|0);l=g;return a[m>>0]|0;}function Mu(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+20|0;j=h+16|0;k=h+12|0;m=h+8|0;n=h+4|0;o=h;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=c[i>>2];while(1){if(Ut(c[j>>2]|0)|0)break;if((c[i>>2]|0)>>>0>((c[k>>2]|0)+-4|0)>>>0)break;if(ru()|0){g=Lu(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}ru()|0;g=Lu(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;if(ru()|0){g=Lu(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}g=Lu(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}while(1){if(Ut(c[j>>2]|0)|0)break;if((c[i>>2]|0)>>>0>=(c[k>>2]|0)>>>0)break;g=Lu(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}while(1){if((c[i>>2]|0)>>>0>=(c[k>>2]|0)>>>0)break;g=Lu(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}l=h;return(c[k>>2]|0)-(c[o>>2]|0)|0;}function Nu(a,b,d,f,g){a=a|0;b=b|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;h=l;l=l+80|0;i=h+64|0;j=h+60|0;k=h+56|0;m=h+52|0;n=h+48|0;o=h+44|0;p=h+40|0;q=h+36|0;r=h+32|0;s=h+28|0;t=h+24|0;u=h+8|0;v=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=f;c[o>>2]=g;c[p>>2]=c[j>>2];c[q>>2]=(c[p>>2]|0)+(c[k>>2]|0);c[r>>2]=e[c[o>>2]>>1];c[s>>2]=c[o>>2];c[t>>2]=(c[s>>2]|0)+2;c[v>>2]=St(u,c[m>>2]|0,c[n>>2]|0)|0;if(ou(c[v>>2]|0)|0){c[i>>2]=c[v>>2];w=c[i>>2]|0;l=h;return w|0;}Mu(c[p>>2]|0,u,c[q>>2]|0,c[t>>2]|0,c[r>>2]|0)|0;if(qu(u)|0){c[i>>2]=c[k>>2];w=c[i>>2]|0;l=h;return w|0;}else{c[i>>2]=-20;w=c[i>>2]|0;l=h;return w|0;}return 0;}function Ou(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;c[(c[d>>2]|0)+21536>>2]=5;c[(c[d>>2]|0)+21564>>2]=0;c[(c[d>>2]|0)+21520>>2]=0;c[(c[d>>2]|0)+21524>>2]=0;c[(c[d>>2]|0)+21528>>2]=0;c[(c[d>>2]|0)+21532>>2]=0;c[(c[d>>2]|0)+5132>>2]=12;c[(c[d>>2]|0)+21568>>2]=0;l=b;return 0;}function Pu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[k>>2]=Mq(c[h>>2]|0)|0;if((c[k>>2]|0)!=-332356554){Qu(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0);c[f>>2]=0;m=c[f>>2]|0;l=e;return m|0;}c[h>>2]=(c[h>>2]|0)+4;c[i>>2]=(c[i>>2]|0)-4;c[j>>2]=Ru(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0;if(jr(c[j>>2]|0)|0){c[f>>2]=-30;m=c[f>>2]|0;l=e;return m|0;}else{c[h>>2]=(c[h>>2]|0)+(c[j>>2]|0);c[i>>2]=(c[i>>2]|0)-(c[j>>2]|0);Qu(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0);c[f>>2]=0;m=c[f>>2]|0;l=e;return m|0;}return 0;}function Qu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[(c[f>>2]|0)+21532>>2]=c[(c[f>>2]|0)+21520>>2];c[(c[f>>2]|0)+21528>>2]=(c[g>>2]|0)+(0-((c[(c[f>>2]|0)+21520>>2]|0)-(c[(c[f>>2]|0)+21524>>2]|0)));c[(c[f>>2]|0)+21524>>2]=c[g>>2];c[(c[f>>2]|0)+21520>>2]=(c[g>>2]|0)+(c[h>>2]|0);l=e;return;}function Ru(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;e=l;l=l+320|0;f=e+316|0;g=e+312|0;h=e+308|0;i=e+304|0;j=e+300|0;k=e+296|0;m=e+292|0;n=e+288|0;o=e+192|0;p=e+284|0;q=e+280|0;r=e+276|0;s=e+80|0;t=e+272|0;u=e+268|0;v=e+264|0;w=e;x=e+260|0;y=e+256|0;z=e+252|0;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=xu((c[g>>2]|0)+5132|0,c[h>>2]|0,c[i>>2]|0)|0;if(jr(c[j>>2]|0)|0){c[f>>2]=-30;A=c[f>>2]|0;l=e;return A|0;}c[h>>2]=(c[h>>2]|0)+(c[j>>2]|0);c[i>>2]=(c[i>>2]|0)-(c[j>>2]|0);c[p>>2]=28;c[k>>2]=ju(o,p,q,c[h>>2]|0,c[i>>2]|0)|0;if(jr(c[k>>2]|0)|0){c[f>>2]=-30;A=c[f>>2]|0;l=e;return A|0;}if((c[q>>2]|0)>>>0>8){c[f>>2]=-30;A=c[f>>2]|0;l=e;return A|0;}c[r>>2]=iu((c[g>>2]|0)+2052|0,o,c[p>>2]|0,c[q>>2]|0)|0;if(jr(c[r>>2]|0)|0){c[f>>2]=-30;A=c[f>>2]|0;l=e;return A|0;}c[h>>2]=(c[h>>2]|0)+(c[k>>2]|0);c[i>>2]=(c[i>>2]|0)-(c[k>>2]|0);c[t>>2]=52;c[m>>2]=ju(s,t,u,c[h>>2]|0,c[i>>2]|0)|0;if(jr(c[m>>2]|0)|0){c[f>>2]=-30;A=c[f>>2]|0;l=e;return A|0;}if((c[u>>2]|0)>>>0>9){c[f>>2]=-30;A=c[f>>2]|0;l=e;return A|0;}c[v>>2]=iu((c[g>>2]|0)+3080|0,s,c[t>>2]|0,c[u>>2]|0)|0;if(jr(c[v>>2]|0)|0){c[f>>2]=-30;A=c[f>>2]|0;l=e;return A|0;}c[h>>2]=(c[h>>2]|0)+(c[m>>2]|0);c[i>>2]=(c[i>>2]|0)-(c[m>>2]|0);c[x>>2]=35;c[n>>2]=ju(w,x,y,c[h>>2]|0,c[i>>2]|0)|0;if(jr(c[n>>2]|0)|0){c[f>>2]=-30;A=c[f>>2]|0;l=e;return A|0;}if((c[y>>2]|0)>>>0>9){c[f>>2]=-30;A=c[f>>2]|0;l=e;return A|0;}c[z>>2]=iu(c[g>>2]|0,w,c[x>>2]|0,c[y>>2]|0)|0;if(jr(c[z>>2]|0)|0){c[f>>2]=-30;A=c[f>>2]|0;l=e;return A|0;}else{c[(c[g>>2]|0)+21568>>2]=1;c[f>>2]=(c[j>>2]|0)+(c[k>>2]|0)+(c[m>>2]|0)+(c[n>>2]|0);A=c[f>>2]|0;l=e;return A|0;}return 0;}function Su(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=dw(c[g>>2]|0)|0;if(mr(c[j>>2]|0)|0){c[f>>2]=c[j>>2];k=c[f>>2]|0;l=e;return k|0;}if((c[h>>2]|0)!=0&(c[i>>2]|0)!=0?(c[j>>2]=ew(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0,mr(c[j>>2]|0)|0):0){c[f>>2]=-30;k=c[f>>2]|0;l=e;return k|0;}c[f>>2]=0;k=c[f>>2]|0;l=e;return k|0;}function Tu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;if((c[f>>2]|0)==(c[(c[e>>2]|0)+26640>>2]|0)){l=d;return;}c[(c[e>>2]|0)+26652>>2]=c[(c[e>>2]|0)+26640>>2];c[(c[e>>2]|0)+26648>>2]=(c[f>>2]|0)+(0-((c[(c[e>>2]|0)+26640>>2]|0)-(c[(c[e>>2]|0)+26644>>2]|0)));c[(c[e>>2]|0)+26644>>2]=c[f>>2];c[(c[e>>2]|0)+26640>>2]=c[f>>2];l=d;return;}function Uu(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;g=l;l=l+80|0;h=g+68|0;i=g+64|0;j=g+60|0;k=g+56|0;m=g+52|0;n=g+48|0;o=g+44|0;p=g+40|0;q=g+36|0;r=g+32|0;s=g+28|0;t=g+24|0;u=g+16|0;v=g+8|0;w=g+4|0;x=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=c[m>>2];c[p>>2]=(c[o>>2]|0)+(c[n>>2]|0);c[q>>2]=c[j>>2];c[r>>2]=c[q>>2];c[s>>2]=(c[q>>2]|0)+(c[k>>2]|0);c[t>>2]=c[n>>2];if((c[n>>2]|0)>>>0<8){c[h>>2]=-72;y=c[h>>2]|0;l=g;return y|0;}c[v>>2]=Vu(c[i>>2]|0,c[m>>2]|0,5)|0;if(mr(c[v>>2]|0)|0){c[h>>2]=c[v>>2];y=c[h>>2]|0;l=g;return y|0;}if((c[n>>2]|0)>>>0<((c[v>>2]|0)+3|0)>>>0){c[h>>2]=-72;y=c[h>>2]|0;l=g;return y|0;}c[o>>2]=(c[o>>2]|0)+(c[v>>2]|0);c[t>>2]=(c[t>>2]|0)-(c[v>>2]|0);c[v>>2]=Wu(c[i>>2]|0,c[m>>2]|0,c[v>>2]|0)|0;if(mr(c[v>>2]|0)|0){c[h>>2]=c[v>>2];y=c[h>>2]|0;l=g;return y|0;}a:while(1){c[w>>2]=0;c[x>>2]=lr(c[o>>2]|0,(c[p>>2]|0)-(c[o>>2]|0)|0,u)|0;if(mr(c[x>>2]|0)|0){z=11;break;}c[o>>2]=(c[o>>2]|0)+3;c[t>>2]=(c[t>>2]|0)-3;if((c[x>>2]|0)>>>0>(c[t>>2]|0)>>>0){z=13;break;}switch(c[u>>2]|0){case 2:{z=17;break a;break;}case 0:{c[w>>2]=Xu(c[i>>2]|0,c[r>>2]|0,(c[s>>2]|0)-(c[r>>2]|0)|0,c[o>>2]|0,c[x>>2]|0)|0;break;}case 1:{c[w>>2]=Yu(c[r>>2]|0,(c[s>>2]|0)-(c[r>>2]|0)|0,c[o>>2]|0,c[x>>2]|0)|0;break;}case 3:{if(c[t>>2]|0){z=19;break a;}break;}default:{z=20;break a;}}if(!(c[x>>2]|0)){z=25;break;}v=(mr(c[w>>2]|0)|0)!=0;A=c[w>>2]|0;if(v){z=23;break;}c[r>>2]=(c[r>>2]|0)+A;c[o>>2]=(c[o>>2]|0)+(c[x>>2]|0);c[t>>2]=(c[t>>2]|0)-(c[x>>2]|0);}if((z|0)==11){c[h>>2]=c[x>>2];y=c[h>>2]|0;l=g;return y|0;}else if((z|0)==13){c[h>>2]=-72;y=c[h>>2]|0;l=g;return y|0;}else if((z|0)==17){c[h>>2]=-1;y=c[h>>2]|0;l=g;return y|0;}else if((z|0)==19){c[h>>2]=-72;y=c[h>>2]|0;l=g;return y|0;}else if((z|0)==20){c[h>>2]=-1;y=c[h>>2]|0;l=g;return y|0;}else if((z|0)==23){c[h>>2]=A;y=c[h>>2]|0;l=g;return y|0;}else if((z|0)==25){c[h>>2]=(c[r>>2]|0)-(c[q>>2]|0);y=c[h>>2]|0;l=g;return y|0;}return 0;}function Vu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;if((c[i>>2]|0)!=5){c[f>>2]=-72;k=c[f>>2]|0;l=e;return k|0;}c[j>>2]=Wq(c[h>>2]|0)|0;if((c[j>>2]|0)!=-47205083){c[f>>2]=-10;k=c[f>>2]|0;l=e;return k|0;}else{c[(c[g>>2]|0)+26660>>2]=5;c[f>>2]=c[(c[g>>2]|0)+26660>>2];k=c[f>>2]|0;l=e;return k|0;}return 0;}function Wu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;if((c[i>>2]|0)!=(c[(c[g>>2]|0)+26660>>2]|0)){c[f>>2]=-72;k=c[f>>2]|0;l=e;return k|0;}c[j>>2]=yq((c[g>>2]|0)+26664|0,c[h>>2]|0,c[i>>2]|0)|0;if(kv()|0?(c[(c[g>>2]|0)+26664+8>>2]|0)>>>0>25:0){c[f>>2]=-14;k=c[f>>2]|0;l=e;return k|0;}c[f>>2]=c[j>>2];k=c[f>>2]|0;l=e;return k|0;}function Xu(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;g=l;l=l+32|0;h=g+28|0;i=g+24|0;j=g+20|0;k=g+16|0;m=g+12|0;n=g+8|0;o=g+4|0;p=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=c[m>>2];if((c[n>>2]|0)>>>0>=131072){c[h>>2]=-72;q=c[h>>2]|0;l=g;return q|0;}c[p>>2]=Zu(c[i>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;m=(mr(c[p>>2]|0)|0)!=0;f=c[p>>2]|0;if(m){c[h>>2]=f;q=c[h>>2]|0;l=g;return q|0;}else{c[o>>2]=(c[o>>2]|0)+f;c[n>>2]=(c[n>>2]|0)-(c[p>>2]|0);c[h>>2]=_u(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[o>>2]|0,c[n>>2]|0)|0;q=c[h>>2]|0;l=g;return q|0;}return 0;}function Yu(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;if((c[k>>2]|0)>>>0>(c[i>>2]|0)>>>0){c[g>>2]=-70;m=c[g>>2]|0;l=f;return m|0;}else{mE(c[h>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;c[g>>2]=c[k>>2];m=c[g>>2]|0;l=f;return m|0;}return 0;}function Zu(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;g=l;l=l+80|0;h=g+64|0;i=g+60|0;j=g+56|0;k=g+52|0;m=g+48|0;n=g+44|0;o=g+40|0;p=g+36|0;q=g+32|0;r=g+28|0;s=g+24|0;t=g+20|0;u=g+16|0;v=g+12|0;w=g+8|0;x=g+4|0;y=g;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=c[j>>2];if((c[k>>2]|0)>>>0<3){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}switch((d[c[m>>2]>>0]|0)>>6|0){case 0:{c[p>>2]=0;c[q>>2]=(d[c[m>>2]>>0]|0)>>4&3;if((c[k>>2]|0)>>>0<5){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}switch(c[q>>2]|0){case 3:{c[q>>2]=5;c[n>>2]=(((d[c[m>>2]>>0]|0)&15)<<14)+((d[(c[m>>2]|0)+1>>0]|0)<<6)+((d[(c[m>>2]|0)+2>>0]|0)>>2);c[o>>2]=(((d[(c[m>>2]|0)+2>>0]|0)&3)<<16)+((d[(c[m>>2]|0)+3>>0]|0)<<8)+(d[(c[m>>2]|0)+4>>0]|0);break;}case 2:{c[q>>2]=4;c[n>>2]=(((d[c[m>>2]>>0]|0)&15)<<10)+((d[(c[m>>2]|0)+1>>0]|0)<<2)+((d[(c[m>>2]|0)+2>>0]|0)>>6);c[o>>2]=(((d[(c[m>>2]|0)+2>>0]|0)&63)<<8)+(d[(c[m>>2]|0)+3>>0]|0);break;}default:{c[q>>2]=3;c[p>>2]=(d[c[m>>2]>>0]|0)&16;c[n>>2]=(((d[c[m>>2]>>0]|0)&15)<<6)+((d[(c[m>>2]|0)+1>>0]|0)>>2);c[o>>2]=(((d[(c[m>>2]|0)+1>>0]|0)&3)<<8)+(d[(c[m>>2]|0)+2>>0]|0);}}if((c[n>>2]|0)>>>0>131072){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}if(((c[o>>2]|0)+(c[q>>2]|0)|0)>>>0>(c[k>>2]|0)>>>0){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}j=(c[i>>2]|0)+26724|0;f=c[n>>2]|0;e=(c[m>>2]|0)+(c[q>>2]|0)|0;b=c[o>>2]|0;if(c[p>>2]|0)A=Av(j,f,e,b)|0;else A=Bv(j,f,e,b)|0;if(Cv(A)|0){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}else{c[(c[i>>2]|0)+26716>>2]=(c[i>>2]|0)+26724;c[(c[i>>2]|0)+26720>>2]=c[n>>2];n=(c[i>>2]|0)+26724+(c[(c[i>>2]|0)+26720>>2]|0)|0;a[n>>0]=0;a[n+1>>0]=0;a[n+2>>0]=0;a[n+3>>0]=0;a[n+4>>0]=0;a[n+5>>0]=0;a[n+6>>0]=0;a[n+7>>0]=0;c[h>>2]=(c[o>>2]|0)+(c[q>>2]|0);z=c[h>>2]|0;l=g;return z|0;}break;}case 1:{c[u>>2]=(d[c[m>>2]>>0]|0)>>4&3;if((c[u>>2]|0)!=1){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}if(!(c[(c[i>>2]|0)+26712>>2]|0)){c[h>>2]=-30;z=c[h>>2]|0;l=g;return z|0;}c[u>>2]=3;c[s>>2]=(((d[c[m>>2]>>0]|0)&15)<<6)+((d[(c[m>>2]|0)+1>>0]|0)>>2);c[t>>2]=(((d[(c[m>>2]|0)+1>>0]|0)&3)<<8)+(d[(c[m>>2]|0)+2>>0]|0);if(((c[t>>2]|0)+(c[u>>2]|0)|0)>>>0>(c[k>>2]|0)>>>0){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}c[r>>2]=Dv((c[i>>2]|0)+26724|0,c[s>>2]|0,(c[m>>2]|0)+(c[u>>2]|0)|0,c[t>>2]|0,(c[i>>2]|0)+10252|0)|0;if(Cv(c[r>>2]|0)|0){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}else{c[(c[i>>2]|0)+26716>>2]=(c[i>>2]|0)+26724;c[(c[i>>2]|0)+26720>>2]=c[s>>2];s=(c[i>>2]|0)+26724+(c[(c[i>>2]|0)+26720>>2]|0)|0;a[s>>0]=0;a[s+1>>0]=0;a[s+2>>0]=0;a[s+3>>0]=0;a[s+4>>0]=0;a[s+5>>0]=0;a[s+6>>0]=0;a[s+7>>0]=0;c[h>>2]=(c[t>>2]|0)+(c[u>>2]|0);z=c[h>>2]|0;l=g;return z|0;}break;}case 2:{c[w>>2]=(d[c[m>>2]>>0]|0)>>4&3;switch(c[w>>2]|0){case 3:{c[v>>2]=(((d[c[m>>2]>>0]|0)&15)<<16)+((d[(c[m>>2]|0)+1>>0]|0)<<8)+(d[(c[m>>2]|0)+2>>0]|0);break;}case 2:{c[v>>2]=(((d[c[m>>2]>>0]|0)&15)<<8)+(d[(c[m>>2]|0)+1>>0]|0);break;}default:{c[w>>2]=1;c[v>>2]=(d[c[m>>2]>>0]|0)&31;}}if(((c[w>>2]|0)+(c[v>>2]|0)+8|0)>>>0<=(c[k>>2]|0)>>>0){c[(c[i>>2]|0)+26716>>2]=(c[m>>2]|0)+(c[w>>2]|0);c[(c[i>>2]|0)+26720>>2]=c[v>>2];c[h>>2]=(c[w>>2]|0)+(c[v>>2]|0);z=c[h>>2]|0;l=g;return z|0;}if(((c[v>>2]|0)+(c[w>>2]|0)|0)>>>0>(c[k>>2]|0)>>>0){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}else{mE((c[i>>2]|0)+26724|0,(c[m>>2]|0)+(c[w>>2]|0)|0,c[v>>2]|0)|0;c[(c[i>>2]|0)+26716>>2]=(c[i>>2]|0)+26724;c[(c[i>>2]|0)+26720>>2]=c[v>>2];u=(c[i>>2]|0)+26724+(c[(c[i>>2]|0)+26720>>2]|0)|0;a[u>>0]=0;a[u+1>>0]=0;a[u+2>>0]=0;a[u+3>>0]=0;a[u+4>>0]=0;a[u+5>>0]=0;a[u+6>>0]=0;a[u+7>>0]=0;c[h>>2]=(c[w>>2]|0)+(c[v>>2]|0);z=c[h>>2]|0;l=g;return z|0;}break;}case 3:{c[y>>2]=(d[c[m>>2]>>0]|0)>>4&3;switch(c[y>>2]|0){case 3:{c[x>>2]=(((d[c[m>>2]>>0]|0)&15)<<16)+((d[(c[m>>2]|0)+1>>0]|0)<<8)+(d[(c[m>>2]|0)+2>>0]|0);if((c[k>>2]|0)>>>0<4){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}break;}case 2:{c[x>>2]=(((d[c[m>>2]>>0]|0)&15)<<8)+(d[(c[m>>2]|0)+1>>0]|0);break;}default:{c[y>>2]=1;c[x>>2]=(d[c[m>>2]>>0]|0)&31;}}if((c[x>>2]|0)>>>0>131072){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}else{oE((c[i>>2]|0)+26724|0,(d[(c[m>>2]|0)+(c[y>>2]|0)>>0]|0)&255|0,(c[x>>2]|0)+8|0)|0;c[(c[i>>2]|0)+26716>>2]=(c[i>>2]|0)+26724;c[(c[i>>2]|0)+26720>>2]=c[x>>2];c[h>>2]=(c[y>>2]|0)+1;z=c[h>>2]|0;l=g;return z|0;}break;}default:{}}return 0;}function _u(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;g=l;l=l+176|0;h=g+164|0;i=g+160|0;j=g+156|0;k=g+152|0;m=g+148|0;n=g+144|0;o=g+140|0;p=g+136|0;q=g+132|0;r=g+128|0;s=g+124|0;t=g+120|0;u=g+116|0;v=g+112|0;w=g+108|0;x=g+104|0;y=g+100|0;z=g+96|0;A=g+92|0;B=g+88|0;C=g+84|0;D=g+80|0;E=g+76|0;F=g+72|0;G=g+60|0;H=g+8|0;I=g+4|0;J=g;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=c[n>>2];c[q>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[r>>2]=c[k>>2];c[s>>2]=c[r>>2];c[t>>2]=(c[r>>2]|0)+(c[m>>2]|0);c[w>>2]=c[(c[j>>2]|0)+26716>>2];c[x>>2]=(c[w>>2]|0)+(c[(c[j>>2]|0)+26720>>2]|0);c[A>>2]=c[j>>2];c[B>>2]=(c[j>>2]|0)+6152;c[C>>2]=(c[j>>2]|0)+4100;c[D>>2]=c[(c[j>>2]|0)+26644>>2];c[E>>2]=c[(c[j>>2]|0)+26648>>2];c[F>>2]=c[(c[j>>2]|0)+26652>>2];c[u>>2]=$u(y,z,v,c[A>>2]|0,c[B>>2]|0,c[C>>2]|0,c[p>>2]|0,c[o>>2]|0,c[(c[j>>2]|0)+26712>>2]|0)|0;j=(mr(c[u>>2]|0)|0)!=0;o=c[u>>2]|0;if(j){c[i>>2]=o;K=c[i>>2]|0;l=g;return K|0;}c[p>>2]=(c[p>>2]|0)+o;if(c[y>>2]|0){c[G>>2]=0;c[G+4>>2]=0;c[G+8>>2]=0;c[G+8>>2]=1;c[H+44>>2]=c[z>>2];c[H+48>>2]=(c[z>>2]|0)+(c[v>>2]|0);c[H+40>>2]=1;c[u>>2]=av(H,c[p>>2]|0,(c[q>>2]|0)-(c[p>>2]|0)|0)|0;if(nr(c[u>>2]|0)|0){c[i>>2]=-20;K=c[i>>2]|0;l=g;return K|0;}bv(H+16|0,H,c[A>>2]|0);bv(H+24|0,H,c[C>>2]|0);bv(H+32|0,H,c[B>>2]|0);while(1){B=(cv(H)|0)>>>0<=2;L=c[y>>2]|0;if(!(B?(c[y>>2]|0)!=0:0))break;c[y>>2]=L+-1;dv(G,H);B=c[s>>2]|0;C=c[t>>2]|0;A=c[x>>2]|0;u=c[D>>2]|0;p=c[E>>2]|0;q=c[F>>2]|0;c[h>>2]=c[G>>2];c[h+4>>2]=c[G+4>>2];c[h+8>>2]=c[G+8>>2];c[I>>2]=ev(B,C,h,w,A,u,p,q)|0;q=(mr(c[I>>2]|0)|0)!=0;M=c[I>>2]|0;if(q){N=9;break;}c[s>>2]=(c[s>>2]|0)+M;}if((N|0)==9){c[i>>2]=M;K=c[i>>2]|0;l=g;return K|0;}if(L|0){c[i>>2]=-20;K=c[i>>2]|0;l=g;return K|0;}}c[J>>2]=(c[x>>2]|0)-(c[w>>2]|0);if((c[w>>2]|0)>>>0>(c[x>>2]|0)>>>0){c[i>>2]=-20;K=c[i>>2]|0;l=g;return K|0;}if(((c[s>>2]|0)+(c[J>>2]|0)|0)>>>0>(c[t>>2]|0)>>>0){c[i>>2]=-70;K=c[i>>2]|0;l=g;return K|0;}else{mE(c[s>>2]|0,c[w>>2]|0,c[J>>2]|0)|0;c[s>>2]=(c[s>>2]|0)+(c[J>>2]|0);c[i>>2]=(c[s>>2]|0)-(c[r>>2]|0);K=c[i>>2]|0;l=g;return K|0;}return 0;}function $u(b,e,f,g,h,i,j,k,m){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;n=l;l=l+352|0;o=n+348|0;p=n+344|0;q=n+340|0;r=n+336|0;s=n+332|0;t=n+328|0;u=n+324|0;v=n+320|0;w=n+316|0;x=n+312|0;y=n+308|0;z=n+304|0;A=n+300|0;B=n+296|0;C=n+292|0;D=n+288|0;E=n+284|0;F=n+280|0;G=n+276|0;H=n+272|0;I=n;J=n+268|0;K=n+264|0;L=n+260|0;M=n+256|0;c[p>>2]=b;c[q>>2]=e;c[r>>2]=f;c[s>>2]=g;c[t>>2]=h;c[u>>2]=i;c[v>>2]=j;c[w>>2]=k;c[x>>2]=m;c[y>>2]=c[v>>2];c[z>>2]=c[y>>2];c[A>>2]=(c[y>>2]|0)+(c[w>>2]|0);if((c[w>>2]|0)>>>0<1){c[o>>2]=-72;N=c[o>>2]|0;l=n;return N|0;}w=c[z>>2]|0;c[z>>2]=w+1;c[c[p>>2]>>2]=d[w>>0];if(!(c[c[p>>2]>>2]|0)){c[o>>2]=1;N=c[o>>2]|0;l=n;return N|0;}do{if((c[c[p>>2]>>2]|0)>=128){if((c[z>>2]|0)>>>0<(c[A>>2]|0)>>>0){w=(c[c[p>>2]>>2]|0)-128<<8;v=c[z>>2]|0;c[z>>2]=v+1;c[c[p>>2]>>2]=w+(d[v>>0]|0);break;}c[o>>2]=-72;N=c[o>>2]|0;l=n;return N|0;}}while(0);if((c[z>>2]|0)>>>0>=(c[A>>2]|0)>>>0){c[o>>2]=-72;N=c[o>>2]|0;l=n;return N|0;}c[B>>2]=(d[c[z>>2]>>0]|0)>>6;c[C>>2]=(d[c[z>>2]>>0]|0)>>4&3;c[D>>2]=(d[c[z>>2]>>0]|0)>>2&3;p=c[z>>2]|0;do{if((d[c[z>>2]>>0]|0)&2|0){if((p+3|0)>>>0<=(c[A>>2]|0)>>>0){c[H>>2]=d[(c[z>>2]|0)+2>>0];c[H>>2]=(c[H>>2]|0)+((d[(c[z>>2]|0)+1>>0]|0)<<8);c[z>>2]=(c[z>>2]|0)+3;break;}c[o>>2]=-72;N=c[o>>2]|0;l=n;return N|0;}else{if((p+2|0)>>>0<=(c[A>>2]|0)>>>0){c[H>>2]=d[(c[z>>2]|0)+1>>0];c[H>>2]=(c[H>>2]|0)+(((d[c[z>>2]>>0]|0)&1)<<8);c[z>>2]=(c[z>>2]|0)+2;break;}c[o>>2]=-72;N=c[o>>2]|0;l=n;return N|0;}}while(0);c[c[q>>2]>>2]=c[z>>2];c[z>>2]=(c[z>>2]|0)+(c[H>>2]|0);c[c[r>>2]>>2]=c[H>>2];if((c[z>>2]|0)>>>0>((c[A>>2]|0)+-3|0)>>>0){c[o>>2]=-72;N=c[o>>2]|0;l=n;return N|0;}a:do{switch(c[B>>2]|0){case 1:{c[E>>2]=0;H=c[s>>2]|0;r=c[z>>2]|0;c[z>>2]=r+1;tv(H,a[r>>0]|0)|0;break;}case 0:{c[E>>2]=6;uv(c[s>>2]|0,6)|0;break;}case 2:{if(!(c[x>>2]|0)){c[o>>2]=-20;N=c[o>>2]|0;l=n;return N|0;}break;}default:{c[K>>2]=63;c[J>>2]=vv(I,K,E,c[z>>2]|0,(c[A>>2]|0)-(c[z>>2]|0)|0)|0;if(wv(c[J>>2]|0)|0){c[o>>2]=-1;N=c[o>>2]|0;l=n;return N|0;}if((c[E>>2]|0)>>>0<=10){c[z>>2]=(c[z>>2]|0)+(c[J>>2]|0);xv(c[s>>2]|0,I,c[K>>2]|0,c[E>>2]|0)|0;break a;}c[o>>2]=-20;N=c[o>>2]|0;l=n;return N|0;}}}while(0);b:do{switch(c[C>>2]|0){case 1:{c[F>>2]=0;if((c[z>>2]|0)>>>0<=((c[A>>2]|0)+-2|0)>>>0){E=c[u>>2]|0;K=c[z>>2]|0;c[z>>2]=K+1;tv(E,(d[K>>0]|0)&31)|0;break b;}c[o>>2]=-72;N=c[o>>2]|0;l=n;return N|0;}case 0:{c[F>>2]=5;uv(c[u>>2]|0,5)|0;break;}case 2:{if(!(c[x>>2]|0)){c[o>>2]=-20;N=c[o>>2]|0;l=n;return N|0;}break;}default:{c[L>>2]=31;c[J>>2]=vv(I,L,F,c[z>>2]|0,(c[A>>2]|0)-(c[z>>2]|0)|0)|0;if(wv(c[J>>2]|0)|0){c[o>>2]=-1;N=c[o>>2]|0;l=n;return N|0;}if((c[F>>2]|0)>>>0<=9){c[z>>2]=(c[z>>2]|0)+(c[J>>2]|0);xv(c[u>>2]|0,I,c[L>>2]|0,c[F>>2]|0)|0;break b;}c[o>>2]=-20;N=c[o>>2]|0;l=n;return N|0;}}}while(0);c:do{switch(c[D>>2]|0){case 1:{c[G>>2]=0;if((c[z>>2]|0)>>>0<=((c[A>>2]|0)+-2|0)>>>0){F=c[t>>2]|0;L=c[z>>2]|0;c[z>>2]=L+1;tv(F,a[L>>0]|0)|0;break c;}c[o>>2]=-72;N=c[o>>2]|0;l=n;return N|0;}case 0:{c[G>>2]=7;uv(c[t>>2]|0,7)|0;break;}case 2:{if(!(c[x>>2]|0)){c[o>>2]=-20;N=c[o>>2]|0;l=n;return N|0;}break;}default:{c[M>>2]=127;c[J>>2]=vv(I,M,G,c[z>>2]|0,(c[A>>2]|0)-(c[z>>2]|0)|0)|0;if(wv(c[J>>2]|0)|0){c[o>>2]=-1;N=c[o>>2]|0;l=n;return N|0;}if((c[G>>2]|0)>>>0<=10){c[z>>2]=(c[z>>2]|0)+(c[J>>2]|0);xv(c[t>>2]|0,I,c[M>>2]|0,c[G>>2]|0)|0;break c;}c[o>>2]=-20;N=c[o>>2]|0;l=n;return N|0;}}}while(0);c[o>>2]=(c[z>>2]|0)-(c[y>>2]|0);N=c[o>>2]|0;l=n;return N|0;}function av(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+32|0;g=f+20|0;h=f+16|0;i=f+12|0;j=f+8|0;k=f+4|0;m=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=e;if((c[j>>2]|0)>>>0<1){e=c[h>>2]|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[g>>2]=-72;n=c[g>>2]|0;l=f;return n|0;}e=(c[j>>2]|0)>>>0>=4;c[(c[h>>2]|0)+12>>2]=c[i>>2];do{if(e){c[(c[h>>2]|0)+8>>2]=(c[i>>2]|0)+(c[j>>2]|0)+-4;b=ov(c[(c[h>>2]|0)+8>>2]|0)|0;c[c[h>>2]>>2]=b;c[k>>2]=d[(c[i>>2]|0)+((c[j>>2]|0)-1)>>0];if(c[k>>2]|0){b=8-(sv(c[k>>2]|0)|0)|0;c[(c[h>>2]|0)+4>>2]=b;break;}c[g>>2]=-1;n=c[g>>2]|0;l=f;return n|0;}else{c[(c[h>>2]|0)+8>>2]=c[(c[h>>2]|0)+12>>2];c[c[h>>2]>>2]=d[c[(c[h>>2]|0)+12>>2]>>0];switch(c[j>>2]|0){case 7:{b=c[h>>2]|0;c[b>>2]=(c[b>>2]|0)+((d[(c[(c[h>>2]|0)+12>>2]|0)+6>>0]|0)<<16);o=9;break;}case 6:{o=9;break;}case 5:{o=10;break;}case 4:{o=11;break;}case 3:{o=12;break;}case 2:{o=13;break;}default:{}}if((o|0)==9){b=c[h>>2]|0;c[b>>2]=(c[b>>2]|0)+((d[(c[(c[h>>2]|0)+12>>2]|0)+5>>0]|0)<<8);o=10;}if((o|0)==10){b=c[h>>2]|0;c[b>>2]=(c[b>>2]|0)+((d[(c[(c[h>>2]|0)+12>>2]|0)+4>>0]|0)<<0);o=11;}if((o|0)==11){b=c[h>>2]|0;c[b>>2]=(c[b>>2]|0)+((d[(c[(c[h>>2]|0)+12>>2]|0)+3>>0]|0)<<24);o=12;}if((o|0)==12){b=c[h>>2]|0;c[b>>2]=(c[b>>2]|0)+((d[(c[(c[h>>2]|0)+12>>2]|0)+2>>0]|0)<<16);o=13;}if((o|0)==13){b=c[h>>2]|0;c[b>>2]=(c[b>>2]|0)+((d[(c[(c[h>>2]|0)+12>>2]|0)+1>>0]|0)<<8);}c[m>>2]=d[(c[i>>2]|0)+((c[j>>2]|0)-1)>>0];if(c[m>>2]|0){b=8-(sv(c[m>>2]|0)|0)|0;c[(c[h>>2]|0)+4>>2]=b;b=(c[h>>2]|0)+4|0;c[b>>2]=(c[b>>2]|0)+(4-(c[j>>2]|0)<<3);break;}c[g>>2]=-1;n=c[g>>2]|0;l=f;return n|0;}}while(0);c[g>>2]=c[j>>2];n=c[g>>2]|0;l=f;return n|0;}function bv(a,b,d){a=a|0;b=b|0;d=d|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=c[i>>2];c[k>>2]=c[j>>2];j=jv(c[h>>2]|0,e[c[k>>2]>>1]|0)|0;c[c[g>>2]>>2]=j;cv(c[h>>2]|0)|0;c[(c[g>>2]|0)+4>>2]=(c[i>>2]|0)+4;l=f;return;}function cv(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+16|0;d=b+12|0;e=b+8|0;f=b+4|0;g=b;c[e>>2]=a;if((c[(c[e>>2]|0)+4>>2]|0)>>>0>32){c[d>>2]=3;h=c[d>>2]|0;l=b;return h|0;}a=c[e>>2]|0;if((c[(c[e>>2]|0)+8>>2]|0)>>>0>=((c[(c[e>>2]|0)+12>>2]|0)+4|0)>>>0){i=(c[e>>2]|0)+8|0;c[i>>2]=(c[i>>2]|0)+(0-((c[a+4>>2]|0)>>>3));i=(c[e>>2]|0)+4|0;c[i>>2]=c[i>>2]&7;i=ov(c[(c[e>>2]|0)+8>>2]|0)|0;c[c[e>>2]>>2]=i;c[d>>2]=0;h=c[d>>2]|0;l=b;return h|0;}i=c[(c[e>>2]|0)+4>>2]|0;if((c[a+8>>2]|0)!=(c[(c[e>>2]|0)+12>>2]|0)){c[f>>2]=i>>>3;c[g>>2]=0;if(((c[(c[e>>2]|0)+8>>2]|0)+(0-(c[f>>2]|0))|0)>>>0<(c[(c[e>>2]|0)+12>>2]|0)>>>0){c[f>>2]=(c[(c[e>>2]|0)+8>>2]|0)-(c[(c[e>>2]|0)+12>>2]|0);c[g>>2]=1;}a=(c[e>>2]|0)+8|0;c[a>>2]=(c[a>>2]|0)+(0-(c[f>>2]|0));a=(c[e>>2]|0)+4|0;c[a>>2]=(c[a>>2]|0)-(c[f>>2]<<3);f=ov(c[(c[e>>2]|0)+8>>2]|0)|0;c[c[e>>2]>>2]=f;c[d>>2]=c[g>>2];h=c[d>>2]|0;l=b;return h|0;}if(i>>>0<32){c[d>>2]=1;h=c[d>>2]|0;l=b;return h|0;}else{c[d>>2]=2;h=c[d>>2]|0;l=b;return h|0;}return 0;}function dv(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;e=l;l=l+48|0;f=e+44|0;g=e+40|0;h=e+36|0;i=e+32|0;j=e+28|0;k=e+24|0;m=e+20|0;n=e+16|0;o=e+12|0;p=e+8|0;q=e+4|0;r=e;c[f>>2]=a;c[g>>2]=b;c[m>>2]=c[(c[g>>2]|0)+44>>2];c[n>>2]=c[(c[g>>2]|0)+48>>2];c[h>>2]=(iv((c[g>>2]|0)+16|0)|0)&255;if(c[h>>2]|0)s=c[(c[f>>2]|0)+8>>2]|0;else s=c[(c[g>>2]|0)+40>>2]|0;c[i>>2]=s;if((c[h>>2]|0)==63){s=c[m>>2]|0;c[m>>2]=s+1;c[o>>2]=d[s>>0];do{if((c[o>>2]|0)>>>0>=255){c[h>>2]=(Wq(c[m>>2]|0)|0)&16777215;s=c[h>>2]|0;if(c[h>>2]&1|0){c[h>>2]=s>>>1;c[m>>2]=(c[m>>2]|0)+3;break;}else{c[h>>2]=(s&65535)>>1;c[m>>2]=(c[m>>2]|0)+2;break;}}else c[h>>2]=(c[h>>2]|0)+(c[o>>2]|0);}while(0);if((c[m>>2]|0)>>>0>(c[n>>2]|0)>>>0)c[h>>2]=318;if((c[m>>2]|0)>>>0>=(c[n>>2]|0)>>>0)c[m>>2]=(c[n>>2]|0)+-1;}c[p>>2]=(iv((c[g>>2]|0)+24|0)|0)&255;o=(c[p>>2]|0)-1|0;c[q>>2]=o;c[q>>2]=(c[p>>2]|0)==0?0:o;o=c[6880+(c[p>>2]<<2)>>2]|0;c[j>>2]=o+(jv(c[g>>2]|0,c[q>>2]|0)|0);if(kv()|0)cv(c[g>>2]|0)|0;if(!(c[p>>2]|0))c[j>>2]=c[i>>2];if(c[p>>2]|((c[h>>2]|0)!=0^1)&1|0)c[(c[g>>2]|0)+40>>2]=c[(c[f>>2]|0)+8>>2];lv((c[g>>2]|0)+24|0,c[g>>2]|0)|0;lv((c[g>>2]|0)+16|0,c[g>>2]|0)|0;if(kv()|0)cv(c[g>>2]|0)|0;c[k>>2]=(lv((c[g>>2]|0)+32|0,c[g>>2]|0)|0)&255;if((c[k>>2]|0)!=127){t=c[k>>2]|0;u=t+4|0;c[k>>2]=u;v=c[h>>2]|0;w=c[f>>2]|0;c[w>>2]=v;x=c[j>>2]|0;y=c[f>>2]|0;z=y+8|0;c[z>>2]=x;A=c[k>>2]|0;B=c[f>>2]|0;C=B+4|0;c[C>>2]=A;D=c[m>>2]|0;E=c[g>>2]|0;F=E+44|0;c[F>>2]=D;l=e;return;}p=c[m>>2]|0;c[m>>2]=p+1;c[r>>2]=d[p>>0];do{if((c[r>>2]|0)>>>0>=255){c[k>>2]=(Wq(c[m>>2]|0)|0)&16777215;p=c[k>>2]|0;if(c[k>>2]&1|0){c[k>>2]=p>>>1;c[m>>2]=(c[m>>2]|0)+3;break;}else{c[k>>2]=(p&65535)>>1;c[m>>2]=(c[m>>2]|0)+2;break;}}else c[k>>2]=(c[k>>2]|0)+(c[r>>2]|0);}while(0);if((c[m>>2]|0)>>>0>(c[n>>2]|0)>>>0)c[k>>2]=382;if((c[m>>2]|0)>>>0<(c[n>>2]|0)>>>0){t=c[k>>2]|0;u=t+4|0;c[k>>2]=u;v=c[h>>2]|0;w=c[f>>2]|0;c[w>>2]=v;x=c[j>>2]|0;y=c[f>>2]|0;z=y+8|0;c[z>>2]=x;A=c[k>>2]|0;B=c[f>>2]|0;C=B+4|0;c[C>>2]=A;D=c[m>>2]|0;E=c[g>>2]|0;F=E+44|0;c[F>>2]=D;l=e;return;}c[m>>2]=(c[n>>2]|0)+-1;t=c[k>>2]|0;u=t+4|0;c[k>>2]=u;v=c[h>>2]|0;w=c[f>>2]|0;c[w>>2]=v;x=c[j>>2]|0;y=c[f>>2]|0;z=y+8|0;c[z>>2]=x;A=c[k>>2]|0;B=c[f>>2]|0;C=B+4|0;c[C>>2]=A;D=c[m>>2]|0;E=c[g>>2]|0;F=E+44|0;c[F>>2]=D;l=e;return;}function ev(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;k=l;l=l+64|0;m=k+60|0;n=k+56|0;o=k+52|0;p=k+48|0;q=k+44|0;r=k+40|0;s=k+36|0;t=k+32|0;u=k+28|0;v=k+24|0;w=k+20|0;x=k+16|0;y=k+12|0;z=k+8|0;A=k+4|0;B=k;c[n>>2]=b;c[o>>2]=d;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[u>>2]=(c[n>>2]|0)+(c[e>>2]|0);c[v>>2]=(c[e>>2]|0)+(c[e+4>>2]|0);c[w>>2]=(c[n>>2]|0)+(c[v>>2]|0);c[x>>2]=(c[o>>2]|0)+-8;c[y>>2]=(c[c[p>>2]>>2]|0)+(c[e>>2]|0);c[z>>2]=(c[u>>2]|0)+(0-(c[e+8>>2]|0));if((c[u>>2]|0)>>>0>(c[x>>2]|0)>>>0){c[m>>2]=-70;C=c[m>>2]|0;l=k;return C|0;}if((c[w>>2]|0)>>>0>(c[o>>2]|0)>>>0){c[m>>2]=-70;C=c[m>>2]|0;l=k;return C|0;}if((c[y>>2]|0)>>>0>(c[q>>2]|0)>>>0){c[m>>2]=-20;C=c[m>>2]|0;l=k;return C|0;}fv(c[n>>2]|0,c[c[p>>2]>>2]|0,c[e>>2]|0);c[n>>2]=c[u>>2];c[c[p>>2]>>2]=c[y>>2];do{if((c[e+8>>2]|0)>>>0>((c[u>>2]|0)-(c[r>>2]|0)|0)>>>0){if((c[e+8>>2]|0)>>>0>((c[u>>2]|0)-(c[s>>2]|0)|0)>>>0){c[m>>2]=-20;C=c[m>>2]|0;l=k;return C|0;}c[z>>2]=(c[t>>2]|0)+(0-((c[r>>2]|0)-(c[z>>2]|0)));if(((c[z>>2]|0)+(c[e+4>>2]|0)|0)>>>0<=(c[t>>2]|0)>>>0){nE(c[u>>2]|0,c[z>>2]|0,c[e+4>>2]|0)|0;c[m>>2]=c[v>>2];C=c[m>>2]|0;l=k;return C|0;}c[A>>2]=(c[t>>2]|0)-(c[z>>2]|0);nE(c[u>>2]|0,c[z>>2]|0,c[A>>2]|0)|0;c[n>>2]=(c[u>>2]|0)+(c[A>>2]|0);y=e+4|0;c[y>>2]=(c[y>>2]|0)-(c[A>>2]|0);c[z>>2]=c[r>>2];if((c[n>>2]|0)>>>0<=(c[x>>2]|0)>>>0?(c[e+4>>2]|0)>>>0>=4:0)break;while(1){if((c[n>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;y=c[z>>2]|0;c[z>>2]=y+1;p=a[y>>0]|0;y=c[n>>2]|0;c[n>>2]=y+1;a[y>>0]=p;}c[m>>2]=c[v>>2];C=c[m>>2]|0;l=k;return C|0;}}while(0);if((c[e+8>>2]|0)>>>0<8){c[B>>2]=c[6816+(c[e+8>>2]<<2)>>2];a[c[n>>2]>>0]=a[c[z>>2]>>0]|0;a[(c[n>>2]|0)+1>>0]=a[(c[z>>2]|0)+1>>0]|0;a[(c[n>>2]|0)+2>>0]=a[(c[z>>2]|0)+2>>0]|0;a[(c[n>>2]|0)+3>>0]=a[(c[z>>2]|0)+3>>0]|0;c[z>>2]=(c[z>>2]|0)+(c[6848+(c[e+8>>2]<<2)>>2]|0);gv((c[n>>2]|0)+4|0,c[z>>2]|0);c[z>>2]=(c[z>>2]|0)+(0-(c[B>>2]|0));}else hv(c[n>>2]|0,c[z>>2]|0);c[n>>2]=(c[n>>2]|0)+8;c[z>>2]=(c[z>>2]|0)+8;B=c[n>>2]|0;a:do{if((c[w>>2]|0)>>>0>((c[o>>2]|0)+-12|0)>>>0){if(B>>>0<(c[x>>2]|0)>>>0){fv(c[n>>2]|0,c[z>>2]|0,(c[x>>2]|0)-(c[n>>2]|0)|0);c[z>>2]=(c[z>>2]|0)+((c[x>>2]|0)-(c[n>>2]|0));c[n>>2]=c[x>>2];}while(1){if((c[n>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;r=c[z>>2]|0;c[z>>2]=r+1;A=a[r>>0]|0;r=c[n>>2]|0;c[n>>2]=r+1;a[r>>0]=A;}}else fv(B,c[z>>2]|0,(c[e+4>>2]|0)-8|0);}while(0);c[m>>2]=c[v>>2];C=c[m>>2]|0;l=k;return C|0;}function fv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[g>>2];c[j>>2]=c[f>>2];c[k>>2]=(c[j>>2]|0)+(c[h>>2]|0);do{hv(c[j>>2]|0,c[i>>2]|0);c[j>>2]=(c[j>>2]|0)+8;c[i>>2]=(c[i>>2]|0)+8;}while((c[j>>2]|0)>>>0<(c[k>>2]|0)>>>0);l=e;return;}function gv(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[f>>2]|0;f=c[g>>2]|0;a[d>>0]=a[f>>0]|0;a[d+1>>0]=a[f+1>>0]|0;a[d+2>>0]=a[f+2>>0]|0;a[d+3>>0]=a[f+3>>0]|0;l=e;return;}function hv(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[f>>2]|0;f=c[g>>2]|0;a[d>>0]=a[f>>0]|0;a[d+1>>0]=a[f+1>>0]|0;a[d+2>>0]=a[f+2>>0]|0;a[d+3>>0]=a[f+3>>0]|0;a[d+4>>0]=a[f+4>>0]|0;a[d+5>>0]=a[f+5>>0]|0;a[d+6>>0]=a[f+6>>0]|0;a[d+7>>0]=a[f+7>>0]|0;l=e;return;}function iv(d){d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e;g=e+4|0;c[f>>2]=d;d=(c[(c[f>>2]|0)+4>>2]|0)+(c[c[f>>2]>>2]<<2)|0;b[g>>1]=b[d>>1]|0;b[g+2>>1]=b[d+2>>1]|0;l=e;return a[g+2>>0]|0;}function jv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=mv(c[e>>2]|0,c[f>>2]|0)|0;nv(c[e>>2]|0,c[f>>2]|0);l=d;return c[g>>2]|0;}function kv(){return 1;}function lv(f,g){f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+12|0;j=h+8|0;k=h+16|0;m=h+4|0;n=h+20|0;o=h;c[i>>2]=f;c[j>>2]=g;g=(c[(c[i>>2]|0)+4>>2]|0)+(c[c[i>>2]>>2]<<2)|0;b[k>>1]=b[g>>1]|0;b[k+2>>1]=b[g+2>>1]|0;c[m>>2]=d[k+3>>0];a[n>>0]=a[k+2>>0]|0;c[o>>2]=jv(c[j>>2]|0,c[m>>2]|0)|0;c[c[i>>2]>>2]=(e[k>>1]|0)+(c[o>>2]|0);l=h;return a[n>>0]|0;}function mv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;c[e>>2]=a;c[f>>2]=b;c[d>>2]=31;l=d;return c[c[e>>2]>>2]<<(c[(c[e>>2]|0)+4>>2]&31)>>>1>>>(31-(c[f>>2]|0)&31)|0;}function nv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=(c[e>>2]|0)+4|0;c[b>>2]=(c[b>>2]|0)+(c[f>>2]|0);l=d;return;}function ov(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(kv()|0)!=0;f=c[e>>2]|0;if(a){c[d>>2]=Wq(f)|0;g=c[d>>2]|0;l=b;return g|0;}else{a=pv(f)|0;c[d>>2]=a;g=c[d>>2]|0;l=b;return g|0;}return 0;}function pv(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b;e=b+8|0;c[e>>2]=a;a=(Xq()|0)!=0;f=qv(c[e>>2]|0)|0;e=y;if(a){a=d;c[a>>2]=f;c[a+4>>2]=e;}else{a=rv(f,e)|0;e=d;c[e>>2]=a;c[e+4>>2]=y;}e=d;y=c[e+4>>2]|0;l=b;return c[e>>2]|0;}function qv(a){a=a|0;var b=0,e=0,f=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;e=a;f=a+4|0;y=d[f>>0]|d[f+1>>0]<<8|d[f+2>>0]<<16|d[f+3>>0]<<24;l=b;return d[e>>0]|d[e+1>>0]<<8|d[e+2>>0]<<16|d[e+3>>0]<<24|0;}function rv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d;f=e;c[f>>2]=a;c[f+4>>2]=b;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,56)|0;b=y&-16777216;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,40)|0;f=b|y&16711680;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=f|y&65280;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,8)|0;f=b|y&255;b=e;a=iE(c[b>>2]|0,c[b+4>>2]|0,8)|0;b=e;g=iE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=e;h=iE(c[b>>2]|0,c[b+4>>2]|0,40)|0;b=e;e=iE(c[b>>2]|0,c[b+4>>2]|0,56)|0;y=f;l=d;return a&-16777216|g&16711680|h&65280|e&255|0;}function sv(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=31-(Q(c[d>>2]|0)|0)|0;l=b;return a|0;}function tv(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+16|0;h=f+20|0;i=f+12|0;j=f+8|0;k=f+4|0;m=f;c[g>>2]=d;a[h>>0]=e;c[i>>2]=c[g>>2];c[j>>2]=c[i>>2];c[k>>2]=(c[g>>2]|0)+4;c[m>>2]=c[k>>2];b[c[j>>2]>>1]=0;b[(c[j>>2]|0)+2>>1]=0;b[c[m>>2]>>1]=0;a[(c[m>>2]|0)+2>>0]=a[h>>0]|0;a[(c[m>>2]|0)+3>>0]=0;l=f;return 0;}function uv(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;f=l;l=l+48|0;g=f+40|0;h=f+36|0;i=f+32|0;j=f+28|0;k=f+24|0;m=f+20|0;n=f+16|0;o=f+12|0;p=f+8|0;q=f+4|0;r=f;c[h>>2]=d;c[i>>2]=e;c[j>>2]=c[h>>2];c[k>>2]=c[j>>2];c[m>>2]=(c[h>>2]|0)+4;c[n>>2]=c[m>>2];c[o>>2]=1<<c[i>>2];c[p>>2]=(c[o>>2]|0)-1;c[q>>2]=c[p>>2];if((c[i>>2]|0)>>>0<1){c[g>>2]=-1;s=c[g>>2]|0;l=f;return s|0;}b[c[k>>2]>>1]=c[i>>2];b[(c[k>>2]|0)+2>>1]=1;c[r>>2]=0;while(1){if((c[r>>2]|0)>>>0>(c[q>>2]|0)>>>0)break;b[(c[n>>2]|0)+(c[r>>2]<<2)>>1]=0;a[(c[n>>2]|0)+(c[r>>2]<<2)+2>>0]=c[r>>2];a[(c[n>>2]|0)+(c[r>>2]<<2)+3>>0]=c[i>>2];c[r>>2]=(c[r>>2]|0)+1;}c[g>>2]=0;s=c[g>>2]|0;l=f;return s|0;}function vv(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;h=l;l=l+80|0;i=h+64|0;j=h+60|0;k=h+56|0;m=h+52|0;n=h+48|0;o=h+44|0;p=h+40|0;q=h+36|0;r=h+32|0;s=h+28|0;t=h+24|0;u=h+20|0;v=h+16|0;w=h+12|0;x=h+8|0;y=h+4|0;z=h;A=h+70|0;B=h+68|0;c[j>>2]=a;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=c[n>>2];c[q>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[r>>2]=c[p>>2];c[x>>2]=0;c[y>>2]=0;if((c[o>>2]|0)>>>0<4){c[i>>2]=-72;C=c[i>>2]|0;l=h;return C|0;}c[v>>2]=Wq(c[r>>2]|0)|0;c[s>>2]=(c[v>>2]&15)+5;if((c[s>>2]|0)>15){c[i>>2]=-44;C=c[i>>2]|0;l=h;return C|0;}c[v>>2]=(c[v>>2]|0)>>>4;c[w>>2]=4;c[c[m>>2]>>2]=c[s>>2];c[t>>2]=(1<<c[s>>2])+1;c[u>>2]=1<<c[s>>2];c[s>>2]=(c[s>>2]|0)+1;a:while(1){if((c[t>>2]|0)<=1)break;if((c[x>>2]|0)>>>0>(c[c[k>>2]>>2]|0)>>>0)break;do{if(c[y>>2]|0){c[z>>2]=c[x>>2];while(1){if((c[v>>2]&65535|0)!=65535)break;c[z>>2]=(c[z>>2]|0)+24;if((c[r>>2]|0)>>>0<((c[q>>2]|0)+-5|0)>>>0){c[r>>2]=(c[r>>2]|0)+2;m=Wq(c[r>>2]|0)|0;c[v>>2]=m>>>(c[w>>2]|0);}else{c[v>>2]=(c[v>>2]|0)>>>16;c[w>>2]=(c[w>>2]|0)+16;}}while(1){if((c[v>>2]&3|0)!=3)break;c[z>>2]=(c[z>>2]|0)+3;c[v>>2]=(c[v>>2]|0)>>>2;c[w>>2]=(c[w>>2]|0)+2;}c[z>>2]=(c[z>>2]|0)+(c[v>>2]&3);c[w>>2]=(c[w>>2]|0)+2;if((c[z>>2]|0)>>>0>(c[c[k>>2]>>2]|0)>>>0){D=19;break a;}while(1){if((c[x>>2]|0)>>>0>=(c[z>>2]|0)>>>0)break;m=c[j>>2]|0;n=c[x>>2]|0;c[x>>2]=n+1;b[m+(n<<1)>>1]=0;}if((c[r>>2]|0)>>>0>((c[q>>2]|0)+-7|0)>>>0?((c[r>>2]|0)+(c[w>>2]>>3)|0)>>>0>((c[q>>2]|0)+-4|0)>>>0:0){c[v>>2]=(c[v>>2]|0)>>>2;break;}c[r>>2]=(c[r>>2]|0)+(c[w>>2]>>3);c[w>>2]=c[w>>2]&7;n=Wq(c[r>>2]|0)|0;c[v>>2]=n>>>(c[w>>2]|0);}}while(0);b[A>>1]=(c[u>>2]<<1)-1-(c[t>>2]|0);n=c[v>>2]|0;m=c[u>>2]|0;if((c[v>>2]&(c[u>>2]|0)-1)>>>0<(b[A>>1]|0)>>>0){b[B>>1]=n&m-1;c[w>>2]=(c[w>>2]|0)+((c[s>>2]|0)-1);}else{b[B>>1]=n&(m<<1)-1;if((b[B>>1]|0)>=(c[u>>2]|0))b[B>>1]=(b[B>>1]|0)-(b[A>>1]|0);c[w>>2]=(c[w>>2]|0)+(c[s>>2]|0);}b[B>>1]=(b[B>>1]|0)+-1<<16>>16;m=(zv(b[B>>1]|0)|0)<<16>>16;c[t>>2]=(c[t>>2]|0)-m;m=b[B>>1]|0;n=c[j>>2]|0;g=c[x>>2]|0;c[x>>2]=g+1;b[n+(g<<1)>>1]=m;c[y>>2]=((b[B>>1]|0)!=0^1)&1;while(1){if((c[t>>2]|0)>=(c[u>>2]|0))break;c[s>>2]=(c[s>>2]|0)+-1;c[u>>2]=c[u>>2]>>1;}if((c[r>>2]|0)>>>0>((c[q>>2]|0)+-7|0)>>>0?((c[r>>2]|0)+(c[w>>2]>>3)|0)>>>0>((c[q>>2]|0)+-4|0)>>>0:0){c[w>>2]=(c[w>>2]|0)-((c[q>>2]|0)+-4-(c[r>>2]|0)<<3);c[r>>2]=(c[q>>2]|0)+-4;}else{c[r>>2]=(c[r>>2]|0)+(c[w>>2]>>3);c[w>>2]=c[w>>2]&7;}m=Wq(c[r>>2]|0)|0;c[v>>2]=m>>>(c[w>>2]&31);}if((D|0)==19){c[i>>2]=-48;C=c[i>>2]|0;l=h;return C|0;}if((c[t>>2]|0)!=1){c[i>>2]=-1;C=c[i>>2]|0;l=h;return C|0;}c[c[k>>2]>>2]=(c[x>>2]|0)-1;c[r>>2]=(c[r>>2]|0)+((c[w>>2]|0)+7>>3);if(((c[r>>2]|0)-(c[p>>2]|0)|0)>>>0>(c[o>>2]|0)>>>0){c[i>>2]=-72;C=c[i>>2]|0;l=h;return C|0;}else{c[i>>2]=(c[r>>2]|0)-(c[p>>2]|0);C=c[i>>2]|0;l=h;return C|0;}return 0;}function wv(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=nr(c[d>>2]|0)|0;l=b;return a|0;}function xv(f,g,h,i){f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;j=l;l=l+592|0;k=j+572|0;m=j+568|0;n=j+564|0;o=j+560|0;p=j+556|0;q=j+580|0;r=j+552|0;s=j+548|0;t=j+544|0;u=j+540|0;v=j+536|0;w=j;x=j+532|0;y=j+528|0;z=j+578|0;A=j+524|0;B=j+520|0;C=j+516|0;D=j+512|0;E=j+584|0;F=j+576|0;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;c[p>>2]=i;c[r>>2]=(c[m>>2]|0)+4;c[s>>2]=c[r>>2];c[t>>2]=1<<c[p>>2];c[u>>2]=(c[t>>2]|0)-1;c[v>>2]=yv(c[t>>2]|0)|0;c[x>>2]=0;c[y>>2]=(c[t>>2]|0)-1;b[z>>1]=1<<(c[p>>2]|0)-1;c[A>>2]=1;if((c[o>>2]|0)>>>0>255){c[k>>2]=-46;G=c[k>>2]|0;l=j;return G|0;}if((c[p>>2]|0)>>>0>12){c[k>>2]=-44;G=c[k>>2]|0;l=j;return G|0;}b[q>>1]=c[p>>2];c[B>>2]=0;while(1){if((c[B>>2]|0)>>>0>(c[o>>2]|0)>>>0)break;if((b[(c[n>>2]|0)+(c[B>>2]<<1)>>1]|0)==-1){r=c[B>>2]&255;i=c[s>>2]|0;h=c[y>>2]|0;c[y>>2]=h+-1;a[i+(h<<2)+2>>0]=r;b[w+(c[B>>2]<<1)>>1]=1;}else{if((b[(c[n>>2]|0)+(c[B>>2]<<1)>>1]|0)>=(b[z>>1]|0))c[A>>2]=0;b[w+(c[B>>2]<<1)>>1]=b[(c[n>>2]|0)+(c[B>>2]<<1)>>1]|0;}c[B>>2]=(c[B>>2]|0)+1;}c[B>>2]=0;while(1){if((c[B>>2]|0)>>>0>(c[o>>2]|0)>>>0)break;c[C>>2]=0;while(1){H=c[B>>2]|0;if((c[C>>2]|0)>=(b[(c[n>>2]|0)+(c[B>>2]<<1)>>1]|0))break;a[(c[s>>2]|0)+(c[x>>2]<<2)+2>>0]=H;c[x>>2]=(c[x>>2]|0)+(c[v>>2]|0)&c[u>>2];while(1){if((c[x>>2]|0)>>>0<=(c[y>>2]|0)>>>0)break;c[x>>2]=(c[x>>2]|0)+(c[v>>2]|0)&c[u>>2];}c[C>>2]=(c[C>>2]|0)+1;}c[B>>2]=H+1;}if(c[x>>2]|0){c[k>>2]=-1;G=c[k>>2]|0;l=j;return G|0;}c[D>>2]=0;while(1){if((c[D>>2]|0)>>>0>=(c[t>>2]|0)>>>0)break;a[E>>0]=a[(c[s>>2]|0)+(c[D>>2]<<2)+2>>0]|0;x=w+(d[E>>0]<<1)|0;H=b[x>>1]|0;b[x>>1]=H+1<<16>>16;b[F>>1]=H;H=c[p>>2]|0;x=H-(sv(e[F>>1]|0)|0)&255;a[(c[s>>2]|0)+(c[D>>2]<<2)+3>>0]=x;b[(c[s>>2]|0)+(c[D>>2]<<2)>>1]=(e[F>>1]<<d[(c[s>>2]|0)+(c[D>>2]<<2)+3>>0])-(c[t>>2]|0);c[D>>2]=(c[D>>2]|0)+1;}b[q+2>>1]=c[A>>2];A=c[m>>2]|0;b[A>>1]=b[q>>1]|0;b[A+2>>1]=b[q+2>>1]|0;c[k>>2]=0;G=c[k>>2]|0;l=j;return G|0;}function yv(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return((c[d>>2]|0)>>>1)+((c[d>>2]|0)>>>3)+3|0;}function zv(a){a=a|0;var c=0,d=0;c=l;l=l+16|0;d=c;b[d>>1]=a;a=b[d>>1]|0;l=c;return((b[d>>1]|0)<0?0-a|0:a)&65535|0;}function Av(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;g=l;l=l+8224|0;h=g+8220|0;i=g+8216|0;j=g+8212|0;k=g+8208|0;m=g+8204|0;n=g;o=g+8200|0;p=g+8196|0;c[i>>2]=a;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;oE(n|0,0,8194)|0;b[n>>1]=12;c[o>>2]=c[k>>2];c[p>>2]=_v(n,c[k>>2]|0,c[m>>2]|0)|0;k=(Cv(c[p>>2]|0)|0)!=0;f=c[p>>2]|0;if(k){c[h>>2]=f;q=c[h>>2]|0;l=g;return q|0;}if(f>>>0>=(c[m>>2]|0)>>>0){c[h>>2]=-72;q=c[h>>2]|0;l=g;return q|0;}else{c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[m>>2]=(c[m>>2]|0)-(c[p>>2]|0);c[h>>2]=cw(c[i>>2]|0,c[j>>2]|0,c[o>>2]|0,c[m>>2]|0,n)|0;q=c[h>>2]|0;l=g;return q|0;}return 0;}function Bv(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;g=l;l=l+48|0;h=g+44|0;i=g+40|0;j=g+36|0;k=g+32|0;m=g+28|0;n=g+24|0;o=g+20|0;p=g+8|0;q=g+4|0;r=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=e;c[m>>2]=f;c[o>>2]=(c[j>>2]|0)>>>8;c[q>>2]=0;if(!(c[j>>2]|0)){c[h>>2]=-70;s=c[h>>2]|0;l=g;return s|0;}if((c[m>>2]|0)>>>0>=(c[j>>2]|0)>>>0){c[h>>2]=-20;s=c[h>>2]|0;l=g;return s|0;}if((c[m>>2]|0)==1){oE(c[i>>2]|0,(d[c[k>>2]>>0]|0)&255|0,c[j>>2]|0)|0;c[h>>2]=c[j>>2];s=c[h>>2]|0;l=g;return s|0;}c[n>>2]=(c[m>>2]<<4>>>0)/((c[j>>2]|0)>>>0)|0;c[r>>2]=0;while(1){if((c[r>>2]|0)>=3)break;f=(c[7008+((c[n>>2]|0)*24|0)+(c[r>>2]<<3)>>2]|0)+(N(c[7008+((c[n>>2]|0)*24|0)+(c[r>>2]<<3)+4>>2]|0,c[o>>2]|0)|0)|0;c[p+(c[r>>2]<<2)>>2]=f;c[r>>2]=(c[r>>2]|0)+1;}r=p+4|0;c[r>>2]=(c[r>>2]|0)+((c[p+4>>2]|0)>>>4);r=p+8|0;c[r>>2]=(c[r>>2]|0)+((c[p+8>>2]|0)>>>3);if((c[p+4>>2]|0)>>>0<(c[p>>2]|0)>>>0)c[q>>2]=1;c[h>>2]=sc[c[11976+(c[q>>2]<<2)>>2]&15](c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;s=c[h>>2]|0;l=g;return s|0;}function Cv(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=nr(c[d>>2]|0)|0;l=b;return a|0;}function Dv(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;g=l;l=l+80|0;h=g+64|0;i=g+60|0;j=g+56|0;k=g+52|0;m=g+48|0;n=g+44|0;o=g+40|0;p=g+36|0;q=g+32|0;r=g+28|0;s=g+24|0;t=g+20|0;u=g+16|0;v=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=c[k>>2];c[p>>2]=c[i>>2];c[q>>2]=(c[p>>2]|0)+(c[j>>2]|0);c[r>>2]=c[c[n>>2]>>2];c[s>>2]=c[n>>2];c[t>>2]=(c[s>>2]|0)+4;c[u>>2]=av(v,c[o>>2]|0,c[m>>2]|0)|0;if(Cv(c[u>>2]|0)|0){c[h>>2]=c[u>>2];w=c[h>>2]|0;l=g;return w|0;}Ev(c[p>>2]|0,v,c[q>>2]|0,c[t>>2]|0,c[r>>2]|0)|0;if(Fv(v)|0){c[h>>2]=c[j>>2];w=c[h>>2]|0;l=g;return w|0;}else{c[h>>2]=-20;w=c[h>>2]|0;l=g;return w|0;}return 0;}function Ev(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=l;l=l+32|0;h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;m=g+4|0;n=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=c[h>>2];while(1){if(cv(c[i>>2]|0)|0)break;if((c[h>>2]|0)>>>0>=((c[j>>2]|0)+-7|0)>>>0)break;if(Gv()|0){f=Hv(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}Gv()|0;f=Hv(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;if(Gv()|0){f=Hv(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}f=Hv(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}while(1){if(cv(c[i>>2]|0)|0)break;if((c[h>>2]|0)>>>0>((c[j>>2]|0)+-2|0)>>>0)break;f=Hv(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}while(1){o=c[h>>2]|0;if((c[h>>2]|0)>>>0>((c[j>>2]|0)+-2|0)>>>0)break;f=Hv(o,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}if(o>>>0>=(c[j>>2]|0)>>>0){p=c[h>>2]|0;q=c[n>>2]|0;r=p;s=q;t=r-s|0;l=g;return t|0;}j=Iv(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+j;p=c[h>>2]|0;q=c[n>>2]|0;r=p;s=q;t=r-s|0;l=g;return t|0;}function Fv(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b;c[d>>2]=a;if((c[(c[d>>2]|0)+8>>2]|0)!=(c[(c[d>>2]|0)+12>>2]|0)){e=0;f=e&1;l=b;return f|0;}e=(c[(c[d>>2]|0)+4>>2]|0)==32;f=e&1;l=b;return f|0;}function Gv(){return 0;}function Hv(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0;h=l;l=l+32|0;i=h+16|0;j=h+12|0;k=h+8|0;m=h+4|0;n=h;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=g;c[n>>2]=Jv(c[j>>2]|0,c[m>>2]|0)|0;m=c[i>>2]|0;i=(c[k>>2]|0)+(c[n>>2]<<2)|0;a[m>>0]=a[i>>0]|0;a[m+1>>0]=a[i+1>>0]|0;nv(c[j>>2]|0,d[(c[k>>2]|0)+(c[n>>2]<<2)+2>>0]|0);l=h;return d[(c[k>>2]|0)+(c[n>>2]<<2)+3>>0]|0|0;}function Iv(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0;h=l;l=l+32|0;i=h+16|0;j=h+12|0;k=h+8|0;m=h+4|0;n=h;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=g;c[n>>2]=Jv(c[j>>2]|0,c[m>>2]|0)|0;a[c[i>>2]>>0]=a[(c[k>>2]|0)+(c[n>>2]<<2)>>0]|0;i=c[j>>2]|0;if((d[(c[k>>2]|0)+(c[n>>2]<<2)+3>>0]|0|0)==1){nv(i,d[(c[k>>2]|0)+(c[n>>2]<<2)+2>>0]|0);l=h;return 1;}if((c[i+4>>2]|0)>>>0>=32){l=h;return 1;}nv(c[j>>2]|0,d[(c[k>>2]|0)+(c[n>>2]<<2)+2>>0]|0);if((c[(c[j>>2]|0)+4>>2]|0)>>>0<=32){l=h;return 1;}c[(c[j>>2]|0)+4>>2]=32;l=h;return 1;}function Jv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;c[e>>2]=a;c[f>>2]=b;c[d>>2]=31;l=d;return c[c[e>>2]>>2]<<(c[(c[e>>2]|0)+4>>2]&31)>>>(32-(c[f>>2]|0)&31)|0;}function Kv(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;g=l;l=l+8224|0;h=g+8220|0;i=g+8216|0;j=g+8212|0;k=g+8208|0;m=g+8204|0;n=g;o=g+8200|0;p=g+8196|0;c[i>>2]=a;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;oE(n|0,0,8194)|0;b[n>>1]=12;c[o>>2]=c[k>>2];c[p>>2]=_v(n,c[k>>2]|0,c[m>>2]|0)|0;k=(Cv(c[p>>2]|0)|0)!=0;f=c[p>>2]|0;if(k){c[h>>2]=f;q=c[h>>2]|0;l=g;return q|0;}if(f>>>0>=(c[m>>2]|0)>>>0){c[h>>2]=-72;q=c[h>>2]|0;l=g;return q|0;}else{c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[m>>2]=(c[m>>2]|0)-(c[p>>2]|0);c[h>>2]=$v(c[i>>2]|0,c[j>>2]|0,c[o>>2]|0,c[m>>2]|0,n)|0;q=c[h>>2]|0;l=g;return q|0;}return 0;}function Lv(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;f=l;l=l+16416|0;g=f+16412|0;h=f+16408|0;i=f+16404|0;j=f+16400|0;k=f+16396|0;m=f;n=f+16392|0;o=f+16388|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;oE(m|0,0,16388)|0;c[m>>2]=12;c[n>>2]=c[j>>2];c[o>>2]=Mv(m,c[j>>2]|0,c[k>>2]|0)|0;j=(Cv(c[o>>2]|0)|0)!=0;e=c[o>>2]|0;if(j){c[g>>2]=e;p=c[g>>2]|0;l=f;return p|0;}if(e>>>0>=(c[k>>2]|0)>>>0){c[g>>2]=-72;p=c[g>>2]|0;l=f;return p|0;}else{c[n>>2]=(c[n>>2]|0)+(c[o>>2]|0);c[k>>2]=(c[k>>2]|0)-(c[o>>2]|0);c[g>>2]=Nv(c[h>>2]|0,c[i>>2]|0,c[n>>2]|0,c[k>>2]|0,m)|0;p=c[g>>2]|0;l=f;return p|0;}return 0;}function Mv(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0;g=l;l=l+2128|0;h=g+2120|0;i=g+2116|0;j=g+2112|0;k=g+2108|0;m=g+1760|0;n=g+1248|0;o=g+1168|0;p=g+1088|0;q=g+2104|0;r=g;s=g+2100|0;t=g+2096|0;u=g+2092|0;v=g+2088|0;w=g+2084|0;x=g+2080|0;y=g+2076|0;z=g+2072|0;A=g+2068|0;B=g+2064|0;C=g+2060|0;D=g+2056|0;E=g+2052|0;F=g+2048|0;G=g+2044|0;H=g+2040|0;I=g+2036|0;J=g+2032|0;K=g+2028|0;L=g+2024|0;M=g+2020|0;N=g+2016|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;f=o;e=f+68|0;do{c[f>>2]=0;f=f+4|0;}while((f|0)<(e|0));f=p;e=f+72|0;do{c[f>>2]=0;f=f+4|0;}while((f|0)<(e|0));c[q>>2]=p+4;c[w>>2]=c[c[i>>2]>>2];c[y>>2]=c[i>>2];c[z>>2]=(c[y>>2]|0)+4;if((c[w>>2]|0)>>>0>16){c[h>>2]=-44;O=c[h>>2]|0;l=g;return O|0;}c[x>>2]=Qv(m,256,o,v,s,c[j>>2]|0,c[k>>2]|0)|0;if(Cv(c[x>>2]|0)|0){c[h>>2]=c[x>>2];O=c[h>>2]|0;l=g;return O|0;}if((c[s>>2]|0)>>>0>(c[w>>2]|0)>>>0){c[h>>2]=-44;O=c[h>>2]|0;l=g;return O|0;}c[t>>2]=c[s>>2];while(1){if(c[o+(c[t>>2]<<2)>>2]|0)break;c[t>>2]=(c[t>>2]|0)+-1;}c[B>>2]=0;c[A>>2]=1;while(1){P=c[B>>2]|0;if((c[A>>2]|0)>>>0>(c[t>>2]|0)>>>0)break;c[C>>2]=P;c[B>>2]=(c[B>>2]|0)+(c[o+(c[A>>2]<<2)>>2]|0);c[(c[q>>2]|0)+(c[A>>2]<<2)>>2]=c[C>>2];c[A>>2]=(c[A>>2]|0)+1;}c[c[q>>2]>>2]=P;c[u>>2]=c[B>>2];c[D>>2]=0;while(1){if((c[D>>2]|0)>>>0>=(c[v>>2]|0)>>>0)break;c[E>>2]=d[m+(c[D>>2]|0)>>0];B=(c[q>>2]|0)+(c[E>>2]<<2)|0;P=c[B>>2]|0;c[B>>2]=P+1;c[F>>2]=P;a[n+(c[F>>2]<<1)>>0]=c[D>>2];a[n+(c[F>>2]<<1)+1>>0]=c[E>>2];c[D>>2]=(c[D>>2]|0)+1;}c[c[q>>2]>>2]=0;c[G>>2]=(c[s>>2]|0)+1-(c[t>>2]|0);c[H>>2]=0;c[K>>2]=(c[w>>2]|0)-(c[s>>2]|0)-1;c[L>>2]=r;c[I>>2]=1;while(1){if((c[I>>2]|0)>>>0>(c[t>>2]|0)>>>0)break;c[M>>2]=c[H>>2];c[H>>2]=(c[H>>2]|0)+(c[o+(c[I>>2]<<2)>>2]<<(c[I>>2]|0)+(c[K>>2]|0));c[(c[L>>2]|0)+(c[I>>2]<<2)>>2]=c[M>>2];c[I>>2]=(c[I>>2]|0)+1;}c[J>>2]=c[G>>2];while(1){if((c[J>>2]|0)>>>0>((c[w>>2]|0)-(c[G>>2]|0)|0)>>>0)break;c[N>>2]=r+((c[J>>2]|0)*68|0);c[I>>2]=1;while(1){if((c[I>>2]|0)>>>0>(c[t>>2]|0)>>>0)break;c[(c[N>>2]|0)+(c[I>>2]<<2)>>2]=(c[(c[L>>2]|0)+(c[I>>2]<<2)>>2]|0)>>>(c[J>>2]|0);c[I>>2]=(c[I>>2]|0)+1;}c[J>>2]=(c[J>>2]|0)+1;}Rv(c[z>>2]|0,c[w>>2]|0,n,c[u>>2]|0,p,r,c[t>>2]|0,(c[s>>2]|0)+1|0);c[h>>2]=c[x>>2];O=c[h>>2]|0;l=g;return O|0;}function Nv(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;g=l;l=l+192|0;h=g+184|0;i=g+180|0;j=g+176|0;k=g+172|0;m=g+168|0;n=g+164|0;o=g+160|0;p=g+156|0;q=g+152|0;r=g+148|0;s=g+144|0;t=g+140|0;u=g+136|0;v=g+120|0;w=g+104|0;x=g+88|0;y=g+72|0;z=g+64|0;A=g+60|0;B=g+56|0;C=g+52|0;D=g+48|0;E=g+44|0;F=g+40|0;G=g+36|0;H=g+32|0;I=g+28|0;J=g+24|0;K=g+20|0;L=g+16|0;M=g+12|0;N=g+8|0;O=g+4|0;P=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;if((c[m>>2]|0)>>>0<10){c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}c[o>>2]=c[k>>2];c[p>>2]=c[i>>2];c[q>>2]=(c[p>>2]|0)+(c[j>>2]|0);c[r>>2]=c[n>>2];c[s>>2]=(c[r>>2]|0)+4;c[t>>2]=c[c[n>>2]>>2];c[z>>2]=(Ov(c[o>>2]|0)|0)&65535;c[A>>2]=(Ov((c[o>>2]|0)+2|0)|0)&65535;c[B>>2]=(Ov((c[o>>2]|0)+4|0)|0)&65535;c[D>>2]=(c[o>>2]|0)+6;c[E>>2]=(c[D>>2]|0)+(c[z>>2]|0);c[F>>2]=(c[E>>2]|0)+(c[A>>2]|0);c[G>>2]=(c[F>>2]|0)+(c[B>>2]|0);c[H>>2]=(((c[j>>2]|0)+3|0)>>>0)/4|0;c[I>>2]=(c[p>>2]|0)+(c[H>>2]|0);c[J>>2]=(c[I>>2]|0)+(c[H>>2]|0);c[K>>2]=(c[J>>2]|0)+(c[H>>2]|0);c[L>>2]=c[p>>2];c[M>>2]=c[I>>2];c[N>>2]=c[J>>2];c[O>>2]=c[K>>2];c[C>>2]=(c[m>>2]|0)-((c[z>>2]|0)+(c[A>>2]|0)+(c[B>>2]|0)+6);if((c[C>>2]|0)>>>0>(c[m>>2]|0)>>>0){c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}c[u>>2]=av(v,c[D>>2]|0,c[z>>2]|0)|0;if(Cv(c[u>>2]|0)|0){c[h>>2]=c[u>>2];Q=c[h>>2]|0;l=g;return Q|0;}c[u>>2]=av(w,c[E>>2]|0,c[A>>2]|0)|0;if(Cv(c[u>>2]|0)|0){c[h>>2]=c[u>>2];Q=c[h>>2]|0;l=g;return Q|0;}c[u>>2]=av(x,c[F>>2]|0,c[B>>2]|0)|0;if(Cv(c[u>>2]|0)|0){c[h>>2]=c[u>>2];Q=c[h>>2]|0;l=g;return Q|0;}c[u>>2]=av(y,c[G>>2]|0,c[C>>2]|0)|0;if(Cv(c[u>>2]|0)|0){c[h>>2]=c[u>>2];Q=c[h>>2]|0;l=g;return Q|0;}u=cv(v)|0;C=u|(cv(w)|0);u=C|(cv(x)|0);c[P>>2]=u|(cv(y)|0);while(1){if(c[P>>2]|0)break;if((c[O>>2]|0)>>>0>=((c[q>>2]|0)+-7|0)>>>0)break;if(Gv()|0){u=Hv(c[L>>2]|0,v,c[s>>2]|0,c[t>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+u;}if(Gv()|0){u=Hv(c[M>>2]|0,w,c[s>>2]|0,c[t>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+u;}if(Gv()|0){u=Hv(c[N>>2]|0,x,c[s>>2]|0,c[t>>2]|0)|0;c[N>>2]=(c[N>>2]|0)+u;}if(Gv()|0){u=Hv(c[O>>2]|0,y,c[s>>2]|0,c[t>>2]|0)|0;c[O>>2]=(c[O>>2]|0)+u;}Gv()|0;u=Hv(c[L>>2]|0,v,c[s>>2]|0,c[t>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+u;Gv()|0;u=Hv(c[M>>2]|0,w,c[s>>2]|0,c[t>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+u;Gv()|0;u=Hv(c[N>>2]|0,x,c[s>>2]|0,c[t>>2]|0)|0;c[N>>2]=(c[N>>2]|0)+u;Gv()|0;u=Hv(c[O>>2]|0,y,c[s>>2]|0,c[t>>2]|0)|0;c[O>>2]=(c[O>>2]|0)+u;if(Gv()|0){u=Hv(c[L>>2]|0,v,c[s>>2]|0,c[t>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+u;}if(Gv()|0){u=Hv(c[M>>2]|0,w,c[s>>2]|0,c[t>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+u;}if(Gv()|0){u=Hv(c[N>>2]|0,x,c[s>>2]|0,c[t>>2]|0)|0;c[N>>2]=(c[N>>2]|0)+u;}if(Gv()|0){u=Hv(c[O>>2]|0,y,c[s>>2]|0,c[t>>2]|0)|0;c[O>>2]=(c[O>>2]|0)+u;}u=Hv(c[L>>2]|0,v,c[s>>2]|0,c[t>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+u;u=Hv(c[M>>2]|0,w,c[s>>2]|0,c[t>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+u;u=Hv(c[N>>2]|0,x,c[s>>2]|0,c[t>>2]|0)|0;c[N>>2]=(c[N>>2]|0)+u;u=Hv(c[O>>2]|0,y,c[s>>2]|0,c[t>>2]|0)|0;c[O>>2]=(c[O>>2]|0)+u;u=cv(v)|0;C=u|(cv(w)|0);u=C|(cv(x)|0);c[P>>2]=u|(cv(y)|0);}if((c[L>>2]|0)>>>0>(c[I>>2]|0)>>>0){c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}if((c[M>>2]|0)>>>0>(c[J>>2]|0)>>>0){c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}if((c[N>>2]|0)>>>0>(c[K>>2]|0)>>>0){c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}Ev(c[L>>2]|0,v,c[I>>2]|0,c[s>>2]|0,c[t>>2]|0)|0;Ev(c[M>>2]|0,w,c[J>>2]|0,c[s>>2]|0,c[t>>2]|0)|0;Ev(c[N>>2]|0,x,c[K>>2]|0,c[s>>2]|0,c[t>>2]|0)|0;Ev(c[O>>2]|0,y,c[q>>2]|0,c[s>>2]|0,c[t>>2]|0)|0;t=Fv(v)|0;v=t&(Fv(w)|0);w=v&(Fv(x)|0);c[P>>2]=w&(Fv(y)|0);if(c[P>>2]|0){c[h>>2]=c[j>>2];Q=c[h>>2]|0;l=g;return Q|0;}else{c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}return 0;}function Ov(a){a=a|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[g>>2]=a;a=(Xq()|0)!=0;i=c[g>>2]|0;if(a){b[f>>1]=Pv(i)|0;j=b[f>>1]|0;l=e;return j|0;}else{c[h>>2]=i;b[f>>1]=(d[c[h>>2]>>0]|0)+((d[(c[h>>2]|0)+1>>0]|0)<<8);j=b[f>>1]|0;l=e;return j|0;}return 0;}function Pv(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|0;}function Qv(b,e,f,g,h,i,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;k=l;l=l+80|0;m=k+68|0;n=k+64|0;o=k+60|0;p=k+56|0;q=k+52|0;r=k+48|0;s=k+44|0;t=k+40|0;u=k+36|0;v=k+32|0;w=k+28|0;x=k+24|0;y=k+20|0;z=k+16|0;A=k+12|0;B=k+8|0;C=k+4|0;D=k;c[n>>2]=b;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[w>>2]=c[s>>2];if(!(c[t>>2]|0)){c[m>>2]=-72;E=c[m>>2]|0;l=k;return E|0;}c[x>>2]=d[c[w>>2]>>0];s=c[x>>2]|0;a:do{if((c[x>>2]|0)>>>0<128){if((s+1|0)>>>0>(c[t>>2]|0)>>>0){c[m>>2]=-72;E=c[m>>2]|0;l=k;return E|0;}c[y>>2]=Vv(c[n>>2]|0,(c[o>>2]|0)-1|0,(c[w>>2]|0)+1|0,c[x>>2]|0)|0;if(wv(c[y>>2]|0)|0){c[m>>2]=c[y>>2];E=c[m>>2]|0;l=k;return E|0;}}else{j=c[x>>2]|0;if(s>>>0>=242){c[y>>2]=c[7392+(j-242<<2)>>2];oE(c[n>>2]|0,1,c[o>>2]|0)|0;c[x>>2]=0;break;}c[y>>2]=j-127;c[x>>2]=(((c[y>>2]|0)+1|0)>>>0)/2|0;if(((c[x>>2]|0)+1|0)>>>0>(c[t>>2]|0)>>>0){c[m>>2]=-72;E=c[m>>2]|0;l=k;return E|0;}if((c[y>>2]|0)>>>0>=(c[o>>2]|0)>>>0){c[m>>2]=-20;E=c[m>>2]|0;l=k;return E|0;}c[w>>2]=(c[w>>2]|0)+1;c[z>>2]=0;while(1){if((c[z>>2]|0)>>>0>=(c[y>>2]|0)>>>0)break a;a[(c[n>>2]|0)+(c[z>>2]|0)>>0]=(d[(c[w>>2]|0)+(((c[z>>2]|0)>>>0)/2|0)>>0]|0)>>4;a[(c[n>>2]|0)+((c[z>>2]|0)+1)>>0]=(d[(c[w>>2]|0)+(((c[z>>2]|0)>>>0)/2|0)>>0]|0)&15;c[z>>2]=(c[z>>2]|0)+2;}}}while(0);w=c[p>>2]|0;o=w+68|0;do{c[w>>2]=0;w=w+4|0;}while((w|0)<(o|0));c[u>>2]=0;c[z>>2]=0;while(1){if((c[z>>2]|0)>>>0>=(c[y>>2]|0)>>>0)break;if((d[(c[n>>2]|0)+(c[z>>2]|0)>>0]|0|0)>=16){F=20;break;}w=(c[p>>2]|0)+((d[(c[n>>2]|0)+(c[z>>2]|0)>>0]|0)<<2)|0;c[w>>2]=(c[w>>2]|0)+1;c[u>>2]=(c[u>>2]|0)+(1<<(d[(c[n>>2]|0)+(c[z>>2]|0)>>0]|0)>>1);c[z>>2]=(c[z>>2]|0)+1;}if((F|0)==20){c[m>>2]=-20;E=c[m>>2]|0;l=k;return E|0;}if(!(c[u>>2]|0)){c[m>>2]=-20;E=c[m>>2]|0;l=k;return E|0;}c[v>>2]=(sv(c[u>>2]|0)|0)+1;if((c[v>>2]|0)>>>0>16){c[m>>2]=-20;E=c[m>>2]|0;l=k;return E|0;}c[A>>2]=1<<c[v>>2];c[B>>2]=(c[A>>2]|0)-(c[u>>2]|0);c[C>>2]=1<<(sv(c[B>>2]|0)|0);c[D>>2]=(sv(c[B>>2]|0)|0)+1;if((c[C>>2]|0)!=(c[B>>2]|0)){c[m>>2]=-20;E=c[m>>2]|0;l=k;return E|0;}a[(c[n>>2]|0)+(c[y>>2]|0)>>0]=c[D>>2];n=(c[p>>2]|0)+(c[D>>2]<<2)|0;c[n>>2]=(c[n>>2]|0)+1;if((c[(c[p>>2]|0)+4>>2]|0)>>>0>=2?(c[(c[p>>2]|0)+4>>2]&1|0)==0:0){c[c[q>>2]>>2]=(c[y>>2]|0)+1;c[c[r>>2]>>2]=c[v>>2];c[m>>2]=(c[x>>2]|0)+1;E=c[m>>2]|0;l=k;return E|0;}c[m>>2]=-20;E=c[m>>2]|0;l=k;return E|0;}function Rv(e,f,g,h,i,j,k,m){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;n=l;l=l+160|0;o=n+140|0;p=n+136|0;q=n+132|0;r=n+128|0;s=n+124|0;t=n+120|0;u=n+116|0;v=n+112|0;w=n;x=n+108|0;y=n+104|0;z=n+100|0;A=n+148|0;B=n+96|0;C=n+92|0;D=n+88|0;E=n+84|0;F=n+80|0;G=n+76|0;H=n+72|0;I=n+68|0;J=n+144|0;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[u>>2]=k;c[v>>2]=m;c[x>>2]=(c[v>>2]|0)-(c[p>>2]|0);c[y>>2]=(c[v>>2]|0)-(c[u>>2]|0);u=w;m=c[t>>2]|0;k=u+68|0;do{c[u>>2]=c[m>>2];u=u+4|0;m=m+4|0;}while((u|0)<(k|0));c[z>>2]=0;while(1){if((c[z>>2]|0)>>>0>=(c[r>>2]|0)>>>0)break;b[A>>1]=d[(c[q>>2]|0)+(c[z>>2]<<1)>>0]|0;c[B>>2]=d[(c[q>>2]|0)+(c[z>>2]<<1)+1>>0];c[C>>2]=(c[v>>2]|0)-(c[B>>2]|0);c[D>>2]=c[w+(c[B>>2]<<2)>>2];c[E>>2]=1<<(c[p>>2]|0)-(c[C>>2]|0);a:do{if(((c[p>>2]|0)-(c[C>>2]|0)|0)>>>0>=(c[y>>2]|0)>>>0){m=(c[C>>2]|0)+(c[x>>2]|0)|0;c[G>>2]=m;c[G>>2]=(c[G>>2]|0)<1?1:m;c[F>>2]=c[(c[s>>2]|0)+(c[G>>2]<<2)>>2];Sv((c[o>>2]|0)+(c[D>>2]<<2)|0,(c[p>>2]|0)-(c[C>>2]|0)|0,c[C>>2]|0,(c[t>>2]|0)+((c[C>>2]|0)*68|0)|0,c[G>>2]|0,(c[q>>2]|0)+(c[F>>2]<<1)|0,(c[r>>2]|0)-(c[F>>2]|0)|0,c[v>>2]|0,b[A>>1]|0);}else{c[I>>2]=(c[D>>2]|0)+(c[E>>2]|0);Tv(J,b[A>>1]|0);a[J+2>>0]=c[C>>2];a[J+3>>0]=1;c[H>>2]=c[D>>2];while(1){if((c[H>>2]|0)>>>0>=(c[I>>2]|0)>>>0)break a;m=(c[o>>2]|0)+(c[H>>2]<<2)|0;b[m>>1]=b[J>>1]|0;b[m+2>>1]=b[J+2>>1]|0;c[H>>2]=(c[H>>2]|0)+1;}}}while(0);m=w+(c[B>>2]<<2)|0;c[m>>2]=(c[m>>2]|0)+(c[E>>2]|0);c[z>>2]=(c[z>>2]|0)+1;}l=n;return;}function Sv(f,g,h,i,j,k,m,n,o){f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;p=l;l=l+160|0;q=p+136|0;r=p+132|0;s=p+128|0;t=p+124|0;u=p+120|0;v=p+116|0;w=p+112|0;x=p+108|0;y=p+144|0;z=p+140|0;A=p;B=p+104|0;C=p+100|0;D=p+96|0;E=p+92|0;F=p+88|0;G=p+84|0;H=p+80|0;I=p+76|0;J=p+72|0;K=p+68|0;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=i;c[u>>2]=j;c[v>>2]=k;c[w>>2]=m;c[x>>2]=n;b[y>>1]=o;o=A;n=c[t>>2]|0;t=o+68|0;do{c[o>>2]=c[n>>2];o=o+4|0;n=n+4|0;}while((o|0)<(t|0));a:do{if((c[u>>2]|0)>1){c[D>>2]=c[A+(c[u>>2]<<2)>>2];Tv(z,b[y>>1]|0);a[z+2>>0]=c[s>>2];a[z+3>>0]=1;c[C>>2]=0;while(1){if((c[C>>2]|0)>>>0>=(c[D>>2]|0)>>>0)break a;n=(c[q>>2]|0)+(c[C>>2]<<2)|0;b[n>>1]=b[z>>1]|0;b[n+2>>1]=b[z+2>>1]|0;c[C>>2]=(c[C>>2]|0)+1;}}}while(0);c[B>>2]=0;while(1){if((c[B>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;c[E>>2]=d[(c[v>>2]|0)+(c[B>>2]<<1)>>0];c[F>>2]=d[(c[v>>2]|0)+(c[B>>2]<<1)+1>>0];c[G>>2]=(c[x>>2]|0)-(c[F>>2]|0);c[H>>2]=1<<(c[r>>2]|0)-(c[G>>2]|0);c[I>>2]=c[A+(c[F>>2]<<2)>>2];c[J>>2]=c[I>>2];c[K>>2]=(c[I>>2]|0)+(c[H>>2]|0);Tv(z,(e[y>>1]|0)+(c[E>>2]<<8)&65535);a[z+2>>0]=(c[G>>2]|0)+(c[s>>2]|0);a[z+3>>0]=2;do{C=c[q>>2]|0;D=c[J>>2]|0;c[J>>2]=D+1;u=C+(D<<2)|0;b[u>>1]=b[z>>1]|0;b[u+2>>1]=b[z+2>>1]|0;}while((c[J>>2]|0)>>>0<(c[K>>2]|0)>>>0);u=A+(c[F>>2]<<2)|0;c[u>>2]=(c[u>>2]|0)+(c[H>>2]|0);c[B>>2]=(c[B>>2]|0)+1;}l=p;return;}function Tv(d,f){d=d|0;f=f|0;var g=0,h=0,i=0,j=0;g=l;l=l+16|0;h=g+4|0;i=g+8|0;j=g;c[h>>2]=d;b[i>>1]=f;f=(Xq()|0)!=0;d=c[h>>2]|0;if(f){Uv(d,b[i>>1]|0);l=g;return;}else{c[j>>2]=d;a[c[j>>2]>>0]=b[i>>1];a[(c[j>>2]|0)+1>>0]=(e[i>>1]|0)>>8;l=g;return;}}function Uv(d,e){d=d|0;e=e|0;var f=0,g=0,h=0;f=l;l=l+16|0;g=f;h=f+4|0;c[g>>2]=d;b[h>>1]=e;e=b[h>>1]|0;h=c[g>>2]|0;a[h>>0]=e;a[h+1>>0]=e>>8;l=f;return;}function Vv(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;f=l;l=l+16960|0;g=f+16948|0;h=f+16944|0;i=f+16940|0;j=f+16936|0;k=f+16932|0;m=f+16928|0;n=f+16924|0;o=f+16400|0;p=f;q=f+16920|0;r=f+16916|0;s=f+16912|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=c[j>>2];c[n>>2]=c[m>>2];c[r>>2]=255;if((c[k>>2]|0)>>>0<2){c[g>>2]=-72;t=c[g>>2]|0;l=f;return t|0;}c[s>>2]=vv(o,r,q,c[m>>2]|0,c[k>>2]|0)|0;m=(wv(c[s>>2]|0)|0)!=0;j=c[s>>2]|0;if(m){c[g>>2]=j;t=c[g>>2]|0;l=f;return t|0;}if(j>>>0>=(c[k>>2]|0)>>>0){c[g>>2]=-72;t=c[g>>2]|0;l=f;return t|0;}c[n>>2]=(c[n>>2]|0)+(c[s>>2]|0);c[k>>2]=(c[k>>2]|0)-(c[s>>2]|0);c[s>>2]=xv(p,o,c[r>>2]|0,c[q>>2]|0)|0;if(wv(c[s>>2]|0)|0){c[g>>2]=c[s>>2];t=c[g>>2]|0;l=f;return t|0;}else{c[g>>2]=Wv(c[h>>2]|0,c[i>>2]|0,c[n>>2]|0,c[k>>2]|0,p)|0;t=c[g>>2]|0;l=f;return t|0;}return 0;}function Wv(b,d,f,g,h){b=b|0;d=d|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0;i=l;l=l+208|0;j=i+192|0;k=i+188|0;m=i+184|0;n=i+180|0;o=i+176|0;p=i+172|0;q=i+168|0;r=i+164|0;s=i+160|0;t=i+156|0;u=i+152|0;v=i+136|0;w=i+128|0;x=i+120|0;y=i+116|0;z=i+112|0;A=i+108|0;B=i+104|0;C=i+100|0;D=i+96|0;E=i+92|0;F=i+88|0;G=i+84|0;H=i+80|0;I=i+76|0;J=i+72|0;K=i+56|0;L=i+48|0;M=i+40|0;N=i+36|0;O=i+32|0;P=i+28|0;Q=i+24|0;R=i+20|0;S=i+16|0;T=i+12|0;U=i+8|0;V=i+4|0;W=i;c[P>>2]=b;c[Q>>2]=d;c[R>>2]=f;c[S>>2]=g;c[T>>2]=h;c[U>>2]=c[T>>2];c[V>>2]=c[U>>2];c[W>>2]=e[(c[V>>2]|0)+2>>1];V=c[P>>2]|0;P=c[Q>>2]|0;Q=c[R>>2]|0;R=c[S>>2]|0;S=c[T>>2]|0;if(c[W>>2]|0){c[A>>2]=V;c[B>>2]=P;c[C>>2]=Q;c[D>>2]=R;c[E>>2]=S;c[F>>2]=1;c[G>>2]=c[A>>2];c[H>>2]=c[G>>2];c[I>>2]=(c[H>>2]|0)+(c[B>>2]|0);c[J>>2]=(c[I>>2]|0)+-3;c[N>>2]=av(K,c[C>>2]|0,c[D>>2]|0)|0;do{if(!(wv(c[N>>2]|0)|0)){bv(L,K,c[E>>2]|0);bv(M,K,c[E>>2]|0);while(1){if(cv(K)|0)break;if((c[H>>2]|0)>>>0>=(c[J>>2]|0)>>>0)break;if(c[F>>2]|0)X=(Xv(L,K)|0)&255;else X=(lv(L,K)|0)&255;a[c[H>>2]>>0]=X;if(c[F>>2]|0)Y=(Xv(M,K)|0)&255;else Y=(lv(M,K)|0)&255;a[(c[H>>2]|0)+1>>0]=Y;if((cv(K)|0)>>>0>0){Z=14;break;}if(c[F>>2]|0)_=(Xv(L,K)|0)&255;else _=(lv(L,K)|0)&255;a[(c[H>>2]|0)+2>>0]=_;if(c[F>>2]|0)$=(Xv(M,K)|0)&255;else $=(lv(M,K)|0)&255;a[(c[H>>2]|0)+3>>0]=$;c[H>>2]=(c[H>>2]|0)+4;}if((Z|0)==14)c[H>>2]=(c[H>>2]|0)+2;while(1){if((cv(K)|0)>>>0>2)break;if((c[H>>2]|0)==(c[I>>2]|0))break;if(Fv(K)|0){if(c[F>>2]|0)break;if(Yv(L)|0)break;}if(c[F>>2]|0)aa=(Xv(L,K)|0)&255;else aa=(lv(L,K)|0)&255;D=c[H>>2]|0;c[H>>2]=D+1;a[D>>0]=aa;if((cv(K)|0)>>>0>2)break;if((c[H>>2]|0)==(c[I>>2]|0))break;if(Fv(K)|0){if(c[F>>2]|0)break;if(Yv(M)|0)break;}if(c[F>>2]|0)ba=(Xv(M,K)|0)&255;else ba=(lv(M,K)|0)&255;D=c[H>>2]|0;c[H>>2]=D+1;a[D>>0]=ba;}if((Fv(K)|0?Yv(L)|0:0)?Yv(M)|0:0){c[z>>2]=(c[H>>2]|0)-(c[G>>2]|0);break;}if((c[H>>2]|0)==(c[I>>2]|0)){c[z>>2]=-70;break;}else{c[z>>2]=-20;break;}}else c[z>>2]=c[N>>2];}while(0);c[O>>2]=c[z>>2];ca=c[O>>2]|0;l=i;return ca|0;}else{c[k>>2]=V;c[m>>2]=P;c[n>>2]=Q;c[o>>2]=R;c[p>>2]=S;c[q>>2]=0;c[r>>2]=c[k>>2];c[s>>2]=c[r>>2];c[t>>2]=(c[s>>2]|0)+(c[m>>2]|0);c[u>>2]=(c[t>>2]|0)+-3;c[y>>2]=av(v,c[n>>2]|0,c[o>>2]|0)|0;do{if(!(wv(c[y>>2]|0)|0)){bv(w,v,c[p>>2]|0);bv(x,v,c[p>>2]|0);while(1){if(cv(v)|0)break;if((c[s>>2]|0)>>>0>=(c[u>>2]|0)>>>0)break;if(c[q>>2]|0)da=(Xv(w,v)|0)&255;else da=(lv(w,v)|0)&255;a[c[s>>2]>>0]=da;if(c[q>>2]|0)ea=(Xv(x,v)|0)&255;else ea=(lv(x,v)|0)&255;a[(c[s>>2]|0)+1>>0]=ea;if((cv(v)|0)>>>0>0){Z=60;break;}if(c[q>>2]|0)fa=(Xv(w,v)|0)&255;else fa=(lv(w,v)|0)&255;a[(c[s>>2]|0)+2>>0]=fa;if(c[q>>2]|0)ga=(Xv(x,v)|0)&255;else ga=(lv(x,v)|0)&255;a[(c[s>>2]|0)+3>>0]=ga;c[s>>2]=(c[s>>2]|0)+4;}if((Z|0)==60)c[s>>2]=(c[s>>2]|0)+2;while(1){if((cv(v)|0)>>>0>2)break;if((c[s>>2]|0)==(c[t>>2]|0))break;if(Fv(v)|0){if(c[q>>2]|0)break;if(Yv(w)|0)break;}if(c[q>>2]|0)ha=(Xv(w,v)|0)&255;else ha=(lv(w,v)|0)&255;o=c[s>>2]|0;c[s>>2]=o+1;a[o>>0]=ha;if((cv(v)|0)>>>0>2)break;if((c[s>>2]|0)==(c[t>>2]|0))break;if(Fv(v)|0){if(c[q>>2]|0)break;if(Yv(x)|0)break;}if(c[q>>2]|0)ia=(Xv(x,v)|0)&255;else ia=(lv(x,v)|0)&255;o=c[s>>2]|0;c[s>>2]=o+1;a[o>>0]=ia;}if((Fv(v)|0?Yv(w)|0:0)?Yv(x)|0:0){c[j>>2]=(c[s>>2]|0)-(c[r>>2]|0);break;}if((c[s>>2]|0)==(c[t>>2]|0)){c[j>>2]=-70;break;}else{c[j>>2]=-20;break;}}else c[j>>2]=c[y>>2];}while(0);c[O>>2]=c[j>>2];ca=c[O>>2]|0;l=i;return ca|0;}return 0;}function Xv(f,g){f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+12|0;j=h+8|0;k=h+16|0;m=h+4|0;n=h+20|0;o=h;c[i>>2]=f;c[j>>2]=g;g=(c[(c[i>>2]|0)+4>>2]|0)+(c[c[i>>2]>>2]<<2)|0;b[k>>1]=b[g>>1]|0;b[k+2>>1]=b[g+2>>1]|0;c[m>>2]=d[k+3>>0];a[n>>0]=a[k+2>>0]|0;c[o>>2]=Zv(c[j>>2]|0,c[m>>2]|0)|0;c[c[i>>2]>>2]=(e[k>>1]|0)+(c[o>>2]|0);l=h;return a[n>>0]|0;}function Yv(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return(c[c[d>>2]>>2]|0)==0|0;}function Zv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=Jv(c[e>>2]|0,c[f>>2]|0)|0;nv(c[e>>2]|0,c[f>>2]|0);l=d;return c[g>>2]|0;}function _v(f,g,h){f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;i=l;l=l+400|0;j=i+392|0;k=i+388|0;m=i+384|0;n=i+380|0;o=i+80|0;p=i;q=i+376|0;r=i+372|0;s=i+368|0;t=i+364|0;u=i+360|0;v=i+356|0;w=i+352|0;x=i+348|0;y=i+344|0;z=i+340|0;A=i+336|0;B=i+396|0;c[k>>2]=f;c[m>>2]=g;c[n>>2]=h;c[q>>2]=0;c[s>>2]=0;c[v>>2]=(c[k>>2]|0)+2;c[w>>2]=c[v>>2];c[r>>2]=Qv(o,256,p,s,q,c[m>>2]|0,c[n>>2]|0)|0;if(Cv(c[r>>2]|0)|0){c[j>>2]=c[r>>2];C=c[j>>2]|0;l=i;return C|0;}if((c[q>>2]|0)>>>0>(e[c[k>>2]>>1]|0)>>>0){c[j>>2]=-44;C=c[j>>2]|0;l=i;return C|0;}b[c[k>>2]>>1]=c[q>>2];c[u>>2]=0;c[t>>2]=1;while(1){if((c[t>>2]|0)>>>0>(c[q>>2]|0)>>>0)break;c[x>>2]=c[u>>2];c[u>>2]=(c[u>>2]|0)+(c[p+(c[t>>2]<<2)>>2]<<(c[t>>2]|0)-1);c[p+(c[t>>2]<<2)>>2]=c[x>>2];c[t>>2]=(c[t>>2]|0)+1;}c[t>>2]=0;while(1){if((c[t>>2]|0)>>>0>=(c[s>>2]|0)>>>0)break;c[y>>2]=d[o+(c[t>>2]|0)>>0];c[z>>2]=1<<c[y>>2]>>1;a[B>>0]=c[t>>2];a[B+1>>0]=(c[q>>2]|0)+1-(c[y>>2]|0);c[A>>2]=c[p+(c[y>>2]<<2)>>2];while(1){if((c[A>>2]|0)>>>0>=((c[p+(c[y>>2]<<2)>>2]|0)+(c[z>>2]|0)|0)>>>0)break;x=(c[w>>2]|0)+(c[A>>2]<<1)|0;a[x>>0]=a[B>>0]|0;a[x+1>>0]=a[B+1>>0]|0;c[A>>2]=(c[A>>2]|0)+1;}x=p+(c[y>>2]<<2)|0;c[x>>2]=(c[x>>2]|0)+(c[z>>2]|0);c[t>>2]=(c[t>>2]|0)+1;}c[j>>2]=c[r>>2];C=c[j>>2]|0;l=i;return C|0;}function $v(b,d,f,g,h){b=b|0;d=d|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0;i=l;l=l+192|0;j=i+184|0;k=i+180|0;m=i+176|0;n=i+172|0;o=i+168|0;p=i+164|0;q=i+160|0;r=i+156|0;s=i+152|0;t=i+148|0;u=i+144|0;v=i+140|0;w=i+136|0;x=i+120|0;y=i+104|0;z=i+88|0;A=i+72|0;B=i+64|0;C=i+60|0;D=i+56|0;E=i+52|0;F=i+48|0;G=i+44|0;H=i+40|0;I=i+36|0;J=i+32|0;K=i+28|0;L=i+24|0;M=i+20|0;N=i+16|0;O=i+12|0;P=i+8|0;Q=i+4|0;R=i;c[k>>2]=b;c[m>>2]=d;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;c[q>>2]=c[n>>2];c[r>>2]=c[k>>2];c[s>>2]=(c[r>>2]|0)+(c[m>>2]|0);c[t>>2]=c[p>>2];c[u>>2]=(c[t>>2]|0)+2;c[v>>2]=e[c[p>>2]>>1];c[B>>2]=(Ov(c[q>>2]|0)|0)&65535;c[C>>2]=(Ov((c[q>>2]|0)+2|0)|0)&65535;c[D>>2]=(Ov((c[q>>2]|0)+4|0)|0)&65535;c[F>>2]=(c[q>>2]|0)+6;c[G>>2]=(c[F>>2]|0)+(c[B>>2]|0);c[H>>2]=(c[G>>2]|0)+(c[C>>2]|0);c[I>>2]=(c[H>>2]|0)+(c[D>>2]|0);c[J>>2]=(((c[m>>2]|0)+3|0)>>>0)/4|0;c[K>>2]=(c[r>>2]|0)+(c[J>>2]|0);c[L>>2]=(c[K>>2]|0)+(c[J>>2]|0);c[M>>2]=(c[L>>2]|0)+(c[J>>2]|0);c[N>>2]=c[r>>2];c[O>>2]=c[K>>2];c[P>>2]=c[L>>2];c[Q>>2]=c[M>>2];if((c[o>>2]|0)>>>0<10){c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}c[E>>2]=(c[o>>2]|0)-((c[B>>2]|0)+(c[C>>2]|0)+(c[D>>2]|0)+6);if((c[E>>2]|0)>>>0>(c[o>>2]|0)>>>0){c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}c[w>>2]=av(x,c[F>>2]|0,c[B>>2]|0)|0;if(Cv(c[w>>2]|0)|0){c[j>>2]=c[w>>2];S=c[j>>2]|0;l=i;return S|0;}c[w>>2]=av(y,c[G>>2]|0,c[C>>2]|0)|0;if(Cv(c[w>>2]|0)|0){c[j>>2]=c[w>>2];S=c[j>>2]|0;l=i;return S|0;}c[w>>2]=av(z,c[H>>2]|0,c[D>>2]|0)|0;if(Cv(c[w>>2]|0)|0){c[j>>2]=c[w>>2];S=c[j>>2]|0;l=i;return S|0;}c[w>>2]=av(A,c[I>>2]|0,c[E>>2]|0)|0;if(Cv(c[w>>2]|0)|0){c[j>>2]=c[w>>2];S=c[j>>2]|0;l=i;return S|0;}w=cv(x)|0;E=w|(cv(y)|0);w=E|(cv(z)|0);c[R>>2]=w|(cv(A)|0);while(1){if(c[R>>2]|0)break;if((c[Q>>2]|0)>>>0>=((c[s>>2]|0)+-7|0)>>>0)break;if(Gv()|0){w=aw(x,c[u>>2]|0,c[v>>2]|0)|0;E=c[N>>2]|0;c[N>>2]=E+1;a[E>>0]=w;}if(Gv()|0){w=aw(y,c[u>>2]|0,c[v>>2]|0)|0;E=c[O>>2]|0;c[O>>2]=E+1;a[E>>0]=w;}if(Gv()|0){w=aw(z,c[u>>2]|0,c[v>>2]|0)|0;E=c[P>>2]|0;c[P>>2]=E+1;a[E>>0]=w;}if(Gv()|0){w=aw(A,c[u>>2]|0,c[v>>2]|0)|0;E=c[Q>>2]|0;c[Q>>2]=E+1;a[E>>0]=w;}Gv()|0;w=aw(x,c[u>>2]|0,c[v>>2]|0)|0;E=c[N>>2]|0;c[N>>2]=E+1;a[E>>0]=w;Gv()|0;w=aw(y,c[u>>2]|0,c[v>>2]|0)|0;E=c[O>>2]|0;c[O>>2]=E+1;a[E>>0]=w;Gv()|0;w=aw(z,c[u>>2]|0,c[v>>2]|0)|0;E=c[P>>2]|0;c[P>>2]=E+1;a[E>>0]=w;Gv()|0;w=aw(A,c[u>>2]|0,c[v>>2]|0)|0;E=c[Q>>2]|0;c[Q>>2]=E+1;a[E>>0]=w;if(Gv()|0){w=aw(x,c[u>>2]|0,c[v>>2]|0)|0;E=c[N>>2]|0;c[N>>2]=E+1;a[E>>0]=w;}if(Gv()|0){w=aw(y,c[u>>2]|0,c[v>>2]|0)|0;E=c[O>>2]|0;c[O>>2]=E+1;a[E>>0]=w;}if(Gv()|0){w=aw(z,c[u>>2]|0,c[v>>2]|0)|0;E=c[P>>2]|0;c[P>>2]=E+1;a[E>>0]=w;}if(Gv()|0){w=aw(A,c[u>>2]|0,c[v>>2]|0)|0;E=c[Q>>2]|0;c[Q>>2]=E+1;a[E>>0]=w;}w=aw(x,c[u>>2]|0,c[v>>2]|0)|0;E=c[N>>2]|0;c[N>>2]=E+1;a[E>>0]=w;w=aw(y,c[u>>2]|0,c[v>>2]|0)|0;E=c[O>>2]|0;c[O>>2]=E+1;a[E>>0]=w;w=aw(z,c[u>>2]|0,c[v>>2]|0)|0;E=c[P>>2]|0;c[P>>2]=E+1;a[E>>0]=w;w=aw(A,c[u>>2]|0,c[v>>2]|0)|0;E=c[Q>>2]|0;c[Q>>2]=E+1;a[E>>0]=w;w=cv(x)|0;E=w|(cv(y)|0);w=E|(cv(z)|0);c[R>>2]=w|(cv(A)|0);}if((c[N>>2]|0)>>>0>(c[K>>2]|0)>>>0){c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}if((c[O>>2]|0)>>>0>(c[L>>2]|0)>>>0){c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}if((c[P>>2]|0)>>>0>(c[M>>2]|0)>>>0){c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}bw(c[N>>2]|0,x,c[K>>2]|0,c[u>>2]|0,c[v>>2]|0)|0;bw(c[O>>2]|0,y,c[L>>2]|0,c[u>>2]|0,c[v>>2]|0)|0;bw(c[P>>2]|0,z,c[M>>2]|0,c[u>>2]|0,c[v>>2]|0)|0;bw(c[Q>>2]|0,A,c[s>>2]|0,c[u>>2]|0,c[v>>2]|0)|0;v=Fv(x)|0;x=v&(Fv(y)|0);y=x&(Fv(z)|0);c[R>>2]=y&(Fv(A)|0);if(c[R>>2]|0){c[j>>2]=c[m>>2];S=c[j>>2]|0;l=i;return S|0;}else{c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}return 0;}function aw(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0;g=l;l=l+32|0;h=g+12|0;i=g+8|0;j=g+4|0;k=g;m=g+16|0;c[h>>2]=b;c[i>>2]=e;c[j>>2]=f;c[k>>2]=Jv(c[h>>2]|0,c[j>>2]|0)|0;a[m>>0]=a[(c[i>>2]|0)+(c[k>>2]<<1)>>0]|0;nv(c[h>>2]|0,d[(c[i>>2]|0)+(c[k>>2]<<1)+1>>0]|0);l=g;return a[m>>0]|0;}function bw(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+20|0;j=h+16|0;k=h+12|0;m=h+8|0;n=h+4|0;o=h;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=c[i>>2];while(1){if(cv(c[j>>2]|0)|0)break;if((c[i>>2]|0)>>>0>((c[k>>2]|0)+-4|0)>>>0)break;if(Gv()|0){g=aw(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}Gv()|0;g=aw(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;if(Gv()|0){g=aw(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}g=aw(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}while(1){if(cv(c[j>>2]|0)|0)break;if((c[i>>2]|0)>>>0>=(c[k>>2]|0)>>>0)break;g=aw(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}while(1){if((c[i>>2]|0)>>>0>=(c[k>>2]|0)>>>0)break;g=aw(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}l=h;return(c[k>>2]|0)-(c[o>>2]|0)|0;}function cw(a,b,d,f,g){a=a|0;b=b|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;h=l;l=l+80|0;i=h+64|0;j=h+60|0;k=h+56|0;m=h+52|0;n=h+48|0;o=h+44|0;p=h+40|0;q=h+36|0;r=h+32|0;s=h+28|0;t=h+24|0;u=h+8|0;v=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=f;c[o>>2]=g;c[p>>2]=c[j>>2];c[q>>2]=(c[p>>2]|0)+(c[k>>2]|0);c[r>>2]=e[c[o>>2]>>1];c[s>>2]=c[o>>2];c[t>>2]=(c[s>>2]|0)+2;if((c[k>>2]|0)>>>0<=(c[n>>2]|0)>>>0){c[i>>2]=-70;w=c[i>>2]|0;l=h;return w|0;}c[v>>2]=av(u,c[m>>2]|0,c[n>>2]|0)|0;if(Cv(c[v>>2]|0)|0){c[i>>2]=c[v>>2];w=c[i>>2]|0;l=h;return w|0;}bw(c[p>>2]|0,u,c[q>>2]|0,c[t>>2]|0,c[r>>2]|0)|0;if(Fv(u)|0){c[i>>2]=c[k>>2];w=c[i>>2]|0;l=h;return w|0;}else{c[i>>2]=-20;w=c[i>>2]|0;l=h;return w|0;}return 0;}function dw(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;c[(c[d>>2]|0)+26656>>2]=5;c[(c[d>>2]|0)+26708>>2]=0;c[(c[d>>2]|0)+26640>>2]=0;c[(c[d>>2]|0)+26644>>2]=0;c[(c[d>>2]|0)+26648>>2]=0;c[(c[d>>2]|0)+26652>>2]=0;c[(c[d>>2]|0)+10252>>2]=12;c[(c[d>>2]|0)+26712>>2]=0;l=b;return 0;}function ew(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[k>>2]=Wq(c[h>>2]|0)|0;if((c[k>>2]|0)!=-332356555){fw(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0);c[f>>2]=0;m=c[f>>2]|0;l=e;return m|0;}c[h>>2]=(c[h>>2]|0)+4;c[i>>2]=(c[i>>2]|0)-4;c[j>>2]=gw(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0;if(mr(c[j>>2]|0)|0){c[f>>2]=-30;m=c[f>>2]|0;l=e;return m|0;}else{c[h>>2]=(c[h>>2]|0)+(c[j>>2]|0);c[i>>2]=(c[i>>2]|0)-(c[j>>2]|0);fw(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0);c[f>>2]=0;m=c[f>>2]|0;l=e;return m|0;}return 0;}function fw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[(c[f>>2]|0)+26652>>2]=c[(c[f>>2]|0)+26640>>2];c[(c[f>>2]|0)+26648>>2]=(c[g>>2]|0)+(0-((c[(c[f>>2]|0)+26640>>2]|0)-(c[(c[f>>2]|0)+26644>>2]|0)));c[(c[f>>2]|0)+26644>>2]=c[g>>2];c[(c[f>>2]|0)+26640>>2]=(c[g>>2]|0)+(c[h>>2]|0);l=e;return;}function gw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;e=l;l=l+512|0;f=e+504|0;g=e+500|0;h=e+496|0;i=e+492|0;j=e+488|0;k=e+484|0;m=e+480|0;n=e+476|0;o=e+472|0;p=e+384|0;q=e+468|0;r=e+464|0;s=e+128|0;t=e+460|0;u=e+456|0;v=e;w=e+452|0;x=e+448|0;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[q>>2]=31;c[t>>2]=127;c[w>>2]=63;c[j>>2]=Mv((c[g>>2]|0)+10252|0,c[h>>2]|0,c[i>>2]|0)|0;if(Cv(c[j>>2]|0)|0){c[f>>2]=-30;y=c[f>>2]|0;l=e;return y|0;}c[h>>2]=(c[h>>2]|0)+(c[j>>2]|0);c[i>>2]=(c[i>>2]|0)-(c[j>>2]|0);c[k>>2]=vv(p,q,r,c[h>>2]|0,c[i>>2]|0)|0;if(wv(c[k>>2]|0)|0){c[f>>2]=-30;y=c[f>>2]|0;l=e;return y|0;}if((c[r>>2]|0)>>>0>9){c[f>>2]=-30;y=c[f>>2]|0;l=e;return y|0;}c[n>>2]=xv((c[g>>2]|0)+4100|0,p,c[q>>2]|0,c[r>>2]|0)|0;if(wv(c[n>>2]|0)|0){c[f>>2]=-30;y=c[f>>2]|0;l=e;return y|0;}c[h>>2]=(c[h>>2]|0)+(c[k>>2]|0);c[i>>2]=(c[i>>2]|0)-(c[k>>2]|0);c[m>>2]=vv(s,t,u,c[h>>2]|0,c[i>>2]|0)|0;if(wv(c[m>>2]|0)|0){c[f>>2]=-30;y=c[f>>2]|0;l=e;return y|0;}if((c[u>>2]|0)>>>0>10){c[f>>2]=-30;y=c[f>>2]|0;l=e;return y|0;}c[n>>2]=xv((c[g>>2]|0)+6152|0,s,c[t>>2]|0,c[u>>2]|0)|0;if(wv(c[n>>2]|0)|0){c[f>>2]=-30;y=c[f>>2]|0;l=e;return y|0;}c[h>>2]=(c[h>>2]|0)+(c[m>>2]|0);c[i>>2]=(c[i>>2]|0)-(c[m>>2]|0);c[o>>2]=vv(v,w,x,c[h>>2]|0,c[i>>2]|0)|0;if((c[x>>2]|0)>>>0>10){c[f>>2]=-30;y=c[f>>2]|0;l=e;return y|0;}if(wv(c[o>>2]|0)|0){c[f>>2]=-30;y=c[f>>2]|0;l=e;return y|0;}c[n>>2]=xv(c[g>>2]|0,v,c[w>>2]|0,c[x>>2]|0)|0;if(wv(c[n>>2]|0)|0){c[f>>2]=-30;y=c[f>>2]|0;l=e;return y|0;}else{c[(c[g>>2]|0)+26712>>2]=1;c[f>>2]=(c[j>>2]|0)+(c[k>>2]|0)+(c[m>>2]|0)+(c[o>>2]|0);y=c[f>>2]|0;l=e;return y|0;}return 0;}function hw(){var a=0,b=0,d=0,e=0;a=l;l=l+16|0;b=a+4|0;d=a;c[d>>2]=Cy(141416)|0;if(!(c[d>>2]|0)){c[b>>2]=0;e=c[b>>2]|0;l=a;return e|0;}else{kw(c[d>>2]|0)|0;c[b>>2]=c[d>>2];e=c[b>>2]|0;l=a;return e|0;}return 0;}function iw(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0;g=l;l=l+32|0;h=g+16|0;i=g+12|0;j=g+8|0;k=g+4|0;m=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;f=jw(c[h>>2]|0,c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,0,0)|0;l=g;return f|0;}function jw(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;i=l;l=l+80|0;j=i+76|0;k=i+72|0;m=i+68|0;n=i+64|0;o=i+60|0;p=i+56|0;q=i+52|0;r=i+48|0;s=i+44|0;t=i+40|0;u=i+36|0;v=i+32|0;w=i+28|0;x=i+24|0;y=i+16|0;z=i+8|0;A=i+4|0;B=i;c[k>>2]=a;c[m>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=c[o>>2];c[t>>2]=(c[s>>2]|0)+(c[p>>2]|0);c[u>>2]=c[m>>2];c[v>>2]=c[u>>2];c[w>>2]=(c[u>>2]|0)+(c[n>>2]|0);c[x>>2]=c[p>>2];kw(c[k>>2]|0)|0;if(c[q>>2]|0){lw(c[k>>2]|0,c[q>>2]|0,c[r>>2]|0);c[(c[k>>2]|0)+10264>>2]=c[(c[k>>2]|0)+10252>>2];c[(c[k>>2]|0)+10260>>2]=(c[m>>2]|0)+(0-((c[(c[k>>2]|0)+10252>>2]|0)-(c[(c[k>>2]|0)+10256>>2]|0)));c[(c[k>>2]|0)+10256>>2]=c[m>>2];}else{r=c[m>>2]|0;c[(c[k>>2]|0)+10264>>2]=r;c[(c[k>>2]|0)+10256>>2]=r;c[(c[k>>2]|0)+10260>>2]=r;}if((c[p>>2]|0)>>>0<8){c[j>>2]=-72;C=c[j>>2]|0;l=i;return C|0;}c[z>>2]=mw(c[k>>2]|0,c[o>>2]|0,5)|0;if(rr(c[z>>2]|0)|0){c[j>>2]=c[z>>2];C=c[j>>2]|0;l=i;return C|0;}if((c[p>>2]|0)>>>0<((c[z>>2]|0)+3|0)>>>0){c[j>>2]=-72;C=c[j>>2]|0;l=i;return C|0;}c[s>>2]=(c[s>>2]|0)+(c[z>>2]|0);c[x>>2]=(c[x>>2]|0)-(c[z>>2]|0);c[z>>2]=nw(c[k>>2]|0,c[o>>2]|0,c[z>>2]|0)|0;if(rr(c[z>>2]|0)|0){c[j>>2]=c[z>>2];C=c[j>>2]|0;l=i;return C|0;}a:while(1){c[A>>2]=0;c[B>>2]=qr(c[s>>2]|0,(c[t>>2]|0)-(c[s>>2]|0)|0,y)|0;if(rr(c[B>>2]|0)|0){D=14;break;}c[s>>2]=(c[s>>2]|0)+3;c[x>>2]=(c[x>>2]|0)-3;if((c[B>>2]|0)>>>0>(c[x>>2]|0)>>>0){D=16;break;}switch(c[y>>2]|0){case 2:{D=20;break a;break;}case 0:{c[A>>2]=ow(c[k>>2]|0,c[v>>2]|0,(c[w>>2]|0)-(c[v>>2]|0)|0,c[s>>2]|0,c[B>>2]|0)|0;break;}case 1:{c[A>>2]=pw(c[v>>2]|0,(c[w>>2]|0)-(c[v>>2]|0)|0,c[s>>2]|0,c[B>>2]|0)|0;break;}case 3:{if(c[x>>2]|0){D=22;break a;}break;}default:{D=23;break a;}}if(!(c[B>>2]|0)){D=28;break;}z=(rr(c[A>>2]|0)|0)!=0;E=c[A>>2]|0;if(z){D=26;break;}c[v>>2]=(c[v>>2]|0)+E;c[s>>2]=(c[s>>2]|0)+(c[B>>2]|0);c[x>>2]=(c[x>>2]|0)-(c[B>>2]|0);}if((D|0)==14){c[j>>2]=c[B>>2];C=c[j>>2]|0;l=i;return C|0;}else if((D|0)==16){c[j>>2]=-72;C=c[j>>2]|0;l=i;return C|0;}else if((D|0)==20){c[j>>2]=-1;C=c[j>>2]|0;l=i;return C|0;}else if((D|0)==22){c[j>>2]=-72;C=c[j>>2]|0;l=i;return C|0;}else if((D|0)==23){c[j>>2]=-1;C=c[j>>2]|0;l=i;return C|0;}else if((D|0)==26){c[j>>2]=E;C=c[j>>2]|0;l=i;return C|0;}else if((D|0)==28){c[j>>2]=(c[v>>2]|0)-(c[u>>2]|0);C=c[j>>2]|0;l=i;return C|0;}return 0;}function kw(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;c[(c[d>>2]|0)+10268>>2]=5;c[(c[d>>2]|0)+10316>>2]=0;c[(c[d>>2]|0)+10252>>2]=0;c[(c[d>>2]|0)+10256>>2]=0;c[(c[d>>2]|0)+10260>>2]=0;c[(c[d>>2]|0)+10264>>2]=0;l=b;return 0;}function lw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[(c[f>>2]|0)+10264>>2]=c[(c[f>>2]|0)+10252>>2];c[(c[f>>2]|0)+10260>>2]=(c[g>>2]|0)+(0-((c[(c[f>>2]|0)+10252>>2]|0)-(c[(c[f>>2]|0)+10256>>2]|0)));c[(c[f>>2]|0)+10256>>2]=c[g>>2];c[(c[f>>2]|0)+10252>>2]=(c[g>>2]|0)+(c[h>>2]|0);l=e;return;}function mw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;if((c[i>>2]|0)!=5){c[f>>2]=-72;k=c[f>>2]|0;l=e;return k|0;}c[j>>2]=pr(c[h>>2]|0)|0;if((c[j>>2]|0)!=-47205084){c[f>>2]=-10;k=c[f>>2]|0;l=e;return k|0;}else{c[(c[g>>2]|0)+10272>>2]=5;c[f>>2]=c[(c[g>>2]|0)+10272>>2];k=c[f>>2]|0;l=e;return k|0;}return 0;}function nw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;if((c[i>>2]|0)!=(c[(c[g>>2]|0)+10272>>2]|0)){c[f>>2]=-72;k=c[f>>2]|0;l=e;return k|0;}c[j>>2]=sx((c[g>>2]|0)+10280|0,c[h>>2]|0,c[i>>2]|0)|0;if(Dw()|0?(c[(c[g>>2]|0)+10280+8>>2]|0)>>>0>25:0){c[f>>2]=-14;k=c[f>>2]|0;l=e;return k|0;}c[f>>2]=c[j>>2];k=c[f>>2]|0;l=e;return k|0;}function ow(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;g=l;l=l+32|0;h=g+28|0;i=g+24|0;j=g+20|0;k=g+16|0;m=g+12|0;n=g+8|0;o=g+4|0;p=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=c[m>>2];c[p>>2]=qw(c[i>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;m=(rr(c[p>>2]|0)|0)!=0;f=c[p>>2]|0;if(m){c[h>>2]=f;q=c[h>>2]|0;l=g;return q|0;}else{c[o>>2]=(c[o>>2]|0)+f;c[n>>2]=(c[n>>2]|0)-(c[p>>2]|0);c[h>>2]=rw(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[o>>2]|0,c[n>>2]|0)|0;q=c[h>>2]|0;l=g;return q|0;}return 0;}function pw(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;if((c[k>>2]|0)>>>0>(c[i>>2]|0)>>>0){c[g>>2]=-70;m=c[g>>2]|0;l=f;return m|0;}else{mE(c[h>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;c[g>>2]=c[k>>2];m=c[g>>2]|0;l=f;return m|0;}return 0;}function qw(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;g=l;l=l+48|0;h=g+32|0;i=g+28|0;j=g+24|0;k=g+20|0;m=g+16|0;n=g+12|0;o=g+8|0;p=g+4|0;q=g;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=c[j>>2];if((c[k>>2]|0)>>>0<11){c[h>>2]=-20;r=c[h>>2]|0;l=g;return r|0;}switch((d[c[m>>2]>>0]|0)&3|0){case 0:{c[n>>2]=131072;c[o>>2]=Uw((c[i>>2]|0)+10328|0,n,c[j>>2]|0,c[k>>2]|0)|0;c[(c[i>>2]|0)+10320>>2]=(c[i>>2]|0)+10328;c[(c[i>>2]|0)+10324>>2]=c[n>>2];n=(c[i>>2]|0)+10328+(c[(c[i>>2]|0)+10324>>2]|0)|0;a[n>>0]=0;a[n+1>>0]=0;a[n+2>>0]=0;a[n+3>>0]=0;a[n+4>>0]=0;a[n+5>>0]=0;a[n+6>>0]=0;a[n+7>>0]=0;c[h>>2]=c[o>>2];r=c[h>>2]|0;l=g;return r|0;}case 1:{c[p>>2]=((pr(c[m>>2]|0)|0)&16777215)>>>2;if((c[p>>2]|0)>>>0<=((c[k>>2]|0)-11|0)>>>0){c[(c[i>>2]|0)+10320>>2]=(c[m>>2]|0)+3;c[(c[i>>2]|0)+10324>>2]=c[p>>2];c[h>>2]=(c[p>>2]|0)+3;r=c[h>>2]|0;l=g;return r|0;}if((c[p>>2]|0)>>>0>((c[k>>2]|0)-3|0)>>>0){c[h>>2]=-20;r=c[h>>2]|0;l=g;return r|0;}else{mE((c[i>>2]|0)+10328|0,c[m>>2]|0,c[p>>2]|0)|0;c[(c[i>>2]|0)+10320>>2]=(c[i>>2]|0)+10328;c[(c[i>>2]|0)+10324>>2]=c[p>>2];k=(c[i>>2]|0)+10328+(c[(c[i>>2]|0)+10324>>2]|0)|0;a[k>>0]=0;a[k+1>>0]=0;a[k+2>>0]=0;a[k+3>>0]=0;a[k+4>>0]=0;a[k+5>>0]=0;a[k+6>>0]=0;a[k+7>>0]=0;c[h>>2]=(c[p>>2]|0)+3;r=c[h>>2]|0;l=g;return r|0;}break;}case 2:{c[q>>2]=((pr(c[m>>2]|0)|0)&16777215)>>>2;if((c[q>>2]|0)>>>0>131072){c[h>>2]=-20;r=c[h>>2]|0;l=g;return r|0;}else{oE((c[i>>2]|0)+10328|0,(d[(c[m>>2]|0)+3>>0]|0)&255|0,(c[q>>2]|0)+8|0)|0;c[(c[i>>2]|0)+10320>>2]=(c[i>>2]|0)+10328;c[(c[i>>2]|0)+10324>>2]=c[q>>2];c[h>>2]=4;r=c[h>>2]|0;l=g;return r|0;}break;}default:{c[h>>2]=-20;r=c[h>>2]|0;l=g;return r|0;}}return 0;}function rw(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;g=l;l=l+176|0;h=g+164|0;i=g+160|0;j=g+156|0;k=g+152|0;m=g+148|0;n=g+144|0;o=g+140|0;p=g+136|0;q=g+132|0;r=g+128|0;s=g+124|0;t=g+120|0;u=g+116|0;v=g+112|0;w=g+108|0;x=g+104|0;y=g+100|0;z=g+96|0;A=g+92|0;B=g+88|0;C=g+84|0;D=g+80|0;E=g+76|0;F=g+72|0;G=g+60|0;H=g+8|0;I=g+4|0;J=g;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=c[n>>2];c[q>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[r>>2]=c[k>>2];c[s>>2]=c[r>>2];c[t>>2]=(c[r>>2]|0)+(c[m>>2]|0);c[w>>2]=c[(c[j>>2]|0)+10320>>2];c[x>>2]=(c[w>>2]|0)+(c[(c[j>>2]|0)+10324>>2]|0);c[A>>2]=c[j>>2];c[B>>2]=(c[j>>2]|0)+6152;c[C>>2]=(c[j>>2]|0)+4100;c[D>>2]=c[(c[j>>2]|0)+10256>>2];c[E>>2]=c[(c[j>>2]|0)+10260>>2];c[F>>2]=c[(c[j>>2]|0)+10264>>2];c[u>>2]=sw(y,z,v,c[A>>2]|0,c[B>>2]|0,c[C>>2]|0,c[p>>2]|0,(c[q>>2]|0)-(c[p>>2]|0)|0)|0;j=(rr(c[u>>2]|0)|0)!=0;m=c[u>>2]|0;if(j){c[i>>2]=m;K=c[i>>2]|0;l=g;return K|0;}c[p>>2]=(c[p>>2]|0)+m;c[G>>2]=0;c[G+4>>2]=0;c[G+8>>2]=0;c[G+4>>2]=4;c[H+44>>2]=c[z>>2];c[H+48>>2]=(c[z>>2]|0)+(c[v>>2]|0);c[H+40>>2]=4;c[u>>2]=tw(H,c[p>>2]|0,(c[q>>2]|0)-(c[p>>2]|0)|0)|0;if(sr(c[u>>2]|0)|0){c[i>>2]=-20;K=c[i>>2]|0;l=g;return K|0;}uw(H+16|0,H,c[A>>2]|0);uw(H+24|0,H,c[C>>2]|0);uw(H+32|0,H,c[B>>2]|0);while(1){B=(vw(H)|0)>>>0<=2;if(!(B?(c[y>>2]|0)!=0:0))break;c[y>>2]=(c[y>>2]|0)+-1;ww(G,H);B=c[s>>2]|0;C=c[t>>2]|0;A=c[x>>2]|0;u=c[D>>2]|0;p=c[E>>2]|0;q=c[F>>2]|0;c[h>>2]=c[G>>2];c[h+4>>2]=c[G+4>>2];c[h+8>>2]=c[G+8>>2];c[I>>2]=xw(B,C,h,w,A,u,p,q)|0;q=(rr(c[I>>2]|0)|0)!=0;L=c[I>>2]|0;if(q){M=8;break;}c[s>>2]=(c[s>>2]|0)+L;}if((M|0)==8){c[i>>2]=L;K=c[i>>2]|0;l=g;return K|0;}if(!(yw(H)|0)){c[i>>2]=-20;K=c[i>>2]|0;l=g;return K|0;}c[J>>2]=(c[x>>2]|0)-(c[w>>2]|0);if((c[w>>2]|0)>>>0>(c[x>>2]|0)>>>0){c[i>>2]=-20;K=c[i>>2]|0;l=g;return K|0;}if(((c[s>>2]|0)+(c[J>>2]|0)|0)>>>0>(c[t>>2]|0)>>>0){c[i>>2]=-70;K=c[i>>2]|0;l=g;return K|0;}if((c[s>>2]|0)!=(c[w>>2]|0))mE(c[s>>2]|0,c[w>>2]|0,c[J>>2]|0)|0;c[s>>2]=(c[s>>2]|0)+(c[J>>2]|0);c[i>>2]=(c[s>>2]|0)-(c[r>>2]|0);K=c[i>>2]|0;l=g;return K|0;}function sw(b,e,f,g,h,i,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;m=l;l=l+352|0;n=m+344|0;o=m+340|0;p=m+336|0;q=m+332|0;r=m+328|0;s=m+324|0;t=m+320|0;u=m+316|0;v=m+312|0;w=m+308|0;x=m+304|0;y=m+300|0;z=m+296|0;A=m+292|0;B=m+288|0;C=m+284|0;D=m+280|0;E=m+276|0;F=m+272|0;G=m;H=m+268|0;I=m+264|0;J=m+260|0;K=m+256|0;c[o>>2]=b;c[p>>2]=e;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=i;c[u>>2]=j;c[v>>2]=k;c[w>>2]=c[u>>2];c[x>>2]=c[w>>2];c[y>>2]=(c[w>>2]|0)+(c[v>>2]|0);if((c[v>>2]|0)>>>0<5){c[n>>2]=-72;L=c[n>>2]|0;l=m;return L|0;}v=(Lw(c[x>>2]|0)|0)&65535;c[c[o>>2]>>2]=v;c[x>>2]=(c[x>>2]|0)+2;c[z>>2]=(d[c[x>>2]>>0]|0)>>6;c[A>>2]=(d[c[x>>2]>>0]|0)>>4&3;c[B>>2]=(d[c[x>>2]>>0]|0)>>2&3;v=c[x>>2]|0;if((d[c[x>>2]>>0]|0)&2|0){c[F>>2]=d[v+2>>0];c[F>>2]=(c[F>>2]|0)+((d[(c[x>>2]|0)+1>>0]|0)<<8);c[x>>2]=(c[x>>2]|0)+3;}else{c[F>>2]=d[v+1>>0];c[F>>2]=(c[F>>2]|0)+(((d[c[x>>2]>>0]|0)&1)<<8);c[x>>2]=(c[x>>2]|0)+2;}c[c[p>>2]>>2]=c[x>>2];c[x>>2]=(c[x>>2]|0)+(c[F>>2]|0);c[c[q>>2]>>2]=c[F>>2];if((c[x>>2]|0)>>>0>((c[y>>2]|0)+-3|0)>>>0){c[n>>2]=-72;L=c[n>>2]|0;l=m;return L|0;}a:do{switch(c[z>>2]|0){case 2:{c[C>>2]=0;F=c[r>>2]|0;q=c[x>>2]|0;c[x>>2]=q+1;Mw(F,a[q>>0]|0)|0;break;}case 1:{c[C>>2]=6;Nw(c[r>>2]|0,6)|0;break;}default:{c[I>>2]=63;c[H>>2]=Ow(G,I,C,c[x>>2]|0,(c[y>>2]|0)-(c[x>>2]|0)|0)|0;if(Pw(c[H>>2]|0)|0){c[n>>2]=-1;L=c[n>>2]|0;l=m;return L|0;}if((c[C>>2]|0)>>>0<=10){c[x>>2]=(c[x>>2]|0)+(c[H>>2]|0);Qw(c[r>>2]|0,G,c[I>>2]|0,c[C>>2]|0)|0;break a;}c[n>>2]=-20;L=c[n>>2]|0;l=m;return L|0;}}}while(0);b:do{switch(c[A>>2]|0){case 2:{c[D>>2]=0;if((c[x>>2]|0)>>>0<=((c[y>>2]|0)+-2|0)>>>0){C=c[t>>2]|0;I=c[x>>2]|0;c[x>>2]=I+1;Mw(C,(d[I>>0]|0)&31)|0;break b;}c[n>>2]=-72;L=c[n>>2]|0;l=m;return L|0;}case 1:{c[D>>2]=5;Nw(c[t>>2]|0,5)|0;break;}default:{c[J>>2]=31;c[H>>2]=Ow(G,J,D,c[x>>2]|0,(c[y>>2]|0)-(c[x>>2]|0)|0)|0;if(Pw(c[H>>2]|0)|0){c[n>>2]=-1;L=c[n>>2]|0;l=m;return L|0;}if((c[D>>2]|0)>>>0<=9){c[x>>2]=(c[x>>2]|0)+(c[H>>2]|0);Qw(c[t>>2]|0,G,c[J>>2]|0,c[D>>2]|0)|0;break b;}c[n>>2]=-20;L=c[n>>2]|0;l=m;return L|0;}}}while(0);c:do{switch(c[B>>2]|0){case 2:{c[E>>2]=0;if((c[x>>2]|0)>>>0<=((c[y>>2]|0)+-2|0)>>>0){D=c[s>>2]|0;J=c[x>>2]|0;c[x>>2]=J+1;Mw(D,a[J>>0]|0)|0;break c;}c[n>>2]=-72;L=c[n>>2]|0;l=m;return L|0;}case 1:{c[E>>2]=7;Nw(c[s>>2]|0,7)|0;break;}default:{c[K>>2]=127;c[H>>2]=Ow(G,K,E,c[x>>2]|0,(c[y>>2]|0)-(c[x>>2]|0)|0)|0;if(Pw(c[H>>2]|0)|0){c[n>>2]=-1;L=c[n>>2]|0;l=m;return L|0;}if((c[E>>2]|0)>>>0<=10){c[x>>2]=(c[x>>2]|0)+(c[H>>2]|0);Qw(c[s>>2]|0,G,c[K>>2]|0,c[E>>2]|0)|0;break c;}c[n>>2]=-20;L=c[n>>2]|0;l=m;return L|0;}}}while(0);c[n>>2]=(c[x>>2]|0)-(c[w>>2]|0);L=c[n>>2]|0;l=m;return L|0;}function tw(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+32|0;g=f+20|0;h=f+16|0;i=f+12|0;j=f+8|0;k=f+4|0;m=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=e;if((c[j>>2]|0)>>>0<1){e=c[h>>2]|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[g>>2]=-72;n=c[g>>2]|0;l=f;return n|0;}e=(c[j>>2]|0)>>>0>=4;c[(c[h>>2]|0)+12>>2]=c[i>>2];do{if(e){c[(c[h>>2]|0)+8>>2]=(c[i>>2]|0)+(c[j>>2]|0)+-4;b=Hw(c[(c[h>>2]|0)+8>>2]|0)|0;c[c[h>>2]>>2]=b;c[k>>2]=d[(c[i>>2]|0)+((c[j>>2]|0)-1)>>0];if(c[k>>2]|0){b=8-(Kw(c[k>>2]|0)|0)|0;c[(c[h>>2]|0)+4>>2]=b;break;}c[g>>2]=-1;n=c[g>>2]|0;l=f;return n|0;}else{c[(c[h>>2]|0)+8>>2]=c[(c[h>>2]|0)+12>>2];c[c[h>>2]>>2]=d[c[(c[h>>2]|0)+12>>2]>>0];switch(c[j>>2]|0){case 7:{b=c[h>>2]|0;c[b>>2]=(c[b>>2]|0)+((d[(c[(c[h>>2]|0)+12>>2]|0)+6>>0]|0)<<16);o=9;break;}case 6:{o=9;break;}case 5:{o=10;break;}case 4:{o=11;break;}case 3:{o=12;break;}case 2:{o=13;break;}default:{}}if((o|0)==9){b=c[h>>2]|0;c[b>>2]=(c[b>>2]|0)+((d[(c[(c[h>>2]|0)+12>>2]|0)+5>>0]|0)<<8);o=10;}if((o|0)==10){b=c[h>>2]|0;c[b>>2]=(c[b>>2]|0)+((d[(c[(c[h>>2]|0)+12>>2]|0)+4>>0]|0)<<0);o=11;}if((o|0)==11){b=c[h>>2]|0;c[b>>2]=(c[b>>2]|0)+((d[(c[(c[h>>2]|0)+12>>2]|0)+3>>0]|0)<<24);o=12;}if((o|0)==12){b=c[h>>2]|0;c[b>>2]=(c[b>>2]|0)+((d[(c[(c[h>>2]|0)+12>>2]|0)+2>>0]|0)<<16);o=13;}if((o|0)==13){b=c[h>>2]|0;c[b>>2]=(c[b>>2]|0)+((d[(c[(c[h>>2]|0)+12>>2]|0)+1>>0]|0)<<8);}c[m>>2]=d[(c[i>>2]|0)+((c[j>>2]|0)-1)>>0];if(c[m>>2]|0){b=8-(Kw(c[m>>2]|0)|0)|0;c[(c[h>>2]|0)+4>>2]=b;b=(c[h>>2]|0)+4|0;c[b>>2]=(c[b>>2]|0)+(4-(c[j>>2]|0)<<3);break;}c[g>>2]=-1;n=c[g>>2]|0;l=f;return n|0;}}while(0);c[g>>2]=c[j>>2];n=c[g>>2]|0;l=f;return n|0;}function uw(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;g=l;l=l+16|0;h=g+8|0;i=g+4|0;j=g;k=g+12|0;c[h>>2]=a;c[i>>2]=d;c[j>>2]=f;f=c[j>>2]|0;b[k>>1]=b[f>>1]|0;b[k+2>>1]=b[f+2>>1]|0;f=Ew(c[i>>2]|0,e[k>>1]|0)|0;c[c[h>>2]>>2]=f;vw(c[i>>2]|0)|0;c[(c[h>>2]|0)+4>>2]=(c[j>>2]|0)+4;l=g;return;}function vw(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+16|0;d=b+12|0;e=b+8|0;f=b+4|0;g=b;c[e>>2]=a;if((c[(c[e>>2]|0)+4>>2]|0)>>>0>32){c[d>>2]=3;h=c[d>>2]|0;l=b;return h|0;}a=c[e>>2]|0;if((c[(c[e>>2]|0)+8>>2]|0)>>>0>=((c[(c[e>>2]|0)+12>>2]|0)+4|0)>>>0){i=(c[e>>2]|0)+8|0;c[i>>2]=(c[i>>2]|0)+(0-((c[a+4>>2]|0)>>>3));i=(c[e>>2]|0)+4|0;c[i>>2]=c[i>>2]&7;i=Hw(c[(c[e>>2]|0)+8>>2]|0)|0;c[c[e>>2]>>2]=i;c[d>>2]=0;h=c[d>>2]|0;l=b;return h|0;}i=c[(c[e>>2]|0)+4>>2]|0;if((c[a+8>>2]|0)!=(c[(c[e>>2]|0)+12>>2]|0)){c[f>>2]=i>>>3;c[g>>2]=0;if(((c[(c[e>>2]|0)+8>>2]|0)+(0-(c[f>>2]|0))|0)>>>0<(c[(c[e>>2]|0)+12>>2]|0)>>>0){c[f>>2]=(c[(c[e>>2]|0)+8>>2]|0)-(c[(c[e>>2]|0)+12>>2]|0);c[g>>2]=1;}a=(c[e>>2]|0)+8|0;c[a>>2]=(c[a>>2]|0)+(0-(c[f>>2]|0));a=(c[e>>2]|0)+4|0;c[a>>2]=(c[a>>2]|0)-(c[f>>2]<<3);f=Hw(c[(c[e>>2]|0)+8>>2]|0)|0;c[c[e>>2]>>2]=f;c[d>>2]=c[g>>2];h=c[d>>2]|0;l=b;return h|0;}if(i>>>0<32){c[d>>2]=1;h=c[d>>2]|0;l=b;return h|0;}else{c[d>>2]=2;h=c[d>>2]|0;l=b;return h|0;}return 0;}function ww(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;e=l;l=l+48|0;f=e+44|0;g=e+40|0;h=e+36|0;i=e+32|0;j=e+28|0;k=e+24|0;m=e+20|0;n=e+16|0;o=e+12|0;p=e+8|0;q=e+4|0;r=e;c[f>>2]=a;c[g>>2]=b;c[m>>2]=c[(c[g>>2]|0)+44>>2];c[n>>2]=c[(c[g>>2]|0)+48>>2];c[h>>2]=(Cw((c[g>>2]|0)+16|0,c[g>>2]|0)|0)&255;if(c[h>>2]|0)s=c[(c[f>>2]|0)+4>>2]|0;else s=c[(c[g>>2]|0)+40>>2]|0;c[i>>2]=s;if((c[h>>2]|0)==63){s=c[m>>2]|0;c[m>>2]=s+1;c[o>>2]=d[s>>0];if((c[o>>2]|0)>>>0<255)c[h>>2]=(c[h>>2]|0)+(c[o>>2]|0);else{c[h>>2]=(d[c[m>>2]>>0]|0)+((d[(c[m>>2]|0)+1>>0]|0)<<8)+((d[(c[m>>2]|0)+2>>0]|0)<<16);c[m>>2]=(c[m>>2]|0)+3;}if((c[m>>2]|0)>>>0>(c[n>>2]|0)>>>0)c[h>>2]=318;if((c[m>>2]|0)>>>0>=(c[n>>2]|0)>>>0)c[m>>2]=(c[n>>2]|0)+-1;}c[p>>2]=(Cw((c[g>>2]|0)+24|0,c[g>>2]|0)|0)&255;if(Dw()|0)vw(c[g>>2]|0)|0;o=(c[p>>2]|0)-1|0;c[q>>2]=o;c[q>>2]=(c[p>>2]|0)==0?0:o;o=c[6880+(c[p>>2]<<2)>>2]|0;c[j>>2]=o+(Ew(c[g>>2]|0,c[q>>2]|0)|0);if(Dw()|0)vw(c[g>>2]|0)|0;if(!(c[p>>2]|0))c[j>>2]=c[i>>2];if(c[p>>2]|((c[h>>2]|0)!=0^1)&1|0)c[(c[g>>2]|0)+40>>2]=c[(c[f>>2]|0)+4>>2];c[k>>2]=(Cw((c[g>>2]|0)+32|0,c[g>>2]|0)|0)&255;if((c[k>>2]|0)==127){p=c[m>>2]|0;c[m>>2]=p+1;c[r>>2]=d[p>>0];if((c[r>>2]|0)>>>0<255)c[k>>2]=(c[k>>2]|0)+(c[r>>2]|0);else{c[k>>2]=(d[c[m>>2]>>0]|0)+((d[(c[m>>2]|0)+1>>0]|0)<<8)+((d[(c[m>>2]|0)+2>>0]|0)<<16);c[m>>2]=(c[m>>2]|0)+3;}if((c[m>>2]|0)>>>0>(c[n>>2]|0)>>>0)c[k>>2]=382;if((c[m>>2]|0)>>>0>=(c[n>>2]|0)>>>0)c[m>>2]=(c[n>>2]|0)+-1;}c[k>>2]=(c[k>>2]|0)+4;c[c[f>>2]>>2]=c[h>>2];c[(c[f>>2]|0)+4>>2]=c[j>>2];c[(c[f>>2]|0)+8>>2]=c[k>>2];c[(c[g>>2]|0)+44>>2]=c[m>>2];l=e;return;}function xw(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;k=l;l=l+64|0;m=k+60|0;n=k+56|0;o=k+52|0;p=k+48|0;q=k+44|0;r=k+40|0;s=k+36|0;t=k+32|0;u=k+28|0;v=k+24|0;w=k+20|0;x=k+16|0;y=k+12|0;z=k+8|0;A=k+4|0;B=k;c[n>>2]=b;c[o>>2]=d;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[u>>2]=(c[n>>2]|0)+(c[e>>2]|0);c[v>>2]=(c[e>>2]|0)+(c[e+8>>2]|0);c[w>>2]=(c[n>>2]|0)+(c[v>>2]|0);c[x>>2]=(c[o>>2]|0)+-8;c[y>>2]=(c[c[p>>2]>>2]|0)+(c[e>>2]|0);c[z>>2]=(c[u>>2]|0)+(0-(c[e+4>>2]|0));if((c[u>>2]|0)>>>0>(c[x>>2]|0)>>>0){c[m>>2]=-70;C=c[m>>2]|0;l=k;return C|0;}if((c[w>>2]|0)>>>0>(c[o>>2]|0)>>>0){c[m>>2]=-70;C=c[m>>2]|0;l=k;return C|0;}if((c[y>>2]|0)>>>0>(c[q>>2]|0)>>>0){c[m>>2]=-20;C=c[m>>2]|0;l=k;return C|0;}zw(c[n>>2]|0,c[c[p>>2]>>2]|0,c[e>>2]|0);c[n>>2]=c[u>>2];c[c[p>>2]>>2]=c[y>>2];do{if((c[e+4>>2]|0)>>>0>((c[u>>2]|0)-(c[r>>2]|0)|0)>>>0){if((c[e+4>>2]|0)>>>0>((c[u>>2]|0)-(c[s>>2]|0)|0)>>>0){c[m>>2]=-20;C=c[m>>2]|0;l=k;return C|0;}c[z>>2]=(c[t>>2]|0)+(0-((c[r>>2]|0)-(c[z>>2]|0)));if(((c[z>>2]|0)+(c[e+8>>2]|0)|0)>>>0<=(c[t>>2]|0)>>>0){nE(c[u>>2]|0,c[z>>2]|0,c[e+8>>2]|0)|0;c[m>>2]=c[v>>2];C=c[m>>2]|0;l=k;return C|0;}c[A>>2]=(c[t>>2]|0)-(c[z>>2]|0);nE(c[u>>2]|0,c[z>>2]|0,c[A>>2]|0)|0;c[n>>2]=(c[u>>2]|0)+(c[A>>2]|0);y=e+8|0;c[y>>2]=(c[y>>2]|0)-(c[A>>2]|0);c[z>>2]=c[r>>2];if((c[n>>2]|0)>>>0<=(c[x>>2]|0)>>>0?(c[e+8>>2]|0)>>>0>=4:0)break;while(1){if((c[n>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;y=c[z>>2]|0;c[z>>2]=y+1;p=a[y>>0]|0;y=c[n>>2]|0;c[n>>2]=y+1;a[y>>0]=p;}c[m>>2]=c[v>>2];C=c[m>>2]|0;l=k;return C|0;}}while(0);if((c[e+4>>2]|0)>>>0<8){c[B>>2]=c[6816+(c[e+4>>2]<<2)>>2];a[c[n>>2]>>0]=a[c[z>>2]>>0]|0;a[(c[n>>2]|0)+1>>0]=a[(c[z>>2]|0)+1>>0]|0;a[(c[n>>2]|0)+2>>0]=a[(c[z>>2]|0)+2>>0]|0;a[(c[n>>2]|0)+3>>0]=a[(c[z>>2]|0)+3>>0]|0;c[z>>2]=(c[z>>2]|0)+(c[6848+(c[e+4>>2]<<2)>>2]|0);Aw((c[n>>2]|0)+4|0,c[z>>2]|0);c[z>>2]=(c[z>>2]|0)+(0-(c[B>>2]|0));}else Bw(c[n>>2]|0,c[z>>2]|0);c[n>>2]=(c[n>>2]|0)+8;c[z>>2]=(c[z>>2]|0)+8;B=c[n>>2]|0;a:do{if((c[w>>2]|0)>>>0>((c[o>>2]|0)+-12|0)>>>0){if(B>>>0<(c[x>>2]|0)>>>0){zw(c[n>>2]|0,c[z>>2]|0,(c[x>>2]|0)-(c[n>>2]|0)|0);c[z>>2]=(c[z>>2]|0)+((c[x>>2]|0)-(c[n>>2]|0));c[n>>2]=c[x>>2];}while(1){if((c[n>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;r=c[z>>2]|0;c[z>>2]=r+1;A=a[r>>0]|0;r=c[n>>2]|0;c[n>>2]=r+1;a[r>>0]=A;}}else zw(B,c[z>>2]|0,(c[e+8>>2]|0)-8|0);}while(0);c[m>>2]=c[v>>2];C=c[m>>2]|0;l=k;return C|0;}function yw(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b;c[d>>2]=a;if((c[(c[d>>2]|0)+8>>2]|0)!=(c[(c[d>>2]|0)+12>>2]|0)){e=0;f=e&1;l=b;return f|0;}e=(c[(c[d>>2]|0)+4>>2]|0)==32;f=e&1;l=b;return f|0;}function zw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[g>>2];c[j>>2]=c[f>>2];c[k>>2]=(c[j>>2]|0)+(c[h>>2]|0);do{Bw(c[j>>2]|0,c[i>>2]|0);c[j>>2]=(c[j>>2]|0)+8;c[i>>2]=(c[i>>2]|0)+8;}while((c[j>>2]|0)>>>0<(c[k>>2]|0)>>>0);l=e;return;}function Aw(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[f>>2]|0;f=c[g>>2]|0;a[d>>0]=a[f>>0]|0;a[d+1>>0]=a[f+1>>0]|0;a[d+2>>0]=a[f+2>>0]|0;a[d+3>>0]=a[f+3>>0]|0;l=e;return;}function Bw(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[f>>2]|0;f=c[g>>2]|0;a[d>>0]=a[f>>0]|0;a[d+1>>0]=a[f+1>>0]|0;a[d+2>>0]=a[f+2>>0]|0;a[d+3>>0]=a[f+3>>0]|0;a[d+4>>0]=a[f+4>>0]|0;a[d+5>>0]=a[f+5>>0]|0;a[d+6>>0]=a[f+6>>0]|0;a[d+7>>0]=a[f+7>>0]|0;l=e;return;}function Cw(f,g){f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+12|0;j=h+8|0;k=h+16|0;m=h+4|0;n=h+20|0;o=h;c[i>>2]=f;c[j>>2]=g;g=(c[(c[i>>2]|0)+4>>2]|0)+(c[c[i>>2]>>2]<<2)|0;b[k>>1]=b[g>>1]|0;b[k+2>>1]=b[g+2>>1]|0;c[m>>2]=d[k+3>>0];a[n>>0]=a[k+2>>0]|0;c[o>>2]=Ew(c[j>>2]|0,c[m>>2]|0)|0;c[c[i>>2]>>2]=(e[k>>1]|0)+(c[o>>2]|0);l=h;return a[n>>0]|0;}function Dw(){return 1;}function Ew(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=Fw(c[e>>2]|0,c[f>>2]|0)|0;Gw(c[e>>2]|0,c[f>>2]|0);l=d;return c[g>>2]|0;}function Fw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;c[e>>2]=a;c[f>>2]=b;c[d>>2]=31;l=d;return c[c[e>>2]>>2]<<(c[(c[e>>2]|0)+4>>2]&31)>>>1>>>(31-(c[f>>2]|0)&31)|0;}function Gw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=(c[e>>2]|0)+4|0;c[b>>2]=(c[b>>2]|0)+(c[f>>2]|0);l=d;return;}function Hw(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(Dw()|0)!=0;f=c[e>>2]|0;if(a){c[d>>2]=pr(f)|0;g=c[d>>2]|0;l=b;return g|0;}else{a=Iw(f)|0;c[d>>2]=a;g=c[d>>2]|0;l=b;return g|0;}return 0;}function Iw(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;b=l;l=l+16|0;e=b;f=b+12|0;g=b+8|0;c[f>>2]=a;a=(tr()|0)!=0;h=c[f>>2]|0;if(a){a=Jw(h)|0;f=e;c[f>>2]=a;c[f+4>>2]=y;i=e;j=i;k=c[j>>2]|0;m=i+4|0;n=m;o=c[n>>2]|0;y=o;l=b;return k|0;}else{c[g>>2]=h;h=d[c[g>>2]>>0]|0;f=jE(d[(c[g>>2]|0)+1>>0]|0|0,0,8)|0;a=dE(h|0,0,f|0,y|0)|0;f=y;h=jE(d[(c[g>>2]|0)+2>>0]|0|0,0,16)|0;p=dE(a|0,f|0,h|0,y|0)|0;h=y;f=jE(d[(c[g>>2]|0)+3>>0]|0|0,0,24)|0;a=dE(p|0,h|0,f|0,y|0)|0;f=dE(a|0,y|0,0,d[(c[g>>2]|0)+4>>0]|0|0)|0;a=y;h=jE(d[(c[g>>2]|0)+5>>0]|0|0,0,40)|0;p=dE(f|0,a|0,h|0,y|0)|0;h=y;a=jE(d[(c[g>>2]|0)+6>>0]|0|0,0,48)|0;f=dE(p|0,h|0,a|0,y|0)|0;a=y;h=jE(d[(c[g>>2]|0)+7>>0]|0|0,0,56)|0;g=dE(f|0,a|0,h|0,y|0)|0;h=e;c[h>>2]=g;c[h+4>>2]=y;i=e;j=i;k=c[j>>2]|0;m=i+4|0;n=m;o=c[n>>2]|0;y=o;l=b;return k|0;}return 0;}function Jw(b){b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;f=d;c[e>>2]=b;b=c[e>>2]|0;a[f>>0]=a[b>>0]|0;a[f+1>>0]=a[b+1>>0]|0;a[f+2>>0]=a[b+2>>0]|0;a[f+3>>0]=a[b+3>>0]|0;a[f+4>>0]=a[b+4>>0]|0;a[f+5>>0]=a[b+5>>0]|0;a[f+6>>0]=a[b+6>>0]|0;a[f+7>>0]=a[b+7>>0]|0;b=f;y=c[b+4>>2]|0;l=d;return c[b>>2]|0;}function Kw(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=31-(Q(c[d>>2]|0)|0)|0;l=b;return a|0;}function Lw(a){a=a|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[g>>2]=a;a=(tr()|0)!=0;i=c[g>>2]|0;if(a){b[f>>1]=Tw(i)|0;j=b[f>>1]|0;l=e;return j|0;}else{c[h>>2]=i;b[f>>1]=(d[c[h>>2]>>0]|0)+((d[(c[h>>2]|0)+1>>0]|0)<<8);j=b[f>>1]|0;l=e;return j|0;}return 0;}function Mw(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+16|0;h=f+20|0;i=f+12|0;j=f+8|0;k=f+4|0;m=f;c[g>>2]=d;a[h>>0]=e;c[i>>2]=c[g>>2];c[j>>2]=c[i>>2];c[k>>2]=(c[g>>2]|0)+4;c[m>>2]=c[k>>2];b[c[j>>2]>>1]=0;b[(c[j>>2]|0)+2>>1]=0;b[c[m>>2]>>1]=0;a[(c[m>>2]|0)+2>>0]=a[h>>0]|0;a[(c[m>>2]|0)+3>>0]=0;l=f;return 0;}function Nw(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;f=l;l=l+48|0;g=f+40|0;h=f+36|0;i=f+32|0;j=f+28|0;k=f+24|0;m=f+20|0;n=f+16|0;o=f+12|0;p=f+8|0;q=f+4|0;r=f;c[h>>2]=d;c[i>>2]=e;c[j>>2]=c[h>>2];c[k>>2]=c[j>>2];c[m>>2]=(c[h>>2]|0)+4;c[n>>2]=c[m>>2];c[o>>2]=1<<c[i>>2];c[p>>2]=(c[o>>2]|0)-1;c[q>>2]=c[p>>2];if((c[i>>2]|0)>>>0<1){c[g>>2]=-1;s=c[g>>2]|0;l=f;return s|0;}b[c[k>>2]>>1]=c[i>>2];b[(c[k>>2]|0)+2>>1]=1;c[r>>2]=0;while(1){if((c[r>>2]|0)>>>0>(c[q>>2]|0)>>>0)break;b[(c[n>>2]|0)+(c[r>>2]<<2)>>1]=0;a[(c[n>>2]|0)+(c[r>>2]<<2)+2>>0]=c[r>>2];a[(c[n>>2]|0)+(c[r>>2]<<2)+3>>0]=c[i>>2];c[r>>2]=(c[r>>2]|0)+1;}c[g>>2]=0;s=c[g>>2]|0;l=f;return s|0;}function Ow(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;h=l;l=l+80|0;i=h+64|0;j=h+60|0;k=h+56|0;m=h+52|0;n=h+48|0;o=h+44|0;p=h+40|0;q=h+36|0;r=h+32|0;s=h+28|0;t=h+24|0;u=h+20|0;v=h+16|0;w=h+12|0;x=h+8|0;y=h+4|0;z=h;A=h+70|0;B=h+68|0;c[j>>2]=a;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=c[n>>2];c[q>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[r>>2]=c[p>>2];c[x>>2]=0;c[y>>2]=0;if((c[o>>2]|0)>>>0<4){c[i>>2]=-72;C=c[i>>2]|0;l=h;return C|0;}c[v>>2]=pr(c[r>>2]|0)|0;c[s>>2]=(c[v>>2]&15)+5;if((c[s>>2]|0)>15){c[i>>2]=-44;C=c[i>>2]|0;l=h;return C|0;}c[v>>2]=(c[v>>2]|0)>>>4;c[w>>2]=4;c[c[m>>2]>>2]=c[s>>2];c[t>>2]=(1<<c[s>>2])+1;c[u>>2]=1<<c[s>>2];c[s>>2]=(c[s>>2]|0)+1;a:while(1){if((c[t>>2]|0)<=1)break;if((c[x>>2]|0)>>>0>(c[c[k>>2]>>2]|0)>>>0)break;do{if(c[y>>2]|0){c[z>>2]=c[x>>2];while(1){if((c[v>>2]&65535|0)!=65535)break;c[z>>2]=(c[z>>2]|0)+24;if((c[r>>2]|0)>>>0<((c[q>>2]|0)+-5|0)>>>0){c[r>>2]=(c[r>>2]|0)+2;m=pr(c[r>>2]|0)|0;c[v>>2]=m>>>(c[w>>2]|0);}else{c[v>>2]=(c[v>>2]|0)>>>16;c[w>>2]=(c[w>>2]|0)+16;}}while(1){if((c[v>>2]&3|0)!=3)break;c[z>>2]=(c[z>>2]|0)+3;c[v>>2]=(c[v>>2]|0)>>>2;c[w>>2]=(c[w>>2]|0)+2;}c[z>>2]=(c[z>>2]|0)+(c[v>>2]&3);c[w>>2]=(c[w>>2]|0)+2;if((c[z>>2]|0)>>>0>(c[c[k>>2]>>2]|0)>>>0){D=19;break a;}while(1){if((c[x>>2]|0)>>>0>=(c[z>>2]|0)>>>0)break;m=c[j>>2]|0;n=c[x>>2]|0;c[x>>2]=n+1;b[m+(n<<1)>>1]=0;}if((c[r>>2]|0)>>>0>((c[q>>2]|0)+-7|0)>>>0?((c[r>>2]|0)+(c[w>>2]>>3)|0)>>>0>((c[q>>2]|0)+-4|0)>>>0:0){c[v>>2]=(c[v>>2]|0)>>>2;break;}c[r>>2]=(c[r>>2]|0)+(c[w>>2]>>3);c[w>>2]=c[w>>2]&7;n=pr(c[r>>2]|0)|0;c[v>>2]=n>>>(c[w>>2]|0);}}while(0);b[A>>1]=(c[u>>2]<<1)-1-(c[t>>2]|0);n=c[v>>2]|0;m=c[u>>2]|0;if((c[v>>2]&(c[u>>2]|0)-1)>>>0<(b[A>>1]|0)>>>0){b[B>>1]=n&m-1;c[w>>2]=(c[w>>2]|0)+((c[s>>2]|0)-1);}else{b[B>>1]=n&(m<<1)-1;if((b[B>>1]|0)>=(c[u>>2]|0))b[B>>1]=(b[B>>1]|0)-(b[A>>1]|0);c[w>>2]=(c[w>>2]|0)+(c[s>>2]|0);}b[B>>1]=(b[B>>1]|0)+-1<<16>>16;m=(Sw(b[B>>1]|0)|0)<<16>>16;c[t>>2]=(c[t>>2]|0)-m;m=b[B>>1]|0;n=c[j>>2]|0;g=c[x>>2]|0;c[x>>2]=g+1;b[n+(g<<1)>>1]=m;c[y>>2]=((b[B>>1]|0)!=0^1)&1;while(1){if((c[t>>2]|0)>=(c[u>>2]|0))break;c[s>>2]=(c[s>>2]|0)+-1;c[u>>2]=c[u>>2]>>1;}if((c[r>>2]|0)>>>0>((c[q>>2]|0)+-7|0)>>>0?((c[r>>2]|0)+(c[w>>2]>>3)|0)>>>0>((c[q>>2]|0)+-4|0)>>>0:0){c[w>>2]=(c[w>>2]|0)-((c[q>>2]|0)+-4-(c[r>>2]|0)<<3);c[r>>2]=(c[q>>2]|0)+-4;}else{c[r>>2]=(c[r>>2]|0)+(c[w>>2]>>3);c[w>>2]=c[w>>2]&7;}m=pr(c[r>>2]|0)|0;c[v>>2]=m>>>(c[w>>2]&31);}if((D|0)==19){c[i>>2]=-48;C=c[i>>2]|0;l=h;return C|0;}if((c[t>>2]|0)!=1){c[i>>2]=-1;C=c[i>>2]|0;l=h;return C|0;}c[c[k>>2]>>2]=(c[x>>2]|0)-1;c[r>>2]=(c[r>>2]|0)+((c[w>>2]|0)+7>>3);if(((c[r>>2]|0)-(c[p>>2]|0)|0)>>>0>(c[o>>2]|0)>>>0){c[i>>2]=-72;C=c[i>>2]|0;l=h;return C|0;}else{c[i>>2]=(c[r>>2]|0)-(c[p>>2]|0);C=c[i>>2]|0;l=h;return C|0;}return 0;}function Pw(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=sr(c[d>>2]|0)|0;l=b;return a|0;}function Qw(f,g,h,i){f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;j=l;l=l+592|0;k=j+572|0;m=j+568|0;n=j+564|0;o=j+560|0;p=j+556|0;q=j+580|0;r=j+552|0;s=j+548|0;t=j+544|0;u=j+540|0;v=j+536|0;w=j;x=j+532|0;y=j+528|0;z=j+578|0;A=j+524|0;B=j+520|0;C=j+516|0;D=j+512|0;E=j+584|0;F=j+576|0;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;c[p>>2]=i;c[r>>2]=(c[m>>2]|0)+4;c[s>>2]=c[r>>2];c[t>>2]=1<<c[p>>2];c[u>>2]=(c[t>>2]|0)-1;c[v>>2]=Rw(c[t>>2]|0)|0;c[x>>2]=0;c[y>>2]=(c[t>>2]|0)-1;b[z>>1]=1<<(c[p>>2]|0)-1;c[A>>2]=1;if((c[o>>2]|0)>>>0>255){c[k>>2]=-46;G=c[k>>2]|0;l=j;return G|0;}if((c[p>>2]|0)>>>0>12){c[k>>2]=-44;G=c[k>>2]|0;l=j;return G|0;}b[q>>1]=c[p>>2];c[B>>2]=0;while(1){if((c[B>>2]|0)>>>0>(c[o>>2]|0)>>>0)break;if((b[(c[n>>2]|0)+(c[B>>2]<<1)>>1]|0)==-1){r=c[B>>2]&255;i=c[s>>2]|0;h=c[y>>2]|0;c[y>>2]=h+-1;a[i+(h<<2)+2>>0]=r;b[w+(c[B>>2]<<1)>>1]=1;}else{if((b[(c[n>>2]|0)+(c[B>>2]<<1)>>1]|0)>=(b[z>>1]|0))c[A>>2]=0;b[w+(c[B>>2]<<1)>>1]=b[(c[n>>2]|0)+(c[B>>2]<<1)>>1]|0;}c[B>>2]=(c[B>>2]|0)+1;}c[B>>2]=0;while(1){if((c[B>>2]|0)>>>0>(c[o>>2]|0)>>>0)break;c[C>>2]=0;while(1){H=c[B>>2]|0;if((c[C>>2]|0)>=(b[(c[n>>2]|0)+(c[B>>2]<<1)>>1]|0))break;a[(c[s>>2]|0)+(c[x>>2]<<2)+2>>0]=H;c[x>>2]=(c[x>>2]|0)+(c[v>>2]|0)&c[u>>2];while(1){if((c[x>>2]|0)>>>0<=(c[y>>2]|0)>>>0)break;c[x>>2]=(c[x>>2]|0)+(c[v>>2]|0)&c[u>>2];}c[C>>2]=(c[C>>2]|0)+1;}c[B>>2]=H+1;}if(c[x>>2]|0){c[k>>2]=-1;G=c[k>>2]|0;l=j;return G|0;}c[D>>2]=0;while(1){if((c[D>>2]|0)>>>0>=(c[t>>2]|0)>>>0)break;a[E>>0]=a[(c[s>>2]|0)+(c[D>>2]<<2)+2>>0]|0;x=w+(d[E>>0]<<1)|0;H=b[x>>1]|0;b[x>>1]=H+1<<16>>16;b[F>>1]=H;H=c[p>>2]|0;x=H-(Kw(e[F>>1]|0)|0)&255;a[(c[s>>2]|0)+(c[D>>2]<<2)+3>>0]=x;b[(c[s>>2]|0)+(c[D>>2]<<2)>>1]=(e[F>>1]<<d[(c[s>>2]|0)+(c[D>>2]<<2)+3>>0])-(c[t>>2]|0);c[D>>2]=(c[D>>2]|0)+1;}b[q+2>>1]=c[A>>2];A=c[m>>2]|0;b[A>>1]=b[q>>1]|0;b[A+2>>1]=b[q+2>>1]|0;c[k>>2]=0;G=c[k>>2]|0;l=j;return G|0;}function Rw(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return((c[d>>2]|0)>>>1)+((c[d>>2]|0)>>>3)+3|0;}function Sw(a){a=a|0;var c=0,d=0;c=l;l=l+16|0;d=c;b[d>>1]=a;a=b[d>>1]|0;l=c;return((b[d>>1]|0)<0?0-a|0:a)&65535|0;}function Tw(d){d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e;g=e+4|0;c[f>>2]=d;d=c[f>>2]|0;a[g>>0]=a[d>>0]|0;a[g+1>>0]=a[d+1>>0]|0;l=e;return b[g>>1]|0;}function Uw(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;f=l;l=l+32|0;g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f+12|0;m=f+8|0;n=f+4|0;o=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=c[j>>2];c[n>>2]=((pr(c[j>>2]|0)|0)&2097151)>>>2;c[o>>2]=((pr((c[m>>2]|0)+2|0)|0)&16777215)>>>5;if((c[n>>2]|0)>>>0>(c[c[i>>2]>>2]|0)>>>0){c[g>>2]=-20;p=c[g>>2]|0;l=f;return p|0;}if(((c[o>>2]|0)+5|0)>>>0>(c[k>>2]|0)>>>0){c[g>>2]=-20;p=c[g>>2]|0;l=f;return p|0;}if(Ww(Vw(c[h>>2]|0,c[n>>2]|0,(c[m>>2]|0)+5|0,c[o>>2]|0)|0)|0){c[g>>2]=-20;p=c[g>>2]|0;l=f;return p|0;}else{c[c[i>>2]>>2]=c[n>>2];c[g>>2]=(c[o>>2]|0)+5;p=c[g>>2]|0;l=f;return p|0;}return 0;}function Vw(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;g=l;l=l+48|0;h=g+44|0;i=g+40|0;j=g+36|0;k=g+32|0;m=g+28|0;n=g+24|0;o=g+20|0;p=g+8|0;q=g+4|0;r=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=e;c[m>>2]=f;c[o>>2]=(c[j>>2]|0)>>>8;c[q>>2]=0;if(!(c[j>>2]|0)){c[h>>2]=-70;s=c[h>>2]|0;l=g;return s|0;}if((c[m>>2]|0)>>>0>(c[j>>2]|0)>>>0){c[h>>2]=-20;s=c[h>>2]|0;l=g;return s|0;}if((c[m>>2]|0)==(c[j>>2]|0)){mE(c[i>>2]|0,c[k>>2]|0,c[j>>2]|0)|0;c[h>>2]=c[j>>2];s=c[h>>2]|0;l=g;return s|0;}if((c[m>>2]|0)==1){oE(c[i>>2]|0,(d[c[k>>2]>>0]|0)&255|0,c[j>>2]|0)|0;c[h>>2]=c[j>>2];s=c[h>>2]|0;l=g;return s|0;}c[n>>2]=(c[m>>2]<<4>>>0)/((c[j>>2]|0)>>>0)|0;c[r>>2]=0;while(1){if((c[r>>2]|0)>=3)break;f=(c[7008+((c[n>>2]|0)*24|0)+(c[r>>2]<<3)>>2]|0)+(N(c[7008+((c[n>>2]|0)*24|0)+(c[r>>2]<<3)+4>>2]|0,c[o>>2]|0)|0)|0;c[p+(c[r>>2]<<2)>>2]=f;c[r>>2]=(c[r>>2]|0)+1;}r=p+4|0;c[r>>2]=(c[r>>2]|0)+((c[p+4>>2]|0)>>>4);r=p+8|0;c[r>>2]=(c[r>>2]|0)+((c[p+8>>2]|0)>>>3);if((c[p+4>>2]|0)>>>0<(c[p>>2]|0)>>>0)c[q>>2]=1;c[h>>2]=sc[c[11988+(c[q>>2]<<2)>>2]&15](c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;s=c[h>>2]|0;l=g;return s|0;}function Ww(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=sr(c[d>>2]|0)|0;l=b;return a|0;}function Xw(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;g=l;l=l+8224|0;h=g+8220|0;i=g+8216|0;j=g+8212|0;k=g+8208|0;m=g+8204|0;n=g;o=g+8200|0;p=g+8196|0;c[i>>2]=a;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;oE(n|0,0,8194)|0;b[n>>1]=12;c[o>>2]=c[k>>2];c[p>>2]=ox(n,c[k>>2]|0,c[m>>2]|0)|0;k=(Ww(c[p>>2]|0)|0)!=0;f=c[p>>2]|0;if(k){c[h>>2]=f;q=c[h>>2]|0;l=g;return q|0;}if(f>>>0>=(c[m>>2]|0)>>>0){c[h>>2]=-72;q=c[h>>2]|0;l=g;return q|0;}else{c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[m>>2]=(c[m>>2]|0)-(c[p>>2]|0);c[h>>2]=px(c[i>>2]|0,c[j>>2]|0,c[o>>2]|0,c[m>>2]|0,n)|0;q=c[h>>2]|0;l=g;return q|0;}return 0;}function Yw(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;f=l;l=l+16416|0;g=f+16412|0;h=f+16408|0;i=f+16404|0;j=f+16400|0;k=f+16396|0;m=f;n=f+16392|0;o=f+16388|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;oE(m|0,0,16388)|0;c[m>>2]=12;c[n>>2]=c[j>>2];c[o>>2]=Zw(m,c[j>>2]|0,c[k>>2]|0)|0;j=(Ww(c[o>>2]|0)|0)!=0;e=c[o>>2]|0;if(j){c[g>>2]=e;p=c[g>>2]|0;l=f;return p|0;}if(e>>>0>=(c[k>>2]|0)>>>0){c[g>>2]=-72;p=c[g>>2]|0;l=f;return p|0;}else{c[n>>2]=(c[n>>2]|0)+(c[o>>2]|0);c[k>>2]=(c[k>>2]|0)-(c[o>>2]|0);c[g>>2]=_w(c[h>>2]|0,c[i>>2]|0,c[n>>2]|0,c[k>>2]|0,m)|0;p=c[g>>2]|0;l=f;return p|0;}return 0;}function Zw(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;g=l;l=l+2128|0;h=g+2120|0;i=g+2116|0;j=g+2112|0;k=g+2108|0;m=g+1760|0;n=g+1248|0;o=g+1168|0;p=g+1088|0;q=g+2104|0;r=g;s=g+2100|0;t=g+2096|0;u=g+2092|0;v=g+2088|0;w=g+2084|0;x=g+2080|0;y=g+2076|0;z=g+2072|0;A=g+2068|0;B=g+2064|0;C=g+2060|0;D=g+2056|0;E=g+2052|0;F=g+2048|0;G=g+2044|0;H=g+2040|0;I=g+2036|0;J=g+2032|0;K=g+2028|0;L=g+2024|0;M=g+2020|0;N=g+2016|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;f=o;e=f+68|0;do{c[f>>2]=0;f=f+4|0;}while((f|0)<(e|0));f=p;e=f+72|0;do{c[f>>2]=0;f=f+4|0;}while((f|0)<(e|0));c[q>>2]=p+4;c[w>>2]=c[c[i>>2]>>2];c[y>>2]=c[i>>2];c[z>>2]=(c[y>>2]|0)+4;if((c[w>>2]|0)>>>0>16){c[h>>2]=-44;O=c[h>>2]|0;l=g;return O|0;}c[x>>2]=ex(m,256,o,v,s,c[j>>2]|0,c[k>>2]|0)|0;if(Ww(c[x>>2]|0)|0){c[h>>2]=c[x>>2];O=c[h>>2]|0;l=g;return O|0;}if((c[s>>2]|0)>>>0>(c[w>>2]|0)>>>0){c[h>>2]=-44;O=c[h>>2]|0;l=g;return O|0;}c[t>>2]=c[s>>2];while(1){if(c[o+(c[t>>2]<<2)>>2]|0)break;if(!(c[t>>2]|0)){P=10;break;}c[t>>2]=(c[t>>2]|0)+-1;}if((P|0)==10){c[h>>2]=-1;O=c[h>>2]|0;l=g;return O|0;}c[B>>2]=0;c[A>>2]=1;while(1){Q=c[B>>2]|0;if((c[A>>2]|0)>>>0>(c[t>>2]|0)>>>0)break;c[C>>2]=Q;c[B>>2]=(c[B>>2]|0)+(c[o+(c[A>>2]<<2)>>2]|0);c[(c[q>>2]|0)+(c[A>>2]<<2)>>2]=c[C>>2];c[A>>2]=(c[A>>2]|0)+1;}c[c[q>>2]>>2]=Q;c[u>>2]=c[B>>2];c[D>>2]=0;while(1){if((c[D>>2]|0)>>>0>=(c[v>>2]|0)>>>0)break;c[E>>2]=d[m+(c[D>>2]|0)>>0];B=(c[q>>2]|0)+(c[E>>2]<<2)|0;Q=c[B>>2]|0;c[B>>2]=Q+1;c[F>>2]=Q;a[n+(c[F>>2]<<1)>>0]=c[D>>2];a[n+(c[F>>2]<<1)+1>>0]=c[E>>2];c[D>>2]=(c[D>>2]|0)+1;}c[c[q>>2]>>2]=0;c[G>>2]=(c[s>>2]|0)+1-(c[t>>2]|0);c[H>>2]=0;c[K>>2]=(c[w>>2]|0)-(c[s>>2]|0)-1;c[L>>2]=r;c[I>>2]=1;while(1){if((c[I>>2]|0)>>>0>(c[t>>2]|0)>>>0)break;c[M>>2]=c[H>>2];c[H>>2]=(c[H>>2]|0)+(c[o+(c[I>>2]<<2)>>2]<<(c[I>>2]|0)+(c[K>>2]|0));c[(c[L>>2]|0)+(c[I>>2]<<2)>>2]=c[M>>2];c[I>>2]=(c[I>>2]|0)+1;}c[J>>2]=c[G>>2];while(1){if((c[J>>2]|0)>>>0>((c[w>>2]|0)-(c[G>>2]|0)|0)>>>0)break;c[N>>2]=r+((c[J>>2]|0)*68|0);c[I>>2]=1;while(1){if((c[I>>2]|0)>>>0>(c[t>>2]|0)>>>0)break;c[(c[N>>2]|0)+(c[I>>2]<<2)>>2]=(c[(c[L>>2]|0)+(c[I>>2]<<2)>>2]|0)>>>(c[J>>2]|0);c[I>>2]=(c[I>>2]|0)+1;}c[J>>2]=(c[J>>2]|0)+1;}fx(c[z>>2]|0,c[w>>2]|0,n,c[u>>2]|0,p,r,c[t>>2]|0,(c[s>>2]|0)+1|0);c[h>>2]=c[x>>2];O=c[h>>2]|0;l=g;return O|0;}function _w(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;g=l;l=l+192|0;h=g+184|0;i=g+180|0;j=g+176|0;k=g+172|0;m=g+168|0;n=g+164|0;o=g+160|0;p=g+156|0;q=g+152|0;r=g+148|0;s=g+144|0;t=g+140|0;u=g+136|0;v=g+120|0;w=g+104|0;x=g+88|0;y=g+72|0;z=g+64|0;A=g+60|0;B=g+56|0;C=g+52|0;D=g+48|0;E=g+44|0;F=g+40|0;G=g+36|0;H=g+32|0;I=g+28|0;J=g+24|0;K=g+20|0;L=g+16|0;M=g+12|0;N=g+8|0;O=g+4|0;P=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;if((c[m>>2]|0)>>>0<10){c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}c[o>>2]=c[k>>2];c[p>>2]=c[i>>2];c[q>>2]=(c[p>>2]|0)+(c[j>>2]|0);c[r>>2]=c[n>>2];c[s>>2]=(c[r>>2]|0)+4;c[t>>2]=c[c[n>>2]>>2];c[z>>2]=(Lw(c[o>>2]|0)|0)&65535;c[A>>2]=(Lw((c[o>>2]|0)+2|0)|0)&65535;c[B>>2]=(Lw((c[o>>2]|0)+4|0)|0)&65535;c[D>>2]=(c[o>>2]|0)+6;c[E>>2]=(c[D>>2]|0)+(c[z>>2]|0);c[F>>2]=(c[E>>2]|0)+(c[A>>2]|0);c[G>>2]=(c[F>>2]|0)+(c[B>>2]|0);c[H>>2]=(((c[j>>2]|0)+3|0)>>>0)/4|0;c[I>>2]=(c[p>>2]|0)+(c[H>>2]|0);c[J>>2]=(c[I>>2]|0)+(c[H>>2]|0);c[K>>2]=(c[J>>2]|0)+(c[H>>2]|0);c[L>>2]=c[p>>2];c[M>>2]=c[I>>2];c[N>>2]=c[J>>2];c[O>>2]=c[K>>2];c[C>>2]=(c[m>>2]|0)-((c[z>>2]|0)+(c[A>>2]|0)+(c[B>>2]|0)+6);if((c[C>>2]|0)>>>0>(c[m>>2]|0)>>>0){c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}c[u>>2]=tw(v,c[D>>2]|0,c[z>>2]|0)|0;if(Ww(c[u>>2]|0)|0){c[h>>2]=c[u>>2];Q=c[h>>2]|0;l=g;return Q|0;}c[u>>2]=tw(w,c[E>>2]|0,c[A>>2]|0)|0;if(Ww(c[u>>2]|0)|0){c[h>>2]=c[u>>2];Q=c[h>>2]|0;l=g;return Q|0;}c[u>>2]=tw(x,c[F>>2]|0,c[B>>2]|0)|0;if(Ww(c[u>>2]|0)|0){c[h>>2]=c[u>>2];Q=c[h>>2]|0;l=g;return Q|0;}c[u>>2]=tw(y,c[G>>2]|0,c[C>>2]|0)|0;if(Ww(c[u>>2]|0)|0){c[h>>2]=c[u>>2];Q=c[h>>2]|0;l=g;return Q|0;}u=vw(v)|0;C=u|(vw(w)|0);u=C|(vw(x)|0);c[P>>2]=u|(vw(y)|0);while(1){if(c[P>>2]|0)break;if((c[O>>2]|0)>>>0>=((c[q>>2]|0)+-7|0)>>>0)break;if($w()|0){u=ax(c[L>>2]|0,v,c[s>>2]|0,c[t>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+u;}if($w()|0){u=ax(c[M>>2]|0,w,c[s>>2]|0,c[t>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+u;}if($w()|0){u=ax(c[N>>2]|0,x,c[s>>2]|0,c[t>>2]|0)|0;c[N>>2]=(c[N>>2]|0)+u;}if($w()|0){u=ax(c[O>>2]|0,y,c[s>>2]|0,c[t>>2]|0)|0;c[O>>2]=(c[O>>2]|0)+u;}$w()|0;u=ax(c[L>>2]|0,v,c[s>>2]|0,c[t>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+u;$w()|0;u=ax(c[M>>2]|0,w,c[s>>2]|0,c[t>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+u;$w()|0;u=ax(c[N>>2]|0,x,c[s>>2]|0,c[t>>2]|0)|0;c[N>>2]=(c[N>>2]|0)+u;$w()|0;u=ax(c[O>>2]|0,y,c[s>>2]|0,c[t>>2]|0)|0;c[O>>2]=(c[O>>2]|0)+u;if($w()|0){u=ax(c[L>>2]|0,v,c[s>>2]|0,c[t>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+u;}if($w()|0){u=ax(c[M>>2]|0,w,c[s>>2]|0,c[t>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+u;}if($w()|0){u=ax(c[N>>2]|0,x,c[s>>2]|0,c[t>>2]|0)|0;c[N>>2]=(c[N>>2]|0)+u;}if($w()|0){u=ax(c[O>>2]|0,y,c[s>>2]|0,c[t>>2]|0)|0;c[O>>2]=(c[O>>2]|0)+u;}u=ax(c[L>>2]|0,v,c[s>>2]|0,c[t>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+u;u=ax(c[M>>2]|0,w,c[s>>2]|0,c[t>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+u;u=ax(c[N>>2]|0,x,c[s>>2]|0,c[t>>2]|0)|0;c[N>>2]=(c[N>>2]|0)+u;u=ax(c[O>>2]|0,y,c[s>>2]|0,c[t>>2]|0)|0;c[O>>2]=(c[O>>2]|0)+u;u=vw(v)|0;C=u|(vw(w)|0);u=C|(vw(x)|0);c[P>>2]=u|(vw(y)|0);}if((c[L>>2]|0)>>>0>(c[I>>2]|0)>>>0){c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}if((c[M>>2]|0)>>>0>(c[J>>2]|0)>>>0){c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}if((c[N>>2]|0)>>>0>(c[K>>2]|0)>>>0){c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}bx(c[L>>2]|0,v,c[I>>2]|0,c[s>>2]|0,c[t>>2]|0)|0;bx(c[M>>2]|0,w,c[J>>2]|0,c[s>>2]|0,c[t>>2]|0)|0;bx(c[N>>2]|0,x,c[K>>2]|0,c[s>>2]|0,c[t>>2]|0)|0;bx(c[O>>2]|0,y,c[q>>2]|0,c[s>>2]|0,c[t>>2]|0)|0;t=yw(v)|0;v=t&(yw(w)|0);w=v&(yw(x)|0);c[P>>2]=w&(yw(y)|0);if(c[P>>2]|0){c[h>>2]=c[j>>2];Q=c[h>>2]|0;l=g;return Q|0;}else{c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}return 0;}function $w(){return 0;}function ax(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0;h=l;l=l+32|0;i=h+16|0;j=h+12|0;k=h+8|0;m=h+4|0;n=h;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=g;c[n>>2]=dx(c[j>>2]|0,c[m>>2]|0)|0;m=c[i>>2]|0;i=(c[k>>2]|0)+(c[n>>2]<<2)|0;a[m>>0]=a[i>>0]|0;a[m+1>>0]=a[i+1>>0]|0;Gw(c[j>>2]|0,d[(c[k>>2]|0)+(c[n>>2]<<2)+2>>0]|0);l=h;return d[(c[k>>2]|0)+(c[n>>2]<<2)+3>>0]|0|0;}function bx(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=l;l=l+32|0;h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;m=g+4|0;n=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=c[h>>2];while(1){if(vw(c[i>>2]|0)|0)break;if((c[h>>2]|0)>>>0>=((c[j>>2]|0)+-7|0)>>>0)break;if($w()|0){f=ax(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}$w()|0;f=ax(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;if($w()|0){f=ax(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}f=ax(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}while(1){if(vw(c[i>>2]|0)|0)break;if((c[h>>2]|0)>>>0>((c[j>>2]|0)+-2|0)>>>0)break;f=ax(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}while(1){o=c[h>>2]|0;if((c[h>>2]|0)>>>0>((c[j>>2]|0)+-2|0)>>>0)break;f=ax(o,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}if(o>>>0>=(c[j>>2]|0)>>>0){p=c[h>>2]|0;q=c[n>>2]|0;r=p;s=q;t=r-s|0;l=g;return t|0;}j=cx(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+j;p=c[h>>2]|0;q=c[n>>2]|0;r=p;s=q;t=r-s|0;l=g;return t|0;}function cx(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0;h=l;l=l+32|0;i=h+16|0;j=h+12|0;k=h+8|0;m=h+4|0;n=h;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=g;c[n>>2]=dx(c[j>>2]|0,c[m>>2]|0)|0;a[c[i>>2]>>0]=a[(c[k>>2]|0)+(c[n>>2]<<2)>>0]|0;i=c[j>>2]|0;if((d[(c[k>>2]|0)+(c[n>>2]<<2)+3>>0]|0|0)==1){Gw(i,d[(c[k>>2]|0)+(c[n>>2]<<2)+2>>0]|0);l=h;return 1;}if((c[i+4>>2]|0)>>>0>=32){l=h;return 1;}Gw(c[j>>2]|0,d[(c[k>>2]|0)+(c[n>>2]<<2)+2>>0]|0);if((c[(c[j>>2]|0)+4>>2]|0)>>>0<=32){l=h;return 1;}c[(c[j>>2]|0)+4>>2]=32;l=h;return 1;}function dx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;c[e>>2]=a;c[f>>2]=b;c[d>>2]=31;l=d;return c[c[e>>2]>>2]<<(c[(c[e>>2]|0)+4>>2]&31)>>>(32-(c[f>>2]|0)&31)|0;}function ex(b,e,f,g,h,i,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;k=l;l=l+80|0;m=k+68|0;n=k+64|0;o=k+60|0;p=k+56|0;q=k+52|0;r=k+48|0;s=k+44|0;t=k+40|0;u=k+36|0;v=k+32|0;w=k+28|0;x=k+24|0;y=k+20|0;z=k+16|0;A=k+12|0;B=k+8|0;C=k+4|0;D=k;c[n>>2]=b;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[w>>2]=c[s>>2];if(!(c[t>>2]|0)){c[m>>2]=-72;E=c[m>>2]|0;l=k;return E|0;}c[x>>2]=d[c[w>>2]>>0];s=c[x>>2]|0;a:do{if((c[x>>2]|0)>>>0<128){if((s+1|0)>>>0>(c[t>>2]|0)>>>0){c[m>>2]=-72;E=c[m>>2]|0;l=k;return E|0;}c[y>>2]=jx(c[n>>2]|0,(c[o>>2]|0)-1|0,(c[w>>2]|0)+1|0,c[x>>2]|0)|0;if(Pw(c[y>>2]|0)|0){c[m>>2]=c[y>>2];E=c[m>>2]|0;l=k;return E|0;}}else{j=c[x>>2]|0;if(s>>>0>=242){c[y>>2]=c[7392+(j-242<<2)>>2];oE(c[n>>2]|0,1,c[o>>2]|0)|0;c[x>>2]=0;break;}c[y>>2]=j-127;c[x>>2]=(((c[y>>2]|0)+1|0)>>>0)/2|0;if(((c[x>>2]|0)+1|0)>>>0>(c[t>>2]|0)>>>0){c[m>>2]=-72;E=c[m>>2]|0;l=k;return E|0;}if((c[y>>2]|0)>>>0>=(c[o>>2]|0)>>>0){c[m>>2]=-20;E=c[m>>2]|0;l=k;return E|0;}c[w>>2]=(c[w>>2]|0)+1;c[z>>2]=0;while(1){if((c[z>>2]|0)>>>0>=(c[y>>2]|0)>>>0)break a;a[(c[n>>2]|0)+(c[z>>2]|0)>>0]=(d[(c[w>>2]|0)+(((c[z>>2]|0)>>>0)/2|0)>>0]|0)>>4;a[(c[n>>2]|0)+((c[z>>2]|0)+1)>>0]=(d[(c[w>>2]|0)+(((c[z>>2]|0)>>>0)/2|0)>>0]|0)&15;c[z>>2]=(c[z>>2]|0)+2;}}}while(0);w=c[p>>2]|0;o=w+68|0;do{c[w>>2]=0;w=w+4|0;}while((w|0)<(o|0));c[u>>2]=0;c[z>>2]=0;while(1){if((c[z>>2]|0)>>>0>=(c[y>>2]|0)>>>0)break;if((d[(c[n>>2]|0)+(c[z>>2]|0)>>0]|0|0)>=16){F=20;break;}w=(c[p>>2]|0)+((d[(c[n>>2]|0)+(c[z>>2]|0)>>0]|0)<<2)|0;c[w>>2]=(c[w>>2]|0)+1;c[u>>2]=(c[u>>2]|0)+(1<<(d[(c[n>>2]|0)+(c[z>>2]|0)>>0]|0)>>1);c[z>>2]=(c[z>>2]|0)+1;}if((F|0)==20){c[m>>2]=-20;E=c[m>>2]|0;l=k;return E|0;}if(!(c[u>>2]|0)){c[m>>2]=-20;E=c[m>>2]|0;l=k;return E|0;}c[v>>2]=(Kw(c[u>>2]|0)|0)+1;if((c[v>>2]|0)>>>0>16){c[m>>2]=-20;E=c[m>>2]|0;l=k;return E|0;}c[A>>2]=1<<c[v>>2];c[B>>2]=(c[A>>2]|0)-(c[u>>2]|0);c[C>>2]=1<<(Kw(c[B>>2]|0)|0);c[D>>2]=(Kw(c[B>>2]|0)|0)+1;if((c[C>>2]|0)!=(c[B>>2]|0)){c[m>>2]=-20;E=c[m>>2]|0;l=k;return E|0;}a[(c[n>>2]|0)+(c[y>>2]|0)>>0]=c[D>>2];n=(c[p>>2]|0)+(c[D>>2]<<2)|0;c[n>>2]=(c[n>>2]|0)+1;if((c[(c[p>>2]|0)+4>>2]|0)>>>0>=2?(c[(c[p>>2]|0)+4>>2]&1|0)==0:0){c[c[q>>2]>>2]=(c[y>>2]|0)+1;c[c[r>>2]>>2]=c[v>>2];c[m>>2]=(c[x>>2]|0)+1;E=c[m>>2]|0;l=k;return E|0;}c[m>>2]=-20;E=c[m>>2]|0;l=k;return E|0;}function fx(e,f,g,h,i,j,k,m){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;n=l;l=l+160|0;o=n+140|0;p=n+136|0;q=n+132|0;r=n+128|0;s=n+124|0;t=n+120|0;u=n+116|0;v=n+112|0;w=n;x=n+108|0;y=n+104|0;z=n+100|0;A=n+148|0;B=n+96|0;C=n+92|0;D=n+88|0;E=n+84|0;F=n+80|0;G=n+76|0;H=n+72|0;I=n+68|0;J=n+144|0;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[u>>2]=k;c[v>>2]=m;c[x>>2]=(c[v>>2]|0)-(c[p>>2]|0);c[y>>2]=(c[v>>2]|0)-(c[u>>2]|0);u=w;m=c[t>>2]|0;k=u+68|0;do{c[u>>2]=c[m>>2];u=u+4|0;m=m+4|0;}while((u|0)<(k|0));c[z>>2]=0;while(1){if((c[z>>2]|0)>>>0>=(c[r>>2]|0)>>>0)break;b[A>>1]=d[(c[q>>2]|0)+(c[z>>2]<<1)>>0]|0;c[B>>2]=d[(c[q>>2]|0)+(c[z>>2]<<1)+1>>0];c[C>>2]=(c[v>>2]|0)-(c[B>>2]|0);c[D>>2]=c[w+(c[B>>2]<<2)>>2];c[E>>2]=1<<(c[p>>2]|0)-(c[C>>2]|0);a:do{if(((c[p>>2]|0)-(c[C>>2]|0)|0)>>>0>=(c[y>>2]|0)>>>0){m=(c[C>>2]|0)+(c[x>>2]|0)|0;c[G>>2]=m;c[G>>2]=(c[G>>2]|0)<1?1:m;c[F>>2]=c[(c[s>>2]|0)+(c[G>>2]<<2)>>2];gx((c[o>>2]|0)+(c[D>>2]<<2)|0,(c[p>>2]|0)-(c[C>>2]|0)|0,c[C>>2]|0,(c[t>>2]|0)+((c[C>>2]|0)*68|0)|0,c[G>>2]|0,(c[q>>2]|0)+(c[F>>2]<<1)|0,(c[r>>2]|0)-(c[F>>2]|0)|0,c[v>>2]|0,b[A>>1]|0);}else{c[I>>2]=(c[D>>2]|0)+(c[E>>2]|0);hx(J,b[A>>1]|0);a[J+2>>0]=c[C>>2];a[J+3>>0]=1;c[H>>2]=c[D>>2];while(1){if((c[H>>2]|0)>>>0>=(c[I>>2]|0)>>>0)break a;m=(c[o>>2]|0)+(c[H>>2]<<2)|0;b[m>>1]=b[J>>1]|0;b[m+2>>1]=b[J+2>>1]|0;c[H>>2]=(c[H>>2]|0)+1;}}}while(0);m=w+(c[B>>2]<<2)|0;c[m>>2]=(c[m>>2]|0)+(c[E>>2]|0);c[z>>2]=(c[z>>2]|0)+1;}l=n;return;}function gx(f,g,h,i,j,k,m,n,o){f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;p=l;l=l+160|0;q=p+136|0;r=p+132|0;s=p+128|0;t=p+124|0;u=p+120|0;v=p+116|0;w=p+112|0;x=p+108|0;y=p+144|0;z=p+140|0;A=p;B=p+104|0;C=p+100|0;D=p+96|0;E=p+92|0;F=p+88|0;G=p+84|0;H=p+80|0;I=p+76|0;J=p+72|0;K=p+68|0;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=i;c[u>>2]=j;c[v>>2]=k;c[w>>2]=m;c[x>>2]=n;b[y>>1]=o;o=A;n=c[t>>2]|0;t=o+68|0;do{c[o>>2]=c[n>>2];o=o+4|0;n=n+4|0;}while((o|0)<(t|0));a:do{if((c[u>>2]|0)>1){c[D>>2]=c[A+(c[u>>2]<<2)>>2];hx(z,b[y>>1]|0);a[z+2>>0]=c[s>>2];a[z+3>>0]=1;c[C>>2]=0;while(1){if((c[C>>2]|0)>>>0>=(c[D>>2]|0)>>>0)break a;n=(c[q>>2]|0)+(c[C>>2]<<2)|0;b[n>>1]=b[z>>1]|0;b[n+2>>1]=b[z+2>>1]|0;c[C>>2]=(c[C>>2]|0)+1;}}}while(0);c[B>>2]=0;while(1){if((c[B>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;c[E>>2]=d[(c[v>>2]|0)+(c[B>>2]<<1)>>0];c[F>>2]=d[(c[v>>2]|0)+(c[B>>2]<<1)+1>>0];c[G>>2]=(c[x>>2]|0)-(c[F>>2]|0);c[H>>2]=1<<(c[r>>2]|0)-(c[G>>2]|0);c[I>>2]=c[A+(c[F>>2]<<2)>>2];c[J>>2]=c[I>>2];c[K>>2]=(c[I>>2]|0)+(c[H>>2]|0);hx(z,(e[y>>1]|0)+(c[E>>2]<<8)&65535);a[z+2>>0]=(c[G>>2]|0)+(c[s>>2]|0);a[z+3>>0]=2;do{C=c[q>>2]|0;D=c[J>>2]|0;c[J>>2]=D+1;u=C+(D<<2)|0;b[u>>1]=b[z>>1]|0;b[u+2>>1]=b[z+2>>1]|0;}while((c[J>>2]|0)>>>0<(c[K>>2]|0)>>>0);u=A+(c[F>>2]<<2)|0;c[u>>2]=(c[u>>2]|0)+(c[H>>2]|0);c[B>>2]=(c[B>>2]|0)+1;}l=p;return;}function hx(d,f){d=d|0;f=f|0;var g=0,h=0,i=0,j=0;g=l;l=l+16|0;h=g+4|0;i=g+8|0;j=g;c[h>>2]=d;b[i>>1]=f;f=(tr()|0)!=0;d=c[h>>2]|0;if(f){ix(d,b[i>>1]|0);l=g;return;}else{c[j>>2]=d;a[c[j>>2]>>0]=b[i>>1];a[(c[j>>2]|0)+1>>0]=(e[i>>1]|0)>>8;l=g;return;}}function ix(d,e){d=d|0;e=e|0;var f=0,g=0,h=0;f=l;l=l+16|0;g=f;h=f+4|0;c[g>>2]=d;b[h>>1]=e;e=c[g>>2]|0;a[e>>0]=a[h>>0]|0;a[e+1>>0]=a[h+1>>0]|0;l=f;return;}function jx(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;f=l;l=l+16960|0;g=f+16948|0;h=f+16944|0;i=f+16940|0;j=f+16936|0;k=f+16932|0;m=f+16928|0;n=f+16924|0;o=f+16400|0;p=f;q=f+16920|0;r=f+16916|0;s=f+16912|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=c[j>>2];c[n>>2]=c[m>>2];c[r>>2]=255;if((c[k>>2]|0)>>>0<2){c[g>>2]=-72;t=c[g>>2]|0;l=f;return t|0;}c[s>>2]=Ow(o,r,q,c[m>>2]|0,c[k>>2]|0)|0;m=(Pw(c[s>>2]|0)|0)!=0;j=c[s>>2]|0;if(m){c[g>>2]=j;t=c[g>>2]|0;l=f;return t|0;}if(j>>>0>=(c[k>>2]|0)>>>0){c[g>>2]=-72;t=c[g>>2]|0;l=f;return t|0;}c[n>>2]=(c[n>>2]|0)+(c[s>>2]|0);c[k>>2]=(c[k>>2]|0)-(c[s>>2]|0);c[s>>2]=Qw(p,o,c[r>>2]|0,c[q>>2]|0)|0;if(Pw(c[s>>2]|0)|0){c[g>>2]=c[s>>2];t=c[g>>2]|0;l=f;return t|0;}else{c[g>>2]=kx(c[h>>2]|0,c[i>>2]|0,c[n>>2]|0,c[k>>2]|0,p)|0;t=c[g>>2]|0;l=f;return t|0;}return 0;}function kx(d,f,g,h,i){d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0;j=l;l=l+192|0;k=j+184|0;m=j+180|0;n=j+176|0;o=j+172|0;p=j+168|0;q=j+164|0;r=j+160|0;s=j+156|0;t=j+152|0;u=j+148|0;v=j+144|0;w=j+128|0;x=j+120|0;y=j+112|0;z=j+108|0;A=j+104|0;B=j+100|0;C=j+96|0;D=j+92|0;E=j+88|0;F=j+84|0;G=j+80|0;H=j+76|0;I=j+72|0;J=j+68|0;K=j+64|0;L=j+48|0;M=j+40|0;N=j+32|0;O=j+28|0;P=j+24|0;Q=j+20|0;R=j+16|0;S=j+12|0;T=j+8|0;U=j+4|0;V=j+188|0;W=j;c[Q>>2]=d;c[R>>2]=f;c[S>>2]=g;c[T>>2]=h;c[U>>2]=i;i=c[U>>2]|0;b[V>>1]=b[i>>1]|0;b[V+2>>1]=b[i+2>>1]|0;c[W>>2]=e[V+2>>1];V=c[Q>>2]|0;Q=c[R>>2]|0;R=c[S>>2]|0;S=c[T>>2]|0;T=c[U>>2]|0;if(c[W>>2]|0){c[B>>2]=V;c[C>>2]=Q;c[D>>2]=R;c[E>>2]=S;c[F>>2]=T;c[G>>2]=1;c[H>>2]=c[B>>2];c[I>>2]=c[H>>2];c[J>>2]=(c[I>>2]|0)+(c[C>>2]|0);c[K>>2]=(c[J>>2]|0)+-3;c[O>>2]=tw(L,c[D>>2]|0,c[E>>2]|0)|0;do{if(!(Pw(c[O>>2]|0)|0)){uw(M,L,c[F>>2]|0);uw(N,L,c[F>>2]|0);while(1){if(vw(L)|0)break;if((c[I>>2]|0)>>>0>=(c[K>>2]|0)>>>0)break;if(c[G>>2]|0)X=(lx(M,L)|0)&255;else X=(Cw(M,L)|0)&255;a[c[I>>2]>>0]=X;if(c[G>>2]|0)Y=(lx(N,L)|0)&255;else Y=(Cw(N,L)|0)&255;a[(c[I>>2]|0)+1>>0]=Y;if((vw(L)|0)>>>0>0){Z=14;break;}if(c[G>>2]|0)_=(lx(M,L)|0)&255;else _=(Cw(M,L)|0)&255;a[(c[I>>2]|0)+2>>0]=_;if(c[G>>2]|0)$=(lx(N,L)|0)&255;else $=(Cw(N,L)|0)&255;a[(c[I>>2]|0)+3>>0]=$;c[I>>2]=(c[I>>2]|0)+4;}if((Z|0)==14)c[I>>2]=(c[I>>2]|0)+2;while(1){if((vw(L)|0)>>>0>2)break;if((c[I>>2]|0)==(c[J>>2]|0))break;if(yw(L)|0){if(c[G>>2]|0)break;if(mx(M)|0)break;}if(c[G>>2]|0)aa=(lx(M,L)|0)&255;else aa=(Cw(M,L)|0)&255;E=c[I>>2]|0;c[I>>2]=E+1;a[E>>0]=aa;if((vw(L)|0)>>>0>2)break;if((c[I>>2]|0)==(c[J>>2]|0))break;if(yw(L)|0){if(c[G>>2]|0)break;if(mx(N)|0)break;}if(c[G>>2]|0)ba=(lx(N,L)|0)&255;else ba=(Cw(N,L)|0)&255;E=c[I>>2]|0;c[I>>2]=E+1;a[E>>0]=ba;}if((yw(L)|0?mx(M)|0:0)?mx(N)|0:0){c[A>>2]=(c[I>>2]|0)-(c[H>>2]|0);break;}if((c[I>>2]|0)==(c[J>>2]|0)){c[A>>2]=-70;break;}else{c[A>>2]=-20;break;}}else c[A>>2]=c[O>>2];}while(0);c[P>>2]=c[A>>2];ca=c[P>>2]|0;l=j;return ca|0;}else{c[m>>2]=V;c[n>>2]=Q;c[o>>2]=R;c[p>>2]=S;c[q>>2]=T;c[r>>2]=0;c[s>>2]=c[m>>2];c[t>>2]=c[s>>2];c[u>>2]=(c[t>>2]|0)+(c[n>>2]|0);c[v>>2]=(c[u>>2]|0)+-3;c[z>>2]=tw(w,c[o>>2]|0,c[p>>2]|0)|0;do{if(!(Pw(c[z>>2]|0)|0)){uw(x,w,c[q>>2]|0);uw(y,w,c[q>>2]|0);while(1){if(vw(w)|0)break;if((c[t>>2]|0)>>>0>=(c[v>>2]|0)>>>0)break;if(c[r>>2]|0)da=(lx(x,w)|0)&255;else da=(Cw(x,w)|0)&255;a[c[t>>2]>>0]=da;if(c[r>>2]|0)ea=(lx(y,w)|0)&255;else ea=(Cw(y,w)|0)&255;a[(c[t>>2]|0)+1>>0]=ea;if((vw(w)|0)>>>0>0){Z=60;break;}if(c[r>>2]|0)fa=(lx(x,w)|0)&255;else fa=(Cw(x,w)|0)&255;a[(c[t>>2]|0)+2>>0]=fa;if(c[r>>2]|0)ga=(lx(y,w)|0)&255;else ga=(Cw(y,w)|0)&255;a[(c[t>>2]|0)+3>>0]=ga;c[t>>2]=(c[t>>2]|0)+4;}if((Z|0)==60)c[t>>2]=(c[t>>2]|0)+2;while(1){if((vw(w)|0)>>>0>2)break;if((c[t>>2]|0)==(c[u>>2]|0))break;if(yw(w)|0){if(c[r>>2]|0)break;if(mx(x)|0)break;}if(c[r>>2]|0)ha=(lx(x,w)|0)&255;else ha=(Cw(x,w)|0)&255;p=c[t>>2]|0;c[t>>2]=p+1;a[p>>0]=ha;if((vw(w)|0)>>>0>2)break;if((c[t>>2]|0)==(c[u>>2]|0))break;if(yw(w)|0){if(c[r>>2]|0)break;if(mx(y)|0)break;}if(c[r>>2]|0)ia=(lx(y,w)|0)&255;else ia=(Cw(y,w)|0)&255;p=c[t>>2]|0;c[t>>2]=p+1;a[p>>0]=ia;}if((yw(w)|0?mx(x)|0:0)?mx(y)|0:0){c[k>>2]=(c[t>>2]|0)-(c[s>>2]|0);break;}if((c[t>>2]|0)==(c[u>>2]|0)){c[k>>2]=-70;break;}else{c[k>>2]=-20;break;}}else c[k>>2]=c[z>>2];}while(0);c[P>>2]=c[k>>2];ca=c[P>>2]|0;l=j;return ca|0;}return 0;}function lx(f,g){f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+12|0;j=h+8|0;k=h+16|0;m=h+4|0;n=h+20|0;o=h;c[i>>2]=f;c[j>>2]=g;g=(c[(c[i>>2]|0)+4>>2]|0)+(c[c[i>>2]>>2]<<2)|0;b[k>>1]=b[g>>1]|0;b[k+2>>1]=b[g+2>>1]|0;c[m>>2]=d[k+3>>0];a[n>>0]=a[k+2>>0]|0;c[o>>2]=nx(c[j>>2]|0,c[m>>2]|0)|0;c[c[i>>2]>>2]=(e[k>>1]|0)+(c[o>>2]|0);l=h;return a[n>>0]|0;}function mx(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return(c[c[d>>2]>>2]|0)==0|0;}function nx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=dx(c[e>>2]|0,c[f>>2]|0)|0;Gw(c[e>>2]|0,c[f>>2]|0);l=d;return c[g>>2]|0;}function ox(f,g,h){f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;i=l;l=l+400|0;j=i+392|0;k=i+388|0;m=i+384|0;n=i+380|0;o=i+80|0;p=i;q=i+376|0;r=i+372|0;s=i+368|0;t=i+364|0;u=i+360|0;v=i+356|0;w=i+352|0;x=i+348|0;y=i+344|0;z=i+340|0;A=i+336|0;B=i+396|0;c[k>>2]=f;c[m>>2]=g;c[n>>2]=h;c[q>>2]=0;c[s>>2]=0;c[v>>2]=(c[k>>2]|0)+2;c[w>>2]=c[v>>2];c[r>>2]=ex(o,256,p,s,q,c[m>>2]|0,c[n>>2]|0)|0;if(Ww(c[r>>2]|0)|0){c[j>>2]=c[r>>2];C=c[j>>2]|0;l=i;return C|0;}if((c[q>>2]|0)>>>0>(e[c[k>>2]>>1]|0)>>>0){c[j>>2]=-44;C=c[j>>2]|0;l=i;return C|0;}b[c[k>>2]>>1]=c[q>>2];c[u>>2]=0;c[t>>2]=1;while(1){if((c[t>>2]|0)>>>0>(c[q>>2]|0)>>>0)break;c[x>>2]=c[u>>2];c[u>>2]=(c[u>>2]|0)+(c[p+(c[t>>2]<<2)>>2]<<(c[t>>2]|0)-1);c[p+(c[t>>2]<<2)>>2]=c[x>>2];c[t>>2]=(c[t>>2]|0)+1;}c[t>>2]=0;while(1){if((c[t>>2]|0)>>>0>=(c[s>>2]|0)>>>0)break;c[y>>2]=d[o+(c[t>>2]|0)>>0];c[z>>2]=1<<c[y>>2]>>1;a[B>>0]=c[t>>2];a[B+1>>0]=(c[q>>2]|0)+1-(c[y>>2]|0);c[A>>2]=c[p+(c[y>>2]<<2)>>2];while(1){if((c[A>>2]|0)>>>0>=((c[p+(c[y>>2]<<2)>>2]|0)+(c[z>>2]|0)|0)>>>0)break;x=(c[w>>2]|0)+(c[A>>2]<<1)|0;a[x>>0]=a[B>>0]|0;a[x+1>>0]=a[B+1>>0]|0;c[A>>2]=(c[A>>2]|0)+1;}x=p+(c[y>>2]<<2)|0;c[x>>2]=(c[x>>2]|0)+(c[z>>2]|0);c[t>>2]=(c[t>>2]|0)+1;}c[j>>2]=c[r>>2];C=c[j>>2]|0;l=i;return C|0;}function px(b,d,f,g,h){b=b|0;d=d|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0;i=l;l=l+192|0;j=i+184|0;k=i+180|0;m=i+176|0;n=i+172|0;o=i+168|0;p=i+164|0;q=i+160|0;r=i+156|0;s=i+152|0;t=i+148|0;u=i+144|0;v=i+140|0;w=i+136|0;x=i+120|0;y=i+104|0;z=i+88|0;A=i+72|0;B=i+64|0;C=i+60|0;D=i+56|0;E=i+52|0;F=i+48|0;G=i+44|0;H=i+40|0;I=i+36|0;J=i+32|0;K=i+28|0;L=i+24|0;M=i+20|0;N=i+16|0;O=i+12|0;P=i+8|0;Q=i+4|0;R=i;c[k>>2]=b;c[m>>2]=d;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;if((c[o>>2]|0)>>>0<10){c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}c[q>>2]=c[n>>2];c[r>>2]=c[k>>2];c[s>>2]=(c[r>>2]|0)+(c[m>>2]|0);c[t>>2]=c[p>>2];c[u>>2]=(c[t>>2]|0)+2;c[v>>2]=e[c[p>>2]>>1];c[B>>2]=(Lw(c[q>>2]|0)|0)&65535;c[C>>2]=(Lw((c[q>>2]|0)+2|0)|0)&65535;c[D>>2]=(Lw((c[q>>2]|0)+4|0)|0)&65535;c[F>>2]=(c[q>>2]|0)+6;c[G>>2]=(c[F>>2]|0)+(c[B>>2]|0);c[H>>2]=(c[G>>2]|0)+(c[C>>2]|0);c[I>>2]=(c[H>>2]|0)+(c[D>>2]|0);c[J>>2]=(((c[m>>2]|0)+3|0)>>>0)/4|0;c[K>>2]=(c[r>>2]|0)+(c[J>>2]|0);c[L>>2]=(c[K>>2]|0)+(c[J>>2]|0);c[M>>2]=(c[L>>2]|0)+(c[J>>2]|0);c[N>>2]=c[r>>2];c[O>>2]=c[K>>2];c[P>>2]=c[L>>2];c[Q>>2]=c[M>>2];c[E>>2]=(c[o>>2]|0)-((c[B>>2]|0)+(c[C>>2]|0)+(c[D>>2]|0)+6);if((c[E>>2]|0)>>>0>(c[o>>2]|0)>>>0){c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}c[w>>2]=tw(x,c[F>>2]|0,c[B>>2]|0)|0;if(Ww(c[w>>2]|0)|0){c[j>>2]=c[w>>2];S=c[j>>2]|0;l=i;return S|0;}c[w>>2]=tw(y,c[G>>2]|0,c[C>>2]|0)|0;if(Ww(c[w>>2]|0)|0){c[j>>2]=c[w>>2];S=c[j>>2]|0;l=i;return S|0;}c[w>>2]=tw(z,c[H>>2]|0,c[D>>2]|0)|0;if(Ww(c[w>>2]|0)|0){c[j>>2]=c[w>>2];S=c[j>>2]|0;l=i;return S|0;}c[w>>2]=tw(A,c[I>>2]|0,c[E>>2]|0)|0;if(Ww(c[w>>2]|0)|0){c[j>>2]=c[w>>2];S=c[j>>2]|0;l=i;return S|0;}w=vw(x)|0;E=w|(vw(y)|0);w=E|(vw(z)|0);c[R>>2]=w|(vw(A)|0);while(1){if(c[R>>2]|0)break;if((c[Q>>2]|0)>>>0>=((c[s>>2]|0)+-7|0)>>>0)break;if($w()|0){w=qx(x,c[u>>2]|0,c[v>>2]|0)|0;E=c[N>>2]|0;c[N>>2]=E+1;a[E>>0]=w;}if($w()|0){w=qx(y,c[u>>2]|0,c[v>>2]|0)|0;E=c[O>>2]|0;c[O>>2]=E+1;a[E>>0]=w;}if($w()|0){w=qx(z,c[u>>2]|0,c[v>>2]|0)|0;E=c[P>>2]|0;c[P>>2]=E+1;a[E>>0]=w;}if($w()|0){w=qx(A,c[u>>2]|0,c[v>>2]|0)|0;E=c[Q>>2]|0;c[Q>>2]=E+1;a[E>>0]=w;}$w()|0;w=qx(x,c[u>>2]|0,c[v>>2]|0)|0;E=c[N>>2]|0;c[N>>2]=E+1;a[E>>0]=w;$w()|0;w=qx(y,c[u>>2]|0,c[v>>2]|0)|0;E=c[O>>2]|0;c[O>>2]=E+1;a[E>>0]=w;$w()|0;w=qx(z,c[u>>2]|0,c[v>>2]|0)|0;E=c[P>>2]|0;c[P>>2]=E+1;a[E>>0]=w;$w()|0;w=qx(A,c[u>>2]|0,c[v>>2]|0)|0;E=c[Q>>2]|0;c[Q>>2]=E+1;a[E>>0]=w;if($w()|0){w=qx(x,c[u>>2]|0,c[v>>2]|0)|0;E=c[N>>2]|0;c[N>>2]=E+1;a[E>>0]=w;}if($w()|0){w=qx(y,c[u>>2]|0,c[v>>2]|0)|0;E=c[O>>2]|0;c[O>>2]=E+1;a[E>>0]=w;}if($w()|0){w=qx(z,c[u>>2]|0,c[v>>2]|0)|0;E=c[P>>2]|0;c[P>>2]=E+1;a[E>>0]=w;}if($w()|0){w=qx(A,c[u>>2]|0,c[v>>2]|0)|0;E=c[Q>>2]|0;c[Q>>2]=E+1;a[E>>0]=w;}w=qx(x,c[u>>2]|0,c[v>>2]|0)|0;E=c[N>>2]|0;c[N>>2]=E+1;a[E>>0]=w;w=qx(y,c[u>>2]|0,c[v>>2]|0)|0;E=c[O>>2]|0;c[O>>2]=E+1;a[E>>0]=w;w=qx(z,c[u>>2]|0,c[v>>2]|0)|0;E=c[P>>2]|0;c[P>>2]=E+1;a[E>>0]=w;w=qx(A,c[u>>2]|0,c[v>>2]|0)|0;E=c[Q>>2]|0;c[Q>>2]=E+1;a[E>>0]=w;w=vw(x)|0;E=w|(vw(y)|0);w=E|(vw(z)|0);c[R>>2]=w|(vw(A)|0);}if((c[N>>2]|0)>>>0>(c[K>>2]|0)>>>0){c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}if((c[O>>2]|0)>>>0>(c[L>>2]|0)>>>0){c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}if((c[P>>2]|0)>>>0>(c[M>>2]|0)>>>0){c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}rx(c[N>>2]|0,x,c[K>>2]|0,c[u>>2]|0,c[v>>2]|0)|0;rx(c[O>>2]|0,y,c[L>>2]|0,c[u>>2]|0,c[v>>2]|0)|0;rx(c[P>>2]|0,z,c[M>>2]|0,c[u>>2]|0,c[v>>2]|0)|0;rx(c[Q>>2]|0,A,c[s>>2]|0,c[u>>2]|0,c[v>>2]|0)|0;v=yw(x)|0;x=v&(yw(y)|0);y=x&(yw(z)|0);c[R>>2]=y&(yw(A)|0);if(c[R>>2]|0){c[j>>2]=c[m>>2];S=c[j>>2]|0;l=i;return S|0;}else{c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}return 0;}function qx(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0;g=l;l=l+32|0;h=g+12|0;i=g+8|0;j=g+4|0;k=g;m=g+16|0;c[h>>2]=b;c[i>>2]=e;c[j>>2]=f;c[k>>2]=dx(c[h>>2]|0,c[j>>2]|0)|0;a[m>>0]=a[(c[i>>2]|0)+(c[k>>2]<<1)>>0]|0;Gw(c[h>>2]|0,d[(c[i>>2]|0)+(c[k>>2]<<1)+1>>0]|0);l=g;return a[m>>0]|0;}function rx(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+20|0;j=h+16|0;k=h+12|0;m=h+8|0;n=h+4|0;o=h;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=c[i>>2];while(1){if(vw(c[j>>2]|0)|0)break;if((c[i>>2]|0)>>>0>((c[k>>2]|0)+-4|0)>>>0)break;if($w()|0){g=qx(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}$w()|0;g=qx(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;if($w()|0){g=qx(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}g=qx(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}while(1){if(vw(c[j>>2]|0)|0)break;if((c[i>>2]|0)>>>0>=(c[k>>2]|0)>>>0)break;g=qx(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}while(1){if((c[i>>2]|0)>>>0>=(c[k>>2]|0)>>>0)break;g=qx(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}l=h;return(c[k>>2]|0)-(c[o>>2]|0)|0;}function sx(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=e;if((c[j>>2]|0)>>>0<5){c[g>>2]=5;m=c[g>>2]|0;l=f;return m|0;}c[k>>2]=pr(c[i>>2]|0)|0;if((c[k>>2]|0)!=-47205084){c[g>>2]=-10;m=c[g>>2]|0;l=f;return m|0;}k=c[h>>2]|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;c[k+20>>2]=0;c[k+24>>2]=0;c[k+28>>2]=0;c[(c[h>>2]|0)+8>>2]=((d[(c[i>>2]|0)+4>>0]|0)&15)+11;if((d[(c[i>>2]|0)+4>>0]|0)>>4|0){c[g>>2]=-14;m=c[g>>2]|0;l=f;return m|0;}else{c[g>>2]=0;m=c[g>>2]|0;l=f;return m|0;}return 0;}function tx(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0;g=l;l=l+32|0;h=g+16|0;i=g+12|0;j=g+8|0;k=g+4|0;m=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;f=Zr(c[h>>2]|0,c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,0,0)|0;l=g;return f|0;}function ux(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+32|0;g=f+24|0;h=f+20|0;i=f+16|0;j=f+12|0;k=f+8|0;m=f+4|0;n=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[n>>2]=Wp()|0;if(!(c[n>>2]|0)){c[g>>2]=-64;o=c[g>>2]|0;l=f;return o|0;}else{c[m>>2]=tx(c[n>>2]|0,c[h>>2]|0,c[i>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;Xp(c[n>>2]|0)|0;c[g>>2]=c[m>>2];o=c[g>>2]|0;l=f;return o|0;}return 0;}function vx(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[(c[d>>2]|0)+28744>>2]|0;}function wx(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;switch(c[(c[e>>2]|0)+28804>>2]|0){case 6:case 7:{c[d>>2]=5;break;}case 2:{c[d>>2]=1;break;}case 3:{c[d>>2]=2;break;}case 4:{c[d>>2]=3;break;}case 5:{c[d>>2]=4;break;}default:c[d>>2]=0;}l=b;return c[d>>2]|0;}function xx(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;g=l;l=l+64|0;h=g+52|0;i=g+48|0;j=g+44|0;k=g+40|0;m=g+36|0;n=g+32|0;o=g+28|0;p=g+16|0;q=g+12|0;r=g+8|0;s=g+4|0;t=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;if((c[n>>2]|0)!=(c[(c[i>>2]|0)+28744>>2]|0)){c[h>>2]=-72;u=c[h>>2]|0;l=g;return u|0;}if(c[k>>2]|0)Br(c[i>>2]|0,c[j>>2]|0);switch(c[(c[i>>2]|0)+28804>>2]|0){case 0:{if((c[(c[i>>2]|0)+28912>>2]|0)==0?((hq(c[m>>2]|0)|0)&-16|0)==407710288:0){mE((c[i>>2]|0)+160092|0,c[m>>2]|0,c[n>>2]|0)|0;c[(c[i>>2]|0)+28744>>2]=8-(c[n>>2]|0);c[(c[i>>2]|0)+28804>>2]=6;c[h>>2]=0;u=c[h>>2]|0;l=g;return u|0;}f=nq(c[m>>2]|0,c[n>>2]|0,c[(c[i>>2]|0)+28912>>2]|0)|0;c[(c[i>>2]|0)+28904>>2]=f;f=($q(c[(c[i>>2]|0)+28904>>2]|0)|0)!=0;e=c[i>>2]|0;if(f){c[h>>2]=c[e+28904>>2];u=c[h>>2]|0;l=g;return u|0;}else{mE(e+160092|0,c[m>>2]|0,c[n>>2]|0)|0;c[(c[i>>2]|0)+28744>>2]=(c[(c[i>>2]|0)+28904>>2]|0)-(c[n>>2]|0);c[(c[i>>2]|0)+28804>>2]=1;c[h>>2]=0;u=c[h>>2]|0;l=g;return u|0;}break;}case 1:{mE((c[i>>2]|0)+160092+((c[(c[i>>2]|0)+28904>>2]|0)-(c[n>>2]|0))|0,c[m>>2]|0,c[n>>2]|0)|0;c[o>>2]=fs(c[i>>2]|0,(c[i>>2]|0)+160092|0,c[(c[i>>2]|0)+28904>>2]|0)|0;if($q(c[o>>2]|0)|0){c[h>>2]=c[o>>2];u=c[h>>2]|0;l=g;return u|0;}else{c[(c[i>>2]|0)+28744>>2]=3;c[(c[i>>2]|0)+28804>>2]=2;c[h>>2]=0;u=c[h>>2]|0;l=g;return u|0;}break;}case 2:{c[q>>2]=br(c[m>>2]|0,3,p)|0;o=($q(c[q>>2]|0)|0)!=0;e=c[q>>2]|0;if(o){c[h>>2]=e;u=c[h>>2]|0;l=g;return u|0;}c[(c[i>>2]|0)+28744>>2]=e;c[(c[i>>2]|0)+28800>>2]=c[p>>2];c[(c[i>>2]|0)+28936>>2]=c[p+8>>2];e=(c[p+4>>2]|0)!=0;if(c[q>>2]|0){c[(c[i>>2]|0)+28804>>2]=e?4:3;c[h>>2]=0;u=c[h>>2]|0;l=g;return u|0;}q=c[i>>2]|0;do{if(e){p=(c[i>>2]|0)+28744|0;if(c[q+28752+32>>2]|0){c[p>>2]=4;c[(c[i>>2]|0)+28804>>2]=5;break;}else{c[p>>2]=0;c[(c[i>>2]|0)+28804>>2]=0;break;}}else{c[q+28744>>2]=3;c[(c[i>>2]|0)+28804>>2]=2;}}while(0);c[h>>2]=0;u=c[h>>2]|0;l=g;return u|0;}case 3:case 4:{switch(c[(c[i>>2]|0)+28800>>2]|0){case 2:{c[r>>2]=Cr(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,1)|0;break;}case 0:{c[r>>2]=gs(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;break;}case 1:{c[r>>2]=yx(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[(c[i>>2]|0)+28936>>2]|0)|0;break;}default:{c[h>>2]=-20;u=c[h>>2]|0;l=g;return u|0;}}k=($q(c[r>>2]|0)|0)!=0;q=c[r>>2]|0;if(k){c[h>>2]=q;u=c[h>>2]|0;l=g;return u|0;}k=(c[i>>2]|0)+28792|0;e=k;p=k;c[p>>2]=dE(c[e>>2]|0,c[e+4>>2]|0,q|0,0)|0;c[p+4>>2]=y;if(c[(c[i>>2]|0)+28752+32>>2]|0)Nh((c[i>>2]|0)+28816|0,c[j>>2]|0,c[r>>2]|0)|0;p=c[i>>2]|0;do{if((c[(c[i>>2]|0)+28804>>2]|0)==4){q=p+28752|0;if(((c[q>>2]|0)!=-1?1:(c[q+4>>2]|0)!=-1)?(q=(c[i>>2]|0)+28792|0,e=(c[i>>2]|0)+28752|0,(c[q>>2]|0)!=(c[e>>2]|0)?1:(c[q+4>>2]|0)!=(c[e+4>>2]|0)):0){c[h>>2]=-20;u=c[h>>2]|0;l=g;return u|0;}e=(c[i>>2]|0)+28744|0;if(c[(c[i>>2]|0)+28752+32>>2]|0){c[e>>2]=4;c[(c[i>>2]|0)+28804>>2]=5;break;}else{c[e>>2]=0;c[(c[i>>2]|0)+28804>>2]=0;break;}}else{c[p+28804>>2]=2;c[(c[i>>2]|0)+28744>>2]=3;c[(c[i>>2]|0)+28728>>2]=(c[j>>2]|0)+(c[r>>2]|0);}}while(0);c[h>>2]=c[r>>2];u=c[h>>2]|0;l=g;return u|0;}case 5:{c[s>>2]=Oh((c[i>>2]|0)+28816|0)|0;c[t>>2]=hq(c[m>>2]|0)|0;if((c[t>>2]|0)!=(c[s>>2]|0)){c[h>>2]=-22;u=c[h>>2]|0;l=g;return u|0;}else{c[(c[i>>2]|0)+28744>>2]=0;c[(c[i>>2]|0)+28804>>2]=0;c[h>>2]=0;u=c[h>>2]|0;l=g;return u|0;}break;}case 6:{mE((c[i>>2]|0)+160092+(8-(c[n>>2]|0))|0,c[m>>2]|0,c[n>>2]|0)|0;n=hq((c[i>>2]|0)+160092+4|0)|0;c[(c[i>>2]|0)+28744>>2]=n;c[(c[i>>2]|0)+28804>>2]=7;c[h>>2]=0;u=c[h>>2]|0;l=g;return u|0;}case 7:{c[(c[i>>2]|0)+28744>>2]=0;c[(c[i>>2]|0)+28804>>2]=0;c[h>>2]=0;u=c[h>>2]|0;l=g;return u|0;}default:{c[h>>2]=-1;u=c[h>>2]|0;l=g;return u|0;}}return 0;}function yx(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;h=l;l=l+32|0;i=h+20|0;j=h+16|0;k=h+12|0;m=h+8|0;n=h+4|0;o=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;if((c[n>>2]|0)!=1){c[i>>2]=-72;p=c[i>>2]|0;l=h;return p|0;}if((c[o>>2]|0)>>>0>(c[k>>2]|0)>>>0){c[i>>2]=-70;p=c[i>>2]|0;l=h;return p|0;}else{oE(c[j>>2]|0,(d[c[m>>2]>>0]|0)&255|0,c[o>>2]|0)|0;c[i>>2]=c[o>>2];p=c[i>>2]|0;l=h;return p|0;}return 0;}function zx(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;g=l;l=l+48|0;h=g+24|0;i=g+20|0;j=g+16|0;k=g+12|0;m=g+8|0;n=g+4|0;o=g;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;if(((c[f>>2]|0)!=0^1)&1^((c[f+4>>2]|0)!=0^1)&1|0){c[i>>2]=0;p=c[i>>2]|0;l=g;return p|0;};c[h>>2]=c[f>>2];c[h+4>>2]=c[f+4>>2];c[h+8>>2]=c[f+8>>2];c[o>>2]=Rh(28744,h)|0;if(!(c[o>>2]|0)){c[i>>2]=0;p=c[i>>2]|0;l=g;return p|0;}h=(c[o>>2]|0)+28732|0;c[h>>2]=c[f>>2];c[h+4>>2]=c[f+4>>2];c[h+8>>2]=c[f+8>>2];f=($q(Ax(c[o>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0)|0)|0)!=0;n=c[o>>2]|0;if(f){Yp(n)|0;c[i>>2]=0;p=c[i>>2]|0;l=g;return p|0;}else{c[i>>2]=n;p=c[i>>2]|0;l=g;return p|0;}return 0;}function Ax(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;g=l;l=l+48|0;h=g+32|0;i=g+28|0;j=g+24|0;k=g+20|0;m=g+16|0;n=g+12|0;o=g+8|0;p=g+4|0;q=g;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;do{if((c[n>>2]|0)!=1&(c[k>>2]|0)!=0&(c[m>>2]|0)!=0){f=c[m>>2]|0;e=(c[j>>2]|0)+28732|0;c[h>>2]=c[e>>2];c[h+4>>2]=c[e+4>>2];c[h+8>>2]=c[e+8>>2];c[p>>2]=Rh(f,h)|0;c[c[j>>2]>>2]=c[p>>2];c[(c[j>>2]|0)+4>>2]=c[p>>2];if(c[p>>2]|0){mE(c[p>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;break;}c[i>>2]=-64;r=c[i>>2]|0;l=g;return r|0;}else{c[c[j>>2]>>2]=0;c[(c[j>>2]|0)+4>>2]=c[k>>2];}}while(0);c[(c[j>>2]|0)+8>>2]=c[m>>2];c[(c[j>>2]|0)+12+10264>>2]=201326604;c[q>>2]=Bx(c[j>>2]|0,c[o>>2]|0)|0;if($q(c[q>>2]|0)|0){c[i>>2]=c[q>>2];r=c[i>>2]|0;l=g;return r|0;}else{c[i>>2]=0;r=c[i>>2]|0;l=g;return r|0;}return 0;}function Bx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=l;l=l+32|0;e=d+16|0;f=d+12|0;g=d+8|0;h=d+4|0;i=d;c[f>>2]=a;c[g>>2]=b;c[(c[f>>2]|0)+28724>>2]=0;c[(c[f>>2]|0)+28728>>2]=0;do{if((c[g>>2]|0)!=1){if((c[(c[f>>2]|0)+8>>2]|0)>>>0<8)if((c[g>>2]|0)==2){c[e>>2]=-30;break;}else{c[e>>2]=0;break;}c[h>>2]=hq(c[(c[f>>2]|0)+4>>2]|0)|0;if((c[h>>2]|0)!=-332356553){if((c[g>>2]|0)==2){c[e>>2]=-30;break;}else{c[e>>2]=0;break;}}else{b=hq((c[(c[f>>2]|0)+4>>2]|0)+4|0)|0;c[(c[f>>2]|0)+28724>>2]=b;c[i>>2]=ls((c[f>>2]|0)+12|0,c[(c[f>>2]|0)+4>>2]|0,c[(c[f>>2]|0)+8>>2]|0)|0;if($q(c[i>>2]|0)|0){c[e>>2]=-30;break;}else{c[(c[f>>2]|0)+28728>>2]=1;c[e>>2]=0;break;}}}else c[e>>2]=0;}while(0);l=d;return c[e>>2]|0;}function Cx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+32|0;e=d+8|0;f=d+4|0;g=d;c[f>>2]=a;c[g>>2]=b;b=c[f>>2]|0;f=c[g>>2]|0;c[e>>2]=c[5415];c[e+4>>2]=c[5416];c[e+8>>2]=c[5417];g=zx(b,f,0,0,e)|0;l=d;return g|0;}function Dx(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+20|0;j=h+16|0;k=h+12|0;m=h+8|0;n=h+4|0;o=h;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;g=_r(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,0,0,c[o>>2]|0)|0;l=h;return g|0;}function Ex(){var a=0,b=0,d=0;a=l;l=l+16|0;b=a;c[b>>2]=c[5412];c[b+4>>2]=c[5413];c[b+8>>2]=c[5414];d=Fx(b)|0;l=a;return d|0;}function Fx(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=c[a>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];a=Vp(d)|0;l=b;return a|0;}function Gx(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=Xp(c[d>>2]|0)|0;l=b;return a|0;}function Hx(){return 131075;}function Ix(){return 131072;}function Jx(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;g=l;l=l+48|0;h=g+24|0;i=g+20|0;j=g+16|0;k=g+12|0;m=g+8|0;n=g+4|0;o=g;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;if(c[(c[j>>2]|0)+28956>>2]|0){c[i>>2]=-60;p=c[i>>2]|0;l=g;return p|0;}Yp(c[(c[j>>2]|0)+28948>>2]|0)|0;if((c[k>>2]|0)!=0&(c[m>>2]|0)>>>0>=8){f=c[k>>2]|0;k=c[m>>2]|0;m=c[n>>2]|0;n=c[o>>2]|0;o=(c[j>>2]|0)+28920|0;c[h>>2]=c[o>>2];c[h+4>>2]=c[o+4>>2];c[h+8>>2]=c[o+8>>2];o=zx(f,k,m,n,h)|0;c[(c[j>>2]|0)+28948>>2]=o;if(!(c[(c[j>>2]|0)+28948>>2]|0)){c[i>>2]=-64;p=c[i>>2]|0;l=g;return p|0;}}else c[(c[j>>2]|0)+28948>>2]=0;c[(c[j>>2]|0)+28952>>2]=c[(c[j>>2]|0)+28948>>2];c[i>>2]=0;p=c[i>>2]|0;l=g;return p|0;}function Kx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=Jx(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0,0,0)|0;l=e;return d|0;}function Lx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[(c[g>>2]|0)+28956>>2]=0;c[j>>2]=Kx(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0;if($q(c[j>>2]|0)|0){c[f>>2]=c[j>>2];k=c[f>>2]|0;l=e;return k|0;}else{c[f>>2]=5;k=c[f>>2]|0;l=e;return k|0;}return 0;}function Mx(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=Lx(c[d>>2]|0,0,0)|0;l=b;return a|0;}function Nx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=Mx(c[e>>2]|0)|0;c[(c[e>>2]|0)+28952>>2]=c[f>>2];l=d;return c[g>>2]|0;}function Ox(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;c[(c[d>>2]|0)+28956>>2]=1;c[(c[d>>2]|0)+28988>>2]=0;c[(c[d>>2]|0)+28984>>2]=0;c[(c[d>>2]|0)+28968>>2]=0;c[(c[d>>2]|0)+28992>>2]=0;c[(c[d>>2]|0)+29004>>2]=0;c[(c[d>>2]|0)+29008>>2]=0;l=b;return 5;}function Px(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;f=l;l=l+48|0;g=f+40|0;h=f+24|0;i=f+16|0;j=f+36|0;k=f+8|0;m=f;n=f+32|0;o=h;c[o>>2]=a;c[o+4>>2]=b;b=i;c[b>>2]=d;c[b+4>>2]=e;e=h;b=c[e+4>>2]|0;d=b>>>0<0|(b|0)==0&(c[e>>2]|0)>>>0<131072;e=h;b=c[e+4>>2]|0;b=d?c[e>>2]|0:131072;c[j>>2]=b;b=h;h=dE(c[b>>2]|0,c[b+4>>2]|0,c[j>>2]|0,0)|0;j=dE(h|0,y|0,16,0)|0;h=k;c[h>>2]=j;c[h+4>>2]=y;h=i;j=c[h+4>>2]|0;b=k;e=c[b+4>>2]|0;d=j>>>0<e>>>0|((j|0)==(e|0)?(c[h>>2]|0)>>>0<(c[b>>2]|0)>>>0:0);b=i;i=k;k=d?c[b+4>>2]|0:c[i+4>>2]|0;h=m;c[h>>2]=d?c[b>>2]|0:c[i>>2]|0;c[h+4>>2]=k;c[n>>2]=c[m>>2];k=m;if(0!=(c[k+4>>2]|0)?1:(c[n>>2]|0)!=(c[k>>2]|0)){c[g>>2]=-16;p=c[g>>2]|0;l=f;return p|0;}else{c[g>>2]=c[n>>2];p=c[g>>2]|0;l=f;return p|0;}return 0;}function Qx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0;e=l;l=l+176|0;f=e+152|0;g=e+148|0;h=e+144|0;i=e+140|0;j=e+136|0;k=e+132|0;m=e+128|0;n=e+124|0;o=e+120|0;p=e+116|0;q=e+112|0;r=e+108|0;s=e+104|0;t=e+100|0;u=e+96|0;v=e+92|0;w=e+88|0;x=e+84|0;y=e+80|0;z=e+76|0;A=e+72|0;B=e+68|0;C=e+64|0;D=e+60|0;E=e+56|0;F=e+52|0;G=e+48|0;H=e+44|0;I=e+40|0;J=e+36|0;K=e+32|0;L=e+28|0;M=e+24|0;N=e+20|0;O=e+16|0;P=e+12|0;Q=e+8|0;R=e+4|0;S=e;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=(c[c[j>>2]>>2]|0)+(c[(c[j>>2]|0)+8>>2]|0);c[m>>2]=(c[c[j>>2]>>2]|0)+(c[(c[j>>2]|0)+4>>2]|0);c[n>>2]=c[k>>2];c[o>>2]=(c[c[i>>2]>>2]|0)+(c[(c[i>>2]|0)+8>>2]|0);c[p>>2]=(c[c[i>>2]>>2]|0)+(c[(c[i>>2]|0)+4>>2]|0);c[q>>2]=c[o>>2];c[r>>2]=1;if((c[(c[j>>2]|0)+8>>2]|0)>>>0>(c[(c[j>>2]|0)+4>>2]|0)>>>0){c[g>>2]=-72;T=c[g>>2]|0;l=e;return T|0;}if((c[(c[i>>2]|0)+8>>2]|0)>>>0>(c[(c[i>>2]|0)+4>>2]|0)>>>0){c[g>>2]=-70;T=c[g>>2]|0;l=e;return T|0;}a:while(1){if(!(c[r>>2]|0)){U=98;break;}switch(c[(c[h>>2]|0)+28956>>2]|0){case 0:{Ox(c[h>>2]|0)|0;U=9;break;}case 1:{U=9;break;}case 2:{U=64;break;}case 3:{U=76;break;}case 4:{U=91;break;}default:{U=96;break a;}}do{if((U|0)==9){U=0;V=c[h>>2]|0;if(c[(c[h>>2]|0)+29004>>2]|0){U=10;break a;}c[t>>2]=qq(V+28752|0,(c[h>>2]|0)+160092|0,c[(c[h>>2]|0)+28992>>2]|0,c[(c[h>>2]|0)+28912>>2]|0)|0;if($q(c[t>>2]|0)|0){U=16;break a;}if(c[t>>2]|0){c[z>>2]=(c[t>>2]|0)-(c[(c[h>>2]|0)+28992>>2]|0);c[A>>2]=(c[m>>2]|0)-(c[n>>2]|0);if((c[z>>2]|0)>>>0>(c[A>>2]|0)>>>0){U=31;break a;}mE((c[h>>2]|0)+160092+(c[(c[h>>2]|0)+28992>>2]|0)|0,c[n>>2]|0,c[z>>2]|0)|0;c[(c[h>>2]|0)+28992>>2]=c[t>>2];c[n>>2]=(c[n>>2]|0)+(c[z>>2]|0);break;}d=(c[h>>2]|0)+28752|0;if((((c[d>>2]|0)!=0|(c[d+4>>2]|0)!=0?(d=(c[h>>2]|0)+28752+8|0,(c[d>>2]|0)!=0|(c[d+4>>2]|0)!=0):0)?(d=(c[h>>2]|0)+28752|0,b=c[d+4>>2]|0,0>b>>>0|(0==(b|0)?((c[p>>2]|0)-(c[q>>2]|0)|0)>>>0>=(c[d>>2]|0)>>>0:0)):0)?(c[B>>2]=_q(c[k>>2]|0,(c[m>>2]|0)-(c[k>>2]|0)|0)|0,(c[B>>2]|0)>>>0<=((c[m>>2]|0)-(c[k>>2]|0)|0)>>>0):0){c[C>>2]=Dx(c[h>>2]|0,c[q>>2]|0,(c[p>>2]|0)-(c[q>>2]|0)|0,c[k>>2]|0,c[B>>2]|0,c[(c[h>>2]|0)+28952>>2]|0)|0;if($q(c[C>>2]|0)|0){U=40;break a;}c[n>>2]=(c[k>>2]|0)+(c[B>>2]|0);c[q>>2]=(c[q>>2]|0)+(c[C>>2]|0);c[(c[h>>2]|0)+28744>>2]=0;c[(c[h>>2]|0)+28956>>2]=0;c[r>>2]=0;break;}c[D>>2]=cs(c[h>>2]|0,c[(c[h>>2]|0)+28952>>2]|0)|0;if($q(c[D>>2]|0)|0){U=43;break a;}d=((hq((c[h>>2]|0)+160092|0)|0)&-16|0)==407710288;b=c[h>>2]|0;if(d){d=hq(b+160092+4|0)|0;c[(c[h>>2]|0)+28744>>2]=d;c[(c[h>>2]|0)+28804>>2]=7;}else{c[E>>2]=fs(b,(c[h>>2]|0)+160092|0,c[(c[h>>2]|0)+28992>>2]|0)|0;if($q(c[E>>2]|0)|0){U=47;break a;}c[(c[h>>2]|0)+28744>>2]=3;c[(c[h>>2]|0)+28804>>2]=2;}b=(c[h>>2]|0)+28752+8|0;d=c[b+4>>2]|0;if(d>>>0>0|(d|0)==0&(c[b>>2]|0)>>>0>1024){b=(c[h>>2]|0)+28752+8|0;W=c[b>>2]|0;X=c[b+4>>2]|0;}else{W=1024;X=0;}b=(c[h>>2]|0)+28752+8|0;c[b>>2]=W;c[b+4>>2]=X;b=(c[h>>2]|0)+28752+8|0;d=c[b+4>>2]|0;if(d>>>0>0|((d|0)==0?(c[b>>2]|0)>>>0>(c[(c[h>>2]|0)+28972>>2]|0)>>>0:0)){U=52;break a;}if((c[(c[h>>2]|0)+28752+16>>2]|0)>>>0>4)Y=c[(c[h>>2]|0)+28752+16>>2]|0;else Y=4;c[F>>2]=Y;b=(c[h>>2]|0)+28752+8|0;d=(c[h>>2]|0)+28752|0;c[G>>2]=Px(c[b>>2]|0,c[b+4>>2]|0,c[d>>2]|0,c[d+4>>2]|0)|0;if(!((c[(c[h>>2]|0)+28964>>2]|0)>>>0>=(c[F>>2]|0)>>>0?(c[(c[h>>2]|0)+28980>>2]|0)>>>0>=(c[G>>2]|0)>>>0:0)){c[H>>2]=(c[F>>2]|0)+(c[G>>2]|0);if(c[(c[h>>2]|0)+28940>>2]|0){if((c[H>>2]|0)>>>0>((c[(c[h>>2]|0)+28940>>2]|0)-160112|0)>>>0){U=59;break a;}}else{d=c[(c[h>>2]|0)+28960>>2]|0;b=(c[h>>2]|0)+28920|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];Th(d,f);c[(c[h>>2]|0)+28964>>2]=0;c[(c[h>>2]|0)+28980>>2]=0;d=c[H>>2]|0;b=(c[h>>2]|0)+28920|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];b=Rh(d,f)|0;c[(c[h>>2]|0)+28960>>2]=b;if(!(c[(c[h>>2]|0)+28960>>2]|0)){U=61;break a;}}c[(c[h>>2]|0)+28964>>2]=c[F>>2];c[(c[h>>2]|0)+28976>>2]=(c[(c[h>>2]|0)+28960>>2]|0)+(c[(c[h>>2]|0)+28964>>2]|0);c[(c[h>>2]|0)+28980>>2]=c[G>>2];}c[(c[h>>2]|0)+28956>>2]=2;U=64;}}while(0);do{if((U|0)==64){U=0;c[I>>2]=vx(c[h>>2]|0)|0;if(!(c[I>>2]|0)){c[(c[h>>2]|0)+28956>>2]=0;c[r>>2]=0;break;}if(((c[m>>2]|0)-(c[n>>2]|0)|0)>>>0<(c[I>>2]|0)>>>0)if((c[n>>2]|0)==(c[m>>2]|0)){c[r>>2]=0;break;}else{c[(c[h>>2]|0)+28956>>2]=3;U=76;break;}c[J>>2]=Tx(c[h>>2]|0)|0;if(c[J>>2]|0)Z=0;else Z=(c[(c[h>>2]|0)+28980>>2]|0)-(c[(c[h>>2]|0)+28984>>2]|0)|0;c[K>>2]=xx(c[h>>2]|0,(c[(c[h>>2]|0)+28976>>2]|0)+(c[(c[h>>2]|0)+28984>>2]|0)|0,Z,c[n>>2]|0,c[I>>2]|0)|0;if($q(c[K>>2]|0)|0){U=70;break a;}c[n>>2]=(c[n>>2]|0)+(c[I>>2]|0);if((c[K>>2]|0)!=0|(c[J>>2]|0)!=0){c[(c[h>>2]|0)+28988>>2]=(c[(c[h>>2]|0)+28984>>2]|0)+(c[K>>2]|0);c[(c[h>>2]|0)+28956>>2]=4;}}}while(0);do{if((U|0)==76){U=0;c[L>>2]=vx(c[h>>2]|0)|0;c[M>>2]=(c[L>>2]|0)-(c[(c[h>>2]|0)+28968>>2]|0);c[N>>2]=Tx(c[h>>2]|0)|0;b=c[M>>2]|0;if(c[N>>2]|0){if(b>>>0<((c[m>>2]|0)-(c[n>>2]|0)|0)>>>0)_=c[M>>2]|0;else _=(c[m>>2]|0)-(c[n>>2]|0)|0;c[O>>2]=_;}else{if(b>>>0>((c[(c[h>>2]|0)+28964>>2]|0)-(c[(c[h>>2]|0)+28968>>2]|0)|0)>>>0){U=82;break a;}c[O>>2]=Ux((c[(c[h>>2]|0)+28960>>2]|0)+(c[(c[h>>2]|0)+28968>>2]|0)|0,c[M>>2]|0,c[n>>2]|0,(c[m>>2]|0)-(c[n>>2]|0)|0)|0;}c[n>>2]=(c[n>>2]|0)+(c[O>>2]|0);b=(c[h>>2]|0)+28968|0;c[b>>2]=(c[b>>2]|0)+(c[O>>2]|0);if((c[O>>2]|0)>>>0<(c[M>>2]|0)>>>0){c[r>>2]=0;break;}c[P>>2]=xx(c[h>>2]|0,(c[(c[h>>2]|0)+28976>>2]|0)+(c[(c[h>>2]|0)+28984>>2]|0)|0,(c[(c[h>>2]|0)+28980>>2]|0)-(c[(c[h>>2]|0)+28984>>2]|0)|0,c[(c[h>>2]|0)+28960>>2]|0,c[L>>2]|0)|0;if($q(c[P>>2]|0)|0){U=87;break a;}c[(c[h>>2]|0)+28968>>2]=0;b=c[h>>2]|0;if((c[P>>2]|0)!=0|(c[N>>2]|0)!=0){c[(c[h>>2]|0)+28988>>2]=(c[b+28984>>2]|0)+(c[P>>2]|0);c[(c[h>>2]|0)+28956>>2]=4;U=91;break;}else{c[b+28956>>2]=2;break;}}}while(0);do{if((U|0)==91){U=0;c[Q>>2]=(c[(c[h>>2]|0)+28988>>2]|0)-(c[(c[h>>2]|0)+28984>>2]|0);c[R>>2]=Ux(c[q>>2]|0,(c[p>>2]|0)-(c[q>>2]|0)|0,(c[(c[h>>2]|0)+28976>>2]|0)+(c[(c[h>>2]|0)+28984>>2]|0)|0,c[Q>>2]|0)|0;c[q>>2]=(c[q>>2]|0)+(c[R>>2]|0);b=(c[h>>2]|0)+28984|0;c[b>>2]=(c[b>>2]|0)+(c[R>>2]|0);if((c[R>>2]|0)!=(c[Q>>2]|0)){c[r>>2]=0;break;}c[(c[h>>2]|0)+28956>>2]=2;b=(c[h>>2]|0)+28752|0;d=c[b+4>>2]|0;if(0<d>>>0|(0==(d|0)?(c[(c[h>>2]|0)+28980>>2]|0)>>>0<(c[b>>2]|0)>>>0:0)?((c[(c[h>>2]|0)+28984>>2]|0)+(c[(c[h>>2]|0)+28752+16>>2]|0)|0)>>>0>(c[(c[h>>2]|0)+28980>>2]|0)>>>0:0){c[(c[h>>2]|0)+28988>>2]=0;c[(c[h>>2]|0)+28984>>2]=0;}}}while(0);}switch(U|0){case 10:{if(c[V+28940>>2]|0){c[g>>2]=-64;T=c[g>>2]|0;l=e;return T|0;}c[s>>2]=Rx(c[(c[h>>2]|0)+28996>>2]|0,c[(c[h>>2]|0)+29004>>2]|0,c[i>>2]|0,c[j>>2]|0)|0;if(!(c[s>>2]|0))c[(c[h>>2]|0)+28956>>2]=0;c[g>>2]=c[s>>2];T=c[g>>2]|0;l=e;return T|0;}case 16:{c[u>>2]=iq(c[k>>2]|0,(c[m>>2]|0)-(c[k>>2]|0)|0)|0;if(!(c[u>>2]|0)){c[g>>2]=c[t>>2];T=c[g>>2]|0;l=e;return T|0;}if(c[(c[h>>2]|0)+28952>>2]|0)$=c[(c[(c[h>>2]|0)+28952>>2]|0)+4>>2]|0;else $=0;c[v>>2]=$;if(c[(c[h>>2]|0)+28952>>2]|0)aa=c[(c[(c[h>>2]|0)+28952>>2]|0)+8>>2]|0;else aa=0;c[w>>2]=aa;if(c[(c[h>>2]|0)+28940>>2]|0){c[g>>2]=-64;T=c[g>>2]|0;l=e;return T|0;}c[x>>2]=Sx((c[h>>2]|0)+28996|0,c[(c[h>>2]|0)+29e3>>2]|0,c[u>>2]|0,c[v>>2]|0,c[w>>2]|0)|0;if($q(c[x>>2]|0)|0){c[g>>2]=c[x>>2];T=c[g>>2]|0;l=e;return T|0;}x=c[u>>2]|0;c[(c[h>>2]|0)+29e3>>2]=x;c[(c[h>>2]|0)+29004>>2]=x;c[y>>2]=Rx(c[(c[h>>2]|0)+28996>>2]|0,c[u>>2]|0,c[i>>2]|0,c[j>>2]|0)|0;if(!(c[y>>2]|0))c[(c[h>>2]|0)+28956>>2]=0;c[g>>2]=c[y>>2];T=c[g>>2]|0;l=e;return T|0;}case 31:{if((c[A>>2]|0)>>>0>0){mE((c[h>>2]|0)+160092+(c[(c[h>>2]|0)+28992>>2]|0)|0,c[n>>2]|0,c[A>>2]|0)|0;y=(c[h>>2]|0)+28992|0;c[y>>2]=(c[y>>2]|0)+(c[A>>2]|0);}c[(c[j>>2]|0)+8>>2]=c[(c[j>>2]|0)+4>>2];c[g>>2]=(6>(c[t>>2]|0)>>>0?6:c[t>>2]|0)-(c[(c[h>>2]|0)+28992>>2]|0)+3;T=c[g>>2]|0;l=e;return T|0;}case 40:{c[g>>2]=c[C>>2];T=c[g>>2]|0;l=e;return T|0;}case 43:{c[g>>2]=c[D>>2];T=c[g>>2]|0;l=e;return T|0;}case 47:{c[g>>2]=c[E>>2];T=c[g>>2]|0;l=e;return T|0;}case 52:{c[g>>2]=-16;T=c[g>>2]|0;l=e;return T|0;}case 59:{c[g>>2]=-64;T=c[g>>2]|0;l=e;return T|0;}case 61:{c[g>>2]=-64;T=c[g>>2]|0;l=e;return T|0;}case 70:{c[g>>2]=c[K>>2];T=c[g>>2]|0;l=e;return T|0;}case 82:{c[g>>2]=-20;T=c[g>>2]|0;l=e;return T|0;}case 87:{c[g>>2]=c[P>>2];T=c[g>>2]|0;l=e;return T|0;}case 96:{c[g>>2]=-1;T=c[g>>2]|0;l=e;return T|0;}case 98:{P=(c[j>>2]|0)+8|0;c[P>>2]=(c[P>>2]|0)+((c[n>>2]|0)-(c[k>>2]|0));k=(c[i>>2]|0)+8|0;c[k>>2]=(c[k>>2]|0)+((c[q>>2]|0)-(c[o>>2]|0));c[S>>2]=vx(c[h>>2]|0)|0;o=c[h>>2]|0;if(c[S>>2]|0){q=((wx(o)|0)==2&1)*3|0;c[S>>2]=(c[S>>2]|0)+q;c[S>>2]=(c[S>>2]|0)-(c[(c[h>>2]|0)+28968>>2]|0);c[g>>2]=c[S>>2];T=c[g>>2]|0;l=e;return T|0;}S=(c[(c[h>>2]|0)+29008>>2]|0)!=0;if((c[o+28988>>2]|0)!=(c[(c[h>>2]|0)+28984>>2]|0)){if(!S){o=(c[j>>2]|0)+8|0;c[o>>2]=(c[o>>2]|0)+-1;c[(c[h>>2]|0)+29008>>2]=1;}c[g>>2]=1;T=c[g>>2]|0;l=e;return T|0;}do{if(S){if((c[(c[j>>2]|0)+8>>2]|0)>>>0<(c[(c[j>>2]|0)+4>>2]|0)>>>0){o=(c[j>>2]|0)+8|0;c[o>>2]=(c[o>>2]|0)+1;break;}c[(c[h>>2]|0)+28956>>2]=2;c[g>>2]=1;T=c[g>>2]|0;l=e;return T|0;}}while(0);c[g>>2]=0;T=c[g>>2]|0;l=e;return T|0;}}return 0;}function Rx(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;f=l;l=l+128|0;g=f+112|0;h=f+108|0;i=f+104|0;j=f+100|0;k=f+96|0;m=f+92|0;n=f+88|0;o=f+84|0;p=f+80|0;q=f+76|0;r=f+72|0;s=f+68|0;t=f+64|0;u=f+60|0;v=f+56|0;w=f+52|0;x=f+48|0;y=f+44|0;z=f+40|0;A=f+36|0;B=f+32|0;C=f+28|0;D=f+24|0;E=f+20|0;F=f+16|0;G=f+12|0;H=f+8|0;I=f+4|0;J=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;switch(c[i>>2]|0){case 7:{c[E>>2]=c[h>>2];c[F>>2]=(c[c[k>>2]>>2]|0)+(c[(c[k>>2]|0)+8>>2]|0);c[G>>2]=(c[(c[k>>2]|0)+4>>2]|0)-(c[(c[k>>2]|0)+8>>2]|0);c[H>>2]=(c[c[j>>2]>>2]|0)+(c[(c[j>>2]|0)+8>>2]|0);c[I>>2]=(c[(c[j>>2]|0)+4>>2]|0)-(c[(c[j>>2]|0)+8>>2]|0);c[J>>2]=jy(c[E>>2]|0,c[H>>2]|0,I,c[F>>2]|0,G)|0;F=(c[j>>2]|0)+8|0;c[F>>2]=(c[F>>2]|0)+(c[I>>2]|0);I=(c[k>>2]|0)+8|0;c[I>>2]=(c[I>>2]|0)+(c[G>>2]|0);c[g>>2]=c[J>>2];K=c[g>>2]|0;l=f;return K|0;}case 6:{c[y>>2]=c[h>>2];c[z>>2]=(c[c[k>>2]>>2]|0)+(c[(c[k>>2]|0)+8>>2]|0);c[A>>2]=(c[(c[k>>2]|0)+4>>2]|0)-(c[(c[k>>2]|0)+8>>2]|0);c[B>>2]=(c[c[j>>2]>>2]|0)+(c[(c[j>>2]|0)+8>>2]|0);c[C>>2]=(c[(c[j>>2]|0)+4>>2]|0)-(c[(c[j>>2]|0)+8>>2]|0);c[D>>2]=iy(c[y>>2]|0,c[B>>2]|0,C,c[z>>2]|0,A)|0;z=(c[j>>2]|0)+8|0;c[z>>2]=(c[z>>2]|0)+(c[C>>2]|0);C=(c[k>>2]|0)+8|0;c[C>>2]=(c[C>>2]|0)+(c[A>>2]|0);c[g>>2]=c[D>>2];K=c[g>>2]|0;l=f;return K|0;}case 5:{c[s>>2]=c[h>>2];c[t>>2]=(c[c[k>>2]>>2]|0)+(c[(c[k>>2]|0)+8>>2]|0);c[u>>2]=(c[(c[k>>2]|0)+4>>2]|0)-(c[(c[k>>2]|0)+8>>2]|0);c[v>>2]=(c[c[j>>2]>>2]|0)+(c[(c[j>>2]|0)+8>>2]|0);c[w>>2]=(c[(c[j>>2]|0)+4>>2]|0)-(c[(c[j>>2]|0)+8>>2]|0);c[x>>2]=hy(c[s>>2]|0,c[v>>2]|0,w,c[t>>2]|0,u)|0;t=(c[j>>2]|0)+8|0;c[t>>2]=(c[t>>2]|0)+(c[w>>2]|0);w=(c[k>>2]|0)+8|0;c[w>>2]=(c[w>>2]|0)+(c[u>>2]|0);c[g>>2]=c[x>>2];K=c[g>>2]|0;l=f;return K|0;}case 4:{c[m>>2]=c[h>>2];c[n>>2]=(c[c[k>>2]>>2]|0)+(c[(c[k>>2]|0)+8>>2]|0);c[o>>2]=(c[(c[k>>2]|0)+4>>2]|0)-(c[(c[k>>2]|0)+8>>2]|0);c[p>>2]=(c[c[j>>2]>>2]|0)+(c[(c[j>>2]|0)+8>>2]|0);c[q>>2]=(c[(c[j>>2]|0)+4>>2]|0)-(c[(c[j>>2]|0)+8>>2]|0);c[r>>2]=gy(c[m>>2]|0,c[p>>2]|0,q,c[n>>2]|0,o)|0;n=(c[j>>2]|0)+8|0;c[n>>2]=(c[n>>2]|0)+(c[q>>2]|0);q=(c[k>>2]|0)+8|0;c[q>>2]=(c[q>>2]|0)+(c[o>>2]|0);c[g>>2]=c[r>>2];K=c[g>>2]|0;l=f;return K|0;}default:{c[g>>2]=-12;K=c[g>>2]|0;l=f;return K|0;}}return 0;}function Sx(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;g=l;l=l+48|0;h=g+36|0;i=g+32|0;j=g+28|0;k=g+24|0;m=g+20|0;n=g+16|0;o=g+12|0;p=g+8|0;q=g+4|0;r=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;if((c[j>>2]|0)!=(c[k>>2]|0))Zp(c[c[i>>2]>>2]|0,c[j>>2]|0)|0;switch(c[k>>2]|0){case 7:{if((c[j>>2]|0)!=(c[k>>2]|0))s=ay()|0;else s=c[c[i>>2]>>2]|0;c[r>>2]=s;if(!(c[r>>2]|0)){c[h>>2]=-64;t=c[h>>2]|0;l=g;return t|0;}else{by(c[r>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;c[c[i>>2]>>2]=c[r>>2];c[h>>2]=0;t=c[h>>2]|0;l=g;return t|0;}break;}case 6:{if((c[j>>2]|0)!=(c[k>>2]|0))u=_x()|0;else u=c[c[i>>2]>>2]|0;c[q>>2]=u;if(!(c[q>>2]|0)){c[h>>2]=-64;t=c[h>>2]|0;l=g;return t|0;}else{$x(c[q>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;c[c[i>>2]>>2]=c[q>>2];c[h>>2]=0;t=c[h>>2]|0;l=g;return t|0;}break;}case 5:{if((c[j>>2]|0)!=(c[k>>2]|0))v=Yx()|0;else v=c[c[i>>2]>>2]|0;c[p>>2]=v;if(!(c[p>>2]|0)){c[h>>2]=-64;t=c[h>>2]|0;l=g;return t|0;}else{Zx(c[p>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;c[c[i>>2]>>2]=c[p>>2];c[h>>2]=0;t=c[h>>2]|0;l=g;return t|0;}break;}case 4:{if((c[j>>2]|0)!=(c[k>>2]|0))w=Vx()|0;else w=c[c[i>>2]>>2]|0;c[o>>2]=w;if(!(c[o>>2]|0)){c[h>>2]=-64;t=c[h>>2]|0;l=g;return t|0;}else{Wx(c[o>>2]|0)|0;Xx(c[o>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;c[c[i>>2]>>2]=c[o>>2];c[h>>2]=0;t=c[h>>2]|0;l=g;return t|0;}break;}default:{c[h>>2]=0;t=c[h>>2]|0;l=g;return t|0;}}return 0;}function Tx(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return(c[(c[d>>2]|0)+28804>>2]|0)==7|0;}function Ux(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=(c[h>>2]|0)>>>0<(c[j>>2]|0)>>>0?c[h>>2]|0:c[j>>2]|0;mE(c[g>>2]|0,c[i>>2]|0,c[k>>2]|0)|0;l=f;return c[k>>2]|0;}function Vx(){return fy()|0;}function Wx(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=ey(c[d>>2]|0)|0;l=b;return a|0;}function Xx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=dy(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;l=e;return d|0;}function Yx(){var a=0,b=0,d=0,e=0,f=0,g=0;a=l;l=l+16|0;b=a+4|0;d=a;c[d>>2]=Cy(96)|0;if(!(c[d>>2]|0)){c[b>>2]=0;e=c[b>>2]|0;l=a;return e|0;}else{f=c[d>>2]|0;g=f+96|0;do{c[f>>2]=0;f=f+4|0;}while((f|0)<(g|0));f=ns()|0;c[c[d>>2]>>2]=f;c[(c[d>>2]|0)+80>>2]=0;c[b>>2]=c[d>>2];e=c[b>>2]|0;l=a;return e|0;}return 0;}function Zx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[(c[f>>2]|0)+80>>2]=1;c[(c[f>>2]|0)+72>>2]=0;c[(c[f>>2]|0)+68>>2]=0;c[(c[f>>2]|0)+56>>2]=0;c[(c[f>>2]|0)+76>>2]=0;d=Su(c[c[f>>2]>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;l=e;return d|0;}function _x(){var a=0,b=0,d=0,e=0,f=0,g=0;a=l;l=l+16|0;b=a+4|0;d=a;c[d>>2]=Cy(80)|0;if(!(c[d>>2]|0)){c[b>>2]=0;e=c[b>>2]|0;l=a;return e|0;}else{f=c[d>>2]|0;g=f+80|0;do{c[f>>2]=0;f=f+4|0;}while((f|0)<(g|0));f=ps()|0;c[c[d>>2]>>2]=f;c[(c[d>>2]|0)+24>>2]=0;c[b>>2]=c[d>>2];e=c[b>>2]|0;l=a;return e|0;}return 0;}function $x(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[(c[f>>2]|0)+24>>2]=1;c[(c[f>>2]|0)+52>>2]=0;c[(c[f>>2]|0)+48>>2]=0;c[(c[f>>2]|0)+36>>2]=0;c[(c[f>>2]|0)+76>>2]=0;d=Jt(c[c[f>>2]>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;l=e;return d|0;}function ay(){var a=0,b=0,d=0;a=l;l=l+16|0;b=a;c[b>>2]=c[2988];c[b+4>>2]=c[2989];c[b+8>>2]=c[2990];d=cy(b)|0;l=a;return d|0;}function by(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[(c[f>>2]|0)+32>>2]=1;c[(c[f>>2]|0)+60>>2]=0;c[(c[f>>2]|0)+56>>2]=0;c[(c[f>>2]|0)+44>>2]=0;c[(c[f>>2]|0)+88>>2]=0;d=ts(c[c[f>>2]>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;l=e;return d|0;}function cy(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+32|0;d=b+8|0;e=b+4|0;f=b;if((c[a>>2]|0)==0?(c[a+4>>2]|0)==0:0){c[a>>2]=c[2988];c[a+4>>2]=c[2989];c[a+8>>2]=c[2990];}if(c[a>>2]|0?c[a+4>>2]|0:0){c[f>>2]=qc[c[a>>2]&63](c[a+8>>2]|0,104)|0;if(!(c[f>>2]|0)){c[e>>2]=0;g=c[e>>2]|0;l=b;return g|0;}h=c[f>>2]|0;i=h+104|0;do{c[h>>2]=0;h=h+4|0;}while((h|0)<(i|0));h=(c[f>>2]|0)+92|0;c[h>>2]=c[a>>2];c[h+4>>2]=c[a+4>>2];c[h+8>>2]=c[a+8>>2];c[d>>2]=c[a>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];a=Gt(d)|0;c[c[f>>2]>>2]=a;a=c[f>>2]|0;if(!(c[c[f>>2]>>2]|0)){bq(a)|0;c[e>>2]=0;g=c[e>>2]|0;l=b;return g|0;}else{c[a+32>>2]=0;c[e>>2]=c[f>>2];g=c[e>>2]|0;l=b;return g|0;}}c[e>>2]=0;g=c[e>>2]|0;l=b;return g|0;}function dy(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[(c[f>>2]|0)+72>>2]=c[g>>2];c[(c[f>>2]|0)+76>>2]=c[h>>2];l=e;return 0;}function ey(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;c[(c[d>>2]|0)+80>>2]=1;c[(c[d>>2]|0)+76>>2]=0;c[(c[d>>2]|0)+64>>2]=0;c[(c[d>>2]|0)+60>>2]=0;c[(c[d>>2]|0)+48>>2]=0;c[(c[d>>2]|0)+68>>2]=0;a=kw(c[c[d>>2]>>2]|0)|0;l=b;return a|0;}function fy(){var a=0,b=0,d=0,e=0,f=0,g=0;a=l;l=l+16|0;b=a+4|0;d=a;c[d>>2]=Cy(96)|0;if(!(c[d>>2]|0)){c[b>>2]=0;e=c[b>>2]|0;l=a;return e|0;}else{f=c[d>>2]|0;g=f+96|0;do{c[f>>2]=0;f=f+4|0;}while((f|0)<(g|0));f=hw()|0;c[c[d>>2]>>2]=f;c[(c[d>>2]|0)+80>>2]=0;c[b>>2]=c[d>>2];e=c[b>>2]|0;l=a;return e|0;}return 0;}function gy(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0;g=l;l=l+32|0;h=g+16|0;i=g+12|0;j=g+8|0;k=g+4|0;m=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;f=uy(c[h>>2]|0,c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;l=g;return f|0;}function Ko(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;i=l;l=l+48|0;j=i+32|0;k=i+28|0;m=i+24|0;n=i+20|0;o=i+16|0;p=i+12|0;q=i+8|0;r=i+4|0;s=i;c[m>>2]=a;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[r>>2]=g;g=c[m>>2]|0;f=c[r>>2]|0;r=c[q>>2]|0;c[j>>2]=c[h>>2];c[j+4>>2]=c[h+4>>2];c[j+8>>2]=c[h+8>>2];c[s>>2]=Jo(g,f,j,r,0)|0;if(wj(c[s>>2]|0)|0){c[k>>2]=c[s>>2];t=c[k>>2]|0;l=i;return t|0;}else{c[k>>2]=Bo(c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0)|0;t=c[k>>2]|0;l=i;return t|0;}return 0;}function Lo(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;h=l;l=l+48|0;i=h+24|0;j=h+20|0;k=h+16|0;m=h+12|0;n=h+8|0;o=h+4|0;p=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;g=c[j>>2]|0;j=c[k>>2]|0;k=c[m>>2]|0;m=c[n>>2]|0;n=c[o>>2]|0;o=c[p>>2]|0;c[i>>2]=c[2981];c[i+4>>2]=c[2982];c[i+8>>2]=c[2983];p=Ko(g,j,k,m,n,o,i)|0;l=h;return p|0;}function Mo(){var a=0,b=0,d=0;a=l;l=l+16|0;b=a;c[b>>2]=c[5406];c[b+4>>2]=c[5407];c[b+8>>2]=c[5408];d=No(b)|0;l=a;return d|0;}function No(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=c[a>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];a=nj(d)|0;l=b;return a|0;}function Oo(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=qj(c[d>>2]|0)|0;l=b;return a|0;}function Po(){return 131072;}function Qo(){return(lj(131072)|0)+3+4|0;}function Ro(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;j=l;l=l+144|0;k=j+40|0;m=j+32|0;n=j+28|0;o=j+24|0;p=j+20|0;q=j+16|0;r=j+12|0;s=j;t=j+8|0;c[n>>2]=a;c[o>>2]=b;c[p>>2]=d;c[q>>2]=e;c[r>>2]=f;f=s;c[f>>2]=h;c[f+4>>2]=i;i=c[n>>2]|0;f=c[o>>2]|0;o=c[p>>2]|0;p=c[q>>2]|0;q=c[r>>2]|0;r=s;h=c[r>>2]|0;e=c[r+4>>2]|0;r=k;d=g;g=r+104|0;do{c[r>>2]=c[d>>2];r=r+4|0;d=d+4|0;}while((r|0)<(g|0));c[t>>2]=xo(i,f,o,p,q,k,h,e,1)|0;if(wj(c[t>>2]|0)|0){c[m>>2]=c[t>>2];u=c[m>>2]|0;l=j;return u|0;}else{c[(c[n>>2]|0)+600>>2]=0;c[(c[n>>2]|0)+604>>2]=0;t=s;c[(c[n>>2]|0)+608>>2]=(c[(c[n>>2]|0)+232>>2]|0)+((0==(c[t+4>>2]|0)?(c[(c[n>>2]|0)+232>>2]|0)==(c[t>>2]|0):0)&1);c[(c[n>>2]|0)+624>>2]=0;c[(c[n>>2]|0)+620>>2]=0;c[(c[n>>2]|0)+628>>2]=1;c[(c[n>>2]|0)+632>>2]=0;c[m>>2]=0;u=c[m>>2]|0;l=j;return u|0;}return 0;}function So(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;i=l;l=l+192|0;j=i+88|0;k=i+52|0;m=i+80|0;n=i+48|0;o=i+44|0;p=i+40|0;q=i+36|0;r=i;s=i+8|0;c[n>>2]=a;c[o>>2]=b;c[p>>2]=d;c[q>>2]=e;e=r;c[e>>2]=g;c[e+4>>2]=h;if((c[o>>2]|0)!=0&(c[p>>2]|0)>>>0>=8){if(c[(c[n>>2]|0)+364>>2]|0){c[m>>2]=-64;t=c[m>>2]|0;l=i;return t|0;}rj(c[(c[n>>2]|0)+636>>2]|0)|0;h=c[o>>2]|0;o=c[p>>2]|0;p=f+4|0;e=(c[n>>2]|0)+352|0;c[k>>2]=c[p>>2];c[k+4>>2]=c[p+4>>2];c[k+8>>2]=c[p+8>>2];c[k+12>>2]=c[p+12>>2];c[k+16>>2]=c[p+16>>2];c[k+20>>2]=c[p+20>>2];c[k+24>>2]=c[p+24>>2];c[j>>2]=c[e>>2];c[j+4>>2]=c[e+4>>2];c[j+8>>2]=c[e+8>>2];e=zj(h,o,0,0,k,j)|0;c[(c[n>>2]|0)+636>>2]=e;c[(c[n>>2]|0)+640>>2]=c[(c[n>>2]|0)+636>>2];if(!(c[(c[n>>2]|0)+636>>2]|0)){c[m>>2]=-64;t=c[m>>2]|0;l=i;return t|0;}}else{if(c[q>>2]|0){e=f+4|0;Io(s,c[q>>2]|0);c[e>>2]=c[s>>2];c[e+4>>2]=c[s+4>>2];c[e+8>>2]=c[s+8>>2];c[e+12>>2]=c[s+12>>2];c[e+16>>2]=c[s+16>>2];c[e+20>>2]=c[s+20>>2];c[e+24>>2]=c[s+24>>2];}rj(c[(c[n>>2]|0)+636>>2]|0)|0;c[(c[n>>2]|0)+636>>2]=0;c[(c[n>>2]|0)+640>>2]=c[q>>2];}q=c[n>>2]|0;s=c[(c[n>>2]|0)+640>>2]|0;n=r;r=c[n>>2]|0;e=c[n+4>>2]|0;n=j;k=f;f=n+104|0;do{c[n>>2]=c[k>>2];n=n+4|0;k=k+4|0;}while((n|0)<(f|0));c[m>>2]=Ro(q,0,0,0,s,j,r,e)|0;t=c[m>>2]|0;l=i;return t|0;}function To(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;g=l;l=l+272|0;h=g+160|0;i=g+152|0;j=g+148|0;k=g+144|0;m=g;n=g+40|0;o=g+8|0;c[j>>2]=a;c[k>>2]=b;b=m;c[b>>2]=e;c[b+4>>2]=f;if(c[k>>2]|0){f=n;b=(c[j>>2]|0)+12|0;e=f+104|0;do{c[f>>2]=c[b>>2];f=f+4|0;b=b+4|0;}while((f|0)<(e|0));a=n+4|0;Io(o,c[k>>2]|0);c[a>>2]=c[o>>2];c[a+4>>2]=c[o+4>>2];c[a+8>>2]=c[o+8>>2];c[a+12>>2]=c[o+12>>2];c[a+16>>2]=c[o+16>>2];c[a+20>>2]=c[o+20>>2];c[a+24>>2]=c[o+24>>2];o=n+32|0;c[o>>2]=c[d>>2];c[o+4>>2]=c[d+4>>2];c[o+8>>2]=c[d+8>>2];d=c[j>>2]|0;j=c[k>>2]|0;k=m;m=c[k>>2]|0;o=c[k+4>>2]|0;f=h;b=n;e=f+104|0;do{c[f>>2]=c[b>>2];f=f+4|0;b=b+4|0;}while((f|0)<(e|0));c[i>>2]=So(d,0,0,j,h,m,o)|0;p=c[i>>2]|0;l=g;return p|0;}else{c[i>>2]=-32;p=c[i>>2]|0;l=g;return p|0;}return 0;}function Uo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+32|0;e=d+8|0;f=d+4|0;g=d;c[f>>2]=a;c[g>>2]=b;b=c[f>>2]|0;f=c[g>>2]|0;c[e>>2]=c[5409];c[e+4>>2]=c[5410];c[e+8>>2]=c[5411];g=To(b,f,e,-1,-1)|0;l=d;return g|0;}function Vo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+384|0;g=f+280|0;h=f+168|0;i=f+272|0;j=f+160|0;k=f+8|0;m=f;n=f+120|0;o=f+16|0;c[i>>2]=a;c[j>>2]=b;b=k;c[b>>2]=d;c[b+4>>2]=e;e=k;b=(c[e>>2]|0)==0&(c[e+4>>2]|0)==0;e=k;k=b?-1:c[e+4>>2]|0;d=m;c[d>>2]=b?-1:c[e>>2]|0;c[d+4>>2]=k;k=m;Ao(n,c[j>>2]|0,c[k>>2]|0,c[k+4>>2]|0,0);k=h;j=(c[i>>2]|0)+12|0;d=k+104|0;do{c[k>>2]=c[j>>2];k=k+4|0;j=j+4|0;}while((k|0)<(d|0));k=g;j=n;d=k+40|0;do{c[k>>2]=c[j>>2];k=k+4|0;j=j+4|0;}while((k|0)<(d|0));zo(o,h,g);h=c[i>>2]|0;i=m;m=c[i>>2]|0;n=c[i+4>>2]|0;k=g;j=o;d=k+104|0;do{c[k>>2]=c[j>>2];k=k+4|0;j=j+4|0;}while((k|0)<(d|0));j=So(h,0,0,0,g,m,n)|0;l=f;return j|0;}function Wo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=Vo(c[e>>2]|0,c[f>>2]|0,-1,-1)|0;l=d;return b|0;}function Xo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;f=l;l=l+96|0;g=f+88|0;h=f+84|0;i=f+80|0;j=f+76|0;k=f+72|0;m=f+68|0;n=f+64|0;o=f+60|0;p=f+56|0;q=f+52|0;r=f+48|0;s=f+44|0;t=f+40|0;u=f+36|0;v=f+32|0;w=f+28|0;x=f+24|0;y=f+20|0;z=f+16|0;A=f+12|0;B=f+8|0;C=f+4|0;D=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=c[c[j>>2]>>2];c[n>>2]=(c[m>>2]|0)+(c[(c[j>>2]|0)+4>>2]|0);c[o>>2]=(c[m>>2]|0)+(c[(c[j>>2]|0)+8>>2]|0);c[p>>2]=c[c[i>>2]>>2];c[q>>2]=(c[p>>2]|0)+(c[(c[i>>2]|0)+4>>2]|0);c[r>>2]=(c[p>>2]|0)+(c[(c[i>>2]|0)+8>>2]|0);c[s>>2]=1;a:while(1){if(!(c[s>>2]|0)){E=39;break;}b:do{switch(c[(c[h>>2]|0)+628>>2]|0){case 0:{E=4;break a;break;}case 1:{if(((c[k>>2]|0)==2?(e=(c[q>>2]|0)-(c[r>>2]|0)|0,e>>>0>=(lj((c[n>>2]|0)-(c[o>>2]|0)|0)|0)>>>0):0)?(c[(c[h>>2]|0)+604>>2]|0)==0:0){c[t>>2]=Bo(c[h>>2]|0,c[r>>2]|0,(c[q>>2]|0)-(c[r>>2]|0)|0,c[o>>2]|0,(c[n>>2]|0)-(c[o>>2]|0)|0)|0;if(Ph(c[t>>2]|0)|0){E=9;break a;}c[o>>2]=c[n>>2];c[r>>2]=(c[r>>2]|0)+(c[t>>2]|0);c[(c[h>>2]|0)+632>>2]=1;jl(c[h>>2]|0);c[s>>2]=0;break b;}c[u>>2]=(c[(c[h>>2]|0)+608>>2]|0)-(c[(c[h>>2]|0)+604>>2]|0);c[v>>2]=Yo((c[(c[h>>2]|0)+592>>2]|0)+(c[(c[h>>2]|0)+604>>2]|0)|0,c[u>>2]|0,c[o>>2]|0,(c[n>>2]|0)-(c[o>>2]|0)|0)|0;e=(c[h>>2]|0)+604|0;c[e>>2]=(c[e>>2]|0)+(c[v>>2]|0);c[o>>2]=(c[o>>2]|0)+(c[v>>2]|0);if((c[k>>2]|0)==0?(c[(c[h>>2]|0)+604>>2]|0)>>>0<(c[(c[h>>2]|0)+608>>2]|0)>>>0:0){c[s>>2]=0;break b;}if((c[k>>2]|0)==1?(c[(c[h>>2]|0)+604>>2]|0)==(c[(c[h>>2]|0)+600>>2]|0):0){c[s>>2]=0;break b;}c[y>>2]=(c[(c[h>>2]|0)+604>>2]|0)-(c[(c[h>>2]|0)+600>>2]|0);c[z>>2]=(c[q>>2]|0)-(c[r>>2]|0);if((c[k>>2]|0)==2)F=(c[o>>2]|0)==(c[n>>2]|0);else F=0;c[A>>2]=F&1;if((c[z>>2]|0)>>>0>=(lj(c[y>>2]|0)|0)>>>0)c[w>>2]=c[r>>2];else{c[w>>2]=c[(c[h>>2]|0)+612>>2];c[z>>2]=c[(c[h>>2]|0)+616>>2];}e=c[h>>2]|0;d=c[w>>2]|0;b=c[z>>2]|0;a=(c[(c[h>>2]|0)+592>>2]|0)+(c[(c[h>>2]|0)+600>>2]|0)|0;G=c[y>>2]|0;if(c[A>>2]|0)H=Bo(e,d,b,a,G)|0;else H=vn(e,d,b,a,G)|0;c[x>>2]=H;if(Ph(c[x>>2]|0)|0){E=26;break a;}c[(c[h>>2]|0)+632>>2]=c[A>>2];c[(c[h>>2]|0)+608>>2]=(c[(c[h>>2]|0)+604>>2]|0)+(c[(c[h>>2]|0)+232>>2]|0);if((c[(c[h>>2]|0)+608>>2]|0)>>>0>(c[(c[h>>2]|0)+596>>2]|0)>>>0){c[(c[h>>2]|0)+604>>2]=0;c[(c[h>>2]|0)+608>>2]=c[(c[h>>2]|0)+232>>2];}c[(c[h>>2]|0)+600>>2]=c[(c[h>>2]|0)+604>>2];G=c[x>>2]|0;if((c[w>>2]|0)!=(c[r>>2]|0)){c[(c[h>>2]|0)+620>>2]=G;c[(c[h>>2]|0)+624>>2]=0;c[(c[h>>2]|0)+628>>2]=2;E=33;break b;}c[r>>2]=(c[r>>2]|0)+G;if(c[(c[h>>2]|0)+632>>2]|0){c[s>>2]=0;jl(c[h>>2]|0);}break;}case 2:{E=33;break;}default:{}}}while(0);do{if((E|0)==33){E=0;c[B>>2]=(c[(c[h>>2]|0)+620>>2]|0)-(c[(c[h>>2]|0)+624>>2]|0);c[C>>2]=Yo(c[r>>2]|0,(c[q>>2]|0)-(c[r>>2]|0)|0,(c[(c[h>>2]|0)+612>>2]|0)+(c[(c[h>>2]|0)+624>>2]|0)|0,c[B>>2]|0)|0;c[r>>2]=(c[r>>2]|0)+(c[C>>2]|0);G=(c[h>>2]|0)+624|0;c[G>>2]=(c[G>>2]|0)+(c[C>>2]|0);if((c[B>>2]|0)!=(c[C>>2]|0)){c[s>>2]=0;break;}c[(c[h>>2]|0)+624>>2]=0;c[(c[h>>2]|0)+620>>2]=0;if(c[(c[h>>2]|0)+632>>2]|0){c[s>>2]=0;jl(c[h>>2]|0);break;}else{c[(c[h>>2]|0)+628>>2]=1;break;}}}while(0);}if((E|0)==4){c[g>>2]=-62;I=c[g>>2]|0;l=f;return I|0;}else if((E|0)==9){c[g>>2]=c[t>>2];I=c[g>>2]|0;l=f;return I|0;}else if((E|0)==26){c[g>>2]=c[x>>2];I=c[g>>2]|0;l=f;return I|0;}else if((E|0)==39){c[(c[j>>2]|0)+8>>2]=(c[o>>2]|0)-(c[m>>2]|0);c[(c[i>>2]|0)+8>>2]=(c[r>>2]|0)-(c[p>>2]|0);if(c[(c[h>>2]|0)+632>>2]|0){c[g>>2]=0;I=c[g>>2]|0;l=f;return I|0;}c[D>>2]=(c[(c[h>>2]|0)+608>>2]|0)-(c[(c[h>>2]|0)+604>>2]|0);if(!(c[D>>2]|0))c[D>>2]=c[(c[h>>2]|0)+232>>2];c[g>>2]=c[D>>2];I=c[g>>2]|0;l=f;return I|0;}return 0;}function Yo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=(c[h>>2]|0)>>>0<(c[j>>2]|0)>>>0?c[h>>2]|0:c[j>>2]|0;if(!(c[k>>2]|0)){m=c[k>>2]|0;l=f;return m|0;}mE(c[g>>2]|0,c[i>>2]|0,c[k>>2]|0)|0;m=c[k>>2]|0;l=f;return m|0;}function Zo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;if((c[(c[h>>2]|0)+8>>2]|0)>>>0>(c[(c[h>>2]|0)+4>>2]|0)>>>0){c[f>>2]=-1;j=c[f>>2]|0;l=e;return j|0;}if((c[(c[i>>2]|0)+8>>2]|0)>>>0>(c[(c[i>>2]|0)+4>>2]|0)>>>0){c[f>>2]=-1;j=c[f>>2]|0;l=e;return j|0;}else{c[f>>2]=Xo(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0,0)|0;j=c[f>>2]|0;l=e;return j|0;}return 0;}function _o(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;d=l;l=l+48|0;e=d+36|0;f=d+32|0;g=d+28|0;h=d+16|0;i=d+12|0;j=d+8|0;k=d+4|0;m=d;c[f>>2]=a;c[g>>2]=b;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;if((c[(c[g>>2]|0)+8>>2]|0)>>>0>(c[(c[g>>2]|0)+4>>2]|0)>>>0){c[e>>2]=-1;n=c[e>>2]|0;l=d;return n|0;}c[i>>2]=Xo(c[f>>2]|0,c[g>>2]|0,h,2)|0;if(wj(c[i>>2]|0)|0){c[e>>2]=c[i>>2];n=c[e>>2]|0;l=d;return n|0;}c[j>>2]=c[(c[f>>2]|0)+632>>2]|0?0:3;if(c[(c[f>>2]|0)+632>>2]|0)o=0;else o=c[(c[f>>2]|0)+116+32+4>>2]<<2;c[k>>2]=o;c[m>>2]=(c[(c[f>>2]|0)+620>>2]|0)-(c[(c[f>>2]|0)+624>>2]|0)+(c[j>>2]|0)+(c[k>>2]|0);c[e>>2]=c[m>>2];n=c[e>>2]|0;l=d;return n|0;}function $o(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;i=l;l=l+96|0;j=i+80|0;k=i+76|0;m=i+72|0;n=i+68|0;o=i+64|0;p=i+60|0;q=i+56|0;r=i+52|0;s=i+48|0;t=i+44|0;u=i+40|0;v=i+36|0;w=i+32|0;x=i+28|0;y=i+88|0;z=i+24|0;A=i+20|0;B=i+16|0;C=i+12|0;D=i+8|0;E=i+4|0;F=i;G=i+84|0;c[k>>2]=b;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;c[q>>2]=0;c[r>>2]=0;c[t>>2]=(c[k>>2]|0)+4;c[u>>2]=c[t>>2];c[x>>2]=0;c[v>>2]=(c[o>>2]|0)+(c[x>>2]<<2);c[x>>2]=(c[x>>2]|0)+16;c[w>>2]=(c[o>>2]|0)+(c[x>>2]<<2);c[x>>2]=(c[x>>2]|0)+64;if(c[x>>2]<<2>>>0>(c[p>>2]|0)>>>0){c[j>>2]=-44;H=c[j>>2]|0;l=i;return H|0;}c[s>>2]=fh(c[w>>2]|0,256,c[v>>2]|0,r,q,c[m>>2]|0,c[n>>2]|0)|0;if(ap(c[s>>2]|0)|0){c[j>>2]=c[s>>2];H=c[j>>2]|0;l=i;return H|0;}bp(y,c[k>>2]|0);if((c[q>>2]|0)>>>0>((d[y>>0]|0)+1|0)>>>0){c[j>>2]=-44;H=c[j>>2]|0;l=i;return H|0;}a[y+1>>0]=0;a[y+2>>0]=c[q>>2];n=c[k>>2]|0;a[n>>0]=a[y>>0]|0;a[n+1>>0]=a[y+1>>0]|0;a[n+2>>0]=a[y+2>>0]|0;a[n+3>>0]=a[y+3>>0]|0;c[A>>2]=0;c[z>>2]=1;while(1){if((c[z>>2]|0)>>>0>=((c[q>>2]|0)+1|0)>>>0)break;c[B>>2]=c[A>>2];c[A>>2]=(c[A>>2]|0)+(c[(c[v>>2]|0)+(c[z>>2]<<2)>>2]<<(c[z>>2]|0)-1);c[(c[v>>2]|0)+(c[z>>2]<<2)>>2]=c[B>>2];c[z>>2]=(c[z>>2]|0)+1;}c[C>>2]=0;while(1){if((c[C>>2]|0)>>>0>=(c[r>>2]|0)>>>0)break;c[D>>2]=d[(c[w>>2]|0)+(c[C>>2]|0)>>0];c[E>>2]=1<<c[D>>2]>>1;a[G>>0]=c[C>>2];a[G+1>>0]=(c[q>>2]|0)+1-(c[D>>2]|0);c[F>>2]=c[(c[v>>2]|0)+(c[D>>2]<<2)>>2];while(1){if((c[F>>2]|0)>>>0>=((c[(c[v>>2]|0)+(c[D>>2]<<2)>>2]|0)+(c[E>>2]|0)|0)>>>0)break;z=(c[u>>2]|0)+(c[F>>2]<<1)|0;a[z>>0]=a[G>>0]|0;a[z+1>>0]=a[G+1>>0]|0;c[F>>2]=(c[F>>2]|0)+1;}z=(c[v>>2]|0)+(c[D>>2]<<2)|0;c[z>>2]=(c[z>>2]|0)+(c[E>>2]|0);c[C>>2]=(c[C>>2]|0)+1;}c[j>>2]=c[s>>2];H=c[j>>2]|0;l=i;return H|0;}function ap(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return(c[d>>2]|0)>>>0>4294967176|0;}function bp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e;g=e+4|0;c[f>>2]=d;d=c[f>>2]|0;a[g>>0]=a[d>>0]|0;a[g+1>>0]=a[d+1>>0]|0;a[g+2>>0]=a[d+2>>0]|0;a[g+3>>0]=a[d+3>>0]|0;a[b>>0]=a[g>>0]|0;a[b+1>>0]=a[g+1>>0]|0;a[b+2>>0]=a[g+2>>0]|0;a[b+3>>0]=a[g+3>>0]|0;l=e;return;}function cp(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;h=l;l=l+32|0;i=h+24|0;j=h+20|0;k=h+16|0;m=h+12|0;n=h+8|0;o=h+4|0;p=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;g=c[j>>2]|0;j=c[k>>2]|0;k=c[m>>2]|0;m=c[n>>2]|0;n=c[o>>2]|0;if(c[p>>2]|0){c[i>>2]=dp(g,j,k,m,n)|0;q=c[i>>2]|0;l=h;return q|0;}else{c[i>>2]=ep(g,j,k,m,n)|0;q=c[i>>2]|0;l=h;return q|0;}return 0;}function dp(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0;i=l;l=l+224|0;j=i+204|0;k=i+200|0;m=i+196|0;n=i+192|0;o=i+217|0;p=i+188|0;q=i+184|0;r=i+180|0;s=i+176|0;t=i+216|0;u=i+172|0;v=i+168|0;w=i+164|0;x=i+160|0;y=i+215|0;z=i+156|0;A=i+152|0;B=i+148|0;C=i+144|0;D=i+214|0;E=i+140|0;F=i+136|0;G=i+132|0;H=i+128|0;I=i+213|0;J=i+124|0;K=i+120|0;L=i+116|0;M=i+112|0;N=i+212|0;O=i+108|0;P=i+104|0;Q=i+100|0;R=i+96|0;S=i+92|0;T=i+84|0;U=i+80|0;V=i+76|0;W=i+72|0;X=i+68|0;Y=i+64|0;Z=i+60|0;_=i+56|0;$=i+52|0;aa=i+48|0;ba=i+28|0;ca=i+208|0;da=i+24|0;ea=i+20|0;fa=i+16|0;ga=i+12|0;ha=i+8|0;ia=i+4|0;ja=i;c[fa>>2]=b;c[ga>>2]=e;c[ha>>2]=f;c[ia>>2]=g;c[ja>>2]=h;h=c[ga>>2]|0;ga=c[ha>>2]|0;ha=c[ia>>2]|0;ia=c[ja>>2]|0;c[U>>2]=c[fa>>2];c[V>>2]=h;c[W>>2]=ga;c[X>>2]=ha;c[Y>>2]=ia;c[Z>>2]=c[U>>2];c[_>>2]=(c[Z>>2]|0)+(c[V>>2]|0);c[$>>2]=(c[Y>>2]|0)+4;c[aa>>2]=c[$>>2];bp(ca,c[Y>>2]|0);c[da>>2]=d[ca+2>>0];c[ea>>2]=fp(ba,c[W>>2]|0,c[X>>2]|0)|0;if(ap(c[ea>>2]|0)|0){c[T>>2]=c[ea>>2];ka=c[T>>2]|0;l=i;return ka|0;}ea=c[_>>2]|0;_=c[aa>>2]|0;aa=c[da>>2]|0;c[O>>2]=c[Z>>2];c[P>>2]=ba;c[Q>>2]=ea;c[R>>2]=_;c[S>>2]=aa;c[i+88>>2]=c[O>>2];while(1){aa=(gp(c[P>>2]|0)|0)==0&1;if(!(aa&(c[O>>2]|0)>>>0<((c[Q>>2]|0)+-3|0)>>>0))break;if(hp()|0){aa=c[R>>2]|0;_=c[S>>2]|0;c[J>>2]=c[P>>2];c[K>>2]=aa;c[L>>2]=_;c[M>>2]=ip(c[J>>2]|0,c[L>>2]|0)|0;a[N>>0]=a[(c[K>>2]|0)+(c[M>>2]<<1)>>0]|0;jp(c[J>>2]|0,d[(c[K>>2]|0)+(c[M>>2]<<1)+1>>0]|0);_=a[N>>0]|0;aa=c[O>>2]|0;c[O>>2]=aa+1;a[aa>>0]=_;}hp()|0;_=c[R>>2]|0;aa=c[S>>2]|0;c[E>>2]=c[P>>2];c[F>>2]=_;c[G>>2]=aa;c[H>>2]=ip(c[E>>2]|0,c[G>>2]|0)|0;a[I>>0]=a[(c[F>>2]|0)+(c[H>>2]<<1)>>0]|0;jp(c[E>>2]|0,d[(c[F>>2]|0)+(c[H>>2]<<1)+1>>0]|0);aa=a[I>>0]|0;_=c[O>>2]|0;c[O>>2]=_+1;a[_>>0]=aa;if(hp()|0){aa=c[R>>2]|0;_=c[S>>2]|0;c[z>>2]=c[P>>2];c[A>>2]=aa;c[B>>2]=_;c[C>>2]=ip(c[z>>2]|0,c[B>>2]|0)|0;a[D>>0]=a[(c[A>>2]|0)+(c[C>>2]<<1)>>0]|0;jp(c[z>>2]|0,d[(c[A>>2]|0)+(c[C>>2]<<1)+1>>0]|0);_=a[D>>0]|0;aa=c[O>>2]|0;c[O>>2]=aa+1;a[aa>>0]=_;}_=c[R>>2]|0;aa=c[S>>2]|0;c[u>>2]=c[P>>2];c[v>>2]=_;c[w>>2]=aa;c[x>>2]=ip(c[u>>2]|0,c[w>>2]|0)|0;a[y>>0]=a[(c[v>>2]|0)+(c[x>>2]<<1)>>0]|0;jp(c[u>>2]|0,d[(c[v>>2]|0)+(c[x>>2]<<1)+1>>0]|0);aa=a[y>>0]|0;_=c[O>>2]|0;c[O>>2]=_+1;a[_>>0]=aa;}a:do{if(kp()|0)while(1){y=(gp(c[P>>2]|0)|0)==0&1;if(!(y&(c[O>>2]|0)>>>0<(c[Q>>2]|0)>>>0))break a;y=c[R>>2]|0;x=c[S>>2]|0;c[p>>2]=c[P>>2];c[q>>2]=y;c[r>>2]=x;c[s>>2]=ip(c[p>>2]|0,c[r>>2]|0)|0;a[t>>0]=a[(c[q>>2]|0)+(c[s>>2]<<1)>>0]|0;jp(c[p>>2]|0,d[(c[q>>2]|0)+(c[s>>2]<<1)+1>>0]|0);x=a[t>>0]|0;y=c[O>>2]|0;c[O>>2]=y+1;a[y>>0]=x;}}while(0);while(1){if((c[O>>2]|0)>>>0>=(c[Q>>2]|0)>>>0)break;t=c[R>>2]|0;s=c[S>>2]|0;c[j>>2]=c[P>>2];c[k>>2]=t;c[m>>2]=s;c[n>>2]=ip(c[j>>2]|0,c[m>>2]|0)|0;a[o>>0]=a[(c[k>>2]|0)+(c[n>>2]<<1)>>0]|0;jp(c[j>>2]|0,d[(c[k>>2]|0)+(c[n>>2]<<1)+1>>0]|0);s=a[o>>0]|0;t=c[O>>2]|0;c[O>>2]=t+1;a[t>>0]=s;}if(lp(ba)|0){c[T>>2]=c[V>>2];ka=c[T>>2]|0;l=i;return ka|0;}else{c[T>>2]=-20;ka=c[T>>2]|0;l=i;return ka|0;}return 0;}function ep(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0;i=l;l=l+224|0;j=i+204|0;k=i+200|0;m=i+196|0;n=i+192|0;o=i+217|0;p=i+188|0;q=i+184|0;r=i+180|0;s=i+176|0;t=i+216|0;u=i+172|0;v=i+168|0;w=i+164|0;x=i+160|0;y=i+215|0;z=i+156|0;A=i+152|0;B=i+148|0;C=i+144|0;D=i+214|0;E=i+140|0;F=i+136|0;G=i+132|0;H=i+128|0;I=i+213|0;J=i+124|0;K=i+120|0;L=i+116|0;M=i+112|0;N=i+212|0;O=i+108|0;P=i+104|0;Q=i+100|0;R=i+96|0;S=i+92|0;T=i+84|0;U=i+80|0;V=i+76|0;W=i+72|0;X=i+68|0;Y=i+64|0;Z=i+60|0;_=i+56|0;$=i+52|0;aa=i+48|0;ba=i+28|0;ca=i+208|0;da=i+24|0;ea=i+20|0;fa=i+16|0;ga=i+12|0;ha=i+8|0;ia=i+4|0;ja=i;c[fa>>2]=b;c[ga>>2]=e;c[ha>>2]=f;c[ia>>2]=g;c[ja>>2]=h;h=c[ga>>2]|0;ga=c[ha>>2]|0;ha=c[ia>>2]|0;ia=c[ja>>2]|0;c[U>>2]=c[fa>>2];c[V>>2]=h;c[W>>2]=ga;c[X>>2]=ha;c[Y>>2]=ia;c[Z>>2]=c[U>>2];c[_>>2]=(c[Z>>2]|0)+(c[V>>2]|0);c[$>>2]=(c[Y>>2]|0)+4;c[aa>>2]=c[$>>2];bp(ca,c[Y>>2]|0);c[da>>2]=d[ca+2>>0];c[ea>>2]=fp(ba,c[W>>2]|0,c[X>>2]|0)|0;if(ap(c[ea>>2]|0)|0){c[T>>2]=c[ea>>2];ka=c[T>>2]|0;l=i;return ka|0;}ea=c[_>>2]|0;_=c[aa>>2]|0;aa=c[da>>2]|0;c[O>>2]=c[Z>>2];c[P>>2]=ba;c[Q>>2]=ea;c[R>>2]=_;c[S>>2]=aa;c[i+88>>2]=c[O>>2];while(1){aa=(gp(c[P>>2]|0)|0)==0&1;if(!(aa&(c[O>>2]|0)>>>0<((c[Q>>2]|0)+-3|0)>>>0))break;if(hp()|0){aa=c[R>>2]|0;_=c[S>>2]|0;c[J>>2]=c[P>>2];c[K>>2]=aa;c[L>>2]=_;c[M>>2]=ip(c[J>>2]|0,c[L>>2]|0)|0;a[N>>0]=a[(c[K>>2]|0)+(c[M>>2]<<1)>>0]|0;jp(c[J>>2]|0,d[(c[K>>2]|0)+(c[M>>2]<<1)+1>>0]|0);_=a[N>>0]|0;aa=c[O>>2]|0;c[O>>2]=aa+1;a[aa>>0]=_;}hp()|0;_=c[R>>2]|0;aa=c[S>>2]|0;c[E>>2]=c[P>>2];c[F>>2]=_;c[G>>2]=aa;c[H>>2]=ip(c[E>>2]|0,c[G>>2]|0)|0;a[I>>0]=a[(c[F>>2]|0)+(c[H>>2]<<1)>>0]|0;jp(c[E>>2]|0,d[(c[F>>2]|0)+(c[H>>2]<<1)+1>>0]|0);aa=a[I>>0]|0;_=c[O>>2]|0;c[O>>2]=_+1;a[_>>0]=aa;if(hp()|0){aa=c[R>>2]|0;_=c[S>>2]|0;c[z>>2]=c[P>>2];c[A>>2]=aa;c[B>>2]=_;c[C>>2]=ip(c[z>>2]|0,c[B>>2]|0)|0;a[D>>0]=a[(c[A>>2]|0)+(c[C>>2]<<1)>>0]|0;jp(c[z>>2]|0,d[(c[A>>2]|0)+(c[C>>2]<<1)+1>>0]|0);_=a[D>>0]|0;aa=c[O>>2]|0;c[O>>2]=aa+1;a[aa>>0]=_;}_=c[R>>2]|0;aa=c[S>>2]|0;c[u>>2]=c[P>>2];c[v>>2]=_;c[w>>2]=aa;c[x>>2]=ip(c[u>>2]|0,c[w>>2]|0)|0;a[y>>0]=a[(c[v>>2]|0)+(c[x>>2]<<1)>>0]|0;jp(c[u>>2]|0,d[(c[v>>2]|0)+(c[x>>2]<<1)+1>>0]|0);aa=a[y>>0]|0;_=c[O>>2]|0;c[O>>2]=_+1;a[_>>0]=aa;}a:do{if(kp()|0)while(1){y=(gp(c[P>>2]|0)|0)==0&1;if(!(y&(c[O>>2]|0)>>>0<(c[Q>>2]|0)>>>0))break a;y=c[R>>2]|0;x=c[S>>2]|0;c[p>>2]=c[P>>2];c[q>>2]=y;c[r>>2]=x;c[s>>2]=ip(c[p>>2]|0,c[r>>2]|0)|0;a[t>>0]=a[(c[q>>2]|0)+(c[s>>2]<<1)>>0]|0;jp(c[p>>2]|0,d[(c[q>>2]|0)+(c[s>>2]<<1)+1>>0]|0);x=a[t>>0]|0;y=c[O>>2]|0;c[O>>2]=y+1;a[y>>0]=x;}}while(0);while(1){if((c[O>>2]|0)>>>0>=(c[Q>>2]|0)>>>0)break;t=c[R>>2]|0;s=c[S>>2]|0;c[j>>2]=c[P>>2];c[k>>2]=t;c[m>>2]=s;c[n>>2]=ip(c[j>>2]|0,c[m>>2]|0)|0;a[o>>0]=a[(c[k>>2]|0)+(c[n>>2]<<1)>>0]|0;jp(c[j>>2]|0,d[(c[k>>2]|0)+(c[n>>2]<<1)+1>>0]|0);s=a[o>>0]|0;t=c[O>>2]|0;c[O>>2]=t+1;a[t>>0]=s;}if(lp(ba)|0){c[T>>2]=c[V>>2];ka=c[T>>2]|0;l=i;return ka|0;}else{c[T>>2]=-20;ka=c[T>>2]|0;l=i;return ka|0;}return 0;}function fp(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;g=l;l=l+32|0;h=g+12|0;i=g+8|0;j=g+4|0;k=g;m=g+17|0;n=g+16|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;if((c[k>>2]|0)>>>0<1){f=c[i>>2]|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[h>>2]=-72;o=c[h>>2]|0;l=g;return o|0;}c[(c[i>>2]|0)+12>>2]=c[j>>2];c[(c[i>>2]|0)+16>>2]=(c[(c[i>>2]|0)+12>>2]|0)+4;do{if((c[k>>2]|0)>>>0>=4){c[(c[i>>2]|0)+8>>2]=(c[j>>2]|0)+(c[k>>2]|0)+-4;f=mp(c[(c[i>>2]|0)+8>>2]|0)|0;c[c[i>>2]>>2]=f;a[m>>0]=a[(c[j>>2]|0)+((c[k>>2]|0)-1)>>0]|0;if(d[m>>0]|0|0)p=8-(up(d[m>>0]|0)|0)|0;else p=0;c[(c[i>>2]|0)+4>>2]=p;if(!(d[m>>0]|0)){c[h>>2]=-1;o=c[h>>2]|0;l=g;return o|0;}}else{c[(c[i>>2]|0)+8>>2]=c[(c[i>>2]|0)+12>>2];c[c[i>>2]>>2]=d[c[(c[i>>2]|0)+12>>2]>>0];switch(c[k>>2]|0){case 7:{f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+6>>0]|0)<<16);q=10;break;}case 6:{q=10;break;}case 5:{q=11;break;}case 4:{q=12;break;}case 3:{q=13;break;}case 2:{q=14;break;}default:{}}if((q|0)==10){f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+5>>0]|0)<<8);q=11;}if((q|0)==11){f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+4>>0]|0)<<0);q=12;}if((q|0)==12){f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+3>>0]|0)<<24);q=13;}if((q|0)==13){f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+2>>0]|0)<<16);q=14;}if((q|0)==14){f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+1>>0]|0)<<8);}a[n>>0]=a[(c[j>>2]|0)+((c[k>>2]|0)-1)>>0]|0;if(d[n>>0]|0|0)r=8-(up(d[n>>0]|0)|0)|0;else r=0;c[(c[i>>2]|0)+4>>2]=r;if(d[n>>0]|0|0){f=(c[i>>2]|0)+4|0;c[f>>2]=(c[f>>2]|0)+(4-(c[k>>2]|0)<<3);break;}c[h>>2]=-20;o=c[h>>2]|0;l=g;return o|0;}}while(0);c[h>>2]=c[k>>2];o=c[h>>2]|0;l=g;return o|0;}function gp(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+16|0;d=b+12|0;e=b+8|0;f=b+4|0;g=b;c[e>>2]=a;if((c[(c[e>>2]|0)+4>>2]|0)>>>0>32){c[d>>2]=3;h=c[d>>2]|0;l=b;return h|0;}a=c[e>>2]|0;if((c[(c[e>>2]|0)+8>>2]|0)>>>0>=(c[(c[e>>2]|0)+16>>2]|0)>>>0){i=(c[e>>2]|0)+8|0;c[i>>2]=(c[i>>2]|0)+(0-((c[a+4>>2]|0)>>>3));i=(c[e>>2]|0)+4|0;c[i>>2]=c[i>>2]&7;i=mp(c[(c[e>>2]|0)+8>>2]|0)|0;c[c[e>>2]>>2]=i;c[d>>2]=0;h=c[d>>2]|0;l=b;return h|0;}i=c[(c[e>>2]|0)+4>>2]|0;if((c[a+8>>2]|0)!=(c[(c[e>>2]|0)+12>>2]|0)){c[f>>2]=i>>>3;c[g>>2]=0;if(((c[(c[e>>2]|0)+8>>2]|0)+(0-(c[f>>2]|0))|0)>>>0<(c[(c[e>>2]|0)+12>>2]|0)>>>0){c[f>>2]=(c[(c[e>>2]|0)+8>>2]|0)-(c[(c[e>>2]|0)+12>>2]|0);c[g>>2]=1;}a=(c[e>>2]|0)+8|0;c[a>>2]=(c[a>>2]|0)+(0-(c[f>>2]|0));a=(c[e>>2]|0)+4|0;c[a>>2]=(c[a>>2]|0)-(c[f>>2]<<3);f=mp(c[(c[e>>2]|0)+8>>2]|0)|0;c[c[e>>2]>>2]=f;c[d>>2]=c[g>>2];h=c[d>>2]|0;l=b;return h|0;}if(i>>>0<32){c[d>>2]=1;h=c[d>>2]|0;l=b;return h|0;}else{c[d>>2]=2;h=c[d>>2]|0;l=b;return h|0;}return 0;}function hp(){return 0;}function ip(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;c[e>>2]=a;c[f>>2]=b;c[d>>2]=31;l=d;return c[c[e>>2]>>2]<<(c[(c[e>>2]|0)+4>>2]&31)>>>(32-(c[f>>2]|0)&31)|0;}function jp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=(c[e>>2]|0)+4|0;c[b>>2]=(c[b>>2]|0)+(c[f>>2]|0);l=d;return;}function kp(){return 1;}function lp(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b;c[d>>2]=a;if((c[(c[d>>2]|0)+8>>2]|0)!=(c[(c[d>>2]|0)+12>>2]|0)){e=0;f=e&1;l=b;return f|0;}e=(c[(c[d>>2]|0)+4>>2]|0)==32;f=e&1;l=b;return f|0;}function mp(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(kp()|0)!=0;f=c[e>>2]|0;if(a){c[d>>2]=np(f)|0;g=c[d>>2]|0;l=b;return g|0;}else{a=op(f)|0;c[d>>2]=a;g=c[d>>2]|0;l=b;return g|0;}return 0;}function np(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(pp()|0)!=0;f=sp(c[e>>2]|0)|0;if(a){c[d>>2]=f;g=c[d>>2]|0;l=b;return g|0;}else{c[d>>2]=tp(f)|0;g=c[d>>2]|0;l=b;return g|0;}return 0;}function op(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b;e=b+8|0;c[e>>2]=a;a=(pp()|0)!=0;f=qp(c[e>>2]|0)|0;e=y;if(a){a=d;c[a>>2]=f;c[a+4>>2]=e;}else{a=rp(f,e)|0;e=d;c[e>>2]=a;c[e+4>>2]=y;}e=d;y=c[e+4>>2]|0;l=b;return c[e>>2]|0;}function pp(){return d[11936]|0|0;}function qp(a){a=a|0;var b=0,e=0,f=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;e=a;f=a+4|0;y=d[f>>0]|d[f+1>>0]<<8|d[f+2>>0]<<16|d[f+3>>0]<<24;l=b;return d[e>>0]|d[e+1>>0]<<8|d[e+2>>0]<<16|d[e+3>>0]<<24|0;}function rp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d;f=e;c[f>>2]=a;c[f+4>>2]=b;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,56)|0;b=y&-16777216;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,40)|0;f=b|y&16711680;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=f|y&65280;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,8)|0;f=b|y&255;b=e;a=iE(c[b>>2]|0,c[b+4>>2]|0,8)|0;b=e;g=iE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=e;h=iE(c[b>>2]|0,c[b+4>>2]|0,40)|0;b=e;e=iE(c[b>>2]|0,c[b+4>>2]|0,56)|0;y=f;l=d;return a&-16777216|g&16711680|h&65280|e&255|0;}function sp(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0;}function tp(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[d>>2]<<24&-16777216|c[d>>2]<<8&16711680|(c[d>>2]|0)>>>8&65280|(c[d>>2]|0)>>>24&255|0;}function up(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=31-(Q(c[d>>2]|0)|0)|0;l=b;return a|0;}function vp(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;h=l;l=l+32|0;i=h+24|0;j=h+20|0;k=h+16|0;m=h+12|0;n=h+8|0;o=h+4|0;p=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;g=c[j>>2]|0;j=c[k>>2]|0;k=c[m>>2]|0;m=c[n>>2]|0;n=c[o>>2]|0;if(c[p>>2]|0){c[i>>2]=wp(g,j,k,m,n)|0;q=c[i>>2]|0;l=h;return q|0;}else{c[i>>2]=xp(g,j,k,m,n)|0;q=c[i>>2]|0;l=h;return q|0;}return 0;}function wp(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,yc=0,zc=0,Ac=0,Bc=0,Cc=0,Dc=0,Ec=0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0,Kc=0,Lc=0,Mc=0,Nc=0,Oc=0,Pc=0,Qc=0,Rc=0,Sc=0,Tc=0,Uc=0,Vc=0,Wc=0,Xc=0,Yc=0,Zc=0,_c=0,$c=0,ad=0,bd=0,cd=0,dd=0,ed=0,fd=0,gd=0,hd=0,id=0,jd=0,kd=0,ld=0,md=0,nd=0,od=0,pd=0,qd=0,rd=0,sd=0,td=0,ud=0,vd=0,wd=0,xd=0,yd=0,zd=0,Ad=0,Bd=0,Cd=0,Dd=0,Ed=0,Fd=0,Gd=0,Hd=0,Id=0,Jd=0,Kd=0,Ld=0,Md=0,Nd=0,Od=0,Pd=0,Qd=0,Rd=0,Sd=0,Td=0,Ud=0,Vd=0,Wd=0,Xd=0,Yd=0,Zd=0,_d=0,$d=0,ae=0,be=0,ce=0,de=0,ee=0,fe=0,ge=0,he=0,ie=0;i=l;l=l+1024|0;j=i+968|0;k=i+964|0;m=i+960|0;n=i+956|0;o=i+1015|0;p=i+952|0;q=i+948|0;r=i+944|0;s=i+940|0;t=i+1014|0;u=i+936|0;v=i+932|0;w=i+928|0;x=i+924|0;y=i+1013|0;z=i+920|0;A=i+916|0;B=i+912|0;C=i+908|0;D=i+1012|0;E=i+904|0;F=i+900|0;G=i+896|0;H=i+892|0;I=i+1011|0;J=i+888|0;K=i+884|0;L=i+880|0;M=i+876|0;N=i+1010|0;O=i+872|0;P=i+868|0;Q=i+864|0;R=i+860|0;S=i+856|0;T=i+852|0;U=i+848|0;V=i+844|0;W=i+840|0;X=i+836|0;Y=i+1009|0;Z=i+832|0;_=i+828|0;$=i+824|0;aa=i+820|0;ba=i+1008|0;ca=i+816|0;da=i+812|0;ea=i+808|0;fa=i+804|0;ga=i+1007|0;ha=i+800|0;ia=i+796|0;ja=i+792|0;ka=i+788|0;la=i+1006|0;ma=i+784|0;na=i+780|0;oa=i+776|0;pa=i+772|0;qa=i+1005|0;ra=i+768|0;sa=i+764|0;ta=i+760|0;ua=i+756|0;va=i+1004|0;wa=i+752|0;xa=i+748|0;ya=i+744|0;za=i+740|0;Aa=i+736|0;Ba=i+732|0;Ca=i+728|0;Da=i+724|0;Ea=i+720|0;Fa=i+716|0;Ga=i+1003|0;Ha=i+712|0;Ia=i+708|0;Ja=i+704|0;Ka=i+700|0;La=i+1002|0;Ma=i+696|0;Na=i+692|0;Oa=i+688|0;Pa=i+684|0;Qa=i+1001|0;Ra=i+680|0;Sa=i+676|0;Ta=i+672|0;Ua=i+668|0;Va=i+1e3|0;Wa=i+664|0;Xa=i+660|0;Ya=i+656|0;Za=i+652|0;_a=i+999|0;$a=i+648|0;ab=i+644|0;bb=i+640|0;cb=i+636|0;db=i+998|0;eb=i+632|0;fb=i+628|0;gb=i+624|0;hb=i+620|0;ib=i+616|0;jb=i+612|0;kb=i+608|0;lb=i+604|0;mb=i+600|0;nb=i+596|0;ob=i+997|0;pb=i+592|0;qb=i+588|0;rb=i+584|0;sb=i+580|0;tb=i+996|0;ub=i+576|0;vb=i+572|0;wb=i+568|0;xb=i+564|0;yb=i+995|0;zb=i+560|0;Ab=i+556|0;Bb=i+552|0;Cb=i+548|0;Db=i+994|0;Eb=i+544|0;Fb=i+540|0;Gb=i+536|0;Hb=i+532|0;Ib=i+993|0;Jb=i+528|0;Kb=i+524|0;Lb=i+520|0;Mb=i+516|0;Nb=i+992|0;Ob=i+512|0;Pb=i+508|0;Qb=i+504|0;Rb=i+500|0;Sb=i+496|0;Tb=i+492|0;Ub=i+488|0;Vb=i+484|0;Wb=i+480|0;Xb=i+476|0;Yb=i+991|0;Zb=i+472|0;_b=i+468|0;$b=i+464|0;ac=i+460|0;bc=i+990|0;cc=i+456|0;dc=i+452|0;ec=i+448|0;fc=i+444|0;gc=i+989|0;hc=i+440|0;ic=i+436|0;jc=i+432|0;kc=i+428|0;lc=i+988|0;mc=i+424|0;nc=i+420|0;oc=i+416|0;pc=i+412|0;qc=i+987|0;rc=i+408|0;sc=i+404|0;tc=i+400|0;uc=i+396|0;vc=i+986|0;wc=i+392|0;xc=i+388|0;yc=i+384|0;zc=i+380|0;Ac=i+985|0;Bc=i+376|0;Cc=i+372|0;Dc=i+368|0;Ec=i+364|0;Fc=i+984|0;Gc=i+360|0;Hc=i+356|0;Ic=i+352|0;Jc=i+348|0;Kc=i+983|0;Lc=i+344|0;Mc=i+340|0;Nc=i+336|0;Oc=i+332|0;Pc=i+982|0;Qc=i+328|0;Rc=i+324|0;Sc=i+320|0;Tc=i+316|0;Uc=i+981|0;Vc=i+312|0;Wc=i+308|0;Xc=i+304|0;Yc=i+300|0;Zc=i+980|0;_c=i+296|0;$c=i+292|0;ad=i+288|0;bd=i+284|0;cd=i+979|0;dd=i+280|0;ed=i+276|0;fd=i+272|0;gd=i+268|0;hd=i+978|0;id=i+264|0;jd=i+260|0;kd=i+256|0;ld=i+252|0;md=i+977|0;nd=i+248|0;od=i+244|0;pd=i+240|0;qd=i+236|0;rd=i+976|0;sd=i+232|0;td=i+228|0;ud=i+224|0;vd=i+220|0;wd=i+216|0;xd=i+212|0;yd=i+208|0;zd=i+204|0;Ad=i+200|0;Bd=i+196|0;Cd=i+192|0;Dd=i+172|0;Ed=i+152|0;Fd=i+132|0;Gd=i+112|0;Hd=i+108|0;Id=i+104|0;Jd=i+100|0;Kd=i+96|0;Ld=i+92|0;Md=i+88|0;Nd=i+84|0;Od=i+80|0;Pd=i+76|0;Qd=i+72|0;Rd=i+68|0;Sd=i+64|0;Td=i+60|0;Ud=i+56|0;Vd=i+52|0;Wd=i+48|0;Xd=i+44|0;Yd=i+972|0;Zd=i+40|0;_d=i+36|0;$d=i+32|0;ae=i+28|0;be=i+24|0;ce=i+20|0;de=i+16|0;ee=i+12|0;fe=i+8|0;ge=i+4|0;he=i;c[de>>2]=b;c[ee>>2]=e;c[fe>>2]=f;c[ge>>2]=g;c[he>>2]=h;h=c[ee>>2]|0;ee=c[fe>>2]|0;fe=c[ge>>2]|0;ge=c[he>>2]|0;c[td>>2]=c[de>>2];c[ud>>2]=h;c[vd>>2]=ee;c[wd>>2]=fe;c[xd>>2]=ge;if((c[wd>>2]|0)>>>0<10){c[sd>>2]=-20;ie=c[sd>>2]|0;l=i;return ie|0;}c[yd>>2]=c[vd>>2];c[zd>>2]=c[td>>2];c[Ad>>2]=(c[zd>>2]|0)+(c[ud>>2]|0);c[Bd>>2]=(c[xd>>2]|0)+4;c[Cd>>2]=c[Bd>>2];c[Hd>>2]=(yp(c[yd>>2]|0)|0)&65535;c[Id>>2]=(yp((c[yd>>2]|0)+2|0)|0)&65535;c[Jd>>2]=(yp((c[yd>>2]|0)+4|0)|0)&65535;c[Kd>>2]=(c[wd>>2]|0)-((c[Hd>>2]|0)+(c[Id>>2]|0)+(c[Jd>>2]|0)+6);c[Ld>>2]=(c[yd>>2]|0)+6;c[Md>>2]=(c[Ld>>2]|0)+(c[Hd>>2]|0);c[Nd>>2]=(c[Md>>2]|0)+(c[Id>>2]|0);c[Od>>2]=(c[Nd>>2]|0)+(c[Jd>>2]|0);c[Pd>>2]=(((c[ud>>2]|0)+3|0)>>>0)/4|0;c[Qd>>2]=(c[zd>>2]|0)+(c[Pd>>2]|0);c[Rd>>2]=(c[Qd>>2]|0)+(c[Pd>>2]|0);c[Sd>>2]=(c[Rd>>2]|0)+(c[Pd>>2]|0);c[Td>>2]=c[zd>>2];c[Ud>>2]=c[Qd>>2];c[Vd>>2]=c[Rd>>2];c[Wd>>2]=c[Sd>>2];c[Xd>>2]=0;bp(Yd,c[xd>>2]|0);c[Zd>>2]=d[Yd+2>>0];if((c[Kd>>2]|0)>>>0>(c[wd>>2]|0)>>>0){c[sd>>2]=-20;ie=c[sd>>2]|0;l=i;return ie|0;}c[_d>>2]=fp(Dd,c[Ld>>2]|0,c[Hd>>2]|0)|0;if(ap(c[_d>>2]|0)|0){c[sd>>2]=c[_d>>2];ie=c[sd>>2]|0;l=i;return ie|0;}c[$d>>2]=fp(Ed,c[Md>>2]|0,c[Id>>2]|0)|0;if(ap(c[$d>>2]|0)|0){c[sd>>2]=c[$d>>2];ie=c[sd>>2]|0;l=i;return ie|0;}c[ae>>2]=fp(Fd,c[Nd>>2]|0,c[Jd>>2]|0)|0;if(ap(c[ae>>2]|0)|0){c[sd>>2]=c[ae>>2];ie=c[sd>>2]|0;l=i;return ie|0;}c[be>>2]=fp(Gd,c[Od>>2]|0,c[Kd>>2]|0)|0;if(ap(c[be>>2]|0)|0){c[sd>>2]=c[be>>2];ie=c[sd>>2]|0;l=i;return ie|0;}be=gp(Dd)|0;Kd=be|(gp(Ed)|0);be=Kd|(gp(Fd)|0);c[Xd>>2]=be|(gp(Gd)|0);while(1){if(c[Xd>>2]|0)break;if((c[Wd>>2]|0)>>>0>=((c[Ad>>2]|0)+-3|0)>>>0)break;if(hp()|0){be=c[Cd>>2]|0;Kd=c[Zd>>2]|0;c[nd>>2]=Dd;c[od>>2]=be;c[pd>>2]=Kd;c[qd>>2]=ip(c[nd>>2]|0,c[pd>>2]|0)|0;a[rd>>0]=a[(c[od>>2]|0)+(c[qd>>2]<<1)>>0]|0;jp(c[nd>>2]|0,d[(c[od>>2]|0)+(c[qd>>2]<<1)+1>>0]|0);Kd=a[rd>>0]|0;be=c[Td>>2]|0;c[Td>>2]=be+1;a[be>>0]=Kd;}if(hp()|0){Kd=c[Cd>>2]|0;be=c[Zd>>2]|0;c[id>>2]=Ed;c[jd>>2]=Kd;c[kd>>2]=be;c[ld>>2]=ip(c[id>>2]|0,c[kd>>2]|0)|0;a[md>>0]=a[(c[jd>>2]|0)+(c[ld>>2]<<1)>>0]|0;jp(c[id>>2]|0,d[(c[jd>>2]|0)+(c[ld>>2]<<1)+1>>0]|0);be=a[md>>0]|0;Kd=c[Ud>>2]|0;c[Ud>>2]=Kd+1;a[Kd>>0]=be;}if(hp()|0){be=c[Cd>>2]|0;Kd=c[Zd>>2]|0;c[dd>>2]=Fd;c[ed>>2]=be;c[fd>>2]=Kd;c[gd>>2]=ip(c[dd>>2]|0,c[fd>>2]|0)|0;a[hd>>0]=a[(c[ed>>2]|0)+(c[gd>>2]<<1)>>0]|0;jp(c[dd>>2]|0,d[(c[ed>>2]|0)+(c[gd>>2]<<1)+1>>0]|0);Kd=a[hd>>0]|0;be=c[Vd>>2]|0;c[Vd>>2]=be+1;a[be>>0]=Kd;}if(hp()|0){Kd=c[Cd>>2]|0;be=c[Zd>>2]|0;c[_c>>2]=Gd;c[$c>>2]=Kd;c[ad>>2]=be;c[bd>>2]=ip(c[_c>>2]|0,c[ad>>2]|0)|0;a[cd>>0]=a[(c[$c>>2]|0)+(c[bd>>2]<<1)>>0]|0;jp(c[_c>>2]|0,d[(c[$c>>2]|0)+(c[bd>>2]<<1)+1>>0]|0);be=a[cd>>0]|0;Kd=c[Wd>>2]|0;c[Wd>>2]=Kd+1;a[Kd>>0]=be;}hp()|0;be=c[Cd>>2]|0;Kd=c[Zd>>2]|0;c[Vc>>2]=Dd;c[Wc>>2]=be;c[Xc>>2]=Kd;c[Yc>>2]=ip(c[Vc>>2]|0,c[Xc>>2]|0)|0;a[Zc>>0]=a[(c[Wc>>2]|0)+(c[Yc>>2]<<1)>>0]|0;jp(c[Vc>>2]|0,d[(c[Wc>>2]|0)+(c[Yc>>2]<<1)+1>>0]|0);Kd=a[Zc>>0]|0;be=c[Td>>2]|0;c[Td>>2]=be+1;a[be>>0]=Kd;hp()|0;Kd=c[Cd>>2]|0;be=c[Zd>>2]|0;c[Qc>>2]=Ed;c[Rc>>2]=Kd;c[Sc>>2]=be;c[Tc>>2]=ip(c[Qc>>2]|0,c[Sc>>2]|0)|0;a[Uc>>0]=a[(c[Rc>>2]|0)+(c[Tc>>2]<<1)>>0]|0;jp(c[Qc>>2]|0,d[(c[Rc>>2]|0)+(c[Tc>>2]<<1)+1>>0]|0);be=a[Uc>>0]|0;Kd=c[Ud>>2]|0;c[Ud>>2]=Kd+1;a[Kd>>0]=be;hp()|0;be=c[Cd>>2]|0;Kd=c[Zd>>2]|0;c[Lc>>2]=Fd;c[Mc>>2]=be;c[Nc>>2]=Kd;c[Oc>>2]=ip(c[Lc>>2]|0,c[Nc>>2]|0)|0;a[Pc>>0]=a[(c[Mc>>2]|0)+(c[Oc>>2]<<1)>>0]|0;jp(c[Lc>>2]|0,d[(c[Mc>>2]|0)+(c[Oc>>2]<<1)+1>>0]|0);Kd=a[Pc>>0]|0;be=c[Vd>>2]|0;c[Vd>>2]=be+1;a[be>>0]=Kd;hp()|0;Kd=c[Cd>>2]|0;be=c[Zd>>2]|0;c[Gc>>2]=Gd;c[Hc>>2]=Kd;c[Ic>>2]=be;c[Jc>>2]=ip(c[Gc>>2]|0,c[Ic>>2]|0)|0;a[Kc>>0]=a[(c[Hc>>2]|0)+(c[Jc>>2]<<1)>>0]|0;jp(c[Gc>>2]|0,d[(c[Hc>>2]|0)+(c[Jc>>2]<<1)+1>>0]|0);be=a[Kc>>0]|0;Kd=c[Wd>>2]|0;c[Wd>>2]=Kd+1;a[Kd>>0]=be;if(hp()|0){be=c[Cd>>2]|0;Kd=c[Zd>>2]|0;c[Bc>>2]=Dd;c[Cc>>2]=be;c[Dc>>2]=Kd;c[Ec>>2]=ip(c[Bc>>2]|0,c[Dc>>2]|0)|0;a[Fc>>0]=a[(c[Cc>>2]|0)+(c[Ec>>2]<<1)>>0]|0;jp(c[Bc>>2]|0,d[(c[Cc>>2]|0)+(c[Ec>>2]<<1)+1>>0]|0);Kd=a[Fc>>0]|0;be=c[Td>>2]|0;c[Td>>2]=be+1;a[be>>0]=Kd;}if(hp()|0){Kd=c[Cd>>2]|0;be=c[Zd>>2]|0;c[wc>>2]=Ed;c[xc>>2]=Kd;c[yc>>2]=be;c[zc>>2]=ip(c[wc>>2]|0,c[yc>>2]|0)|0;a[Ac>>0]=a[(c[xc>>2]|0)+(c[zc>>2]<<1)>>0]|0;jp(c[wc>>2]|0,d[(c[xc>>2]|0)+(c[zc>>2]<<1)+1>>0]|0);be=a[Ac>>0]|0;Kd=c[Ud>>2]|0;c[Ud>>2]=Kd+1;a[Kd>>0]=be;}if(hp()|0){be=c[Cd>>2]|0;Kd=c[Zd>>2]|0;c[rc>>2]=Fd;c[sc>>2]=be;c[tc>>2]=Kd;c[uc>>2]=ip(c[rc>>2]|0,c[tc>>2]|0)|0;a[vc>>0]=a[(c[sc>>2]|0)+(c[uc>>2]<<1)>>0]|0;jp(c[rc>>2]|0,d[(c[sc>>2]|0)+(c[uc>>2]<<1)+1>>0]|0);Kd=a[vc>>0]|0;be=c[Vd>>2]|0;c[Vd>>2]=be+1;a[be>>0]=Kd;}if(hp()|0){Kd=c[Cd>>2]|0;be=c[Zd>>2]|0;c[mc>>2]=Gd;c[nc>>2]=Kd;c[oc>>2]=be;c[pc>>2]=ip(c[mc>>2]|0,c[oc>>2]|0)|0;a[qc>>0]=a[(c[nc>>2]|0)+(c[pc>>2]<<1)>>0]|0;jp(c[mc>>2]|0,d[(c[nc>>2]|0)+(c[pc>>2]<<1)+1>>0]|0);be=a[qc>>0]|0;Kd=c[Wd>>2]|0;c[Wd>>2]=Kd+1;a[Kd>>0]=be;}be=c[Cd>>2]|0;Kd=c[Zd>>2]|0;c[hc>>2]=Dd;c[ic>>2]=be;c[jc>>2]=Kd;c[kc>>2]=ip(c[hc>>2]|0,c[jc>>2]|0)|0;a[lc>>0]=a[(c[ic>>2]|0)+(c[kc>>2]<<1)>>0]|0;jp(c[hc>>2]|0,d[(c[ic>>2]|0)+(c[kc>>2]<<1)+1>>0]|0);Kd=a[lc>>0]|0;be=c[Td>>2]|0;c[Td>>2]=be+1;a[be>>0]=Kd;Kd=c[Cd>>2]|0;be=c[Zd>>2]|0;c[cc>>2]=Ed;c[dc>>2]=Kd;c[ec>>2]=be;c[fc>>2]=ip(c[cc>>2]|0,c[ec>>2]|0)|0;a[gc>>0]=a[(c[dc>>2]|0)+(c[fc>>2]<<1)>>0]|0;jp(c[cc>>2]|0,d[(c[dc>>2]|0)+(c[fc>>2]<<1)+1>>0]|0);be=a[gc>>0]|0;Kd=c[Ud>>2]|0;c[Ud>>2]=Kd+1;a[Kd>>0]=be;be=c[Cd>>2]|0;Kd=c[Zd>>2]|0;c[Zb>>2]=Fd;c[_b>>2]=be;c[$b>>2]=Kd;c[ac>>2]=ip(c[Zb>>2]|0,c[$b>>2]|0)|0;a[bc>>0]=a[(c[_b>>2]|0)+(c[ac>>2]<<1)>>0]|0;jp(c[Zb>>2]|0,d[(c[_b>>2]|0)+(c[ac>>2]<<1)+1>>0]|0);Kd=a[bc>>0]|0;be=c[Vd>>2]|0;c[Vd>>2]=be+1;a[be>>0]=Kd;Kd=c[Cd>>2]|0;be=c[Zd>>2]|0;c[Ub>>2]=Gd;c[Vb>>2]=Kd;c[Wb>>2]=be;c[Xb>>2]=ip(c[Ub>>2]|0,c[Wb>>2]|0)|0;a[Yb>>0]=a[(c[Vb>>2]|0)+(c[Xb>>2]<<1)>>0]|0;jp(c[Ub>>2]|0,d[(c[Vb>>2]|0)+(c[Xb>>2]<<1)+1>>0]|0);be=a[Yb>>0]|0;Kd=c[Wd>>2]|0;c[Wd>>2]=Kd+1;a[Kd>>0]=be;gp(Dd)|0;gp(Ed)|0;gp(Fd)|0;gp(Gd)|0;}if((c[Td>>2]|0)>>>0>(c[Qd>>2]|0)>>>0){c[sd>>2]=-20;ie=c[sd>>2]|0;l=i;return ie|0;}if((c[Ud>>2]|0)>>>0>(c[Rd>>2]|0)>>>0){c[sd>>2]=-20;ie=c[sd>>2]|0;l=i;return ie|0;}if((c[Vd>>2]|0)>>>0>(c[Sd>>2]|0)>>>0){c[sd>>2]=-20;ie=c[sd>>2]|0;l=i;return ie|0;}Yb=c[Qd>>2]|0;Qd=c[Cd>>2]|0;Xb=c[Zd>>2]|0;c[Ob>>2]=c[Td>>2];c[Pb>>2]=Dd;c[Qb>>2]=Yb;c[Rb>>2]=Qd;c[Sb>>2]=Xb;c[Tb>>2]=c[Ob>>2];while(1){Tb=(gp(c[Pb>>2]|0)|0)==0&1;if(!(Tb&(c[Ob>>2]|0)>>>0<((c[Qb>>2]|0)+-3|0)>>>0))break;if(hp()|0){Tb=c[Rb>>2]|0;Xb=c[Sb>>2]|0;c[Jb>>2]=c[Pb>>2];c[Kb>>2]=Tb;c[Lb>>2]=Xb;c[Mb>>2]=ip(c[Jb>>2]|0,c[Lb>>2]|0)|0;a[Nb>>0]=a[(c[Kb>>2]|0)+(c[Mb>>2]<<1)>>0]|0;jp(c[Jb>>2]|0,d[(c[Kb>>2]|0)+(c[Mb>>2]<<1)+1>>0]|0);Xb=a[Nb>>0]|0;Tb=c[Ob>>2]|0;c[Ob>>2]=Tb+1;a[Tb>>0]=Xb;}hp()|0;Xb=c[Rb>>2]|0;Tb=c[Sb>>2]|0;c[Eb>>2]=c[Pb>>2];c[Fb>>2]=Xb;c[Gb>>2]=Tb;c[Hb>>2]=ip(c[Eb>>2]|0,c[Gb>>2]|0)|0;a[Ib>>0]=a[(c[Fb>>2]|0)+(c[Hb>>2]<<1)>>0]|0;jp(c[Eb>>2]|0,d[(c[Fb>>2]|0)+(c[Hb>>2]<<1)+1>>0]|0);Tb=a[Ib>>0]|0;Xb=c[Ob>>2]|0;c[Ob>>2]=Xb+1;a[Xb>>0]=Tb;if(hp()|0){Tb=c[Rb>>2]|0;Xb=c[Sb>>2]|0;c[zb>>2]=c[Pb>>2];c[Ab>>2]=Tb;c[Bb>>2]=Xb;c[Cb>>2]=ip(c[zb>>2]|0,c[Bb>>2]|0)|0;a[Db>>0]=a[(c[Ab>>2]|0)+(c[Cb>>2]<<1)>>0]|0;jp(c[zb>>2]|0,d[(c[Ab>>2]|0)+(c[Cb>>2]<<1)+1>>0]|0);Xb=a[Db>>0]|0;Tb=c[Ob>>2]|0;c[Ob>>2]=Tb+1;a[Tb>>0]=Xb;}Xb=c[Rb>>2]|0;Tb=c[Sb>>2]|0;c[ub>>2]=c[Pb>>2];c[vb>>2]=Xb;c[wb>>2]=Tb;c[xb>>2]=ip(c[ub>>2]|0,c[wb>>2]|0)|0;a[yb>>0]=a[(c[vb>>2]|0)+(c[xb>>2]<<1)>>0]|0;jp(c[ub>>2]|0,d[(c[vb>>2]|0)+(c[xb>>2]<<1)+1>>0]|0);Tb=a[yb>>0]|0;Xb=c[Ob>>2]|0;c[Ob>>2]=Xb+1;a[Xb>>0]=Tb;}a:do{if(kp()|0)while(1){yb=(gp(c[Pb>>2]|0)|0)==0&1;if(!(yb&(c[Ob>>2]|0)>>>0<(c[Qb>>2]|0)>>>0))break a;yb=c[Rb>>2]|0;xb=c[Sb>>2]|0;c[pb>>2]=c[Pb>>2];c[qb>>2]=yb;c[rb>>2]=xb;c[sb>>2]=ip(c[pb>>2]|0,c[rb>>2]|0)|0;a[tb>>0]=a[(c[qb>>2]|0)+(c[sb>>2]<<1)>>0]|0;jp(c[pb>>2]|0,d[(c[qb>>2]|0)+(c[sb>>2]<<1)+1>>0]|0);xb=a[tb>>0]|0;yb=c[Ob>>2]|0;c[Ob>>2]=yb+1;a[yb>>0]=xb;}}while(0);while(1){if((c[Ob>>2]|0)>>>0>=(c[Qb>>2]|0)>>>0)break;tb=c[Rb>>2]|0;sb=c[Sb>>2]|0;c[kb>>2]=c[Pb>>2];c[lb>>2]=tb;c[mb>>2]=sb;c[nb>>2]=ip(c[kb>>2]|0,c[mb>>2]|0)|0;a[ob>>0]=a[(c[lb>>2]|0)+(c[nb>>2]<<1)>>0]|0;jp(c[kb>>2]|0,d[(c[lb>>2]|0)+(c[nb>>2]<<1)+1>>0]|0);sb=a[ob>>0]|0;tb=c[Ob>>2]|0;c[Ob>>2]=tb+1;a[tb>>0]=sb;}Ob=c[Rd>>2]|0;Rd=c[Cd>>2]|0;ob=c[Zd>>2]|0;c[eb>>2]=c[Ud>>2];c[fb>>2]=Ed;c[gb>>2]=Ob;c[hb>>2]=Rd;c[ib>>2]=ob;c[jb>>2]=c[eb>>2];while(1){jb=(gp(c[fb>>2]|0)|0)==0&1;if(!(jb&(c[eb>>2]|0)>>>0<((c[gb>>2]|0)+-3|0)>>>0))break;if(hp()|0){jb=c[hb>>2]|0;ob=c[ib>>2]|0;c[$a>>2]=c[fb>>2];c[ab>>2]=jb;c[bb>>2]=ob;c[cb>>2]=ip(c[$a>>2]|0,c[bb>>2]|0)|0;a[db>>0]=a[(c[ab>>2]|0)+(c[cb>>2]<<1)>>0]|0;jp(c[$a>>2]|0,d[(c[ab>>2]|0)+(c[cb>>2]<<1)+1>>0]|0);ob=a[db>>0]|0;jb=c[eb>>2]|0;c[eb>>2]=jb+1;a[jb>>0]=ob;}hp()|0;ob=c[hb>>2]|0;jb=c[ib>>2]|0;c[Wa>>2]=c[fb>>2];c[Xa>>2]=ob;c[Ya>>2]=jb;c[Za>>2]=ip(c[Wa>>2]|0,c[Ya>>2]|0)|0;a[_a>>0]=a[(c[Xa>>2]|0)+(c[Za>>2]<<1)>>0]|0;jp(c[Wa>>2]|0,d[(c[Xa>>2]|0)+(c[Za>>2]<<1)+1>>0]|0);jb=a[_a>>0]|0;ob=c[eb>>2]|0;c[eb>>2]=ob+1;a[ob>>0]=jb;if(hp()|0){jb=c[hb>>2]|0;ob=c[ib>>2]|0;c[Ra>>2]=c[fb>>2];c[Sa>>2]=jb;c[Ta>>2]=ob;c[Ua>>2]=ip(c[Ra>>2]|0,c[Ta>>2]|0)|0;a[Va>>0]=a[(c[Sa>>2]|0)+(c[Ua>>2]<<1)>>0]|0;jp(c[Ra>>2]|0,d[(c[Sa>>2]|0)+(c[Ua>>2]<<1)+1>>0]|0);ob=a[Va>>0]|0;jb=c[eb>>2]|0;c[eb>>2]=jb+1;a[jb>>0]=ob;}ob=c[hb>>2]|0;jb=c[ib>>2]|0;c[Ma>>2]=c[fb>>2];c[Na>>2]=ob;c[Oa>>2]=jb;c[Pa>>2]=ip(c[Ma>>2]|0,c[Oa>>2]|0)|0;a[Qa>>0]=a[(c[Na>>2]|0)+(c[Pa>>2]<<1)>>0]|0;jp(c[Ma>>2]|0,d[(c[Na>>2]|0)+(c[Pa>>2]<<1)+1>>0]|0);jb=a[Qa>>0]|0;ob=c[eb>>2]|0;c[eb>>2]=ob+1;a[ob>>0]=jb;}b:do{if(kp()|0)while(1){Qa=(gp(c[fb>>2]|0)|0)==0&1;if(!(Qa&(c[eb>>2]|0)>>>0<(c[gb>>2]|0)>>>0))break b;Qa=c[hb>>2]|0;Pa=c[ib>>2]|0;c[Ha>>2]=c[fb>>2];c[Ia>>2]=Qa;c[Ja>>2]=Pa;c[Ka>>2]=ip(c[Ha>>2]|0,c[Ja>>2]|0)|0;a[La>>0]=a[(c[Ia>>2]|0)+(c[Ka>>2]<<1)>>0]|0;jp(c[Ha>>2]|0,d[(c[Ia>>2]|0)+(c[Ka>>2]<<1)+1>>0]|0);Pa=a[La>>0]|0;Qa=c[eb>>2]|0;c[eb>>2]=Qa+1;a[Qa>>0]=Pa;}}while(0);while(1){if((c[eb>>2]|0)>>>0>=(c[gb>>2]|0)>>>0)break;La=c[hb>>2]|0;Ka=c[ib>>2]|0;c[Ca>>2]=c[fb>>2];c[Da>>2]=La;c[Ea>>2]=Ka;c[Fa>>2]=ip(c[Ca>>2]|0,c[Ea>>2]|0)|0;a[Ga>>0]=a[(c[Da>>2]|0)+(c[Fa>>2]<<1)>>0]|0;jp(c[Ca>>2]|0,d[(c[Da>>2]|0)+(c[Fa>>2]<<1)+1>>0]|0);Ka=a[Ga>>0]|0;La=c[eb>>2]|0;c[eb>>2]=La+1;a[La>>0]=Ka;}eb=c[Sd>>2]|0;Sd=c[Cd>>2]|0;Ga=c[Zd>>2]|0;c[wa>>2]=c[Vd>>2];c[xa>>2]=Fd;c[ya>>2]=eb;c[za>>2]=Sd;c[Aa>>2]=Ga;c[Ba>>2]=c[wa>>2];while(1){Ba=(gp(c[xa>>2]|0)|0)==0&1;if(!(Ba&(c[wa>>2]|0)>>>0<((c[ya>>2]|0)+-3|0)>>>0))break;if(hp()|0){Ba=c[za>>2]|0;Ga=c[Aa>>2]|0;c[ra>>2]=c[xa>>2];c[sa>>2]=Ba;c[ta>>2]=Ga;c[ua>>2]=ip(c[ra>>2]|0,c[ta>>2]|0)|0;a[va>>0]=a[(c[sa>>2]|0)+(c[ua>>2]<<1)>>0]|0;jp(c[ra>>2]|0,d[(c[sa>>2]|0)+(c[ua>>2]<<1)+1>>0]|0);Ga=a[va>>0]|0;Ba=c[wa>>2]|0;c[wa>>2]=Ba+1;a[Ba>>0]=Ga;}hp()|0;Ga=c[za>>2]|0;Ba=c[Aa>>2]|0;c[ma>>2]=c[xa>>2];c[na>>2]=Ga;c[oa>>2]=Ba;c[pa>>2]=ip(c[ma>>2]|0,c[oa>>2]|0)|0;a[qa>>0]=a[(c[na>>2]|0)+(c[pa>>2]<<1)>>0]|0;jp(c[ma>>2]|0,d[(c[na>>2]|0)+(c[pa>>2]<<1)+1>>0]|0);Ba=a[qa>>0]|0;Ga=c[wa>>2]|0;c[wa>>2]=Ga+1;a[Ga>>0]=Ba;if(hp()|0){Ba=c[za>>2]|0;Ga=c[Aa>>2]|0;c[ha>>2]=c[xa>>2];c[ia>>2]=Ba;c[ja>>2]=Ga;c[ka>>2]=ip(c[ha>>2]|0,c[ja>>2]|0)|0;a[la>>0]=a[(c[ia>>2]|0)+(c[ka>>2]<<1)>>0]|0;jp(c[ha>>2]|0,d[(c[ia>>2]|0)+(c[ka>>2]<<1)+1>>0]|0);Ga=a[la>>0]|0;Ba=c[wa>>2]|0;c[wa>>2]=Ba+1;a[Ba>>0]=Ga;}Ga=c[za>>2]|0;Ba=c[Aa>>2]|0;c[ca>>2]=c[xa>>2];c[da>>2]=Ga;c[ea>>2]=Ba;c[fa>>2]=ip(c[ca>>2]|0,c[ea>>2]|0)|0;a[ga>>0]=a[(c[da>>2]|0)+(c[fa>>2]<<1)>>0]|0;jp(c[ca>>2]|0,d[(c[da>>2]|0)+(c[fa>>2]<<1)+1>>0]|0);Ba=a[ga>>0]|0;Ga=c[wa>>2]|0;c[wa>>2]=Ga+1;a[Ga>>0]=Ba;}c:do{if(kp()|0)while(1){ga=(gp(c[xa>>2]|0)|0)==0&1;if(!(ga&(c[wa>>2]|0)>>>0<(c[ya>>2]|0)>>>0))break c;ga=c[za>>2]|0;fa=c[Aa>>2]|0;c[Z>>2]=c[xa>>2];c[_>>2]=ga;c[$>>2]=fa;c[aa>>2]=ip(c[Z>>2]|0,c[$>>2]|0)|0;a[ba>>0]=a[(c[_>>2]|0)+(c[aa>>2]<<1)>>0]|0;jp(c[Z>>2]|0,d[(c[_>>2]|0)+(c[aa>>2]<<1)+1>>0]|0);fa=a[ba>>0]|0;ga=c[wa>>2]|0;c[wa>>2]=ga+1;a[ga>>0]=fa;}}while(0);while(1){if((c[wa>>2]|0)>>>0>=(c[ya>>2]|0)>>>0)break;ba=c[za>>2]|0;aa=c[Aa>>2]|0;c[U>>2]=c[xa>>2];c[V>>2]=ba;c[W>>2]=aa;c[X>>2]=ip(c[U>>2]|0,c[W>>2]|0)|0;a[Y>>0]=a[(c[V>>2]|0)+(c[X>>2]<<1)>>0]|0;jp(c[U>>2]|0,d[(c[V>>2]|0)+(c[X>>2]<<1)+1>>0]|0);aa=a[Y>>0]|0;ba=c[wa>>2]|0;c[wa>>2]=ba+1;a[ba>>0]=aa;}wa=c[Ad>>2]|0;Ad=c[Cd>>2]|0;Cd=c[Zd>>2]|0;c[O>>2]=c[Wd>>2];c[P>>2]=Gd;c[Q>>2]=wa;c[R>>2]=Ad;c[S>>2]=Cd;c[T>>2]=c[O>>2];while(1){T=(gp(c[P>>2]|0)|0)==0&1;if(!(T&(c[O>>2]|0)>>>0<((c[Q>>2]|0)+-3|0)>>>0))break;if(hp()|0){T=c[R>>2]|0;Cd=c[S>>2]|0;c[J>>2]=c[P>>2];c[K>>2]=T;c[L>>2]=Cd;c[M>>2]=ip(c[J>>2]|0,c[L>>2]|0)|0;a[N>>0]=a[(c[K>>2]|0)+(c[M>>2]<<1)>>0]|0;jp(c[J>>2]|0,d[(c[K>>2]|0)+(c[M>>2]<<1)+1>>0]|0);Cd=a[N>>0]|0;T=c[O>>2]|0;c[O>>2]=T+1;a[T>>0]=Cd;}hp()|0;Cd=c[R>>2]|0;T=c[S>>2]|0;c[E>>2]=c[P>>2];c[F>>2]=Cd;c[G>>2]=T;c[H>>2]=ip(c[E>>2]|0,c[G>>2]|0)|0;a[I>>0]=a[(c[F>>2]|0)+(c[H>>2]<<1)>>0]|0;jp(c[E>>2]|0,d[(c[F>>2]|0)+(c[H>>2]<<1)+1>>0]|0);T=a[I>>0]|0;Cd=c[O>>2]|0;c[O>>2]=Cd+1;a[Cd>>0]=T;if(hp()|0){T=c[R>>2]|0;Cd=c[S>>2]|0;c[z>>2]=c[P>>2];c[A>>2]=T;c[B>>2]=Cd;c[C>>2]=ip(c[z>>2]|0,c[B>>2]|0)|0;a[D>>0]=a[(c[A>>2]|0)+(c[C>>2]<<1)>>0]|0;jp(c[z>>2]|0,d[(c[A>>2]|0)+(c[C>>2]<<1)+1>>0]|0);Cd=a[D>>0]|0;T=c[O>>2]|0;c[O>>2]=T+1;a[T>>0]=Cd;}Cd=c[R>>2]|0;T=c[S>>2]|0;c[u>>2]=c[P>>2];c[v>>2]=Cd;c[w>>2]=T;c[x>>2]=ip(c[u>>2]|0,c[w>>2]|0)|0;a[y>>0]=a[(c[v>>2]|0)+(c[x>>2]<<1)>>0]|0;jp(c[u>>2]|0,d[(c[v>>2]|0)+(c[x>>2]<<1)+1>>0]|0);T=a[y>>0]|0;Cd=c[O>>2]|0;c[O>>2]=Cd+1;a[Cd>>0]=T;}d:do{if(kp()|0)while(1){y=(gp(c[P>>2]|0)|0)==0&1;if(!(y&(c[O>>2]|0)>>>0<(c[Q>>2]|0)>>>0))break d;y=c[R>>2]|0;x=c[S>>2]|0;c[p>>2]=c[P>>2];c[q>>2]=y;c[r>>2]=x;c[s>>2]=ip(c[p>>2]|0,c[r>>2]|0)|0;a[t>>0]=a[(c[q>>2]|0)+(c[s>>2]<<1)>>0]|0;jp(c[p>>2]|0,d[(c[q>>2]|0)+(c[s>>2]<<1)+1>>0]|0);x=a[t>>0]|0;y=c[O>>2]|0;c[O>>2]=y+1;a[y>>0]=x;}}while(0);while(1){if((c[O>>2]|0)>>>0>=(c[Q>>2]|0)>>>0)break;t=c[R>>2]|0;s=c[S>>2]|0;c[j>>2]=c[P>>2];c[k>>2]=t;c[m>>2]=s;c[n>>2]=ip(c[j>>2]|0,c[m>>2]|0)|0;a[o>>0]=a[(c[k>>2]|0)+(c[n>>2]<<1)>>0]|0;jp(c[j>>2]|0,d[(c[k>>2]|0)+(c[n>>2]<<1)+1>>0]|0);s=a[o>>0]|0;t=c[O>>2]|0;c[O>>2]=t+1;a[t>>0]=s;}O=lp(Dd)|0;Dd=O&(lp(Ed)|0);Ed=Dd&(lp(Fd)|0);c[ce>>2]=Ed&(lp(Gd)|0);if(c[ce>>2]|0){c[sd>>2]=c[ud>>2];ie=c[sd>>2]|0;l=i;return ie|0;}else{c[sd>>2]=-20;ie=c[sd>>2]|0;l=i;return ie|0;}return 0;}function xp(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,yc=0,zc=0,Ac=0,Bc=0,Cc=0,Dc=0,Ec=0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0,Kc=0,Lc=0,Mc=0,Nc=0,Oc=0,Pc=0,Qc=0,Rc=0,Sc=0,Tc=0,Uc=0,Vc=0,Wc=0,Xc=0,Yc=0,Zc=0,_c=0,$c=0,ad=0,bd=0,cd=0,dd=0,ed=0,fd=0,gd=0,hd=0,id=0,jd=0,kd=0,ld=0,md=0,nd=0,od=0,pd=0,qd=0,rd=0,sd=0,td=0,ud=0,vd=0,wd=0,xd=0,yd=0,zd=0,Ad=0,Bd=0,Cd=0,Dd=0,Ed=0,Fd=0,Gd=0,Hd=0,Id=0,Jd=0,Kd=0,Ld=0,Md=0,Nd=0,Od=0,Pd=0,Qd=0,Rd=0,Sd=0,Td=0,Ud=0,Vd=0,Wd=0,Xd=0,Yd=0,Zd=0,_d=0,$d=0,ae=0,be=0,ce=0,de=0,ee=0,fe=0,ge=0,he=0,ie=0;i=l;l=l+1024|0;j=i+968|0;k=i+964|0;m=i+960|0;n=i+956|0;o=i+1015|0;p=i+952|0;q=i+948|0;r=i+944|0;s=i+940|0;t=i+1014|0;u=i+936|0;v=i+932|0;w=i+928|0;x=i+924|0;y=i+1013|0;z=i+920|0;A=i+916|0;B=i+912|0;C=i+908|0;D=i+1012|0;E=i+904|0;F=i+900|0;G=i+896|0;H=i+892|0;I=i+1011|0;J=i+888|0;K=i+884|0;L=i+880|0;M=i+876|0;N=i+1010|0;O=i+872|0;P=i+868|0;Q=i+864|0;R=i+860|0;S=i+856|0;T=i+852|0;U=i+848|0;V=i+844|0;W=i+840|0;X=i+836|0;Y=i+1009|0;Z=i+832|0;_=i+828|0;$=i+824|0;aa=i+820|0;ba=i+1008|0;ca=i+816|0;da=i+812|0;ea=i+808|0;fa=i+804|0;ga=i+1007|0;ha=i+800|0;ia=i+796|0;ja=i+792|0;ka=i+788|0;la=i+1006|0;ma=i+784|0;na=i+780|0;oa=i+776|0;pa=i+772|0;qa=i+1005|0;ra=i+768|0;sa=i+764|0;ta=i+760|0;ua=i+756|0;va=i+1004|0;wa=i+752|0;xa=i+748|0;ya=i+744|0;za=i+740|0;Aa=i+736|0;Ba=i+732|0;Ca=i+728|0;Da=i+724|0;Ea=i+720|0;Fa=i+716|0;Ga=i+1003|0;Ha=i+712|0;Ia=i+708|0;Ja=i+704|0;Ka=i+700|0;La=i+1002|0;Ma=i+696|0;Na=i+692|0;Oa=i+688|0;Pa=i+684|0;Qa=i+1001|0;Ra=i+680|0;Sa=i+676|0;Ta=i+672|0;Ua=i+668|0;Va=i+1e3|0;Wa=i+664|0;Xa=i+660|0;Ya=i+656|0;Za=i+652|0;_a=i+999|0;$a=i+648|0;ab=i+644|0;bb=i+640|0;cb=i+636|0;db=i+998|0;eb=i+632|0;fb=i+628|0;gb=i+624|0;hb=i+620|0;ib=i+616|0;jb=i+612|0;kb=i+608|0;lb=i+604|0;mb=i+600|0;nb=i+596|0;ob=i+997|0;pb=i+592|0;qb=i+588|0;rb=i+584|0;sb=i+580|0;tb=i+996|0;ub=i+576|0;vb=i+572|0;wb=i+568|0;xb=i+564|0;yb=i+995|0;zb=i+560|0;Ab=i+556|0;Bb=i+552|0;Cb=i+548|0;Db=i+994|0;Eb=i+544|0;Fb=i+540|0;Gb=i+536|0;Hb=i+532|0;Ib=i+993|0;Jb=i+528|0;Kb=i+524|0;Lb=i+520|0;Mb=i+516|0;Nb=i+992|0;Ob=i+512|0;Pb=i+508|0;Qb=i+504|0;Rb=i+500|0;Sb=i+496|0;Tb=i+492|0;Ub=i+488|0;Vb=i+484|0;Wb=i+480|0;Xb=i+476|0;Yb=i+991|0;Zb=i+472|0;_b=i+468|0;$b=i+464|0;ac=i+460|0;bc=i+990|0;cc=i+456|0;dc=i+452|0;ec=i+448|0;fc=i+444|0;gc=i+989|0;hc=i+440|0;ic=i+436|0;jc=i+432|0;kc=i+428|0;lc=i+988|0;mc=i+424|0;nc=i+420|0;oc=i+416|0;pc=i+412|0;qc=i+987|0;rc=i+408|0;sc=i+404|0;tc=i+400|0;uc=i+396|0;vc=i+986|0;wc=i+392|0;xc=i+388|0;yc=i+384|0;zc=i+380|0;Ac=i+985|0;Bc=i+376|0;Cc=i+372|0;Dc=i+368|0;Ec=i+364|0;Fc=i+984|0;Gc=i+360|0;Hc=i+356|0;Ic=i+352|0;Jc=i+348|0;Kc=i+983|0;Lc=i+344|0;Mc=i+340|0;Nc=i+336|0;Oc=i+332|0;Pc=i+982|0;Qc=i+328|0;Rc=i+324|0;Sc=i+320|0;Tc=i+316|0;Uc=i+981|0;Vc=i+312|0;Wc=i+308|0;Xc=i+304|0;Yc=i+300|0;Zc=i+980|0;_c=i+296|0;$c=i+292|0;ad=i+288|0;bd=i+284|0;cd=i+979|0;dd=i+280|0;ed=i+276|0;fd=i+272|0;gd=i+268|0;hd=i+978|0;id=i+264|0;jd=i+260|0;kd=i+256|0;ld=i+252|0;md=i+977|0;nd=i+248|0;od=i+244|0;pd=i+240|0;qd=i+236|0;rd=i+976|0;sd=i+232|0;td=i+228|0;ud=i+224|0;vd=i+220|0;wd=i+216|0;xd=i+212|0;yd=i+208|0;zd=i+204|0;Ad=i+200|0;Bd=i+196|0;Cd=i+192|0;Dd=i+172|0;Ed=i+152|0;Fd=i+132|0;Gd=i+112|0;Hd=i+108|0;Id=i+104|0;Jd=i+100|0;Kd=i+96|0;Ld=i+92|0;Md=i+88|0;Nd=i+84|0;Od=i+80|0;Pd=i+76|0;Qd=i+72|0;Rd=i+68|0;Sd=i+64|0;Td=i+60|0;Ud=i+56|0;Vd=i+52|0;Wd=i+48|0;Xd=i+44|0;Yd=i+972|0;Zd=i+40|0;_d=i+36|0;$d=i+32|0;ae=i+28|0;be=i+24|0;ce=i+20|0;de=i+16|0;ee=i+12|0;fe=i+8|0;ge=i+4|0;he=i;c[de>>2]=b;c[ee>>2]=e;c[fe>>2]=f;c[ge>>2]=g;c[he>>2]=h;h=c[ee>>2]|0;ee=c[fe>>2]|0;fe=c[ge>>2]|0;ge=c[he>>2]|0;c[td>>2]=c[de>>2];c[ud>>2]=h;c[vd>>2]=ee;c[wd>>2]=fe;c[xd>>2]=ge;if((c[wd>>2]|0)>>>0<10){c[sd>>2]=-20;ie=c[sd>>2]|0;l=i;return ie|0;}c[yd>>2]=c[vd>>2];c[zd>>2]=c[td>>2];c[Ad>>2]=(c[zd>>2]|0)+(c[ud>>2]|0);c[Bd>>2]=(c[xd>>2]|0)+4;c[Cd>>2]=c[Bd>>2];c[Hd>>2]=(yp(c[yd>>2]|0)|0)&65535;c[Id>>2]=(yp((c[yd>>2]|0)+2|0)|0)&65535;c[Jd>>2]=(yp((c[yd>>2]|0)+4|0)|0)&65535;c[Kd>>2]=(c[wd>>2]|0)-((c[Hd>>2]|0)+(c[Id>>2]|0)+(c[Jd>>2]|0)+6);c[Ld>>2]=(c[yd>>2]|0)+6;c[Md>>2]=(c[Ld>>2]|0)+(c[Hd>>2]|0);c[Nd>>2]=(c[Md>>2]|0)+(c[Id>>2]|0);c[Od>>2]=(c[Nd>>2]|0)+(c[Jd>>2]|0);c[Pd>>2]=(((c[ud>>2]|0)+3|0)>>>0)/4|0;c[Qd>>2]=(c[zd>>2]|0)+(c[Pd>>2]|0);c[Rd>>2]=(c[Qd>>2]|0)+(c[Pd>>2]|0);c[Sd>>2]=(c[Rd>>2]|0)+(c[Pd>>2]|0);c[Td>>2]=c[zd>>2];c[Ud>>2]=c[Qd>>2];c[Vd>>2]=c[Rd>>2];c[Wd>>2]=c[Sd>>2];c[Xd>>2]=0;bp(Yd,c[xd>>2]|0);c[Zd>>2]=d[Yd+2>>0];if((c[Kd>>2]|0)>>>0>(c[wd>>2]|0)>>>0){c[sd>>2]=-20;ie=c[sd>>2]|0;l=i;return ie|0;}c[_d>>2]=fp(Dd,c[Ld>>2]|0,c[Hd>>2]|0)|0;if(ap(c[_d>>2]|0)|0){c[sd>>2]=c[_d>>2];ie=c[sd>>2]|0;l=i;return ie|0;}c[$d>>2]=fp(Ed,c[Md>>2]|0,c[Id>>2]|0)|0;if(ap(c[$d>>2]|0)|0){c[sd>>2]=c[$d>>2];ie=c[sd>>2]|0;l=i;return ie|0;}c[ae>>2]=fp(Fd,c[Nd>>2]|0,c[Jd>>2]|0)|0;if(ap(c[ae>>2]|0)|0){c[sd>>2]=c[ae>>2];ie=c[sd>>2]|0;l=i;return ie|0;}c[be>>2]=fp(Gd,c[Od>>2]|0,c[Kd>>2]|0)|0;if(ap(c[be>>2]|0)|0){c[sd>>2]=c[be>>2];ie=c[sd>>2]|0;l=i;return ie|0;}be=gp(Dd)|0;Kd=be|(gp(Ed)|0);be=Kd|(gp(Fd)|0);c[Xd>>2]=be|(gp(Gd)|0);while(1){if(c[Xd>>2]|0)break;if((c[Wd>>2]|0)>>>0>=((c[Ad>>2]|0)+-3|0)>>>0)break;if(hp()|0){be=c[Cd>>2]|0;Kd=c[Zd>>2]|0;c[nd>>2]=Dd;c[od>>2]=be;c[pd>>2]=Kd;c[qd>>2]=ip(c[nd>>2]|0,c[pd>>2]|0)|0;a[rd>>0]=a[(c[od>>2]|0)+(c[qd>>2]<<1)>>0]|0;jp(c[nd>>2]|0,d[(c[od>>2]|0)+(c[qd>>2]<<1)+1>>0]|0);Kd=a[rd>>0]|0;be=c[Td>>2]|0;c[Td>>2]=be+1;a[be>>0]=Kd;}if(hp()|0){Kd=c[Cd>>2]|0;be=c[Zd>>2]|0;c[id>>2]=Ed;c[jd>>2]=Kd;c[kd>>2]=be;c[ld>>2]=ip(c[id>>2]|0,c[kd>>2]|0)|0;a[md>>0]=a[(c[jd>>2]|0)+(c[ld>>2]<<1)>>0]|0;jp(c[id>>2]|0,d[(c[jd>>2]|0)+(c[ld>>2]<<1)+1>>0]|0);be=a[md>>0]|0;Kd=c[Ud>>2]|0;c[Ud>>2]=Kd+1;a[Kd>>0]=be;}if(hp()|0){be=c[Cd>>2]|0;Kd=c[Zd>>2]|0;c[dd>>2]=Fd;c[ed>>2]=be;c[fd>>2]=Kd;c[gd>>2]=ip(c[dd>>2]|0,c[fd>>2]|0)|0;a[hd>>0]=a[(c[ed>>2]|0)+(c[gd>>2]<<1)>>0]|0;jp(c[dd>>2]|0,d[(c[ed>>2]|0)+(c[gd>>2]<<1)+1>>0]|0);Kd=a[hd>>0]|0;be=c[Vd>>2]|0;c[Vd>>2]=be+1;a[be>>0]=Kd;}if(hp()|0){Kd=c[Cd>>2]|0;be=c[Zd>>2]|0;c[_c>>2]=Gd;c[$c>>2]=Kd;c[ad>>2]=be;c[bd>>2]=ip(c[_c>>2]|0,c[ad>>2]|0)|0;a[cd>>0]=a[(c[$c>>2]|0)+(c[bd>>2]<<1)>>0]|0;jp(c[_c>>2]|0,d[(c[$c>>2]|0)+(c[bd>>2]<<1)+1>>0]|0);be=a[cd>>0]|0;Kd=c[Wd>>2]|0;c[Wd>>2]=Kd+1;a[Kd>>0]=be;}hp()|0;be=c[Cd>>2]|0;Kd=c[Zd>>2]|0;c[Vc>>2]=Dd;c[Wc>>2]=be;c[Xc>>2]=Kd;c[Yc>>2]=ip(c[Vc>>2]|0,c[Xc>>2]|0)|0;a[Zc>>0]=a[(c[Wc>>2]|0)+(c[Yc>>2]<<1)>>0]|0;jp(c[Vc>>2]|0,d[(c[Wc>>2]|0)+(c[Yc>>2]<<1)+1>>0]|0);Kd=a[Zc>>0]|0;be=c[Td>>2]|0;c[Td>>2]=be+1;a[be>>0]=Kd;hp()|0;Kd=c[Cd>>2]|0;be=c[Zd>>2]|0;c[Qc>>2]=Ed;c[Rc>>2]=Kd;c[Sc>>2]=be;c[Tc>>2]=ip(c[Qc>>2]|0,c[Sc>>2]|0)|0;a[Uc>>0]=a[(c[Rc>>2]|0)+(c[Tc>>2]<<1)>>0]|0;jp(c[Qc>>2]|0,d[(c[Rc>>2]|0)+(c[Tc>>2]<<1)+1>>0]|0);be=a[Uc>>0]|0;Kd=c[Ud>>2]|0;c[Ud>>2]=Kd+1;a[Kd>>0]=be;hp()|0;be=c[Cd>>2]|0;Kd=c[Zd>>2]|0;c[Lc>>2]=Fd;c[Mc>>2]=be;c[Nc>>2]=Kd;c[Oc>>2]=ip(c[Lc>>2]|0,c[Nc>>2]|0)|0;a[Pc>>0]=a[(c[Mc>>2]|0)+(c[Oc>>2]<<1)>>0]|0;jp(c[Lc>>2]|0,d[(c[Mc>>2]|0)+(c[Oc>>2]<<1)+1>>0]|0);Kd=a[Pc>>0]|0;be=c[Vd>>2]|0;c[Vd>>2]=be+1;a[be>>0]=Kd;hp()|0;Kd=c[Cd>>2]|0;be=c[Zd>>2]|0;c[Gc>>2]=Gd;c[Hc>>2]=Kd;c[Ic>>2]=be;c[Jc>>2]=ip(c[Gc>>2]|0,c[Ic>>2]|0)|0;a[Kc>>0]=a[(c[Hc>>2]|0)+(c[Jc>>2]<<1)>>0]|0;jp(c[Gc>>2]|0,d[(c[Hc>>2]|0)+(c[Jc>>2]<<1)+1>>0]|0);be=a[Kc>>0]|0;Kd=c[Wd>>2]|0;c[Wd>>2]=Kd+1;a[Kd>>0]=be;if(hp()|0){be=c[Cd>>2]|0;Kd=c[Zd>>2]|0;c[Bc>>2]=Dd;c[Cc>>2]=be;c[Dc>>2]=Kd;c[Ec>>2]=ip(c[Bc>>2]|0,c[Dc>>2]|0)|0;a[Fc>>0]=a[(c[Cc>>2]|0)+(c[Ec>>2]<<1)>>0]|0;jp(c[Bc>>2]|0,d[(c[Cc>>2]|0)+(c[Ec>>2]<<1)+1>>0]|0);Kd=a[Fc>>0]|0;be=c[Td>>2]|0;c[Td>>2]=be+1;a[be>>0]=Kd;}if(hp()|0){Kd=c[Cd>>2]|0;be=c[Zd>>2]|0;c[wc>>2]=Ed;c[xc>>2]=Kd;c[yc>>2]=be;c[zc>>2]=ip(c[wc>>2]|0,c[yc>>2]|0)|0;a[Ac>>0]=a[(c[xc>>2]|0)+(c[zc>>2]<<1)>>0]|0;jp(c[wc>>2]|0,d[(c[xc>>2]|0)+(c[zc>>2]<<1)+1>>0]|0);be=a[Ac>>0]|0;Kd=c[Ud>>2]|0;c[Ud>>2]=Kd+1;a[Kd>>0]=be;}if(hp()|0){be=c[Cd>>2]|0;Kd=c[Zd>>2]|0;c[rc>>2]=Fd;c[sc>>2]=be;c[tc>>2]=Kd;c[uc>>2]=ip(c[rc>>2]|0,c[tc>>2]|0)|0;a[vc>>0]=a[(c[sc>>2]|0)+(c[uc>>2]<<1)>>0]|0;jp(c[rc>>2]|0,d[(c[sc>>2]|0)+(c[uc>>2]<<1)+1>>0]|0);Kd=a[vc>>0]|0;be=c[Vd>>2]|0;c[Vd>>2]=be+1;a[be>>0]=Kd;}if(hp()|0){Kd=c[Cd>>2]|0;be=c[Zd>>2]|0;c[mc>>2]=Gd;c[nc>>2]=Kd;c[oc>>2]=be;c[pc>>2]=ip(c[mc>>2]|0,c[oc>>2]|0)|0;a[qc>>0]=a[(c[nc>>2]|0)+(c[pc>>2]<<1)>>0]|0;jp(c[mc>>2]|0,d[(c[nc>>2]|0)+(c[pc>>2]<<1)+1>>0]|0);be=a[qc>>0]|0;Kd=c[Wd>>2]|0;c[Wd>>2]=Kd+1;a[Kd>>0]=be;}be=c[Cd>>2]|0;Kd=c[Zd>>2]|0;c[hc>>2]=Dd;c[ic>>2]=be;c[jc>>2]=Kd;c[kc>>2]=ip(c[hc>>2]|0,c[jc>>2]|0)|0;a[lc>>0]=a[(c[ic>>2]|0)+(c[kc>>2]<<1)>>0]|0;jp(c[hc>>2]|0,d[(c[ic>>2]|0)+(c[kc>>2]<<1)+1>>0]|0);Kd=a[lc>>0]|0;be=c[Td>>2]|0;c[Td>>2]=be+1;a[be>>0]=Kd;Kd=c[Cd>>2]|0;be=c[Zd>>2]|0;c[cc>>2]=Ed;c[dc>>2]=Kd;c[ec>>2]=be;c[fc>>2]=ip(c[cc>>2]|0,c[ec>>2]|0)|0;a[gc>>0]=a[(c[dc>>2]|0)+(c[fc>>2]<<1)>>0]|0;jp(c[cc>>2]|0,d[(c[dc>>2]|0)+(c[fc>>2]<<1)+1>>0]|0);be=a[gc>>0]|0;Kd=c[Ud>>2]|0;c[Ud>>2]=Kd+1;a[Kd>>0]=be;be=c[Cd>>2]|0;Kd=c[Zd>>2]|0;c[Zb>>2]=Fd;c[_b>>2]=be;c[$b>>2]=Kd;c[ac>>2]=ip(c[Zb>>2]|0,c[$b>>2]|0)|0;a[bc>>0]=a[(c[_b>>2]|0)+(c[ac>>2]<<1)>>0]|0;jp(c[Zb>>2]|0,d[(c[_b>>2]|0)+(c[ac>>2]<<1)+1>>0]|0);Kd=a[bc>>0]|0;be=c[Vd>>2]|0;c[Vd>>2]=be+1;a[be>>0]=Kd;Kd=c[Cd>>2]|0;be=c[Zd>>2]|0;c[Ub>>2]=Gd;c[Vb>>2]=Kd;c[Wb>>2]=be;c[Xb>>2]=ip(c[Ub>>2]|0,c[Wb>>2]|0)|0;a[Yb>>0]=a[(c[Vb>>2]|0)+(c[Xb>>2]<<1)>>0]|0;jp(c[Ub>>2]|0,d[(c[Vb>>2]|0)+(c[Xb>>2]<<1)+1>>0]|0);be=a[Yb>>0]|0;Kd=c[Wd>>2]|0;c[Wd>>2]=Kd+1;a[Kd>>0]=be;gp(Dd)|0;gp(Ed)|0;gp(Fd)|0;gp(Gd)|0;}if((c[Td>>2]|0)>>>0>(c[Qd>>2]|0)>>>0){c[sd>>2]=-20;ie=c[sd>>2]|0;l=i;return ie|0;}if((c[Ud>>2]|0)>>>0>(c[Rd>>2]|0)>>>0){c[sd>>2]=-20;ie=c[sd>>2]|0;l=i;return ie|0;}if((c[Vd>>2]|0)>>>0>(c[Sd>>2]|0)>>>0){c[sd>>2]=-20;ie=c[sd>>2]|0;l=i;return ie|0;}Yb=c[Qd>>2]|0;Qd=c[Cd>>2]|0;Xb=c[Zd>>2]|0;c[Ob>>2]=c[Td>>2];c[Pb>>2]=Dd;c[Qb>>2]=Yb;c[Rb>>2]=Qd;c[Sb>>2]=Xb;c[Tb>>2]=c[Ob>>2];while(1){Tb=(gp(c[Pb>>2]|0)|0)==0&1;if(!(Tb&(c[Ob>>2]|0)>>>0<((c[Qb>>2]|0)+-3|0)>>>0))break;if(hp()|0){Tb=c[Rb>>2]|0;Xb=c[Sb>>2]|0;c[Jb>>2]=c[Pb>>2];c[Kb>>2]=Tb;c[Lb>>2]=Xb;c[Mb>>2]=ip(c[Jb>>2]|0,c[Lb>>2]|0)|0;a[Nb>>0]=a[(c[Kb>>2]|0)+(c[Mb>>2]<<1)>>0]|0;jp(c[Jb>>2]|0,d[(c[Kb>>2]|0)+(c[Mb>>2]<<1)+1>>0]|0);Xb=a[Nb>>0]|0;Tb=c[Ob>>2]|0;c[Ob>>2]=Tb+1;a[Tb>>0]=Xb;}hp()|0;Xb=c[Rb>>2]|0;Tb=c[Sb>>2]|0;c[Eb>>2]=c[Pb>>2];c[Fb>>2]=Xb;c[Gb>>2]=Tb;c[Hb>>2]=ip(c[Eb>>2]|0,c[Gb>>2]|0)|0;a[Ib>>0]=a[(c[Fb>>2]|0)+(c[Hb>>2]<<1)>>0]|0;jp(c[Eb>>2]|0,d[(c[Fb>>2]|0)+(c[Hb>>2]<<1)+1>>0]|0);Tb=a[Ib>>0]|0;Xb=c[Ob>>2]|0;c[Ob>>2]=Xb+1;a[Xb>>0]=Tb;if(hp()|0){Tb=c[Rb>>2]|0;Xb=c[Sb>>2]|0;c[zb>>2]=c[Pb>>2];c[Ab>>2]=Tb;c[Bb>>2]=Xb;c[Cb>>2]=ip(c[zb>>2]|0,c[Bb>>2]|0)|0;a[Db>>0]=a[(c[Ab>>2]|0)+(c[Cb>>2]<<1)>>0]|0;jp(c[zb>>2]|0,d[(c[Ab>>2]|0)+(c[Cb>>2]<<1)+1>>0]|0);Xb=a[Db>>0]|0;Tb=c[Ob>>2]|0;c[Ob>>2]=Tb+1;a[Tb>>0]=Xb;}Xb=c[Rb>>2]|0;Tb=c[Sb>>2]|0;c[ub>>2]=c[Pb>>2];c[vb>>2]=Xb;c[wb>>2]=Tb;c[xb>>2]=ip(c[ub>>2]|0,c[wb>>2]|0)|0;a[yb>>0]=a[(c[vb>>2]|0)+(c[xb>>2]<<1)>>0]|0;jp(c[ub>>2]|0,d[(c[vb>>2]|0)+(c[xb>>2]<<1)+1>>0]|0);Tb=a[yb>>0]|0;Xb=c[Ob>>2]|0;c[Ob>>2]=Xb+1;a[Xb>>0]=Tb;}a:do{if(kp()|0)while(1){yb=(gp(c[Pb>>2]|0)|0)==0&1;if(!(yb&(c[Ob>>2]|0)>>>0<(c[Qb>>2]|0)>>>0))break a;yb=c[Rb>>2]|0;xb=c[Sb>>2]|0;c[pb>>2]=c[Pb>>2];c[qb>>2]=yb;c[rb>>2]=xb;c[sb>>2]=ip(c[pb>>2]|0,c[rb>>2]|0)|0;a[tb>>0]=a[(c[qb>>2]|0)+(c[sb>>2]<<1)>>0]|0;jp(c[pb>>2]|0,d[(c[qb>>2]|0)+(c[sb>>2]<<1)+1>>0]|0);xb=a[tb>>0]|0;yb=c[Ob>>2]|0;c[Ob>>2]=yb+1;a[yb>>0]=xb;}}while(0);while(1){if((c[Ob>>2]|0)>>>0>=(c[Qb>>2]|0)>>>0)break;tb=c[Rb>>2]|0;sb=c[Sb>>2]|0;c[kb>>2]=c[Pb>>2];c[lb>>2]=tb;c[mb>>2]=sb;c[nb>>2]=ip(c[kb>>2]|0,c[mb>>2]|0)|0;a[ob>>0]=a[(c[lb>>2]|0)+(c[nb>>2]<<1)>>0]|0;jp(c[kb>>2]|0,d[(c[lb>>2]|0)+(c[nb>>2]<<1)+1>>0]|0);sb=a[ob>>0]|0;tb=c[Ob>>2]|0;c[Ob>>2]=tb+1;a[tb>>0]=sb;}Ob=c[Rd>>2]|0;Rd=c[Cd>>2]|0;ob=c[Zd>>2]|0;c[eb>>2]=c[Ud>>2];c[fb>>2]=Ed;c[gb>>2]=Ob;c[hb>>2]=Rd;c[ib>>2]=ob;c[jb>>2]=c[eb>>2];while(1){jb=(gp(c[fb>>2]|0)|0)==0&1;if(!(jb&(c[eb>>2]|0)>>>0<((c[gb>>2]|0)+-3|0)>>>0))break;if(hp()|0){jb=c[hb>>2]|0;ob=c[ib>>2]|0;c[$a>>2]=c[fb>>2];c[ab>>2]=jb;c[bb>>2]=ob;c[cb>>2]=ip(c[$a>>2]|0,c[bb>>2]|0)|0;a[db>>0]=a[(c[ab>>2]|0)+(c[cb>>2]<<1)>>0]|0;jp(c[$a>>2]|0,d[(c[ab>>2]|0)+(c[cb>>2]<<1)+1>>0]|0);ob=a[db>>0]|0;jb=c[eb>>2]|0;c[eb>>2]=jb+1;a[jb>>0]=ob;}hp()|0;ob=c[hb>>2]|0;jb=c[ib>>2]|0;c[Wa>>2]=c[fb>>2];c[Xa>>2]=ob;c[Ya>>2]=jb;c[Za>>2]=ip(c[Wa>>2]|0,c[Ya>>2]|0)|0;a[_a>>0]=a[(c[Xa>>2]|0)+(c[Za>>2]<<1)>>0]|0;jp(c[Wa>>2]|0,d[(c[Xa>>2]|0)+(c[Za>>2]<<1)+1>>0]|0);jb=a[_a>>0]|0;ob=c[eb>>2]|0;c[eb>>2]=ob+1;a[ob>>0]=jb;if(hp()|0){jb=c[hb>>2]|0;ob=c[ib>>2]|0;c[Ra>>2]=c[fb>>2];c[Sa>>2]=jb;c[Ta>>2]=ob;c[Ua>>2]=ip(c[Ra>>2]|0,c[Ta>>2]|0)|0;a[Va>>0]=a[(c[Sa>>2]|0)+(c[Ua>>2]<<1)>>0]|0;jp(c[Ra>>2]|0,d[(c[Sa>>2]|0)+(c[Ua>>2]<<1)+1>>0]|0);ob=a[Va>>0]|0;jb=c[eb>>2]|0;c[eb>>2]=jb+1;a[jb>>0]=ob;}ob=c[hb>>2]|0;jb=c[ib>>2]|0;c[Ma>>2]=c[fb>>2];c[Na>>2]=ob;c[Oa>>2]=jb;c[Pa>>2]=ip(c[Ma>>2]|0,c[Oa>>2]|0)|0;a[Qa>>0]=a[(c[Na>>2]|0)+(c[Pa>>2]<<1)>>0]|0;jp(c[Ma>>2]|0,d[(c[Na>>2]|0)+(c[Pa>>2]<<1)+1>>0]|0);jb=a[Qa>>0]|0;ob=c[eb>>2]|0;c[eb>>2]=ob+1;a[ob>>0]=jb;}b:do{if(kp()|0)while(1){Qa=(gp(c[fb>>2]|0)|0)==0&1;if(!(Qa&(c[eb>>2]|0)>>>0<(c[gb>>2]|0)>>>0))break b;Qa=c[hb>>2]|0;Pa=c[ib>>2]|0;c[Ha>>2]=c[fb>>2];c[Ia>>2]=Qa;c[Ja>>2]=Pa;c[Ka>>2]=ip(c[Ha>>2]|0,c[Ja>>2]|0)|0;a[La>>0]=a[(c[Ia>>2]|0)+(c[Ka>>2]<<1)>>0]|0;jp(c[Ha>>2]|0,d[(c[Ia>>2]|0)+(c[Ka>>2]<<1)+1>>0]|0);Pa=a[La>>0]|0;Qa=c[eb>>2]|0;c[eb>>2]=Qa+1;a[Qa>>0]=Pa;}}while(0);while(1){if((c[eb>>2]|0)>>>0>=(c[gb>>2]|0)>>>0)break;La=c[hb>>2]|0;Ka=c[ib>>2]|0;c[Ca>>2]=c[fb>>2];c[Da>>2]=La;c[Ea>>2]=Ka;c[Fa>>2]=ip(c[Ca>>2]|0,c[Ea>>2]|0)|0;a[Ga>>0]=a[(c[Da>>2]|0)+(c[Fa>>2]<<1)>>0]|0;jp(c[Ca>>2]|0,d[(c[Da>>2]|0)+(c[Fa>>2]<<1)+1>>0]|0);Ka=a[Ga>>0]|0;La=c[eb>>2]|0;c[eb>>2]=La+1;a[La>>0]=Ka;}eb=c[Sd>>2]|0;Sd=c[Cd>>2]|0;Ga=c[Zd>>2]|0;c[wa>>2]=c[Vd>>2];c[xa>>2]=Fd;c[ya>>2]=eb;c[za>>2]=Sd;c[Aa>>2]=Ga;c[Ba>>2]=c[wa>>2];while(1){Ba=(gp(c[xa>>2]|0)|0)==0&1;if(!(Ba&(c[wa>>2]|0)>>>0<((c[ya>>2]|0)+-3|0)>>>0))break;if(hp()|0){Ba=c[za>>2]|0;Ga=c[Aa>>2]|0;c[ra>>2]=c[xa>>2];c[sa>>2]=Ba;c[ta>>2]=Ga;c[ua>>2]=ip(c[ra>>2]|0,c[ta>>2]|0)|0;a[va>>0]=a[(c[sa>>2]|0)+(c[ua>>2]<<1)>>0]|0;jp(c[ra>>2]|0,d[(c[sa>>2]|0)+(c[ua>>2]<<1)+1>>0]|0);Ga=a[va>>0]|0;Ba=c[wa>>2]|0;c[wa>>2]=Ba+1;a[Ba>>0]=Ga;}hp()|0;Ga=c[za>>2]|0;Ba=c[Aa>>2]|0;c[ma>>2]=c[xa>>2];c[na>>2]=Ga;c[oa>>2]=Ba;c[pa>>2]=ip(c[ma>>2]|0,c[oa>>2]|0)|0;a[qa>>0]=a[(c[na>>2]|0)+(c[pa>>2]<<1)>>0]|0;jp(c[ma>>2]|0,d[(c[na>>2]|0)+(c[pa>>2]<<1)+1>>0]|0);Ba=a[qa>>0]|0;Ga=c[wa>>2]|0;c[wa>>2]=Ga+1;a[Ga>>0]=Ba;if(hp()|0){Ba=c[za>>2]|0;Ga=c[Aa>>2]|0;c[ha>>2]=c[xa>>2];c[ia>>2]=Ba;c[ja>>2]=Ga;c[ka>>2]=ip(c[ha>>2]|0,c[ja>>2]|0)|0;a[la>>0]=a[(c[ia>>2]|0)+(c[ka>>2]<<1)>>0]|0;jp(c[ha>>2]|0,d[(c[ia>>2]|0)+(c[ka>>2]<<1)+1>>0]|0);Ga=a[la>>0]|0;Ba=c[wa>>2]|0;c[wa>>2]=Ba+1;a[Ba>>0]=Ga;}Ga=c[za>>2]|0;Ba=c[Aa>>2]|0;c[ca>>2]=c[xa>>2];c[da>>2]=Ga;c[ea>>2]=Ba;c[fa>>2]=ip(c[ca>>2]|0,c[ea>>2]|0)|0;a[ga>>0]=a[(c[da>>2]|0)+(c[fa>>2]<<1)>>0]|0;jp(c[ca>>2]|0,d[(c[da>>2]|0)+(c[fa>>2]<<1)+1>>0]|0);Ba=a[ga>>0]|0;Ga=c[wa>>2]|0;c[wa>>2]=Ga+1;a[Ga>>0]=Ba;}c:do{if(kp()|0)while(1){ga=(gp(c[xa>>2]|0)|0)==0&1;if(!(ga&(c[wa>>2]|0)>>>0<(c[ya>>2]|0)>>>0))break c;ga=c[za>>2]|0;fa=c[Aa>>2]|0;c[Z>>2]=c[xa>>2];c[_>>2]=ga;c[$>>2]=fa;c[aa>>2]=ip(c[Z>>2]|0,c[$>>2]|0)|0;a[ba>>0]=a[(c[_>>2]|0)+(c[aa>>2]<<1)>>0]|0;jp(c[Z>>2]|0,d[(c[_>>2]|0)+(c[aa>>2]<<1)+1>>0]|0);fa=a[ba>>0]|0;ga=c[wa>>2]|0;c[wa>>2]=ga+1;a[ga>>0]=fa;}}while(0);while(1){if((c[wa>>2]|0)>>>0>=(c[ya>>2]|0)>>>0)break;ba=c[za>>2]|0;aa=c[Aa>>2]|0;c[U>>2]=c[xa>>2];c[V>>2]=ba;c[W>>2]=aa;c[X>>2]=ip(c[U>>2]|0,c[W>>2]|0)|0;a[Y>>0]=a[(c[V>>2]|0)+(c[X>>2]<<1)>>0]|0;jp(c[U>>2]|0,d[(c[V>>2]|0)+(c[X>>2]<<1)+1>>0]|0);aa=a[Y>>0]|0;ba=c[wa>>2]|0;c[wa>>2]=ba+1;a[ba>>0]=aa;}wa=c[Ad>>2]|0;Ad=c[Cd>>2]|0;Cd=c[Zd>>2]|0;c[O>>2]=c[Wd>>2];c[P>>2]=Gd;c[Q>>2]=wa;c[R>>2]=Ad;c[S>>2]=Cd;c[T>>2]=c[O>>2];while(1){T=(gp(c[P>>2]|0)|0)==0&1;if(!(T&(c[O>>2]|0)>>>0<((c[Q>>2]|0)+-3|0)>>>0))break;if(hp()|0){T=c[R>>2]|0;Cd=c[S>>2]|0;c[J>>2]=c[P>>2];c[K>>2]=T;c[L>>2]=Cd;c[M>>2]=ip(c[J>>2]|0,c[L>>2]|0)|0;a[N>>0]=a[(c[K>>2]|0)+(c[M>>2]<<1)>>0]|0;jp(c[J>>2]|0,d[(c[K>>2]|0)+(c[M>>2]<<1)+1>>0]|0);Cd=a[N>>0]|0;T=c[O>>2]|0;c[O>>2]=T+1;a[T>>0]=Cd;}hp()|0;Cd=c[R>>2]|0;T=c[S>>2]|0;c[E>>2]=c[P>>2];c[F>>2]=Cd;c[G>>2]=T;c[H>>2]=ip(c[E>>2]|0,c[G>>2]|0)|0;a[I>>0]=a[(c[F>>2]|0)+(c[H>>2]<<1)>>0]|0;jp(c[E>>2]|0,d[(c[F>>2]|0)+(c[H>>2]<<1)+1>>0]|0);T=a[I>>0]|0;Cd=c[O>>2]|0;c[O>>2]=Cd+1;a[Cd>>0]=T;if(hp()|0){T=c[R>>2]|0;Cd=c[S>>2]|0;c[z>>2]=c[P>>2];c[A>>2]=T;c[B>>2]=Cd;c[C>>2]=ip(c[z>>2]|0,c[B>>2]|0)|0;a[D>>0]=a[(c[A>>2]|0)+(c[C>>2]<<1)>>0]|0;jp(c[z>>2]|0,d[(c[A>>2]|0)+(c[C>>2]<<1)+1>>0]|0);Cd=a[D>>0]|0;T=c[O>>2]|0;c[O>>2]=T+1;a[T>>0]=Cd;}Cd=c[R>>2]|0;T=c[S>>2]|0;c[u>>2]=c[P>>2];c[v>>2]=Cd;c[w>>2]=T;c[x>>2]=ip(c[u>>2]|0,c[w>>2]|0)|0;a[y>>0]=a[(c[v>>2]|0)+(c[x>>2]<<1)>>0]|0;jp(c[u>>2]|0,d[(c[v>>2]|0)+(c[x>>2]<<1)+1>>0]|0);T=a[y>>0]|0;Cd=c[O>>2]|0;c[O>>2]=Cd+1;a[Cd>>0]=T;}d:do{if(kp()|0)while(1){y=(gp(c[P>>2]|0)|0)==0&1;if(!(y&(c[O>>2]|0)>>>0<(c[Q>>2]|0)>>>0))break d;y=c[R>>2]|0;x=c[S>>2]|0;c[p>>2]=c[P>>2];c[q>>2]=y;c[r>>2]=x;c[s>>2]=ip(c[p>>2]|0,c[r>>2]|0)|0;a[t>>0]=a[(c[q>>2]|0)+(c[s>>2]<<1)>>0]|0;jp(c[p>>2]|0,d[(c[q>>2]|0)+(c[s>>2]<<1)+1>>0]|0);x=a[t>>0]|0;y=c[O>>2]|0;c[O>>2]=y+1;a[y>>0]=x;}}while(0);while(1){if((c[O>>2]|0)>>>0>=(c[Q>>2]|0)>>>0)break;t=c[R>>2]|0;s=c[S>>2]|0;c[j>>2]=c[P>>2];c[k>>2]=t;c[m>>2]=s;c[n>>2]=ip(c[j>>2]|0,c[m>>2]|0)|0;a[o>>0]=a[(c[k>>2]|0)+(c[n>>2]<<1)>>0]|0;jp(c[j>>2]|0,d[(c[k>>2]|0)+(c[n>>2]<<1)+1>>0]|0);s=a[o>>0]|0;t=c[O>>2]|0;c[O>>2]=t+1;a[t>>0]=s;}O=lp(Dd)|0;Dd=O&(lp(Ed)|0);Ed=Dd&(lp(Fd)|0);c[ce>>2]=Ed&(lp(Gd)|0);if(c[ce>>2]|0){c[sd>>2]=c[ud>>2];ie=c[sd>>2]|0;l=i;return ie|0;}else{c[sd>>2]=-20;ie=c[sd>>2]|0;l=i;return ie|0;}return 0;}function yp(a){a=a|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[g>>2]=a;a=(pp()|0)!=0;i=c[g>>2]|0;if(a){b[f>>1]=zp(i)|0;j=b[f>>1]|0;l=e;return j|0;}else{c[h>>2]=i;b[f>>1]=(d[c[h>>2]>>0]|0)+((d[(c[h>>2]|0)+1>>0]|0)<<8);j=b[f>>1]|0;l=e;return j|0;}return 0;}function zp(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|0;}function Ap(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;j=l;l=l+48|0;k=j+40|0;m=j+36|0;n=j+32|0;o=j+28|0;p=j+24|0;q=j+20|0;r=j+16|0;s=j+12|0;t=j+8|0;u=j+4|0;v=j;c[m>>2]=a;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=i;c[u>>2]=c[p>>2];c[v>>2]=$o(c[m>>2]|0,c[p>>2]|0,c[q>>2]|0,c[r>>2]|0,c[s>>2]|0)|0;s=(ap(c[v>>2]|0)|0)!=0;r=c[v>>2]|0;if(s){c[k>>2]=r;w=c[k>>2]|0;l=j;return w|0;}if(r>>>0>=(c[q>>2]|0)>>>0){c[k>>2]=-72;w=c[k>>2]|0;l=j;return w|0;}else{c[u>>2]=(c[u>>2]|0)+(c[v>>2]|0);c[q>>2]=(c[q>>2]|0)-(c[v>>2]|0);c[k>>2]=vp(c[n>>2]|0,c[o>>2]|0,c[u>>2]|0,c[q>>2]|0,c[m>>2]|0,c[t>>2]|0)|0;w=c[k>>2]|0;l=j;return w|0;}return 0;}function Bp(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;i=l;l=l+160|0;j=i+140|0;k=i+136|0;m=i+132|0;n=i+128|0;o=i+124|0;p=i+120|0;q=i+116|0;r=i+112|0;s=i+108|0;t=i+104|0;u=i+144|0;v=i+100|0;w=i+96|0;x=i+92|0;y=i+88|0;z=i+84|0;A=i+80|0;B=i+76|0;C=i+72|0;D=i+68|0;E=i+64|0;F=i+60|0;G=i+56|0;H=i+52|0;I=i+48|0;J=i+44|0;K=i+40|0;L=i+36|0;M=i+32|0;N=i+28|0;O=i+24|0;P=i+20|0;Q=i+16|0;R=i+12|0;S=i+8|0;T=i+4|0;U=i;c[k>>2]=b;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;bp(u,c[k>>2]|0);c[v>>2]=d[u>>0];c[x>>2]=(c[k>>2]|0)+4;c[y>>2]=c[x>>2];c[F>>2]=0;c[A>>2]=(c[o>>2]|0)+(c[F>>2]<<2);c[F>>2]=(c[F>>2]|0)+156;c[B>>2]=(c[o>>2]|0)+(c[F>>2]<<2);c[F>>2]=(c[F>>2]|0)+13;c[C>>2]=(c[o>>2]|0)+(c[F>>2]<<2);c[F>>2]=(c[F>>2]|0)+14;c[D>>2]=(c[o>>2]|0)+(((c[F>>2]<<2>>>0)/2|0)<<1);c[F>>2]=(c[F>>2]|0)+128;c[E>>2]=(c[o>>2]|0)+(c[F>>2]<<2);c[F>>2]=(c[F>>2]|0)+64;if(c[F>>2]<<2>>>0>(c[p>>2]|0)>>>0){c[j>>2]=-44;V=c[j>>2]|0;l=i;return V|0;}c[z>>2]=(c[C>>2]|0)+4;p=c[B>>2]|0;F=p+108|0;do{c[p>>2]=0;p=p+4|0;}while((p|0)<(F|0));if((c[v>>2]|0)>>>0>12){c[j>>2]=-44;V=c[j>>2]|0;l=i;return V|0;}c[w>>2]=fh(c[E>>2]|0,256,c[B>>2]|0,t,q,c[m>>2]|0,c[n>>2]|0)|0;if(ap(c[w>>2]|0)|0){c[j>>2]=c[w>>2];V=c[j>>2]|0;l=i;return V|0;}if((c[q>>2]|0)>>>0>(c[v>>2]|0)>>>0){c[j>>2]=-44;V=c[j>>2]|0;l=i;return V|0;}c[r>>2]=c[q>>2];while(1){if(c[(c[B>>2]|0)+(c[r>>2]<<2)>>2]|0)break;c[r>>2]=(c[r>>2]|0)+-1;}c[H>>2]=0;c[G>>2]=1;while(1){W=c[H>>2]|0;if((c[G>>2]|0)>>>0>=((c[r>>2]|0)+1|0)>>>0)break;c[I>>2]=W;c[H>>2]=(c[H>>2]|0)+(c[(c[B>>2]|0)+(c[G>>2]<<2)>>2]|0);c[(c[z>>2]|0)+(c[G>>2]<<2)>>2]=c[I>>2];c[G>>2]=(c[G>>2]|0)+1;}c[c[z>>2]>>2]=W;c[s>>2]=c[H>>2];c[J>>2]=0;while(1){if((c[J>>2]|0)>>>0>=(c[t>>2]|0)>>>0)break;c[K>>2]=d[(c[E>>2]|0)+(c[J>>2]|0)>>0];H=(c[z>>2]|0)+(c[K>>2]<<2)|0;W=c[H>>2]|0;c[H>>2]=W+1;c[L>>2]=W;a[(c[D>>2]|0)+(c[L>>2]<<1)>>0]=c[J>>2];a[(c[D>>2]|0)+(c[L>>2]<<1)+1>>0]=c[K>>2];c[J>>2]=(c[J>>2]|0)+1;}c[c[z>>2]>>2]=0;c[M>>2]=c[A>>2];c[N>>2]=(c[v>>2]|0)-(c[q>>2]|0)-1;c[O>>2]=0;c[P>>2]=1;while(1){if((c[P>>2]|0)>>>0>=((c[r>>2]|0)+1|0)>>>0)break;c[Q>>2]=c[O>>2];c[O>>2]=(c[O>>2]|0)+(c[(c[B>>2]|0)+(c[P>>2]<<2)>>2]<<(c[P>>2]|0)+(c[N>>2]|0));c[(c[M>>2]|0)+(c[P>>2]<<2)>>2]=c[Q>>2];c[P>>2]=(c[P>>2]|0)+1;}c[R>>2]=(c[q>>2]|0)+1-(c[r>>2]|0);c[S>>2]=c[R>>2];while(1){if((c[S>>2]|0)>>>0>=((c[v>>2]|0)-(c[R>>2]|0)+1|0)>>>0)break;c[T>>2]=(c[A>>2]|0)+((c[S>>2]|0)*52|0);c[U>>2]=1;while(1){if((c[U>>2]|0)>>>0>=((c[r>>2]|0)+1|0)>>>0)break;c[(c[T>>2]|0)+(c[U>>2]<<2)>>2]=(c[(c[M>>2]|0)+(c[U>>2]<<2)>>2]|0)>>>(c[S>>2]|0);c[U>>2]=(c[U>>2]|0)+1;}c[S>>2]=(c[S>>2]|0)+1;}Cp(c[y>>2]|0,c[v>>2]|0,c[D>>2]|0,c[s>>2]|0,c[C>>2]|0,c[A>>2]|0,c[r>>2]|0,(c[q>>2]|0)+1|0);a[u+2>>0]=c[v>>2];a[u+1>>0]=1;v=c[k>>2]|0;a[v>>0]=a[u>>0]|0;a[v+1>>0]=a[u+1>>0]|0;a[v+2>>0]=a[u+2>>0]|0;a[v+3>>0]=a[u+3>>0]|0;c[j>>2]=c[w>>2];V=c[j>>2]|0;l=i;return V|0;}function Cp(e,f,g,h,i,j,k,m){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;n=l;l=l+144|0;o=n+124|0;p=n+120|0;q=n+116|0;r=n+112|0;s=n+108|0;t=n+104|0;u=n+100|0;v=n+96|0;w=n;x=n+92|0;y=n+88|0;z=n+84|0;A=n+132|0;B=n+80|0;C=n+76|0;D=n+72|0;E=n+68|0;F=n+64|0;G=n+60|0;H=n+128|0;I=n+56|0;J=n+52|0;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[u>>2]=k;c[v>>2]=m;c[x>>2]=(c[v>>2]|0)-(c[p>>2]|0);c[y>>2]=(c[v>>2]|0)-(c[u>>2]|0);u=w;m=c[t>>2]|0;k=u+52|0;do{c[u>>2]=c[m>>2];u=u+4|0;m=m+4|0;}while((u|0)<(k|0));c[z>>2]=0;while(1){if((c[z>>2]|0)>>>0>=(c[r>>2]|0)>>>0)break;b[A>>1]=d[(c[q>>2]|0)+(c[z>>2]<<1)>>0]|0;c[B>>2]=d[(c[q>>2]|0)+(c[z>>2]<<1)+1>>0];c[C>>2]=(c[v>>2]|0)-(c[B>>2]|0);c[D>>2]=c[w+(c[B>>2]<<2)>>2];c[E>>2]=1<<(c[p>>2]|0)-(c[C>>2]|0);a:do{if(((c[p>>2]|0)-(c[C>>2]|0)|0)>>>0>=(c[y>>2]|0)>>>0){m=(c[C>>2]|0)+(c[x>>2]|0)|0;c[G>>2]=m;c[G>>2]=(c[G>>2]|0)<1?1:m;c[F>>2]=c[(c[s>>2]|0)+(c[G>>2]<<2)>>2];Dp((c[o>>2]|0)+(c[D>>2]<<2)|0,(c[p>>2]|0)-(c[C>>2]|0)|0,c[C>>2]|0,(c[t>>2]|0)+((c[C>>2]|0)*52|0)|0,c[G>>2]|0,(c[q>>2]|0)+(c[F>>2]<<1)|0,(c[r>>2]|0)-(c[F>>2]|0)|0,c[v>>2]|0,b[A>>1]|0);}else{Ep(H,b[A>>1]|0);a[H+2>>0]=c[C>>2];a[H+3>>0]=1;c[I>>2]=(c[D>>2]|0)+(c[E>>2]|0);c[J>>2]=c[D>>2];while(1){if((c[J>>2]|0)>>>0>=(c[I>>2]|0)>>>0)break a;m=(c[o>>2]|0)+(c[J>>2]<<2)|0;b[m>>1]=b[H>>1]|0;b[m+2>>1]=b[H+2>>1]|0;c[J>>2]=(c[J>>2]|0)+1;}}}while(0);m=w+(c[B>>2]<<2)|0;c[m>>2]=(c[m>>2]|0)+(c[E>>2]|0);c[z>>2]=(c[z>>2]|0)+1;}l=n;return;}function Dp(f,g,h,i,j,k,m,n,o){f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;p=l;l=l+144|0;q=p+120|0;r=p+116|0;s=p+112|0;t=p+108|0;u=p+104|0;v=p+100|0;w=p+96|0;x=p+92|0;y=p+128|0;z=p+124|0;A=p;B=p+88|0;C=p+84|0;D=p+80|0;E=p+76|0;F=p+72|0;G=p+68|0;H=p+64|0;I=p+60|0;J=p+56|0;K=p+52|0;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=i;c[u>>2]=j;c[v>>2]=k;c[w>>2]=m;c[x>>2]=n;b[y>>1]=o;o=A;n=c[t>>2]|0;t=o+52|0;do{c[o>>2]=c[n>>2];o=o+4|0;n=n+4|0;}while((o|0)<(t|0));a:do{if((c[u>>2]|0)>1){c[C>>2]=c[A+(c[u>>2]<<2)>>2];Ep(z,b[y>>1]|0);a[z+2>>0]=c[s>>2];a[z+3>>0]=1;c[B>>2]=0;while(1){if((c[B>>2]|0)>>>0>=(c[C>>2]|0)>>>0)break a;n=(c[q>>2]|0)+(c[B>>2]<<2)|0;b[n>>1]=b[z>>1]|0;b[n+2>>1]=b[z+2>>1]|0;c[B>>2]=(c[B>>2]|0)+1;}}}while(0);c[D>>2]=0;while(1){if((c[D>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;c[E>>2]=d[(c[v>>2]|0)+(c[D>>2]<<1)>>0];c[F>>2]=d[(c[v>>2]|0)+(c[D>>2]<<1)+1>>0];c[G>>2]=(c[x>>2]|0)-(c[F>>2]|0);c[H>>2]=1<<(c[r>>2]|0)-(c[G>>2]|0);c[I>>2]=c[A+(c[F>>2]<<2)>>2];c[J>>2]=c[I>>2];c[K>>2]=(c[I>>2]|0)+(c[H>>2]|0);Ep(z,(e[y>>1]|0)+(c[E>>2]<<8)&65535);a[z+2>>0]=(c[G>>2]|0)+(c[s>>2]|0);a[z+3>>0]=2;do{B=c[q>>2]|0;C=c[J>>2]|0;c[J>>2]=C+1;u=B+(C<<2)|0;b[u>>1]=b[z>>1]|0;b[u+2>>1]=b[z+2>>1]|0;}while((c[J>>2]|0)>>>0<(c[K>>2]|0)>>>0);u=A+(c[F>>2]<<2)|0;c[u>>2]=(c[u>>2]|0)+(c[H>>2]|0);c[D>>2]=(c[D>>2]|0)+1;}l=p;return;}function Ep(d,f){d=d|0;f=f|0;var g=0,h=0,i=0,j=0;g=l;l=l+16|0;h=g+4|0;i=g+8|0;j=g;c[h>>2]=d;b[i>>1]=f;f=(pp()|0)!=0;d=c[h>>2]|0;if(f){Fp(d,b[i>>1]|0);l=g;return;}else{c[j>>2]=d;a[c[j>>2]>>0]=b[i>>1];a[(c[j>>2]|0)+1>>0]=(e[i>>1]|0)>>8;l=g;return;}}function Fp(d,e){d=d|0;e=e|0;var f=0,g=0,h=0;f=l;l=l+16|0;g=f;h=f+4|0;c[g>>2]=d;b[h>>1]=e;e=b[h>>1]|0;h=c[g>>2]|0;a[h>>0]=e;a[h+1>>0]=e>>8;l=f;return;}function Gp(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;h=l;l=l+32|0;i=h+24|0;j=h+20|0;k=h+16|0;m=h+12|0;n=h+8|0;o=h+4|0;p=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;g=c[j>>2]|0;j=c[k>>2]|0;k=c[m>>2]|0;m=c[n>>2]|0;n=c[o>>2]|0;if(c[p>>2]|0){c[i>>2]=Hp(g,j,k,m,n)|0;q=c[i>>2]|0;l=h;return q|0;}else{c[i>>2]=Ip(g,j,k,m,n)|0;q=c[i>>2]|0;l=h;return q|0;}return 0;}function Hp(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0;i=l;l=l+256|0;j=i+244|0;k=i+240|0;m=i+236|0;n=i+232|0;o=i+228|0;p=i+224|0;q=i+220|0;r=i+216|0;s=i+212|0;t=i+208|0;u=i+204|0;v=i+200|0;w=i+196|0;x=i+192|0;y=i+188|0;z=i+184|0;A=i+180|0;B=i+176|0;C=i+172|0;D=i+168|0;E=i+164|0;F=i+160|0;G=i+156|0;H=i+152|0;I=i+148|0;J=i+144|0;K=i+140|0;L=i+136|0;M=i+132|0;N=i+128|0;O=i+124|0;P=i+120|0;Q=i+116|0;R=i+112|0;S=i+108|0;T=i+104|0;U=i+100|0;V=i+96|0;W=i+92|0;X=i+88|0;Y=i+80|0;Z=i+76|0;_=i+72|0;$=i+68|0;aa=i+64|0;ba=i+60|0;ca=i+40|0;da=i+36|0;ea=i+32|0;fa=i+28|0;ga=i+24|0;ha=i+20|0;ia=i+248|0;ja=i+16|0;ka=i+12|0;la=i+8|0;ma=i+4|0;na=i;c[ja>>2]=b;c[ka>>2]=e;c[la>>2]=f;c[ma>>2]=g;c[na>>2]=h;h=c[ka>>2]|0;ka=c[la>>2]|0;la=c[ma>>2]|0;ma=c[na>>2]|0;c[Z>>2]=c[ja>>2];c[_>>2]=h;c[$>>2]=ka;c[aa>>2]=la;c[ba>>2]=ma;c[da>>2]=fp(ca,c[$>>2]|0,c[aa>>2]|0)|0;if(ap(c[da>>2]|0)|0){c[Y>>2]=c[da>>2];oa=c[Y>>2]|0;l=i;return oa|0;}c[ea>>2]=c[Z>>2];c[fa>>2]=(c[ea>>2]|0)+(c[_>>2]|0);c[ga>>2]=(c[ba>>2]|0)+4;c[ha>>2]=c[ga>>2];bp(ia,c[ba>>2]|0);ba=c[fa>>2]|0;fa=c[ha>>2]|0;ha=d[ia+2>>0]|0;c[T>>2]=c[ea>>2];c[U>>2]=ca;c[V>>2]=ba;c[W>>2]=fa;c[X>>2]=ha;c[i+84>>2]=c[T>>2];while(1){ha=(gp(c[U>>2]|0)|0)==0&1;if(!(ha&(c[T>>2]|0)>>>0<((c[V>>2]|0)+-3|0)>>>0))break;if(hp()|0){ha=c[U>>2]|0;fa=c[W>>2]|0;ba=c[X>>2]|0;c[O>>2]=c[T>>2];c[P>>2]=ha;c[Q>>2]=fa;c[R>>2]=ba;c[S>>2]=ip(c[P>>2]|0,c[R>>2]|0)|0;ba=c[O>>2]|0;fa=(c[Q>>2]|0)+(c[S>>2]<<2)|0;a[ba>>0]=a[fa>>0]|0;a[ba+1>>0]=a[fa+1>>0]|0;jp(c[P>>2]|0,d[(c[Q>>2]|0)+(c[S>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[Q>>2]|0)+(c[S>>2]<<2)+3>>0]|0);}hp()|0;fa=c[U>>2]|0;ba=c[W>>2]|0;ha=c[X>>2]|0;c[J>>2]=c[T>>2];c[K>>2]=fa;c[L>>2]=ba;c[M>>2]=ha;c[N>>2]=ip(c[K>>2]|0,c[M>>2]|0)|0;ha=c[J>>2]|0;ba=(c[L>>2]|0)+(c[N>>2]<<2)|0;a[ha>>0]=a[ba>>0]|0;a[ha+1>>0]=a[ba+1>>0]|0;jp(c[K>>2]|0,d[(c[L>>2]|0)+(c[N>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[L>>2]|0)+(c[N>>2]<<2)+3>>0]|0);if(hp()|0){ba=c[U>>2]|0;ha=c[W>>2]|0;fa=c[X>>2]|0;c[E>>2]=c[T>>2];c[F>>2]=ba;c[G>>2]=ha;c[H>>2]=fa;c[I>>2]=ip(c[F>>2]|0,c[H>>2]|0)|0;fa=c[E>>2]|0;ha=(c[G>>2]|0)+(c[I>>2]<<2)|0;a[fa>>0]=a[ha>>0]|0;a[fa+1>>0]=a[ha+1>>0]|0;jp(c[F>>2]|0,d[(c[G>>2]|0)+(c[I>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[G>>2]|0)+(c[I>>2]<<2)+3>>0]|0);}ha=c[U>>2]|0;fa=c[W>>2]|0;ba=c[X>>2]|0;c[z>>2]=c[T>>2];c[A>>2]=ha;c[B>>2]=fa;c[C>>2]=ba;c[D>>2]=ip(c[A>>2]|0,c[C>>2]|0)|0;ba=c[z>>2]|0;fa=(c[B>>2]|0)+(c[D>>2]<<2)|0;a[ba>>0]=a[fa>>0]|0;a[ba+1>>0]=a[fa+1>>0]|0;jp(c[A>>2]|0,d[(c[B>>2]|0)+(c[D>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[B>>2]|0)+(c[D>>2]<<2)+3>>0]|0);}while(1){D=(gp(c[U>>2]|0)|0)==0&1;if(!(D&(c[T>>2]|0)>>>0<=((c[V>>2]|0)+-2|0)>>>0))break;D=c[U>>2]|0;B=c[W>>2]|0;A=c[X>>2]|0;c[u>>2]=c[T>>2];c[v>>2]=D;c[w>>2]=B;c[x>>2]=A;c[y>>2]=ip(c[v>>2]|0,c[x>>2]|0)|0;A=c[u>>2]|0;B=(c[w>>2]|0)+(c[y>>2]<<2)|0;a[A>>0]=a[B>>0]|0;a[A+1>>0]=a[B+1>>0]|0;jp(c[v>>2]|0,d[(c[w>>2]|0)+(c[y>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[w>>2]|0)+(c[y>>2]<<2)+3>>0]|0);}while(1){pa=c[T>>2]|0;if((c[T>>2]|0)>>>0>((c[V>>2]|0)+-2|0)>>>0)break;y=c[U>>2]|0;w=c[W>>2]|0;v=c[X>>2]|0;c[p>>2]=pa;c[q>>2]=y;c[r>>2]=w;c[s>>2]=v;c[t>>2]=ip(c[q>>2]|0,c[s>>2]|0)|0;v=c[p>>2]|0;w=(c[r>>2]|0)+(c[t>>2]<<2)|0;a[v>>0]=a[w>>0]|0;a[v+1>>0]=a[w+1>>0]|0;jp(c[q>>2]|0,d[(c[r>>2]|0)+(c[t>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[r>>2]|0)+(c[t>>2]<<2)+3>>0]|0);}if(pa>>>0<(c[V>>2]|0)>>>0){V=c[U>>2]|0;U=c[W>>2]|0;W=c[X>>2]|0;c[j>>2]=c[T>>2];c[k>>2]=V;c[m>>2]=U;c[n>>2]=W;c[o>>2]=ip(c[k>>2]|0,c[n>>2]|0)|0;a[c[j>>2]>>0]=a[(c[m>>2]|0)+(c[o>>2]<<2)>>0]|0;j=c[k>>2]|0;if((d[(c[m>>2]|0)+(c[o>>2]<<2)+3>>0]|0|0)!=1){if((c[j+4>>2]|0)>>>0<32?(jp(c[k>>2]|0,d[(c[m>>2]|0)+(c[o>>2]<<2)+2>>0]|0),(c[(c[k>>2]|0)+4>>2]|0)>>>0>32):0)c[(c[k>>2]|0)+4>>2]=32;}else jp(j,d[(c[m>>2]|0)+(c[o>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+1;}if(lp(ca)|0){c[Y>>2]=c[_>>2];oa=c[Y>>2]|0;l=i;return oa|0;}else{c[Y>>2]=-20;oa=c[Y>>2]|0;l=i;return oa|0;}return 0;}function Ip(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0;i=l;l=l+256|0;j=i+244|0;k=i+240|0;m=i+236|0;n=i+232|0;o=i+228|0;p=i+224|0;q=i+220|0;r=i+216|0;s=i+212|0;t=i+208|0;u=i+204|0;v=i+200|0;w=i+196|0;x=i+192|0;y=i+188|0;z=i+184|0;A=i+180|0;B=i+176|0;C=i+172|0;D=i+168|0;E=i+164|0;F=i+160|0;G=i+156|0;H=i+152|0;I=i+148|0;J=i+144|0;K=i+140|0;L=i+136|0;M=i+132|0;N=i+128|0;O=i+124|0;P=i+120|0;Q=i+116|0;R=i+112|0;S=i+108|0;T=i+104|0;U=i+100|0;V=i+96|0;W=i+92|0;X=i+88|0;Y=i+80|0;Z=i+76|0;_=i+72|0;$=i+68|0;aa=i+64|0;ba=i+60|0;ca=i+40|0;da=i+36|0;ea=i+32|0;fa=i+28|0;ga=i+24|0;ha=i+20|0;ia=i+248|0;ja=i+16|0;ka=i+12|0;la=i+8|0;ma=i+4|0;na=i;c[ja>>2]=b;c[ka>>2]=e;c[la>>2]=f;c[ma>>2]=g;c[na>>2]=h;h=c[ka>>2]|0;ka=c[la>>2]|0;la=c[ma>>2]|0;ma=c[na>>2]|0;c[Z>>2]=c[ja>>2];c[_>>2]=h;c[$>>2]=ka;c[aa>>2]=la;c[ba>>2]=ma;c[da>>2]=fp(ca,c[$>>2]|0,c[aa>>2]|0)|0;if(ap(c[da>>2]|0)|0){c[Y>>2]=c[da>>2];oa=c[Y>>2]|0;l=i;return oa|0;}c[ea>>2]=c[Z>>2];c[fa>>2]=(c[ea>>2]|0)+(c[_>>2]|0);c[ga>>2]=(c[ba>>2]|0)+4;c[ha>>2]=c[ga>>2];bp(ia,c[ba>>2]|0);ba=c[fa>>2]|0;fa=c[ha>>2]|0;ha=d[ia+2>>0]|0;c[T>>2]=c[ea>>2];c[U>>2]=ca;c[V>>2]=ba;c[W>>2]=fa;c[X>>2]=ha;c[i+84>>2]=c[T>>2];while(1){ha=(gp(c[U>>2]|0)|0)==0&1;if(!(ha&(c[T>>2]|0)>>>0<((c[V>>2]|0)+-3|0)>>>0))break;if(hp()|0){ha=c[U>>2]|0;fa=c[W>>2]|0;ba=c[X>>2]|0;c[O>>2]=c[T>>2];c[P>>2]=ha;c[Q>>2]=fa;c[R>>2]=ba;c[S>>2]=ip(c[P>>2]|0,c[R>>2]|0)|0;ba=c[O>>2]|0;fa=(c[Q>>2]|0)+(c[S>>2]<<2)|0;a[ba>>0]=a[fa>>0]|0;a[ba+1>>0]=a[fa+1>>0]|0;jp(c[P>>2]|0,d[(c[Q>>2]|0)+(c[S>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[Q>>2]|0)+(c[S>>2]<<2)+3>>0]|0);}hp()|0;fa=c[U>>2]|0;ba=c[W>>2]|0;ha=c[X>>2]|0;c[J>>2]=c[T>>2];c[K>>2]=fa;c[L>>2]=ba;c[M>>2]=ha;c[N>>2]=ip(c[K>>2]|0,c[M>>2]|0)|0;ha=c[J>>2]|0;ba=(c[L>>2]|0)+(c[N>>2]<<2)|0;a[ha>>0]=a[ba>>0]|0;a[ha+1>>0]=a[ba+1>>0]|0;jp(c[K>>2]|0,d[(c[L>>2]|0)+(c[N>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[L>>2]|0)+(c[N>>2]<<2)+3>>0]|0);if(hp()|0){ba=c[U>>2]|0;ha=c[W>>2]|0;fa=c[X>>2]|0;c[E>>2]=c[T>>2];c[F>>2]=ba;c[G>>2]=ha;c[H>>2]=fa;c[I>>2]=ip(c[F>>2]|0,c[H>>2]|0)|0;fa=c[E>>2]|0;ha=(c[G>>2]|0)+(c[I>>2]<<2)|0;a[fa>>0]=a[ha>>0]|0;a[fa+1>>0]=a[ha+1>>0]|0;jp(c[F>>2]|0,d[(c[G>>2]|0)+(c[I>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[G>>2]|0)+(c[I>>2]<<2)+3>>0]|0);}ha=c[U>>2]|0;fa=c[W>>2]|0;ba=c[X>>2]|0;c[z>>2]=c[T>>2];c[A>>2]=ha;c[B>>2]=fa;c[C>>2]=ba;c[D>>2]=ip(c[A>>2]|0,c[C>>2]|0)|0;ba=c[z>>2]|0;fa=(c[B>>2]|0)+(c[D>>2]<<2)|0;a[ba>>0]=a[fa>>0]|0;a[ba+1>>0]=a[fa+1>>0]|0;jp(c[A>>2]|0,d[(c[B>>2]|0)+(c[D>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[B>>2]|0)+(c[D>>2]<<2)+3>>0]|0);}while(1){D=(gp(c[U>>2]|0)|0)==0&1;if(!(D&(c[T>>2]|0)>>>0<=((c[V>>2]|0)+-2|0)>>>0))break;D=c[U>>2]|0;B=c[W>>2]|0;A=c[X>>2]|0;c[u>>2]=c[T>>2];c[v>>2]=D;c[w>>2]=B;c[x>>2]=A;c[y>>2]=ip(c[v>>2]|0,c[x>>2]|0)|0;A=c[u>>2]|0;B=(c[w>>2]|0)+(c[y>>2]<<2)|0;a[A>>0]=a[B>>0]|0;a[A+1>>0]=a[B+1>>0]|0;jp(c[v>>2]|0,d[(c[w>>2]|0)+(c[y>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[w>>2]|0)+(c[y>>2]<<2)+3>>0]|0);}while(1){pa=c[T>>2]|0;if((c[T>>2]|0)>>>0>((c[V>>2]|0)+-2|0)>>>0)break;y=c[U>>2]|0;w=c[W>>2]|0;v=c[X>>2]|0;c[p>>2]=pa;c[q>>2]=y;c[r>>2]=w;c[s>>2]=v;c[t>>2]=ip(c[q>>2]|0,c[s>>2]|0)|0;v=c[p>>2]|0;w=(c[r>>2]|0)+(c[t>>2]<<2)|0;a[v>>0]=a[w>>0]|0;a[v+1>>0]=a[w+1>>0]|0;jp(c[q>>2]|0,d[(c[r>>2]|0)+(c[t>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[r>>2]|0)+(c[t>>2]<<2)+3>>0]|0);}if(pa>>>0<(c[V>>2]|0)>>>0){V=c[U>>2]|0;U=c[W>>2]|0;W=c[X>>2]|0;c[j>>2]=c[T>>2];c[k>>2]=V;c[m>>2]=U;c[n>>2]=W;c[o>>2]=ip(c[k>>2]|0,c[n>>2]|0)|0;a[c[j>>2]>>0]=a[(c[m>>2]|0)+(c[o>>2]<<2)>>0]|0;j=c[k>>2]|0;if((d[(c[m>>2]|0)+(c[o>>2]<<2)+3>>0]|0|0)!=1){if((c[j+4>>2]|0)>>>0<32?(jp(c[k>>2]|0,d[(c[m>>2]|0)+(c[o>>2]<<2)+2>>0]|0),(c[(c[k>>2]|0)+4>>2]|0)>>>0>32):0)c[(c[k>>2]|0)+4>>2]=32;}else jp(j,d[(c[m>>2]|0)+(c[o>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+1;}if(lp(ca)|0){c[Y>>2]=c[_>>2];oa=c[Y>>2]|0;l=i;return oa|0;}else{c[Y>>2]=-20;oa=c[Y>>2]|0;l=i;return oa|0;}return 0;}function Jp(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;h=l;l=l+32|0;i=h+24|0;j=h+20|0;k=h+16|0;m=h+12|0;n=h+8|0;o=h+4|0;p=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;g=c[j>>2]|0;j=c[k>>2]|0;k=c[m>>2]|0;m=c[n>>2]|0;n=c[o>>2]|0;if(c[p>>2]|0){c[i>>2]=Kp(g,j,k,m,n)|0;q=c[i>>2]|0;l=h;return q|0;}else{c[i>>2]=Lp(g,j,k,m,n)|0;q=c[i>>2]|0;l=h;return q|0;}return 0;}function Kp(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,yc=0,zc=0,Ac=0,Bc=0,Cc=0,Dc=0,Ec=0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0,Kc=0,Lc=0,Mc=0,Nc=0,Oc=0,Pc=0,Qc=0,Rc=0,Sc=0,Tc=0,Uc=0,Vc=0,Wc=0,Xc=0,Yc=0,Zc=0,_c=0,$c=0,ad=0,bd=0,cd=0,dd=0,ed=0,fd=0,gd=0,hd=0,id=0,jd=0,kd=0,ld=0,md=0,nd=0,od=0,pd=0,qd=0,rd=0,sd=0,td=0,ud=0,vd=0,wd=0,xd=0,yd=0,zd=0,Ad=0,Bd=0,Cd=0,Dd=0,Ed=0,Fd=0,Gd=0,Hd=0,Id=0,Jd=0,Kd=0,Ld=0,Md=0,Nd=0,Od=0,Pd=0,Qd=0,Rd=0,Sd=0,Td=0,Ud=0,Vd=0,Wd=0,Xd=0,Yd=0,Zd=0,_d=0,$d=0,ae=0,be=0,ce=0,de=0,ee=0,fe=0,ge=0,he=0,ie=0,je=0,ke=0,le=0,me=0,ne=0,oe=0,pe=0,qe=0,re=0,se=0,te=0,ue=0,ve=0,we=0,xe=0,ye=0,ze=0,Ae=0,Be=0,Ce=0,De=0,Ee=0,Fe=0,Ge=0;i=l;l=l+1216|0;j=i+1208|0;k=i+1204|0;m=i+1200|0;n=i+1196|0;o=i+1192|0;p=i+1188|0;q=i+1184|0;r=i+1180|0;s=i+1176|0;t=i+1172|0;u=i+1168|0;v=i+1164|0;w=i+1160|0;x=i+1156|0;y=i+1152|0;z=i+1148|0;A=i+1144|0;B=i+1140|0;C=i+1136|0;D=i+1132|0;E=i+1128|0;F=i+1124|0;G=i+1120|0;H=i+1116|0;I=i+1112|0;J=i+1108|0;K=i+1104|0;L=i+1100|0;M=i+1096|0;N=i+1092|0;O=i+1088|0;P=i+1084|0;Q=i+1080|0;R=i+1076|0;S=i+1072|0;T=i+1068|0;U=i+1064|0;V=i+1060|0;W=i+1056|0;X=i+1052|0;Y=i+1048|0;Z=i+1044|0;_=i+1040|0;$=i+1036|0;aa=i+1032|0;ba=i+1028|0;ca=i+1024|0;da=i+1020|0;ea=i+1016|0;fa=i+1012|0;ga=i+1008|0;ha=i+1004|0;ia=i+1e3|0;ja=i+996|0;ka=i+992|0;la=i+988|0;ma=i+984|0;na=i+980|0;oa=i+976|0;pa=i+972|0;qa=i+968|0;ra=i+964|0;sa=i+960|0;ta=i+956|0;ua=i+952|0;va=i+948|0;wa=i+944|0;xa=i+940|0;ya=i+936|0;za=i+932|0;Aa=i+928|0;Ba=i+924|0;Ca=i+920|0;Da=i+916|0;Ea=i+912|0;Fa=i+908|0;Ga=i+904|0;Ha=i+900|0;Ia=i+896|0;Ja=i+892|0;Ka=i+888|0;La=i+884|0;Ma=i+880|0;Na=i+876|0;Oa=i+872|0;Pa=i+868|0;Qa=i+864|0;Ra=i+860|0;Sa=i+856|0;Ta=i+852|0;Ua=i+848|0;Va=i+844|0;Wa=i+840|0;Xa=i+836|0;Ya=i+832|0;Za=i+828|0;_a=i+824|0;$a=i+820|0;ab=i+816|0;bb=i+812|0;cb=i+808|0;db=i+804|0;eb=i+800|0;fb=i+796|0;gb=i+792|0;hb=i+788|0;ib=i+784|0;jb=i+780|0;kb=i+776|0;lb=i+772|0;mb=i+768|0;nb=i+764|0;ob=i+760|0;pb=i+756|0;qb=i+752|0;rb=i+748|0;sb=i+744|0;tb=i+740|0;ub=i+736|0;vb=i+732|0;wb=i+728|0;xb=i+724|0;yb=i+720|0;zb=i+716|0;Ab=i+712|0;Bb=i+708|0;Cb=i+704|0;Db=i+700|0;Eb=i+696|0;Fb=i+692|0;Gb=i+688|0;Hb=i+684|0;Ib=i+680|0;Jb=i+676|0;Kb=i+672|0;Lb=i+668|0;Mb=i+664|0;Nb=i+660|0;Ob=i+656|0;Pb=i+652|0;Qb=i+648|0;Rb=i+644|0;Sb=i+640|0;Tb=i+636|0;Ub=i+632|0;Vb=i+628|0;Wb=i+624|0;Xb=i+620|0;Yb=i+616|0;Zb=i+612|0;_b=i+608|0;$b=i+604|0;ac=i+600|0;bc=i+596|0;cc=i+592|0;dc=i+588|0;ec=i+584|0;fc=i+580|0;gc=i+576|0;hc=i+572|0;ic=i+568|0;jc=i+564|0;kc=i+560|0;lc=i+556|0;mc=i+552|0;nc=i+548|0;oc=i+544|0;pc=i+540|0;qc=i+536|0;rc=i+532|0;sc=i+528|0;tc=i+524|0;uc=i+520|0;vc=i+516|0;wc=i+512|0;xc=i+508|0;yc=i+504|0;zc=i+500|0;Ac=i+496|0;Bc=i+492|0;Cc=i+488|0;Dc=i+484|0;Ec=i+480|0;Fc=i+476|0;Gc=i+472|0;Hc=i+468|0;Ic=i+464|0;Jc=i+460|0;Kc=i+456|0;Lc=i+452|0;Mc=i+448|0;Nc=i+444|0;Oc=i+440|0;Pc=i+436|0;Qc=i+432|0;Rc=i+428|0;Sc=i+424|0;Tc=i+420|0;Uc=i+416|0;Vc=i+412|0;Wc=i+408|0;Xc=i+404|0;Yc=i+400|0;Zc=i+396|0;_c=i+392|0;$c=i+388|0;ad=i+384|0;bd=i+380|0;cd=i+376|0;dd=i+372|0;ed=i+368|0;fd=i+364|0;gd=i+360|0;hd=i+356|0;id=i+352|0;jd=i+348|0;kd=i+344|0;ld=i+340|0;md=i+336|0;nd=i+332|0;od=i+328|0;pd=i+324|0;qd=i+320|0;rd=i+316|0;sd=i+312|0;td=i+308|0;ud=i+304|0;vd=i+300|0;wd=i+296|0;xd=i+292|0;yd=i+288|0;zd=i+284|0;Ad=i+280|0;Bd=i+276|0;Cd=i+272|0;Dd=i+268|0;Ed=i+264|0;Fd=i+260|0;Gd=i+256|0;Hd=i+252|0;Id=i+248|0;Jd=i+244|0;Kd=i+240|0;Ld=i+236|0;Md=i+232|0;Nd=i+228|0;Od=i+224|0;Pd=i+220|0;Qd=i+216|0;Rd=i+212|0;Sd=i+208|0;Td=i+204|0;Ud=i+200|0;Vd=i+196|0;Wd=i+192|0;Xd=i+172|0;Yd=i+152|0;Zd=i+132|0;_d=i+112|0;$d=i+108|0;ae=i+104|0;be=i+100|0;ce=i+96|0;de=i+92|0;ee=i+88|0;fe=i+84|0;ge=i+80|0;he=i+76|0;ie=i+72|0;je=i+68|0;ke=i+64|0;le=i+60|0;me=i+56|0;ne=i+52|0;oe=i+48|0;pe=i+44|0;qe=i+1212|0;re=i+40|0;se=i+36|0;te=i+32|0;ue=i+28|0;ve=i+24|0;we=i+20|0;xe=i+16|0;ye=i+12|0;ze=i+8|0;Ae=i+4|0;Be=i;c[xe>>2]=b;c[ye>>2]=e;c[ze>>2]=f;c[Ae>>2]=g;c[Be>>2]=h;h=c[ye>>2]|0;ye=c[ze>>2]|0;ze=c[Ae>>2]|0;Ae=c[Be>>2]|0;c[Nd>>2]=c[xe>>2];c[Od>>2]=h;c[Pd>>2]=ye;c[Qd>>2]=ze;c[Rd>>2]=Ae;if((c[Qd>>2]|0)>>>0<10){c[Md>>2]=-20;Ce=c[Md>>2]|0;l=i;return Ce|0;}c[Sd>>2]=c[Pd>>2];c[Td>>2]=c[Nd>>2];c[Ud>>2]=(c[Td>>2]|0)+(c[Od>>2]|0);c[Vd>>2]=(c[Rd>>2]|0)+4;c[Wd>>2]=c[Vd>>2];c[$d>>2]=(yp(c[Sd>>2]|0)|0)&65535;c[ae>>2]=(yp((c[Sd>>2]|0)+2|0)|0)&65535;c[be>>2]=(yp((c[Sd>>2]|0)+4|0)|0)&65535;c[ce>>2]=(c[Qd>>2]|0)-((c[$d>>2]|0)+(c[ae>>2]|0)+(c[be>>2]|0)+6);c[de>>2]=(c[Sd>>2]|0)+6;c[ee>>2]=(c[de>>2]|0)+(c[$d>>2]|0);c[fe>>2]=(c[ee>>2]|0)+(c[ae>>2]|0);c[ge>>2]=(c[fe>>2]|0)+(c[be>>2]|0);c[he>>2]=(((c[Od>>2]|0)+3|0)>>>0)/4|0;c[ie>>2]=(c[Td>>2]|0)+(c[he>>2]|0);c[je>>2]=(c[ie>>2]|0)+(c[he>>2]|0);c[ke>>2]=(c[je>>2]|0)+(c[he>>2]|0);c[le>>2]=c[Td>>2];c[me>>2]=c[ie>>2];c[ne>>2]=c[je>>2];c[oe>>2]=c[ke>>2];bp(qe,c[Rd>>2]|0);c[re>>2]=d[qe+2>>0];if((c[ce>>2]|0)>>>0>(c[Qd>>2]|0)>>>0){c[Md>>2]=-20;Ce=c[Md>>2]|0;l=i;return Ce|0;}c[se>>2]=fp(Xd,c[de>>2]|0,c[$d>>2]|0)|0;if(ap(c[se>>2]|0)|0){c[Md>>2]=c[se>>2];Ce=c[Md>>2]|0;l=i;return Ce|0;}c[te>>2]=fp(Yd,c[ee>>2]|0,c[ae>>2]|0)|0;if(ap(c[te>>2]|0)|0){c[Md>>2]=c[te>>2];Ce=c[Md>>2]|0;l=i;return Ce|0;}c[ue>>2]=fp(Zd,c[fe>>2]|0,c[be>>2]|0)|0;if(ap(c[ue>>2]|0)|0){c[Md>>2]=c[ue>>2];Ce=c[Md>>2]|0;l=i;return Ce|0;}c[ve>>2]=fp(_d,c[ge>>2]|0,c[ce>>2]|0)|0;if(ap(c[ve>>2]|0)|0){c[Md>>2]=c[ve>>2];Ce=c[Md>>2]|0;l=i;return Ce|0;}ve=gp(Xd)|0;ce=ve|(gp(Yd)|0);ve=ce|(gp(Zd)|0);c[pe>>2]=ve|(gp(_d)|0);while(1){if(!(((c[pe>>2]|0)==0?(c[oe>>2]|0)>>>0<((c[Ud>>2]|0)+-3|0)>>>0:0)|0))break;if(hp()|0){ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[Hd>>2]=c[le>>2];c[Id>>2]=Xd;c[Jd>>2]=ve;c[Kd>>2]=ce;c[Ld>>2]=ip(c[Id>>2]|0,c[Kd>>2]|0)|0;ce=c[Hd>>2]|0;ve=(c[Jd>>2]|0)+(c[Ld>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[Id>>2]|0,d[(c[Jd>>2]|0)+(c[Ld>>2]<<2)+2>>0]|0);c[le>>2]=(c[le>>2]|0)+(d[(c[Jd>>2]|0)+(c[Ld>>2]<<2)+3>>0]|0);}if(hp()|0){ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[Cd>>2]=c[me>>2];c[Dd>>2]=Yd;c[Ed>>2]=ve;c[Fd>>2]=ce;c[Gd>>2]=ip(c[Dd>>2]|0,c[Fd>>2]|0)|0;ce=c[Cd>>2]|0;ve=(c[Ed>>2]|0)+(c[Gd>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[Dd>>2]|0,d[(c[Ed>>2]|0)+(c[Gd>>2]<<2)+2>>0]|0);c[me>>2]=(c[me>>2]|0)+(d[(c[Ed>>2]|0)+(c[Gd>>2]<<2)+3>>0]|0);}if(hp()|0){ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[xd>>2]=c[ne>>2];c[yd>>2]=Zd;c[zd>>2]=ve;c[Ad>>2]=ce;c[Bd>>2]=ip(c[yd>>2]|0,c[Ad>>2]|0)|0;ce=c[xd>>2]|0;ve=(c[zd>>2]|0)+(c[Bd>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[yd>>2]|0,d[(c[zd>>2]|0)+(c[Bd>>2]<<2)+2>>0]|0);c[ne>>2]=(c[ne>>2]|0)+(d[(c[zd>>2]|0)+(c[Bd>>2]<<2)+3>>0]|0);}if(hp()|0){ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[sd>>2]=c[oe>>2];c[td>>2]=_d;c[ud>>2]=ve;c[vd>>2]=ce;c[wd>>2]=ip(c[td>>2]|0,c[vd>>2]|0)|0;ce=c[sd>>2]|0;ve=(c[ud>>2]|0)+(c[wd>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[td>>2]|0,d[(c[ud>>2]|0)+(c[wd>>2]<<2)+2>>0]|0);c[oe>>2]=(c[oe>>2]|0)+(d[(c[ud>>2]|0)+(c[wd>>2]<<2)+3>>0]|0);}hp()|0;ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[nd>>2]=c[le>>2];c[od>>2]=Xd;c[pd>>2]=ve;c[qd>>2]=ce;c[rd>>2]=ip(c[od>>2]|0,c[qd>>2]|0)|0;ce=c[nd>>2]|0;ve=(c[pd>>2]|0)+(c[rd>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[od>>2]|0,d[(c[pd>>2]|0)+(c[rd>>2]<<2)+2>>0]|0);c[le>>2]=(c[le>>2]|0)+(d[(c[pd>>2]|0)+(c[rd>>2]<<2)+3>>0]|0);hp()|0;ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[id>>2]=c[me>>2];c[jd>>2]=Yd;c[kd>>2]=ve;c[ld>>2]=ce;c[md>>2]=ip(c[jd>>2]|0,c[ld>>2]|0)|0;ce=c[id>>2]|0;ve=(c[kd>>2]|0)+(c[md>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[jd>>2]|0,d[(c[kd>>2]|0)+(c[md>>2]<<2)+2>>0]|0);c[me>>2]=(c[me>>2]|0)+(d[(c[kd>>2]|0)+(c[md>>2]<<2)+3>>0]|0);hp()|0;ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[dd>>2]=c[ne>>2];c[ed>>2]=Zd;c[fd>>2]=ve;c[gd>>2]=ce;c[hd>>2]=ip(c[ed>>2]|0,c[gd>>2]|0)|0;ce=c[dd>>2]|0;ve=(c[fd>>2]|0)+(c[hd>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[ed>>2]|0,d[(c[fd>>2]|0)+(c[hd>>2]<<2)+2>>0]|0);c[ne>>2]=(c[ne>>2]|0)+(d[(c[fd>>2]|0)+(c[hd>>2]<<2)+3>>0]|0);hp()|0;ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[_c>>2]=c[oe>>2];c[$c>>2]=_d;c[ad>>2]=ve;c[bd>>2]=ce;c[cd>>2]=ip(c[$c>>2]|0,c[bd>>2]|0)|0;ce=c[_c>>2]|0;ve=(c[ad>>2]|0)+(c[cd>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[$c>>2]|0,d[(c[ad>>2]|0)+(c[cd>>2]<<2)+2>>0]|0);c[oe>>2]=(c[oe>>2]|0)+(d[(c[ad>>2]|0)+(c[cd>>2]<<2)+3>>0]|0);if(hp()|0){ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[Vc>>2]=c[le>>2];c[Wc>>2]=Xd;c[Xc>>2]=ve;c[Yc>>2]=ce;c[Zc>>2]=ip(c[Wc>>2]|0,c[Yc>>2]|0)|0;ce=c[Vc>>2]|0;ve=(c[Xc>>2]|0)+(c[Zc>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[Wc>>2]|0,d[(c[Xc>>2]|0)+(c[Zc>>2]<<2)+2>>0]|0);c[le>>2]=(c[le>>2]|0)+(d[(c[Xc>>2]|0)+(c[Zc>>2]<<2)+3>>0]|0);}if(hp()|0){ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[Qc>>2]=c[me>>2];c[Rc>>2]=Yd;c[Sc>>2]=ve;c[Tc>>2]=ce;c[Uc>>2]=ip(c[Rc>>2]|0,c[Tc>>2]|0)|0;ce=c[Qc>>2]|0;ve=(c[Sc>>2]|0)+(c[Uc>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[Rc>>2]|0,d[(c[Sc>>2]|0)+(c[Uc>>2]<<2)+2>>0]|0);c[me>>2]=(c[me>>2]|0)+(d[(c[Sc>>2]|0)+(c[Uc>>2]<<2)+3>>0]|0);}if(hp()|0){ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[Lc>>2]=c[ne>>2];c[Mc>>2]=Zd;c[Nc>>2]=ve;c[Oc>>2]=ce;c[Pc>>2]=ip(c[Mc>>2]|0,c[Oc>>2]|0)|0;ce=c[Lc>>2]|0;ve=(c[Nc>>2]|0)+(c[Pc>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[Mc>>2]|0,d[(c[Nc>>2]|0)+(c[Pc>>2]<<2)+2>>0]|0);c[ne>>2]=(c[ne>>2]|0)+(d[(c[Nc>>2]|0)+(c[Pc>>2]<<2)+3>>0]|0);}if(hp()|0){ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[Gc>>2]=c[oe>>2];c[Hc>>2]=_d;c[Ic>>2]=ve;c[Jc>>2]=ce;c[Kc>>2]=ip(c[Hc>>2]|0,c[Jc>>2]|0)|0;ce=c[Gc>>2]|0;ve=(c[Ic>>2]|0)+(c[Kc>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[Hc>>2]|0,d[(c[Ic>>2]|0)+(c[Kc>>2]<<2)+2>>0]|0);c[oe>>2]=(c[oe>>2]|0)+(d[(c[Ic>>2]|0)+(c[Kc>>2]<<2)+3>>0]|0);}ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[Bc>>2]=c[le>>2];c[Cc>>2]=Xd;c[Dc>>2]=ve;c[Ec>>2]=ce;c[Fc>>2]=ip(c[Cc>>2]|0,c[Ec>>2]|0)|0;ce=c[Bc>>2]|0;ve=(c[Dc>>2]|0)+(c[Fc>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[Cc>>2]|0,d[(c[Dc>>2]|0)+(c[Fc>>2]<<2)+2>>0]|0);c[le>>2]=(c[le>>2]|0)+(d[(c[Dc>>2]|0)+(c[Fc>>2]<<2)+3>>0]|0);ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[wc>>2]=c[me>>2];c[xc>>2]=Yd;c[yc>>2]=ve;c[zc>>2]=ce;c[Ac>>2]=ip(c[xc>>2]|0,c[zc>>2]|0)|0;ce=c[wc>>2]|0;ve=(c[yc>>2]|0)+(c[Ac>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[xc>>2]|0,d[(c[yc>>2]|0)+(c[Ac>>2]<<2)+2>>0]|0);c[me>>2]=(c[me>>2]|0)+(d[(c[yc>>2]|0)+(c[Ac>>2]<<2)+3>>0]|0);ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[rc>>2]=c[ne>>2];c[sc>>2]=Zd;c[tc>>2]=ve;c[uc>>2]=ce;c[vc>>2]=ip(c[sc>>2]|0,c[uc>>2]|0)|0;ce=c[rc>>2]|0;ve=(c[tc>>2]|0)+(c[vc>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[sc>>2]|0,d[(c[tc>>2]|0)+(c[vc>>2]<<2)+2>>0]|0);c[ne>>2]=(c[ne>>2]|0)+(d[(c[tc>>2]|0)+(c[vc>>2]<<2)+3>>0]|0);ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[mc>>2]=c[oe>>2];c[nc>>2]=_d;c[oc>>2]=ve;c[pc>>2]=ce;c[qc>>2]=ip(c[nc>>2]|0,c[pc>>2]|0)|0;ce=c[mc>>2]|0;ve=(c[oc>>2]|0)+(c[qc>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[nc>>2]|0,d[(c[oc>>2]|0)+(c[qc>>2]<<2)+2>>0]|0);c[oe>>2]=(c[oe>>2]|0)+(d[(c[oc>>2]|0)+(c[qc>>2]<<2)+3>>0]|0);ve=gp(Xd)|0;ce=ve|(gp(Yd)|0);ve=ce|(gp(Zd)|0);c[pe>>2]=ve|(gp(_d)|0);}if((c[le>>2]|0)>>>0>(c[ie>>2]|0)>>>0){c[Md>>2]=-20;Ce=c[Md>>2]|0;l=i;return Ce|0;}if((c[me>>2]|0)>>>0>(c[je>>2]|0)>>>0){c[Md>>2]=-20;Ce=c[Md>>2]|0;l=i;return Ce|0;}if((c[ne>>2]|0)>>>0>(c[ke>>2]|0)>>>0){c[Md>>2]=-20;Ce=c[Md>>2]|0;l=i;return Ce|0;}pe=c[ie>>2]|0;ie=c[Wd>>2]|0;qc=c[re>>2]|0;c[gc>>2]=c[le>>2];c[hc>>2]=Xd;c[ic>>2]=pe;c[jc>>2]=ie;c[kc>>2]=qc;c[lc>>2]=c[gc>>2];while(1){lc=(gp(c[hc>>2]|0)|0)==0&1;if(!(lc&(c[gc>>2]|0)>>>0<((c[ic>>2]|0)+-3|0)>>>0))break;if(hp()|0){lc=c[hc>>2]|0;qc=c[jc>>2]|0;ie=c[kc>>2]|0;c[bc>>2]=c[gc>>2];c[cc>>2]=lc;c[dc>>2]=qc;c[ec>>2]=ie;c[fc>>2]=ip(c[cc>>2]|0,c[ec>>2]|0)|0;ie=c[bc>>2]|0;qc=(c[dc>>2]|0)+(c[fc>>2]<<2)|0;a[ie>>0]=a[qc>>0]|0;a[ie+1>>0]=a[qc+1>>0]|0;jp(c[cc>>2]|0,d[(c[dc>>2]|0)+(c[fc>>2]<<2)+2>>0]|0);c[gc>>2]=(c[gc>>2]|0)+(d[(c[dc>>2]|0)+(c[fc>>2]<<2)+3>>0]|0);}hp()|0;qc=c[hc>>2]|0;ie=c[jc>>2]|0;lc=c[kc>>2]|0;c[Yb>>2]=c[gc>>2];c[Zb>>2]=qc;c[_b>>2]=ie;c[$b>>2]=lc;c[ac>>2]=ip(c[Zb>>2]|0,c[$b>>2]|0)|0;lc=c[Yb>>2]|0;ie=(c[_b>>2]|0)+(c[ac>>2]<<2)|0;a[lc>>0]=a[ie>>0]|0;a[lc+1>>0]=a[ie+1>>0]|0;jp(c[Zb>>2]|0,d[(c[_b>>2]|0)+(c[ac>>2]<<2)+2>>0]|0);c[gc>>2]=(c[gc>>2]|0)+(d[(c[_b>>2]|0)+(c[ac>>2]<<2)+3>>0]|0);if(hp()|0){ie=c[hc>>2]|0;lc=c[jc>>2]|0;qc=c[kc>>2]|0;c[Tb>>2]=c[gc>>2];c[Ub>>2]=ie;c[Vb>>2]=lc;c[Wb>>2]=qc;c[Xb>>2]=ip(c[Ub>>2]|0,c[Wb>>2]|0)|0;qc=c[Tb>>2]|0;lc=(c[Vb>>2]|0)+(c[Xb>>2]<<2)|0;a[qc>>0]=a[lc>>0]|0;a[qc+1>>0]=a[lc+1>>0]|0;jp(c[Ub>>2]|0,d[(c[Vb>>2]|0)+(c[Xb>>2]<<2)+2>>0]|0);c[gc>>2]=(c[gc>>2]|0)+(d[(c[Vb>>2]|0)+(c[Xb>>2]<<2)+3>>0]|0);}lc=c[hc>>2]|0;qc=c[jc>>2]|0;ie=c[kc>>2]|0;c[Ob>>2]=c[gc>>2];c[Pb>>2]=lc;c[Qb>>2]=qc;c[Rb>>2]=ie;c[Sb>>2]=ip(c[Pb>>2]|0,c[Rb>>2]|0)|0;ie=c[Ob>>2]|0;qc=(c[Qb>>2]|0)+(c[Sb>>2]<<2)|0;a[ie>>0]=a[qc>>0]|0;a[ie+1>>0]=a[qc+1>>0]|0;jp(c[Pb>>2]|0,d[(c[Qb>>2]|0)+(c[Sb>>2]<<2)+2>>0]|0);c[gc>>2]=(c[gc>>2]|0)+(d[(c[Qb>>2]|0)+(c[Sb>>2]<<2)+3>>0]|0);}while(1){Sb=(gp(c[hc>>2]|0)|0)==0&1;if(!(Sb&(c[gc>>2]|0)>>>0<=((c[ic>>2]|0)+-2|0)>>>0))break;Sb=c[hc>>2]|0;Qb=c[jc>>2]|0;Pb=c[kc>>2]|0;c[Jb>>2]=c[gc>>2];c[Kb>>2]=Sb;c[Lb>>2]=Qb;c[Mb>>2]=Pb;c[Nb>>2]=ip(c[Kb>>2]|0,c[Mb>>2]|0)|0;Pb=c[Jb>>2]|0;Qb=(c[Lb>>2]|0)+(c[Nb>>2]<<2)|0;a[Pb>>0]=a[Qb>>0]|0;a[Pb+1>>0]=a[Qb+1>>0]|0;jp(c[Kb>>2]|0,d[(c[Lb>>2]|0)+(c[Nb>>2]<<2)+2>>0]|0);c[gc>>2]=(c[gc>>2]|0)+(d[(c[Lb>>2]|0)+(c[Nb>>2]<<2)+3>>0]|0);}while(1){De=c[gc>>2]|0;if((c[gc>>2]|0)>>>0>((c[ic>>2]|0)+-2|0)>>>0)break;Nb=c[hc>>2]|0;Lb=c[jc>>2]|0;Kb=c[kc>>2]|0;c[Eb>>2]=De;c[Fb>>2]=Nb;c[Gb>>2]=Lb;c[Hb>>2]=Kb;c[Ib>>2]=ip(c[Fb>>2]|0,c[Hb>>2]|0)|0;Kb=c[Eb>>2]|0;Lb=(c[Gb>>2]|0)+(c[Ib>>2]<<2)|0;a[Kb>>0]=a[Lb>>0]|0;a[Kb+1>>0]=a[Lb+1>>0]|0;jp(c[Fb>>2]|0,d[(c[Gb>>2]|0)+(c[Ib>>2]<<2)+2>>0]|0);c[gc>>2]=(c[gc>>2]|0)+(d[(c[Gb>>2]|0)+(c[Ib>>2]<<2)+3>>0]|0);}if(De>>>0<(c[ic>>2]|0)>>>0){ic=c[hc>>2]|0;hc=c[jc>>2]|0;jc=c[kc>>2]|0;c[zb>>2]=c[gc>>2];c[Ab>>2]=ic;c[Bb>>2]=hc;c[Cb>>2]=jc;c[Db>>2]=ip(c[Ab>>2]|0,c[Cb>>2]|0)|0;a[c[zb>>2]>>0]=a[(c[Bb>>2]|0)+(c[Db>>2]<<2)>>0]|0;zb=c[Ab>>2]|0;if((d[(c[Bb>>2]|0)+(c[Db>>2]<<2)+3>>0]|0|0)!=1){if((c[zb+4>>2]|0)>>>0<32?(jp(c[Ab>>2]|0,d[(c[Bb>>2]|0)+(c[Db>>2]<<2)+2>>0]|0),(c[(c[Ab>>2]|0)+4>>2]|0)>>>0>32):0)c[(c[Ab>>2]|0)+4>>2]=32;}else jp(zb,d[(c[Bb>>2]|0)+(c[Db>>2]<<2)+2>>0]|0);c[gc>>2]=(c[gc>>2]|0)+1;}gc=c[je>>2]|0;je=c[Wd>>2]|0;Db=c[re>>2]|0;c[tb>>2]=c[me>>2];c[ub>>2]=Yd;c[vb>>2]=gc;c[wb>>2]=je;c[xb>>2]=Db;c[yb>>2]=c[tb>>2];while(1){yb=(gp(c[ub>>2]|0)|0)==0&1;if(!(yb&(c[tb>>2]|0)>>>0<((c[vb>>2]|0)+-3|0)>>>0))break;if(hp()|0){yb=c[ub>>2]|0;Db=c[wb>>2]|0;je=c[xb>>2]|0;c[ob>>2]=c[tb>>2];c[pb>>2]=yb;c[qb>>2]=Db;c[rb>>2]=je;c[sb>>2]=ip(c[pb>>2]|0,c[rb>>2]|0)|0;je=c[ob>>2]|0;Db=(c[qb>>2]|0)+(c[sb>>2]<<2)|0;a[je>>0]=a[Db>>0]|0;a[je+1>>0]=a[Db+1>>0]|0;jp(c[pb>>2]|0,d[(c[qb>>2]|0)+(c[sb>>2]<<2)+2>>0]|0);c[tb>>2]=(c[tb>>2]|0)+(d[(c[qb>>2]|0)+(c[sb>>2]<<2)+3>>0]|0);}hp()|0;Db=c[ub>>2]|0;je=c[wb>>2]|0;yb=c[xb>>2]|0;c[jb>>2]=c[tb>>2];c[kb>>2]=Db;c[lb>>2]=je;c[mb>>2]=yb;c[nb>>2]=ip(c[kb>>2]|0,c[mb>>2]|0)|0;yb=c[jb>>2]|0;je=(c[lb>>2]|0)+(c[nb>>2]<<2)|0;a[yb>>0]=a[je>>0]|0;a[yb+1>>0]=a[je+1>>0]|0;jp(c[kb>>2]|0,d[(c[lb>>2]|0)+(c[nb>>2]<<2)+2>>0]|0);c[tb>>2]=(c[tb>>2]|0)+(d[(c[lb>>2]|0)+(c[nb>>2]<<2)+3>>0]|0);if(hp()|0){je=c[ub>>2]|0;yb=c[wb>>2]|0;Db=c[xb>>2]|0;c[eb>>2]=c[tb>>2];c[fb>>2]=je;c[gb>>2]=yb;c[hb>>2]=Db;c[ib>>2]=ip(c[fb>>2]|0,c[hb>>2]|0)|0;Db=c[eb>>2]|0;yb=(c[gb>>2]|0)+(c[ib>>2]<<2)|0;a[Db>>0]=a[yb>>0]|0;a[Db+1>>0]=a[yb+1>>0]|0;jp(c[fb>>2]|0,d[(c[gb>>2]|0)+(c[ib>>2]<<2)+2>>0]|0);c[tb>>2]=(c[tb>>2]|0)+(d[(c[gb>>2]|0)+(c[ib>>2]<<2)+3>>0]|0);}yb=c[ub>>2]|0;Db=c[wb>>2]|0;je=c[xb>>2]|0;c[$a>>2]=c[tb>>2];c[ab>>2]=yb;c[bb>>2]=Db;c[cb>>2]=je;c[db>>2]=ip(c[ab>>2]|0,c[cb>>2]|0)|0;je=c[$a>>2]|0;Db=(c[bb>>2]|0)+(c[db>>2]<<2)|0;a[je>>0]=a[Db>>0]|0;a[je+1>>0]=a[Db+1>>0]|0;jp(c[ab>>2]|0,d[(c[bb>>2]|0)+(c[db>>2]<<2)+2>>0]|0);c[tb>>2]=(c[tb>>2]|0)+(d[(c[bb>>2]|0)+(c[db>>2]<<2)+3>>0]|0);}while(1){db=(gp(c[ub>>2]|0)|0)==0&1;if(!(db&(c[tb>>2]|0)>>>0<=((c[vb>>2]|0)+-2|0)>>>0))break;db=c[ub>>2]|0;bb=c[wb>>2]|0;ab=c[xb>>2]|0;c[Wa>>2]=c[tb>>2];c[Xa>>2]=db;c[Ya>>2]=bb;c[Za>>2]=ab;c[_a>>2]=ip(c[Xa>>2]|0,c[Za>>2]|0)|0;ab=c[Wa>>2]|0;bb=(c[Ya>>2]|0)+(c[_a>>2]<<2)|0;a[ab>>0]=a[bb>>0]|0;a[ab+1>>0]=a[bb+1>>0]|0;jp(c[Xa>>2]|0,d[(c[Ya>>2]|0)+(c[_a>>2]<<2)+2>>0]|0);c[tb>>2]=(c[tb>>2]|0)+(d[(c[Ya>>2]|0)+(c[_a>>2]<<2)+3>>0]|0);}while(1){Ee=c[tb>>2]|0;if((c[tb>>2]|0)>>>0>((c[vb>>2]|0)+-2|0)>>>0)break;_a=c[ub>>2]|0;Ya=c[wb>>2]|0;Xa=c[xb>>2]|0;c[Ra>>2]=Ee;c[Sa>>2]=_a;c[Ta>>2]=Ya;c[Ua>>2]=Xa;c[Va>>2]=ip(c[Sa>>2]|0,c[Ua>>2]|0)|0;Xa=c[Ra>>2]|0;Ya=(c[Ta>>2]|0)+(c[Va>>2]<<2)|0;a[Xa>>0]=a[Ya>>0]|0;a[Xa+1>>0]=a[Ya+1>>0]|0;jp(c[Sa>>2]|0,d[(c[Ta>>2]|0)+(c[Va>>2]<<2)+2>>0]|0);c[tb>>2]=(c[tb>>2]|0)+(d[(c[Ta>>2]|0)+(c[Va>>2]<<2)+3>>0]|0);}if(Ee>>>0<(c[vb>>2]|0)>>>0){vb=c[ub>>2]|0;ub=c[wb>>2]|0;wb=c[xb>>2]|0;c[Ma>>2]=c[tb>>2];c[Na>>2]=vb;c[Oa>>2]=ub;c[Pa>>2]=wb;c[Qa>>2]=ip(c[Na>>2]|0,c[Pa>>2]|0)|0;a[c[Ma>>2]>>0]=a[(c[Oa>>2]|0)+(c[Qa>>2]<<2)>>0]|0;Ma=c[Na>>2]|0;if((d[(c[Oa>>2]|0)+(c[Qa>>2]<<2)+3>>0]|0|0)!=1){if((c[Ma+4>>2]|0)>>>0<32?(jp(c[Na>>2]|0,d[(c[Oa>>2]|0)+(c[Qa>>2]<<2)+2>>0]|0),(c[(c[Na>>2]|0)+4>>2]|0)>>>0>32):0)c[(c[Na>>2]|0)+4>>2]=32;}else jp(Ma,d[(c[Oa>>2]|0)+(c[Qa>>2]<<2)+2>>0]|0);c[tb>>2]=(c[tb>>2]|0)+1;}tb=c[ke>>2]|0;ke=c[Wd>>2]|0;Qa=c[re>>2]|0;c[Ga>>2]=c[ne>>2];c[Ha>>2]=Zd;c[Ia>>2]=tb;c[Ja>>2]=ke;c[Ka>>2]=Qa;c[La>>2]=c[Ga>>2];while(1){La=(gp(c[Ha>>2]|0)|0)==0&1;if(!(La&(c[Ga>>2]|0)>>>0<((c[Ia>>2]|0)+-3|0)>>>0))break;if(hp()|0){La=c[Ha>>2]|0;Qa=c[Ja>>2]|0;ke=c[Ka>>2]|0;c[Ba>>2]=c[Ga>>2];c[Ca>>2]=La;c[Da>>2]=Qa;c[Ea>>2]=ke;c[Fa>>2]=ip(c[Ca>>2]|0,c[Ea>>2]|0)|0;ke=c[Ba>>2]|0;Qa=(c[Da>>2]|0)+(c[Fa>>2]<<2)|0;a[ke>>0]=a[Qa>>0]|0;a[ke+1>>0]=a[Qa+1>>0]|0;jp(c[Ca>>2]|0,d[(c[Da>>2]|0)+(c[Fa>>2]<<2)+2>>0]|0);c[Ga>>2]=(c[Ga>>2]|0)+(d[(c[Da>>2]|0)+(c[Fa>>2]<<2)+3>>0]|0);}hp()|0;Qa=c[Ha>>2]|0;ke=c[Ja>>2]|0;La=c[Ka>>2]|0;c[wa>>2]=c[Ga>>2];c[xa>>2]=Qa;c[ya>>2]=ke;c[za>>2]=La;c[Aa>>2]=ip(c[xa>>2]|0,c[za>>2]|0)|0;La=c[wa>>2]|0;ke=(c[ya>>2]|0)+(c[Aa>>2]<<2)|0;a[La>>0]=a[ke>>0]|0;a[La+1>>0]=a[ke+1>>0]|0;jp(c[xa>>2]|0,d[(c[ya>>2]|0)+(c[Aa>>2]<<2)+2>>0]|0);c[Ga>>2]=(c[Ga>>2]|0)+(d[(c[ya>>2]|0)+(c[Aa>>2]<<2)+3>>0]|0);if(hp()|0){ke=c[Ha>>2]|0;La=c[Ja>>2]|0;Qa=c[Ka>>2]|0;c[ra>>2]=c[Ga>>2];c[sa>>2]=ke;c[ta>>2]=La;c[ua>>2]=Qa;c[va>>2]=ip(c[sa>>2]|0,c[ua>>2]|0)|0;Qa=c[ra>>2]|0;La=(c[ta>>2]|0)+(c[va>>2]<<2)|0;a[Qa>>0]=a[La>>0]|0;a[Qa+1>>0]=a[La+1>>0]|0;jp(c[sa>>2]|0,d[(c[ta>>2]|0)+(c[va>>2]<<2)+2>>0]|0);c[Ga>>2]=(c[Ga>>2]|0)+(d[(c[ta>>2]|0)+(c[va>>2]<<2)+3>>0]|0);}La=c[Ha>>2]|0;Qa=c[Ja>>2]|0;ke=c[Ka>>2]|0;c[ma>>2]=c[Ga>>2];c[na>>2]=La;c[oa>>2]=Qa;c[pa>>2]=ke;c[qa>>2]=ip(c[na>>2]|0,c[pa>>2]|0)|0;ke=c[ma>>2]|0;Qa=(c[oa>>2]|0)+(c[qa>>2]<<2)|0;a[ke>>0]=a[Qa>>0]|0;a[ke+1>>0]=a[Qa+1>>0]|0;jp(c[na>>2]|0,d[(c[oa>>2]|0)+(c[qa>>2]<<2)+2>>0]|0);c[Ga>>2]=(c[Ga>>2]|0)+(d[(c[oa>>2]|0)+(c[qa>>2]<<2)+3>>0]|0);}while(1){qa=(gp(c[Ha>>2]|0)|0)==0&1;if(!(qa&(c[Ga>>2]|0)>>>0<=((c[Ia>>2]|0)+-2|0)>>>0))break;qa=c[Ha>>2]|0;oa=c[Ja>>2]|0;na=c[Ka>>2]|0;c[ha>>2]=c[Ga>>2];c[ia>>2]=qa;c[ja>>2]=oa;c[ka>>2]=na;c[la>>2]=ip(c[ia>>2]|0,c[ka>>2]|0)|0;na=c[ha>>2]|0;oa=(c[ja>>2]|0)+(c[la>>2]<<2)|0;a[na>>0]=a[oa>>0]|0;a[na+1>>0]=a[oa+1>>0]|0;jp(c[ia>>2]|0,d[(c[ja>>2]|0)+(c[la>>2]<<2)+2>>0]|0);c[Ga>>2]=(c[Ga>>2]|0)+(d[(c[ja>>2]|0)+(c[la>>2]<<2)+3>>0]|0);}while(1){Fe=c[Ga>>2]|0;if((c[Ga>>2]|0)>>>0>((c[Ia>>2]|0)+-2|0)>>>0)break;la=c[Ha>>2]|0;ja=c[Ja>>2]|0;ia=c[Ka>>2]|0;c[ca>>2]=Fe;c[da>>2]=la;c[ea>>2]=ja;c[fa>>2]=ia;c[ga>>2]=ip(c[da>>2]|0,c[fa>>2]|0)|0;ia=c[ca>>2]|0;ja=(c[ea>>2]|0)+(c[ga>>2]<<2)|0;a[ia>>0]=a[ja>>0]|0;a[ia+1>>0]=a[ja+1>>0]|0;jp(c[da>>2]|0,d[(c[ea>>2]|0)+(c[ga>>2]<<2)+2>>0]|0);c[Ga>>2]=(c[Ga>>2]|0)+(d[(c[ea>>2]|0)+(c[ga>>2]<<2)+3>>0]|0);}if(Fe>>>0<(c[Ia>>2]|0)>>>0){Ia=c[Ha>>2]|0;Ha=c[Ja>>2]|0;Ja=c[Ka>>2]|0;c[Z>>2]=c[Ga>>2];c[_>>2]=Ia;c[$>>2]=Ha;c[aa>>2]=Ja;c[ba>>2]=ip(c[_>>2]|0,c[aa>>2]|0)|0;a[c[Z>>2]>>0]=a[(c[$>>2]|0)+(c[ba>>2]<<2)>>0]|0;Z=c[_>>2]|0;if((d[(c[$>>2]|0)+(c[ba>>2]<<2)+3>>0]|0|0)!=1){if((c[Z+4>>2]|0)>>>0<32?(jp(c[_>>2]|0,d[(c[$>>2]|0)+(c[ba>>2]<<2)+2>>0]|0),(c[(c[_>>2]|0)+4>>2]|0)>>>0>32):0)c[(c[_>>2]|0)+4>>2]=32;}else jp(Z,d[(c[$>>2]|0)+(c[ba>>2]<<2)+2>>0]|0);c[Ga>>2]=(c[Ga>>2]|0)+1;}Ga=c[Ud>>2]|0;Ud=c[Wd>>2]|0;Wd=c[re>>2]|0;c[T>>2]=c[oe>>2];c[U>>2]=_d;c[V>>2]=Ga;c[W>>2]=Ud;c[X>>2]=Wd;c[Y>>2]=c[T>>2];while(1){Y=(gp(c[U>>2]|0)|0)==0&1;if(!(Y&(c[T>>2]|0)>>>0<((c[V>>2]|0)+-3|0)>>>0))break;if(hp()|0){Y=c[U>>2]|0;Wd=c[W>>2]|0;Ud=c[X>>2]|0;c[O>>2]=c[T>>2];c[P>>2]=Y;c[Q>>2]=Wd;c[R>>2]=Ud;c[S>>2]=ip(c[P>>2]|0,c[R>>2]|0)|0;Ud=c[O>>2]|0;Wd=(c[Q>>2]|0)+(c[S>>2]<<2)|0;a[Ud>>0]=a[Wd>>0]|0;a[Ud+1>>0]=a[Wd+1>>0]|0;jp(c[P>>2]|0,d[(c[Q>>2]|0)+(c[S>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[Q>>2]|0)+(c[S>>2]<<2)+3>>0]|0);}hp()|0;Wd=c[U>>2]|0;Ud=c[W>>2]|0;Y=c[X>>2]|0;c[J>>2]=c[T>>2];c[K>>2]=Wd;c[L>>2]=Ud;c[M>>2]=Y;c[N>>2]=ip(c[K>>2]|0,c[M>>2]|0)|0;Y=c[J>>2]|0;Ud=(c[L>>2]|0)+(c[N>>2]<<2)|0;a[Y>>0]=a[Ud>>0]|0;a[Y+1>>0]=a[Ud+1>>0]|0;jp(c[K>>2]|0,d[(c[L>>2]|0)+(c[N>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[L>>2]|0)+(c[N>>2]<<2)+3>>0]|0);if(hp()|0){Ud=c[U>>2]|0;Y=c[W>>2]|0;Wd=c[X>>2]|0;c[E>>2]=c[T>>2];c[F>>2]=Ud;c[G>>2]=Y;c[H>>2]=Wd;c[I>>2]=ip(c[F>>2]|0,c[H>>2]|0)|0;Wd=c[E>>2]|0;Y=(c[G>>2]|0)+(c[I>>2]<<2)|0;a[Wd>>0]=a[Y>>0]|0;a[Wd+1>>0]=a[Y+1>>0]|0;jp(c[F>>2]|0,d[(c[G>>2]|0)+(c[I>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[G>>2]|0)+(c[I>>2]<<2)+3>>0]|0);}Y=c[U>>2]|0;Wd=c[W>>2]|0;Ud=c[X>>2]|0;c[z>>2]=c[T>>2];c[A>>2]=Y;c[B>>2]=Wd;c[C>>2]=Ud;c[D>>2]=ip(c[A>>2]|0,c[C>>2]|0)|0;Ud=c[z>>2]|0;Wd=(c[B>>2]|0)+(c[D>>2]<<2)|0;a[Ud>>0]=a[Wd>>0]|0;a[Ud+1>>0]=a[Wd+1>>0]|0;jp(c[A>>2]|0,d[(c[B>>2]|0)+(c[D>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[B>>2]|0)+(c[D>>2]<<2)+3>>0]|0);}while(1){D=(gp(c[U>>2]|0)|0)==0&1;if(!(D&(c[T>>2]|0)>>>0<=((c[V>>2]|0)+-2|0)>>>0))break;D=c[U>>2]|0;B=c[W>>2]|0;A=c[X>>2]|0;c[u>>2]=c[T>>2];c[v>>2]=D;c[w>>2]=B;c[x>>2]=A;c[y>>2]=ip(c[v>>2]|0,c[x>>2]|0)|0;A=c[u>>2]|0;B=(c[w>>2]|0)+(c[y>>2]<<2)|0;a[A>>0]=a[B>>0]|0;a[A+1>>0]=a[B+1>>0]|0;jp(c[v>>2]|0,d[(c[w>>2]|0)+(c[y>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[w>>2]|0)+(c[y>>2]<<2)+3>>0]|0);}while(1){Ge=c[T>>2]|0;if((c[T>>2]|0)>>>0>((c[V>>2]|0)+-2|0)>>>0)break;y=c[U>>2]|0;w=c[W>>2]|0;v=c[X>>2]|0;c[p>>2]=Ge;c[q>>2]=y;c[r>>2]=w;c[s>>2]=v;c[t>>2]=ip(c[q>>2]|0,c[s>>2]|0)|0;v=c[p>>2]|0;w=(c[r>>2]|0)+(c[t>>2]<<2)|0;a[v>>0]=a[w>>0]|0;a[v+1>>0]=a[w+1>>0]|0;jp(c[q>>2]|0,d[(c[r>>2]|0)+(c[t>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[r>>2]|0)+(c[t>>2]<<2)+3>>0]|0);}if(Ge>>>0<(c[V>>2]|0)>>>0){V=c[U>>2]|0;U=c[W>>2]|0;W=c[X>>2]|0;c[j>>2]=c[T>>2];c[k>>2]=V;c[m>>2]=U;c[n>>2]=W;c[o>>2]=ip(c[k>>2]|0,c[n>>2]|0)|0;a[c[j>>2]>>0]=a[(c[m>>2]|0)+(c[o>>2]<<2)>>0]|0;j=c[k>>2]|0;if((d[(c[m>>2]|0)+(c[o>>2]<<2)+3>>0]|0|0)!=1){if((c[j+4>>2]|0)>>>0<32?(jp(c[k>>2]|0,d[(c[m>>2]|0)+(c[o>>2]<<2)+2>>0]|0),(c[(c[k>>2]|0)+4>>2]|0)>>>0>32):0)c[(c[k>>2]|0)+4>>2]=32;}else jp(j,d[(c[m>>2]|0)+(c[o>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+1;}T=lp(Xd)|0;Xd=T&(lp(Yd)|0);Yd=Xd&(lp(Zd)|0);c[we>>2]=Yd&(lp(_d)|0);if(c[we>>2]|0){c[Md>>2]=c[Od>>2];Ce=c[Md>>2]|0;l=i;return Ce|0;}else{c[Md>>2]=-20;Ce=c[Md>>2]|0;l=i;return Ce|0;}return 0;}function Lp(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,yc=0,zc=0,Ac=0,Bc=0,Cc=0,Dc=0,Ec=0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0,Kc=0,Lc=0,Mc=0,Nc=0,Oc=0,Pc=0,Qc=0,Rc=0,Sc=0,Tc=0,Uc=0,Vc=0,Wc=0,Xc=0,Yc=0,Zc=0,_c=0,$c=0,ad=0,bd=0,cd=0,dd=0,ed=0,fd=0,gd=0,hd=0,id=0,jd=0,kd=0,ld=0,md=0,nd=0,od=0,pd=0,qd=0,rd=0,sd=0,td=0,ud=0,vd=0,wd=0,xd=0,yd=0,zd=0,Ad=0,Bd=0,Cd=0,Dd=0,Ed=0,Fd=0,Gd=0,Hd=0,Id=0,Jd=0,Kd=0,Ld=0,Md=0,Nd=0,Od=0,Pd=0,Qd=0,Rd=0,Sd=0,Td=0,Ud=0,Vd=0,Wd=0,Xd=0,Yd=0,Zd=0,_d=0,$d=0,ae=0,be=0,ce=0,de=0,ee=0,fe=0,ge=0,he=0,ie=0,je=0,ke=0,le=0,me=0,ne=0,oe=0,pe=0,qe=0,re=0,se=0,te=0,ue=0,ve=0,we=0,xe=0,ye=0,ze=0,Ae=0,Be=0,Ce=0,De=0,Ee=0,Fe=0,Ge=0;i=l;l=l+1216|0;j=i+1208|0;k=i+1204|0;m=i+1200|0;n=i+1196|0;o=i+1192|0;p=i+1188|0;q=i+1184|0;r=i+1180|0;s=i+1176|0;t=i+1172|0;u=i+1168|0;v=i+1164|0;w=i+1160|0;x=i+1156|0;y=i+1152|0;z=i+1148|0;A=i+1144|0;B=i+1140|0;C=i+1136|0;D=i+1132|0;E=i+1128|0;F=i+1124|0;G=i+1120|0;H=i+1116|0;I=i+1112|0;J=i+1108|0;K=i+1104|0;L=i+1100|0;M=i+1096|0;N=i+1092|0;O=i+1088|0;P=i+1084|0;Q=i+1080|0;R=i+1076|0;S=i+1072|0;T=i+1068|0;U=i+1064|0;V=i+1060|0;W=i+1056|0;X=i+1052|0;Y=i+1048|0;Z=i+1044|0;_=i+1040|0;$=i+1036|0;aa=i+1032|0;ba=i+1028|0;ca=i+1024|0;da=i+1020|0;ea=i+1016|0;fa=i+1012|0;ga=i+1008|0;ha=i+1004|0;ia=i+1e3|0;ja=i+996|0;ka=i+992|0;la=i+988|0;ma=i+984|0;na=i+980|0;oa=i+976|0;pa=i+972|0;qa=i+968|0;ra=i+964|0;sa=i+960|0;ta=i+956|0;ua=i+952|0;va=i+948|0;wa=i+944|0;xa=i+940|0;ya=i+936|0;za=i+932|0;Aa=i+928|0;Ba=i+924|0;Ca=i+920|0;Da=i+916|0;Ea=i+912|0;Fa=i+908|0;Ga=i+904|0;Ha=i+900|0;Ia=i+896|0;Ja=i+892|0;Ka=i+888|0;La=i+884|0;Ma=i+880|0;Na=i+876|0;Oa=i+872|0;Pa=i+868|0;Qa=i+864|0;Ra=i+860|0;Sa=i+856|0;Ta=i+852|0;Ua=i+848|0;Va=i+844|0;Wa=i+840|0;Xa=i+836|0;Ya=i+832|0;Za=i+828|0;_a=i+824|0;$a=i+820|0;ab=i+816|0;bb=i+812|0;cb=i+808|0;db=i+804|0;eb=i+800|0;fb=i+796|0;gb=i+792|0;hb=i+788|0;ib=i+784|0;jb=i+780|0;kb=i+776|0;lb=i+772|0;mb=i+768|0;nb=i+764|0;ob=i+760|0;pb=i+756|0;qb=i+752|0;rb=i+748|0;sb=i+744|0;tb=i+740|0;ub=i+736|0;vb=i+732|0;wb=i+728|0;xb=i+724|0;yb=i+720|0;zb=i+716|0;Ab=i+712|0;Bb=i+708|0;Cb=i+704|0;Db=i+700|0;Eb=i+696|0;Fb=i+692|0;Gb=i+688|0;Hb=i+684|0;Ib=i+680|0;Jb=i+676|0;Kb=i+672|0;Lb=i+668|0;Mb=i+664|0;Nb=i+660|0;Ob=i+656|0;Pb=i+652|0;Qb=i+648|0;Rb=i+644|0;Sb=i+640|0;Tb=i+636|0;Ub=i+632|0;Vb=i+628|0;Wb=i+624|0;Xb=i+620|0;Yb=i+616|0;Zb=i+612|0;_b=i+608|0;$b=i+604|0;ac=i+600|0;bc=i+596|0;cc=i+592|0;dc=i+588|0;ec=i+584|0;fc=i+580|0;gc=i+576|0;hc=i+572|0;ic=i+568|0;jc=i+564|0;kc=i+560|0;lc=i+556|0;mc=i+552|0;nc=i+548|0;oc=i+544|0;pc=i+540|0;qc=i+536|0;rc=i+532|0;sc=i+528|0;tc=i+524|0;uc=i+520|0;vc=i+516|0;wc=i+512|0;xc=i+508|0;yc=i+504|0;zc=i+500|0;Ac=i+496|0;Bc=i+492|0;Cc=i+488|0;Dc=i+484|0;Ec=i+480|0;Fc=i+476|0;Gc=i+472|0;Hc=i+468|0;Ic=i+464|0;Jc=i+460|0;Kc=i+456|0;Lc=i+452|0;Mc=i+448|0;Nc=i+444|0;Oc=i+440|0;Pc=i+436|0;Qc=i+432|0;Rc=i+428|0;Sc=i+424|0;Tc=i+420|0;Uc=i+416|0;Vc=i+412|0;Wc=i+408|0;Xc=i+404|0;Yc=i+400|0;Zc=i+396|0;_c=i+392|0;$c=i+388|0;ad=i+384|0;bd=i+380|0;cd=i+376|0;dd=i+372|0;ed=i+368|0;fd=i+364|0;gd=i+360|0;hd=i+356|0;id=i+352|0;jd=i+348|0;kd=i+344|0;ld=i+340|0;md=i+336|0;nd=i+332|0;od=i+328|0;pd=i+324|0;qd=i+320|0;rd=i+316|0;sd=i+312|0;td=i+308|0;ud=i+304|0;vd=i+300|0;wd=i+296|0;xd=i+292|0;yd=i+288|0;zd=i+284|0;Ad=i+280|0;Bd=i+276|0;Cd=i+272|0;Dd=i+268|0;Ed=i+264|0;Fd=i+260|0;Gd=i+256|0;Hd=i+252|0;Id=i+248|0;Jd=i+244|0;Kd=i+240|0;Ld=i+236|0;Md=i+232|0;Nd=i+228|0;Od=i+224|0;Pd=i+220|0;Qd=i+216|0;Rd=i+212|0;Sd=i+208|0;Td=i+204|0;Ud=i+200|0;Vd=i+196|0;Wd=i+192|0;Xd=i+172|0;Yd=i+152|0;Zd=i+132|0;_d=i+112|0;$d=i+108|0;ae=i+104|0;be=i+100|0;ce=i+96|0;de=i+92|0;ee=i+88|0;fe=i+84|0;ge=i+80|0;he=i+76|0;ie=i+72|0;je=i+68|0;ke=i+64|0;le=i+60|0;me=i+56|0;ne=i+52|0;oe=i+48|0;pe=i+44|0;qe=i+1212|0;re=i+40|0;se=i+36|0;te=i+32|0;ue=i+28|0;ve=i+24|0;we=i+20|0;xe=i+16|0;ye=i+12|0;ze=i+8|0;Ae=i+4|0;Be=i;c[xe>>2]=b;c[ye>>2]=e;c[ze>>2]=f;c[Ae>>2]=g;c[Be>>2]=h;h=c[ye>>2]|0;ye=c[ze>>2]|0;ze=c[Ae>>2]|0;Ae=c[Be>>2]|0;c[Nd>>2]=c[xe>>2];c[Od>>2]=h;c[Pd>>2]=ye;c[Qd>>2]=ze;c[Rd>>2]=Ae;if((c[Qd>>2]|0)>>>0<10){c[Md>>2]=-20;Ce=c[Md>>2]|0;l=i;return Ce|0;}c[Sd>>2]=c[Pd>>2];c[Td>>2]=c[Nd>>2];c[Ud>>2]=(c[Td>>2]|0)+(c[Od>>2]|0);c[Vd>>2]=(c[Rd>>2]|0)+4;c[Wd>>2]=c[Vd>>2];c[$d>>2]=(yp(c[Sd>>2]|0)|0)&65535;c[ae>>2]=(yp((c[Sd>>2]|0)+2|0)|0)&65535;c[be>>2]=(yp((c[Sd>>2]|0)+4|0)|0)&65535;c[ce>>2]=(c[Qd>>2]|0)-((c[$d>>2]|0)+(c[ae>>2]|0)+(c[be>>2]|0)+6);c[de>>2]=(c[Sd>>2]|0)+6;c[ee>>2]=(c[de>>2]|0)+(c[$d>>2]|0);c[fe>>2]=(c[ee>>2]|0)+(c[ae>>2]|0);c[ge>>2]=(c[fe>>2]|0)+(c[be>>2]|0);c[he>>2]=(((c[Od>>2]|0)+3|0)>>>0)/4|0;c[ie>>2]=(c[Td>>2]|0)+(c[he>>2]|0);c[je>>2]=(c[ie>>2]|0)+(c[he>>2]|0);c[ke>>2]=(c[je>>2]|0)+(c[he>>2]|0);c[le>>2]=c[Td>>2];c[me>>2]=c[ie>>2];c[ne>>2]=c[je>>2];c[oe>>2]=c[ke>>2];bp(qe,c[Rd>>2]|0);c[re>>2]=d[qe+2>>0];if((c[ce>>2]|0)>>>0>(c[Qd>>2]|0)>>>0){c[Md>>2]=-20;Ce=c[Md>>2]|0;l=i;return Ce|0;}c[se>>2]=fp(Xd,c[de>>2]|0,c[$d>>2]|0)|0;if(ap(c[se>>2]|0)|0){c[Md>>2]=c[se>>2];Ce=c[Md>>2]|0;l=i;return Ce|0;}c[te>>2]=fp(Yd,c[ee>>2]|0,c[ae>>2]|0)|0;if(ap(c[te>>2]|0)|0){c[Md>>2]=c[te>>2];Ce=c[Md>>2]|0;l=i;return Ce|0;}c[ue>>2]=fp(Zd,c[fe>>2]|0,c[be>>2]|0)|0;if(ap(c[ue>>2]|0)|0){c[Md>>2]=c[ue>>2];Ce=c[Md>>2]|0;l=i;return Ce|0;}c[ve>>2]=fp(_d,c[ge>>2]|0,c[ce>>2]|0)|0;if(ap(c[ve>>2]|0)|0){c[Md>>2]=c[ve>>2];Ce=c[Md>>2]|0;l=i;return Ce|0;}ve=gp(Xd)|0;ce=ve|(gp(Yd)|0);ve=ce|(gp(Zd)|0);c[pe>>2]=ve|(gp(_d)|0);while(1){if(!(((c[pe>>2]|0)==0?(c[oe>>2]|0)>>>0<((c[Ud>>2]|0)+-3|0)>>>0:0)|0))break;if(hp()|0){ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[Hd>>2]=c[le>>2];c[Id>>2]=Xd;c[Jd>>2]=ve;c[Kd>>2]=ce;c[Ld>>2]=ip(c[Id>>2]|0,c[Kd>>2]|0)|0;ce=c[Hd>>2]|0;ve=(c[Jd>>2]|0)+(c[Ld>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[Id>>2]|0,d[(c[Jd>>2]|0)+(c[Ld>>2]<<2)+2>>0]|0);c[le>>2]=(c[le>>2]|0)+(d[(c[Jd>>2]|0)+(c[Ld>>2]<<2)+3>>0]|0);}if(hp()|0){ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[Cd>>2]=c[me>>2];c[Dd>>2]=Yd;c[Ed>>2]=ve;c[Fd>>2]=ce;c[Gd>>2]=ip(c[Dd>>2]|0,c[Fd>>2]|0)|0;ce=c[Cd>>2]|0;ve=(c[Ed>>2]|0)+(c[Gd>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[Dd>>2]|0,d[(c[Ed>>2]|0)+(c[Gd>>2]<<2)+2>>0]|0);c[me>>2]=(c[me>>2]|0)+(d[(c[Ed>>2]|0)+(c[Gd>>2]<<2)+3>>0]|0);}if(hp()|0){ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[xd>>2]=c[ne>>2];c[yd>>2]=Zd;c[zd>>2]=ve;c[Ad>>2]=ce;c[Bd>>2]=ip(c[yd>>2]|0,c[Ad>>2]|0)|0;ce=c[xd>>2]|0;ve=(c[zd>>2]|0)+(c[Bd>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[yd>>2]|0,d[(c[zd>>2]|0)+(c[Bd>>2]<<2)+2>>0]|0);c[ne>>2]=(c[ne>>2]|0)+(d[(c[zd>>2]|0)+(c[Bd>>2]<<2)+3>>0]|0);}if(hp()|0){ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[sd>>2]=c[oe>>2];c[td>>2]=_d;c[ud>>2]=ve;c[vd>>2]=ce;c[wd>>2]=ip(c[td>>2]|0,c[vd>>2]|0)|0;ce=c[sd>>2]|0;ve=(c[ud>>2]|0)+(c[wd>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[td>>2]|0,d[(c[ud>>2]|0)+(c[wd>>2]<<2)+2>>0]|0);c[oe>>2]=(c[oe>>2]|0)+(d[(c[ud>>2]|0)+(c[wd>>2]<<2)+3>>0]|0);}hp()|0;ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[nd>>2]=c[le>>2];c[od>>2]=Xd;c[pd>>2]=ve;c[qd>>2]=ce;c[rd>>2]=ip(c[od>>2]|0,c[qd>>2]|0)|0;ce=c[nd>>2]|0;ve=(c[pd>>2]|0)+(c[rd>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[od>>2]|0,d[(c[pd>>2]|0)+(c[rd>>2]<<2)+2>>0]|0);c[le>>2]=(c[le>>2]|0)+(d[(c[pd>>2]|0)+(c[rd>>2]<<2)+3>>0]|0);hp()|0;ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[id>>2]=c[me>>2];c[jd>>2]=Yd;c[kd>>2]=ve;c[ld>>2]=ce;c[md>>2]=ip(c[jd>>2]|0,c[ld>>2]|0)|0;ce=c[id>>2]|0;ve=(c[kd>>2]|0)+(c[md>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[jd>>2]|0,d[(c[kd>>2]|0)+(c[md>>2]<<2)+2>>0]|0);c[me>>2]=(c[me>>2]|0)+(d[(c[kd>>2]|0)+(c[md>>2]<<2)+3>>0]|0);hp()|0;ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[dd>>2]=c[ne>>2];c[ed>>2]=Zd;c[fd>>2]=ve;c[gd>>2]=ce;c[hd>>2]=ip(c[ed>>2]|0,c[gd>>2]|0)|0;ce=c[dd>>2]|0;ve=(c[fd>>2]|0)+(c[hd>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[ed>>2]|0,d[(c[fd>>2]|0)+(c[hd>>2]<<2)+2>>0]|0);c[ne>>2]=(c[ne>>2]|0)+(d[(c[fd>>2]|0)+(c[hd>>2]<<2)+3>>0]|0);hp()|0;ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[_c>>2]=c[oe>>2];c[$c>>2]=_d;c[ad>>2]=ve;c[bd>>2]=ce;c[cd>>2]=ip(c[$c>>2]|0,c[bd>>2]|0)|0;ce=c[_c>>2]|0;ve=(c[ad>>2]|0)+(c[cd>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[$c>>2]|0,d[(c[ad>>2]|0)+(c[cd>>2]<<2)+2>>0]|0);c[oe>>2]=(c[oe>>2]|0)+(d[(c[ad>>2]|0)+(c[cd>>2]<<2)+3>>0]|0);if(hp()|0){ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[Vc>>2]=c[le>>2];c[Wc>>2]=Xd;c[Xc>>2]=ve;c[Yc>>2]=ce;c[Zc>>2]=ip(c[Wc>>2]|0,c[Yc>>2]|0)|0;ce=c[Vc>>2]|0;ve=(c[Xc>>2]|0)+(c[Zc>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[Wc>>2]|0,d[(c[Xc>>2]|0)+(c[Zc>>2]<<2)+2>>0]|0);c[le>>2]=(c[le>>2]|0)+(d[(c[Xc>>2]|0)+(c[Zc>>2]<<2)+3>>0]|0);}if(hp()|0){ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[Qc>>2]=c[me>>2];c[Rc>>2]=Yd;c[Sc>>2]=ve;c[Tc>>2]=ce;c[Uc>>2]=ip(c[Rc>>2]|0,c[Tc>>2]|0)|0;ce=c[Qc>>2]|0;ve=(c[Sc>>2]|0)+(c[Uc>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[Rc>>2]|0,d[(c[Sc>>2]|0)+(c[Uc>>2]<<2)+2>>0]|0);c[me>>2]=(c[me>>2]|0)+(d[(c[Sc>>2]|0)+(c[Uc>>2]<<2)+3>>0]|0);}if(hp()|0){ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[Lc>>2]=c[ne>>2];c[Mc>>2]=Zd;c[Nc>>2]=ve;c[Oc>>2]=ce;c[Pc>>2]=ip(c[Mc>>2]|0,c[Oc>>2]|0)|0;ce=c[Lc>>2]|0;ve=(c[Nc>>2]|0)+(c[Pc>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[Mc>>2]|0,d[(c[Nc>>2]|0)+(c[Pc>>2]<<2)+2>>0]|0);c[ne>>2]=(c[ne>>2]|0)+(d[(c[Nc>>2]|0)+(c[Pc>>2]<<2)+3>>0]|0);}if(hp()|0){ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[Gc>>2]=c[oe>>2];c[Hc>>2]=_d;c[Ic>>2]=ve;c[Jc>>2]=ce;c[Kc>>2]=ip(c[Hc>>2]|0,c[Jc>>2]|0)|0;ce=c[Gc>>2]|0;ve=(c[Ic>>2]|0)+(c[Kc>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[Hc>>2]|0,d[(c[Ic>>2]|0)+(c[Kc>>2]<<2)+2>>0]|0);c[oe>>2]=(c[oe>>2]|0)+(d[(c[Ic>>2]|0)+(c[Kc>>2]<<2)+3>>0]|0);}ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[Bc>>2]=c[le>>2];c[Cc>>2]=Xd;c[Dc>>2]=ve;c[Ec>>2]=ce;c[Fc>>2]=ip(c[Cc>>2]|0,c[Ec>>2]|0)|0;ce=c[Bc>>2]|0;ve=(c[Dc>>2]|0)+(c[Fc>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[Cc>>2]|0,d[(c[Dc>>2]|0)+(c[Fc>>2]<<2)+2>>0]|0);c[le>>2]=(c[le>>2]|0)+(d[(c[Dc>>2]|0)+(c[Fc>>2]<<2)+3>>0]|0);ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[wc>>2]=c[me>>2];c[xc>>2]=Yd;c[yc>>2]=ve;c[zc>>2]=ce;c[Ac>>2]=ip(c[xc>>2]|0,c[zc>>2]|0)|0;ce=c[wc>>2]|0;ve=(c[yc>>2]|0)+(c[Ac>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[xc>>2]|0,d[(c[yc>>2]|0)+(c[Ac>>2]<<2)+2>>0]|0);c[me>>2]=(c[me>>2]|0)+(d[(c[yc>>2]|0)+(c[Ac>>2]<<2)+3>>0]|0);ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[rc>>2]=c[ne>>2];c[sc>>2]=Zd;c[tc>>2]=ve;c[uc>>2]=ce;c[vc>>2]=ip(c[sc>>2]|0,c[uc>>2]|0)|0;ce=c[rc>>2]|0;ve=(c[tc>>2]|0)+(c[vc>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[sc>>2]|0,d[(c[tc>>2]|0)+(c[vc>>2]<<2)+2>>0]|0);c[ne>>2]=(c[ne>>2]|0)+(d[(c[tc>>2]|0)+(c[vc>>2]<<2)+3>>0]|0);ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[mc>>2]=c[oe>>2];c[nc>>2]=_d;c[oc>>2]=ve;c[pc>>2]=ce;c[qc>>2]=ip(c[nc>>2]|0,c[pc>>2]|0)|0;ce=c[mc>>2]|0;ve=(c[oc>>2]|0)+(c[qc>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[nc>>2]|0,d[(c[oc>>2]|0)+(c[qc>>2]<<2)+2>>0]|0);c[oe>>2]=(c[oe>>2]|0)+(d[(c[oc>>2]|0)+(c[qc>>2]<<2)+3>>0]|0);ve=gp(Xd)|0;ce=ve|(gp(Yd)|0);ve=ce|(gp(Zd)|0);c[pe>>2]=ve|(gp(_d)|0);}if((c[le>>2]|0)>>>0>(c[ie>>2]|0)>>>0){c[Md>>2]=-20;Ce=c[Md>>2]|0;l=i;return Ce|0;}if((c[me>>2]|0)>>>0>(c[je>>2]|0)>>>0){c[Md>>2]=-20;Ce=c[Md>>2]|0;l=i;return Ce|0;}if((c[ne>>2]|0)>>>0>(c[ke>>2]|0)>>>0){c[Md>>2]=-20;Ce=c[Md>>2]|0;l=i;return Ce|0;}pe=c[ie>>2]|0;ie=c[Wd>>2]|0;qc=c[re>>2]|0;c[gc>>2]=c[le>>2];c[hc>>2]=Xd;c[ic>>2]=pe;c[jc>>2]=ie;c[kc>>2]=qc;c[lc>>2]=c[gc>>2];while(1){lc=(gp(c[hc>>2]|0)|0)==0&1;if(!(lc&(c[gc>>2]|0)>>>0<((c[ic>>2]|0)+-3|0)>>>0))break;if(hp()|0){lc=c[hc>>2]|0;qc=c[jc>>2]|0;ie=c[kc>>2]|0;c[bc>>2]=c[gc>>2];c[cc>>2]=lc;c[dc>>2]=qc;c[ec>>2]=ie;c[fc>>2]=ip(c[cc>>2]|0,c[ec>>2]|0)|0;ie=c[bc>>2]|0;qc=(c[dc>>2]|0)+(c[fc>>2]<<2)|0;a[ie>>0]=a[qc>>0]|0;a[ie+1>>0]=a[qc+1>>0]|0;jp(c[cc>>2]|0,d[(c[dc>>2]|0)+(c[fc>>2]<<2)+2>>0]|0);c[gc>>2]=(c[gc>>2]|0)+(d[(c[dc>>2]|0)+(c[fc>>2]<<2)+3>>0]|0);}hp()|0;qc=c[hc>>2]|0;ie=c[jc>>2]|0;lc=c[kc>>2]|0;c[Yb>>2]=c[gc>>2];c[Zb>>2]=qc;c[_b>>2]=ie;c[$b>>2]=lc;c[ac>>2]=ip(c[Zb>>2]|0,c[$b>>2]|0)|0;lc=c[Yb>>2]|0;ie=(c[_b>>2]|0)+(c[ac>>2]<<2)|0;a[lc>>0]=a[ie>>0]|0;a[lc+1>>0]=a[ie+1>>0]|0;jp(c[Zb>>2]|0,d[(c[_b>>2]|0)+(c[ac>>2]<<2)+2>>0]|0);c[gc>>2]=(c[gc>>2]|0)+(d[(c[_b>>2]|0)+(c[ac>>2]<<2)+3>>0]|0);if(hp()|0){ie=c[hc>>2]|0;lc=c[jc>>2]|0;qc=c[kc>>2]|0;c[Tb>>2]=c[gc>>2];c[Ub>>2]=ie;c[Vb>>2]=lc;c[Wb>>2]=qc;c[Xb>>2]=ip(c[Ub>>2]|0,c[Wb>>2]|0)|0;qc=c[Tb>>2]|0;lc=(c[Vb>>2]|0)+(c[Xb>>2]<<2)|0;a[qc>>0]=a[lc>>0]|0;a[qc+1>>0]=a[lc+1>>0]|0;jp(c[Ub>>2]|0,d[(c[Vb>>2]|0)+(c[Xb>>2]<<2)+2>>0]|0);c[gc>>2]=(c[gc>>2]|0)+(d[(c[Vb>>2]|0)+(c[Xb>>2]<<2)+3>>0]|0);}lc=c[hc>>2]|0;qc=c[jc>>2]|0;ie=c[kc>>2]|0;c[Ob>>2]=c[gc>>2];c[Pb>>2]=lc;c[Qb>>2]=qc;c[Rb>>2]=ie;c[Sb>>2]=ip(c[Pb>>2]|0,c[Rb>>2]|0)|0;ie=c[Ob>>2]|0;qc=(c[Qb>>2]|0)+(c[Sb>>2]<<2)|0;a[ie>>0]=a[qc>>0]|0;a[ie+1>>0]=a[qc+1>>0]|0;jp(c[Pb>>2]|0,d[(c[Qb>>2]|0)+(c[Sb>>2]<<2)+2>>0]|0);c[gc>>2]=(c[gc>>2]|0)+(d[(c[Qb>>2]|0)+(c[Sb>>2]<<2)+3>>0]|0);}while(1){Sb=(gp(c[hc>>2]|0)|0)==0&1;if(!(Sb&(c[gc>>2]|0)>>>0<=((c[ic>>2]|0)+-2|0)>>>0))break;Sb=c[hc>>2]|0;Qb=c[jc>>2]|0;Pb=c[kc>>2]|0;c[Jb>>2]=c[gc>>2];c[Kb>>2]=Sb;c[Lb>>2]=Qb;c[Mb>>2]=Pb;c[Nb>>2]=ip(c[Kb>>2]|0,c[Mb>>2]|0)|0;Pb=c[Jb>>2]|0;Qb=(c[Lb>>2]|0)+(c[Nb>>2]<<2)|0;a[Pb>>0]=a[Qb>>0]|0;a[Pb+1>>0]=a[Qb+1>>0]|0;jp(c[Kb>>2]|0,d[(c[Lb>>2]|0)+(c[Nb>>2]<<2)+2>>0]|0);c[gc>>2]=(c[gc>>2]|0)+(d[(c[Lb>>2]|0)+(c[Nb>>2]<<2)+3>>0]|0);}while(1){De=c[gc>>2]|0;if((c[gc>>2]|0)>>>0>((c[ic>>2]|0)+-2|0)>>>0)break;Nb=c[hc>>2]|0;Lb=c[jc>>2]|0;Kb=c[kc>>2]|0;c[Eb>>2]=De;c[Fb>>2]=Nb;c[Gb>>2]=Lb;c[Hb>>2]=Kb;c[Ib>>2]=ip(c[Fb>>2]|0,c[Hb>>2]|0)|0;Kb=c[Eb>>2]|0;Lb=(c[Gb>>2]|0)+(c[Ib>>2]<<2)|0;a[Kb>>0]=a[Lb>>0]|0;a[Kb+1>>0]=a[Lb+1>>0]|0;jp(c[Fb>>2]|0,d[(c[Gb>>2]|0)+(c[Ib>>2]<<2)+2>>0]|0);c[gc>>2]=(c[gc>>2]|0)+(d[(c[Gb>>2]|0)+(c[Ib>>2]<<2)+3>>0]|0);}if(De>>>0<(c[ic>>2]|0)>>>0){ic=c[hc>>2]|0;hc=c[jc>>2]|0;jc=c[kc>>2]|0;c[zb>>2]=c[gc>>2];c[Ab>>2]=ic;c[Bb>>2]=hc;c[Cb>>2]=jc;c[Db>>2]=ip(c[Ab>>2]|0,c[Cb>>2]|0)|0;a[c[zb>>2]>>0]=a[(c[Bb>>2]|0)+(c[Db>>2]<<2)>>0]|0;zb=c[Ab>>2]|0;if((d[(c[Bb>>2]|0)+(c[Db>>2]<<2)+3>>0]|0|0)!=1){if((c[zb+4>>2]|0)>>>0<32?(jp(c[Ab>>2]|0,d[(c[Bb>>2]|0)+(c[Db>>2]<<2)+2>>0]|0),(c[(c[Ab>>2]|0)+4>>2]|0)>>>0>32):0)c[(c[Ab>>2]|0)+4>>2]=32;}else jp(zb,d[(c[Bb>>2]|0)+(c[Db>>2]<<2)+2>>0]|0);c[gc>>2]=(c[gc>>2]|0)+1;}gc=c[je>>2]|0;je=c[Wd>>2]|0;Db=c[re>>2]|0;c[tb>>2]=c[me>>2];c[ub>>2]=Yd;c[vb>>2]=gc;c[wb>>2]=je;c[xb>>2]=Db;c[yb>>2]=c[tb>>2];while(1){yb=(gp(c[ub>>2]|0)|0)==0&1;if(!(yb&(c[tb>>2]|0)>>>0<((c[vb>>2]|0)+-3|0)>>>0))break;if(hp()|0){yb=c[ub>>2]|0;Db=c[wb>>2]|0;je=c[xb>>2]|0;c[ob>>2]=c[tb>>2];c[pb>>2]=yb;c[qb>>2]=Db;c[rb>>2]=je;c[sb>>2]=ip(c[pb>>2]|0,c[rb>>2]|0)|0;je=c[ob>>2]|0;Db=(c[qb>>2]|0)+(c[sb>>2]<<2)|0;a[je>>0]=a[Db>>0]|0;a[je+1>>0]=a[Db+1>>0]|0;jp(c[pb>>2]|0,d[(c[qb>>2]|0)+(c[sb>>2]<<2)+2>>0]|0);c[tb>>2]=(c[tb>>2]|0)+(d[(c[qb>>2]|0)+(c[sb>>2]<<2)+3>>0]|0);}hp()|0;Db=c[ub>>2]|0;je=c[wb>>2]|0;yb=c[xb>>2]|0;c[jb>>2]=c[tb>>2];c[kb>>2]=Db;c[lb>>2]=je;c[mb>>2]=yb;c[nb>>2]=ip(c[kb>>2]|0,c[mb>>2]|0)|0;yb=c[jb>>2]|0;je=(c[lb>>2]|0)+(c[nb>>2]<<2)|0;a[yb>>0]=a[je>>0]|0;a[yb+1>>0]=a[je+1>>0]|0;jp(c[kb>>2]|0,d[(c[lb>>2]|0)+(c[nb>>2]<<2)+2>>0]|0);c[tb>>2]=(c[tb>>2]|0)+(d[(c[lb>>2]|0)+(c[nb>>2]<<2)+3>>0]|0);if(hp()|0){je=c[ub>>2]|0;yb=c[wb>>2]|0;Db=c[xb>>2]|0;c[eb>>2]=c[tb>>2];c[fb>>2]=je;c[gb>>2]=yb;c[hb>>2]=Db;c[ib>>2]=ip(c[fb>>2]|0,c[hb>>2]|0)|0;Db=c[eb>>2]|0;yb=(c[gb>>2]|0)+(c[ib>>2]<<2)|0;a[Db>>0]=a[yb>>0]|0;a[Db+1>>0]=a[yb+1>>0]|0;jp(c[fb>>2]|0,d[(c[gb>>2]|0)+(c[ib>>2]<<2)+2>>0]|0);c[tb>>2]=(c[tb>>2]|0)+(d[(c[gb>>2]|0)+(c[ib>>2]<<2)+3>>0]|0);}yb=c[ub>>2]|0;Db=c[wb>>2]|0;je=c[xb>>2]|0;c[$a>>2]=c[tb>>2];c[ab>>2]=yb;c[bb>>2]=Db;c[cb>>2]=je;c[db>>2]=ip(c[ab>>2]|0,c[cb>>2]|0)|0;je=c[$a>>2]|0;Db=(c[bb>>2]|0)+(c[db>>2]<<2)|0;a[je>>0]=a[Db>>0]|0;a[je+1>>0]=a[Db+1>>0]|0;jp(c[ab>>2]|0,d[(c[bb>>2]|0)+(c[db>>2]<<2)+2>>0]|0);c[tb>>2]=(c[tb>>2]|0)+(d[(c[bb>>2]|0)+(c[db>>2]<<2)+3>>0]|0);}while(1){db=(gp(c[ub>>2]|0)|0)==0&1;if(!(db&(c[tb>>2]|0)>>>0<=((c[vb>>2]|0)+-2|0)>>>0))break;db=c[ub>>2]|0;bb=c[wb>>2]|0;ab=c[xb>>2]|0;c[Wa>>2]=c[tb>>2];c[Xa>>2]=db;c[Ya>>2]=bb;c[Za>>2]=ab;c[_a>>2]=ip(c[Xa>>2]|0,c[Za>>2]|0)|0;ab=c[Wa>>2]|0;bb=(c[Ya>>2]|0)+(c[_a>>2]<<2)|0;a[ab>>0]=a[bb>>0]|0;a[ab+1>>0]=a[bb+1>>0]|0;jp(c[Xa>>2]|0,d[(c[Ya>>2]|0)+(c[_a>>2]<<2)+2>>0]|0);c[tb>>2]=(c[tb>>2]|0)+(d[(c[Ya>>2]|0)+(c[_a>>2]<<2)+3>>0]|0);}while(1){Ee=c[tb>>2]|0;if((c[tb>>2]|0)>>>0>((c[vb>>2]|0)+-2|0)>>>0)break;_a=c[ub>>2]|0;Ya=c[wb>>2]|0;Xa=c[xb>>2]|0;c[Ra>>2]=Ee;c[Sa>>2]=_a;c[Ta>>2]=Ya;c[Ua>>2]=Xa;c[Va>>2]=ip(c[Sa>>2]|0,c[Ua>>2]|0)|0;Xa=c[Ra>>2]|0;Ya=(c[Ta>>2]|0)+(c[Va>>2]<<2)|0;a[Xa>>0]=a[Ya>>0]|0;a[Xa+1>>0]=a[Ya+1>>0]|0;jp(c[Sa>>2]|0,d[(c[Ta>>2]|0)+(c[Va>>2]<<2)+2>>0]|0);c[tb>>2]=(c[tb>>2]|0)+(d[(c[Ta>>2]|0)+(c[Va>>2]<<2)+3>>0]|0);}if(Ee>>>0<(c[vb>>2]|0)>>>0){vb=c[ub>>2]|0;ub=c[wb>>2]|0;wb=c[xb>>2]|0;c[Ma>>2]=c[tb>>2];c[Na>>2]=vb;c[Oa>>2]=ub;c[Pa>>2]=wb;c[Qa>>2]=ip(c[Na>>2]|0,c[Pa>>2]|0)|0;a[c[Ma>>2]>>0]=a[(c[Oa>>2]|0)+(c[Qa>>2]<<2)>>0]|0;Ma=c[Na>>2]|0;if((d[(c[Oa>>2]|0)+(c[Qa>>2]<<2)+3>>0]|0|0)!=1){if((c[Ma+4>>2]|0)>>>0<32?(jp(c[Na>>2]|0,d[(c[Oa>>2]|0)+(c[Qa>>2]<<2)+2>>0]|0),(c[(c[Na>>2]|0)+4>>2]|0)>>>0>32):0)c[(c[Na>>2]|0)+4>>2]=32;}else jp(Ma,d[(c[Oa>>2]|0)+(c[Qa>>2]<<2)+2>>0]|0);c[tb>>2]=(c[tb>>2]|0)+1;}tb=c[ke>>2]|0;ke=c[Wd>>2]|0;Qa=c[re>>2]|0;c[Ga>>2]=c[ne>>2];c[Ha>>2]=Zd;c[Ia>>2]=tb;c[Ja>>2]=ke;c[Ka>>2]=Qa;c[La>>2]=c[Ga>>2];while(1){La=(gp(c[Ha>>2]|0)|0)==0&1;if(!(La&(c[Ga>>2]|0)>>>0<((c[Ia>>2]|0)+-3|0)>>>0))break;if(hp()|0){La=c[Ha>>2]|0;Qa=c[Ja>>2]|0;ke=c[Ka>>2]|0;c[Ba>>2]=c[Ga>>2];c[Ca>>2]=La;c[Da>>2]=Qa;c[Ea>>2]=ke;c[Fa>>2]=ip(c[Ca>>2]|0,c[Ea>>2]|0)|0;ke=c[Ba>>2]|0;Qa=(c[Da>>2]|0)+(c[Fa>>2]<<2)|0;a[ke>>0]=a[Qa>>0]|0;a[ke+1>>0]=a[Qa+1>>0]|0;jp(c[Ca>>2]|0,d[(c[Da>>2]|0)+(c[Fa>>2]<<2)+2>>0]|0);c[Ga>>2]=(c[Ga>>2]|0)+(d[(c[Da>>2]|0)+(c[Fa>>2]<<2)+3>>0]|0);}hp()|0;Qa=c[Ha>>2]|0;ke=c[Ja>>2]|0;La=c[Ka>>2]|0;c[wa>>2]=c[Ga>>2];c[xa>>2]=Qa;c[ya>>2]=ke;c[za>>2]=La;c[Aa>>2]=ip(c[xa>>2]|0,c[za>>2]|0)|0;La=c[wa>>2]|0;ke=(c[ya>>2]|0)+(c[Aa>>2]<<2)|0;a[La>>0]=a[ke>>0]|0;a[La+1>>0]=a[ke+1>>0]|0;jp(c[xa>>2]|0,d[(c[ya>>2]|0)+(c[Aa>>2]<<2)+2>>0]|0);c[Ga>>2]=(c[Ga>>2]|0)+(d[(c[ya>>2]|0)+(c[Aa>>2]<<2)+3>>0]|0);if(hp()|0){ke=c[Ha>>2]|0;La=c[Ja>>2]|0;Qa=c[Ka>>2]|0;c[ra>>2]=c[Ga>>2];c[sa>>2]=ke;c[ta>>2]=La;c[ua>>2]=Qa;c[va>>2]=ip(c[sa>>2]|0,c[ua>>2]|0)|0;Qa=c[ra>>2]|0;La=(c[ta>>2]|0)+(c[va>>2]<<2)|0;a[Qa>>0]=a[La>>0]|0;a[Qa+1>>0]=a[La+1>>0]|0;jp(c[sa>>2]|0,d[(c[ta>>2]|0)+(c[va>>2]<<2)+2>>0]|0);c[Ga>>2]=(c[Ga>>2]|0)+(d[(c[ta>>2]|0)+(c[va>>2]<<2)+3>>0]|0);}La=c[Ha>>2]|0;Qa=c[Ja>>2]|0;ke=c[Ka>>2]|0;c[ma>>2]=c[Ga>>2];c[na>>2]=La;c[oa>>2]=Qa;c[pa>>2]=ke;c[qa>>2]=ip(c[na>>2]|0,c[pa>>2]|0)|0;ke=c[ma>>2]|0;Qa=(c[oa>>2]|0)+(c[qa>>2]<<2)|0;a[ke>>0]=a[Qa>>0]|0;a[ke+1>>0]=a[Qa+1>>0]|0;jp(c[na>>2]|0,d[(c[oa>>2]|0)+(c[qa>>2]<<2)+2>>0]|0);c[Ga>>2]=(c[Ga>>2]|0)+(d[(c[oa>>2]|0)+(c[qa>>2]<<2)+3>>0]|0);}while(1){qa=(gp(c[Ha>>2]|0)|0)==0&1;if(!(qa&(c[Ga>>2]|0)>>>0<=((c[Ia>>2]|0)+-2|0)>>>0))break;qa=c[Ha>>2]|0;oa=c[Ja>>2]|0;na=c[Ka>>2]|0;c[ha>>2]=c[Ga>>2];c[ia>>2]=qa;c[ja>>2]=oa;c[ka>>2]=na;c[la>>2]=ip(c[ia>>2]|0,c[ka>>2]|0)|0;na=c[ha>>2]|0;oa=(c[ja>>2]|0)+(c[la>>2]<<2)|0;a[na>>0]=a[oa>>0]|0;a[na+1>>0]=a[oa+1>>0]|0;jp(c[ia>>2]|0,d[(c[ja>>2]|0)+(c[la>>2]<<2)+2>>0]|0);c[Ga>>2]=(c[Ga>>2]|0)+(d[(c[ja>>2]|0)+(c[la>>2]<<2)+3>>0]|0);}while(1){Fe=c[Ga>>2]|0;if((c[Ga>>2]|0)>>>0>((c[Ia>>2]|0)+-2|0)>>>0)break;la=c[Ha>>2]|0;ja=c[Ja>>2]|0;ia=c[Ka>>2]|0;c[ca>>2]=Fe;c[da>>2]=la;c[ea>>2]=ja;c[fa>>2]=ia;c[ga>>2]=ip(c[da>>2]|0,c[fa>>2]|0)|0;ia=c[ca>>2]|0;ja=(c[ea>>2]|0)+(c[ga>>2]<<2)|0;a[ia>>0]=a[ja>>0]|0;a[ia+1>>0]=a[ja+1>>0]|0;jp(c[da>>2]|0,d[(c[ea>>2]|0)+(c[ga>>2]<<2)+2>>0]|0);c[Ga>>2]=(c[Ga>>2]|0)+(d[(c[ea>>2]|0)+(c[ga>>2]<<2)+3>>0]|0);}if(Fe>>>0<(c[Ia>>2]|0)>>>0){Ia=c[Ha>>2]|0;Ha=c[Ja>>2]|0;Ja=c[Ka>>2]|0;c[Z>>2]=c[Ga>>2];c[_>>2]=Ia;c[$>>2]=Ha;c[aa>>2]=Ja;c[ba>>2]=ip(c[_>>2]|0,c[aa>>2]|0)|0;a[c[Z>>2]>>0]=a[(c[$>>2]|0)+(c[ba>>2]<<2)>>0]|0;Z=c[_>>2]|0;if((d[(c[$>>2]|0)+(c[ba>>2]<<2)+3>>0]|0|0)!=1){if((c[Z+4>>2]|0)>>>0<32?(jp(c[_>>2]|0,d[(c[$>>2]|0)+(c[ba>>2]<<2)+2>>0]|0),(c[(c[_>>2]|0)+4>>2]|0)>>>0>32):0)c[(c[_>>2]|0)+4>>2]=32;}else jp(Z,d[(c[$>>2]|0)+(c[ba>>2]<<2)+2>>0]|0);c[Ga>>2]=(c[Ga>>2]|0)+1;}Ga=c[Ud>>2]|0;Ud=c[Wd>>2]|0;Wd=c[re>>2]|0;c[T>>2]=c[oe>>2];c[U>>2]=_d;c[V>>2]=Ga;c[W>>2]=Ud;c[X>>2]=Wd;c[Y>>2]=c[T>>2];while(1){Y=(gp(c[U>>2]|0)|0)==0&1;if(!(Y&(c[T>>2]|0)>>>0<((c[V>>2]|0)+-3|0)>>>0))break;if(hp()|0){Y=c[U>>2]|0;Wd=c[W>>2]|0;Ud=c[X>>2]|0;c[O>>2]=c[T>>2];c[P>>2]=Y;c[Q>>2]=Wd;c[R>>2]=Ud;c[S>>2]=ip(c[P>>2]|0,c[R>>2]|0)|0;Ud=c[O>>2]|0;Wd=(c[Q>>2]|0)+(c[S>>2]<<2)|0;a[Ud>>0]=a[Wd>>0]|0;a[Ud+1>>0]=a[Wd+1>>0]|0;jp(c[P>>2]|0,d[(c[Q>>2]|0)+(c[S>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[Q>>2]|0)+(c[S>>2]<<2)+3>>0]|0);}hp()|0;Wd=c[U>>2]|0;Ud=c[W>>2]|0;Y=c[X>>2]|0;c[J>>2]=c[T>>2];c[K>>2]=Wd;c[L>>2]=Ud;c[M>>2]=Y;c[N>>2]=ip(c[K>>2]|0,c[M>>2]|0)|0;Y=c[J>>2]|0;Ud=(c[L>>2]|0)+(c[N>>2]<<2)|0;a[Y>>0]=a[Ud>>0]|0;a[Y+1>>0]=a[Ud+1>>0]|0;jp(c[K>>2]|0,d[(c[L>>2]|0)+(c[N>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[L>>2]|0)+(c[N>>2]<<2)+3>>0]|0);if(hp()|0){Ud=c[U>>2]|0;Y=c[W>>2]|0;Wd=c[X>>2]|0;c[E>>2]=c[T>>2];c[F>>2]=Ud;c[G>>2]=Y;c[H>>2]=Wd;c[I>>2]=ip(c[F>>2]|0,c[H>>2]|0)|0;Wd=c[E>>2]|0;Y=(c[G>>2]|0)+(c[I>>2]<<2)|0;a[Wd>>0]=a[Y>>0]|0;a[Wd+1>>0]=a[Y+1>>0]|0;jp(c[F>>2]|0,d[(c[G>>2]|0)+(c[I>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[G>>2]|0)+(c[I>>2]<<2)+3>>0]|0);}Y=c[U>>2]|0;Wd=c[W>>2]|0;Ud=c[X>>2]|0;c[z>>2]=c[T>>2];c[A>>2]=Y;c[B>>2]=Wd;c[C>>2]=Ud;c[D>>2]=ip(c[A>>2]|0,c[C>>2]|0)|0;Ud=c[z>>2]|0;Wd=(c[B>>2]|0)+(c[D>>2]<<2)|0;a[Ud>>0]=a[Wd>>0]|0;a[Ud+1>>0]=a[Wd+1>>0]|0;jp(c[A>>2]|0,d[(c[B>>2]|0)+(c[D>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[B>>2]|0)+(c[D>>2]<<2)+3>>0]|0);}while(1){D=(gp(c[U>>2]|0)|0)==0&1;if(!(D&(c[T>>2]|0)>>>0<=((c[V>>2]|0)+-2|0)>>>0))break;D=c[U>>2]|0;B=c[W>>2]|0;A=c[X>>2]|0;c[u>>2]=c[T>>2];c[v>>2]=D;c[w>>2]=B;c[x>>2]=A;c[y>>2]=ip(c[v>>2]|0,c[x>>2]|0)|0;A=c[u>>2]|0;B=(c[w>>2]|0)+(c[y>>2]<<2)|0;a[A>>0]=a[B>>0]|0;a[A+1>>0]=a[B+1>>0]|0;jp(c[v>>2]|0,d[(c[w>>2]|0)+(c[y>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[w>>2]|0)+(c[y>>2]<<2)+3>>0]|0);}while(1){Ge=c[T>>2]|0;if((c[T>>2]|0)>>>0>((c[V>>2]|0)+-2|0)>>>0)break;y=c[U>>2]|0;w=c[W>>2]|0;v=c[X>>2]|0;c[p>>2]=Ge;c[q>>2]=y;c[r>>2]=w;c[s>>2]=v;c[t>>2]=ip(c[q>>2]|0,c[s>>2]|0)|0;v=c[p>>2]|0;w=(c[r>>2]|0)+(c[t>>2]<<2)|0;a[v>>0]=a[w>>0]|0;a[v+1>>0]=a[w+1>>0]|0;jp(c[q>>2]|0,d[(c[r>>2]|0)+(c[t>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[r>>2]|0)+(c[t>>2]<<2)+3>>0]|0);}if(Ge>>>0<(c[V>>2]|0)>>>0){V=c[U>>2]|0;U=c[W>>2]|0;W=c[X>>2]|0;c[j>>2]=c[T>>2];c[k>>2]=V;c[m>>2]=U;c[n>>2]=W;c[o>>2]=ip(c[k>>2]|0,c[n>>2]|0)|0;a[c[j>>2]>>0]=a[(c[m>>2]|0)+(c[o>>2]<<2)>>0]|0;j=c[k>>2]|0;if((d[(c[m>>2]|0)+(c[o>>2]<<2)+3>>0]|0|0)!=1){if((c[j+4>>2]|0)>>>0<32?(jp(c[k>>2]|0,d[(c[m>>2]|0)+(c[o>>2]<<2)+2>>0]|0),(c[(c[k>>2]|0)+4>>2]|0)>>>0>32):0)c[(c[k>>2]|0)+4>>2]=32;}else jp(j,d[(c[m>>2]|0)+(c[o>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+1;}T=lp(Xd)|0;Xd=T&(lp(Yd)|0);Yd=Xd&(lp(Zd)|0);c[we>>2]=Yd&(lp(_d)|0);if(c[we>>2]|0){c[Md>>2]=c[Od>>2];Ce=c[Md>>2]|0;l=i;return Ce|0;}else{c[Md>>2]=-20;Ce=c[Md>>2]|0;l=i;return Ce|0;}return 0;}function Mp(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;j=l;l=l+48|0;k=j+40|0;m=j+36|0;n=j+32|0;o=j+28|0;p=j+24|0;q=j+20|0;r=j+16|0;s=j+12|0;t=j+8|0;u=j+4|0;v=j;c[m>>2]=a;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=i;c[u>>2]=c[p>>2];c[v>>2]=Bp(c[m>>2]|0,c[p>>2]|0,c[q>>2]|0,c[r>>2]|0,c[s>>2]|0)|0;s=(ap(c[v>>2]|0)|0)!=0;r=c[v>>2]|0;if(s){c[k>>2]=r;w=c[k>>2]|0;l=j;return w|0;}if(r>>>0>=(c[q>>2]|0)>>>0){c[k>>2]=-72;w=c[k>>2]|0;l=j;return w|0;}else{c[u>>2]=(c[u>>2]|0)+(c[v>>2]|0);c[q>>2]=(c[q>>2]|0)-(c[v>>2]|0);c[k>>2]=Jp(c[n>>2]|0,c[o>>2]|0,c[u>>2]|0,c[q>>2]|0,c[m>>2]|0,c[t>>2]|0)|0;w=c[k>>2]|0;l=j;return w|0;}return 0;}function Np(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=l;l=l+32|0;e=d+20|0;f=d+16|0;g=d+12|0;h=d+8|0;i=d+4|0;j=d;c[e>>2]=a;c[f>>2]=b;if((c[f>>2]|0)>>>0>=(c[e>>2]|0)>>>0)k=15;else k=(c[f>>2]<<4>>>0)/((c[e>>2]|0)>>>0)|0;c[g>>2]=k;c[h>>2]=(c[e>>2]|0)>>>8;c[i>>2]=(c[7008+((c[g>>2]|0)*24|0)>>2]|0)+(N(c[7008+((c[g>>2]|0)*24|0)+4>>2]|0,c[h>>2]|0)|0);c[j>>2]=(c[7008+((c[g>>2]|0)*24|0)+8>>2]|0)+(N(c[7008+((c[g>>2]|0)*24|0)+8+4>>2]|0,c[h>>2]|0)|0);c[j>>2]=(c[j>>2]|0)+((c[j>>2]|0)>>>3);l=d;return(c[j>>2]|0)>>>0<(c[i>>2]|0)>>>0|0;}function Op(a,b,e,f,g,h){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;i=l;l=l+32|0;j=i+20|0;k=i+16|0;m=i+12|0;n=i+8|0;o=i+4|0;p=i;q=i+24|0;c[j>>2]=a;c[k>>2]=b;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;bp(q,c[o>>2]|0);h=c[j>>2]|0;j=c[k>>2]|0;k=c[m>>2]|0;m=c[n>>2]|0;n=c[o>>2]|0;o=c[p>>2]|0;if(d[q+1>>0]|0|0){r=Gp(h,j,k,m,n,o)|0;l=i;return r|0;}else{r=cp(h,j,k,m,n,o)|0;l=i;return r|0;}return 0;}function Pp(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;j=l;l=l+48|0;k=j+40|0;m=j+36|0;n=j+32|0;o=j+28|0;p=j+24|0;q=j+20|0;r=j+16|0;s=j+12|0;t=j+8|0;u=j+4|0;v=j;c[m>>2]=a;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=i;c[u>>2]=c[p>>2];c[v>>2]=$o(c[m>>2]|0,c[p>>2]|0,c[q>>2]|0,c[r>>2]|0,c[s>>2]|0)|0;s=(ap(c[v>>2]|0)|0)!=0;r=c[v>>2]|0;if(s){c[k>>2]=r;w=c[k>>2]|0;l=j;return w|0;}if(r>>>0>=(c[q>>2]|0)>>>0){c[k>>2]=-72;w=c[k>>2]|0;l=j;return w|0;}else{c[u>>2]=(c[u>>2]|0)+(c[v>>2]|0);c[q>>2]=(c[q>>2]|0)-(c[v>>2]|0);c[k>>2]=cp(c[n>>2]|0,c[o>>2]|0,c[u>>2]|0,c[q>>2]|0,c[m>>2]|0,c[t>>2]|0)|0;w=c[k>>2]|0;l=j;return w|0;}return 0;}function Qp(a,b,e,f,g,h){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;i=l;l=l+32|0;j=i+20|0;k=i+16|0;m=i+12|0;n=i+8|0;o=i+4|0;p=i;q=i+24|0;c[j>>2]=a;c[k>>2]=b;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;bp(q,c[o>>2]|0);h=c[j>>2]|0;j=c[k>>2]|0;k=c[m>>2]|0;m=c[n>>2]|0;n=c[o>>2]|0;o=c[p>>2]|0;if(d[q+1>>0]|0|0){r=Jp(h,j,k,m,n,o)|0;l=i;return r|0;}else{r=vp(h,j,k,m,n,o)|0;l=i;return r|0;}return 0;}function Rp(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;j=l;l=l+48|0;k=j+36|0;m=j+32|0;n=j+28|0;o=j+24|0;p=j+20|0;q=j+16|0;r=j+12|0;s=j+8|0;t=j+4|0;u=j;c[m>>2]=a;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=i;if(!(c[o>>2]|0)){c[k>>2]=-70;v=c[k>>2]|0;l=j;return v|0;}if(!(c[q>>2]|0)){c[k>>2]=-20;v=c[k>>2]|0;l=j;return v|0;}c[u>>2]=Np(c[o>>2]|0,c[q>>2]|0)|0;i=c[m>>2]|0;m=c[n>>2]|0;n=c[o>>2]|0;o=c[p>>2]|0;p=c[q>>2]|0;q=c[r>>2]|0;r=c[s>>2]|0;s=c[t>>2]|0;if(c[u>>2]|0)w=Mp(i,m,n,o,p,q,r,s)|0;else w=Ap(i,m,n,o,p,q,r,s)|0;c[k>>2]=w;v=c[k>>2]|0;l=j;return v|0;}function Sp(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+48|0;d=b+24|0;e=b+16|0;f=b;c[e>>2]=a;c[(c[e>>2]|0)+28912>>2]=0;c[(c[e>>2]|0)+28940>>2]=0;c[(c[e>>2]|0)+28972>>2]=134217729;c[(c[e>>2]|0)+28952>>2]=0;c[(c[e>>2]|0)+28948>>2]=0;c[(c[e>>2]|0)+28960>>2]=0;c[(c[e>>2]|0)+28964>>2]=0;c[(c[e>>2]|0)+28980>>2]=0;c[(c[e>>2]|0)+28956>>2]=0;Tp(f);c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];c[d+8>>2]=c[f+8>>2];c[d+12>>2]=c[f+12>>2];f=Up(d)|0;c[(c[e>>2]|0)+28944>>2]=f;l=b;return;}function Tp(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=l;l=l+32|0;d=b+28|0;e=b+24|0;f=b+20|0;g=b+16|0;h=b;c[d>>2]=0;c[e>>2]=0;c[f>>2]=0;c[g>>2]=0;c[h>>2]=c[d>>2];c[h+4>>2]=c[e>>2];c[h+8>>2]=c[f>>2];c[h+12>>2]=c[g>>2];c[a>>2]=c[h>>2];c[a+4>>2]=c[h+4>>2];c[a+8>>2]=c[h+8>>2];c[a+12>>2]=c[h+12>>2];l=b;return;}function Up(a){a=a|0;return(c[a+8>>2]&256|0)!=0|0;}function Vp(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+32|0;d=b+8|0;e=b+4|0;f=b;if(((c[a>>2]|0)!=0^1)&1^((c[a+4>>2]|0)!=0^1)&1|0){c[e>>2]=0;g=c[e>>2]|0;l=b;return g|0;};c[d>>2]=c[a>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];c[f>>2]=Rh(160112,d)|0;if(c[f>>2]|0){d=(c[f>>2]|0)+28920|0;c[d>>2]=c[a>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];c[(c[f>>2]|0)+28996>>2]=0;c[(c[f>>2]|0)+29e3>>2]=0;Sp(c[f>>2]|0);c[e>>2]=c[f>>2];g=c[e>>2]|0;l=b;return g|0;}else{c[e>>2]=0;g=c[e>>2]|0;l=b;return g|0;}return 0;}function Wp(){var a=0,b=0,d=0;a=l;l=l+16|0;b=a;c[b>>2]=c[5412];c[b+4>>2]=c[5413];c[b+8>>2]=c[5414];d=Vp(b)|0;l=a;return d|0;}function Xp(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=l;l=l+32|0;d=b+20|0;e=b+16|0;f=b+12|0;g=b;c[f>>2]=a;if(!(c[f>>2]|0)){c[e>>2]=0;h=c[e>>2]|0;l=b;return h|0;}if(c[(c[f>>2]|0)+28940>>2]|0){c[e>>2]=-64;h=c[e>>2]|0;l=b;return h|0;}a=(c[f>>2]|0)+28920|0;c[g>>2]=c[a>>2];c[g+4>>2]=c[a+4>>2];c[g+8>>2]=c[a+8>>2];Yp(c[(c[f>>2]|0)+28948>>2]|0)|0;c[(c[f>>2]|0)+28948>>2]=0;a=c[(c[f>>2]|0)+28960>>2]|0;c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];Th(a,d);c[(c[f>>2]|0)+28960>>2]=0;if(c[(c[f>>2]|0)+28996>>2]|0)Zp(c[(c[f>>2]|0)+28996>>2]|0,c[(c[f>>2]|0)+29e3>>2]|0)|0;a=c[f>>2]|0;c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];Th(a,d);c[e>>2]=0;h=c[e>>2]|0;l=b;return h|0;}function Yp(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=l;l=l+32|0;d=b+20|0;e=b+16|0;f=b+12|0;g=b;c[f>>2]=a;if(!(c[f>>2]|0)){c[e>>2]=0;h=c[e>>2]|0;l=b;return h|0;}else{a=(c[f>>2]|0)+28732|0;c[g>>2]=c[a>>2];c[g+4>>2]=c[a+4>>2];c[g+8>>2]=c[a+8>>2];a=c[c[f>>2]>>2]|0;c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];Th(a,d);a=c[f>>2]|0;c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];Th(a,d);c[e>>2]=0;h=c[e>>2]|0;l=b;return h|0;}return 0;}function Zp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[f>>2]=a;c[g>>2]=b;switch(c[g>>2]|0){case 7:{c[e>>2]=bq(c[f>>2]|0)|0;break;}case 6:{c[e>>2]=aq(c[f>>2]|0)|0;break;}case 5:{c[e>>2]=$p(c[f>>2]|0)|0;break;}case 4:{c[e>>2]=_p(c[f>>2]|0)|0;break;}default:c[e>>2]=-12;}l=d;return c[e>>2]|0;}function _p(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=fq(c[d>>2]|0)|0;l=b;return a|0;}function $p(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;if(!(c[e>>2]|0)){c[d>>2]=0;f=c[d>>2]|0;l=b;return f|0;}else{eq(c[c[e>>2]>>2]|0)|0;Dy(c[(c[e>>2]|0)+48>>2]|0);Dy(c[(c[e>>2]|0)+60>>2]|0);Dy(c[e>>2]|0);c[d>>2]=0;f=c[d>>2]|0;l=b;return f|0;}return 0;}function aq(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;if(!(c[e>>2]|0)){c[d>>2]=0;f=c[d>>2]|0;l=b;return f|0;}else{dq(c[c[e>>2]>>2]|0)|0;Dy(c[(c[e>>2]|0)+28>>2]|0);Dy(c[(c[e>>2]|0)+40>>2]|0);Dy(c[e>>2]|0);c[d>>2]=0;f=c[d>>2]|0;l=b;return f|0;}return 0;}function bq(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;if(!(c[e>>2]|0)){c[d>>2]=0;f=c[d>>2]|0;l=b;return f|0;}cq(c[c[e>>2]>>2]|0)|0;if(c[(c[e>>2]|0)+36>>2]|0)xc[c[(c[e>>2]|0)+92+4>>2]&31](c[(c[e>>2]|0)+92+8>>2]|0,c[(c[e>>2]|0)+36>>2]|0);if(c[(c[e>>2]|0)+48>>2]|0)xc[c[(c[e>>2]|0)+92+4>>2]&31](c[(c[e>>2]|0)+92+8>>2]|0,c[(c[e>>2]|0)+48>>2]|0);xc[c[(c[e>>2]|0)+92+4>>2]&31](c[(c[e>>2]|0)+92+8>>2]|0,c[e>>2]|0);c[d>>2]=0;f=c[d>>2]|0;l=b;return f|0;}function cq(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;if(!(c[e>>2]|0)){c[d>>2]=0;f=c[d>>2]|0;l=b;return f|0;}else{xc[c[(c[e>>2]|0)+21692+4>>2]&31](c[(c[e>>2]|0)+21692+8>>2]|0,c[e>>2]|0);c[d>>2]=0;f=c[d>>2]|0;l=b;return f|0;}return 0;}function dq(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;Dy(c[d>>2]|0);l=b;return 0;}function eq(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;Dy(c[d>>2]|0);l=b;return 0;}function fq(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;if(!(c[e>>2]|0)){c[d>>2]=0;f=c[d>>2]|0;l=b;return f|0;}else{gq(c[c[e>>2]>>2]|0)|0;Dy(c[(c[e>>2]|0)+40>>2]|0);Dy(c[(c[e>>2]|0)+52>>2]|0);Dy(c[e>>2]|0);c[d>>2]=0;f=c[d>>2]|0;l=b;return f|0;}return 0;}function gq(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;Dy(c[d>>2]|0);l=b;return 0;}function hq(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(jq()|0)!=0;f=kq(c[e>>2]|0)|0;if(a){c[d>>2]=f;g=c[d>>2]|0;l=b;return g|0;}else{c[d>>2]=lq(f)|0;g=c[d>>2]|0;l=b;return g|0;}return 0;}function iq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d+12|0;f=d+8|0;g=d+4|0;h=d;c[f>>2]=a;c[g>>2]=b;a:do{if((c[g>>2]|0)>>>0<4)c[e>>2]=0;else{c[h>>2]=hq(c[f>>2]|0)|0;switch(c[h>>2]|0){case-47205084:{c[e>>2]=4;break a;break;}case-47205083:{c[e>>2]=5;break a;break;}case-47205082:{c[e>>2]=6;break a;break;}case-47205081:{c[e>>2]=7;break a;break;}default:{c[e>>2]=0;break a;}}}}while(0);l=d;return c[e>>2]|0;}function jq(){return d[11936]|0|0;}function kq(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0;}function lq(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[d>>2]<<24&-16777216|c[d>>2]<<8&16711680|(c[d>>2]|0)>>>8&65280|(c[d>>2]|0)>>>24&255|0;}function mq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=nq(c[e>>2]|0,c[f>>2]|0,0)|0;l=d;return b|0;}function nq(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;g=l;l=l+48|0;h=g+28|0;i=g+24|0;j=g+20|0;k=g+16|0;m=g+12|0;n=g+32|0;o=g+8|0;p=g+4|0;q=g;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=oq(c[k>>2]|0)|0;if((c[j>>2]|0)>>>0<(c[m>>2]|0)>>>0){c[h>>2]=-72;r=c[h>>2]|0;l=g;return r|0;}a[n>>0]=a[(c[i>>2]|0)+((c[m>>2]|0)-1)>>0]|0;c[o>>2]=(d[n>>0]|0)&3;c[p>>2]=(d[n>>0]|0)>>5&1;c[q>>2]=(d[n>>0]|0)>>6;if(c[p>>2]|0)s=(c[q>>2]|0)!=0^1;else s=0;c[h>>2]=(c[m>>2]|0)+(((c[p>>2]|0)!=0^1)&1)+(c[3456+(c[o>>2]<<2)>>2]|0)+(c[3472+(c[q>>2]<<2)>>2]|0)+(s&1);r=c[h>>2]|0;l=g;return r|0;}function oq(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=(c[d>>2]|0)==1?1:5;l=b;return c[e>>2]|0;}function pq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=qq(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0,0)|0;l=e;return d|0;}function qq(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0,A=0,B=0,C=0,D=0;h=l;l=l+80|0;i=h+72|0;j=h+68|0;k=h+64|0;m=h+60|0;n=h+56|0;o=h+52|0;p=h+48|0;q=h+44|0;r=h+77|0;s=h+40|0;t=h+36|0;u=h+32|0;v=h+28|0;w=h+24|0;x=h+8|0;z=h+20|0;A=h;B=h+76|0;C=h+16|0;c[j>>2]=b;c[k>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=c[k>>2];c[p>>2]=oq(c[n>>2]|0)|0;if((c[m>>2]|0)>>>0<(c[p>>2]|0)>>>0){c[i>>2]=c[p>>2];D=c[i>>2]|0;l=h;return D|0;}if((c[n>>2]|0)!=1?(hq(c[k>>2]|0)|0)!=-47205080:0){if(((hq(c[k>>2]|0)|0)&-16|0)!=407710288){c[i>>2]=-10;D=c[i>>2]|0;l=h;return D|0;}if((c[m>>2]|0)>>>0<8){c[i>>2]=8;D=c[i>>2]|0;l=h;return D|0;}else{g=c[j>>2]|0;f=g+40|0;do{c[g>>2]=0;g=g+4|0;}while((g|0)<(f|0));g=hq((c[k>>2]|0)+4|0)|0;f=c[j>>2]|0;c[f>>2]=g;c[f+4>>2]=0;c[(c[j>>2]|0)+20>>2]=1;c[i>>2]=0;D=c[i>>2]|0;l=h;return D|0;}}c[q>>2]=nq(c[k>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;n=c[q>>2]|0;if((c[m>>2]|0)>>>0<(c[q>>2]|0)>>>0){c[i>>2]=n;D=c[i>>2]|0;l=h;return D|0;}c[(c[j>>2]|0)+24>>2]=n;a[r>>0]=a[(c[o>>2]|0)+((c[p>>2]|0)-1)>>0]|0;c[s>>2]=c[p>>2];c[t>>2]=(d[r>>0]|0)&3;c[u>>2]=(d[r>>0]|0)>>2&1;c[v>>2]=(d[r>>0]|0)>>5&1;c[w>>2]=(d[r>>0]|0)>>6;p=x;c[p>>2]=0;c[p+4>>2]=0;c[z>>2]=0;p=A;c[p>>2]=-1;c[p+4>>2]=-1;if((d[r>>0]|0)&8|0){c[i>>2]=-14;D=c[i>>2]|0;l=h;return D|0;}do{if(!(c[v>>2]|0)){r=c[o>>2]|0;p=c[s>>2]|0;c[s>>2]=p+1;a[B>>0]=a[r+p>>0]|0;c[C>>2]=((d[B>>0]|0)>>3)+10;if((c[C>>2]|0)>>>0<=30){p=jE(1,0,c[C>>2]|0)|0;r=x;c[r>>2]=p;c[r+4>>2]=y;r=x;p=iE(c[r>>2]|0,c[r+4>>2]|0,3)|0;r=(d[B>>0]|0)&7;n=cE(p|0,y|0,r|0,((r|0)<0)<<31>>31|0)|0;r=x;p=dE(c[r>>2]|0,c[r+4>>2]|0,n|0,y|0)|0;n=x;c[n>>2]=p;c[n+4>>2]=y;break;}c[i>>2]=-16;D=c[i>>2]|0;l=h;return D|0;}}while(0);switch(c[t>>2]|0){case 3:{c[z>>2]=hq((c[o>>2]|0)+(c[s>>2]|0)|0)|0;c[s>>2]=(c[s>>2]|0)+4;break;}case 1:{c[z>>2]=d[(c[o>>2]|0)+(c[s>>2]|0)>>0];c[s>>2]=(c[s>>2]|0)+1;break;}case 2:{c[z>>2]=(rq((c[o>>2]|0)+(c[s>>2]|0)|0)|0)&65535;c[s>>2]=(c[s>>2]|0)+2;break;}default:{}}switch(c[w>>2]|0){case 3:{w=A;c[w>>2]=sq((c[o>>2]|0)+(c[s>>2]|0)|0)|0;c[w+4>>2]=y;break;}case 1:{w=((rq((c[o>>2]|0)+(c[s>>2]|0)|0)|0)&65535)+256|0;t=A;c[t>>2]=w;c[t+4>>2]=((w|0)<0)<<31>>31;break;}case 2:{w=A;c[w>>2]=hq((c[o>>2]|0)+(c[s>>2]|0)|0)|0;c[w+4>>2]=0;break;}default:if(c[v>>2]|0){w=A;c[w>>2]=d[(c[o>>2]|0)+(c[s>>2]|0)>>0];c[w+4>>2]=0;}}if(c[v>>2]|0){v=A;w=c[v+4>>2]|0;s=x;c[s>>2]=c[v>>2];c[s+4>>2]=w;}c[(c[j>>2]|0)+20>>2]=0;w=A;A=c[w+4>>2]|0;s=c[j>>2]|0;c[s>>2]=c[w>>2];c[s+4>>2]=A;A=x;s=c[A+4>>2]|0;w=(c[j>>2]|0)+8|0;c[w>>2]=c[A>>2];c[w+4>>2]=s;s=x;w=c[s+4>>2]|0;A=w>>>0<0|(w|0)==0&(c[s>>2]|0)>>>0<131072;s=x;x=c[s+4>>2]|0;x=A?c[s>>2]|0:131072;c[(c[j>>2]|0)+16>>2]=x;c[(c[j>>2]|0)+28>>2]=c[z>>2];c[(c[j>>2]|0)+32>>2]=c[u>>2];c[i>>2]=0;D=c[i>>2]|0;l=h;return D|0;}function rq(a){a=a|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[g>>2]=a;a=(jq()|0)!=0;i=c[g>>2]|0;if(a){b[f>>1]=vq(i)|0;j=b[f>>1]|0;l=e;return j|0;}else{c[h>>2]=i;b[f>>1]=(d[c[h>>2]>>0]|0)+((d[(c[h>>2]|0)+1>>0]|0)<<8);j=b[f>>1]|0;l=e;return j|0;}return 0;}function sq(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b;e=b+8|0;c[e>>2]=a;a=(jq()|0)!=0;f=tq(c[e>>2]|0)|0;e=y;if(a){a=d;c[a>>2]=f;c[a+4>>2]=e;}else{a=uq(f,e)|0;e=d;c[e>>2]=a;c[e+4>>2]=y;}e=d;y=c[e+4>>2]|0;l=b;return c[e>>2]|0;}function tq(a){a=a|0;var b=0,e=0,f=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;e=a;f=a+4|0;y=d[f>>0]|d[f+1>>0]<<8|d[f+2>>0]<<16|d[f+3>>0]<<24;l=b;return d[e>>0]|d[e+1>>0]<<8|d[e+2>>0]<<16|d[e+3>>0]<<24|0;}function uq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d;f=e;c[f>>2]=a;c[f+4>>2]=b;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,56)|0;b=y&-16777216;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,40)|0;f=b|y&16711680;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=f|y&65280;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,8)|0;f=b|y&255;b=e;a=iE(c[b>>2]|0,c[b+4>>2]|0,8)|0;b=e;g=iE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=e;h=iE(c[b>>2]|0,c[b+4>>2]|0,40)|0;b=e;e=iE(c[b>>2]|0,c[b+4>>2]|0,56)|0;y=f;l=d;return a&-16777216|g&16711680|h&65280|e&255|0;}function vq(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|0;}function wq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;d=l;l=l+64|0;e=d+48|0;f=d+60|0;g=d+56|0;h=d+40|0;i=d;c[f>>2]=a;c[g>>2]=b;b=(iq(c[f>>2]|0,c[g>>2]|0)|0)!=0;a=c[f>>2]|0;f=c[g>>2]|0;do{if(!b){if(pq(i,a,f)|0){g=e;c[g>>2]=-2;c[g+4>>2]=-1;break;}if((c[i+20>>2]|0)==1){g=e;c[g>>2]=0;c[g+4>>2]=0;break;}else{g=i;j=c[g+4>>2]|0;k=e;c[k>>2]=c[g>>2];c[k+4>>2]=j;break;}}else{j=xq(a,f)|0;k=h;c[k>>2]=j;c[k+4>>2]=y;k=h;j=(c[k>>2]|0)==0&(c[k+4>>2]|0)==0;k=h;g=j?-1:c[k+4>>2]|0;m=e;c[m>>2]=j?-1:c[k>>2]|0;c[m+4>>2]=g;}}while(0);h=e;y=c[h+4>>2]|0;l=d;return c[h>>2]|0;}function xq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;d=l;l=l+112|0;e=d+80|0;f=d+108|0;g=d+104|0;h=d+100|0;i=d+40|0;j=d+96|0;k=d+24|0;m=d+92|0;n=d;o=d+88|0;c[f>>2]=a;c[g>>2]=b;c[h>>2]=iq(c[f>>2]|0,c[g>>2]|0)|0;do{if((c[h>>2]|0)>>>0>=5){if((c[h>>2]|0)==5){c[j>>2]=yq(i,c[f>>2]|0,c[g>>2]|0)|0;if(c[j>>2]|0){b=e;c[b>>2]=0;c[b+4>>2]=0;break;}else{b=i;a=c[b+4>>2]|0;p=e;c[p>>2]=c[b>>2];c[p+4>>2]=a;break;}}if((c[h>>2]|0)==6){c[m>>2]=zq(k,c[f>>2]|0,c[g>>2]|0)|0;if(c[m>>2]|0){a=e;c[a>>2]=0;c[a+4>>2]=0;break;}else{a=k;p=c[a+4>>2]|0;b=e;c[b>>2]=c[a>>2];c[b+4>>2]=p;break;}}if((c[h>>2]|0)!=7){p=e;c[p>>2]=0;c[p+4>>2]=0;break;}c[o>>2]=Aq(n,c[f>>2]|0,c[g>>2]|0)|0;if(c[o>>2]|0){p=e;c[p>>2]=0;c[p+4>>2]=0;break;}else{p=n;b=c[p+4>>2]|0;a=e;c[a>>2]=c[p>>2];c[a+4>>2]=b;break;}}else{b=e;c[b>>2]=0;c[b+4>>2]=0;}}while(0);n=e;y=c[n+4>>2]|0;l=d;return c[n>>2]|0;}function yq(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=e;if((c[j>>2]|0)>>>0<5){c[g>>2]=5;m=c[g>>2]|0;l=f;return m|0;}c[k>>2]=Wq(c[i>>2]|0)|0;if((c[k>>2]|0)!=-47205083){c[g>>2]=-10;m=c[g>>2]|0;l=f;return m|0;}k=c[h>>2]|0;j=k+40|0;do{c[k>>2]=0;k=k+4|0;}while((k|0)<(j|0));c[(c[h>>2]|0)+8>>2]=((d[(c[i>>2]|0)+4>>0]|0)&15)+11;if((d[(c[i>>2]|0)+4>>0]|0)>>4|0){c[g>>2]=-14;m=c[g>>2]|0;l=f;return m|0;}else{c[g>>2]=0;m=c[g>>2]|0;l=f;return m|0;}return 0;}function zq(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;g=l;l=l+32|0;h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;m=g+4|0;n=g;o=g+24|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=c[j>>2];if((c[k>>2]|0)>>>0<5){c[h>>2]=5;p=c[h>>2]|0;l=g;return p|0;}if((Mq(c[j>>2]|0)|0)!=-47205082){c[h>>2]=-10;p=c[h>>2]|0;l=g;return p|0;}c[n>>2]=Nq(c[j>>2]|0,c[k>>2]|0)|0;if((c[k>>2]|0)>>>0<(c[n>>2]|0)>>>0){c[h>>2]=c[n>>2];p=c[h>>2]|0;l=g;return p|0;}n=c[i>>2]|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;a[o>>0]=a[(c[m>>2]|0)+4>>0]|0;c[(c[i>>2]|0)+8>>2]=((d[o>>0]|0)&15)+12;if((d[o>>0]|0)&32|0){c[h>>2]=-14;p=c[h>>2]|0;l=g;return p|0;}switch((d[o>>0]|0)>>6|0){case 0:{o=c[i>>2]|0;c[o>>2]=0;c[o+4>>2]=0;break;}case 1:{o=c[i>>2]|0;c[o>>2]=d[(c[m>>2]|0)+5>>0];c[o+4>>2]=0;break;}case 2:{o=((Oq((c[m>>2]|0)+5|0)|0)&65535)+256|0;n=c[i>>2]|0;c[n>>2]=o;c[n+4>>2]=((o|0)<0)<<31>>31;break;}case 3:{o=Pq((c[m>>2]|0)+5|0)|0;m=c[i>>2]|0;c[m>>2]=o;c[m+4>>2]=y;break;}default:{}}c[h>>2]=0;p=c[h>>2]|0;l=g;return p|0;}function Aq(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0,A=0,B=0;g=l;l=l+80|0;h=g+64|0;i=g+60|0;j=g+56|0;k=g+52|0;m=g+48|0;n=g+44|0;o=g+69|0;p=g+40|0;q=g+36|0;r=g+32|0;s=g+28|0;t=g+24|0;u=g+20|0;v=g+16|0;w=g+12|0;x=g;z=g+68|0;A=g+8|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=c[j>>2];if((c[k>>2]|0)>>>0<5){c[h>>2]=5;B=c[h>>2]|0;l=g;return B|0;}f=(Bq(c[j>>2]|0)|0)!=-47205081;e=c[j>>2]|0;if(f){if(((Bq(e)|0)&-16|0)!=407710288){c[h>>2]=-10;B=c[h>>2]|0;l=g;return B|0;}if((c[k>>2]|0)>>>0<8){c[h>>2]=8;B=c[h>>2]|0;l=g;return B|0;}else{f=c[i>>2]|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=0;f=Bq((c[j>>2]|0)+4|0)|0;j=c[i>>2]|0;c[j>>2]=f;c[j+4>>2]=0;c[(c[i>>2]|0)+8>>2]=0;c[h>>2]=0;B=c[h>>2]|0;l=g;return B|0;}}c[n>>2]=Cq(e,c[k>>2]|0)|0;if((c[k>>2]|0)>>>0<(c[n>>2]|0)>>>0){c[h>>2]=c[n>>2];B=c[h>>2]|0;l=g;return B|0;}a[o>>0]=a[(c[m>>2]|0)+4>>0]|0;c[p>>2]=5;c[q>>2]=(d[o>>0]|0)&3;c[r>>2]=(d[o>>0]|0)>>2&1;c[s>>2]=(d[o>>0]|0)>>5&1;c[t>>2]=(d[o>>0]|0)>>6;n=(Dq()|0)!=0;c[u>>2]=1<<(n?25:27);c[v>>2]=0;c[w>>2]=0;n=x;c[n>>2]=0;c[n+4>>2]=0;if((d[o>>0]|0)&8|0){c[h>>2]=-14;B=c[h>>2]|0;l=g;return B|0;}do{if(!(c[s>>2]|0)){o=c[m>>2]|0;n=c[p>>2]|0;c[p>>2]=n+1;a[z>>0]=a[o+n>>0]|0;c[A>>2]=((d[z>>0]|0)>>3)+10;n=c[A>>2]|0;o=(Dq()|0)!=0;if(n>>>0<=(o?25:27)>>>0){c[v>>2]=1<<c[A>>2];o=N((c[v>>2]|0)>>>3,(d[z>>0]|0)&7)|0;c[v>>2]=(c[v>>2]|0)+o;break;}c[h>>2]=-14;B=c[h>>2]|0;l=g;return B|0;}}while(0);switch(c[q>>2]|0){case 3:{c[w>>2]=Bq((c[m>>2]|0)+(c[p>>2]|0)|0)|0;c[p>>2]=(c[p>>2]|0)+4;break;}case 1:{c[w>>2]=d[(c[m>>2]|0)+(c[p>>2]|0)>>0];c[p>>2]=(c[p>>2]|0)+1;break;}case 2:{c[w>>2]=(Eq((c[m>>2]|0)+(c[p>>2]|0)|0)|0)&65535;c[p>>2]=(c[p>>2]|0)+2;break;}default:{}}switch(c[t>>2]|0){case 3:{t=x;c[t>>2]=Fq((c[m>>2]|0)+(c[p>>2]|0)|0)|0;c[t+4>>2]=y;break;}case 1:{t=((Eq((c[m>>2]|0)+(c[p>>2]|0)|0)|0)&65535)+256|0;q=x;c[q>>2]=t;c[q+4>>2]=((t|0)<0)<<31>>31;break;}case 2:{t=x;c[t>>2]=Bq((c[m>>2]|0)+(c[p>>2]|0)|0)|0;c[t+4>>2]=0;break;}default:if(c[s>>2]|0){s=x;c[s>>2]=d[(c[m>>2]|0)+(c[p>>2]|0)>>0];c[s+4>>2]=0;}}if(!(c[v>>2]|0))c[v>>2]=c[x>>2];if((c[v>>2]|0)>>>0>(c[u>>2]|0)>>>0){c[h>>2]=-14;B=c[h>>2]|0;l=g;return B|0;}else{u=x;x=c[u+4>>2]|0;s=c[i>>2]|0;c[s>>2]=c[u>>2];c[s+4>>2]=x;c[(c[i>>2]|0)+8>>2]=c[v>>2];c[(c[i>>2]|0)+12>>2]=c[w>>2];c[(c[i>>2]|0)+16>>2]=c[r>>2];c[h>>2]=0;B=c[h>>2]|0;l=g;return B|0;}return 0;}function Bq(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(Gq()|0)!=0;f=Kq(c[e>>2]|0)|0;if(a){c[d>>2]=f;g=c[d>>2]|0;l=b;return g|0;}else{c[d>>2]=Lq(f)|0;g=c[d>>2]|0;l=b;return g|0;}return 0;}function Cq(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;f=l;l=l+32|0;g=f+20|0;h=f+16|0;i=f+12|0;j=f+24|0;k=f+8|0;m=f+4|0;n=f;c[h>>2]=b;c[i>>2]=e;if((c[i>>2]|0)>>>0<5){c[g>>2]=-72;o=c[g>>2]|0;l=f;return o|0;}a[j>>0]=a[(c[h>>2]|0)+4>>0]|0;c[k>>2]=(d[j>>0]|0)&3;c[m>>2]=(d[j>>0]|0)>>5&1;c[n>>2]=(d[j>>0]|0)>>6;if(c[m>>2]|0)p=(c[3472+(c[n>>2]<<2)>>2]|0)!=0^1;else p=0;c[g>>2]=5+(((c[m>>2]|0)!=0^1)&1)+(c[3456+(c[k>>2]<<2)>>2]|0)+(c[3472+(c[n>>2]<<2)>>2]|0)+(p&1);o=c[g>>2]|0;l=f;return o|0;}function Dq(){return 1;}function Eq(a){a=a|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[g>>2]=a;a=(Gq()|0)!=0;i=c[g>>2]|0;if(a){b[f>>1]=Jq(i)|0;j=b[f>>1]|0;l=e;return j|0;}else{c[h>>2]=i;b[f>>1]=(d[c[h>>2]>>0]|0)+((d[(c[h>>2]|0)+1>>0]|0)<<8);j=b[f>>1]|0;l=e;return j|0;}return 0;}function Fq(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b;e=b+8|0;c[e>>2]=a;a=(Gq()|0)!=0;f=Hq(c[e>>2]|0)|0;e=y;if(a){a=d;c[a>>2]=f;c[a+4>>2]=e;}else{a=Iq(f,e)|0;e=d;c[e>>2]=a;c[e+4>>2]=y;}e=d;y=c[e+4>>2]|0;l=b;return c[e>>2]|0;}function Gq(){return d[11936]|0|0;}function Hq(b){b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;f=d;c[e>>2]=b;b=c[e>>2]|0;a[f>>0]=a[b>>0]|0;a[f+1>>0]=a[b+1>>0]|0;a[f+2>>0]=a[b+2>>0]|0;a[f+3>>0]=a[b+3>>0]|0;a[f+4>>0]=a[b+4>>0]|0;a[f+5>>0]=a[b+5>>0]|0;a[f+6>>0]=a[b+6>>0]|0;a[f+7>>0]=a[b+7>>0]|0;b=f;y=c[b+4>>2]|0;l=d;return c[b>>2]|0;}function Iq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d;f=e;c[f>>2]=a;c[f+4>>2]=b;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,56)|0;b=y&-16777216;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,40)|0;f=b|y&16711680;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=f|y&65280;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,8)|0;f=b|y&255;b=e;a=iE(c[b>>2]|0,c[b+4>>2]|0,8)|0;b=e;g=iE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=e;h=iE(c[b>>2]|0,c[b+4>>2]|0,40)|0;b=e;e=iE(c[b>>2]|0,c[b+4>>2]|0,56)|0;y=f;l=d;return a&-16777216|g&16711680|h&65280|e&255|0;}function Jq(d){d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e;g=e+4|0;c[f>>2]=d;d=c[f>>2]|0;a[g>>0]=a[d>>0]|0;a[g+1>>0]=a[d+1>>0]|0;l=e;return b[g>>1]|0;}function Kq(b){b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=b;b=c[e>>2]|0;a[f>>0]=a[b>>0]|0;a[f+1>>0]=a[b+1>>0]|0;a[f+2>>0]=a[b+2>>0]|0;a[f+3>>0]=a[b+3>>0]|0;l=d;return c[f>>2]|0;}function Lq(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[d>>2]<<24&-16777216|c[d>>2]<<8&16711680|(c[d>>2]|0)>>>8&65280|(c[d>>2]|0)>>>24&255|0;}function Mq(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(Qq()|0)!=0;f=Uq(c[e>>2]|0)|0;if(a){c[d>>2]=f;g=c[d>>2]|0;l=b;return g|0;}else{c[d>>2]=Vq(f)|0;g=c[d>>2]|0;l=b;return g|0;}return 0;}function Nq(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[g>>2]=a;c[h>>2]=b;if((c[h>>2]|0)>>>0<5){c[f>>2]=-72;j=c[f>>2]|0;l=e;return j|0;}else{c[i>>2]=(d[(c[g>>2]|0)+4>>0]|0)>>6;c[f>>2]=5+(c[3488+(c[i>>2]<<2)>>2]|0);j=c[f>>2]|0;l=e;return j|0;}return 0;}function Oq(a){a=a|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[g>>2]=a;a=(Qq()|0)!=0;i=c[g>>2]|0;if(a){b[f>>1]=Tq(i)|0;j=b[f>>1]|0;l=e;return j|0;}else{c[h>>2]=i;b[f>>1]=(d[c[h>>2]>>0]|0)+((d[(c[h>>2]|0)+1>>0]|0)<<8);j=b[f>>1]|0;l=e;return j|0;}return 0;}function Pq(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b;e=b+8|0;c[e>>2]=a;a=(Qq()|0)!=0;f=Rq(c[e>>2]|0)|0;e=y;if(a){a=d;c[a>>2]=f;c[a+4>>2]=e;}else{a=Sq(f,e)|0;e=d;c[e>>2]=a;c[e+4>>2]=y;}e=d;y=c[e+4>>2]|0;l=b;return c[e>>2]|0;}function Qq(){return d[11936]|0|0;}function Rq(b){b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;f=d;c[e>>2]=b;b=c[e>>2]|0;a[f>>0]=a[b>>0]|0;a[f+1>>0]=a[b+1>>0]|0;a[f+2>>0]=a[b+2>>0]|0;a[f+3>>0]=a[b+3>>0]|0;a[f+4>>0]=a[b+4>>0]|0;a[f+5>>0]=a[b+5>>0]|0;a[f+6>>0]=a[b+6>>0]|0;a[f+7>>0]=a[b+7>>0]|0;b=f;y=c[b+4>>2]|0;l=d;return c[b>>2]|0;}function Sq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d;f=e;c[f>>2]=a;c[f+4>>2]=b;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,56)|0;b=y&-16777216;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,40)|0;f=b|y&16711680;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=f|y&65280;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,8)|0;f=b|y&255;b=e;a=iE(c[b>>2]|0,c[b+4>>2]|0,8)|0;b=e;g=iE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=e;h=iE(c[b>>2]|0,c[b+4>>2]|0,40)|0;b=e;e=iE(c[b>>2]|0,c[b+4>>2]|0,56)|0;y=f;l=d;return a&-16777216|g&16711680|h&65280|e&255|0;}function Tq(d){d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e;g=e+4|0;c[f>>2]=d;d=c[f>>2]|0;a[g>>0]=a[d>>0]|0;a[g+1>>0]=a[d+1>>0]|0;l=e;return b[g>>1]|0;}function Uq(b){b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=b;b=c[e>>2]|0;a[f>>0]=a[b>>0]|0;a[f+1>>0]=a[b+1>>0]|0;a[f+2>>0]=a[b+2>>0]|0;a[f+3>>0]=a[b+3>>0]|0;l=d;return c[f>>2]|0;}function Vq(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[d>>2]<<24&-16777216|c[d>>2]<<8&16711680|(c[d>>2]|0)>>>8&65280|(c[d>>2]|0)>>>24&255|0;}function Wq(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(Xq()|0)!=0;f=Yq(c[e>>2]|0)|0;if(a){c[d>>2]=f;g=c[d>>2]|0;l=b;return g|0;}else{c[d>>2]=Zq(f)|0;g=c[d>>2]|0;l=b;return g|0;}return 0;}function Xq(){return d[11936]|0|0;}function Yq(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0;}function Zq(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[d>>2]<<24&-16777216|c[d>>2]<<8&16711680|(c[d>>2]|0)>>>8&65280|(c[d>>2]|0)>>>24&255|0;}function _q(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;d=l;l=l+96|0;e=d+80|0;f=d+76|0;g=d+72|0;h=d+68|0;i=d+64|0;j=d+60|0;k=d;m=d+56|0;n=d+44|0;o=d+40|0;c[f>>2]=a;c[g>>2]=b;if(iq(c[f>>2]|0,c[g>>2]|0)|0){c[e>>2]=ar(c[f>>2]|0,c[g>>2]|0)|0;p=c[e>>2]|0;l=d;return p|0;}if((c[g>>2]|0)>>>0>=8?((hq(c[f>>2]|0)|0)&-16|0)==407710288:0){c[e>>2]=8+(hq((c[f>>2]|0)+4|0)|0);p=c[e>>2]|0;l=d;return p|0;}c[h>>2]=c[f>>2];c[i>>2]=c[h>>2];c[j>>2]=c[g>>2];c[m>>2]=pq(k,c[f>>2]|0,c[g>>2]|0)|0;g=($q(c[m>>2]|0)|0)!=0;f=c[m>>2]|0;if(g){c[e>>2]=f;p=c[e>>2]|0;l=d;return p|0;}if(f>>>0>0){c[e>>2]=-72;p=c[e>>2]|0;l=d;return p|0;}c[h>>2]=(c[h>>2]|0)+(c[k+24>>2]|0);c[j>>2]=(c[j>>2]|0)-(c[k+24>>2]|0);while(1){c[o>>2]=br(c[h>>2]|0,c[j>>2]|0,n)|0;f=($q(c[o>>2]|0)|0)!=0;q=c[o>>2]|0;if(f){r=12;break;}if((3+q|0)>>>0>(c[j>>2]|0)>>>0){r=14;break;}c[h>>2]=(c[h>>2]|0)+(3+(c[o>>2]|0));c[j>>2]=(c[j>>2]|0)-(3+(c[o>>2]|0));if(c[n+4>>2]|0){r=17;break;}}if((r|0)==12){c[e>>2]=q;p=c[e>>2]|0;l=d;return p|0;}else if((r|0)==14){c[e>>2]=-72;p=c[e>>2]|0;l=d;return p|0;}else if((r|0)==17){do{if(c[k+32>>2]|0){if((c[j>>2]|0)>>>0>=4){c[h>>2]=(c[h>>2]|0)+4;c[j>>2]=(c[j>>2]|0)-4;break;}c[e>>2]=-72;p=c[e>>2]|0;l=d;return p|0;}}while(0);c[e>>2]=(c[h>>2]|0)-(c[i>>2]|0);p=c[e>>2]|0;l=d;return p|0;}return 0;}function $q(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return(c[d>>2]|0)>>>0>4294967176|0;}function ar(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d+12|0;f=d+8|0;g=d+4|0;h=d;c[f>>2]=a;c[g>>2]=b;c[h>>2]=iq(c[f>>2]|0,c[g>>2]|0)|0;switch(c[h>>2]|0){case 4:{c[e>>2]=dr(c[f>>2]|0,c[g>>2]|0)|0;break;}case 5:{c[e>>2]=er(c[f>>2]|0,c[g>>2]|0)|0;break;}case 6:{c[e>>2]=fr(c[f>>2]|0,c[g>>2]|0)|0;break;}case 7:{c[e>>2]=gr(c[f>>2]|0,c[g>>2]|0)|0;break;}default:c[e>>2]=-10;}l=d;return c[e>>2]|0;}function br(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;if((c[h>>2]|0)>>>0<3){c[f>>2]=-72;m=c[f>>2]|0;l=e;return m|0;}c[j>>2]=cr(c[g>>2]|0)|0;c[k>>2]=(c[j>>2]|0)>>>3;c[(c[i>>2]|0)+4>>2]=c[j>>2]&1;c[c[i>>2]>>2]=(c[j>>2]|0)>>>1&3;c[(c[i>>2]|0)+8>>2]=c[k>>2];if((c[c[i>>2]>>2]|0)==1){c[f>>2]=1;m=c[f>>2]|0;l=e;return m|0;}if((c[c[i>>2]>>2]|0)==3){c[f>>2]=-20;m=c[f>>2]|0;l=e;return m|0;}else{c[f>>2]=c[k>>2];m=c[f>>2]|0;l=e;return m|0;}return 0;}function cr(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=(rq(c[e>>2]|0)|0)&65535;l=b;return a+((d[(c[e>>2]|0)+2>>0]|0)<<16)|0;}function dr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=or(c[e>>2]|0,c[f>>2]|0)|0;l=d;return b|0;}function er(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;d=l;l=l+48|0;e=d+32|0;f=d+28|0;g=d+24|0;h=d+20|0;i=d+16|0;j=d+8|0;k=d;c[f>>2]=a;c[g>>2]=b;c[h>>2]=c[f>>2];c[i>>2]=c[g>>2];if((c[g>>2]|0)>>>0<5){c[e>>2]=-72;m=c[e>>2]|0;l=d;return m|0;}if((Wq(c[f>>2]|0)|0)!=-47205083){c[e>>2]=-10;m=c[e>>2]|0;l=d;return m|0;}c[h>>2]=(c[h>>2]|0)+5;c[i>>2]=(c[i>>2]|0)-5;while(1){c[k>>2]=lr(c[h>>2]|0,c[i>>2]|0,j)|0;if(mr(c[k>>2]|0)|0){n=7;break;}c[h>>2]=(c[h>>2]|0)+3;c[i>>2]=(c[i>>2]|0)-3;if((c[k>>2]|0)>>>0>(c[i>>2]|0)>>>0){n=9;break;}if(!(c[k>>2]|0)){n=12;break;}c[h>>2]=(c[h>>2]|0)+(c[k>>2]|0);c[i>>2]=(c[i>>2]|0)-(c[k>>2]|0);}if((n|0)==7){c[e>>2]=c[k>>2];m=c[e>>2]|0;l=d;return m|0;}else if((n|0)==9){c[e>>2]=-72;m=c[e>>2]|0;l=d;return m|0;}else if((n|0)==12){c[e>>2]=(c[h>>2]|0)-(c[f>>2]|0);m=c[e>>2]|0;l=d;return m|0;}return 0;}function fr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;d=l;l=l+48|0;e=d+32|0;f=d+28|0;g=d+24|0;h=d+20|0;i=d+16|0;j=d+8|0;k=d+4|0;m=d;c[f>>2]=a;c[g>>2]=b;c[h>>2]=c[f>>2];c[i>>2]=c[g>>2];c[j>>2]=0;c[j+4>>2]=0;c[k>>2]=Nq(c[f>>2]|0,5)|0;if(jr(c[k>>2]|0)|0){c[e>>2]=c[k>>2];n=c[e>>2]|0;l=d;return n|0;}if((Mq(c[f>>2]|0)|0)!=-47205082){c[e>>2]=-10;n=c[e>>2]|0;l=d;return n|0;}if((c[g>>2]|0)>>>0<((c[k>>2]|0)+3|0)>>>0){c[e>>2]=-72;n=c[e>>2]|0;l=d;return n|0;}c[h>>2]=(c[h>>2]|0)+(c[k>>2]|0);c[i>>2]=(c[i>>2]|0)-(c[k>>2]|0);while(1){c[m>>2]=kr(c[h>>2]|0,c[i>>2]|0,j)|0;if(jr(c[m>>2]|0)|0){o=9;break;}c[h>>2]=(c[h>>2]|0)+3;c[i>>2]=(c[i>>2]|0)-3;if((c[m>>2]|0)>>>0>(c[i>>2]|0)>>>0){o=11;break;}if(!(c[m>>2]|0)){o=14;break;}c[h>>2]=(c[h>>2]|0)+(c[m>>2]|0);c[i>>2]=(c[i>>2]|0)-(c[m>>2]|0);}if((o|0)==9){c[e>>2]=c[m>>2];n=c[e>>2]|0;l=d;return n|0;}else if((o|0)==11){c[e>>2]=-72;n=c[e>>2]|0;l=d;return n|0;}else if((o|0)==14){c[e>>2]=(c[h>>2]|0)-(c[f>>2]|0);n=c[e>>2]|0;l=d;return n|0;}return 0;}function gr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;d=l;l=l+48|0;e=d+36|0;f=d+32|0;g=d+28|0;h=d+24|0;i=d+20|0;j=d+16|0;k=d+8|0;m=d;c[f>>2]=a;c[g>>2]=b;c[h>>2]=c[f>>2];c[i>>2]=c[g>>2];if((c[g>>2]|0)>>>0<8){c[e>>2]=-72;n=c[e>>2]|0;l=d;return n|0;}c[j>>2]=Cq(c[f>>2]|0,5)|0;if(hr(c[j>>2]|0)|0){c[e>>2]=c[j>>2];n=c[e>>2]|0;l=d;return n|0;}if((Bq(c[f>>2]|0)|0)!=-47205081){c[e>>2]=-10;n=c[e>>2]|0;l=d;return n|0;}if((c[g>>2]|0)>>>0<((c[j>>2]|0)+3|0)>>>0){c[e>>2]=-72;n=c[e>>2]|0;l=d;return n|0;}c[h>>2]=(c[h>>2]|0)+(c[j>>2]|0);c[i>>2]=(c[i>>2]|0)-(c[j>>2]|0);while(1){c[m>>2]=ir(c[h>>2]|0,c[i>>2]|0,k)|0;if(hr(c[m>>2]|0)|0){o=11;break;}c[h>>2]=(c[h>>2]|0)+3;c[i>>2]=(c[i>>2]|0)-3;if((c[k>>2]|0)==3){o=16;break;}if((c[m>>2]|0)>>>0>(c[i>>2]|0)>>>0){o=14;break;}c[h>>2]=(c[h>>2]|0)+(c[m>>2]|0);c[i>>2]=(c[i>>2]|0)-(c[m>>2]|0);}if((o|0)==11){c[e>>2]=c[m>>2];n=c[e>>2]|0;l=d;return n|0;}else if((o|0)==14){c[e>>2]=-72;n=c[e>>2]|0;l=d;return n|0;}else if((o|0)==16){c[e>>2]=(c[h>>2]|0)-(c[f>>2]|0);n=c[e>>2]|0;l=d;return n|0;}return 0;}function hr(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return(c[d>>2]|0)>>>0>4294967176|0;}function ir(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;f=l;l=l+32|0;g=f+20|0;h=f+16|0;i=f+12|0;j=f+8|0;k=f+4|0;m=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=e;c[k>>2]=c[h>>2];if((c[i>>2]|0)>>>0<3){c[g>>2]=-72;n=c[g>>2]|0;l=f;return n|0;}c[c[j>>2]>>2]=(d[c[k>>2]>>0]|0)>>6;c[m>>2]=(d[(c[k>>2]|0)+2>>0]|0)+((d[(c[k>>2]|0)+1>>0]|0)<<8)+(((d[c[k>>2]>>0]|0)&7)<<16);c[(c[j>>2]|0)+4>>2]=(c[c[j>>2]>>2]|0)==2?c[m>>2]|0:0;if((c[c[j>>2]>>2]|0)==3){c[g>>2]=0;n=c[g>>2]|0;l=f;return n|0;}if((c[c[j>>2]>>2]|0)==2){c[g>>2]=1;n=c[g>>2]|0;l=f;return n|0;}else{c[g>>2]=c[m>>2];n=c[g>>2]|0;l=f;return n|0;}return 0;}function jr(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return(c[d>>2]|0)>>>0>4294967176|0;}function kr(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;f=l;l=l+32|0;g=f+20|0;h=f+16|0;i=f+12|0;j=f+8|0;k=f+4|0;m=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=e;c[k>>2]=c[h>>2];if((c[i>>2]|0)>>>0<3){c[g>>2]=-72;n=c[g>>2]|0;l=f;return n|0;}c[c[j>>2]>>2]=(d[c[k>>2]>>0]|0)>>6;c[m>>2]=(d[(c[k>>2]|0)+2>>0]|0)+((d[(c[k>>2]|0)+1>>0]|0)<<8)+(((d[c[k>>2]>>0]|0)&7)<<16);c[(c[j>>2]|0)+4>>2]=(c[c[j>>2]>>2]|0)==2?c[m>>2]|0:0;if((c[c[j>>2]>>2]|0)==3){c[g>>2]=0;n=c[g>>2]|0;l=f;return n|0;}if((c[c[j>>2]>>2]|0)==2){c[g>>2]=1;n=c[g>>2]|0;l=f;return n|0;}else{c[g>>2]=c[m>>2];n=c[g>>2]|0;l=f;return n|0;}return 0;}function lr(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;g=l;l=l+32|0;h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;m=g+4|0;n=g+24|0;o=g;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=c[i>>2];if((c[j>>2]|0)>>>0<3){c[h>>2]=-72;p=c[h>>2]|0;l=g;return p|0;}a[n>>0]=a[c[m>>2]>>0]|0;c[o>>2]=(d[(c[m>>2]|0)+2>>0]|0)+((d[(c[m>>2]|0)+1>>0]|0)<<8)+(((d[c[m>>2]>>0]|0)&7)<<16);c[c[k>>2]>>2]=(d[n>>0]|0)>>6;c[(c[k>>2]|0)+4>>2]=(c[c[k>>2]>>2]|0)==2?c[o>>2]|0:0;if((c[c[k>>2]>>2]|0)==3){c[h>>2]=0;p=c[h>>2]|0;l=g;return p|0;}if((c[c[k>>2]>>2]|0)==2){c[h>>2]=1;p=c[h>>2]|0;l=g;return p|0;}else{c[h>>2]=c[o>>2];p=c[h>>2]|0;l=g;return p|0;}return 0;}function mr(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=nr(c[d>>2]|0)|0;l=b;return a|0;}function nr(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return(c[d>>2]|0)>>>0>4294967176|0;}function or(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;d=l;l=l+48|0;e=d+32|0;f=d+28|0;g=d+24|0;h=d+20|0;i=d+16|0;j=d+8|0;k=d;c[f>>2]=a;c[g>>2]=b;c[h>>2]=c[f>>2];c[i>>2]=c[g>>2];if((c[g>>2]|0)>>>0<5){c[e>>2]=-72;m=c[e>>2]|0;l=d;return m|0;}if((pr(c[f>>2]|0)|0)!=-47205084){c[e>>2]=-10;m=c[e>>2]|0;l=d;return m|0;}c[h>>2]=(c[h>>2]|0)+5;c[i>>2]=(c[i>>2]|0)-5;while(1){c[k>>2]=qr(c[h>>2]|0,c[i>>2]|0,j)|0;if(rr(c[k>>2]|0)|0){n=7;break;}c[h>>2]=(c[h>>2]|0)+3;c[i>>2]=(c[i>>2]|0)-3;if((c[k>>2]|0)>>>0>(c[i>>2]|0)>>>0){n=9;break;}if(!(c[k>>2]|0)){n=12;break;}c[h>>2]=(c[h>>2]|0)+(c[k>>2]|0);c[i>>2]=(c[i>>2]|0)-(c[k>>2]|0);}if((n|0)==7){c[e>>2]=c[k>>2];m=c[e>>2]|0;l=d;return m|0;}else if((n|0)==9){c[e>>2]=-72;m=c[e>>2]|0;l=d;return m|0;}else if((n|0)==12){c[e>>2]=(c[h>>2]|0)-(c[f>>2]|0);m=c[e>>2]|0;l=d;return m|0;}return 0;}function pr(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+16|0;e=b+8|0;f=b+4|0;g=b;c[f>>2]=a;a=(tr()|0)!=0;h=c[f>>2]|0;if(a){c[e>>2]=ur(h)|0;i=c[e>>2]|0;l=b;return i|0;}else{c[g>>2]=h;c[e>>2]=(d[c[g>>2]>>0]|0)+((d[(c[g>>2]|0)+1>>0]|0)<<8)+((d[(c[g>>2]|0)+2>>0]|0)<<16)+((d[(c[g>>2]|0)+3>>0]|0)<<24);i=c[e>>2]|0;l=b;return i|0;}return 0;}function qr(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;g=l;l=l+32|0;h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;m=g+4|0;n=g+24|0;o=g;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=c[i>>2];if((c[j>>2]|0)>>>0<3){c[h>>2]=-72;p=c[h>>2]|0;l=g;return p|0;}a[n>>0]=a[c[m>>2]>>0]|0;c[o>>2]=(d[(c[m>>2]|0)+2>>0]|0)+((d[(c[m>>2]|0)+1>>0]|0)<<8)+(((d[c[m>>2]>>0]|0)&7)<<16);c[c[k>>2]>>2]=(d[n>>0]|0)>>6;c[(c[k>>2]|0)+4>>2]=(c[c[k>>2]>>2]|0)==2?c[o>>2]|0:0;if((c[c[k>>2]>>2]|0)==3){c[h>>2]=0;p=c[h>>2]|0;l=g;return p|0;}if((c[c[k>>2]>>2]|0)==2){c[h>>2]=1;p=c[h>>2]|0;l=g;return p|0;}else{c[h>>2]=c[o>>2];p=c[h>>2]|0;l=g;return p|0;}return 0;}function rr(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=sr(c[d>>2]|0)|0;l=b;return a|0;}function sr(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return(c[d>>2]|0)>>>0>4294967176|0;}function tr(){return d[11936]|0|0;}function ur(b){b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=b;b=c[e>>2]|0;a[f>>0]=a[b>>0]|0;a[f+1>>0]=a[b+1>>0]|0;a[f+2>>0]=a[b+2>>0]|0;a[f+3>>0]=a[b+3>>0]|0;l=d;return c[f>>2]|0;}function vr(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;g=l;l=l+80|0;h=g+68|0;i=g+64|0;j=g+60|0;k=g+56|0;m=g+52|0;n=g+48|0;o=g+44|0;p=g+40|0;q=g+36|0;r=g+32|0;s=g+28|0;t=g+24|0;u=g+20|0;v=g+16|0;w=g+12|0;x=g+8|0;y=g+4|0;z=g;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;if((c[k>>2]|0)>>>0<3){c[h>>2]=-20;A=c[h>>2]|0;l=g;return A|0;}c[m>>2]=c[j>>2];c[n>>2]=(d[c[m>>2]>>0]|0)&3;switch(c[n>>2]|0){case 3:{if(!(c[(c[i>>2]|0)+28808>>2]|0)){c[h>>2]=-30;A=c[h>>2]|0;l=g;return A|0;}break;}case 2:break;case 0:{c[w>>2]=(d[c[m>>2]>>0]|0)>>2&3;switch(c[w>>2]|0){case 3:{c[v>>2]=3;c[u>>2]=(cr(c[m>>2]|0)|0)>>>4;break;}case 1:{c[v>>2]=2;c[u>>2]=((rq(c[m>>2]|0)|0)&65535)>>4;break;}default:{c[v>>2]=1;c[u>>2]=(d[c[m>>2]>>0]|0)>>3;}}if(((c[v>>2]|0)+(c[u>>2]|0)+8|0)>>>0<=(c[k>>2]|0)>>>0){c[(c[i>>2]|0)+28916>>2]=(c[m>>2]|0)+(c[v>>2]|0);c[(c[i>>2]|0)+28932>>2]=c[u>>2];c[h>>2]=(c[v>>2]|0)+(c[u>>2]|0);A=c[h>>2]|0;l=g;return A|0;}if(((c[u>>2]|0)+(c[v>>2]|0)|0)>>>0>(c[k>>2]|0)>>>0){c[h>>2]=-20;A=c[h>>2]|0;l=g;return A|0;}else{mE((c[i>>2]|0)+29012|0,(c[m>>2]|0)+(c[v>>2]|0)|0,c[u>>2]|0)|0;c[(c[i>>2]|0)+28916>>2]=(c[i>>2]|0)+29012;c[(c[i>>2]|0)+28932>>2]=c[u>>2];w=(c[i>>2]|0)+29012+(c[(c[i>>2]|0)+28932>>2]|0)|0;a[w>>0]=0;a[w+1>>0]=0;a[w+2>>0]=0;a[w+3>>0]=0;a[w+4>>0]=0;a[w+5>>0]=0;a[w+6>>0]=0;a[w+7>>0]=0;c[h>>2]=(c[v>>2]|0)+(c[u>>2]|0);A=c[h>>2]|0;l=g;return A|0;}break;}case 1:{c[x>>2]=(d[c[m>>2]>>0]|0)>>2&3;switch(c[x>>2]|0){case 3:{c[z>>2]=3;c[y>>2]=(cr(c[m>>2]|0)|0)>>>4;if((c[k>>2]|0)>>>0<4){c[h>>2]=-20;A=c[h>>2]|0;l=g;return A|0;}break;}case 1:{c[z>>2]=2;c[y>>2]=((rq(c[m>>2]|0)|0)&65535)>>4;break;}default:{c[z>>2]=1;c[y>>2]=(d[c[m>>2]>>0]|0)>>3;}}if((c[y>>2]|0)>>>0>131072){c[h>>2]=-20;A=c[h>>2]|0;l=g;return A|0;}else{oE((c[i>>2]|0)+29012|0,(d[(c[m>>2]|0)+(c[z>>2]|0)>>0]|0)&255|0,(c[y>>2]|0)+8|0)|0;c[(c[i>>2]|0)+28916>>2]=(c[i>>2]|0)+29012;c[(c[i>>2]|0)+28932>>2]=c[y>>2];c[h>>2]=(c[z>>2]|0)+1;A=c[h>>2]|0;l=g;return A|0;}break;}default:{c[h>>2]=-20;A=c[h>>2]|0;l=g;return A|0;}}if((c[k>>2]|0)>>>0<5){c[h>>2]=-20;A=c[h>>2]|0;l=g;return A|0;}c[r>>2]=0;c[s>>2]=(d[c[m>>2]>>0]|0)>>2&3;c[t>>2]=hq(c[m>>2]|0)|0;switch(c[s>>2]|0){case 3:{c[o>>2]=5;c[p>>2]=(c[t>>2]|0)>>>4&262143;c[q>>2]=((c[t>>2]|0)>>>22)+((d[(c[m>>2]|0)+4>>0]|0)<<10);break;}case 2:{c[o>>2]=4;c[p>>2]=(c[t>>2]|0)>>>4&16383;c[q>>2]=(c[t>>2]|0)>>>18;break;}default:{c[r>>2]=((c[s>>2]|0)!=0^1)&1;c[o>>2]=3;c[p>>2]=(c[t>>2]|0)>>>4&1023;c[q>>2]=(c[t>>2]|0)>>>14&1023;}}if((c[p>>2]|0)>>>0>131072){c[h>>2]=-20;A=c[h>>2]|0;l=g;return A|0;}if(((c[q>>2]|0)+(c[o>>2]|0)|0)>>>0>(c[k>>2]|0)>>>0){c[h>>2]=-20;A=c[h>>2]|0;l=g;return A|0;}k=(c[r>>2]|0)!=0;r=c[i>>2]|0;do{if((c[n>>2]|0)==3){t=r+29012|0;s=c[p>>2]|0;z=(c[m>>2]|0)+(c[o>>2]|0)|0;y=c[q>>2]|0;x=c[(c[i>>2]|0)+12>>2]|0;u=c[(c[i>>2]|0)+28944>>2]|0;if(k){B=Op(t,s,z,y,x,u)|0;break;}else{B=Qp(t,s,z,y,x,u)|0;break;}}else{u=r+16+10264|0;x=(c[i>>2]|0)+29012|0;y=c[p>>2]|0;z=(c[m>>2]|0)+(c[o>>2]|0)|0;s=c[q>>2]|0;t=(c[i>>2]|0)+16+26652|0;v=c[(c[i>>2]|0)+28944>>2]|0;if(k){B=Pp(u,x,y,z,s,t,2048,v)|0;break;}else{B=Rp(u,x,y,z,s,t,2048,v)|0;break;}}}while(0);if($q(B)|0){c[h>>2]=-20;A=c[h>>2]|0;l=g;return A|0;}c[(c[i>>2]|0)+28916>>2]=(c[i>>2]|0)+29012;c[(c[i>>2]|0)+28932>>2]=c[p>>2];c[(c[i>>2]|0)+28808>>2]=1;if((c[n>>2]|0)==2)c[(c[i>>2]|0)+12>>2]=(c[i>>2]|0)+16+10264;n=(c[i>>2]|0)+29012+(c[(c[i>>2]|0)+28932>>2]|0)|0;a[n>>0]=0;a[n+1>>0]=0;a[n+2>>0]=0;a[n+3>>0]=0;a[n+4>>0]=0;a[n+5>>0]=0;a[n+6>>0]=0;a[n+7>>0]=0;c[h>>2]=(c[q>>2]|0)+(c[o>>2]|0);A=c[h>>2]|0;l=g;return A|0;}function wr(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;g=l;l=l+64|0;h=g+56|0;i=g+52|0;j=g+48|0;k=g+44|0;m=g+40|0;n=g+36|0;o=g+32|0;p=g+28|0;q=g+24|0;r=g+20|0;s=g+16|0;t=g+12|0;u=g+8|0;v=g+4|0;w=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=e;c[m>>2]=f;c[n>>2]=c[k>>2];c[o>>2]=(c[n>>2]|0)+(c[m>>2]|0);c[p>>2]=c[n>>2];if((c[m>>2]|0)>>>0<1){c[h>>2]=-72;x=c[h>>2]|0;l=g;return x|0;}m=c[p>>2]|0;c[p>>2]=m+1;c[q>>2]=d[m>>0];if(!(c[q>>2]|0)){c[c[j>>2]>>2]=0;c[h>>2]=1;x=c[h>>2]|0;l=g;return x|0;}do{if((c[q>>2]|0)>127){m=c[p>>2]|0;if((c[q>>2]|0)==255){if((m+2|0)>>>0<=(c[o>>2]|0)>>>0){c[q>>2]=((rq(c[p>>2]|0)|0)&65535)+32512;c[p>>2]=(c[p>>2]|0)+2;break;}c[h>>2]=-72;x=c[h>>2]|0;l=g;return x|0;}else{if(m>>>0<(c[o>>2]|0)>>>0){m=(c[q>>2]|0)-128<<8;k=c[p>>2]|0;c[p>>2]=k+1;c[q>>2]=m+(d[k>>0]|0);break;}c[h>>2]=-72;x=c[h>>2]|0;l=g;return x|0;}}}while(0);c[c[j>>2]>>2]=c[q>>2];if(((c[p>>2]|0)+4|0)>>>0>(c[o>>2]|0)>>>0){c[h>>2]=-72;x=c[h>>2]|0;l=g;return x|0;}c[r>>2]=(d[c[p>>2]>>0]|0)>>6;c[s>>2]=(d[c[p>>2]>>0]|0)>>4&3;c[t>>2]=(d[c[p>>2]>>0]|0)>>2&3;c[p>>2]=(c[p>>2]|0)+1;c[u>>2]=xr((c[i>>2]|0)+16|0,c[i>>2]|0,c[r>>2]|0,35,9,c[p>>2]|0,(c[o>>2]|0)-(c[p>>2]|0)|0,6416,5696,3504,c[(c[i>>2]|0)+28812>>2]|0)|0;if($q(c[u>>2]|0)|0){c[h>>2]=-20;x=c[h>>2]|0;l=g;return x|0;}c[p>>2]=(c[p>>2]|0)+(c[u>>2]|0);c[v>>2]=xr((c[i>>2]|0)+16+4104|0,(c[i>>2]|0)+8|0,c[s>>2]|0,31,8,c[p>>2]|0,(c[o>>2]|0)-(c[p>>2]|0)|0,4032,4160,4288,c[(c[i>>2]|0)+28812>>2]|0)|0;if($q(c[v>>2]|0)|0){c[h>>2]=-20;x=c[h>>2]|0;l=g;return x|0;}c[p>>2]=(c[p>>2]|0)+(c[v>>2]|0);c[w>>2]=xr((c[i>>2]|0)+16+6160|0,(c[i>>2]|0)+4|0,c[t>>2]|0,52,9,c[p>>2]|0,(c[o>>2]|0)-(c[p>>2]|0)|0,5216,5840,4560,c[(c[i>>2]|0)+28812>>2]|0)|0;if($q(c[w>>2]|0)|0){c[h>>2]=-20;x=c[h>>2]|0;l=g;return x|0;}else{c[p>>2]=(c[p>>2]|0)+(c[w>>2]|0);c[h>>2]=(c[p>>2]|0)-(c[n>>2]|0);x=c[h>>2]|0;l=g;return x|0;}return 0;}function xr(a,b,e,f,g,h,i,j,k,m,n){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;o=l;l=l+176|0;p=o+172|0;q=o+168|0;r=o+164|0;s=o+160|0;t=o+156|0;u=o+152|0;v=o+148|0;w=o+144|0;x=o+140|0;y=o+136|0;z=o+132|0;A=o+128|0;B=o+124|0;C=o+120|0;D=o+116|0;E=o+112|0;F=o;G=o+108|0;c[q>>2]=a;c[r>>2]=b;c[s>>2]=e;c[t>>2]=f;c[u>>2]=g;c[v>>2]=h;c[w>>2]=i;c[x>>2]=j;c[y>>2]=k;c[z>>2]=m;c[A>>2]=n;a:do{switch(c[s>>2]|0){case 1:{if(!(c[w>>2]|0)){c[p>>2]=-72;break a;}if((d[c[v>>2]>>0]|0)>>>0>(c[t>>2]|0)>>>0){c[p>>2]=-20;break a;}else{c[B>>2]=d[c[v>>2]>>0];c[C>>2]=c[(c[x>>2]|0)+(c[B>>2]<<2)>>2];c[D>>2]=c[(c[y>>2]|0)+(c[B>>2]<<2)>>2];yr(c[q>>2]|0,c[C>>2]|0,c[D>>2]|0);c[c[r>>2]>>2]=c[q>>2];c[p>>2]=1;break a;}break;}case 0:{c[c[r>>2]>>2]=c[z>>2];c[p>>2]=0;break;}case 3:{if(c[A>>2]|0){c[p>>2]=0;break a;}else{c[p>>2]=-20;break a;}break;}case 2:{c[G>>2]=ah(F,t,E,c[v>>2]|0,c[w>>2]|0)|0;if($q(c[G>>2]|0)|0){c[p>>2]=-20;break a;}if((c[E>>2]|0)>>>0>(c[u>>2]|0)>>>0){c[p>>2]=-20;break a;}else{zr(c[q>>2]|0,F,c[t>>2]|0,c[x>>2]|0,c[y>>2]|0,c[E>>2]|0);c[c[r>>2]>>2]=c[q>>2];c[p>>2]=c[G>>2];break a;}break;}default:c[p>>2]=-1;}}while(0);l=o;return c[p>>2]|0;}function yr(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0;g=l;l=l+32|0;h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;m=g+4|0;n=g;c[h>>2]=d;c[i>>2]=e;c[j>>2]=f;c[k>>2]=c[h>>2];c[m>>2]=c[k>>2];c[n>>2]=(c[h>>2]|0)+8;c[(c[m>>2]|0)+4>>2]=0;c[c[m>>2]>>2]=0;a[(c[n>>2]|0)+3>>0]=0;b[c[n>>2]>>1]=0;a[(c[n>>2]|0)+2>>0]=c[j>>2];c[(c[n>>2]|0)+4>>2]=c[i>>2];l=g;return;}function zr(e,f,g,h,i,j){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;k=l;l=l+208|0;m=k+188|0;n=k+184|0;o=k+180|0;p=k+176|0;q=k+172|0;r=k+168|0;s=k+164|0;t=k;u=k+160|0;v=k+156|0;w=k+152|0;x=k+144|0;y=k+192|0;z=k+140|0;A=k+136|0;B=k+132|0;C=k+128|0;D=k+124|0;E=k+120|0;F=k+116|0;G=k+112|0;H=k+108|0;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;c[q>>2]=i;c[r>>2]=j;c[s>>2]=(c[m>>2]|0)+8;c[u>>2]=(c[o>>2]|0)+1;c[v>>2]=1<<c[r>>2];c[w>>2]=(c[v>>2]|0)-1;c[x+4>>2]=c[r>>2];c[x>>2]=1;b[y>>1]=1<<(c[r>>2]|0)-1;c[z>>2]=0;while(1){if((c[z>>2]|0)>>>0>=(c[u>>2]|0)>>>0)break;if((b[(c[n>>2]|0)+(c[z>>2]<<1)>>1]|0)==-1){o=c[z>>2]|0;j=c[s>>2]|0;i=c[w>>2]|0;c[w>>2]=i+-1;c[j+(i<<3)+4>>2]=o;b[t+(c[z>>2]<<1)>>1]=1;}else{if((b[(c[n>>2]|0)+(c[z>>2]<<1)>>1]|0)>=(b[y>>1]|0))c[x>>2]=0;b[t+(c[z>>2]<<1)>>1]=b[(c[n>>2]|0)+(c[z>>2]<<1)>>1]|0;}c[z>>2]=(c[z>>2]|0)+1;}z=c[m>>2]|0;c[z>>2]=c[x>>2];c[z+4>>2]=c[x+4>>2];c[A>>2]=(c[v>>2]|0)-1;c[B>>2]=((c[v>>2]|0)>>>1)+((c[v>>2]|0)>>>3)+3;c[D>>2]=0;c[C>>2]=0;while(1){if((c[C>>2]|0)>>>0>=(c[u>>2]|0)>>>0)break;c[E>>2]=0;while(1){I=c[C>>2]|0;if((c[E>>2]|0)>=(b[(c[n>>2]|0)+(c[C>>2]<<1)>>1]|0))break;c[(c[s>>2]|0)+(c[D>>2]<<3)+4>>2]=I;c[D>>2]=(c[D>>2]|0)+(c[B>>2]|0)&c[A>>2];while(1){if((c[D>>2]|0)>>>0<=(c[w>>2]|0)>>>0)break;c[D>>2]=(c[D>>2]|0)+(c[B>>2]|0)&c[A>>2];}c[E>>2]=(c[E>>2]|0)+1;}c[C>>2]=I+1;}c[F>>2]=0;while(1){if((c[F>>2]|0)>>>0>=(c[v>>2]|0)>>>0)break;c[G>>2]=c[(c[s>>2]|0)+(c[F>>2]<<3)+4>>2];I=t+(c[G>>2]<<1)|0;C=b[I>>1]|0;b[I>>1]=C+1<<16>>16;c[H>>2]=C&65535;C=c[r>>2]|0;I=C-(Ar(c[H>>2]|0)|0)&255;a[(c[s>>2]|0)+(c[F>>2]<<3)+3>>0]=I;b[(c[s>>2]|0)+(c[F>>2]<<3)>>1]=(c[H>>2]<<d[(c[s>>2]|0)+(c[F>>2]<<3)+3>>0])-(c[v>>2]|0);a[(c[s>>2]|0)+(c[F>>2]<<3)+2>>0]=c[(c[q>>2]|0)+(c[G>>2]<<2)>>2];c[(c[s>>2]|0)+(c[F>>2]<<3)+4>>2]=c[(c[p>>2]|0)+(c[G>>2]<<2)>>2];c[F>>2]=(c[F>>2]|0)+1;}l=k;return;}function Ar(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=31-(Q(c[d>>2]|0)|0)|0;l=b;return a|0;}function Br(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;if((c[f>>2]|0)==(c[(c[e>>2]|0)+28728>>2]|0)){l=d;return;}c[(c[e>>2]|0)+28740>>2]=c[(c[e>>2]|0)+28728>>2];c[(c[e>>2]|0)+28736>>2]=(c[f>>2]|0)+(0-((c[(c[e>>2]|0)+28728>>2]|0)-(c[(c[e>>2]|0)+28732>>2]|0)));c[(c[e>>2]|0)+28732>>2]=c[f>>2];c[(c[e>>2]|0)+28728>>2]=c[f>>2];l=d;return;}function Cr(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0,A=0;h=l;l=l+64|0;i=h+52|0;j=h+48|0;k=h+44|0;m=h+40|0;n=h+36|0;o=h+32|0;p=h+28|0;q=h+24|0;r=h+20|0;s=h+16|0;t=h+12|0;u=h+8|0;v=h+4|0;w=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=c[n>>2];if(Dr()|0){if(c[p>>2]|0){g=(c[j>>2]|0)+28752+8|0;f=c[g>>2]|0;e=c[g+4>>2]|0;g=(Dr()|0)!=0;d=jE(1,0,(g?25:57)|0)|0;g=y;x=e>>>0>g>>>0|(e|0)==(g|0)&f>>>0>d>>>0;}else x=1;}else x=0;c[r>>2]=x&1;if((c[o>>2]|0)>>>0>=131072){c[i>>2]=-72;z=c[i>>2]|0;l=h;return z|0;}c[s>>2]=vr(c[j>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;n=($q(c[s>>2]|0)|0)!=0;x=c[s>>2]|0;if(n){c[i>>2]=x;z=c[i>>2]|0;l=h;return z|0;}c[q>>2]=(c[q>>2]|0)+x;c[o>>2]=(c[o>>2]|0)-(c[s>>2]|0);c[u>>2]=wr(c[j>>2]|0,t,c[q>>2]|0,c[o>>2]|0)|0;s=($q(c[u>>2]|0)|0)!=0;x=c[u>>2]|0;if(s){c[i>>2]=x;z=c[i>>2]|0;l=h;return z|0;}c[q>>2]=(c[q>>2]|0)+x;c[o>>2]=(c[o>>2]|0)-(c[u>>2]|0);if(c[p>>2]|0){p=(c[j>>2]|0)+28752+8|0;u=c[p+4>>2]|0;if((u>>>0>0|(u|0)==0&(c[p>>2]|0)>>>0>16777216)&(c[t>>2]|0)>0)A=13;}else if((c[t>>2]|0)>0)A=13;if((A|0)==13?(c[v>>2]=Er(c[(c[j>>2]|0)+8>>2]|0)|0,A=(Fr()|0)!=0,c[w>>2]=A?7:20,(c[v>>2]|0)>>>0>=(c[w>>2]|0)>>>0):0){c[i>>2]=Gr(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[q>>2]|0,c[o>>2]|0,c[t>>2]|0,c[r>>2]|0)|0;z=c[i>>2]|0;l=h;return z|0;}c[i>>2]=Hr(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[q>>2]|0,c[o>>2]|0,c[t>>2]|0,c[r>>2]|0)|0;z=c[i>>2]|0;l=h;return z|0;}function Dr(){return 1;}function Er(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;b=l;l=l+32|0;e=b+24|0;f=b+20|0;g=b+16|0;h=b+12|0;i=b+8|0;j=b+4|0;k=b;c[e>>2]=a;c[f>>2]=c[e>>2];c[g>>2]=c[(c[f>>2]|0)+4>>2];c[h>>2]=(c[e>>2]|0)+8;c[i>>2]=1<<c[g>>2];c[k>>2]=0;c[j>>2]=0;while(1){if((c[j>>2]|0)>>>0>=(c[i>>2]|0)>>>0)break;if((d[(c[h>>2]|0)+(c[j>>2]<<3)+2>>0]|0|0)>22)c[k>>2]=(c[k>>2]|0)+1;c[j>>2]=(c[j>>2]|0)+1;}c[k>>2]=c[k>>2]<<8-(c[g>>2]|0);l=b;return c[k>>2]|0;}function Fr(){return 0;}function Gr(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;i=l;l=l+32|0;j=i+28|0;k=i+24|0;m=i+20|0;n=i+16|0;o=i+12|0;p=i+8|0;q=i+4|0;r=i;c[k>>2]=a;c[m>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;h=c[k>>2]|0;g=c[m>>2]|0;m=c[n>>2]|0;n=c[o>>2]|0;o=c[p>>2]|0;p=c[q>>2]|0;q=c[r>>2]|0;if(c[(c[k>>2]|0)+28944>>2]|0){c[j>>2]=Xr(h,g,m,n,o,p,q)|0;s=c[j>>2]|0;l=i;return s|0;}else{c[j>>2]=Yr(h,g,m,n,o,p,q)|0;s=c[j>>2]|0;l=i;return s|0;}return 0;}function Hr(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;i=l;l=l+32|0;j=i+28|0;k=i+24|0;m=i+20|0;n=i+16|0;o=i+12|0;p=i+8|0;q=i+4|0;r=i;c[k>>2]=a;c[m>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;h=c[k>>2]|0;g=c[m>>2]|0;m=c[n>>2]|0;n=c[o>>2]|0;o=c[p>>2]|0;p=c[q>>2]|0;q=c[r>>2]|0;if(c[(c[k>>2]|0)+28944>>2]|0){c[j>>2]=Ir(h,g,m,n,o,p,q)|0;s=c[j>>2]|0;l=i;return s|0;}else{c[j>>2]=Jr(h,g,m,n,o,p,q)|0;s=c[j>>2]|0;l=i;return s|0;}return 0;}function Ir(b,f,g,h,i,j,k){b=b|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0;m=l;l=l+448|0;n=m+432|0;o=m+424|0;p=m+420|0;q=m+416|0;r=m+412|0;s=m+408|0;t=m+404|0;u=m+400|0;v=m+396|0;w=m+392|0;x=m+388|0;y=m+384|0;z=m+380|0;A=m+376|0;B=m+372|0;C=m+368|0;D=m+364|0;E=m+360|0;F=m;G=m+356|0;H=m+352|0;I=m+344|0;J=m+340|0;K=m+336|0;L=m+332|0;M=m+328|0;N=m+320|0;O=m+316|0;P=m+312|0;Q=m+308|0;R=m+304|0;S=m+296|0;T=m+292|0;U=m+288|0;V=m+284|0;W=m+280|0;X=m+264|0;Y=m+256|0;Z=m+252|0;_=m+248|0;$=m+244|0;aa=m+240|0;ba=m+236|0;ca=m+232|0;da=m+228|0;ea=m+224|0;fa=m+220|0;ga=m+216|0;ha=m+212|0;ia=m+208|0;ja=m+204|0;ka=m+200|0;la=m+196|0;ma=m+192|0;na=m+188|0;oa=m+184|0;pa=m+180|0;qa=m+176|0;ra=m+172|0;sa=m+168|0;ta=m+164|0;ua=m+160|0;va=m+156|0;wa=m+152|0;xa=m+148|0;ya=m+80|0;za=m+76|0;Aa=m+72|0;Ba=m+56|0;Ca=m+52|0;Da=m+48|0;Ea=m+44|0;Fa=m+40|0;Ga=m+36|0;Ha=m+32|0;Ia=m+28|0;Ja=m+24|0;Ka=m+20|0;La=m+16|0;c[Fa>>2]=b;c[Ga>>2]=f;c[Ha>>2]=g;c[Ia>>2]=h;c[Ja>>2]=i;c[Ka>>2]=j;c[La>>2]=k;k=c[Ga>>2]|0;Ga=c[Ha>>2]|0;Ha=c[Ia>>2]|0;Ia=c[Ja>>2]|0;Ja=c[Ka>>2]|0;Ka=c[La>>2]|0;c[ha>>2]=c[Fa>>2];c[ia>>2]=k;c[ja>>2]=Ga;c[ka>>2]=Ha;c[la>>2]=Ia;c[ma>>2]=Ja;c[na>>2]=Ka;c[oa>>2]=c[ka>>2];c[pa>>2]=(c[oa>>2]|0)+(c[la>>2]|0);c[qa>>2]=c[ia>>2];c[ra>>2]=(c[qa>>2]|0)+(c[ja>>2]|0);c[sa>>2]=c[qa>>2];c[ta>>2]=c[(c[ha>>2]|0)+28916>>2];c[ua>>2]=(c[ta>>2]|0)+(c[(c[ha>>2]|0)+28932>>2]|0);c[va>>2]=c[(c[ha>>2]|0)+28732>>2];c[wa>>2]=c[(c[ha>>2]|0)+28736>>2];c[xa>>2]=c[(c[ha>>2]|0)+28740>>2];a:do{if(c[ma>>2]|0){c[(c[ha>>2]|0)+28812>>2]=1;c[za>>2]=0;while(1){if((c[za>>2]|0)>>>0>=3)break;c[ya+44+(c[za>>2]<<2)>>2]=c[(c[ha>>2]|0)+16+28700+(c[za>>2]<<2)>>2];c[za>>2]=(c[za>>2]|0)+1;}c[Aa>>2]=Kr(ya,c[oa>>2]|0,(c[pa>>2]|0)-(c[oa>>2]|0)|0)|0;if($q(c[Aa>>2]|0)|0){c[ga>>2]=-20;Ma=c[ga>>2]|0;l=m;return Ma|0;}Lr(ya+20|0,ya,c[c[ha>>2]>>2]|0);Lr(ya+28|0,ya,c[(c[ha>>2]|0)+8>>2]|0);Lr(ya+36|0,ya,c[(c[ha>>2]|0)+4>>2]|0);while(1){ja=(Mr(ya)|0)>>>0<=2;Na=c[ma>>2]|0;if(!(ja?(c[ma>>2]|0)!=0:0))break;c[ma>>2]=Na+-1;ja=c[na>>2]|0;c[V>>2]=ya;c[W>>2]=ja;c[Y>>2]=d[(c[(c[V>>2]|0)+20+4>>2]|0)+(c[(c[V>>2]|0)+20>>2]<<3)+2>>0];c[Z>>2]=d[(c[(c[V>>2]|0)+36+4>>2]|0)+(c[(c[V>>2]|0)+36>>2]<<3)+2>>0];c[_>>2]=d[(c[(c[V>>2]|0)+28+4>>2]|0)+(c[(c[V>>2]|0)+28>>2]<<3)+2>>0];c[$>>2]=(c[Y>>2]|0)+(c[Z>>2]|0)+(c[_>>2]|0);c[aa>>2]=c[(c[(c[V>>2]|0)+20+4>>2]|0)+(c[(c[V>>2]|0)+20>>2]<<3)+4>>2];c[ba>>2]=c[(c[(c[V>>2]|0)+36+4>>2]|0)+(c[(c[V>>2]|0)+36>>2]<<3)+4>>2];c[ca>>2]=c[(c[(c[V>>2]|0)+28+4>>2]|0)+(c[(c[V>>2]|0)+28>>2]<<3)+4>>2];do{if(c[_>>2]|0){ja=(Dr()|0)!=0;if(!(ja&(c[W>>2]|0)!=0&(c[_>>2]|0)>>>0>=25)){ja=c[ca>>2]|0;c[da>>2]=ja+(Nr(c[V>>2]|0,c[_>>2]|0)|0);if(!(Dr()|0))break;Mr(c[V>>2]|0)|0;break;}if((c[_>>2]|0)>>>0<(32-(c[(c[V>>2]|0)+4>>2]|0)|0)>>>0)Oa=c[_>>2]|0;else Oa=32-(c[(c[V>>2]|0)+4>>2]|0)|0;c[ea>>2]=(c[_>>2]|0)-Oa;ja=c[ca>>2]|0;ia=Nr(c[V>>2]|0,(c[_>>2]|0)-(c[ea>>2]|0)|0)|0;c[da>>2]=ja+(ia<<c[ea>>2]);Mr(c[V>>2]|0)|0;if(c[ea>>2]|0){ia=Nr(c[V>>2]|0,c[ea>>2]|0)|0;c[da>>2]=(c[da>>2]|0)+ia;}}else c[da>>2]=0;}while(0);do{if((c[_>>2]|0)>>>0<=1){c[da>>2]=(c[da>>2]|0)+((c[aa>>2]|0)==0&1);if(!(c[da>>2]|0)){c[da>>2]=c[(c[V>>2]|0)+44>>2];break;}ia=(c[V>>2]|0)+44|0;if((c[da>>2]|0)==3)Pa=(c[ia>>2]|0)-1|0;else Pa=c[ia+(c[da>>2]<<2)>>2]|0;c[fa>>2]=Pa;c[fa>>2]=(c[fa>>2]|0)+(((c[fa>>2]|0)!=0^1)&1);if((c[da>>2]|0)!=1)c[(c[V>>2]|0)+44+8>>2]=c[(c[V>>2]|0)+44+4>>2];c[(c[V>>2]|0)+44+4>>2]=c[(c[V>>2]|0)+44>>2];ia=c[fa>>2]|0;c[da>>2]=ia;c[(c[V>>2]|0)+44>>2]=ia;}else{c[(c[V>>2]|0)+44+8>>2]=c[(c[V>>2]|0)+44+4>>2];c[(c[V>>2]|0)+44+4>>2]=c[(c[V>>2]|0)+44>>2];c[(c[V>>2]|0)+44>>2]=c[da>>2];}}while(0);c[X+8>>2]=c[da>>2];ia=c[ba>>2]|0;if((c[Z>>2]|0)>>>0>0)Qa=Nr(c[V>>2]|0,c[Z>>2]|0)|0;else Qa=0;c[X+4>>2]=ia+Qa;if(Dr()|0?((c[Z>>2]|0)+(c[Y>>2]|0)|0)>>>0>=20:0)Mr(c[V>>2]|0)|0;ia=(Fr()|0)!=0;if(ia&(c[$>>2]|0)>>>0>=31)Mr(c[V>>2]|0)|0;ia=c[aa>>2]|0;if((c[Y>>2]|0)>>>0>0)Ra=Nr(c[V>>2]|0,c[Y>>2]|0)|0;else Ra=0;c[X>>2]=ia+Ra;if(Dr()|0)Mr(c[V>>2]|0)|0;ia=c[V>>2]|0;c[Q>>2]=(c[V>>2]|0)+20;c[R>>2]=ia;ia=(c[(c[Q>>2]|0)+4>>2]|0)+(c[c[Q>>2]>>2]<<3)|0;c[S>>2]=c[ia>>2];c[S+4>>2]=c[ia+4>>2];c[T>>2]=d[S+3>>0];c[U>>2]=Or(c[R>>2]|0,c[T>>2]|0)|0;c[c[Q>>2]>>2]=(e[S>>1]|0)+(c[U>>2]|0);ia=c[V>>2]|0;c[L>>2]=(c[V>>2]|0)+36;c[M>>2]=ia;ia=(c[(c[L>>2]|0)+4>>2]|0)+(c[c[L>>2]>>2]<<3)|0;c[N>>2]=c[ia>>2];c[N+4>>2]=c[ia+4>>2];c[O>>2]=d[N+3>>0];c[P>>2]=Or(c[M>>2]|0,c[O>>2]|0)|0;c[c[L>>2]>>2]=(e[N>>1]|0)+(c[P>>2]|0);if(Dr()|0)Mr(c[V>>2]|0)|0;ia=c[V>>2]|0;c[G>>2]=(c[V>>2]|0)+28;c[H>>2]=ia;ia=(c[(c[G>>2]|0)+4>>2]|0)+(c[c[G>>2]>>2]<<3)|0;c[I>>2]=c[ia>>2];c[I+4>>2]=c[ia+4>>2];c[J>>2]=d[I+3>>0];c[K>>2]=Or(c[H>>2]|0,c[J>>2]|0)|0;c[c[G>>2]>>2]=(e[I>>1]|0)+(c[K>>2]|0);c[Ba>>2]=c[X>>2];c[Ba+4>>2]=c[X+4>>2];c[Ba+8>>2]=c[X+8>>2];c[Ba+12>>2]=c[X+12>>2];ia=c[sa>>2]|0;ja=c[ra>>2]|0;la=c[ua>>2]|0;ka=c[va>>2]|0;Ka=c[wa>>2]|0;Ja=c[xa>>2]|0;Ia=F;Ha=Ba;Ga=Ia+16|0;do{a[Ia>>0]=a[Ha>>0]|0;Ia=Ia+1|0;Ha=Ha+1|0;}while((Ia|0)<(Ga|0));c[p>>2]=ia;c[q>>2]=ja;c[r>>2]=ta;c[s>>2]=la;c[t>>2]=ka;c[u>>2]=Ka;c[v>>2]=Ja;c[w>>2]=(c[p>>2]|0)+(c[F>>2]|0);c[x>>2]=(c[F>>2]|0)+(c[F+4>>2]|0);c[y>>2]=(c[p>>2]|0)+(c[x>>2]|0);c[z>>2]=(c[q>>2]|0)+-8;c[A>>2]=(c[c[r>>2]>>2]|0)+(c[F>>2]|0);c[B>>2]=(c[w>>2]|0)+(0-(c[F+8>>2]|0));b:do{if((c[y>>2]|0)>>>0>(c[q>>2]|0)>>>0)c[o>>2]=-70;else{if((c[A>>2]|0)>>>0>(c[s>>2]|0)>>>0){c[o>>2]=-20;break;}Ha=c[p>>2]|0;if((c[w>>2]|0)>>>0>(c[z>>2]|0)>>>0){Ia=c[q>>2]|0;Ga=c[r>>2]|0;k=c[s>>2]|0;Fa=c[t>>2]|0;La=c[u>>2]|0;j=c[v>>2]|0;c[n>>2]=c[F>>2];c[n+4>>2]=c[F+4>>2];c[n+8>>2]=c[F+8>>2];c[n+12>>2]=c[F+12>>2];c[o>>2]=Pr(Ha,Ia,n,Ga,k,Fa,La,j)|0;break;}Qr(Ha,c[c[r>>2]>>2]|0);if((c[F>>2]|0)>>>0>8)Rr((c[p>>2]|0)+8|0,(c[c[r>>2]>>2]|0)+8|0,(c[F>>2]|0)-8|0);c[p>>2]=c[w>>2];c[c[r>>2]>>2]=c[A>>2];do{if((c[F+8>>2]|0)>>>0>((c[w>>2]|0)-(c[t>>2]|0)|0)>>>0){if((c[F+8>>2]|0)>>>0>((c[w>>2]|0)-(c[u>>2]|0)|0)>>>0){c[o>>2]=-20;break b;}c[B>>2]=(c[v>>2]|0)+((c[B>>2]|0)-(c[t>>2]|0));if(((c[B>>2]|0)+(c[F+4>>2]|0)|0)>>>0<=(c[v>>2]|0)>>>0){nE(c[w>>2]|0,c[B>>2]|0,c[F+4>>2]|0)|0;c[o>>2]=c[x>>2];break b;}c[C>>2]=(c[v>>2]|0)-(c[B>>2]|0);nE(c[w>>2]|0,c[B>>2]|0,c[C>>2]|0)|0;c[p>>2]=(c[w>>2]|0)+(c[C>>2]|0);Ha=F+4|0;c[Ha>>2]=(c[Ha>>2]|0)-(c[C>>2]|0);c[B>>2]=c[t>>2];if((c[p>>2]|0)>>>0<=(c[z>>2]|0)>>>0?(c[F+4>>2]|0)>>>0>=3:0)break;c[D>>2]=0;while(1){if((c[D>>2]|0)>>>0>=(c[F+4>>2]|0)>>>0)break;a[(c[p>>2]|0)+(c[D>>2]|0)>>0]=a[(c[B>>2]|0)+(c[D>>2]|0)>>0]|0;c[D>>2]=(c[D>>2]|0)+1;}c[o>>2]=c[x>>2];break b;}}while(0);if((c[F+8>>2]|0)>>>0<8){c[E>>2]=c[6816+(c[F+8>>2]<<2)>>2];a[c[p>>2]>>0]=a[c[B>>2]>>0]|0;a[(c[p>>2]|0)+1>>0]=a[(c[B>>2]|0)+1>>0]|0;a[(c[p>>2]|0)+2>>0]=a[(c[B>>2]|0)+2>>0]|0;a[(c[p>>2]|0)+3>>0]=a[(c[B>>2]|0)+3>>0]|0;c[B>>2]=(c[B>>2]|0)+(c[6848+(c[F+8>>2]<<2)>>2]|0);Sr((c[p>>2]|0)+4|0,c[B>>2]|0);c[B>>2]=(c[B>>2]|0)+(0-(c[E>>2]|0));}else Qr(c[p>>2]|0,c[B>>2]|0);c[p>>2]=(c[p>>2]|0)+8;c[B>>2]=(c[B>>2]|0)+8;Ha=c[p>>2]|0;c:do{if((c[y>>2]|0)>>>0>((c[q>>2]|0)+-13|0)>>>0){if(Ha>>>0<(c[z>>2]|0)>>>0){Rr(c[p>>2]|0,c[B>>2]|0,(c[z>>2]|0)-(c[p>>2]|0)|0);c[B>>2]=(c[B>>2]|0)+((c[z>>2]|0)-(c[p>>2]|0));c[p>>2]=c[z>>2];}while(1){if((c[p>>2]|0)>>>0>=(c[y>>2]|0)>>>0)break c;j=c[B>>2]|0;c[B>>2]=j+1;La=a[j>>0]|0;j=c[p>>2]|0;c[p>>2]=j+1;a[j>>0]=La;}}else Rr(Ha,c[B>>2]|0,(c[F+4>>2]|0)-8|0);}while(0);c[o>>2]=c[x>>2];}}while(0);c[Ca>>2]=c[o>>2];Ja=($q(c[Ca>>2]|0)|0)!=0;Sa=c[Ca>>2]|0;if(Ja){Ta=73;break;}c[sa>>2]=(c[sa>>2]|0)+Sa;}if((Ta|0)==73){c[ga>>2]=Sa;Ma=c[ga>>2]|0;l=m;return Ma|0;}if(Na|0){c[ga>>2]=-20;Ma=c[ga>>2]|0;l=m;return Ma|0;}c[Da>>2]=0;while(1){if((c[Da>>2]|0)>>>0>=3)break a;c[(c[ha>>2]|0)+16+28700+(c[Da>>2]<<2)>>2]=c[ya+44+(c[Da>>2]<<2)>>2];c[Da>>2]=(c[Da>>2]|0)+1;}}}while(0);c[Ea>>2]=(c[ua>>2]|0)-(c[ta>>2]|0);if((c[Ea>>2]|0)>>>0>((c[ra>>2]|0)-(c[sa>>2]|0)|0)>>>0){c[ga>>2]=-70;Ma=c[ga>>2]|0;l=m;return Ma|0;}else{mE(c[sa>>2]|0,c[ta>>2]|0,c[Ea>>2]|0)|0;c[sa>>2]=(c[sa>>2]|0)+(c[Ea>>2]|0);c[ga>>2]=(c[sa>>2]|0)-(c[qa>>2]|0);Ma=c[ga>>2]|0;l=m;return Ma|0;}return 0;}function Jr(b,f,g,h,i,j,k){b=b|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0;m=l;l=l+448|0;n=m+432|0;o=m+424|0;p=m+420|0;q=m+416|0;r=m+412|0;s=m+408|0;t=m+404|0;u=m+400|0;v=m+396|0;w=m+392|0;x=m+388|0;y=m+384|0;z=m+380|0;A=m+376|0;B=m+372|0;C=m+368|0;D=m+364|0;E=m+360|0;F=m;G=m+356|0;H=m+352|0;I=m+344|0;J=m+340|0;K=m+336|0;L=m+332|0;M=m+328|0;N=m+320|0;O=m+316|0;P=m+312|0;Q=m+308|0;R=m+304|0;S=m+296|0;T=m+292|0;U=m+288|0;V=m+284|0;W=m+280|0;X=m+264|0;Y=m+256|0;Z=m+252|0;_=m+248|0;$=m+244|0;aa=m+240|0;ba=m+236|0;ca=m+232|0;da=m+228|0;ea=m+224|0;fa=m+220|0;ga=m+216|0;ha=m+212|0;ia=m+208|0;ja=m+204|0;ka=m+200|0;la=m+196|0;ma=m+192|0;na=m+188|0;oa=m+184|0;pa=m+180|0;qa=m+176|0;ra=m+172|0;sa=m+168|0;ta=m+164|0;ua=m+160|0;va=m+156|0;wa=m+152|0;xa=m+148|0;ya=m+80|0;za=m+76|0;Aa=m+72|0;Ba=m+56|0;Ca=m+52|0;Da=m+48|0;Ea=m+44|0;Fa=m+40|0;Ga=m+36|0;Ha=m+32|0;Ia=m+28|0;Ja=m+24|0;Ka=m+20|0;La=m+16|0;c[Fa>>2]=b;c[Ga>>2]=f;c[Ha>>2]=g;c[Ia>>2]=h;c[Ja>>2]=i;c[Ka>>2]=j;c[La>>2]=k;k=c[Ga>>2]|0;Ga=c[Ha>>2]|0;Ha=c[Ia>>2]|0;Ia=c[Ja>>2]|0;Ja=c[Ka>>2]|0;Ka=c[La>>2]|0;c[ha>>2]=c[Fa>>2];c[ia>>2]=k;c[ja>>2]=Ga;c[ka>>2]=Ha;c[la>>2]=Ia;c[ma>>2]=Ja;c[na>>2]=Ka;c[oa>>2]=c[ka>>2];c[pa>>2]=(c[oa>>2]|0)+(c[la>>2]|0);c[qa>>2]=c[ia>>2];c[ra>>2]=(c[qa>>2]|0)+(c[ja>>2]|0);c[sa>>2]=c[qa>>2];c[ta>>2]=c[(c[ha>>2]|0)+28916>>2];c[ua>>2]=(c[ta>>2]|0)+(c[(c[ha>>2]|0)+28932>>2]|0);c[va>>2]=c[(c[ha>>2]|0)+28732>>2];c[wa>>2]=c[(c[ha>>2]|0)+28736>>2];c[xa>>2]=c[(c[ha>>2]|0)+28740>>2];a:do{if(c[ma>>2]|0){c[(c[ha>>2]|0)+28812>>2]=1;c[za>>2]=0;while(1){if((c[za>>2]|0)>>>0>=3)break;c[ya+44+(c[za>>2]<<2)>>2]=c[(c[ha>>2]|0)+16+28700+(c[za>>2]<<2)>>2];c[za>>2]=(c[za>>2]|0)+1;}c[Aa>>2]=Kr(ya,c[oa>>2]|0,(c[pa>>2]|0)-(c[oa>>2]|0)|0)|0;if($q(c[Aa>>2]|0)|0){c[ga>>2]=-20;Ma=c[ga>>2]|0;l=m;return Ma|0;}Lr(ya+20|0,ya,c[c[ha>>2]>>2]|0);Lr(ya+28|0,ya,c[(c[ha>>2]|0)+8>>2]|0);Lr(ya+36|0,ya,c[(c[ha>>2]|0)+4>>2]|0);while(1){ja=(Mr(ya)|0)>>>0<=2;Na=c[ma>>2]|0;if(!(ja?(c[ma>>2]|0)!=0:0))break;c[ma>>2]=Na+-1;ja=c[na>>2]|0;c[V>>2]=ya;c[W>>2]=ja;c[Y>>2]=d[(c[(c[V>>2]|0)+20+4>>2]|0)+(c[(c[V>>2]|0)+20>>2]<<3)+2>>0];c[Z>>2]=d[(c[(c[V>>2]|0)+36+4>>2]|0)+(c[(c[V>>2]|0)+36>>2]<<3)+2>>0];c[_>>2]=d[(c[(c[V>>2]|0)+28+4>>2]|0)+(c[(c[V>>2]|0)+28>>2]<<3)+2>>0];c[$>>2]=(c[Y>>2]|0)+(c[Z>>2]|0)+(c[_>>2]|0);c[aa>>2]=c[(c[(c[V>>2]|0)+20+4>>2]|0)+(c[(c[V>>2]|0)+20>>2]<<3)+4>>2];c[ba>>2]=c[(c[(c[V>>2]|0)+36+4>>2]|0)+(c[(c[V>>2]|0)+36>>2]<<3)+4>>2];c[ca>>2]=c[(c[(c[V>>2]|0)+28+4>>2]|0)+(c[(c[V>>2]|0)+28>>2]<<3)+4>>2];do{if(c[_>>2]|0){ja=(Dr()|0)!=0;if(!(ja&(c[W>>2]|0)!=0&(c[_>>2]|0)>>>0>=25)){ja=c[ca>>2]|0;c[da>>2]=ja+(Nr(c[V>>2]|0,c[_>>2]|0)|0);if(!(Dr()|0))break;Mr(c[V>>2]|0)|0;break;}if((c[_>>2]|0)>>>0<(32-(c[(c[V>>2]|0)+4>>2]|0)|0)>>>0)Oa=c[_>>2]|0;else Oa=32-(c[(c[V>>2]|0)+4>>2]|0)|0;c[ea>>2]=(c[_>>2]|0)-Oa;ja=c[ca>>2]|0;ia=Nr(c[V>>2]|0,(c[_>>2]|0)-(c[ea>>2]|0)|0)|0;c[da>>2]=ja+(ia<<c[ea>>2]);Mr(c[V>>2]|0)|0;if(c[ea>>2]|0){ia=Nr(c[V>>2]|0,c[ea>>2]|0)|0;c[da>>2]=(c[da>>2]|0)+ia;}}else c[da>>2]=0;}while(0);do{if((c[_>>2]|0)>>>0<=1){c[da>>2]=(c[da>>2]|0)+((c[aa>>2]|0)==0&1);if(!(c[da>>2]|0)){c[da>>2]=c[(c[V>>2]|0)+44>>2];break;}ia=(c[V>>2]|0)+44|0;if((c[da>>2]|0)==3)Pa=(c[ia>>2]|0)-1|0;else Pa=c[ia+(c[da>>2]<<2)>>2]|0;c[fa>>2]=Pa;c[fa>>2]=(c[fa>>2]|0)+(((c[fa>>2]|0)!=0^1)&1);if((c[da>>2]|0)!=1)c[(c[V>>2]|0)+44+8>>2]=c[(c[V>>2]|0)+44+4>>2];c[(c[V>>2]|0)+44+4>>2]=c[(c[V>>2]|0)+44>>2];ia=c[fa>>2]|0;c[da>>2]=ia;c[(c[V>>2]|0)+44>>2]=ia;}else{c[(c[V>>2]|0)+44+8>>2]=c[(c[V>>2]|0)+44+4>>2];c[(c[V>>2]|0)+44+4>>2]=c[(c[V>>2]|0)+44>>2];c[(c[V>>2]|0)+44>>2]=c[da>>2];}}while(0);c[X+8>>2]=c[da>>2];ia=c[ba>>2]|0;if((c[Z>>2]|0)>>>0>0)Qa=Nr(c[V>>2]|0,c[Z>>2]|0)|0;else Qa=0;c[X+4>>2]=ia+Qa;if(Dr()|0?((c[Z>>2]|0)+(c[Y>>2]|0)|0)>>>0>=20:0)Mr(c[V>>2]|0)|0;ia=(Fr()|0)!=0;if(ia&(c[$>>2]|0)>>>0>=31)Mr(c[V>>2]|0)|0;ia=c[aa>>2]|0;if((c[Y>>2]|0)>>>0>0)Ra=Nr(c[V>>2]|0,c[Y>>2]|0)|0;else Ra=0;c[X>>2]=ia+Ra;if(Dr()|0)Mr(c[V>>2]|0)|0;ia=c[V>>2]|0;c[Q>>2]=(c[V>>2]|0)+20;c[R>>2]=ia;ia=(c[(c[Q>>2]|0)+4>>2]|0)+(c[c[Q>>2]>>2]<<3)|0;c[S>>2]=c[ia>>2];c[S+4>>2]=c[ia+4>>2];c[T>>2]=d[S+3>>0];c[U>>2]=Or(c[R>>2]|0,c[T>>2]|0)|0;c[c[Q>>2]>>2]=(e[S>>1]|0)+(c[U>>2]|0);ia=c[V>>2]|0;c[L>>2]=(c[V>>2]|0)+36;c[M>>2]=ia;ia=(c[(c[L>>2]|0)+4>>2]|0)+(c[c[L>>2]>>2]<<3)|0;c[N>>2]=c[ia>>2];c[N+4>>2]=c[ia+4>>2];c[O>>2]=d[N+3>>0];c[P>>2]=Or(c[M>>2]|0,c[O>>2]|0)|0;c[c[L>>2]>>2]=(e[N>>1]|0)+(c[P>>2]|0);if(Dr()|0)Mr(c[V>>2]|0)|0;ia=c[V>>2]|0;c[G>>2]=(c[V>>2]|0)+28;c[H>>2]=ia;ia=(c[(c[G>>2]|0)+4>>2]|0)+(c[c[G>>2]>>2]<<3)|0;c[I>>2]=c[ia>>2];c[I+4>>2]=c[ia+4>>2];c[J>>2]=d[I+3>>0];c[K>>2]=Or(c[H>>2]|0,c[J>>2]|0)|0;c[c[G>>2]>>2]=(e[I>>1]|0)+(c[K>>2]|0);c[Ba>>2]=c[X>>2];c[Ba+4>>2]=c[X+4>>2];c[Ba+8>>2]=c[X+8>>2];c[Ba+12>>2]=c[X+12>>2];ia=c[sa>>2]|0;ja=c[ra>>2]|0;la=c[ua>>2]|0;ka=c[va>>2]|0;Ka=c[wa>>2]|0;Ja=c[xa>>2]|0;Ia=F;Ha=Ba;Ga=Ia+16|0;do{a[Ia>>0]=a[Ha>>0]|0;Ia=Ia+1|0;Ha=Ha+1|0;}while((Ia|0)<(Ga|0));c[p>>2]=ia;c[q>>2]=ja;c[r>>2]=ta;c[s>>2]=la;c[t>>2]=ka;c[u>>2]=Ka;c[v>>2]=Ja;c[w>>2]=(c[p>>2]|0)+(c[F>>2]|0);c[x>>2]=(c[F>>2]|0)+(c[F+4>>2]|0);c[y>>2]=(c[p>>2]|0)+(c[x>>2]|0);c[z>>2]=(c[q>>2]|0)+-8;c[A>>2]=(c[c[r>>2]>>2]|0)+(c[F>>2]|0);c[B>>2]=(c[w>>2]|0)+(0-(c[F+8>>2]|0));b:do{if((c[y>>2]|0)>>>0>(c[q>>2]|0)>>>0)c[o>>2]=-70;else{if((c[A>>2]|0)>>>0>(c[s>>2]|0)>>>0){c[o>>2]=-20;break;}Ha=c[p>>2]|0;if((c[w>>2]|0)>>>0>(c[z>>2]|0)>>>0){Ia=c[q>>2]|0;Ga=c[r>>2]|0;k=c[s>>2]|0;Fa=c[t>>2]|0;La=c[u>>2]|0;j=c[v>>2]|0;c[n>>2]=c[F>>2];c[n+4>>2]=c[F+4>>2];c[n+8>>2]=c[F+8>>2];c[n+12>>2]=c[F+12>>2];c[o>>2]=Pr(Ha,Ia,n,Ga,k,Fa,La,j)|0;break;}Qr(Ha,c[c[r>>2]>>2]|0);if((c[F>>2]|0)>>>0>8)Rr((c[p>>2]|0)+8|0,(c[c[r>>2]>>2]|0)+8|0,(c[F>>2]|0)-8|0);c[p>>2]=c[w>>2];c[c[r>>2]>>2]=c[A>>2];do{if((c[F+8>>2]|0)>>>0>((c[w>>2]|0)-(c[t>>2]|0)|0)>>>0){if((c[F+8>>2]|0)>>>0>((c[w>>2]|0)-(c[u>>2]|0)|0)>>>0){c[o>>2]=-20;break b;}c[B>>2]=(c[v>>2]|0)+((c[B>>2]|0)-(c[t>>2]|0));if(((c[B>>2]|0)+(c[F+4>>2]|0)|0)>>>0<=(c[v>>2]|0)>>>0){nE(c[w>>2]|0,c[B>>2]|0,c[F+4>>2]|0)|0;c[o>>2]=c[x>>2];break b;}c[C>>2]=(c[v>>2]|0)-(c[B>>2]|0);nE(c[w>>2]|0,c[B>>2]|0,c[C>>2]|0)|0;c[p>>2]=(c[w>>2]|0)+(c[C>>2]|0);Ha=F+4|0;c[Ha>>2]=(c[Ha>>2]|0)-(c[C>>2]|0);c[B>>2]=c[t>>2];if((c[p>>2]|0)>>>0<=(c[z>>2]|0)>>>0?(c[F+4>>2]|0)>>>0>=3:0)break;c[D>>2]=0;while(1){if((c[D>>2]|0)>>>0>=(c[F+4>>2]|0)>>>0)break;a[(c[p>>2]|0)+(c[D>>2]|0)>>0]=a[(c[B>>2]|0)+(c[D>>2]|0)>>0]|0;c[D>>2]=(c[D>>2]|0)+1;}c[o>>2]=c[x>>2];break b;}}while(0);if((c[F+8>>2]|0)>>>0<8){c[E>>2]=c[6816+(c[F+8>>2]<<2)>>2];a[c[p>>2]>>0]=a[c[B>>2]>>0]|0;a[(c[p>>2]|0)+1>>0]=a[(c[B>>2]|0)+1>>0]|0;a[(c[p>>2]|0)+2>>0]=a[(c[B>>2]|0)+2>>0]|0;a[(c[p>>2]|0)+3>>0]=a[(c[B>>2]|0)+3>>0]|0;c[B>>2]=(c[B>>2]|0)+(c[6848+(c[F+8>>2]<<2)>>2]|0);Sr((c[p>>2]|0)+4|0,c[B>>2]|0);c[B>>2]=(c[B>>2]|0)+(0-(c[E>>2]|0));}else Qr(c[p>>2]|0,c[B>>2]|0);c[p>>2]=(c[p>>2]|0)+8;c[B>>2]=(c[B>>2]|0)+8;Ha=c[p>>2]|0;c:do{if((c[y>>2]|0)>>>0>((c[q>>2]|0)+-13|0)>>>0){if(Ha>>>0<(c[z>>2]|0)>>>0){Rr(c[p>>2]|0,c[B>>2]|0,(c[z>>2]|0)-(c[p>>2]|0)|0);c[B>>2]=(c[B>>2]|0)+((c[z>>2]|0)-(c[p>>2]|0));c[p>>2]=c[z>>2];}while(1){if((c[p>>2]|0)>>>0>=(c[y>>2]|0)>>>0)break c;j=c[B>>2]|0;c[B>>2]=j+1;La=a[j>>0]|0;j=c[p>>2]|0;c[p>>2]=j+1;a[j>>0]=La;}}else Rr(Ha,c[B>>2]|0,(c[F+4>>2]|0)-8|0);}while(0);c[o>>2]=c[x>>2];}}while(0);c[Ca>>2]=c[o>>2];Ja=($q(c[Ca>>2]|0)|0)!=0;Sa=c[Ca>>2]|0;if(Ja){Ta=73;break;}c[sa>>2]=(c[sa>>2]|0)+Sa;}if((Ta|0)==73){c[ga>>2]=Sa;Ma=c[ga>>2]|0;l=m;return Ma|0;}if(Na|0){c[ga>>2]=-20;Ma=c[ga>>2]|0;l=m;return Ma|0;}c[Da>>2]=0;while(1){if((c[Da>>2]|0)>>>0>=3)break a;c[(c[ha>>2]|0)+16+28700+(c[Da>>2]<<2)>>2]=c[ya+44+(c[Da>>2]<<2)>>2];c[Da>>2]=(c[Da>>2]|0)+1;}}}while(0);c[Ea>>2]=(c[ua>>2]|0)-(c[ta>>2]|0);if((c[Ea>>2]|0)>>>0>((c[ra>>2]|0)-(c[sa>>2]|0)|0)>>>0){c[ga>>2]=-70;Ma=c[ga>>2]|0;l=m;return Ma|0;}else{mE(c[sa>>2]|0,c[ta>>2]|0,c[Ea>>2]|0)|0;c[sa>>2]=(c[sa>>2]|0)+(c[Ea>>2]|0);c[ga>>2]=(c[sa>>2]|0)-(c[qa>>2]|0);Ma=c[ga>>2]|0;l=m;return Ma|0;}return 0;}function Kr(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;g=l;l=l+32|0;h=g+12|0;i=g+8|0;j=g+4|0;k=g;m=g+17|0;n=g+16|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;if((c[k>>2]|0)>>>0<1){f=c[i>>2]|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[h>>2]=-72;o=c[h>>2]|0;l=g;return o|0;}c[(c[i>>2]|0)+12>>2]=c[j>>2];c[(c[i>>2]|0)+16>>2]=(c[(c[i>>2]|0)+12>>2]|0)+4;do{if((c[k>>2]|0)>>>0>=4){c[(c[i>>2]|0)+8>>2]=(c[j>>2]|0)+(c[k>>2]|0)+-4;f=Wr(c[(c[i>>2]|0)+8>>2]|0)|0;c[c[i>>2]>>2]=f;a[m>>0]=a[(c[j>>2]|0)+((c[k>>2]|0)-1)>>0]|0;if(d[m>>0]|0|0)p=8-(Ar(d[m>>0]|0)|0)|0;else p=0;c[(c[i>>2]|0)+4>>2]=p;if(!(d[m>>0]|0)){c[h>>2]=-1;o=c[h>>2]|0;l=g;return o|0;}}else{c[(c[i>>2]|0)+8>>2]=c[(c[i>>2]|0)+12>>2];c[c[i>>2]>>2]=d[c[(c[i>>2]|0)+12>>2]>>0];switch(c[k>>2]|0){case 7:{f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+6>>0]|0)<<16);q=10;break;}case 6:{q=10;break;}case 5:{q=11;break;}case 4:{q=12;break;}case 3:{q=13;break;}case 2:{q=14;break;}default:{}}if((q|0)==10){f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+5>>0]|0)<<8);q=11;}if((q|0)==11){f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+4>>0]|0)<<0);q=12;}if((q|0)==12){f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+3>>0]|0)<<24);q=13;}if((q|0)==13){f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+2>>0]|0)<<16);q=14;}if((q|0)==14){f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+1>>0]|0)<<8);}a[n>>0]=a[(c[j>>2]|0)+((c[k>>2]|0)-1)>>0]|0;if(d[n>>0]|0|0)r=8-(Ar(d[n>>0]|0)|0)|0;else r=0;c[(c[i>>2]|0)+4>>2]=r;if(d[n>>0]|0|0){f=(c[i>>2]|0)+4|0;c[f>>2]=(c[f>>2]|0)+(4-(c[k>>2]|0)<<3);break;}c[h>>2]=-20;o=c[h>>2]|0;l=g;return o|0;}}while(0);c[h>>2]=c[k>>2];o=c[h>>2]|0;l=g;return o|0;}function Lr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+32|0;f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[h>>2];c[j>>2]=c[i>>2];i=Or(c[g>>2]|0,c[(c[j>>2]|0)+4>>2]|0)|0;c[c[f>>2]>>2]=i;Mr(c[g>>2]|0)|0;c[(c[f>>2]|0)+4>>2]=(c[h>>2]|0)+8;l=e;return;}function Mr(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+16|0;d=b+12|0;e=b+8|0;f=b+4|0;g=b;c[e>>2]=a;if((c[(c[e>>2]|0)+4>>2]|0)>>>0>32){c[d>>2]=3;h=c[d>>2]|0;l=b;return h|0;}a=c[e>>2]|0;if((c[(c[e>>2]|0)+8>>2]|0)>>>0>=(c[(c[e>>2]|0)+16>>2]|0)>>>0){i=(c[e>>2]|0)+8|0;c[i>>2]=(c[i>>2]|0)+(0-((c[a+4>>2]|0)>>>3));i=(c[e>>2]|0)+4|0;c[i>>2]=c[i>>2]&7;i=Wr(c[(c[e>>2]|0)+8>>2]|0)|0;c[c[e>>2]>>2]=i;c[d>>2]=0;h=c[d>>2]|0;l=b;return h|0;}i=c[(c[e>>2]|0)+4>>2]|0;if((c[a+8>>2]|0)!=(c[(c[e>>2]|0)+12>>2]|0)){c[f>>2]=i>>>3;c[g>>2]=0;if(((c[(c[e>>2]|0)+8>>2]|0)+(0-(c[f>>2]|0))|0)>>>0<(c[(c[e>>2]|0)+12>>2]|0)>>>0){c[f>>2]=(c[(c[e>>2]|0)+8>>2]|0)-(c[(c[e>>2]|0)+12>>2]|0);c[g>>2]=1;}a=(c[e>>2]|0)+8|0;c[a>>2]=(c[a>>2]|0)+(0-(c[f>>2]|0));a=(c[e>>2]|0)+4|0;c[a>>2]=(c[a>>2]|0)-(c[f>>2]<<3);f=Wr(c[(c[e>>2]|0)+8>>2]|0)|0;c[c[e>>2]>>2]=f;c[d>>2]=c[g>>2];h=c[d>>2]|0;l=b;return h|0;}if(i>>>0<32){c[d>>2]=1;h=c[d>>2]|0;l=b;return h|0;}else{c[d>>2]=2;h=c[d>>2]|0;l=b;return h|0;}return 0;}function Nr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=Vr(c[e>>2]|0,c[f>>2]|0)|0;Ur(c[e>>2]|0,c[f>>2]|0);l=d;return c[g>>2]|0;}function Or(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=Tr(c[e>>2]|0,c[f>>2]|0)|0;Ur(c[e>>2]|0,c[f>>2]|0);l=d;return c[g>>2]|0;}function Pr(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;k=l;l=l+64|0;m=k+56|0;n=k+52|0;o=k+48|0;p=k+44|0;q=k+40|0;r=k+36|0;s=k+32|0;t=k+28|0;u=k+24|0;v=k+20|0;w=k+16|0;x=k+12|0;y=k+8|0;z=k+4|0;A=k;c[n>>2]=b;c[o>>2]=d;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[u>>2]=(c[n>>2]|0)+(c[e>>2]|0);c[v>>2]=(c[e>>2]|0)+(c[e+4>>2]|0);c[w>>2]=(c[n>>2]|0)+(c[v>>2]|0);c[x>>2]=(c[o>>2]|0)+-8;c[y>>2]=(c[c[p>>2]>>2]|0)+(c[e>>2]|0);c[z>>2]=(c[u>>2]|0)+(0-(c[e+8>>2]|0));if((c[w>>2]|0)>>>0>(c[o>>2]|0)>>>0){c[m>>2]=-70;B=c[m>>2]|0;l=k;return B|0;}if((c[y>>2]|0)>>>0>(c[q>>2]|0)>>>0){c[m>>2]=-20;B=c[m>>2]|0;l=k;return B|0;}if((c[u>>2]|0)>>>0<=(c[x>>2]|0)>>>0){c[m>>2]=-1;B=c[m>>2]|0;l=k;return B|0;}if((c[n>>2]|0)>>>0<(c[x>>2]|0)>>>0){Rr(c[n>>2]|0,c[c[p>>2]>>2]|0,(c[x>>2]|0)-(c[n>>2]|0)|0);q=c[p>>2]|0;c[q>>2]=(c[q>>2]|0)+((c[x>>2]|0)-(c[n>>2]|0));c[n>>2]=c[x>>2];}while(1){if((c[n>>2]|0)>>>0>=(c[u>>2]|0)>>>0)break;x=c[p>>2]|0;q=c[x>>2]|0;c[x>>2]=q+1;x=a[q>>0]|0;q=c[n>>2]|0;c[n>>2]=q+1;a[q>>0]=x;}do{if((c[e+8>>2]|0)>>>0>((c[u>>2]|0)-(c[r>>2]|0)|0)>>>0){if((c[e+8>>2]|0)>>>0>((c[u>>2]|0)-(c[s>>2]|0)|0)>>>0){c[m>>2]=-20;B=c[m>>2]|0;l=k;return B|0;}c[z>>2]=(c[t>>2]|0)+(0-((c[r>>2]|0)-(c[z>>2]|0)));if(((c[z>>2]|0)+(c[e+4>>2]|0)|0)>>>0>(c[t>>2]|0)>>>0){c[A>>2]=(c[t>>2]|0)-(c[z>>2]|0);nE(c[u>>2]|0,c[z>>2]|0,c[A>>2]|0)|0;c[n>>2]=(c[u>>2]|0)+(c[A>>2]|0);p=e+4|0;c[p>>2]=(c[p>>2]|0)-(c[A>>2]|0);c[z>>2]=c[r>>2];break;}nE(c[u>>2]|0,c[z>>2]|0,c[e+4>>2]|0)|0;c[m>>2]=c[v>>2];B=c[m>>2]|0;l=k;return B|0;}}while(0);while(1){if((c[n>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;e=c[z>>2]|0;c[z>>2]=e+1;u=a[e>>0]|0;e=c[n>>2]|0;c[n>>2]=e+1;a[e>>0]=u;}c[m>>2]=c[v>>2];B=c[m>>2]|0;l=k;return B|0;}function Qr(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[f>>2]|0;f=c[g>>2]|0;a[d>>0]=a[f>>0]|0;a[d+1>>0]=a[f+1>>0]|0;a[d+2>>0]=a[f+2>>0]|0;a[d+3>>0]=a[f+3>>0]|0;a[d+4>>0]=a[f+4>>0]|0;a[d+5>>0]=a[f+5>>0]|0;a[d+6>>0]=a[f+6>>0]|0;a[d+7>>0]=a[f+7>>0]|0;l=e;return;}function Rr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[g>>2];c[j>>2]=c[f>>2];c[k>>2]=(c[j>>2]|0)+(c[h>>2]|0);do{Qr(c[j>>2]|0,c[i>>2]|0);c[j>>2]=(c[j>>2]|0)+8;c[i>>2]=(c[i>>2]|0)+8;}while((c[j>>2]|0)>>>0<(c[k>>2]|0)>>>0);l=e;return;}function Sr(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[f>>2]|0;f=c[g>>2]|0;a[d>>0]=a[f>>0]|0;a[d+1>>0]=a[f+1>>0]|0;a[d+2>>0]=a[f+2>>0]|0;a[d+3>>0]=a[f+3>>0]|0;l=e;return;}function Tr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;c[e>>2]=a;c[f>>2]=b;c[d>>2]=31;l=d;return c[c[e>>2]>>2]<<(c[(c[e>>2]|0)+4>>2]&31)>>>1>>>(31-(c[f>>2]|0)&31)|0;}function Ur(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=(c[e>>2]|0)+4|0;c[b>>2]=(c[b>>2]|0)+(c[f>>2]|0);l=d;return;}function Vr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;c[e>>2]=a;c[f>>2]=b;c[d>>2]=31;l=d;return c[c[e>>2]>>2]<<(c[(c[e>>2]|0)+4>>2]&31)>>>(32-(c[f>>2]|0)&31)|0;}function Wr(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(Dr()|0)!=0;f=c[e>>2]|0;if(a){c[d>>2]=hq(f)|0;g=c[d>>2]|0;l=b;return g|0;}else{a=sq(f)|0;c[d>>2]=a;g=c[d>>2]|0;l=b;return g|0;}return 0;}function Xr(b,f,g,h,i,j,k){b=b|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0;m=l;l=l+784|0;n=m+760|0;o=m+756|0;p=m+752|0;q=m+748|0;r=m+744|0;s=m+740|0;t=m+736|0;u=m+732|0;v=m+728|0;w=m+724|0;x=m+720|0;y=m+716|0;z=m+712|0;A=m+708|0;B=m+704|0;C=m+700|0;D=m+696|0;E=m+692|0;F=m+80|0;G=m+688|0;H=m+684|0;I=m+680|0;J=m+676|0;K=m+672|0;L=m+668|0;M=m+664|0;N=m+660|0;O=m+656|0;P=m+652|0;Q=m+648|0;R=m+644|0;S=m+640|0;T=m+636|0;U=m+632|0;V=m+628|0;W=m+624|0;X=m+64|0;Y=m+620|0;Z=m+616|0;_=m+608|0;$=m+604|0;aa=m+600|0;ba=m+596|0;ca=m+592|0;da=m+584|0;ea=m+580|0;fa=m+576|0;ga=m+572|0;ha=m+568|0;ia=m+560|0;ja=m+556|0;ka=m+552|0;la=m+548|0;ma=m+544|0;na=m+528|0;oa=m+524|0;pa=m+520|0;qa=m+516|0;ra=m+512|0;sa=m+508|0;ta=m+504|0;ua=m+500|0;va=m+496|0;wa=m+492|0;xa=m+488|0;ya=m+484|0;za=m+480|0;Aa=m+476|0;Ba=m+472|0;Ca=m+464|0;Da=m+460|0;Ea=m+456|0;Fa=m+452|0;Ga=m+448|0;Ha=m+440|0;Ia=m+436|0;Ja=m+432|0;Ka=m+428|0;La=m+424|0;Ma=m+416|0;Na=m+412|0;Oa=m+408|0;Pa=m+404|0;Qa=m+400|0;Ra=m+384|0;Sa=m+376|0;Ta=m+372|0;Ua=m+368|0;Va=m+364|0;Wa=m+360|0;Xa=m+356|0;Ya=m+352|0;Za=m+348|0;_a=m+344|0;$a=m+340|0;ab=m+336|0;bb=m+332|0;cb=m+328|0;db=m+324|0;eb=m+320|0;fb=m+316|0;gb=m+312|0;hb=m+308|0;ib=m+304|0;jb=m+300|0;kb=m+296|0;lb=m+292|0;mb=m+288|0;nb=m+284|0;ob=m+280|0;pb=m+276|0;qb=m+272|0;rb=m+268|0;sb=m+264|0;tb=m+260|0;ub=m;vb=m+256|0;wb=m+188|0;xb=m+184|0;yb=m+180|0;zb=m+176|0;Ab=m+160|0;Bb=m+144|0;Cb=m+136|0;Db=m+132|0;Eb=m+128|0;Fb=m+124|0;Gb=m+120|0;Hb=m+116|0;Ib=m+112|0;Jb=m+108|0;Kb=m+104|0;Lb=m+100|0;Mb=m+96|0;c[Gb>>2]=b;c[Hb>>2]=f;c[Ib>>2]=g;c[Jb>>2]=h;c[Kb>>2]=i;c[Lb>>2]=j;c[Mb>>2]=k;k=c[Hb>>2]|0;Hb=c[Ib>>2]|0;Ib=c[Jb>>2]|0;Jb=c[Kb>>2]|0;Kb=c[Lb>>2]|0;Lb=c[Mb>>2]|0;c[db>>2]=c[Gb>>2];c[eb>>2]=k;c[fb>>2]=Hb;c[gb>>2]=Ib;c[hb>>2]=Jb;c[ib>>2]=Kb;c[jb>>2]=Lb;c[kb>>2]=c[gb>>2];c[lb>>2]=(c[kb>>2]|0)+(c[hb>>2]|0);c[mb>>2]=c[eb>>2];c[nb>>2]=(c[mb>>2]|0)+(c[fb>>2]|0);c[ob>>2]=c[mb>>2];c[pb>>2]=c[(c[db>>2]|0)+28916>>2];c[qb>>2]=(c[pb>>2]|0)+(c[(c[db>>2]|0)+28932>>2]|0);c[rb>>2]=c[(c[db>>2]|0)+28732>>2];c[sb>>2]=c[(c[db>>2]|0)+28736>>2];c[tb>>2]=c[(c[db>>2]|0)+28740>>2];a:do{if(c[ib>>2]|0){c[vb>>2]=(c[ib>>2]|0)<4?c[ib>>2]|0:4;c[(c[db>>2]|0)+28812>>2]=1;c[yb>>2]=0;while(1){if((c[yb>>2]|0)>>>0>=3)break;c[wb+44+(c[yb>>2]<<2)>>2]=c[(c[db>>2]|0)+16+28700+(c[yb>>2]<<2)>>2];c[yb>>2]=(c[yb>>2]|0)+1;}c[wb+56>>2]=c[rb>>2];c[wb+64>>2]=(c[ob>>2]|0)-(c[rb>>2]|0);c[wb+60>>2]=c[tb>>2];c[zb>>2]=Kr(wb,c[kb>>2]|0,(c[lb>>2]|0)-(c[kb>>2]|0)|0)|0;if($q(c[zb>>2]|0)|0){c[cb>>2]=-20;Nb=c[cb>>2]|0;l=m;return Nb|0;}Lr(wb+20|0,wb,c[c[db>>2]>>2]|0);Lr(wb+28|0,wb,c[(c[db>>2]|0)+8>>2]|0);Lr(wb+36|0,wb,c[(c[db>>2]|0)+4>>2]|0);c[xb>>2]=0;while(1){if((Mr(wb)|0)>>>0<=2)Ob=(c[xb>>2]|0)<(c[vb>>2]|0);else Ob=0;Pb=c[xb>>2]|0;if(!Ob)break;fb=ub+(Pb<<4)|0;eb=c[jb>>2]|0;c[Pa>>2]=wb;c[Qa>>2]=eb;c[Sa>>2]=d[(c[(c[Pa>>2]|0)+20+4>>2]|0)+(c[(c[Pa>>2]|0)+20>>2]<<3)+2>>0];c[Ta>>2]=d[(c[(c[Pa>>2]|0)+36+4>>2]|0)+(c[(c[Pa>>2]|0)+36>>2]<<3)+2>>0];c[Ua>>2]=d[(c[(c[Pa>>2]|0)+28+4>>2]|0)+(c[(c[Pa>>2]|0)+28>>2]<<3)+2>>0];c[Va>>2]=(c[Sa>>2]|0)+(c[Ta>>2]|0)+(c[Ua>>2]|0);c[Wa>>2]=c[(c[(c[Pa>>2]|0)+20+4>>2]|0)+(c[(c[Pa>>2]|0)+20>>2]<<3)+4>>2];c[Xa>>2]=c[(c[(c[Pa>>2]|0)+36+4>>2]|0)+(c[(c[Pa>>2]|0)+36>>2]<<3)+4>>2];c[Ya>>2]=c[(c[(c[Pa>>2]|0)+28+4>>2]|0)+(c[(c[Pa>>2]|0)+28>>2]<<3)+4>>2];do{if(c[Ua>>2]|0){eb=(Dr()|0)!=0;if(!(eb&(c[Qa>>2]|0)!=0)){eb=c[Ya>>2]|0;c[Za>>2]=eb+(Nr(c[Pa>>2]|0,c[Ua>>2]|0)|0);if(!(Dr()|0))break;Mr(c[Pa>>2]|0)|0;break;}c[_a>>2]=(c[Ua>>2]|0)-((c[Ua>>2]|0)>>>0<24?c[Ua>>2]|0:24);eb=c[Ya>>2]|0;hb=Nr(c[Pa>>2]|0,(c[Ua>>2]|0)-(c[_a>>2]|0)|0)|0;c[Za>>2]=eb+(hb<<c[_a>>2]);hb=(Dr()|0)!=0;if(hb|(c[_a>>2]|0)!=0)Mr(c[Pa>>2]|0)|0;if(c[_a>>2]|0){hb=Nr(c[Pa>>2]|0,c[_a>>2]|0)|0;c[Za>>2]=(c[Za>>2]|0)+hb;}}else c[Za>>2]=0;}while(0);do{if((c[Ua>>2]|0)>>>0<=1){c[Za>>2]=(c[Za>>2]|0)+((c[Wa>>2]|0)==0&1);if(!(c[Za>>2]|0)){c[Za>>2]=c[(c[Pa>>2]|0)+44>>2];break;}hb=(c[Pa>>2]|0)+44|0;if((c[Za>>2]|0)==3)Qb=(c[hb>>2]|0)-1|0;else Qb=c[hb+(c[Za>>2]<<2)>>2]|0;c[$a>>2]=Qb;c[$a>>2]=(c[$a>>2]|0)+(((c[$a>>2]|0)!=0^1)&1);if((c[Za>>2]|0)!=1)c[(c[Pa>>2]|0)+44+8>>2]=c[(c[Pa>>2]|0)+44+4>>2];c[(c[Pa>>2]|0)+44+4>>2]=c[(c[Pa>>2]|0)+44>>2];hb=c[$a>>2]|0;c[Za>>2]=hb;c[(c[Pa>>2]|0)+44>>2]=hb;}else{c[(c[Pa>>2]|0)+44+8>>2]=c[(c[Pa>>2]|0)+44+4>>2];c[(c[Pa>>2]|0)+44+4>>2]=c[(c[Pa>>2]|0)+44>>2];c[(c[Pa>>2]|0)+44>>2]=c[Za>>2];}}while(0);c[Ra+8>>2]=c[Za>>2];hb=c[Xa>>2]|0;if((c[Ta>>2]|0)>>>0>0)Rb=Nr(c[Pa>>2]|0,c[Ta>>2]|0)|0;else Rb=0;c[Ra+4>>2]=hb+Rb;if(Dr()|0?((c[Ta>>2]|0)+(c[Sa>>2]|0)|0)>>>0>=20:0)Mr(c[Pa>>2]|0)|0;hb=(Fr()|0)!=0;if(hb&(c[Va>>2]|0)>>>0>=31)Mr(c[Pa>>2]|0)|0;hb=c[Wa>>2]|0;if((c[Sa>>2]|0)>>>0>0)Sb=Nr(c[Pa>>2]|0,c[Sa>>2]|0)|0;else Sb=0;c[Ra>>2]=hb+Sb;if(Dr()|0)Mr(c[Pa>>2]|0)|0;c[ab>>2]=(c[(c[Pa>>2]|0)+64>>2]|0)+(c[Ra>>2]|0);hb=c[Pa>>2]|0;if((c[Ra+8>>2]|0)>>>0>(c[ab>>2]|0)>>>0)Tb=c[hb+60>>2]|0;else Tb=c[hb+56>>2]|0;c[bb>>2]=Tb;c[Ra+12>>2]=(c[bb>>2]|0)+(c[ab>>2]|0)+(0-(c[Ra+8>>2]|0));c[(c[Pa>>2]|0)+64>>2]=(c[ab>>2]|0)+(c[Ra+4>>2]|0);hb=c[Pa>>2]|0;c[Ka>>2]=(c[Pa>>2]|0)+20;c[La>>2]=hb;hb=(c[(c[Ka>>2]|0)+4>>2]|0)+(c[c[Ka>>2]>>2]<<3)|0;c[Ma>>2]=c[hb>>2];c[Ma+4>>2]=c[hb+4>>2];c[Na>>2]=d[Ma+3>>0];c[Oa>>2]=Or(c[La>>2]|0,c[Na>>2]|0)|0;c[c[Ka>>2]>>2]=(e[Ma>>1]|0)+(c[Oa>>2]|0);hb=c[Pa>>2]|0;c[Fa>>2]=(c[Pa>>2]|0)+36;c[Ga>>2]=hb;hb=(c[(c[Fa>>2]|0)+4>>2]|0)+(c[c[Fa>>2]>>2]<<3)|0;c[Ha>>2]=c[hb>>2];c[Ha+4>>2]=c[hb+4>>2];c[Ia>>2]=d[Ha+3>>0];c[Ja>>2]=Or(c[Ga>>2]|0,c[Ia>>2]|0)|0;c[c[Fa>>2]>>2]=(e[Ha>>1]|0)+(c[Ja>>2]|0);if(Dr()|0)Mr(c[Pa>>2]|0)|0;hb=c[Pa>>2]|0;c[Aa>>2]=(c[Pa>>2]|0)+28;c[Ba>>2]=hb;hb=(c[(c[Aa>>2]|0)+4>>2]|0)+(c[c[Aa>>2]>>2]<<3)|0;c[Ca>>2]=c[hb>>2];c[Ca+4>>2]=c[hb+4>>2];c[Da>>2]=d[Ca+3>>0];c[Ea>>2]=Or(c[Ba>>2]|0,c[Da>>2]|0)|0;c[c[Aa>>2]>>2]=(e[Ca>>1]|0)+(c[Ea>>2]|0);c[Ab>>2]=c[Ra>>2];c[Ab+4>>2]=c[Ra+4>>2];c[Ab+8>>2]=c[Ra+8>>2];c[Ab+12>>2]=c[Ra+12>>2];c[fb>>2]=c[Ab>>2];c[fb+4>>2]=c[Ab+4>>2];c[fb+8>>2]=c[Ab+8>>2];c[fb+12>>2]=c[Ab+12>>2];c[xb>>2]=(c[xb>>2]|0)+1;}if((Pb|0)<(c[vb>>2]|0)){c[cb>>2]=-20;Nb=c[cb>>2]|0;l=m;return Nb|0;}while(1){if((Mr(wb)|0)>>>0>2)break;if((c[xb>>2]|0)>=(c[ib>>2]|0))break;hb=c[jb>>2]|0;c[la>>2]=wb;c[ma>>2]=hb;c[oa>>2]=d[(c[(c[la>>2]|0)+20+4>>2]|0)+(c[(c[la>>2]|0)+20>>2]<<3)+2>>0];c[pa>>2]=d[(c[(c[la>>2]|0)+36+4>>2]|0)+(c[(c[la>>2]|0)+36>>2]<<3)+2>>0];c[qa>>2]=d[(c[(c[la>>2]|0)+28+4>>2]|0)+(c[(c[la>>2]|0)+28>>2]<<3)+2>>0];c[ra>>2]=(c[oa>>2]|0)+(c[pa>>2]|0)+(c[qa>>2]|0);c[sa>>2]=c[(c[(c[la>>2]|0)+20+4>>2]|0)+(c[(c[la>>2]|0)+20>>2]<<3)+4>>2];c[ta>>2]=c[(c[(c[la>>2]|0)+36+4>>2]|0)+(c[(c[la>>2]|0)+36>>2]<<3)+4>>2];c[ua>>2]=c[(c[(c[la>>2]|0)+28+4>>2]|0)+(c[(c[la>>2]|0)+28>>2]<<3)+4>>2];do{if(c[qa>>2]|0){hb=(Dr()|0)!=0;if(!(hb&(c[ma>>2]|0)!=0)){hb=c[ua>>2]|0;c[va>>2]=hb+(Nr(c[la>>2]|0,c[qa>>2]|0)|0);if(!(Dr()|0))break;Mr(c[la>>2]|0)|0;break;}c[wa>>2]=(c[qa>>2]|0)-((c[qa>>2]|0)>>>0<24?c[qa>>2]|0:24);hb=c[ua>>2]|0;eb=Nr(c[la>>2]|0,(c[qa>>2]|0)-(c[wa>>2]|0)|0)|0;c[va>>2]=hb+(eb<<c[wa>>2]);eb=(Dr()|0)!=0;if(eb|(c[wa>>2]|0)!=0)Mr(c[la>>2]|0)|0;if(c[wa>>2]|0){eb=Nr(c[la>>2]|0,c[wa>>2]|0)|0;c[va>>2]=(c[va>>2]|0)+eb;}}else c[va>>2]=0;}while(0);do{if((c[qa>>2]|0)>>>0<=1){c[va>>2]=(c[va>>2]|0)+((c[sa>>2]|0)==0&1);if(!(c[va>>2]|0)){c[va>>2]=c[(c[la>>2]|0)+44>>2];break;}fb=(c[la>>2]|0)+44|0;if((c[va>>2]|0)==3)Ub=(c[fb>>2]|0)-1|0;else Ub=c[fb+(c[va>>2]<<2)>>2]|0;c[xa>>2]=Ub;c[xa>>2]=(c[xa>>2]|0)+(((c[xa>>2]|0)!=0^1)&1);if((c[va>>2]|0)!=1)c[(c[la>>2]|0)+44+8>>2]=c[(c[la>>2]|0)+44+4>>2];c[(c[la>>2]|0)+44+4>>2]=c[(c[la>>2]|0)+44>>2];fb=c[xa>>2]|0;c[va>>2]=fb;c[(c[la>>2]|0)+44>>2]=fb;}else{c[(c[la>>2]|0)+44+8>>2]=c[(c[la>>2]|0)+44+4>>2];c[(c[la>>2]|0)+44+4>>2]=c[(c[la>>2]|0)+44>>2];c[(c[la>>2]|0)+44>>2]=c[va>>2];}}while(0);c[na+8>>2]=c[va>>2];fb=c[ta>>2]|0;if((c[pa>>2]|0)>>>0>0)Vb=Nr(c[la>>2]|0,c[pa>>2]|0)|0;else Vb=0;c[na+4>>2]=fb+Vb;if(Dr()|0?((c[pa>>2]|0)+(c[oa>>2]|0)|0)>>>0>=20:0)Mr(c[la>>2]|0)|0;fb=(Fr()|0)!=0;if(fb&(c[ra>>2]|0)>>>0>=31)Mr(c[la>>2]|0)|0;fb=c[sa>>2]|0;if((c[oa>>2]|0)>>>0>0)Wb=Nr(c[la>>2]|0,c[oa>>2]|0)|0;else Wb=0;c[na>>2]=fb+Wb;if(Dr()|0)Mr(c[la>>2]|0)|0;c[ya>>2]=(c[(c[la>>2]|0)+64>>2]|0)+(c[na>>2]|0);fb=c[la>>2]|0;if((c[na+8>>2]|0)>>>0>(c[ya>>2]|0)>>>0)Xb=c[fb+60>>2]|0;else Xb=c[fb+56>>2]|0;c[za>>2]=Xb;c[na+12>>2]=(c[za>>2]|0)+(c[ya>>2]|0)+(0-(c[na+8>>2]|0));c[(c[la>>2]|0)+64>>2]=(c[ya>>2]|0)+(c[na+4>>2]|0);fb=c[la>>2]|0;c[ga>>2]=(c[la>>2]|0)+20;c[ha>>2]=fb;fb=(c[(c[ga>>2]|0)+4>>2]|0)+(c[c[ga>>2]>>2]<<3)|0;c[ia>>2]=c[fb>>2];c[ia+4>>2]=c[fb+4>>2];c[ja>>2]=d[ia+3>>0];c[ka>>2]=Or(c[ha>>2]|0,c[ja>>2]|0)|0;c[c[ga>>2]>>2]=(e[ia>>1]|0)+(c[ka>>2]|0);fb=c[la>>2]|0;c[ba>>2]=(c[la>>2]|0)+36;c[ca>>2]=fb;fb=(c[(c[ba>>2]|0)+4>>2]|0)+(c[c[ba>>2]>>2]<<3)|0;c[da>>2]=c[fb>>2];c[da+4>>2]=c[fb+4>>2];c[ea>>2]=d[da+3>>0];c[fa>>2]=Or(c[ca>>2]|0,c[ea>>2]|0)|0;c[c[ba>>2]>>2]=(e[da>>1]|0)+(c[fa>>2]|0);if(Dr()|0)Mr(c[la>>2]|0)|0;fb=c[la>>2]|0;c[Y>>2]=(c[la>>2]|0)+28;c[Z>>2]=fb;fb=(c[(c[Y>>2]|0)+4>>2]|0)+(c[c[Y>>2]>>2]<<3)|0;c[_>>2]=c[fb>>2];c[_+4>>2]=c[fb+4>>2];c[$>>2]=d[_+3>>0];c[aa>>2]=Or(c[Z>>2]|0,c[$>>2]|0)|0;c[c[Y>>2]>>2]=(e[_>>1]|0)+(c[aa>>2]|0);c[Bb>>2]=c[na>>2];c[Bb+4>>2]=c[na+4>>2];c[Bb+8>>2]=c[na+8>>2];c[Bb+12>>2]=c[na+12>>2];fb=c[ob>>2]|0;eb=c[nb>>2]|0;hb=c[qb>>2]|0;gb=c[rb>>2]|0;Lb=c[sb>>2]|0;Kb=c[tb>>2]|0;Yb=X;Zb=ub+(((c[xb>>2]|0)-4&3)<<4)|0;_b=Yb+16|0;do{a[Yb>>0]=a[Zb>>0]|0;Yb=Yb+1|0;Zb=Zb+1|0;}while((Yb|0)<(_b|0));c[H>>2]=fb;c[I>>2]=eb;c[J>>2]=pb;c[K>>2]=hb;c[L>>2]=gb;c[M>>2]=Lb;c[N>>2]=Kb;c[O>>2]=(c[H>>2]|0)+(c[X>>2]|0);c[P>>2]=(c[X>>2]|0)+(c[X+4>>2]|0);c[Q>>2]=(c[H>>2]|0)+(c[P>>2]|0);c[R>>2]=(c[I>>2]|0)+-8;c[S>>2]=(c[c[J>>2]>>2]|0)+(c[X>>2]|0);c[T>>2]=c[X+12>>2];b:do{if((c[Q>>2]|0)>>>0>(c[I>>2]|0)>>>0)c[G>>2]=-70;else{if((c[S>>2]|0)>>>0>(c[K>>2]|0)>>>0){c[G>>2]=-20;break;}Jb=c[H>>2]|0;if((c[O>>2]|0)>>>0>(c[R>>2]|0)>>>0){Ib=c[I>>2]|0;Hb=c[J>>2]|0;k=c[K>>2]|0;Gb=c[L>>2]|0;Mb=c[M>>2]|0;j=c[N>>2]|0;c[n>>2]=c[X>>2];c[n+4>>2]=c[X+4>>2];c[n+8>>2]=c[X+8>>2];c[n+12>>2]=c[X+12>>2];c[G>>2]=Pr(Jb,Ib,n,Hb,k,Gb,Mb,j)|0;break;}Qr(Jb,c[c[J>>2]>>2]|0);if((c[X>>2]|0)>>>0>8)Rr((c[H>>2]|0)+8|0,(c[c[J>>2]>>2]|0)+8|0,(c[X>>2]|0)-8|0);c[H>>2]=c[O>>2];c[c[J>>2]>>2]=c[S>>2];do{if((c[X+8>>2]|0)>>>0>((c[O>>2]|0)-(c[L>>2]|0)|0)>>>0){if((c[X+8>>2]|0)>>>0>((c[O>>2]|0)-(c[M>>2]|0)|0)>>>0){c[G>>2]=-20;break b;}if(((c[T>>2]|0)+(c[X+4>>2]|0)|0)>>>0<=(c[N>>2]|0)>>>0){nE(c[O>>2]|0,c[T>>2]|0,c[X+4>>2]|0)|0;c[G>>2]=c[P>>2];break b;}c[U>>2]=(c[N>>2]|0)-(c[T>>2]|0);nE(c[O>>2]|0,c[T>>2]|0,c[U>>2]|0)|0;c[H>>2]=(c[O>>2]|0)+(c[U>>2]|0);Jb=X+4|0;c[Jb>>2]=(c[Jb>>2]|0)-(c[U>>2]|0);c[T>>2]=c[L>>2];if((c[H>>2]|0)>>>0<=(c[R>>2]|0)>>>0?(c[X+4>>2]|0)>>>0>=3:0)break;c[V>>2]=0;while(1){if((c[V>>2]|0)>>>0>=(c[X+4>>2]|0)>>>0)break;a[(c[H>>2]|0)+(c[V>>2]|0)>>0]=a[(c[T>>2]|0)+(c[V>>2]|0)>>0]|0;c[V>>2]=(c[V>>2]|0)+1;}c[G>>2]=c[P>>2];break b;}}while(0);if((c[X+8>>2]|0)>>>0<8){c[W>>2]=c[6816+(c[X+8>>2]<<2)>>2];a[c[H>>2]>>0]=a[c[T>>2]>>0]|0;a[(c[H>>2]|0)+1>>0]=a[(c[T>>2]|0)+1>>0]|0;a[(c[H>>2]|0)+2>>0]=a[(c[T>>2]|0)+2>>0]|0;a[(c[H>>2]|0)+3>>0]=a[(c[T>>2]|0)+3>>0]|0;c[T>>2]=(c[T>>2]|0)+(c[6848+(c[X+8>>2]<<2)>>2]|0);Sr((c[H>>2]|0)+4|0,c[T>>2]|0);c[T>>2]=(c[T>>2]|0)+(0-(c[W>>2]|0));}else Qr(c[H>>2]|0,c[T>>2]|0);c[H>>2]=(c[H>>2]|0)+8;c[T>>2]=(c[T>>2]|0)+8;Jb=c[H>>2]|0;c:do{if((c[Q>>2]|0)>>>0>((c[I>>2]|0)+-13|0)>>>0){if(Jb>>>0<(c[R>>2]|0)>>>0){Rr(c[H>>2]|0,c[T>>2]|0,(c[R>>2]|0)-(c[H>>2]|0)|0);c[T>>2]=(c[T>>2]|0)+((c[R>>2]|0)-(c[H>>2]|0));c[H>>2]=c[R>>2];}while(1){if((c[H>>2]|0)>>>0>=(c[Q>>2]|0)>>>0)break c;j=c[T>>2]|0;c[T>>2]=j+1;Mb=a[j>>0]|0;j=c[H>>2]|0;c[H>>2]=j+1;a[j>>0]=Mb;}}else Rr(Jb,c[T>>2]|0,(c[X+4>>2]|0)-8|0);}while(0);c[G>>2]=c[P>>2];}}while(0);c[Cb>>2]=c[G>>2];if($q(c[Cb>>2]|0)|0){$b=118;break;}Kb=ub+((c[xb>>2]&3)<<4)|0;c[Kb>>2]=c[Bb>>2];c[Kb+4>>2]=c[Bb+4>>2];c[Kb+8>>2]=c[Bb+8>>2];c[Kb+12>>2]=c[Bb+12>>2];c[ob>>2]=(c[ob>>2]|0)+(c[Cb>>2]|0);c[xb>>2]=(c[xb>>2]|0)+1;}if(($b|0)==118){c[cb>>2]=c[Cb>>2];Nb=c[cb>>2]|0;l=m;return Nb|0;}if((c[xb>>2]|0)<(c[ib>>2]|0)){c[cb>>2]=-20;Nb=c[cb>>2]|0;l=m;return Nb|0;}c[xb>>2]=(c[xb>>2]|0)-(c[vb>>2]|0);while(1){if((c[xb>>2]|0)>=(c[ib>>2]|0))break;Kb=c[ob>>2]|0;Lb=c[nb>>2]|0;gb=c[qb>>2]|0;hb=c[rb>>2]|0;eb=c[sb>>2]|0;fb=c[tb>>2]|0;Yb=F;Zb=ub+((c[xb>>2]&3)<<4)|0;_b=Yb+16|0;do{a[Yb>>0]=a[Zb>>0]|0;Yb=Yb+1|0;Zb=Zb+1|0;}while((Yb|0)<(_b|0));c[p>>2]=Kb;c[q>>2]=Lb;c[r>>2]=pb;c[s>>2]=gb;c[t>>2]=hb;c[u>>2]=eb;c[v>>2]=fb;c[w>>2]=(c[p>>2]|0)+(c[F>>2]|0);c[x>>2]=(c[F>>2]|0)+(c[F+4>>2]|0);c[y>>2]=(c[p>>2]|0)+(c[x>>2]|0);c[z>>2]=(c[q>>2]|0)+-8;c[A>>2]=(c[c[r>>2]>>2]|0)+(c[F>>2]|0);c[B>>2]=c[F+12>>2];d:do{if((c[y>>2]|0)>>>0>(c[q>>2]|0)>>>0)c[o>>2]=-70;else{if((c[A>>2]|0)>>>0>(c[s>>2]|0)>>>0){c[o>>2]=-20;break;}Jb=c[p>>2]|0;if((c[w>>2]|0)>>>0>(c[z>>2]|0)>>>0){Mb=c[q>>2]|0;j=c[r>>2]|0;Gb=c[s>>2]|0;k=c[t>>2]|0;Hb=c[u>>2]|0;Ib=c[v>>2]|0;c[n>>2]=c[F>>2];c[n+4>>2]=c[F+4>>2];c[n+8>>2]=c[F+8>>2];c[n+12>>2]=c[F+12>>2];c[o>>2]=Pr(Jb,Mb,n,j,Gb,k,Hb,Ib)|0;break;}Qr(Jb,c[c[r>>2]>>2]|0);if((c[F>>2]|0)>>>0>8)Rr((c[p>>2]|0)+8|0,(c[c[r>>2]>>2]|0)+8|0,(c[F>>2]|0)-8|0);c[p>>2]=c[w>>2];c[c[r>>2]>>2]=c[A>>2];do{if((c[F+8>>2]|0)>>>0>((c[w>>2]|0)-(c[t>>2]|0)|0)>>>0){if((c[F+8>>2]|0)>>>0>((c[w>>2]|0)-(c[u>>2]|0)|0)>>>0){c[o>>2]=-20;break d;}if(((c[B>>2]|0)+(c[F+4>>2]|0)|0)>>>0<=(c[v>>2]|0)>>>0){nE(c[w>>2]|0,c[B>>2]|0,c[F+4>>2]|0)|0;c[o>>2]=c[x>>2];break d;}c[C>>2]=(c[v>>2]|0)-(c[B>>2]|0);nE(c[w>>2]|0,c[B>>2]|0,c[C>>2]|0)|0;c[p>>2]=(c[w>>2]|0)+(c[C>>2]|0);Jb=F+4|0;c[Jb>>2]=(c[Jb>>2]|0)-(c[C>>2]|0);c[B>>2]=c[t>>2];if((c[p>>2]|0)>>>0<=(c[z>>2]|0)>>>0?(c[F+4>>2]|0)>>>0>=3:0)break;c[D>>2]=0;while(1){if((c[D>>2]|0)>>>0>=(c[F+4>>2]|0)>>>0)break;a[(c[p>>2]|0)+(c[D>>2]|0)>>0]=a[(c[B>>2]|0)+(c[D>>2]|0)>>0]|0;c[D>>2]=(c[D>>2]|0)+1;}c[o>>2]=c[x>>2];break d;}}while(0);if((c[F+8>>2]|0)>>>0<8){c[E>>2]=c[6816+(c[F+8>>2]<<2)>>2];a[c[p>>2]>>0]=a[c[B>>2]>>0]|0;a[(c[p>>2]|0)+1>>0]=a[(c[B>>2]|0)+1>>0]|0;a[(c[p>>2]|0)+2>>0]=a[(c[B>>2]|0)+2>>0]|0;a[(c[p>>2]|0)+3>>0]=a[(c[B>>2]|0)+3>>0]|0;c[B>>2]=(c[B>>2]|0)+(c[6848+(c[F+8>>2]<<2)>>2]|0);Sr((c[p>>2]|0)+4|0,c[B>>2]|0);c[B>>2]=(c[B>>2]|0)+(0-(c[E>>2]|0));}else Qr(c[p>>2]|0,c[B>>2]|0);c[p>>2]=(c[p>>2]|0)+8;c[B>>2]=(c[B>>2]|0)+8;Jb=c[p>>2]|0;e:do{if((c[y>>2]|0)>>>0>((c[q>>2]|0)+-13|0)>>>0){if(Jb>>>0<(c[z>>2]|0)>>>0){Rr(c[p>>2]|0,c[B>>2]|0,(c[z>>2]|0)-(c[p>>2]|0)|0);c[B>>2]=(c[B>>2]|0)+((c[z>>2]|0)-(c[p>>2]|0));c[p>>2]=c[z>>2];}while(1){if((c[p>>2]|0)>>>0>=(c[y>>2]|0)>>>0)break e;Ib=c[B>>2]|0;c[B>>2]=Ib+1;Hb=a[Ib>>0]|0;Ib=c[p>>2]|0;c[p>>2]=Ib+1;a[Ib>>0]=Hb;}}else Rr(Jb,c[B>>2]|0,(c[F+4>>2]|0)-8|0);}while(0);c[o>>2]=c[x>>2];}}while(0);c[Db>>2]=c[o>>2];fb=($q(c[Db>>2]|0)|0)!=0;ac=c[Db>>2]|0;if(fb){$b=155;break;}c[ob>>2]=(c[ob>>2]|0)+ac;c[xb>>2]=(c[xb>>2]|0)+1;}if(($b|0)==155){c[cb>>2]=ac;Nb=c[cb>>2]|0;l=m;return Nb|0;}c[Eb>>2]=0;while(1){if((c[Eb>>2]|0)>>>0>=3)break a;c[(c[db>>2]|0)+16+28700+(c[Eb>>2]<<2)>>2]=c[wb+44+(c[Eb>>2]<<2)>>2];c[Eb>>2]=(c[Eb>>2]|0)+1;}}}while(0);c[Fb>>2]=(c[qb>>2]|0)-(c[pb>>2]|0);if((c[Fb>>2]|0)>>>0>((c[nb>>2]|0)-(c[ob>>2]|0)|0)>>>0){c[cb>>2]=-70;Nb=c[cb>>2]|0;l=m;return Nb|0;}else{mE(c[ob>>2]|0,c[pb>>2]|0,c[Fb>>2]|0)|0;c[ob>>2]=(c[ob>>2]|0)+(c[Fb>>2]|0);c[cb>>2]=(c[ob>>2]|0)-(c[mb>>2]|0);Nb=c[cb>>2]|0;l=m;return Nb|0;}return 0;}function Yr(b,f,g,h,i,j,k){b=b|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0;m=l;l=l+784|0;n=m+760|0;o=m+756|0;p=m+752|0;q=m+748|0;r=m+744|0;s=m+740|0;t=m+736|0;u=m+732|0;v=m+728|0;w=m+724|0;x=m+720|0;y=m+716|0;z=m+712|0;A=m+708|0;B=m+704|0;C=m+700|0;D=m+696|0;E=m+692|0;F=m+80|0;G=m+688|0;H=m+684|0;I=m+680|0;J=m+676|0;K=m+672|0;L=m+668|0;M=m+664|0;N=m+660|0;O=m+656|0;P=m+652|0;Q=m+648|0;R=m+644|0;S=m+640|0;T=m+636|0;U=m+632|0;V=m+628|0;W=m+624|0;X=m+64|0;Y=m+620|0;Z=m+616|0;_=m+608|0;$=m+604|0;aa=m+600|0;ba=m+596|0;ca=m+592|0;da=m+584|0;ea=m+580|0;fa=m+576|0;ga=m+572|0;ha=m+568|0;ia=m+560|0;ja=m+556|0;ka=m+552|0;la=m+548|0;ma=m+544|0;na=m+528|0;oa=m+524|0;pa=m+520|0;qa=m+516|0;ra=m+512|0;sa=m+508|0;ta=m+504|0;ua=m+500|0;va=m+496|0;wa=m+492|0;xa=m+488|0;ya=m+484|0;za=m+480|0;Aa=m+476|0;Ba=m+472|0;Ca=m+464|0;Da=m+460|0;Ea=m+456|0;Fa=m+452|0;Ga=m+448|0;Ha=m+440|0;Ia=m+436|0;Ja=m+432|0;Ka=m+428|0;La=m+424|0;Ma=m+416|0;Na=m+412|0;Oa=m+408|0;Pa=m+404|0;Qa=m+400|0;Ra=m+384|0;Sa=m+376|0;Ta=m+372|0;Ua=m+368|0;Va=m+364|0;Wa=m+360|0;Xa=m+356|0;Ya=m+352|0;Za=m+348|0;_a=m+344|0;$a=m+340|0;ab=m+336|0;bb=m+332|0;cb=m+328|0;db=m+324|0;eb=m+320|0;fb=m+316|0;gb=m+312|0;hb=m+308|0;ib=m+304|0;jb=m+300|0;kb=m+296|0;lb=m+292|0;mb=m+288|0;nb=m+284|0;ob=m+280|0;pb=m+276|0;qb=m+272|0;rb=m+268|0;sb=m+264|0;tb=m+260|0;ub=m;vb=m+256|0;wb=m+188|0;xb=m+184|0;yb=m+180|0;zb=m+176|0;Ab=m+160|0;Bb=m+144|0;Cb=m+136|0;Db=m+132|0;Eb=m+128|0;Fb=m+124|0;Gb=m+120|0;Hb=m+116|0;Ib=m+112|0;Jb=m+108|0;Kb=m+104|0;Lb=m+100|0;Mb=m+96|0;c[Gb>>2]=b;c[Hb>>2]=f;c[Ib>>2]=g;c[Jb>>2]=h;c[Kb>>2]=i;c[Lb>>2]=j;c[Mb>>2]=k;k=c[Hb>>2]|0;Hb=c[Ib>>2]|0;Ib=c[Jb>>2]|0;Jb=c[Kb>>2]|0;Kb=c[Lb>>2]|0;Lb=c[Mb>>2]|0;c[db>>2]=c[Gb>>2];c[eb>>2]=k;c[fb>>2]=Hb;c[gb>>2]=Ib;c[hb>>2]=Jb;c[ib>>2]=Kb;c[jb>>2]=Lb;c[kb>>2]=c[gb>>2];c[lb>>2]=(c[kb>>2]|0)+(c[hb>>2]|0);c[mb>>2]=c[eb>>2];c[nb>>2]=(c[mb>>2]|0)+(c[fb>>2]|0);c[ob>>2]=c[mb>>2];c[pb>>2]=c[(c[db>>2]|0)+28916>>2];c[qb>>2]=(c[pb>>2]|0)+(c[(c[db>>2]|0)+28932>>2]|0);c[rb>>2]=c[(c[db>>2]|0)+28732>>2];c[sb>>2]=c[(c[db>>2]|0)+28736>>2];c[tb>>2]=c[(c[db>>2]|0)+28740>>2];a:do{if(c[ib>>2]|0){c[vb>>2]=(c[ib>>2]|0)<4?c[ib>>2]|0:4;c[(c[db>>2]|0)+28812>>2]=1;c[yb>>2]=0;while(1){if((c[yb>>2]|0)>>>0>=3)break;c[wb+44+(c[yb>>2]<<2)>>2]=c[(c[db>>2]|0)+16+28700+(c[yb>>2]<<2)>>2];c[yb>>2]=(c[yb>>2]|0)+1;}c[wb+56>>2]=c[rb>>2];c[wb+64>>2]=(c[ob>>2]|0)-(c[rb>>2]|0);c[wb+60>>2]=c[tb>>2];c[zb>>2]=Kr(wb,c[kb>>2]|0,(c[lb>>2]|0)-(c[kb>>2]|0)|0)|0;if($q(c[zb>>2]|0)|0){c[cb>>2]=-20;Nb=c[cb>>2]|0;l=m;return Nb|0;}Lr(wb+20|0,wb,c[c[db>>2]>>2]|0);Lr(wb+28|0,wb,c[(c[db>>2]|0)+8>>2]|0);Lr(wb+36|0,wb,c[(c[db>>2]|0)+4>>2]|0);c[xb>>2]=0;while(1){if((Mr(wb)|0)>>>0<=2)Ob=(c[xb>>2]|0)<(c[vb>>2]|0);else Ob=0;Pb=c[xb>>2]|0;if(!Ob)break;fb=ub+(Pb<<4)|0;eb=c[jb>>2]|0;c[Pa>>2]=wb;c[Qa>>2]=eb;c[Sa>>2]=d[(c[(c[Pa>>2]|0)+20+4>>2]|0)+(c[(c[Pa>>2]|0)+20>>2]<<3)+2>>0];c[Ta>>2]=d[(c[(c[Pa>>2]|0)+36+4>>2]|0)+(c[(c[Pa>>2]|0)+36>>2]<<3)+2>>0];c[Ua>>2]=d[(c[(c[Pa>>2]|0)+28+4>>2]|0)+(c[(c[Pa>>2]|0)+28>>2]<<3)+2>>0];c[Va>>2]=(c[Sa>>2]|0)+(c[Ta>>2]|0)+(c[Ua>>2]|0);c[Wa>>2]=c[(c[(c[Pa>>2]|0)+20+4>>2]|0)+(c[(c[Pa>>2]|0)+20>>2]<<3)+4>>2];c[Xa>>2]=c[(c[(c[Pa>>2]|0)+36+4>>2]|0)+(c[(c[Pa>>2]|0)+36>>2]<<3)+4>>2];c[Ya>>2]=c[(c[(c[Pa>>2]|0)+28+4>>2]|0)+(c[(c[Pa>>2]|0)+28>>2]<<3)+4>>2];do{if(c[Ua>>2]|0){eb=(Dr()|0)!=0;if(!(eb&(c[Qa>>2]|0)!=0)){eb=c[Ya>>2]|0;c[Za>>2]=eb+(Nr(c[Pa>>2]|0,c[Ua>>2]|0)|0);if(!(Dr()|0))break;Mr(c[Pa>>2]|0)|0;break;}c[_a>>2]=(c[Ua>>2]|0)-((c[Ua>>2]|0)>>>0<24?c[Ua>>2]|0:24);eb=c[Ya>>2]|0;hb=Nr(c[Pa>>2]|0,(c[Ua>>2]|0)-(c[_a>>2]|0)|0)|0;c[Za>>2]=eb+(hb<<c[_a>>2]);hb=(Dr()|0)!=0;if(hb|(c[_a>>2]|0)!=0)Mr(c[Pa>>2]|0)|0;if(c[_a>>2]|0){hb=Nr(c[Pa>>2]|0,c[_a>>2]|0)|0;c[Za>>2]=(c[Za>>2]|0)+hb;}}else c[Za>>2]=0;}while(0);do{if((c[Ua>>2]|0)>>>0<=1){c[Za>>2]=(c[Za>>2]|0)+((c[Wa>>2]|0)==0&1);if(!(c[Za>>2]|0)){c[Za>>2]=c[(c[Pa>>2]|0)+44>>2];break;}hb=(c[Pa>>2]|0)+44|0;if((c[Za>>2]|0)==3)Qb=(c[hb>>2]|0)-1|0;else Qb=c[hb+(c[Za>>2]<<2)>>2]|0;c[$a>>2]=Qb;c[$a>>2]=(c[$a>>2]|0)+(((c[$a>>2]|0)!=0^1)&1);if((c[Za>>2]|0)!=1)c[(c[Pa>>2]|0)+44+8>>2]=c[(c[Pa>>2]|0)+44+4>>2];c[(c[Pa>>2]|0)+44+4>>2]=c[(c[Pa>>2]|0)+44>>2];hb=c[$a>>2]|0;c[Za>>2]=hb;c[(c[Pa>>2]|0)+44>>2]=hb;}else{c[(c[Pa>>2]|0)+44+8>>2]=c[(c[Pa>>2]|0)+44+4>>2];c[(c[Pa>>2]|0)+44+4>>2]=c[(c[Pa>>2]|0)+44>>2];c[(c[Pa>>2]|0)+44>>2]=c[Za>>2];}}while(0);c[Ra+8>>2]=c[Za>>2];hb=c[Xa>>2]|0;if((c[Ta>>2]|0)>>>0>0)Rb=Nr(c[Pa>>2]|0,c[Ta>>2]|0)|0;else Rb=0;c[Ra+4>>2]=hb+Rb;if(Dr()|0?((c[Ta>>2]|0)+(c[Sa>>2]|0)|0)>>>0>=20:0)Mr(c[Pa>>2]|0)|0;hb=(Fr()|0)!=0;if(hb&(c[Va>>2]|0)>>>0>=31)Mr(c[Pa>>2]|0)|0;hb=c[Wa>>2]|0;if((c[Sa>>2]|0)>>>0>0)Sb=Nr(c[Pa>>2]|0,c[Sa>>2]|0)|0;else Sb=0;c[Ra>>2]=hb+Sb;if(Dr()|0)Mr(c[Pa>>2]|0)|0;c[ab>>2]=(c[(c[Pa>>2]|0)+64>>2]|0)+(c[Ra>>2]|0);hb=c[Pa>>2]|0;if((c[Ra+8>>2]|0)>>>0>(c[ab>>2]|0)>>>0)Tb=c[hb+60>>2]|0;else Tb=c[hb+56>>2]|0;c[bb>>2]=Tb;c[Ra+12>>2]=(c[bb>>2]|0)+(c[ab>>2]|0)+(0-(c[Ra+8>>2]|0));c[(c[Pa>>2]|0)+64>>2]=(c[ab>>2]|0)+(c[Ra+4>>2]|0);hb=c[Pa>>2]|0;c[Ka>>2]=(c[Pa>>2]|0)+20;c[La>>2]=hb;hb=(c[(c[Ka>>2]|0)+4>>2]|0)+(c[c[Ka>>2]>>2]<<3)|0;c[Ma>>2]=c[hb>>2];c[Ma+4>>2]=c[hb+4>>2];c[Na>>2]=d[Ma+3>>0];c[Oa>>2]=Or(c[La>>2]|0,c[Na>>2]|0)|0;c[c[Ka>>2]>>2]=(e[Ma>>1]|0)+(c[Oa>>2]|0);hb=c[Pa>>2]|0;c[Fa>>2]=(c[Pa>>2]|0)+36;c[Ga>>2]=hb;hb=(c[(c[Fa>>2]|0)+4>>2]|0)+(c[c[Fa>>2]>>2]<<3)|0;c[Ha>>2]=c[hb>>2];c[Ha+4>>2]=c[hb+4>>2];c[Ia>>2]=d[Ha+3>>0];c[Ja>>2]=Or(c[Ga>>2]|0,c[Ia>>2]|0)|0;c[c[Fa>>2]>>2]=(e[Ha>>1]|0)+(c[Ja>>2]|0);if(Dr()|0)Mr(c[Pa>>2]|0)|0;hb=c[Pa>>2]|0;c[Aa>>2]=(c[Pa>>2]|0)+28;c[Ba>>2]=hb;hb=(c[(c[Aa>>2]|0)+4>>2]|0)+(c[c[Aa>>2]>>2]<<3)|0;c[Ca>>2]=c[hb>>2];c[Ca+4>>2]=c[hb+4>>2];c[Da>>2]=d[Ca+3>>0];c[Ea>>2]=Or(c[Ba>>2]|0,c[Da>>2]|0)|0;c[c[Aa>>2]>>2]=(e[Ca>>1]|0)+(c[Ea>>2]|0);c[Ab>>2]=c[Ra>>2];c[Ab+4>>2]=c[Ra+4>>2];c[Ab+8>>2]=c[Ra+8>>2];c[Ab+12>>2]=c[Ra+12>>2];c[fb>>2]=c[Ab>>2];c[fb+4>>2]=c[Ab+4>>2];c[fb+8>>2]=c[Ab+8>>2];c[fb+12>>2]=c[Ab+12>>2];c[xb>>2]=(c[xb>>2]|0)+1;}if((Pb|0)<(c[vb>>2]|0)){c[cb>>2]=-20;Nb=c[cb>>2]|0;l=m;return Nb|0;}while(1){if((Mr(wb)|0)>>>0>2)break;if((c[xb>>2]|0)>=(c[ib>>2]|0))break;hb=c[jb>>2]|0;c[la>>2]=wb;c[ma>>2]=hb;c[oa>>2]=d[(c[(c[la>>2]|0)+20+4>>2]|0)+(c[(c[la>>2]|0)+20>>2]<<3)+2>>0];c[pa>>2]=d[(c[(c[la>>2]|0)+36+4>>2]|0)+(c[(c[la>>2]|0)+36>>2]<<3)+2>>0];c[qa>>2]=d[(c[(c[la>>2]|0)+28+4>>2]|0)+(c[(c[la>>2]|0)+28>>2]<<3)+2>>0];c[ra>>2]=(c[oa>>2]|0)+(c[pa>>2]|0)+(c[qa>>2]|0);c[sa>>2]=c[(c[(c[la>>2]|0)+20+4>>2]|0)+(c[(c[la>>2]|0)+20>>2]<<3)+4>>2];c[ta>>2]=c[(c[(c[la>>2]|0)+36+4>>2]|0)+(c[(c[la>>2]|0)+36>>2]<<3)+4>>2];c[ua>>2]=c[(c[(c[la>>2]|0)+28+4>>2]|0)+(c[(c[la>>2]|0)+28>>2]<<3)+4>>2];do{if(c[qa>>2]|0){hb=(Dr()|0)!=0;if(!(hb&(c[ma>>2]|0)!=0)){hb=c[ua>>2]|0;c[va>>2]=hb+(Nr(c[la>>2]|0,c[qa>>2]|0)|0);if(!(Dr()|0))break;Mr(c[la>>2]|0)|0;break;}c[wa>>2]=(c[qa>>2]|0)-((c[qa>>2]|0)>>>0<24?c[qa>>2]|0:24);hb=c[ua>>2]|0;eb=Nr(c[la>>2]|0,(c[qa>>2]|0)-(c[wa>>2]|0)|0)|0;c[va>>2]=hb+(eb<<c[wa>>2]);eb=(Dr()|0)!=0;if(eb|(c[wa>>2]|0)!=0)Mr(c[la>>2]|0)|0;if(c[wa>>2]|0){eb=Nr(c[la>>2]|0,c[wa>>2]|0)|0;c[va>>2]=(c[va>>2]|0)+eb;}}else c[va>>2]=0;}while(0);do{if((c[qa>>2]|0)>>>0<=1){c[va>>2]=(c[va>>2]|0)+((c[sa>>2]|0)==0&1);if(!(c[va>>2]|0)){c[va>>2]=c[(c[la>>2]|0)+44>>2];break;}fb=(c[la>>2]|0)+44|0;if((c[va>>2]|0)==3)Ub=(c[fb>>2]|0)-1|0;else Ub=c[fb+(c[va>>2]<<2)>>2]|0;c[xa>>2]=Ub;c[xa>>2]=(c[xa>>2]|0)+(((c[xa>>2]|0)!=0^1)&1);if((c[va>>2]|0)!=1)c[(c[la>>2]|0)+44+8>>2]=c[(c[la>>2]|0)+44+4>>2];c[(c[la>>2]|0)+44+4>>2]=c[(c[la>>2]|0)+44>>2];fb=c[xa>>2]|0;c[va>>2]=fb;c[(c[la>>2]|0)+44>>2]=fb;}else{c[(c[la>>2]|0)+44+8>>2]=c[(c[la>>2]|0)+44+4>>2];c[(c[la>>2]|0)+44+4>>2]=c[(c[la>>2]|0)+44>>2];c[(c[la>>2]|0)+44>>2]=c[va>>2];}}while(0);c[na+8>>2]=c[va>>2];fb=c[ta>>2]|0;if((c[pa>>2]|0)>>>0>0)Vb=Nr(c[la>>2]|0,c[pa>>2]|0)|0;else Vb=0;c[na+4>>2]=fb+Vb;if(Dr()|0?((c[pa>>2]|0)+(c[oa>>2]|0)|0)>>>0>=20:0)Mr(c[la>>2]|0)|0;fb=(Fr()|0)!=0;if(fb&(c[ra>>2]|0)>>>0>=31)Mr(c[la>>2]|0)|0;fb=c[sa>>2]|0;if((c[oa>>2]|0)>>>0>0)Wb=Nr(c[la>>2]|0,c[oa>>2]|0)|0;else Wb=0;c[na>>2]=fb+Wb;if(Dr()|0)Mr(c[la>>2]|0)|0;c[ya>>2]=(c[(c[la>>2]|0)+64>>2]|0)+(c[na>>2]|0);fb=c[la>>2]|0;if((c[na+8>>2]|0)>>>0>(c[ya>>2]|0)>>>0)Xb=c[fb+60>>2]|0;else Xb=c[fb+56>>2]|0;c[za>>2]=Xb;c[na+12>>2]=(c[za>>2]|0)+(c[ya>>2]|0)+(0-(c[na+8>>2]|0));c[(c[la>>2]|0)+64>>2]=(c[ya>>2]|0)+(c[na+4>>2]|0);fb=c[la>>2]|0;c[ga>>2]=(c[la>>2]|0)+20;c[ha>>2]=fb;fb=(c[(c[ga>>2]|0)+4>>2]|0)+(c[c[ga>>2]>>2]<<3)|0;c[ia>>2]=c[fb>>2];c[ia+4>>2]=c[fb+4>>2];c[ja>>2]=d[ia+3>>0];c[ka>>2]=Or(c[ha>>2]|0,c[ja>>2]|0)|0;c[c[ga>>2]>>2]=(e[ia>>1]|0)+(c[ka>>2]|0);fb=c[la>>2]|0;c[ba>>2]=(c[la>>2]|0)+36;c[ca>>2]=fb;fb=(c[(c[ba>>2]|0)+4>>2]|0)+(c[c[ba>>2]>>2]<<3)|0;c[da>>2]=c[fb>>2];c[da+4>>2]=c[fb+4>>2];c[ea>>2]=d[da+3>>0];c[fa>>2]=Or(c[ca>>2]|0,c[ea>>2]|0)|0;c[c[ba>>2]>>2]=(e[da>>1]|0)+(c[fa>>2]|0);if(Dr()|0)Mr(c[la>>2]|0)|0;fb=c[la>>2]|0;c[Y>>2]=(c[la>>2]|0)+28;c[Z>>2]=fb;fb=(c[(c[Y>>2]|0)+4>>2]|0)+(c[c[Y>>2]>>2]<<3)|0;c[_>>2]=c[fb>>2];c[_+4>>2]=c[fb+4>>2];c[$>>2]=d[_+3>>0];c[aa>>2]=Or(c[Z>>2]|0,c[$>>2]|0)|0;c[c[Y>>2]>>2]=(e[_>>1]|0)+(c[aa>>2]|0);c[Bb>>2]=c[na>>2];c[Bb+4>>2]=c[na+4>>2];c[Bb+8>>2]=c[na+8>>2];c[Bb+12>>2]=c[na+12>>2];fb=c[ob>>2]|0;eb=c[nb>>2]|0;hb=c[qb>>2]|0;gb=c[rb>>2]|0;Lb=c[sb>>2]|0;Kb=c[tb>>2]|0;Yb=X;Zb=ub+(((c[xb>>2]|0)-4&3)<<4)|0;_b=Yb+16|0;do{a[Yb>>0]=a[Zb>>0]|0;Yb=Yb+1|0;Zb=Zb+1|0;}while((Yb|0)<(_b|0));c[H>>2]=fb;c[I>>2]=eb;c[J>>2]=pb;c[K>>2]=hb;c[L>>2]=gb;c[M>>2]=Lb;c[N>>2]=Kb;c[O>>2]=(c[H>>2]|0)+(c[X>>2]|0);c[P>>2]=(c[X>>2]|0)+(c[X+4>>2]|0);c[Q>>2]=(c[H>>2]|0)+(c[P>>2]|0);c[R>>2]=(c[I>>2]|0)+-8;c[S>>2]=(c[c[J>>2]>>2]|0)+(c[X>>2]|0);c[T>>2]=c[X+12>>2];b:do{if((c[Q>>2]|0)>>>0>(c[I>>2]|0)>>>0)c[G>>2]=-70;else{if((c[S>>2]|0)>>>0>(c[K>>2]|0)>>>0){c[G>>2]=-20;break;}Jb=c[H>>2]|0;if((c[O>>2]|0)>>>0>(c[R>>2]|0)>>>0){Ib=c[I>>2]|0;Hb=c[J>>2]|0;k=c[K>>2]|0;Gb=c[L>>2]|0;Mb=c[M>>2]|0;j=c[N>>2]|0;c[n>>2]=c[X>>2];c[n+4>>2]=c[X+4>>2];c[n+8>>2]=c[X+8>>2];c[n+12>>2]=c[X+12>>2];c[G>>2]=Pr(Jb,Ib,n,Hb,k,Gb,Mb,j)|0;break;}Qr(Jb,c[c[J>>2]>>2]|0);if((c[X>>2]|0)>>>0>8)Rr((c[H>>2]|0)+8|0,(c[c[J>>2]>>2]|0)+8|0,(c[X>>2]|0)-8|0);c[H>>2]=c[O>>2];c[c[J>>2]>>2]=c[S>>2];do{if((c[X+8>>2]|0)>>>0>((c[O>>2]|0)-(c[L>>2]|0)|0)>>>0){if((c[X+8>>2]|0)>>>0>((c[O>>2]|0)-(c[M>>2]|0)|0)>>>0){c[G>>2]=-20;break b;}if(((c[T>>2]|0)+(c[X+4>>2]|0)|0)>>>0<=(c[N>>2]|0)>>>0){nE(c[O>>2]|0,c[T>>2]|0,c[X+4>>2]|0)|0;c[G>>2]=c[P>>2];break b;}c[U>>2]=(c[N>>2]|0)-(c[T>>2]|0);nE(c[O>>2]|0,c[T>>2]|0,c[U>>2]|0)|0;c[H>>2]=(c[O>>2]|0)+(c[U>>2]|0);Jb=X+4|0;c[Jb>>2]=(c[Jb>>2]|0)-(c[U>>2]|0);c[T>>2]=c[L>>2];if((c[H>>2]|0)>>>0<=(c[R>>2]|0)>>>0?(c[X+4>>2]|0)>>>0>=3:0)break;c[V>>2]=0;while(1){if((c[V>>2]|0)>>>0>=(c[X+4>>2]|0)>>>0)break;a[(c[H>>2]|0)+(c[V>>2]|0)>>0]=a[(c[T>>2]|0)+(c[V>>2]|0)>>0]|0;c[V>>2]=(c[V>>2]|0)+1;}c[G>>2]=c[P>>2];break b;}}while(0);if((c[X+8>>2]|0)>>>0<8){c[W>>2]=c[6816+(c[X+8>>2]<<2)>>2];a[c[H>>2]>>0]=a[c[T>>2]>>0]|0;a[(c[H>>2]|0)+1>>0]=a[(c[T>>2]|0)+1>>0]|0;a[(c[H>>2]|0)+2>>0]=a[(c[T>>2]|0)+2>>0]|0;a[(c[H>>2]|0)+3>>0]=a[(c[T>>2]|0)+3>>0]|0;c[T>>2]=(c[T>>2]|0)+(c[6848+(c[X+8>>2]<<2)>>2]|0);Sr((c[H>>2]|0)+4|0,c[T>>2]|0);c[T>>2]=(c[T>>2]|0)+(0-(c[W>>2]|0));}else Qr(c[H>>2]|0,c[T>>2]|0);c[H>>2]=(c[H>>2]|0)+8;c[T>>2]=(c[T>>2]|0)+8;Jb=c[H>>2]|0;c:do{if((c[Q>>2]|0)>>>0>((c[I>>2]|0)+-13|0)>>>0){if(Jb>>>0<(c[R>>2]|0)>>>0){Rr(c[H>>2]|0,c[T>>2]|0,(c[R>>2]|0)-(c[H>>2]|0)|0);c[T>>2]=(c[T>>2]|0)+((c[R>>2]|0)-(c[H>>2]|0));c[H>>2]=c[R>>2];}while(1){if((c[H>>2]|0)>>>0>=(c[Q>>2]|0)>>>0)break c;j=c[T>>2]|0;c[T>>2]=j+1;Mb=a[j>>0]|0;j=c[H>>2]|0;c[H>>2]=j+1;a[j>>0]=Mb;}}else Rr(Jb,c[T>>2]|0,(c[X+4>>2]|0)-8|0);}while(0);c[G>>2]=c[P>>2];}}while(0);c[Cb>>2]=c[G>>2];if($q(c[Cb>>2]|0)|0){$b=118;break;}Kb=ub+((c[xb>>2]&3)<<4)|0;c[Kb>>2]=c[Bb>>2];c[Kb+4>>2]=c[Bb+4>>2];c[Kb+8>>2]=c[Bb+8>>2];c[Kb+12>>2]=c[Bb+12>>2];c[ob>>2]=(c[ob>>2]|0)+(c[Cb>>2]|0);c[xb>>2]=(c[xb>>2]|0)+1;}if(($b|0)==118){c[cb>>2]=c[Cb>>2];Nb=c[cb>>2]|0;l=m;return Nb|0;}if((c[xb>>2]|0)<(c[ib>>2]|0)){c[cb>>2]=-20;Nb=c[cb>>2]|0;l=m;return Nb|0;}c[xb>>2]=(c[xb>>2]|0)-(c[vb>>2]|0);while(1){if((c[xb>>2]|0)>=(c[ib>>2]|0))break;Kb=c[ob>>2]|0;Lb=c[nb>>2]|0;gb=c[qb>>2]|0;hb=c[rb>>2]|0;eb=c[sb>>2]|0;fb=c[tb>>2]|0;Yb=F;Zb=ub+((c[xb>>2]&3)<<4)|0;_b=Yb+16|0;do{a[Yb>>0]=a[Zb>>0]|0;Yb=Yb+1|0;Zb=Zb+1|0;}while((Yb|0)<(_b|0));c[p>>2]=Kb;c[q>>2]=Lb;c[r>>2]=pb;c[s>>2]=gb;c[t>>2]=hb;c[u>>2]=eb;c[v>>2]=fb;c[w>>2]=(c[p>>2]|0)+(c[F>>2]|0);c[x>>2]=(c[F>>2]|0)+(c[F+4>>2]|0);c[y>>2]=(c[p>>2]|0)+(c[x>>2]|0);c[z>>2]=(c[q>>2]|0)+-8;c[A>>2]=(c[c[r>>2]>>2]|0)+(c[F>>2]|0);c[B>>2]=c[F+12>>2];d:do{if((c[y>>2]|0)>>>0>(c[q>>2]|0)>>>0)c[o>>2]=-70;else{if((c[A>>2]|0)>>>0>(c[s>>2]|0)>>>0){c[o>>2]=-20;break;}Jb=c[p>>2]|0;if((c[w>>2]|0)>>>0>(c[z>>2]|0)>>>0){Mb=c[q>>2]|0;j=c[r>>2]|0;Gb=c[s>>2]|0;k=c[t>>2]|0;Hb=c[u>>2]|0;Ib=c[v>>2]|0;c[n>>2]=c[F>>2];c[n+4>>2]=c[F+4>>2];c[n+8>>2]=c[F+8>>2];c[n+12>>2]=c[F+12>>2];c[o>>2]=Pr(Jb,Mb,n,j,Gb,k,Hb,Ib)|0;break;}Qr(Jb,c[c[r>>2]>>2]|0);if((c[F>>2]|0)>>>0>8)Rr((c[p>>2]|0)+8|0,(c[c[r>>2]>>2]|0)+8|0,(c[F>>2]|0)-8|0);c[p>>2]=c[w>>2];c[c[r>>2]>>2]=c[A>>2];do{if((c[F+8>>2]|0)>>>0>((c[w>>2]|0)-(c[t>>2]|0)|0)>>>0){if((c[F+8>>2]|0)>>>0>((c[w>>2]|0)-(c[u>>2]|0)|0)>>>0){c[o>>2]=-20;break d;}if(((c[B>>2]|0)+(c[F+4>>2]|0)|0)>>>0<=(c[v>>2]|0)>>>0){nE(c[w>>2]|0,c[B>>2]|0,c[F+4>>2]|0)|0;c[o>>2]=c[x>>2];break d;}c[C>>2]=(c[v>>2]|0)-(c[B>>2]|0);nE(c[w>>2]|0,c[B>>2]|0,c[C>>2]|0)|0;c[p>>2]=(c[w>>2]|0)+(c[C>>2]|0);Jb=F+4|0;c[Jb>>2]=(c[Jb>>2]|0)-(c[C>>2]|0);c[B>>2]=c[t>>2];if((c[p>>2]|0)>>>0<=(c[z>>2]|0)>>>0?(c[F+4>>2]|0)>>>0>=3:0)break;c[D>>2]=0;while(1){if((c[D>>2]|0)>>>0>=(c[F+4>>2]|0)>>>0)break;a[(c[p>>2]|0)+(c[D>>2]|0)>>0]=a[(c[B>>2]|0)+(c[D>>2]|0)>>0]|0;c[D>>2]=(c[D>>2]|0)+1;}c[o>>2]=c[x>>2];break d;}}while(0);if((c[F+8>>2]|0)>>>0<8){c[E>>2]=c[6816+(c[F+8>>2]<<2)>>2];a[c[p>>2]>>0]=a[c[B>>2]>>0]|0;a[(c[p>>2]|0)+1>>0]=a[(c[B>>2]|0)+1>>0]|0;a[(c[p>>2]|0)+2>>0]=a[(c[B>>2]|0)+2>>0]|0;a[(c[p>>2]|0)+3>>0]=a[(c[B>>2]|0)+3>>0]|0;c[B>>2]=(c[B>>2]|0)+(c[6848+(c[F+8>>2]<<2)>>2]|0);Sr((c[p>>2]|0)+4|0,c[B>>2]|0);c[B>>2]=(c[B>>2]|0)+(0-(c[E>>2]|0));}else Qr(c[p>>2]|0,c[B>>2]|0);c[p>>2]=(c[p>>2]|0)+8;c[B>>2]=(c[B>>2]|0)+8;Jb=c[p>>2]|0;e:do{if((c[y>>2]|0)>>>0>((c[q>>2]|0)+-13|0)>>>0){if(Jb>>>0<(c[z>>2]|0)>>>0){Rr(c[p>>2]|0,c[B>>2]|0,(c[z>>2]|0)-(c[p>>2]|0)|0);c[B>>2]=(c[B>>2]|0)+((c[z>>2]|0)-(c[p>>2]|0));c[p>>2]=c[z>>2];}while(1){if((c[p>>2]|0)>>>0>=(c[y>>2]|0)>>>0)break e;Ib=c[B>>2]|0;c[B>>2]=Ib+1;Hb=a[Ib>>0]|0;Ib=c[p>>2]|0;c[p>>2]=Ib+1;a[Ib>>0]=Hb;}}else Rr(Jb,c[B>>2]|0,(c[F+4>>2]|0)-8|0);}while(0);c[o>>2]=c[x>>2];}}while(0);c[Db>>2]=c[o>>2];fb=($q(c[Db>>2]|0)|0)!=0;ac=c[Db>>2]|0;if(fb){$b=155;break;}c[ob>>2]=(c[ob>>2]|0)+ac;c[xb>>2]=(c[xb>>2]|0)+1;}if(($b|0)==155){c[cb>>2]=ac;Nb=c[cb>>2]|0;l=m;return Nb|0;}c[Eb>>2]=0;while(1){if((c[Eb>>2]|0)>>>0>=3)break a;c[(c[db>>2]|0)+16+28700+(c[Eb>>2]<<2)>>2]=c[wb+44+(c[Eb>>2]<<2)>>2];c[Eb>>2]=(c[Eb>>2]|0)+1;}}}while(0);c[Fb>>2]=(c[qb>>2]|0)-(c[pb>>2]|0);if((c[Fb>>2]|0)>>>0>((c[nb>>2]|0)-(c[ob>>2]|0)|0)>>>0){c[cb>>2]=-70;Nb=c[cb>>2]|0;l=m;return Nb|0;}else{mE(c[ob>>2]|0,c[pb>>2]|0,c[Fb>>2]|0)|0;c[ob>>2]=(c[ob>>2]|0)+(c[Fb>>2]|0);c[cb>>2]=(c[ob>>2]|0)-(c[mb>>2]|0);Nb=c[cb>>2]|0;l=m;return Nb|0;}return 0;}function Zr(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;i=l;l=l+32|0;j=i+24|0;k=i+20|0;m=i+16|0;n=i+12|0;o=i+8|0;p=i+4|0;q=i;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;h=_r(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0,0)|0;l=i;return h|0;}function _r(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;j=l;l=l+80|0;k=j+64|0;m=j+60|0;n=j+56|0;o=j+52|0;p=j+48|0;q=j+44|0;r=j+40|0;s=j+36|0;t=j+32|0;u=j+28|0;v=j+24|0;w=j+20|0;x=j+16|0;y=j+12|0;z=j+8|0;A=j+4|0;B=j;c[m>>2]=a;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=i;c[u>>2]=c[n>>2];if(c[t>>2]|0){c[r>>2]=$r(c[t>>2]|0)|0;c[s>>2]=as(c[t>>2]|0)|0;}while(1){if((c[q>>2]|0)>>>0<5){C=27;break;}i=(iq(c[p>>2]|0,c[q>>2]|0)|0)!=0;h=c[p>>2]|0;if(i){c[x>>2]=ar(h,c[q>>2]|0)|0;if($q(c[x>>2]|0)|0){C=7;break;}if(c[(c[m>>2]|0)+28940>>2]|0){C=9;break;}c[w>>2]=bs(c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,c[x>>2]|0,c[r>>2]|0,c[s>>2]|0)|0;c[n>>2]=(c[n>>2]|0)+(c[w>>2]|0);c[o>>2]=(c[o>>2]|0)-(c[w>>2]|0);c[p>>2]=(c[p>>2]|0)+(c[x>>2]|0);c[q>>2]=(c[q>>2]|0)-(c[x>>2]|0);continue;}c[v>>2]=hq(h)|0;if((c[v>>2]|0)!=-47205080){if((c[v>>2]&-16|0)!=407710288){C=18;break;}if((c[q>>2]|0)>>>0<8){C=14;break;}c[y>>2]=(hq((c[p>>2]|0)+4|0)|0)+8;if((c[q>>2]|0)>>>0<(c[y>>2]|0)>>>0){C=16;break;}c[p>>2]=(c[p>>2]|0)+(c[y>>2]|0);c[q>>2]=(c[q>>2]|0)-(c[y>>2]|0);continue;}h=c[m>>2]|0;if(c[t>>2]|0){c[z>>2]=cs(h,c[t>>2]|0)|0;if($q(c[z>>2]|0)|0){C=21;break;}}else{c[A>>2]=ds(h,c[r>>2]|0,c[s>>2]|0)|0;if($q(c[A>>2]|0)|0){C=23;break;}}Br(c[m>>2]|0,c[n>>2]|0);c[B>>2]=es(c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,p,q)|0;if($q(c[B>>2]|0)|0){C=25;break;}c[n>>2]=(c[n>>2]|0)+(c[B>>2]|0);c[o>>2]=(c[o>>2]|0)-(c[B>>2]|0);}if((C|0)==7){c[k>>2]=c[x>>2];D=c[k>>2]|0;l=j;return D|0;}else if((C|0)==9){c[k>>2]=-64;D=c[k>>2]|0;l=j;return D|0;}else if((C|0)==14){c[k>>2]=-72;D=c[k>>2]|0;l=j;return D|0;}else if((C|0)==16){c[k>>2]=-72;D=c[k>>2]|0;l=j;return D|0;}else if((C|0)==18){c[k>>2]=-10;D=c[k>>2]|0;l=j;return D|0;}else if((C|0)==21){c[k>>2]=c[z>>2];D=c[k>>2]|0;l=j;return D|0;}else if((C|0)==23){c[k>>2]=c[A>>2];D=c[k>>2]|0;l=j;return D|0;}else if((C|0)==25){c[k>>2]=c[B>>2];D=c[k>>2]|0;l=j;return D|0;}else if((C|0)==27)if(c[q>>2]|0){c[k>>2]=-72;D=c[k>>2]|0;l=j;return D|0;}else{c[k>>2]=(c[n>>2]|0)-(c[u>>2]|0);D=c[k>>2]|0;l=j;return D|0;}return 0;}function $r(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[(c[d>>2]|0)+4>>2]|0;}function as(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[(c[d>>2]|0)+8>>2]|0;}function bs(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;h=l;l=l+64|0;i=h+52|0;j=h+48|0;k=h+44|0;m=h+40|0;n=h+36|0;o=h+32|0;p=h+28|0;q=h+24|0;r=h+20|0;s=h+16|0;t=h+12|0;u=h+8|0;v=h+4|0;w=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=iq(c[m>>2]|0,c[n>>2]|0)|0;switch(c[q>>2]|0){case 4:{c[i>>2]=ms(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;x=c[i>>2]|0;l=h;return x|0;}case 5:{c[s>>2]=ns()|0;if(!(c[s>>2]|0)){c[i>>2]=-64;x=c[i>>2]|0;l=h;return x|0;}else{c[r>>2]=os(c[s>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0)|0;eq(c[s>>2]|0)|0;c[i>>2]=c[r>>2];x=c[i>>2]|0;l=h;return x|0;}break;}case 6:{c[u>>2]=ps()|0;if(!(c[u>>2]|0)){c[i>>2]=-64;x=c[i>>2]|0;l=h;return x|0;}else{c[t>>2]=qs(c[u>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0)|0;dq(c[u>>2]|0)|0;c[i>>2]=c[t>>2];x=c[i>>2]|0;l=h;return x|0;}break;}case 7:{c[w>>2]=rs()|0;if(!(c[w>>2]|0)){c[i>>2]=-64;x=c[i>>2]|0;l=h;return x|0;}else{c[v>>2]=ss(c[w>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0)|0;cq(c[w>>2]|0)|0;c[i>>2]=c[v>>2];x=c[i>>2]|0;l=h;return x|0;}break;}default:{c[i>>2]=-10;x=c[i>>2]|0;l=h;return x|0;}}return 0;}function cs(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=l;l=l+16|0;e=d+12|0;f=d+8|0;g=d+4|0;h=d;c[f>>2]=a;c[g>>2]=b;c[h>>2]=is(c[f>>2]|0)|0;if($q(c[h>>2]|0)|0){c[e>>2]=c[h>>2];i=c[e>>2]|0;l=d;return i|0;}do{if(c[g>>2]|0){c[(c[f>>2]|0)+28908>>2]=c[(c[g>>2]|0)+28724>>2];c[(c[f>>2]|0)+28732>>2]=c[(c[g>>2]|0)+4>>2];c[(c[f>>2]|0)+28736>>2]=c[(c[g>>2]|0)+4>>2];c[(c[f>>2]|0)+28740>>2]=(c[(c[g>>2]|0)+4>>2]|0)+(c[(c[g>>2]|0)+8>>2]|0);c[(c[f>>2]|0)+28728>>2]=c[(c[f>>2]|0)+28740>>2];h=(c[f>>2]|0)+28808|0;if(c[(c[g>>2]|0)+28728>>2]|0){c[h>>2]=1;c[(c[f>>2]|0)+28812>>2]=1;c[c[f>>2]>>2]=(c[g>>2]|0)+12;c[(c[f>>2]|0)+4>>2]=(c[g>>2]|0)+12+6160;c[(c[f>>2]|0)+8>>2]=(c[g>>2]|0)+12+4104;c[(c[f>>2]|0)+12>>2]=(c[g>>2]|0)+12+10264;c[(c[f>>2]|0)+16+28700>>2]=c[(c[g>>2]|0)+12+28700>>2];c[(c[f>>2]|0)+16+28700+4>>2]=c[(c[g>>2]|0)+12+28700+4>>2];c[(c[f>>2]|0)+16+28700+8>>2]=c[(c[g>>2]|0)+12+28700+8>>2];break;}else{c[h>>2]=0;c[(c[f>>2]|0)+28812>>2]=0;break;}}}while(0);c[e>>2]=0;i=c[e>>2]|0;l=d;return i|0;}function ds(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=is(c[g>>2]|0)|0;if($q(c[j>>2]|0)|0){c[f>>2]=c[j>>2];m=c[f>>2]|0;l=e;return m|0;}if((c[h>>2]|0)!=0&(c[i>>2]|0)!=0?(c[k>>2]=js(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0,$q(c[k>>2]|0)|0):0){c[f>>2]=-30;m=c[f>>2]|0;l=e;return m|0;}c[f>>2]=0;m=c[f>>2]|0;l=e;return m|0;}function es(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;h=l;l=l+80|0;i=h+76|0;j=h+72|0;k=h+68|0;m=h+64|0;n=h+60|0;o=h+56|0;p=h+52|0;q=h+48|0;r=h+44|0;s=h+40|0;t=h+36|0;u=h+32|0;v=h+28|0;w=h+24|0;x=h+12|0;y=h+8|0;z=h+4|0;A=h;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=c[c[n>>2]>>2];c[q>>2]=c[k>>2];c[r>>2]=(c[q>>2]|0)+(c[m>>2]|0);c[s>>2]=c[q>>2];c[t>>2]=c[c[o>>2]>>2];if((c[t>>2]|0)>>>0<9){c[i>>2]=-72;B=c[i>>2]|0;l=h;return B|0;}c[u>>2]=mq(c[p>>2]|0,5)|0;if($q(c[u>>2]|0)|0){c[i>>2]=c[u>>2];B=c[i>>2]|0;l=h;return B|0;}if((c[t>>2]|0)>>>0<((c[u>>2]|0)+3|0)>>>0){c[i>>2]=-72;B=c[i>>2]|0;l=h;return B|0;}c[v>>2]=fs(c[j>>2]|0,c[p>>2]|0,c[u>>2]|0)|0;if($q(c[v>>2]|0)|0){c[i>>2]=c[v>>2];B=c[i>>2]|0;l=h;return B|0;}c[p>>2]=(c[p>>2]|0)+(c[u>>2]|0);c[t>>2]=(c[t>>2]|0)-(c[u>>2]|0);a:while(1){c[y>>2]=br(c[p>>2]|0,c[t>>2]|0,x)|0;if($q(c[y>>2]|0)|0){C=11;break;}c[p>>2]=(c[p>>2]|0)+3;c[t>>2]=(c[t>>2]|0)-3;if((c[y>>2]|0)>>>0>(c[t>>2]|0)>>>0){C=13;break;}switch(c[x>>2]|0){case 2:{c[w>>2]=Cr(c[j>>2]|0,c[s>>2]|0,(c[r>>2]|0)-(c[s>>2]|0)|0,c[p>>2]|0,c[y>>2]|0,1)|0;break;}case 0:{c[w>>2]=gs(c[s>>2]|0,(c[r>>2]|0)-(c[s>>2]|0)|0,c[p>>2]|0,c[y>>2]|0)|0;break;}case 1:{c[w>>2]=hs(c[s>>2]|0,(c[r>>2]|0)-(c[s>>2]|0)|0,a[c[p>>2]>>0]|0,c[x+8>>2]|0)|0;break;}default:{C=18;break a;}}if($q(c[w>>2]|0)|0){C=20;break;}if(c[(c[j>>2]|0)+28752+32>>2]|0)Nh((c[j>>2]|0)+28816|0,c[s>>2]|0,c[w>>2]|0)|0;c[s>>2]=(c[s>>2]|0)+(c[w>>2]|0);c[p>>2]=(c[p>>2]|0)+(c[y>>2]|0);c[t>>2]=(c[t>>2]|0)-(c[y>>2]|0);if(c[x+4>>2]|0){C=25;break;}}if((C|0)==11){c[i>>2]=c[y>>2];B=c[i>>2]|0;l=h;return B|0;}else if((C|0)==13){c[i>>2]=-72;B=c[i>>2]|0;l=h;return B|0;}else if((C|0)==18){c[i>>2]=-20;B=c[i>>2]|0;l=h;return B|0;}else if((C|0)==20){c[i>>2]=c[w>>2];B=c[i>>2]|0;l=h;return B|0;}else if((C|0)==25){C=(c[j>>2]|0)+28752|0;if(((c[C>>2]|0)!=-1?1:(c[C+4>>2]|0)!=-1)?(C=(c[s>>2]|0)-(c[q>>2]|0)|0,w=(c[j>>2]|0)+28752|0,(C|0)!=(c[w>>2]|0)?1:(((C|0)<0)<<31>>31|0)!=(c[w+4>>2]|0)):0){c[i>>2]=-20;B=c[i>>2]|0;l=h;return B|0;}do{if(c[(c[j>>2]|0)+28752+32>>2]|0){w=Oh((c[j>>2]|0)+28816|0)|0;c[z>>2]=w;if((c[t>>2]|0)>>>0<4){c[i>>2]=-22;B=c[i>>2]|0;l=h;return B|0;}c[A>>2]=hq(c[p>>2]|0)|0;if((c[A>>2]|0)==(c[z>>2]|0)){c[p>>2]=(c[p>>2]|0)+4;c[t>>2]=(c[t>>2]|0)-4;break;}c[i>>2]=-22;B=c[i>>2]|0;l=h;return B|0;}}while(0);c[c[n>>2]>>2]=c[p>>2];c[c[o>>2]>>2]=c[t>>2];c[i>>2]=(c[s>>2]|0)-(c[q>>2]|0);B=c[i>>2]|0;l=h;return B|0;}return 0;}function fs(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=qq((c[g>>2]|0)+28752|0,c[h>>2]|0,c[i>>2]|0,c[(c[g>>2]|0)+28912>>2]|0)|0;i=($q(c[j>>2]|0)|0)!=0;h=c[j>>2]|0;if(i){c[f>>2]=h;k=c[f>>2]|0;l=e;return k|0;}if(h>>>0>0){c[f>>2]=-72;k=c[f>>2]|0;l=e;return k|0;}if(c[(c[g>>2]|0)+28752+28>>2]|0?(c[(c[g>>2]|0)+28908>>2]|0)!=(c[(c[g>>2]|0)+28752+28>>2]|0):0){c[f>>2]=-32;k=c[f>>2]|0;l=e;return k|0;}if(c[(c[g>>2]|0)+28752+32>>2]|0)Lh((c[g>>2]|0)+28816|0,0,0)|0;c[f>>2]=0;k=c[f>>2]|0;l=e;return k|0;}function gs(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;if((c[k>>2]|0)>>>0>(c[i>>2]|0)>>>0){c[g>>2]=-70;m=c[g>>2]|0;l=f;return m|0;}else{mE(c[h>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;c[g>>2]=c[k>>2];m=c[g>>2]|0;l=f;return m|0;}return 0;}function hs(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+12|0;j=h+8|0;k=h+4|0;m=h+16|0;n=h;c[j>>2]=b;c[k>>2]=e;a[m>>0]=f;c[n>>2]=g;if((c[n>>2]|0)>>>0>(c[k>>2]|0)>>>0){c[i>>2]=-70;o=c[i>>2]|0;l=h;return o|0;}else{oE(c[j>>2]|0,(d[m>>0]|0)&255|0,c[n>>2]|0)|0;c[i>>2]=c[n>>2];o=c[i>>2]|0;l=h;return o|0;}return 0;}function is(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=oq(c[(c[d>>2]|0)+28912>>2]|0)|0;c[(c[d>>2]|0)+28744>>2]=a;c[(c[d>>2]|0)+28804>>2]=0;a=(c[d>>2]|0)+28792|0;c[a>>2]=0;c[a+4>>2]=0;c[(c[d>>2]|0)+28728>>2]=0;c[(c[d>>2]|0)+28732>>2]=0;c[(c[d>>2]|0)+28736>>2]=0;c[(c[d>>2]|0)+28740>>2]=0;c[(c[d>>2]|0)+16+10264>>2]=201326604;c[(c[d>>2]|0)+28812>>2]=0;c[(c[d>>2]|0)+28808>>2]=0;c[(c[d>>2]|0)+28908>>2]=0;a=(c[d>>2]|0)+16+28700|0;c[a>>2]=c[2985];c[a+4>>2]=c[2986];c[a+8>>2]=c[2987];c[c[d>>2]>>2]=(c[d>>2]|0)+16;c[(c[d>>2]|0)+4>>2]=(c[d>>2]|0)+16+6160;c[(c[d>>2]|0)+8>>2]=(c[d>>2]|0)+16+4104;c[(c[d>>2]|0)+12>>2]=(c[d>>2]|0)+16+10264;l=b;return 0;}function js(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;if((c[i>>2]|0)>>>0<8){c[f>>2]=ks(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0;m=c[f>>2]|0;l=e;return m|0;}c[j>>2]=hq(c[h>>2]|0)|0;if((c[j>>2]|0)!=-332356553){c[f>>2]=ks(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0;m=c[f>>2]|0;l=e;return m|0;}j=hq((c[h>>2]|0)+4|0)|0;c[(c[g>>2]|0)+28908>>2]=j;c[k>>2]=ls((c[g>>2]|0)+16|0,c[h>>2]|0,c[i>>2]|0)|0;if($q(c[k>>2]|0)|0){c[f>>2]=-30;m=c[f>>2]|0;l=e;return m|0;}else{c[h>>2]=(c[h>>2]|0)+(c[k>>2]|0);c[i>>2]=(c[i>>2]|0)-(c[k>>2]|0);c[(c[g>>2]|0)+28812>>2]=1;c[(c[g>>2]|0)+28808>>2]=1;c[f>>2]=ks(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0;m=c[f>>2]|0;l=e;return m|0;}return 0;}function ks(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[(c[f>>2]|0)+28740>>2]=c[(c[f>>2]|0)+28728>>2];c[(c[f>>2]|0)+28736>>2]=(c[g>>2]|0)+(0-((c[(c[f>>2]|0)+28728>>2]|0)-(c[(c[f>>2]|0)+28732>>2]|0)));c[(c[f>>2]|0)+28732>>2]=c[g>>2];c[(c[f>>2]|0)+28728>>2]=(c[g>>2]|0)+(c[h>>2]|0);l=e;return 0;}function ls(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;e=l;l=l+336|0;f=e+328|0;g=e+324|0;h=e+320|0;i=e+316|0;j=e+312|0;k=e+308|0;m=e+304|0;n=e+192|0;o=e+300|0;p=e+296|0;q=e+292|0;r=e+80|0;s=e+288|0;t=e+284|0;u=e+280|0;v=e;w=e+276|0;x=e+272|0;y=e+268|0;z=e+264|0;A=e+260|0;B=e+256|0;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=c[h>>2];c[k>>2]=(c[j>>2]|0)+(c[i>>2]|0);if((c[i>>2]|0)>>>0<=8){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}c[j>>2]=(c[j>>2]|0)+8;c[m>>2]=Bp((c[g>>2]|0)+10264|0,c[j>>2]|0,(c[k>>2]|0)-(c[j>>2]|0)|0,(c[g>>2]|0)+26652|0,2048)|0;if($q(c[m>>2]|0)|0){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}c[j>>2]=(c[j>>2]|0)+(c[m>>2]|0);c[o>>2]=31;c[q>>2]=ah(n,o,p,c[j>>2]|0,(c[k>>2]|0)-(c[j>>2]|0)|0)|0;if($q(c[q>>2]|0)|0){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}if((c[o>>2]|0)>>>0>31){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}if((c[p>>2]|0)>>>0>8){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}zr((c[g>>2]|0)+4104|0,n,c[o>>2]|0,4032,4160,c[p>>2]|0);c[j>>2]=(c[j>>2]|0)+(c[q>>2]|0);c[s>>2]=52;c[u>>2]=ah(r,s,t,c[j>>2]|0,(c[k>>2]|0)-(c[j>>2]|0)|0)|0;if($q(c[u>>2]|0)|0){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}if((c[s>>2]|0)>>>0>52){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}if((c[t>>2]|0)>>>0>9){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}zr((c[g>>2]|0)+6160|0,r,c[s>>2]|0,5216,5840,c[t>>2]|0);c[j>>2]=(c[j>>2]|0)+(c[u>>2]|0);c[w>>2]=35;c[y>>2]=ah(v,w,x,c[j>>2]|0,(c[k>>2]|0)-(c[j>>2]|0)|0)|0;if($q(c[y>>2]|0)|0){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}if((c[w>>2]|0)>>>0>35){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}if((c[x>>2]|0)>>>0>9){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}zr(c[g>>2]|0,v,c[w>>2]|0,6416,5696,c[x>>2]|0);c[j>>2]=(c[j>>2]|0)+(c[y>>2]|0);if(((c[j>>2]|0)+12|0)>>>0>(c[k>>2]|0)>>>0){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}c[A>>2]=(c[k>>2]|0)-((c[j>>2]|0)+12);c[z>>2]=0;while(1){D=c[j>>2]|0;if((c[z>>2]|0)>=3){E=31;break;}c[B>>2]=hq(D)|0;c[j>>2]=(c[j>>2]|0)+4;if(!(c[B>>2]|0)){E=29;break;}if((c[B>>2]|0)>>>0>=(c[A>>2]|0)>>>0){E=29;break;}c[(c[g>>2]|0)+28700+(c[z>>2]<<2)>>2]=c[B>>2];c[z>>2]=(c[z>>2]|0)+1;}if((E|0)==29){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}else if((E|0)==31){c[f>>2]=D-(c[h>>2]|0);C=c[f>>2]|0;l=e;return C|0;}return 0;}function ms(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+32|0;g=f+24|0;h=f+20|0;i=f+16|0;j=f+12|0;k=f+8|0;m=f+4|0;n=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[n>>2]=hw()|0;if(!(c[n>>2]|0)){c[g>>2]=-64;o=c[g>>2]|0;l=f;return o|0;}else{c[m>>2]=iw(c[n>>2]|0,c[h>>2]|0,c[i>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;gq(c[n>>2]|0)|0;c[g>>2]=c[m>>2];o=c[g>>2]|0;l=f;return o|0;}return 0;}function ns(){var a=0,b=0,d=0,e=0;a=l;l=l+16|0;b=a+4|0;d=a;c[d>>2]=Cy(157816)|0;if(!(c[d>>2]|0)){c[b>>2]=0;e=c[b>>2]|0;l=a;return e|0;}else{dw(c[d>>2]|0)|0;c[b>>2]=c[d>>2];e=c[b>>2]|0;l=a;return e|0;}return 0;}function os(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;i=l;l=l+32|0;j=i+24|0;k=i+20|0;m=i+16|0;n=i+12|0;o=i+8|0;p=i+4|0;q=i;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;Su(c[j>>2]|0,c[p>>2]|0,c[q>>2]|0)|0;Tu(c[j>>2]|0,c[k>>2]|0);q=Uu(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;l=i;return q|0;}function ps(){var a=0,b=0,d=0,e=0;a=l;l=l+16|0;b=a+4|0;d=a;c[d>>2]=Cy(152680)|0;if(!(c[d>>2]|0)){c[b>>2]=0;e=c[b>>2]|0;l=a;return e|0;}else{Ou(c[d>>2]|0)|0;c[b>>2]=c[d>>2];e=c[b>>2]|0;l=a;return e|0;}return 0;}function qs(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;i=l;l=l+32|0;j=i+24|0;k=i+20|0;m=i+16|0;n=i+12|0;o=i+8|0;p=i+4|0;q=i;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;Jt(c[j>>2]|0,c[p>>2]|0,c[q>>2]|0)|0;Kt(c[j>>2]|0,c[k>>2]|0);q=Lt(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;l=i;return q|0;}function rs(){var a=0,b=0,d=0;a=l;l=l+16|0;b=a;c[b>>2]=c[2988];c[b+4>>2]=c[2989];c[b+8>>2]=c[2990];d=Gt(b)|0;l=a;return d|0;}function ss(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;i=l;l=l+32|0;j=i+24|0;k=i+20|0;m=i+16|0;n=i+12|0;o=i+8|0;p=i+4|0;q=i;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;ts(c[j>>2]|0,c[p>>2]|0,c[q>>2]|0)|0;us(c[j>>2]|0,c[k>>2]|0);q=vs(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;l=i;return q|0;}function ts(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=Ct(c[g>>2]|0)|0;if(hr(c[j>>2]|0)|0){c[f>>2]=c[j>>2];m=c[f>>2]|0;l=e;return m|0;}if((c[h>>2]|0)!=0&(c[i>>2]|0)!=0?(c[k>>2]=Dt(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0,hr(c[k>>2]|0)|0):0){c[f>>2]=-30;m=c[f>>2]|0;l=e;return m|0;}c[f>>2]=0;m=c[f>>2]|0;l=e;return m|0;}function us(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;if((c[f>>2]|0)==(c[(c[e>>2]|0)+21520>>2]|0)){l=d;return;}c[(c[e>>2]|0)+21532>>2]=c[(c[e>>2]|0)+21520>>2];c[(c[e>>2]|0)+21528>>2]=(c[f>>2]|0)+(0-((c[(c[e>>2]|0)+21520>>2]|0)-(c[(c[e>>2]|0)+21524>>2]|0)));c[(c[e>>2]|0)+21524>>2]=c[f>>2];c[(c[e>>2]|0)+21520>>2]=c[f>>2];l=d;return;}function vs(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;h=l;l=l+80|0;i=h+68|0;j=h+64|0;k=h+60|0;m=h+56|0;n=h+52|0;o=h+48|0;p=h+44|0;q=h+40|0;r=h+36|0;s=h+32|0;t=h+28|0;u=h+24|0;v=h+20|0;w=h+16|0;x=h+8|0;y=h;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=c[n>>2];c[q>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[r>>2]=c[k>>2];c[s>>2]=(c[r>>2]|0)+(c[m>>2]|0);c[t>>2]=c[r>>2];c[u>>2]=c[o>>2];if((c[o>>2]|0)>>>0<8){c[i>>2]=-72;z=c[i>>2]|0;l=h;return z|0;}c[v>>2]=Cq(c[n>>2]|0,5)|0;if(hr(c[v>>2]|0)|0){c[i>>2]=c[v>>2];z=c[i>>2]|0;l=h;return z|0;}if((c[o>>2]|0)>>>0<((c[v>>2]|0)+3|0)>>>0){c[i>>2]=-72;z=c[i>>2]|0;l=h;return z|0;}if(ws(c[j>>2]|0,c[n>>2]|0,c[v>>2]|0)|0){c[i>>2]=-20;z=c[i>>2]|0;l=h;return z|0;}c[p>>2]=(c[p>>2]|0)+(c[v>>2]|0);c[u>>2]=(c[u>>2]|0)-(c[v>>2]|0);a:while(1){c[y>>2]=ir(c[p>>2]|0,(c[q>>2]|0)-(c[p>>2]|0)|0,x)|0;if(hr(c[y>>2]|0)|0){A=11;break;}c[p>>2]=(c[p>>2]|0)+3;c[u>>2]=(c[u>>2]|0)-3;if((c[y>>2]|0)>>>0>(c[u>>2]|0)>>>0){A=13;break;}switch(c[x>>2]|0){case 0:{c[w>>2]=xs(c[j>>2]|0,c[t>>2]|0,(c[s>>2]|0)-(c[t>>2]|0)|0,c[p>>2]|0,c[y>>2]|0)|0;break;}case 1:{c[w>>2]=ys(c[t>>2]|0,(c[s>>2]|0)-(c[t>>2]|0)|0,c[p>>2]|0,c[y>>2]|0)|0;break;}case 2:{c[w>>2]=zs(c[t>>2]|0,(c[s>>2]|0)-(c[t>>2]|0)|0,a[c[p>>2]>>0]|0,c[x+4>>2]|0)|0;break;}case 3:{if(c[u>>2]|0){A=19;break a;}c[w>>2]=0;break;}default:{A=21;break a;}}if((c[x>>2]|0)==3){A=28;break;}if(hr(c[w>>2]|0)|0){A=24;break;}if(c[(c[j>>2]|0)+21552+16>>2]|0)Nh((c[j>>2]|0)+21592|0,c[t>>2]|0,c[w>>2]|0)|0;c[t>>2]=(c[t>>2]|0)+(c[w>>2]|0);c[p>>2]=(c[p>>2]|0)+(c[y>>2]|0);c[u>>2]=(c[u>>2]|0)-(c[y>>2]|0);}if((A|0)==11){c[i>>2]=c[y>>2];z=c[i>>2]|0;l=h;return z|0;}else if((A|0)==13){c[i>>2]=-72;z=c[i>>2]|0;l=h;return z|0;}else if((A|0)==19){c[i>>2]=-72;z=c[i>>2]|0;l=h;return z|0;}else if((A|0)==21){c[i>>2]=-1;z=c[i>>2]|0;l=h;return z|0;}else if((A|0)==24){c[i>>2]=c[w>>2];z=c[i>>2]|0;l=h;return z|0;}else if((A|0)==28){c[i>>2]=(c[t>>2]|0)-(c[r>>2]|0);z=c[i>>2]|0;l=h;return z|0;}return 0;}function ws(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=Aq((c[g>>2]|0)+21552|0,c[h>>2]|0,c[i>>2]|0)|0;if(c[(c[g>>2]|0)+21552+12>>2]|0?(c[(c[g>>2]|0)+21684>>2]|0)!=(c[(c[g>>2]|0)+21552+12>>2]|0):0){c[f>>2]=-32;k=c[f>>2]|0;l=e;return k|0;}if(c[(c[g>>2]|0)+21552+16>>2]|0)Lh((c[g>>2]|0)+21592|0,0,0)|0;c[f>>2]=c[j>>2];k=c[f>>2]|0;l=e;return k|0;}function xs(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;g=l;l=l+32|0;h=g+28|0;i=g+24|0;j=g+20|0;k=g+16|0;m=g+12|0;n=g+8|0;o=g+4|0;p=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=c[m>>2];if((c[n>>2]|0)>>>0>=131072){c[h>>2]=-72;q=c[h>>2]|0;l=g;return q|0;}c[p>>2]=As(c[i>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;m=(hr(c[p>>2]|0)|0)!=0;f=c[p>>2]|0;if(m){c[h>>2]=f;q=c[h>>2]|0;l=g;return q|0;}else{c[o>>2]=(c[o>>2]|0)+f;c[n>>2]=(c[n>>2]|0)-(c[p>>2]|0);c[h>>2]=Bs(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[o>>2]|0,c[n>>2]|0)|0;q=c[h>>2]|0;l=g;return q|0;}return 0;}function ys(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;if((c[k>>2]|0)>>>0>(c[i>>2]|0)>>>0){c[g>>2]=-70;m=c[g>>2]|0;l=f;return m|0;}else{mE(c[h>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;c[g>>2]=c[k>>2];m=c[g>>2]|0;l=f;return m|0;}return 0;}function zs(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+12|0;j=h+8|0;k=h+4|0;m=h+16|0;n=h;c[j>>2]=b;c[k>>2]=e;a[m>>0]=f;c[n>>2]=g;if((c[n>>2]|0)>>>0>(c[k>>2]|0)>>>0){c[i>>2]=-70;o=c[i>>2]|0;l=h;return o|0;}else{oE(c[j>>2]|0,(d[m>>0]|0)&255|0,c[n>>2]|0)|0;c[i>>2]=c[n>>2];o=c[i>>2]|0;l=h;return o|0;}return 0;}function As(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;g=l;l=l+80|0;h=g+64|0;i=g+60|0;j=g+56|0;k=g+52|0;m=g+48|0;n=g+44|0;o=g+40|0;p=g+36|0;q=g+32|0;r=g+28|0;s=g+24|0;t=g+20|0;u=g+16|0;v=g+12|0;w=g+8|0;x=g+4|0;y=g;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=c[j>>2];if((c[k>>2]|0)>>>0<3){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}switch((d[c[m>>2]>>0]|0)>>6|0){case 0:{c[p>>2]=0;c[q>>2]=(d[c[m>>2]>>0]|0)>>4&3;if((c[k>>2]|0)>>>0<5){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}switch(c[q>>2]|0){case 3:{c[q>>2]=5;c[n>>2]=(((d[c[m>>2]>>0]|0)&15)<<14)+((d[(c[m>>2]|0)+1>>0]|0)<<6)+((d[(c[m>>2]|0)+2>>0]|0)>>2);c[o>>2]=(((d[(c[m>>2]|0)+2>>0]|0)&3)<<16)+((d[(c[m>>2]|0)+3>>0]|0)<<8)+(d[(c[m>>2]|0)+4>>0]|0);break;}case 2:{c[q>>2]=4;c[n>>2]=(((d[c[m>>2]>>0]|0)&15)<<10)+((d[(c[m>>2]|0)+1>>0]|0)<<2)+((d[(c[m>>2]|0)+2>>0]|0)>>6);c[o>>2]=(((d[(c[m>>2]|0)+2>>0]|0)&63)<<8)+(d[(c[m>>2]|0)+3>>0]|0);break;}default:{c[q>>2]=3;c[p>>2]=(d[c[m>>2]>>0]|0)&16;c[n>>2]=(((d[c[m>>2]>>0]|0)&15)<<6)+((d[(c[m>>2]|0)+1>>0]|0)>>2);c[o>>2]=(((d[(c[m>>2]|0)+1>>0]|0)&3)<<8)+(d[(c[m>>2]|0)+2>>0]|0);}}if((c[n>>2]|0)>>>0>131072){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}if(((c[o>>2]|0)+(c[q>>2]|0)|0)>>>0>(c[k>>2]|0)>>>0){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}j=(c[i>>2]|0)+5132|0;f=(c[i>>2]|0)+21708|0;e=c[n>>2]|0;b=(c[m>>2]|0)+(c[q>>2]|0)|0;A=c[o>>2]|0;if(c[p>>2]|0)B=Xs(j,f,e,b,A)|0;else B=Ys(j,f,e,b,A)|0;if(hr(B)|0){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}else{c[(c[i>>2]|0)+21688>>2]=(c[i>>2]|0)+21708;c[(c[i>>2]|0)+21704>>2]=c[n>>2];c[(c[i>>2]|0)+21584>>2]=1;n=(c[i>>2]|0)+21708+(c[(c[i>>2]|0)+21704>>2]|0)|0;a[n>>0]=0;a[n+1>>0]=0;a[n+2>>0]=0;a[n+3>>0]=0;a[n+4>>0]=0;a[n+5>>0]=0;a[n+6>>0]=0;a[n+7>>0]=0;c[h>>2]=(c[o>>2]|0)+(c[q>>2]|0);z=c[h>>2]|0;l=g;return z|0;}break;}case 1:{c[t>>2]=(d[c[m>>2]>>0]|0)>>4&3;if((c[t>>2]|0)!=1){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}if(!(c[(c[i>>2]|0)+21584>>2]|0)){c[h>>2]=-30;z=c[h>>2]|0;l=g;return z|0;}c[t>>2]=3;c[r>>2]=(((d[c[m>>2]>>0]|0)&15)<<6)+((d[(c[m>>2]|0)+1>>0]|0)>>2);c[s>>2]=(((d[(c[m>>2]|0)+1>>0]|0)&3)<<8)+(d[(c[m>>2]|0)+2>>0]|0);if(((c[s>>2]|0)+(c[t>>2]|0)|0)>>>0>(c[k>>2]|0)>>>0){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}c[u>>2]=Zs((c[i>>2]|0)+21708|0,c[r>>2]|0,(c[m>>2]|0)+(c[t>>2]|0)|0,c[s>>2]|0,(c[i>>2]|0)+5132|0)|0;if(hr(c[u>>2]|0)|0){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}else{c[(c[i>>2]|0)+21688>>2]=(c[i>>2]|0)+21708;c[(c[i>>2]|0)+21704>>2]=c[r>>2];r=(c[i>>2]|0)+21708+(c[(c[i>>2]|0)+21704>>2]|0)|0;a[r>>0]=0;a[r+1>>0]=0;a[r+2>>0]=0;a[r+3>>0]=0;a[r+4>>0]=0;a[r+5>>0]=0;a[r+6>>0]=0;a[r+7>>0]=0;c[h>>2]=(c[s>>2]|0)+(c[t>>2]|0);z=c[h>>2]|0;l=g;return z|0;}break;}case 2:{c[w>>2]=(d[c[m>>2]>>0]|0)>>4&3;switch(c[w>>2]|0){case 3:{c[v>>2]=(((d[c[m>>2]>>0]|0)&15)<<16)+((d[(c[m>>2]|0)+1>>0]|0)<<8)+(d[(c[m>>2]|0)+2>>0]|0);break;}case 2:{c[v>>2]=(((d[c[m>>2]>>0]|0)&15)<<8)+(d[(c[m>>2]|0)+1>>0]|0);break;}default:{c[w>>2]=1;c[v>>2]=(d[c[m>>2]>>0]|0)&31;}}if(((c[w>>2]|0)+(c[v>>2]|0)+8|0)>>>0<=(c[k>>2]|0)>>>0){c[(c[i>>2]|0)+21688>>2]=(c[m>>2]|0)+(c[w>>2]|0);c[(c[i>>2]|0)+21704>>2]=c[v>>2];c[h>>2]=(c[w>>2]|0)+(c[v>>2]|0);z=c[h>>2]|0;l=g;return z|0;}if(((c[v>>2]|0)+(c[w>>2]|0)|0)>>>0>(c[k>>2]|0)>>>0){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}else{mE((c[i>>2]|0)+21708|0,(c[m>>2]|0)+(c[w>>2]|0)|0,c[v>>2]|0)|0;c[(c[i>>2]|0)+21688>>2]=(c[i>>2]|0)+21708;c[(c[i>>2]|0)+21704>>2]=c[v>>2];t=(c[i>>2]|0)+21708+(c[(c[i>>2]|0)+21704>>2]|0)|0;a[t>>0]=0;a[t+1>>0]=0;a[t+2>>0]=0;a[t+3>>0]=0;a[t+4>>0]=0;a[t+5>>0]=0;a[t+6>>0]=0;a[t+7>>0]=0;c[h>>2]=(c[w>>2]|0)+(c[v>>2]|0);z=c[h>>2]|0;l=g;return z|0;}break;}case 3:{c[y>>2]=(d[c[m>>2]>>0]|0)>>4&3;switch(c[y>>2]|0){case 3:{c[x>>2]=(((d[c[m>>2]>>0]|0)&15)<<16)+((d[(c[m>>2]|0)+1>>0]|0)<<8)+(d[(c[m>>2]|0)+2>>0]|0);if((c[k>>2]|0)>>>0<4){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}break;}case 2:{c[x>>2]=(((d[c[m>>2]>>0]|0)&15)<<8)+(d[(c[m>>2]|0)+1>>0]|0);break;}default:{c[y>>2]=1;c[x>>2]=(d[c[m>>2]>>0]|0)&31;}}if((c[x>>2]|0)>>>0>131072){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}else{oE((c[i>>2]|0)+21708|0,(d[(c[m>>2]|0)+(c[y>>2]|0)>>0]|0)&255|0,(c[x>>2]|0)+8|0)|0;c[(c[i>>2]|0)+21688>>2]=(c[i>>2]|0)+21708;c[(c[i>>2]|0)+21704>>2]=c[x>>2];c[h>>2]=(c[y>>2]|0)+1;z=c[h>>2]|0;l=g;return z|0;}break;}default:{}}return 0;}function Bs(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0;g=l;l=l+192|0;h=g+168|0;i=g+164|0;j=g+160|0;k=g+156|0;m=g+152|0;n=g+148|0;o=g+144|0;p=g+140|0;q=g+136|0;r=g+132|0;s=g+128|0;t=g+124|0;u=g+120|0;v=g+116|0;w=g+112|0;x=g+108|0;y=g+104|0;z=g+100|0;A=g+96|0;B=g+92|0;C=g+88|0;D=g+84|0;E=g+32|0;F=g+28|0;G=g+24|0;H=g+12|0;I=g+8|0;J=g+4|0;K=g;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=c[n>>2];c[q>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[r>>2]=c[k>>2];c[s>>2]=(c[r>>2]|0)+(c[m>>2]|0);c[t>>2]=c[r>>2];c[u>>2]=c[(c[j>>2]|0)+21688>>2];c[v>>2]=(c[u>>2]|0)+(c[(c[j>>2]|0)+21704>>2]|0);c[w>>2]=c[j>>2];c[x>>2]=(c[j>>2]|0)+3080;c[y>>2]=(c[j>>2]|0)+2052;c[z>>2]=c[(c[j>>2]|0)+21524>>2];c[A>>2]=c[(c[j>>2]|0)+21528>>2];c[B>>2]=c[(c[j>>2]|0)+21532>>2];c[D>>2]=Cs(C,c[w>>2]|0,c[x>>2]|0,c[y>>2]|0,c[(c[j>>2]|0)+21588>>2]|0,c[p>>2]|0,c[o>>2]|0)|0;o=(hr(c[D>>2]|0)|0)!=0;m=c[D>>2]|0;if(o){c[i>>2]=m;L=c[i>>2]|0;l=g;return L|0;}c[p>>2]=(c[p>>2]|0)+m;a:do{if(c[C>>2]|0){c[(c[j>>2]|0)+21588>>2]=1;c[F>>2]=0;while(1){if((c[F>>2]|0)>>>0>=3)break;c[E+40+(c[F>>2]<<2)>>2]=c[(c[j>>2]|0)+21540+(c[F>>2]<<2)>>2];c[F>>2]=(c[F>>2]|0)+1;}c[G>>2]=Ds(E,c[p>>2]|0,(c[q>>2]|0)-(c[p>>2]|0)|0)|0;if(hr(c[G>>2]|0)|0){c[i>>2]=-20;L=c[i>>2]|0;l=g;return L|0;}Es(E+16|0,E,c[w>>2]|0);Es(E+24|0,E,c[y>>2]|0);Es(E+32|0,E,c[x>>2]|0);while(1){m=(Fs(E)|0)>>>0<=2;M=c[C>>2]|0;if(!(m?(c[C>>2]|0)!=0:0))break;c[C>>2]=M+-1;Gs(H,E);m=c[t>>2]|0;o=c[s>>2]|0;D=c[v>>2]|0;k=c[z>>2]|0;n=c[A>>2]|0;f=c[B>>2]|0;c[h>>2]=c[H>>2];c[h+4>>2]=c[H+4>>2];c[h+8>>2]=c[H+8>>2];c[I>>2]=Hs(m,o,h,u,D,k,n,f)|0;f=(hr(c[I>>2]|0)|0)!=0;N=c[I>>2]|0;if(f){O=12;break;}c[t>>2]=(c[t>>2]|0)+N;}if((O|0)==12){c[i>>2]=N;L=c[i>>2]|0;l=g;return L|0;}if(M|0){c[i>>2]=-20;L=c[i>>2]|0;l=g;return L|0;}c[J>>2]=0;while(1){if((c[J>>2]|0)>>>0>=3)break a;c[(c[j>>2]|0)+21540+(c[J>>2]<<2)>>2]=c[E+40+(c[J>>2]<<2)>>2];c[J>>2]=(c[J>>2]|0)+1;}}}while(0);c[K>>2]=(c[v>>2]|0)-(c[u>>2]|0);if((c[K>>2]|0)>>>0>((c[s>>2]|0)-(c[t>>2]|0)|0)>>>0){c[i>>2]=-70;L=c[i>>2]|0;l=g;return L|0;}else{mE(c[t>>2]|0,c[u>>2]|0,c[K>>2]|0)|0;c[t>>2]=(c[t>>2]|0)+(c[K>>2]|0);c[i>>2]=(c[t>>2]|0)-(c[r>>2]|0);L=c[i>>2]|0;l=g;return L|0;}return 0;}function Cs(a,b,e,f,g,h,i){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;j=l;l=l+80|0;k=j+68|0;m=j+64|0;n=j+60|0;o=j+56|0;p=j+52|0;q=j+48|0;r=j+44|0;s=j+40|0;t=j+36|0;u=j+32|0;v=j+28|0;w=j+24|0;x=j+20|0;y=j+16|0;z=j+12|0;A=j+8|0;B=j+4|0;C=j;c[m>>2]=a;c[n>>2]=b;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=c[r>>2];c[u>>2]=(c[t>>2]|0)+(c[s>>2]|0);c[v>>2]=c[t>>2];if((c[s>>2]|0)>>>0<1){c[k>>2]=-72;D=c[k>>2]|0;l=j;return D|0;}s=c[v>>2]|0;c[v>>2]=s+1;c[w>>2]=d[s>>0];if(!(c[w>>2]|0)){c[c[m>>2]>>2]=0;c[k>>2]=1;D=c[k>>2]|0;l=j;return D|0;}do{if((c[w>>2]|0)>127){s=c[v>>2]|0;if((c[w>>2]|0)==255){if((s+2|0)>>>0<=(c[u>>2]|0)>>>0){c[w>>2]=((Eq(c[v>>2]|0)|0)&65535)+32512;c[v>>2]=(c[v>>2]|0)+2;break;}c[k>>2]=-72;D=c[k>>2]|0;l=j;return D|0;}else{if(s>>>0<(c[u>>2]|0)>>>0){s=(c[w>>2]|0)-128<<8;r=c[v>>2]|0;c[v>>2]=r+1;c[w>>2]=s+(d[r>>0]|0);break;}c[k>>2]=-72;D=c[k>>2]|0;l=j;return D|0;}}}while(0);c[c[m>>2]>>2]=c[w>>2];c[x>>2]=(d[c[v>>2]>>0]|0)>>6;c[y>>2]=(d[c[v>>2]>>0]|0)>>4&3;c[z>>2]=(d[c[v>>2]>>0]|0)>>2&3;c[v>>2]=(c[v>>2]|0)+1;if((c[v>>2]|0)>>>0>((c[u>>2]|0)+-3|0)>>>0){c[k>>2]=-72;D=c[k>>2]|0;l=j;return D|0;}c[A>>2]=Ss(c[n>>2]|0,c[x>>2]|0,35,9,c[v>>2]|0,(c[u>>2]|0)-(c[v>>2]|0)|0,5440,6,c[q>>2]|0)|0;if(hr(c[A>>2]|0)|0){c[k>>2]=-20;D=c[k>>2]|0;l=j;return D|0;}c[v>>2]=(c[v>>2]|0)+(c[A>>2]|0);c[B>>2]=Ss(c[p>>2]|0,c[y>>2]|0,28,8,c[v>>2]|0,(c[u>>2]|0)-(c[v>>2]|0)|0,5520,5,c[q>>2]|0)|0;if(hr(c[B>>2]|0)|0){c[k>>2]=-20;D=c[k>>2]|0;l=j;return D|0;}c[v>>2]=(c[v>>2]|0)+(c[B>>2]|0);c[C>>2]=Ss(c[o>>2]|0,c[z>>2]|0,52,9,c[v>>2]|0,(c[u>>2]|0)-(c[v>>2]|0)|0,5584,6,c[q>>2]|0)|0;if(hr(c[C>>2]|0)|0){c[k>>2]=-20;D=c[k>>2]|0;l=j;return D|0;}else{c[v>>2]=(c[v>>2]|0)+(c[C>>2]|0);c[k>>2]=(c[v>>2]|0)-(c[t>>2]|0);D=c[k>>2]|0;l=j;return D|0;}return 0;}function Cc(a){a=a|0;var b=0;b=l;l=l+a|0;l=l+15&-16;return b|0;}function Dc(){return l|0;}function Ec(a){a=a|0;l=a;}function Fc(a,b){a=a|0;b=b|0;l=a;m=b;}function Gc(a,b){a=a|0;b=b|0;if(!n){n=a;o=b;}}function Hc(a){a=a|0;y=a;}function Ic(){return y|0;}function Jc(){var a=0;a=l;l=l+16|0;Kz(Cz(12856,12862)|0)|0;Az(12856,a)|0;l=a;return;}function Kc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0.0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;e=l;l=l+32|0;f=e;g=c[d>>2]|0;h=hb(12865)|0;i=db(g|0,h|0)|0;ab(h|0);j=+Za(i|0,11e3,f|0);jb(c[f>>2]|0);h=~~j>>>0;ab(i|0);i=b+4|0;g=c[i>>2]|0;k=c[b>>2]|0;m=g-k|0;n=k;a:do{if(m>>>0<h>>>0){o=h-m|0;p=b+8|0;q=c[p>>2]|0;if((q-g|0)>>>0>=o>>>0){r=o;s=g;while(1){a[s>>0]=0;s=(c[i>>2]|0)+1|0;c[i>>2]=s;r=r+-1|0;if(!r)break a;}}if((h|0)<0)Wz(b);r=q-k|0;s=r<<1;t=r>>>0<1073741823?s>>>0<h>>>0?h:s:2147483647;if(!t)u=0;else u=Uz(t)|0;oE(u+m|0,0,o|0)|0;if((m|0)>0)mE(u|0,n|0,m|0)|0;c[b>>2]=u;c[i>>2]=u+h;c[p>>2]=u+t;if(k|0)Vz(n);}else if(m>>>0>h>>>0)c[i>>2]=n+h;}while(0);n=cb(12872)|0;i=c[d>>2]|0;m=hb(12879)|0;k=db(i|0,m|0)|0;ab(m|0);m=c[b>>2]|0;eb(n|0);c[f>>2]=n;c[f+8>>2]=m;c[f+16>>2]=h;h=gb(k|0,3,11072,f|0)|0;ab(k|0);cd(h,12891,d);ab(h|0);ab(n|0);l=e;return;}function Lc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;e=l;l=l+32|0;f=e;g=cb(12895)|0;h=cb(12872)|0;i=hb(12879)|0;j=db(g|0,i|0)|0;ab(i|0);i=c[d>>2]|0;k=d+4|0;m=c[k>>2]|0;eb(h|0);c[f>>2]=h;c[f+8>>2]=i;c[f+16>>2]=m-i;i=gb(j|0,3,11092,f|0)|0;m=i;ab(j|0);j=hb(12879)|0;n=db(h|0,j|0)|0;ab(j|0);c[f>>2]=(c[k>>2]|0)-(c[d>>2]|0);d=gb(n|0,1,11104,f|0)|0;ab(n|0);n=hb(12879)|0;k=db(g|0,n|0)|0;ab(n|0);eb(d|0);c[f>>2]=d;n=gb(k|0,1,11108,f|0)|0;c[b>>2]=n;ab(k|0);if((a[21600]|0)==0?WD(21600)|0:0)c[5404]=bb(2,11084)|0;k=c[5404]|0;eb(i|0);c[f>>2]=m;$a(k|0,n|0,12891,f|0);ab(d|0);ab(i|0);ab(h|0);ab(g|0);l=e;return;}function Mc(a){a=a|0;return(c[a+4>>2]|0)-(c[a>>2]|0)|0;}function Nc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=l;l=l+32|0;e=d;f=cb(12872)|0;g=cb(12895)|0;h=hb(12879)|0;i=db(g|0,h|0)|0;ab(h|0);h=c[b>>2]|0;j=c[b+4>>2]|0;eb(f|0);c[e>>2]=f;c[e+8>>2]=h;c[e+16>>2]=j-h;c[a>>2]=gb(i|0,3,11092,e|0)|0;ab(i|0);ab(g|0);ab(f|0);l=d;return;}function Oc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=Uz(32)|0;Pc(e,a);Ef(f,e,b);b=c[e>>2]|0;if(!b){l=d;return f|0;}c[e+4>>2]=b;Vz(b);l=d;return f|0;}function Pc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0.0,n=0,o=0,p=0;d=l;l=l+48|0;e=d;f=d+24|0;c[f>>2]=0;g=f+4|0;c[g>>2]=0;h=f+8|0;c[h>>2]=0;i=c[b>>2]|0;j=hb(12865)|0;k=db(i|0,j|0)|0;ab(j|0);m=+Za(k|0,11016,e|0);jb(c[e>>2]|0);j=~~m>>>0;do{if(j|0)if((j|0)<0)Wz(f);else{i=Uz(j)|0;oE(i|0,0,j|0)|0;n=i+j|0;c[f>>2]=i;c[g>>2]=n;c[h>>2]=n;break;}}while(0);ab(k|0);k=c[b>>2]|0;j=hb(12865)|0;n=db(k|0,j|0)|0;ab(j|0);m=+Za(n|0,11e3,e|0);jb(c[e>>2]|0);j=~~m>>>0;ab(n|0);n=cb(12872)|0;k=c[b>>2]|0;i=hb(12879)|0;o=db(k|0,i|0)|0;ab(i|0);i=c[f>>2]|0;eb(n|0);c[e>>2]=n;c[e+8>>2]=i;c[e+16>>2]=j;i=gb(o|0,3,11072,e|0)|0;ab(o|0);o=c[f>>2]|0;e=o;if(((c[h>>2]|0)-o|0)>>>0<j>>>0){k=(c[g>>2]|0)-o|0;p=Uz(j)|0;if((k|0)>0)mE(p|0,e|0,k|0)|0;c[f>>2]=p;c[g>>2]=p+k;c[h>>2]=p+j;if(o|0)Vz(e);}dd(i,12891,b);ab(i|0);ab(n|0);c[a>>2]=c[f>>2];c[a+4>>2]=c[g>>2];c[a+8>>2]=c[h>>2];l=d;return;}function Qc(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;d=b;e=Uz(32)|0;Pc(d,a);Pf(e,d);a=c[d>>2]|0;if(!a){l=b;return e|0;}c[d+4>>2]=a;Vz(a);l=b;return e|0;}function Rc(a,b){a=a|0;b=b|0;return ag(a,b)|0;}function Sc(a,b){a=a|0;b=b|0;return mg(a,b)|0;}function Tc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+48|0;f=e+28|0;g=e+24|0;h=e;c[f>>2]=0;i=f+4|0;c[i>>2]=0;c[f+8>>2]=0;j=c[b>>2]|0;c[g>>2]=j;eb(j|0);Kc(f,g);ab(c[g>>2]|0);g=h+16|0;c[h>>2]=11128;c[h+4>>2]=d;c[g>>2]=h;d=vg(a,f,h)|0;a=c[g>>2]|0;if((h|0)!=(a|0)){if(a|0)wc[c[(c[a>>2]|0)+20>>2]&127](a);}else wc[c[(c[a>>2]|0)+16>>2]&127](a);a=c[f>>2]|0;if(!a){l=e;return d|0;}c[i>>2]=a;Vz(a);l=e;return d|0;}function Uc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;e=d;f=e+16|0;c[e>>2]=11172;c[e+4>>2]=b;c[f>>2]=e;b=xg(a,e)|0;a=c[f>>2]|0;if((e|0)==(a|0)){wc[c[(c[a>>2]|0)+16>>2]&127](a);l=d;return b|0;}if(!a){l=d;return b|0;}wc[c[(c[a>>2]|0)+20>>2]&127](a);l=d;return b|0;}function Vc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;e=d;f=e+16|0;c[e>>2]=11216;c[e+4>>2]=b;c[f>>2]=e;b=yg(a,e)|0;a=c[f>>2]|0;if((e|0)==(a|0)){wc[c[(c[a>>2]|0)+16>>2]&127](a);l=d;return b|0;}if(!a){l=d;return b|0;}wc[c[(c[a>>2]|0)+20>>2]&127](a);l=d;return b|0;}function Wc(a){a=a|0;return Bg(a)|0;}function Xc(a,b){a=a|0;b=b|0;return Mg(a,b)|0;}function Yc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+48|0;f=e+28|0;g=e+24|0;h=e;c[f>>2]=0;i=f+4|0;c[i>>2]=0;c[f+8>>2]=0;j=c[b>>2]|0;c[g>>2]=j;eb(j|0);Kc(f,g);ab(c[g>>2]|0);g=h+16|0;c[h>>2]=11260;c[h+4>>2]=d;c[g>>2]=h;d=Vg(a,f,h)|0;a=c[g>>2]|0;if((h|0)!=(a|0)){if(a|0)wc[c[(c[a>>2]|0)+20>>2]&127](a);}else wc[c[(c[a>>2]|0)+16>>2]&127](a);a=c[f>>2]|0;if(!a){l=e;return d|0;}c[i>>2]=a;Vz(a);l=e;return d|0;}function Zc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;e=d;f=e+16|0;c[e>>2]=11304;c[e+4>>2]=b;c[f>>2]=e;b=Xg(a,e)|0;a=c[f>>2]|0;if((e|0)==(a|0)){wc[c[(c[a>>2]|0)+16>>2]&127](a);l=d;return b|0;}if(!a){l=d;return b|0;}wc[c[(c[a>>2]|0)+20>>2]&127](a);l=d;return b|0;}function _c(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;e=d;f=e+16|0;c[e>>2]=11348;c[e+4>>2]=b;c[f>>2]=e;b=Yg(a,e)|0;a=c[f>>2]|0;if((e|0)==(a|0)){wc[c[(c[a>>2]|0)+16>>2]&127](a);l=d;return b|0;}if(!a){l=d;return b|0;}wc[c[(c[a>>2]|0)+20>>2]&127](a);l=d;return b|0;}function $c(a){a=a|0;ad(12902);Ra(12856,1,11420,14747,61,2);Ra(12911,3,11424,14750,1,26);Ra(12925,2,11436,14761,20,27);Ra(12943,2,11436,14761,20,28);Ma(10096,10112,10128,0,14742,31,14745,0,14745,0,12960,14747,62);Ra(12980,3,11444,14765,9,21);Ma(10152,10168,10184,0,14742,32,14745,0,14745,0,13002,14747,63);Ra(13024,2,11456,14761,22,33);Ma(10200,10208,10224,0,14742,34,14745,0,14745,0,13048,14747,64);Na(10200,1,11464,14742,35,1);a=Uz(8)|0;c[a>>2]=23;c[a+4>>2]=0;Oa(10200,13058,3,11468,14765,10,a|0,0);a=Uz(8)|0;c[a>>2]=24;c[a+4>>2]=0;Oa(10200,13072,3,11480,14765,11,a|0,0);a=Uz(8)|0;c[a>>2]=7;c[a+4>>2]=0;Oa(10200,13084,5,48,15008,1,a|0,0);a=Uz(8)|0;c[a>>2]=12;c[a+4>>2]=0;Oa(10200,13093,4,80,14770,8,a|0,0);a=Uz(8)|0;c[a>>2]=9;c[a+4>>2]=0;Oa(10200,13104,5,96,15008,2,a|0,0);a=Uz(8)|0;c[a>>2]=10;c[a+4>>2]=0;Oa(10200,13122,5,128,15008,3,a|0,0);Ma(10240,10248,10264,0,14742,36,14745,0,14745,0,13142,14747,65);Na(10240,1,11492,14742,37,2);a=Uz(8)|0;c[a>>2]=25;c[a+4>>2]=0;Oa(10240,13168,3,11496,14765,13,a|0,0);a=Uz(8)|0;c[a>>2]=26;c[a+4>>2]=0;Oa(10240,13174,3,11508,14765,14,a|0,0);a=Uz(8)|0;c[a>>2]=15;c[a+4>>2]=0;Oa(10240,13189,4,160,14770,11,a|0,0);a=Uz(8)|0;c[a>>2]=27;c[a+4>>2]=0;Oa(10240,13199,3,11520,14765,16,a|0,0);a=Uz(8)|0;c[a>>2]=28;c[a+4>>2]=0;Oa(10240,13205,3,11520,14765,16,a|0,0);Ma(10280,10288,10304,0,14742,38,14745,0,14745,0,13209,14747,66);Na(10280,1,11532,14742,39,3);a=Uz(8)|0;c[a>>2]=40;c[a+4>>2]=0;Oa(10280,13168,2,11536,14761,29,a|0,0);a=Uz(8)|0;c[a>>2]=30;c[a+4>>2]=0;Oa(10280,13174,3,11544,14765,17,a|0,0);a=Uz(8)|0;c[a>>2]=18;c[a+4>>2]=0;Oa(10280,13189,4,176,14770,12,a|0,0);a=Uz(8)|0;c[a>>2]=31;c[a+4>>2]=0;Oa(10280,13199,3,11556,14765,19,a|0,0);a=Uz(8)|0;c[a>>2]=32;c[a+4>>2]=0;Oa(10280,13205,3,11556,14765,19,a|0,0);return;}function ad(a){a=a|0;Ma(10032,10056,10072,0,14742,41,14745,0,14745,0,a|0,14747,67);Na(10032,1,11384,14742,42,4);a=Uz(8)|0;c[a>>2]=29;c[a+4>>2]=0;Oa(10032,14524,3,11388,14750,2,a|0,0);a=Uz(8)|0;c[a>>2]=3;c[a+4>>2]=0;Oa(10032,14534,4,16,14755,4,a|0,0);a=Uz(8)|0;c[a>>2]=43;c[a+4>>2]=0;Oa(10032,14541,2,11400,14761,33,a|0,0);a=Uz(4)|0;c[a>>2]=4;Oa(10032,14546,3,11408,14765,20,a|0,0);a=Uz(4)|0;c[a>>2]=21;Oa(10032,12891,4,32,14770,13,a|0,0);return;}function bd(a){a=a|0;wa(a|0)|0;sA();}function cd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=l;l=l+16|0;g=f;if((a[21600]|0)==0?WD(21600)|0:0)c[5404]=bb(2,11084)|0;h=c[5404]|0;eb(c[e>>2]|0);c[g>>2]=c[e>>2];$a(h|0,b|0,d|0,g|0);l=f;return;}function dd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=l;l=l+16|0;g=f;if((a[21608]|0)==0?WD(21608)|0:0)c[5405]=bb(2,11112)|0;h=c[5405]|0;eb(c[e>>2]|0);c[g>>2]=c[e>>2];$a(h|0,b|0,d|0,g|0);l=f;return;}function ed(a){a=a|0;Vz(a);return;}function fd(a){a=a|0;var b=0;b=Uz(8)|0;c[b>>2]=11128;c[b+4>>2]=c[a+4>>2];return b|0;}function gd(a,b){a=a|0;b=b|0;c[b>>2]=11128;c[b+4>>2]=c[a+4>>2];return;}function hd(a){a=a|0;return;}function id(a){a=a|0;Vz(a);return;}function jd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;Lc(f,b);b=c[a+4>>2]|0;a=c[f>>2]|0;eb(a|0);c[e>>2]=a;ab(_a(c[b>>2]|0,1,11108,e|0)|0);ab(a|0);l=d;return;}function kd(a,b){a=a|0;b=b|0;return((c[b+4>>2]|0)==13464?a+4|0:0)|0;}function ld(a){a=a|0;return 9872;}function md(a){a=a|0;Vz(a);return;}function nd(a){a=a|0;var b=0;b=Uz(8)|0;c[b>>2]=11172;c[b+4>>2]=c[a+4>>2];return b|0;}function od(a,b){a=a|0;b=b|0;c[b>>2]=11172;c[b+4>>2]=c[a+4>>2];return;}function pd(a){a=a|0;return;}function qd(a){a=a|0;Vz(a);return;}function rd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;Lc(f,b);b=c[a+4>>2]|0;a=c[f>>2]|0;eb(a|0);c[e>>2]=a;ab(_a(c[b>>2]|0,1,11108,e|0)|0);ab(a|0);l=d;return;}function sd(a,b){a=a|0;b=b|0;return((c[b+4>>2]|0)==13666?a+4|0:0)|0;}function td(a){a=a|0;return 9896;}function ud(a){a=a|0;Vz(a);return;}function vd(a){a=a|0;var b=0;b=Uz(8)|0;c[b>>2]=11216;c[b+4>>2]=c[a+4>>2];return b|0;}function wd(a,b){a=a|0;b=b|0;c[b>>2]=11216;c[b+4>>2]=c[a+4>>2];return;}function xd(a){a=a|0;return;}function yd(a){a=a|0;Vz(a);return;}function zd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;Lc(f,b);b=c[a+4>>2]|0;a=c[f>>2]|0;eb(a|0);c[e>>2]=a;ab(_a(c[b>>2]|0,1,11108,e|0)|0);ab(a|0);l=d;return;}function Ad(a,b){a=a|0;b=b|0;return((c[b+4>>2]|0)==13859?a+4|0:0)|0;}function Bd(a){a=a|0;return 9920;}function Cd(a){a=a|0;return;}function Dd(a){a=a|0;Vz(a);return;}function Ed(a){a=a|0;var b=0;b=Uz(8)|0;c[b>>2]=11260;c[b+4>>2]=c[a+4>>2];return b|0;}function Fd(a,b){a=a|0;b=b|0;c[b>>2]=11260;c[b+4>>2]=c[a+4>>2];return;}function Gd(a){a=a|0;return;}function Hd(a){a=a|0;Vz(a);return;}function Id(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;Lc(f,b);b=c[a+4>>2]|0;a=c[f>>2]|0;eb(a|0);c[e>>2]=a;ab(_a(c[b>>2]|0,1,11108,e|0)|0);ab(a|0);l=d;return;}function Jd(a,b){a=a|0;b=b|0;return((c[b+4>>2]|0)==14061?a+4|0:0)|0;}function Kd(a){a=a|0;return 9944;}function Ld(a){a=a|0;Vz(a);return;}function Md(a){a=a|0;var b=0;b=Uz(8)|0;c[b>>2]=11304;c[b+4>>2]=c[a+4>>2];return b|0;}function Nd(a,b){a=a|0;b=b|0;c[b>>2]=11304;c[b+4>>2]=c[a+4>>2];return;}function Od(a){a=a|0;return;}function Pd(a){a=a|0;Vz(a);return;}function Qd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;Lc(f,b);b=c[a+4>>2]|0;a=c[f>>2]|0;eb(a|0);c[e>>2]=a;ab(_a(c[b>>2]|0,1,11108,e|0)|0);ab(a|0);l=d;return;}function Rd(a,b){a=a|0;b=b|0;return((c[b+4>>2]|0)==14267?a+4|0:0)|0;}function Sd(a){a=a|0;return 9968;}function Td(a){a=a|0;Vz(a);return;}function Ud(a){a=a|0;var b=0;b=Uz(8)|0;c[b>>2]=11348;c[b+4>>2]=c[a+4>>2];return b|0;}function Vd(a,b){a=a|0;b=b|0;c[b>>2]=11348;c[b+4>>2]=c[a+4>>2];return;}function Wd(a){a=a|0;return;}function Xd(a){a=a|0;Vz(a);return;}function Yd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;Lc(f,b);b=c[a+4>>2]|0;a=c[f>>2]|0;eb(a|0);c[e>>2]=a;ab(_a(c[b>>2]|0,1,11108,e|0)|0);ab(a|0);l=d;return;}function Zd(a,b){a=a|0;b=b|0;return((c[b+4>>2]|0)==14464?a+4|0:0)|0;}function _d(a){a=a|0;return 9992;}function $d(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;e=b+4|0;f=c[e>>2]|0;g=b+8|0;h=c[g>>2]|0;if((f|0)!=(h|0)){a[f>>0]=a[d>>0]|0;c[e>>2]=(c[e>>2]|0)+1;return;}i=c[b>>2]|0;j=f-i|0;f=j+1|0;k=i;if((f|0)<0)Wz(b);l=h-i|0;h=l<<1;m=l>>>0<1073741823?h>>>0<f>>>0?f:h:2147483647;if(!m)n=0;else n=Uz(m)|0;h=n+j|0;a[h>>0]=a[d>>0]|0;if((j|0)>0)mE(n|0,k|0,j|0)|0;c[b>>2]=n;c[e>>2]=h+1;c[g>>2]=n+m;if(!i)return;Vz(k);return;}function ae(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=a+4|0;f=c[a>>2]|0;g=(c[e>>2]|0)-f|0;if(g>>>0<b>>>0){de(a,b-g|0,d);return;}if(g>>>0<=b>>>0)return;c[e>>2]=f+b;return;}function be(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0;f=l;l=l+16|0;g=f;h=c[b>>2]|0;if(((c[b+4>>2]|0)-h|0)>>>0<=e>>>0){i=1;c[a>>2]=i;l=f;return;}c[g>>2]=d[h+e>>0];i=kb(10960,g|0)|0;c[a>>2]=i;l=f;return;}function ce(b,d,e){b=b|0;d=d|0;e=e|0;a[(c[b>>2]|0)+d>>0]=a[e>>0]|0;return 1;}function de(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=b+8|0;g=c[f>>2]|0;h=b+4|0;i=c[h>>2]|0;if((g-i|0)>>>0>=d>>>0){j=d;k=i;do{a[k>>0]=a[e>>0]|0;k=(c[h>>2]|0)+1|0;c[h>>2]=k;j=j+-1|0;}while((j|0)!=0);return;}j=c[b>>2]|0;k=i-j|0;l=k+d|0;if((l|0)<0)Wz(b);m=g-j|0;g=m<<1;n=m>>>0<1073741823?g>>>0<l>>>0?l:g:2147483647;if(!n)o=0;else o=Uz(n)|0;g=o+k|0;k=o+n|0;n=i+d-j|0;j=d;d=g;while(1){a[d>>0]=a[e>>0]|0;j=j+-1|0;if(!j)break;else d=d+1|0;}d=c[b>>2]|0;j=(c[h>>2]|0)-d|0;e=g+(0-j)|0;if((j|0)>0)mE(e|0,d|0,j|0)|0;c[b>>2]=e;c[h>>2]=o+n;c[f>>2]=k;if(!d)return;Vz(d);return;}function ee(a){a=a|0;return 10032;}function fe(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(b|0){c[a+4>>2]=b;Vz(b);}Vz(a);return;}function ge(){var a=0;a=Uz(12)|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;return a|0;}function he(a){a=a|0;return oc[a&7]()|0;}function ie(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;g=f;h=c[b>>2]|0;i=c[b+4>>2]|0;b=d+(i>>1)|0;if(!(i&1))j=h;else j=c[(c[b>>2]|0)+h>>2]|0;a[g>>0]=e;xc[j&31](b,g);l=f;return;}function je(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;g=l;l=l+16|0;h=g;i=c[b>>2]|0;j=c[b+4>>2]|0;b=d+(j>>1)|0;if(!(j&1))k=i;else k=c[(c[b>>2]|0)+i>>2]|0;a[h>>0]=f;yc[k&7](b,e,h);l=g;return;}function ke(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a>>2]|0;e=c[a+4>>2]|0;a=b+(e>>1)|0;if(!(e&1))f=d;else f=c[(c[a>>2]|0)+d>>2]|0;return pc[f&63](a)|0;}function le(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;f=e;yc[c[a>>2]&7](f,b,d);eb(c[f>>2]|0);d=c[f>>2]|0;ab(d|0);l=e;return d|0;}function me(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;g=l;l=l+16|0;h=g;i=c[b>>2]|0;a[h>>0]=f;f=rc[i&31](d,e,h)|0;l=g;return f|0;}function ne(a){a=a|0;vc[a&3]();return;}function oe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;f=e;c[f>>2]=d;xc[a&31](b,f);ab(c[f>>2]|0);l=e;return;}function pe(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;xc[a&31](e,b);eb(c[e>>2]|0);b=c[e>>2]|0;ab(b|0);l=d;return b|0;}function qe(a){a=a|0;return 10096;}function re(a){a=a|0;if(!a)return;se(a);Vz(a);return;}function se(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+16|0;d=b;e=c[a>>2]|0;do{if(e){c[d>>2]=e;f=a+24|0;g=c[f>>2]|0;if(!g){h=va(4)|0;c[h>>2]=12636;ya(h|0,10800,50);}else{xc[c[(c[g>>2]|0)+24>>2]&31](g,d);c[a>>2]=0;i=f;break;}}else i=a+24|0;}while(0);d=c[i>>2]|0;if((a+8|0)==(d|0)){wc[c[(c[d>>2]|0)+16>>2]&127](d);l=b;return;}if(!d){l=b;return;}wc[c[(c[d>>2]|0)+20>>2]&127](d);l=b;return;}function te(a){a=a|0;var b=0;b=c[a+16>>2]|0;if((a|0)==(b|0)){wc[c[(c[b>>2]|0)+16>>2]&127](b);return;}if(!b)return;wc[c[(c[b>>2]|0)+20>>2]&127](b);return;}function ue(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;f=e;c[f>>2]=b;b=qc[a&63](f,d)|0;ab(c[f>>2]|0);l=e;return b|0;}function ve(a){a=a|0;return 10152;}function we(a){a=a|0;if(!a)return;xe(a);Vz(a);return;}function xe(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+16|0;d=b;e=c[a>>2]|0;do{if(e){c[d>>2]=e;f=a+24|0;g=c[f>>2]|0;if(!g){h=va(4)|0;c[h>>2]=12636;ya(h|0,10800,50);}else{xc[c[(c[g>>2]|0)+24>>2]&31](g,d);c[a>>2]=0;i=f;break;}}else i=a+24|0;}while(0);d=c[i>>2]|0;if((a+8|0)==(d|0)){wc[c[(c[d>>2]|0)+16>>2]&127](d);l=b;return;}if(!d){l=b;return;}wc[c[(c[d>>2]|0)+20>>2]&127](d);l=b;return;}function ye(a){a=a|0;var b=0;b=c[a+16>>2]|0;if((a|0)==(b|0)){wc[c[(c[b>>2]|0)+16>>2]&127](b);return;}if(!b)return;wc[c[(c[b>>2]|0)+20>>2]&127](b);return;}function ze(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=b;b=pc[a&63](e)|0;ab(c[e>>2]|0);l=d;return b|0;}function Ae(a){a=a|0;return 10200;}function Be(a){a=a|0;if(!a)return;Vz(a);return;}function Ce(){return Uz(1)|0;}function De(a){a=a|0;return oc[a&7]()|0;}function Ee(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=c[a>>2]|0;f=c[a+4>>2]|0;a=b+(f>>1)|0;if(!(f&1))g=e;else g=c[(c[a>>2]|0)+e>>2]|0;return qc[g&63](a,d)|0;}function Fe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=c[a>>2]|0;f=c[a+4>>2]|0;a=b+(f>>1)|0;if(!(f&1))g=e;else g=c[(c[a>>2]|0)+e>>2]|0;return qc[g&63](a,d)|0;}function Ge(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;g=c[a>>2]|0;h=c[a+4>>2]|0;a=b+(h>>1)|0;if(!(h&1))i=g;else i=c[(c[a>>2]|0)+g>>2]|0;return sc[i&15](a,d,e,f)|0;}function He(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=c[a>>2]|0;g=c[a+4>>2]|0;a=b+(g>>1)|0;if(!(g&1))h=f;else h=c[(c[a>>2]|0)+f>>2]|0;return rc[h&31](a,d,e)|0;}function Ie(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;g=c[a>>2]|0;h=c[a+4>>2]|0;a=b+(h>>1)|0;if(!(h&1))i=g;else i=c[(c[a>>2]|0)+g>>2]|0;return sc[i&15](a,d,e,f)|0;}function Je(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;g=c[a>>2]|0;h=c[a+4>>2]|0;a=b+(h>>1)|0;if(!(h&1))i=g;else i=c[(c[a>>2]|0)+g>>2]|0;return sc[i&15](a,d,e,f)|0;}function Ke(a){a=a|0;return 10240;}function Le(a){a=a|0;if(!a)return;$f(a);Vz(a);return;}function Me(){var a=0;a=Uz(36)|0;_f(a);return a|0;}function Ne(a){a=a|0;return oc[a&7]()|0;}function Oe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=c[a>>2]|0;f=c[a+4>>2]|0;a=b+(f>>1)|0;if(!(f&1))g=e;else g=c[(c[a>>2]|0)+e>>2]|0;return qc[g&63](a,d)|0;}function Pe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=c[a>>2]|0;f=c[a+4>>2]|0;a=b+(f>>1)|0;if(!(f&1))g=e;else g=c[(c[a>>2]|0)+e>>2]|0;return qc[g&63](a,d)|0;}function Qe(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+16|0;g=f+4|0;h=f;i=c[a>>2]|0;j=c[a+4>>2]|0;a=b+(j>>1)|0;if(!(j&1))k=i;else k=c[(c[a>>2]|0)+i>>2]|0;c[g>>2]=d;c[h>>2]=e;e=rc[k&31](a,g,h)|0;ab(c[h>>2]|0);ab(c[g>>2]|0);l=f;return e|0;}function Re(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;f=e;g=c[a>>2]|0;h=c[a+4>>2]|0;a=b+(h>>1)|0;if(!(h&1))i=g;else i=c[(c[a>>2]|0)+g>>2]|0;c[f>>2]=d;d=qc[i&63](a,f)|0;ab(c[f>>2]|0);l=e;return d|0;}function Se(a){a=a|0;return 10280;}function Te(a){a=a|0;if(!a)return;Ag(a);Vz(a);return;}function Ue(){var a=0;a=Uz(36)|0;zg(a);return a|0;}function Ve(a){a=a|0;return oc[a&7]()|0;}function We(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a>>2]|0;e=c[a+4>>2]|0;a=b+(e>>1)|0;if(!(e&1))f=d;else f=c[(c[a>>2]|0)+d>>2]|0;return pc[f&63](a)|0;}function Xe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=c[a>>2]|0;f=c[a+4>>2]|0;a=b+(f>>1)|0;if(!(f&1))g=e;else g=c[(c[a>>2]|0)+e>>2]|0;return qc[g&63](a,d)|0;}function Ye(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+16|0;g=f+4|0;h=f;i=c[a>>2]|0;j=c[a+4>>2]|0;a=b+(j>>1)|0;if(!(j&1))k=i;else k=c[(c[a>>2]|0)+i>>2]|0;c[g>>2]=d;c[h>>2]=e;e=rc[k&31](a,g,h)|0;ab(c[h>>2]|0);ab(c[g>>2]|0);l=f;return e|0;}function Ze(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;f=e;g=c[a>>2]|0;h=c[a+4>>2]|0;a=b+(h>>1)|0;if(!(h&1))i=g;else i=c[(c[a>>2]|0)+g>>2]|0;c[f>>2]=d;d=qc[i&63](a,f)|0;ab(c[f>>2]|0);l=e;return d|0;}function _e(){$c(0);return;}function $e(a,b){a=a|0;b=b|0;a=lj(b)|0;b=(Ph(a)|0)==0;return(b?a>>>0>2147483646?-2:a:-1)|0;}function af(a,b){a=a|0;b=b|0;var d=0;a=c[b>>2]|0;d=wq(a,(c[b+4>>2]|0)-a|0)|0;a=(Ph(d)|0)==0;return(a?d>>>0>2147483646?-2:d:-1)|0;}function bf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;a=c[b>>2]|0;f=c[d>>2]|0;g=Go(a,(c[b+4>>2]|0)-a|0,f,(c[d+4>>2]|0)-f|0,e)|0;e=(Ph(g)|0)==0;return(e?g>>>0>2147483646?-2:g:-1)|0;}function cf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;a=c[b>>2]|0;e=c[d>>2]|0;f=ux(a,(c[b+4>>2]|0)-a|0,e,(c[d+4>>2]|0)-e|0)|0;e=(Ph(f)|0)==0;return(e?f>>>0>2147483646?-2:f:-1)|0;}function df(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;a=l;l=l+32|0;f=a;g=mj()|0;c[f>>2]=g;h=f+8|0;c[f+24>>2]=h;c[h>>2]=11576;c[f+12>>2]=68;if(!g){i=-3;ff(f);l=a;return i|0;}h=c[b>>2]|0;j=c[d>>2]|0;k=Lo(g,h,(c[b+4>>2]|0)-h|0,j,(c[d+4>>2]|0)-j|0,c[e>>2]|0)|0;e=(Ph(k)|0)==0;i=e?k>>>0>2147483646?-2:k:-1;ff(f);l=a;return i|0;}function ef(a){a=a|0;qj(a)|0;return;}function ff(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+16|0;d=b;e=c[a>>2]|0;do{if(e){c[d>>2]=e;f=a+24|0;g=c[f>>2]|0;if(!g){h=va(4)|0;c[h>>2]=12636;ya(h|0,10800,50);}else{xc[c[(c[g>>2]|0)+24>>2]&31](g,d);c[a>>2]=0;i=f;break;}}else i=a+24|0;}while(0);d=c[i>>2]|0;if((a+8|0)==(d|0)){wc[c[(c[d>>2]|0)+16>>2]&127](d);l=b;return;}if(!d){l=b;return;}wc[c[(c[d>>2]|0)+20>>2]&127](d);l=b;return;}function gf(a){a=a|0;var b=0;b=c[a+16>>2]|0;if((a|0)==(b|0)){wc[c[(c[b>>2]|0)+16>>2]&127](b);return;}if(!b)return;wc[c[(c[b>>2]|0)+20>>2]&127](b);return;}function hf(a){a=a|0;return;}function jf(a){a=a|0;Vz(a);return;}function kf(a){a=a|0;var b=0;b=Uz(8)|0;c[b>>2]=11576;c[b+4>>2]=c[a+4>>2];return b|0;}function lf(a,b){a=a|0;b=b|0;c[b>>2]=11576;c[b+4>>2]=c[a+4>>2];return;}function mf(a){a=a|0;return;}function nf(a){a=a|0;Vz(a);return;}function of(a,b){a=a|0;b=b|0;wc[c[a+4>>2]&127](c[b>>2]|0);return;}function pf(a,b){a=a|0;b=b|0;return((c[b+4>>2]|0)==15195?a+4|0:0)|0;}function qf(a){a=a|0;return 10336;}function rf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;a=l;l=l+32|0;f=a;g=Wp()|0;c[f>>2]=g;h=f+8|0;c[f+24>>2]=h;c[h>>2]=11620;c[f+12>>2]=69;if(!g){i=-4;tf(f);l=a;return i|0;}h=c[b>>2]|0;j=c[d>>2]|0;k=Dx(g,h,(c[b+4>>2]|0)-h|0,j,(c[d+4>>2]|0)-j|0,c[e>>2]|0)|0;e=(Ph(k)|0)==0;i=e?k>>>0>2147483646?-2:k:-1;tf(f);l=a;return i|0;}function sf(a){a=a|0;Xp(a)|0;return;}function tf(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+16|0;d=b;e=c[a>>2]|0;do{if(e){c[d>>2]=e;f=a+24|0;g=c[f>>2]|0;if(!g){h=va(4)|0;c[h>>2]=12636;ya(h|0,10800,50);}else{xc[c[(c[g>>2]|0)+24>>2]&31](g,d);c[a>>2]=0;i=f;break;}}else i=a+24|0;}while(0);d=c[i>>2]|0;if((a+8|0)==(d|0)){wc[c[(c[d>>2]|0)+16>>2]&127](d);l=b;return;}if(!d){l=b;return;}wc[c[(c[d>>2]|0)+20>>2]&127](d);l=b;return;}function uf(a){a=a|0;var b=0;b=c[a+16>>2]|0;if((a|0)==(b|0)){wc[c[(c[b>>2]|0)+16>>2]&127](b);return;}if(!b)return;wc[c[(c[b>>2]|0)+20>>2]&127](b);return;}function vf(a){a=a|0;return;}function wf(a){a=a|0;Vz(a);return;}function xf(a){a=a|0;var b=0;b=Uz(8)|0;c[b>>2]=11620;c[b+4>>2]=c[a+4>>2];return b|0;}function yf(a,b){a=a|0;b=b|0;c[b>>2]=11620;c[b+4>>2]=c[a+4>>2];return;}function zf(a){a=a|0;return;}function Af(a){a=a|0;Vz(a);return;}function Bf(a,b){a=a|0;b=b|0;wc[c[a+4>>2]&127](c[b>>2]|0);return;}function Cf(a,b){a=a|0;b=b|0;return((c[b+4>>2]|0)==15349?a+4|0:0)|0;}function Df(a){a=a|0;return 10384;}function Ef(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[b>>2]|0;c[a>>2]=Ho(e,(c[b+4>>2]|0)-e|0,d)|0;d=a+8|0;c[a+24>>2]=d;c[d>>2]=11664;c[a+12>>2]=70;return;}function Ff(a){a=a|0;rj(a)|0;return;}function Gf(a){a=a|0;return;}function Hf(a){a=a|0;Vz(a);return;}function If(a){a=a|0;var b=0;b=Uz(8)|0;c[b>>2]=11664;c[b+4>>2]=c[a+4>>2];return b|0;}function Jf(a,b){a=a|0;b=b|0;c[b>>2]=11664;c[b+4>>2]=c[a+4>>2];return;}function Kf(a){a=a|0;return;}function Lf(a){a=a|0;Vz(a);return;}function Mf(a,b){a=a|0;b=b|0;wc[c[a+4>>2]&127](c[b>>2]|0);return;}function Nf(a,b){a=a|0;b=b|0;return((c[b+4>>2]|0)==15503?a+4|0:0)|0;}function Of(a){a=a|0;return 10432;}function Pf(a,b){a=a|0;b=b|0;var d=0;d=c[b>>2]|0;c[a>>2]=Cx(d,(c[b+4>>2]|0)-d|0)|0;d=a+8|0;c[a+24>>2]=d;c[d>>2]=11708;c[a+12>>2]=71;return;}function Qf(a){a=a|0;Yp(a)|0;return;}function Rf(a){a=a|0;return;}function Sf(a){a=a|0;Vz(a);return;}function Tf(a){a=a|0;var b=0;b=Uz(8)|0;c[b>>2]=11708;c[b+4>>2]=c[a+4>>2];return b|0;}function Uf(a,b){a=a|0;b=b|0;c[b>>2]=11708;c[b+4>>2]=c[a+4>>2];return;}function Vf(a){a=a|0;return;}function Wf(a){a=a|0;Vz(a);return;}function Xf(a,b){a=a|0;b=b|0;wc[c[a+4>>2]&127](c[b>>2]|0);return;}function Yf(a,b){a=a|0;b=b|0;return((c[b+4>>2]|0)==15661?a+4|0:0)|0;}function Zf(a){a=a|0;return 10480;}function _f(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=44;b=a+8|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;c[b+24>>2]=0;return;}function $f(a){a=a|0;var b=0;b=c[a+24>>2]|0;if(b|0){c[a+28>>2]=b;Vz(b);}b=c[a+12>>2]|0;if(b|0){c[a+16>>2]=b;Vz(b);}b=c[a>>2]|0;c[a>>2]=0;if(!b)return;pc[c[a+4>>2]&63](b)|0;return;}function ag(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;e=d;f=e+16|0;c[e>>2]=11752;c[e+4>>2]=b;c[f>>2]=e;b=bg(a,e)|0;a=c[f>>2]|0;if((e|0)==(a|0)){wc[c[(c[a>>2]|0)+16>>2]&127](a);l=d;return b|0;}if(!a){l=d;return b|0;}wc[c[(c[a>>2]|0)+20>>2]&127](a);l=d;return b|0;}function bg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;d=l;l=l+16|0;e=d;if(c[a>>2]|0){f=1;l=d;return f|0;}g=Mo()|0;if(!g){f=0;l=d;return f|0;}c[e>>2]=g;h=c[b+16>>2]|0;if(!h){b=va(4)|0;c[b>>2]=12636;ya(b|0,10800,50);}if(Ph(qc[c[(c[h>>2]|0)+24>>2]&63](h,e)|0)|0){Oo(g)|0;f=0;l=d;return f|0;}e=c[a>>2]|0;c[a>>2]=g;g=a+4|0;if(e|0)pc[c[g>>2]&63](e)|0;c[g>>2]=44;g=Po()|0;e=a+12|0;h=a+20|0;b=c[e>>2]|0;i=b;if(((c[h>>2]|0)-b|0)>>>0<g>>>0){j=a+16|0;k=(c[j>>2]|0)-b|0;m=Uz(g)|0;if((k|0)>0)mE(m|0,i|0,k|0)|0;c[e>>2]=m;c[j>>2]=m+k;c[h>>2]=m+g;if(b|0)Vz(i);}cg(a+24|0,Qo()|0);c[a+8>>2]=(c[h>>2]|0)-(c[e>>2]|0);f=1;l=d;return f|0;}function cg(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=b+4|0;f=c[e>>2]|0;g=c[b>>2]|0;h=f-g|0;i=g;if(h>>>0>=d>>>0){if(h>>>0<=d>>>0)return;c[e>>2]=i+d;return;}j=d-h|0;k=b+8|0;l=c[k>>2]|0;if((l-f|0)>>>0>=j>>>0){m=j;n=f;do{a[n>>0]=0;n=(c[e>>2]|0)+1|0;c[e>>2]=n;m=m+-1|0;}while((m|0)!=0);return;}if((d|0)<0)Wz(b);m=l-g|0;l=m<<1;n=m>>>0<1073741823?l>>>0<d>>>0?d:l:2147483647;if(!n)o=0;else o=Uz(n)|0;oE(o+h|0,0,j|0)|0;if((h|0)>0)mE(o|0,i|0,h|0)|0;c[b>>2]=o;c[e>>2]=o+d;c[k>>2]=o+n;if(!g)return;Vz(i);return;}function dg(a){a=a|0;return;}function eg(a){a=a|0;Vz(a);return;}function fg(a){a=a|0;var b=0;b=Uz(8)|0;c[b>>2]=11752;c[b+4>>2]=c[a+4>>2];return b|0;}function gg(a,b){a=a|0;b=b|0;c[b>>2]=11752;c[b+4>>2]=c[a+4>>2];return;}function hg(a){a=a|0;return;}function ig(a){a=a|0;Vz(a);return;}function jg(a,b){a=a|0;b=b|0;return Wo(c[b>>2]|0,c[a+4>>2]|0)|0;}function kg(a,b){a=a|0;b=b|0;return((c[b+4>>2]|0)==15819?a+4|0:0)|0;}function lg(a){a=a|0;return 10528;}function mg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;e=d;f=e+16|0;c[e>>2]=11796;c[e+4>>2]=b;c[f>>2]=e;b=bg(a,e)|0;a=c[f>>2]|0;if((e|0)==(a|0)){wc[c[(c[a>>2]|0)+16>>2]&127](a);l=d;return b|0;}if(!a){l=d;return b|0;}wc[c[(c[a>>2]|0)+20>>2]&127](a);l=d;return b|0;}function ng(a){a=a|0;Vz(a);return;}function og(a){a=a|0;var b=0;b=Uz(8)|0;c[b>>2]=11796;c[b+4>>2]=c[a+4>>2];return b|0;}function pg(a,b){a=a|0;b=b|0;c[b>>2]=11796;c[b+4>>2]=c[a+4>>2];return;}function qg(a){a=a|0;return;}function rg(a){a=a|0;Vz(a);return;}function sg(a,b){a=a|0;b=b|0;return Uo(c[b>>2]|0,c[c[a+4>>2]>>2]|0)|0;}function tg(a,b){a=a|0;b=b|0;return((c[b+4>>2]|0)==16003?a+4|0:0)|0;}function ug(a){a=a|0;return 10560;}function vg(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;if(!(c[b>>2]|0)){f=0;return f|0;}g=d+4|0;h=c[d>>2]|0;i=(c[g>>2]|0)-h|0;if(!i){f=1;return f|0;}j=b+12|0;k=b+20|0;l=b+16|0;m=b+8|0;n=0;o=h;h=i;a:while(1){i=c[k>>2]|0;p=c[j>>2]|0;q=c[l>>2]|0;r=p-q+(i-p)|0;s=h-n|0;t=s>>>0<r>>>0?s:r;s=o+n|0;u=s+t|0;n=t+n|0;if(!t){v=p;w=q;}else{p=q;q=i;i=s;while(1){if((p|0)==(q|0)){s=c[j>>2]|0;t=q-s|0;x=t+1|0;y=s;if((x|0)<0){z=9;break a;}A=t<<1;B=t>>>0<1073741823?A>>>0<x>>>0?x:A:2147483647;if(!B)C=0;else C=Uz(B)|0;A=C+t|0;a[A>>0]=a[i>>0]|0;if((t|0)>0)mE(C|0,y|0,t|0)|0;c[j>>2]=C;c[l>>2]=A+1;c[k>>2]=C+B;if(s|0)Vz(y);}else{a[p>>0]=a[i>>0]|0;c[l>>2]=(c[l>>2]|0)+1;}y=i+1|0;if((y|0)==(u|0))break;p=c[l>>2]|0;q=c[k>>2]|0;i=y;}v=c[j>>2]|0;w=c[l>>2]|0;}if(((r|0)==0?1:(w-v|0)>>>0>=(c[m>>2]|0)>>>0)?!(wg(b,e)|0):0){f=0;z=22;break;}o=c[d>>2]|0;h=(c[g>>2]|0)-o|0;if(h>>>0<=n>>>0){f=1;z=22;break;}}if((z|0)==9)Wz(j);else if((z|0)==22)return f|0;return 0;}function wg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;d=l;l=l+32|0;e=d+12|0;f=d;g=a+12|0;h=c[g>>2]|0;i=a+16|0;j=c[i>>2]|0;k=h;if((h|0)==(j|0)){m=1;l=d;return m|0;}c[e>>2]=h;h=e+4|0;n=j-k|0;c[h>>2]=n;j=e+8|0;c[j>>2]=0;do{if(n){o=a+24|0;p=a+32|0;q=f+4|0;r=a+28|0;s=f+8|0;t=a+8|0;u=b+16|0;while(1){cg(o,(c[p>>2]|0)-(c[o>>2]|0)|0);v=c[o>>2]|0;c[f>>2]=v;c[q>>2]=(c[r>>2]|0)-v;c[s>>2]=0;v=Zo(c[a>>2]|0,f,e)|0;c[t>>2]=v;if(Ph(v)|0){w=8;break;}cg(o,c[s>>2]|0);v=c[u>>2]|0;if(!v){w=6;break;}xc[c[(c[v>>2]|0)+24>>2]&31](v,o);if((c[j>>2]|0)>>>0>=(c[h>>2]|0)>>>0){w=9;break;}}if((w|0)==6){o=va(4)|0;c[o>>2]=12636;ya(o|0,10800,50);}else if((w|0)==8){x=0;break;}else if((w|0)==9){y=c[g>>2]|0;w=10;break;}}else{y=k;w=10;}}while(0);if((w|0)==10){c[i>>2]=y;x=1;}m=x;l=d;return m|0;}function xg(a,b){a=a|0;b=b|0;return wg(a,b)|0;}function yg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=l;l=l+16|0;e=d;if(!(c[a>>2]|0)){f=1;l=d;return f|0;}if((c[a+12>>2]|0)!=(c[a+16>>2]|0)?!(wg(a,b)|0):0)g=0;else h=4;do{if((h|0)==4){i=a+24|0;cg(i,(c[a+32>>2]|0)-(c[i>>2]|0)|0);j=c[i>>2]|0;c[e>>2]=j;c[e+4>>2]=(c[a+28>>2]|0)-j;j=e+8|0;c[j>>2]=0;if(_o(c[a>>2]|0,e)|0){f=0;l=d;return f|0;}cg(i,c[j>>2]|0);j=c[b+16>>2]|0;if(!j){k=va(4)|0;c[k>>2]=12636;ya(k|0,10800,50);}else{xc[c[(c[j>>2]|0)+24>>2]&31](j,i);g=1;break;}}}while(0);b=c[a>>2]|0;c[a>>2]=0;if(!b){f=g;l=d;return f|0;}pc[c[a+4>>2]&63](b)|0;f=g;l=d;return f|0;}function zg(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=45;b=a+8|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;c[b+24>>2]=0;return;}function Ag(a){a=a|0;var b=0;b=c[a+24>>2]|0;if(b|0){c[a+28>>2]=b;Vz(b);}b=c[a+12>>2]|0;if(b|0){c[a+16>>2]=b;Vz(b);}b=c[a>>2]|0;c[a>>2]=0;if(!b)return;pc[c[a+4>>2]&63](b)|0;return;}function Bg(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+32|0;d=b;e=d+16|0;c[d>>2]=11840;c[e>>2]=d;f=Cg(a,d)|0;a=c[e>>2]|0;if((d|0)==(a|0)){wc[c[(c[a>>2]|0)+16>>2]&127](a);l=b;return f|0;}if(!a){l=b;return f|0;}wc[c[(c[a>>2]|0)+20>>2]&127](a);l=b;return f|0;}function Cg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;d=l;l=l+16|0;e=d;if(c[a>>2]|0){f=1;l=d;return f|0;}g=Ex()|0;if(!g){f=0;l=d;return f|0;}c[e>>2]=g;h=c[b+16>>2]|0;if(!h){b=va(4)|0;c[b>>2]=12636;ya(b|0,10800,50);}b=qc[c[(c[h>>2]|0)+24>>2]&63](h,e)|0;if(Ph(b)|0){Gx(g)|0;f=0;l=d;return f|0;}e=c[a>>2]|0;c[a>>2]=g;g=a+4|0;if(e|0)pc[c[g>>2]&63](e)|0;c[g>>2]=45;g=Hx()|0;e=a+12|0;h=a+20|0;i=c[e>>2]|0;j=i;if(((c[h>>2]|0)-i|0)>>>0<g>>>0){k=a+16|0;m=(c[k>>2]|0)-i|0;n=Uz(g)|0;if((m|0)>0)mE(n|0,j|0,m|0)|0;c[e>>2]=n;c[k>>2]=n+m;c[h>>2]=n+g;if(i|0)Vz(j);}cg(a+24|0,Ix()|0);c[a+8>>2]=b;f=1;l=d;return f|0;}function Dg(a){a=a|0;return;}function Eg(a){a=a|0;Vz(a);return;}function Fg(a){a=a|0;a=Uz(8)|0;c[a>>2]=11840;return a|0;}function Gg(a,b){a=a|0;b=b|0;c[b>>2]=11840;return;}function Hg(a){a=a|0;return;}function Ig(a){a=a|0;Vz(a);return;}function Jg(a,b){a=a|0;b=b|0;return Mx(c[b>>2]|0)|0;}function Kg(a,b){a=a|0;b=b|0;return((c[b+4>>2]|0)==16184?a+4|0:0)|0;}function Lg(a){a=a|0;return 10584;}function Mg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;e=d;f=e+16|0;c[e>>2]=11884;c[e+4>>2]=b;c[f>>2]=e;b=Cg(a,e)|0;a=c[f>>2]|0;if((e|0)==(a|0)){wc[c[(c[a>>2]|0)+16>>2]&127](a);l=d;return b|0;}if(!a){l=d;return b|0;}wc[c[(c[a>>2]|0)+20>>2]&127](a);l=d;return b|0;}function Ng(a){a=a|0;Vz(a);return;}function Og(a){a=a|0;var b=0;b=Uz(8)|0;c[b>>2]=11884;c[b+4>>2]=c[a+4>>2];return b|0;}function Pg(a,b){a=a|0;b=b|0;c[b>>2]=11884;c[b+4>>2]=c[a+4>>2];return;}function Qg(a){a=a|0;return;}function Rg(a){a=a|0;Vz(a);return;}function Sg(a,b){a=a|0;b=b|0;return Nx(c[b>>2]|0,c[c[a+4>>2]>>2]|0)|0;}function Tg(a,b){a=a|0;b=b|0;return((c[b+4>>2]|0)==16372?a+4|0:0)|0;}function Ug(a){a=a|0;return 10616;}function Vg(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;if(!(c[b>>2]|0)){f=0;return f|0;}g=d+4|0;h=c[d>>2]|0;i=(c[g>>2]|0)-h|0;if(!i){f=1;return f|0;}j=b+12|0;k=b+20|0;l=b+16|0;m=b+8|0;n=0;o=h;h=i;a:while(1){i=c[k>>2]|0;p=c[j>>2]|0;q=c[l>>2]|0;r=p-q+(i-p)|0;s=h-n|0;t=s>>>0<r>>>0?s:r;s=o+n|0;u=s+t|0;n=t+n|0;if(!t){v=p;w=q;}else{p=q;q=i;i=s;while(1){if((p|0)==(q|0)){s=c[j>>2]|0;t=q-s|0;x=t+1|0;y=s;if((x|0)<0){z=9;break a;}A=t<<1;B=t>>>0<1073741823?A>>>0<x>>>0?x:A:2147483647;if(!B)C=0;else C=Uz(B)|0;A=C+t|0;a[A>>0]=a[i>>0]|0;if((t|0)>0)mE(C|0,y|0,t|0)|0;c[j>>2]=C;c[l>>2]=A+1;c[k>>2]=C+B;if(s|0)Vz(y);}else{a[p>>0]=a[i>>0]|0;c[l>>2]=(c[l>>2]|0)+1;}y=i+1|0;if((y|0)==(u|0))break;p=c[l>>2]|0;q=c[k>>2]|0;i=y;}v=c[j>>2]|0;w=c[l>>2]|0;}if(((r|0)==0?1:(w-v|0)>>>0>=(c[m>>2]|0)>>>0)?!(Wg(b,e)|0):0){f=0;z=22;break;}o=c[d>>2]|0;h=(c[g>>2]|0)-o|0;if(h>>>0<=n>>>0){f=1;z=22;break;}}if((z|0)==9)Wz(j);else if((z|0)==22)return f|0;return 0;}function Wg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;d=l;l=l+32|0;e=d+12|0;f=d;g=a+12|0;h=c[g>>2]|0;i=a+16|0;j=c[i>>2]|0;k=h;if((h|0)==(j|0)){m=1;l=d;return m|0;}c[e>>2]=h;h=e+4|0;n=j-k|0;c[h>>2]=n;j=e+8|0;c[j>>2]=0;do{if(n){o=a+24|0;p=a+32|0;q=f+4|0;r=a+28|0;s=f+8|0;t=a+8|0;u=b+16|0;while(1){cg(o,(c[p>>2]|0)-(c[o>>2]|0)|0);v=c[o>>2]|0;c[f>>2]=v;c[q>>2]=(c[r>>2]|0)-v;c[s>>2]=0;v=Qx(c[a>>2]|0,f,e)|0;c[t>>2]=v;if(Ph(v)|0){w=8;break;}cg(o,c[s>>2]|0);v=c[u>>2]|0;if(!v){w=6;break;}xc[c[(c[v>>2]|0)+24>>2]&31](v,o);if((c[j>>2]|0)>>>0>=(c[h>>2]|0)>>>0){w=9;break;}}if((w|0)==6){o=va(4)|0;c[o>>2]=12636;ya(o|0,10800,50);}else if((w|0)==8){x=0;break;}else if((w|0)==9){y=c[g>>2]|0;w=10;break;}}else{y=k;w=10;}}while(0);if((w|0)==10){c[i>>2]=y;x=1;}m=x;l=d;return m|0;}function Xg(a,b){a=a|0;b=b|0;return Wg(a,b)|0;}function Yg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[a>>2]|0;if(!d){e=1;return e|0;}if((c[a+12>>2]|0)!=(c[a+16>>2]|0)){f=Wg(a,b)|0;b=c[a>>2]|0;c[a>>2]=0;if(!b){e=f;return e|0;}else{g=f;h=b;}}else{c[a>>2]=0;g=1;h=d;}pc[c[a+4>>2]&63](h)|0;e=g;return e|0;}function Zg(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=_g(c[d>>2]|0)|0;l=b;return a|0;}function _g(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return(c[d>>2]|0)>>>0>4294967176|0;}function $g(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=_g(c[d>>2]|0)|0;l=b;return a|0;}function ah(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;h=l;l=l+80|0;i=h+72|0;j=h+68|0;k=h+64|0;m=h+60|0;n=h+56|0;o=h+52|0;p=h+48|0;q=h+44|0;r=h+40|0;s=h+36|0;t=h+32|0;u=h+28|0;v=h+24|0;w=h+20|0;x=h+16|0;y=h+12|0;z=h+8|0;A=h+4|0;B=h;c[j>>2]=a;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=c[n>>2];c[q>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[r>>2]=c[p>>2];c[x>>2]=0;c[y>>2]=0;if((c[o>>2]|0)>>>0<4){c[i>>2]=-72;C=c[i>>2]|0;l=h;return C|0;}c[v>>2]=bh(c[r>>2]|0)|0;c[s>>2]=(c[v>>2]&15)+5;if((c[s>>2]|0)>15){c[i>>2]=-44;C=c[i>>2]|0;l=h;return C|0;}c[v>>2]=(c[v>>2]|0)>>>4;c[w>>2]=4;c[c[m>>2]>>2]=c[s>>2];c[t>>2]=(1<<c[s>>2])+1;c[u>>2]=1<<c[s>>2];c[s>>2]=(c[s>>2]|0)+1;a:while(1){if(!(((c[t>>2]|0)>1?(c[x>>2]|0)>>>0<=(c[c[k>>2]>>2]|0)>>>0:0)|0))break;do{if(c[y>>2]|0){c[z>>2]=c[x>>2];while(1){if((c[v>>2]&65535|0)!=65535)break;c[z>>2]=(c[z>>2]|0)+24;if((c[r>>2]|0)>>>0<((c[q>>2]|0)+-5|0)>>>0){c[r>>2]=(c[r>>2]|0)+2;m=bh(c[r>>2]|0)|0;c[v>>2]=m>>>(c[w>>2]|0);}else{c[v>>2]=(c[v>>2]|0)>>>16;c[w>>2]=(c[w>>2]|0)+16;}}while(1){if((c[v>>2]&3|0)!=3)break;c[z>>2]=(c[z>>2]|0)+3;c[v>>2]=(c[v>>2]|0)>>>2;c[w>>2]=(c[w>>2]|0)+2;}c[z>>2]=(c[z>>2]|0)+(c[v>>2]&3);c[w>>2]=(c[w>>2]|0)+2;if((c[z>>2]|0)>>>0>(c[c[k>>2]>>2]|0)>>>0){D=18;break a;}while(1){if((c[x>>2]|0)>>>0>=(c[z>>2]|0)>>>0)break;m=c[j>>2]|0;o=c[x>>2]|0;c[x>>2]=o+1;b[m+(o<<1)>>1]=0;}if((c[r>>2]|0)>>>0>((c[q>>2]|0)+-7|0)>>>0?((c[r>>2]|0)+(c[w>>2]>>3)|0)>>>0>((c[q>>2]|0)+-4|0)>>>0:0){c[v>>2]=(c[v>>2]|0)>>>2;break;}c[r>>2]=(c[r>>2]|0)+(c[w>>2]>>3);c[w>>2]=c[w>>2]&7;o=bh(c[r>>2]|0)|0;c[v>>2]=o>>>(c[w>>2]|0);}}while(0);c[A>>2]=(c[u>>2]<<1)-1-(c[t>>2]|0);o=c[v>>2]|0;m=c[u>>2]|0;if((c[v>>2]&(c[u>>2]|0)-1)>>>0<(c[A>>2]|0)>>>0){c[B>>2]=o&m-1;c[w>>2]=(c[w>>2]|0)+((c[s>>2]|0)-1);}else{c[B>>2]=o&(m<<1)-1;if((c[B>>2]|0)>=(c[u>>2]|0))c[B>>2]=(c[B>>2]|0)-(c[A>>2]|0);c[w>>2]=(c[w>>2]|0)+(c[s>>2]|0);}c[B>>2]=(c[B>>2]|0)+-1;m=c[B>>2]|0;c[t>>2]=(c[t>>2]|0)-((c[B>>2]|0)<0?0-m|0:m);m=c[B>>2]&65535;o=c[j>>2]|0;n=c[x>>2]|0;c[x>>2]=n+1;b[o+(n<<1)>>1]=m;c[y>>2]=((c[B>>2]|0)!=0^1)&1;while(1){if((c[t>>2]|0)>=(c[u>>2]|0))break;c[s>>2]=(c[s>>2]|0)+-1;c[u>>2]=c[u>>2]>>1;}if((c[r>>2]|0)>>>0>((c[q>>2]|0)+-7|0)>>>0?((c[r>>2]|0)+(c[w>>2]>>3)|0)>>>0>((c[q>>2]|0)+-4|0)>>>0:0){c[w>>2]=(c[w>>2]|0)-((c[q>>2]|0)+-4-(c[r>>2]|0)<<3);c[r>>2]=(c[q>>2]|0)+-4;}else{c[r>>2]=(c[r>>2]|0)+(c[w>>2]>>3);c[w>>2]=c[w>>2]&7;}m=bh(c[r>>2]|0)|0;c[v>>2]=m>>>(c[w>>2]&31);}if((D|0)==18){c[i>>2]=-48;C=c[i>>2]|0;l=h;return C|0;}if((c[t>>2]|0)!=1){c[i>>2]=-20;C=c[i>>2]|0;l=h;return C|0;}if((c[w>>2]|0)>32){c[i>>2]=-20;C=c[i>>2]|0;l=h;return C|0;}else{c[c[k>>2]>>2]=(c[x>>2]|0)-1;c[r>>2]=(c[r>>2]|0)+((c[w>>2]|0)+7>>3);c[i>>2]=(c[r>>2]|0)-(c[p>>2]|0);C=c[i>>2]|0;l=h;return C|0;}return 0;}function bh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(ch()|0)!=0;f=dh(c[e>>2]|0)|0;if(a){c[d>>2]=f;g=c[d>>2]|0;l=b;return g|0;}else{c[d>>2]=eh(f)|0;g=c[d>>2]|0;l=b;return g|0;}return 0;}function ch(){return d[11936]|0|0;}function dh(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0;}function eh(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[d>>2]<<24&-16777216|c[d>>2]<<8&16711680|(c[d>>2]|0)>>>8&65280|(c[d>>2]|0)>>>24&255|0;}function fh(b,e,f,g,h,i,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;k=l;l=l+336|0;m=k+332|0;n=k+328|0;o=k+324|0;p=k+320|0;q=k+316|0;r=k+312|0;s=k+308|0;t=k+304|0;u=k+300|0;v=k+296|0;w=k+292|0;x=k+288|0;y=k+284|0;z=k;A=k+280|0;B=k+276|0;C=k+272|0;D=k+268|0;E=k+264|0;F=k+260|0;c[n>>2]=b;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[v>>2]=c[s>>2];if(!(c[t>>2]|0)){c[m>>2]=-72;G=c[m>>2]|0;l=k;return G|0;}c[w>>2]=d[c[v>>2]>>0];s=c[w>>2]|0;a:do{if((c[w>>2]|0)>>>0<128){if((s+1|0)>>>0>(c[t>>2]|0)>>>0){c[m>>2]=-72;G=c[m>>2]|0;l=k;return G|0;}c[x>>2]=gh(c[n>>2]|0,(c[o>>2]|0)-1|0,(c[v>>2]|0)+1|0,c[w>>2]|0,z,6)|0;if(Zg(c[x>>2]|0)|0){c[m>>2]=c[x>>2];G=c[m>>2]|0;l=k;return G|0;}}else{c[x>>2]=s-127;c[w>>2]=(((c[x>>2]|0)+1|0)>>>0)/2|0;if(((c[w>>2]|0)+1|0)>>>0>(c[t>>2]|0)>>>0){c[m>>2]=-72;G=c[m>>2]|0;l=k;return G|0;}if((c[x>>2]|0)>>>0>=(c[o>>2]|0)>>>0){c[m>>2]=-20;G=c[m>>2]|0;l=k;return G|0;}c[v>>2]=(c[v>>2]|0)+1;c[y>>2]=0;while(1){if((c[y>>2]|0)>>>0>=(c[x>>2]|0)>>>0)break a;a[(c[n>>2]|0)+(c[y>>2]|0)>>0]=(d[(c[v>>2]|0)+(((c[y>>2]|0)>>>0)/2|0)>>0]|0)>>4;a[(c[n>>2]|0)+((c[y>>2]|0)+1)>>0]=(d[(c[v>>2]|0)+(((c[y>>2]|0)>>>0)/2|0)>>0]|0)&15;c[y>>2]=(c[y>>2]|0)+2;}}}while(0);y=c[p>>2]|0;v=y+52|0;do{c[y>>2]=0;y=y+4|0;}while((y|0)<(v|0));c[u>>2]=0;c[A>>2]=0;while(1){if((c[A>>2]|0)>>>0>=(c[x>>2]|0)>>>0)break;if((d[(c[n>>2]|0)+(c[A>>2]|0)>>0]|0|0)>=12){H=18;break;}y=(c[p>>2]|0)+((d[(c[n>>2]|0)+(c[A>>2]|0)>>0]|0)<<2)|0;c[y>>2]=(c[y>>2]|0)+1;c[u>>2]=(c[u>>2]|0)+(1<<(d[(c[n>>2]|0)+(c[A>>2]|0)>>0]|0)>>1);c[A>>2]=(c[A>>2]|0)+1;}if((H|0)==18){c[m>>2]=-20;G=c[m>>2]|0;l=k;return G|0;}if(!(c[u>>2]|0)){c[m>>2]=-20;G=c[m>>2]|0;l=k;return G|0;}c[B>>2]=(hh(c[u>>2]|0)|0)+1;if((c[B>>2]|0)>>>0>12){c[m>>2]=-20;G=c[m>>2]|0;l=k;return G|0;}c[c[r>>2]>>2]=c[B>>2];c[C>>2]=1<<c[B>>2];c[D>>2]=(c[C>>2]|0)-(c[u>>2]|0);c[E>>2]=1<<(hh(c[D>>2]|0)|0);c[F>>2]=(hh(c[D>>2]|0)|0)+1;if((c[E>>2]|0)!=(c[D>>2]|0)){c[m>>2]=-20;G=c[m>>2]|0;l=k;return G|0;}a[(c[n>>2]|0)+(c[x>>2]|0)>>0]=c[F>>2];n=(c[p>>2]|0)+(c[F>>2]<<2)|0;c[n>>2]=(c[n>>2]|0)+1;if((c[(c[p>>2]|0)+4>>2]|0)>>>0>=2?(c[(c[p>>2]|0)+4>>2]&1|0)==0:0){c[c[q>>2]>>2]=(c[x>>2]|0)+1;c[m>>2]=(c[w>>2]|0)+1;G=c[m>>2]|0;l=k;return G|0;}c[m>>2]=-20;G=c[m>>2]|0;l=k;return G|0;}function gh(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;h=l;l=l+576|0;i=h+560|0;j=h+556|0;k=h+552|0;m=h+548|0;n=h+544|0;o=h+540|0;p=h+536|0;q=h+532|0;r=h+528|0;s=h;t=h+524|0;u=h+520|0;v=h+516|0;w=h+512|0;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=c[m>>2];c[r>>2]=c[q>>2];c[u>>2]=255;c[v>>2]=ah(s,u,t,c[q>>2]|0,c[n>>2]|0)|0;if(ih(c[v>>2]|0)|0){c[i>>2]=c[v>>2];x=c[i>>2]|0;l=h;return x|0;}if((c[t>>2]|0)>>>0>(c[p>>2]|0)>>>0){c[i>>2]=-44;x=c[i>>2]|0;l=h;return x|0;}c[r>>2]=(c[r>>2]|0)+(c[v>>2]|0);c[n>>2]=(c[n>>2]|0)-(c[v>>2]|0);c[w>>2]=jh(c[o>>2]|0,s,c[u>>2]|0,c[t>>2]|0)|0;if(ih(c[w>>2]|0)|0){c[i>>2]=c[w>>2];x=c[i>>2]|0;l=h;return x|0;}else{c[i>>2]=kh(c[j>>2]|0,c[k>>2]|0,c[r>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;x=c[i>>2]|0;l=h;return x|0;}return 0;}function hh(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=31-(Q(c[d>>2]|0)|0)|0;l=b;return a|0;}function ih(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return(c[d>>2]|0)>>>0>4294967176|0;}function jh(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;i=l;l=l+608|0;j=i+580|0;k=i+576|0;m=i+572|0;n=i+568|0;o=i+564|0;p=i+560|0;q=i+556|0;r=i;s=i+552|0;t=i+548|0;u=i+544|0;v=i+588|0;w=i+584|0;x=i+540|0;y=i+536|0;z=i+532|0;A=i+528|0;B=i+524|0;C=i+520|0;D=i+516|0;E=i+592|0;F=i+512|0;c[k>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;c[p>>2]=(c[k>>2]|0)+4;c[q>>2]=c[p>>2];c[s>>2]=(c[n>>2]|0)+1;c[t>>2]=1<<c[o>>2];c[u>>2]=(c[t>>2]|0)-1;if((c[n>>2]|0)>>>0>255){c[j>>2]=-46;G=c[j>>2]|0;l=i;return G|0;}if((c[o>>2]|0)>>>0>12){c[j>>2]=-44;G=c[j>>2]|0;l=i;return G|0;}b[v>>1]=c[o>>2];b[v+2>>1]=1;b[w>>1]=1<<(c[o>>2]|0)-1;c[x>>2]=0;while(1){if((c[x>>2]|0)>>>0>=(c[s>>2]|0)>>>0)break;if((b[(c[m>>2]|0)+(c[x>>2]<<1)>>1]|0)==-1){n=c[x>>2]&255;p=c[q>>2]|0;h=c[u>>2]|0;c[u>>2]=h+-1;a[p+(h<<2)+2>>0]=n;b[r+(c[x>>2]<<1)>>1]=1;}else{if((b[(c[m>>2]|0)+(c[x>>2]<<1)>>1]|0)>=(b[w>>1]|0))b[v+2>>1]=0;b[r+(c[x>>2]<<1)>>1]=b[(c[m>>2]|0)+(c[x>>2]<<1)>>1]|0;}c[x>>2]=(c[x>>2]|0)+1;}x=c[k>>2]|0;b[x>>1]=b[v>>1]|0;b[x+2>>1]=b[v+2>>1]|0;c[y>>2]=(c[t>>2]|0)-1;c[z>>2]=((c[t>>2]|0)>>>1)+((c[t>>2]|0)>>>3)+3;c[B>>2]=0;c[A>>2]=0;while(1){if((c[A>>2]|0)>>>0>=(c[s>>2]|0)>>>0)break;c[C>>2]=0;while(1){H=c[A>>2]|0;if((c[C>>2]|0)>=(b[(c[m>>2]|0)+(c[A>>2]<<1)>>1]|0))break;a[(c[q>>2]|0)+(c[B>>2]<<2)+2>>0]=H;c[B>>2]=(c[B>>2]|0)+(c[z>>2]|0)&c[y>>2];while(1){if((c[B>>2]|0)>>>0<=(c[u>>2]|0)>>>0)break;c[B>>2]=(c[B>>2]|0)+(c[z>>2]|0)&c[y>>2];}c[C>>2]=(c[C>>2]|0)+1;}c[A>>2]=H+1;}if(c[B>>2]|0){c[j>>2]=-1;G=c[j>>2]|0;l=i;return G|0;}c[D>>2]=0;while(1){if((c[D>>2]|0)>>>0>=(c[t>>2]|0)>>>0)break;a[E>>0]=a[(c[q>>2]|0)+(c[D>>2]<<2)+2>>0]|0;B=r+(d[E>>0]<<1)|0;H=b[B>>1]|0;b[B>>1]=H+1<<16>>16;c[F>>2]=H&65535;H=c[o>>2]|0;B=H-(Eh(c[F>>2]|0)|0)&255;a[(c[q>>2]|0)+(c[D>>2]<<2)+3>>0]=B;b[(c[q>>2]|0)+(c[D>>2]<<2)>>1]=(c[F>>2]<<d[(c[q>>2]|0)+(c[D>>2]<<2)+3>>0])-(c[t>>2]|0);c[D>>2]=(c[D>>2]|0)+1;}c[j>>2]=0;G=c[j>>2]|0;l=i;return G|0;}function kh(b,d,f,g,h){b=b|0;d=d|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0;i=l;l=l+208|0;j=i+204|0;k=i+200|0;m=i+196|0;n=i+192|0;o=i+188|0;p=i+184|0;q=i+180|0;r=i+176|0;s=i+172|0;t=i+168|0;u=i+164|0;v=i+144|0;w=i+136|0;x=i+128|0;y=i+120|0;z=i+116|0;A=i+112|0;B=i+108|0;C=i+104|0;D=i+100|0;E=i+96|0;F=i+92|0;G=i+88|0;H=i+84|0;I=i+80|0;J=i+76|0;K=i+56|0;L=i+48|0;M=i+40|0;N=i+36|0;O=i+32|0;P=i+28|0;Q=i+24|0;R=i+20|0;S=i+16|0;T=i+12|0;U=i+8|0;V=i+4|0;W=i;c[P>>2]=b;c[Q>>2]=d;c[R>>2]=f;c[S>>2]=g;c[T>>2]=h;c[U>>2]=c[T>>2];c[V>>2]=c[U>>2];c[W>>2]=e[(c[V>>2]|0)+2>>1];V=c[P>>2]|0;P=c[Q>>2]|0;Q=c[R>>2]|0;R=c[S>>2]|0;S=c[T>>2]|0;if(c[W>>2]|0){c[A>>2]=V;c[B>>2]=P;c[C>>2]=Q;c[D>>2]=R;c[E>>2]=S;c[F>>2]=1;c[G>>2]=c[A>>2];c[H>>2]=c[G>>2];c[I>>2]=(c[H>>2]|0)+(c[B>>2]|0);c[J>>2]=(c[I>>2]|0)+-3;c[N>>2]=lh(K,c[C>>2]|0,c[D>>2]|0)|0;do{if(ih(c[N>>2]|0)|0)c[z>>2]=c[N>>2];else{mh(L,K,c[E>>2]|0);mh(M,K,c[E>>2]|0);while(1){D=(nh(K)|0)==0&1;if(!(D&(c[H>>2]|0)>>>0<(c[J>>2]|0)>>>0))break;if(c[F>>2]|0)X=(oh(L,K)|0)&255;else X=(ph(L,K)|0)&255;a[c[H>>2]>>0]=X;if(c[F>>2]|0)Y=(oh(M,K)|0)&255;else Y=(ph(M,K)|0)&255;a[(c[H>>2]|0)+1>>0]=Y;if((nh(K)|0)>>>0>0){Z=13;break;}if(c[F>>2]|0)_=(oh(L,K)|0)&255;else _=(ph(L,K)|0)&255;a[(c[H>>2]|0)+2>>0]=_;if(c[F>>2]|0)$=(oh(M,K)|0)&255;else $=(ph(M,K)|0)&255;a[(c[H>>2]|0)+3>>0]=$;c[H>>2]=(c[H>>2]|0)+4;}if((Z|0)==13)c[H>>2]=(c[H>>2]|0)+2;while(1){if((c[H>>2]|0)>>>0>((c[I>>2]|0)+-2|0)>>>0){Z=23;break;}if(c[F>>2]|0)aa=(oh(L,K)|0)&255;else aa=(ph(L,K)|0)&255;D=c[H>>2]|0;c[H>>2]=D+1;a[D>>0]=aa;if((nh(K)|0)==3){Z=28;break;}if((c[H>>2]|0)>>>0>((c[I>>2]|0)+-2|0)>>>0){Z=33;break;}if(c[F>>2]|0)ba=(oh(M,K)|0)&255;else ba=(ph(M,K)|0)&255;D=c[H>>2]|0;c[H>>2]=D+1;a[D>>0]=ba;if((nh(K)|0)==3){Z=38;break;}}if((Z|0)==23){c[z>>2]=-70;break;}else if((Z|0)==28){if(c[F>>2]|0)ca=(oh(M,K)|0)&255;else ca=(ph(M,K)|0)&255;D=c[H>>2]|0;c[H>>2]=D+1;a[D>>0]=ca;}else if((Z|0)==33){c[z>>2]=-70;break;}else if((Z|0)==38){if(c[F>>2]|0)da=(oh(L,K)|0)&255;else da=(ph(L,K)|0)&255;D=c[H>>2]|0;c[H>>2]=D+1;a[D>>0]=da;}c[z>>2]=(c[H>>2]|0)-(c[G>>2]|0);}}while(0);c[O>>2]=c[z>>2];ea=c[O>>2]|0;l=i;return ea|0;}else{c[k>>2]=V;c[m>>2]=P;c[n>>2]=Q;c[o>>2]=R;c[p>>2]=S;c[q>>2]=0;c[r>>2]=c[k>>2];c[s>>2]=c[r>>2];c[t>>2]=(c[s>>2]|0)+(c[m>>2]|0);c[u>>2]=(c[t>>2]|0)+-3;c[y>>2]=lh(v,c[n>>2]|0,c[o>>2]|0)|0;do{if(ih(c[y>>2]|0)|0)c[j>>2]=c[y>>2];else{mh(w,v,c[p>>2]|0);mh(x,v,c[p>>2]|0);while(1){o=(nh(v)|0)==0&1;if(!(o&(c[s>>2]|0)>>>0<(c[u>>2]|0)>>>0))break;if(c[q>>2]|0)fa=(oh(w,v)|0)&255;else fa=(ph(w,v)|0)&255;a[c[s>>2]>>0]=fa;if(c[q>>2]|0)ga=(oh(x,v)|0)&255;else ga=(ph(x,v)|0)&255;a[(c[s>>2]|0)+1>>0]=ga;if((nh(v)|0)>>>0>0){Z=56;break;}if(c[q>>2]|0)ha=(oh(w,v)|0)&255;else ha=(ph(w,v)|0)&255;a[(c[s>>2]|0)+2>>0]=ha;if(c[q>>2]|0)ia=(oh(x,v)|0)&255;else ia=(ph(x,v)|0)&255;a[(c[s>>2]|0)+3>>0]=ia;c[s>>2]=(c[s>>2]|0)+4;}if((Z|0)==56)c[s>>2]=(c[s>>2]|0)+2;while(1){if((c[s>>2]|0)>>>0>((c[t>>2]|0)+-2|0)>>>0){Z=66;break;}if(c[q>>2]|0)ja=(oh(w,v)|0)&255;else ja=(ph(w,v)|0)&255;o=c[s>>2]|0;c[s>>2]=o+1;a[o>>0]=ja;if((nh(v)|0)==3){Z=71;break;}if((c[s>>2]|0)>>>0>((c[t>>2]|0)+-2|0)>>>0){Z=76;break;}if(c[q>>2]|0)ka=(oh(x,v)|0)&255;else ka=(ph(x,v)|0)&255;o=c[s>>2]|0;c[s>>2]=o+1;a[o>>0]=ka;if((nh(v)|0)==3){Z=81;break;}}if((Z|0)==66){c[j>>2]=-70;break;}else if((Z|0)==71){if(c[q>>2]|0)la=(oh(x,v)|0)&255;else la=(ph(x,v)|0)&255;o=c[s>>2]|0;c[s>>2]=o+1;a[o>>0]=la;}else if((Z|0)==76){c[j>>2]=-70;break;}else if((Z|0)==81){if(c[q>>2]|0)ma=(oh(w,v)|0)&255;else ma=(ph(w,v)|0)&255;o=c[s>>2]|0;c[s>>2]=o+1;a[o>>0]=ma;}c[j>>2]=(c[s>>2]|0)-(c[r>>2]|0);}}while(0);c[O>>2]=c[j>>2];ea=c[O>>2]|0;l=i;return ea|0;}return 0;}function lh(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;g=l;l=l+32|0;h=g+12|0;i=g+8|0;j=g+4|0;k=g;m=g+17|0;n=g+16|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;if((c[k>>2]|0)>>>0<1){f=c[i>>2]|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[h>>2]=-72;o=c[h>>2]|0;l=g;return o|0;}c[(c[i>>2]|0)+12>>2]=c[j>>2];c[(c[i>>2]|0)+16>>2]=(c[(c[i>>2]|0)+12>>2]|0)+4;do{if((c[k>>2]|0)>>>0>=4){c[(c[i>>2]|0)+8>>2]=(c[j>>2]|0)+(c[k>>2]|0)+-4;f=vh(c[(c[i>>2]|0)+8>>2]|0)|0;c[c[i>>2]>>2]=f;a[m>>0]=a[(c[j>>2]|0)+((c[k>>2]|0)-1)>>0]|0;if(d[m>>0]|0|0)p=8-(Eh(d[m>>0]|0)|0)|0;else p=0;c[(c[i>>2]|0)+4>>2]=p;if(!(d[m>>0]|0)){c[h>>2]=-1;o=c[h>>2]|0;l=g;return o|0;}}else{c[(c[i>>2]|0)+8>>2]=c[(c[i>>2]|0)+12>>2];c[c[i>>2]>>2]=d[c[(c[i>>2]|0)+12>>2]>>0];switch(c[k>>2]|0){case 7:{f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+6>>0]|0)<<16);q=10;break;}case 6:{q=10;break;}case 5:{q=11;break;}case 4:{q=12;break;}case 3:{q=13;break;}case 2:{q=14;break;}default:{}}if((q|0)==10){f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+5>>0]|0)<<8);q=11;}if((q|0)==11){f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+4>>0]|0)<<0);q=12;}if((q|0)==12){f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+3>>0]|0)<<24);q=13;}if((q|0)==13){f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+2>>0]|0)<<16);q=14;}if((q|0)==14){f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+1>>0]|0)<<8);}a[n>>0]=a[(c[j>>2]|0)+((c[k>>2]|0)-1)>>0]|0;if(d[n>>0]|0|0)r=8-(Eh(d[n>>0]|0)|0)|0;else r=0;c[(c[i>>2]|0)+4>>2]=r;if(d[n>>0]|0|0){f=(c[i>>2]|0)+4|0;c[f>>2]=(c[f>>2]|0)+(4-(c[k>>2]|0)<<3);break;}c[h>>2]=-20;o=c[h>>2]|0;l=g;return o|0;}}while(0);c[h>>2]=c[k>>2];o=c[h>>2]|0;l=g;return o|0;}function mh(a,b,d){a=a|0;b=b|0;d=d|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=c[i>>2];c[k>>2]=c[j>>2];j=qh(c[h>>2]|0,e[c[k>>2]>>1]|0)|0;c[c[g>>2]>>2]=j;nh(c[h>>2]|0)|0;c[(c[g>>2]|0)+4>>2]=(c[i>>2]|0)+4;l=f;return;}function nh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+16|0;d=b+12|0;e=b+8|0;f=b+4|0;g=b;c[e>>2]=a;if((c[(c[e>>2]|0)+4>>2]|0)>>>0>32){c[d>>2]=3;h=c[d>>2]|0;l=b;return h|0;}a=c[e>>2]|0;if((c[(c[e>>2]|0)+8>>2]|0)>>>0>=(c[(c[e>>2]|0)+16>>2]|0)>>>0){i=(c[e>>2]|0)+8|0;c[i>>2]=(c[i>>2]|0)+(0-((c[a+4>>2]|0)>>>3));i=(c[e>>2]|0)+4|0;c[i>>2]=c[i>>2]&7;i=vh(c[(c[e>>2]|0)+8>>2]|0)|0;c[c[e>>2]>>2]=i;c[d>>2]=0;h=c[d>>2]|0;l=b;return h|0;}i=c[(c[e>>2]|0)+4>>2]|0;if((c[a+8>>2]|0)!=(c[(c[e>>2]|0)+12>>2]|0)){c[f>>2]=i>>>3;c[g>>2]=0;if(((c[(c[e>>2]|0)+8>>2]|0)+(0-(c[f>>2]|0))|0)>>>0<(c[(c[e>>2]|0)+12>>2]|0)>>>0){c[f>>2]=(c[(c[e>>2]|0)+8>>2]|0)-(c[(c[e>>2]|0)+12>>2]|0);c[g>>2]=1;}a=(c[e>>2]|0)+8|0;c[a>>2]=(c[a>>2]|0)+(0-(c[f>>2]|0));a=(c[e>>2]|0)+4|0;c[a>>2]=(c[a>>2]|0)-(c[f>>2]<<3);f=vh(c[(c[e>>2]|0)+8>>2]|0)|0;c[c[e>>2]>>2]=f;c[d>>2]=c[g>>2];h=c[d>>2]|0;l=b;return h|0;}if(i>>>0<32){c[d>>2]=1;h=c[d>>2]|0;l=b;return h|0;}else{c[d>>2]=2;h=c[d>>2]|0;l=b;return h|0;}return 0;}function oh(f,g){f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+12|0;j=h+8|0;k=h+16|0;m=h+4|0;n=h+20|0;o=h;c[i>>2]=f;c[j>>2]=g;g=(c[(c[i>>2]|0)+4>>2]|0)+(c[c[i>>2]>>2]<<2)|0;b[k>>1]=b[g>>1]|0;b[k+2>>1]=b[g+2>>1]|0;c[m>>2]=d[k+3>>0];a[n>>0]=a[k+2>>0]|0;c[o>>2]=th(c[j>>2]|0,c[m>>2]|0)|0;c[c[i>>2]>>2]=(e[k>>1]|0)+(c[o>>2]|0);l=h;return a[n>>0]|0;}function ph(f,g){f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+12|0;j=h+8|0;k=h+16|0;m=h+4|0;n=h+20|0;o=h;c[i>>2]=f;c[j>>2]=g;g=(c[(c[i>>2]|0)+4>>2]|0)+(c[c[i>>2]>>2]<<2)|0;b[k>>1]=b[g>>1]|0;b[k+2>>1]=b[g+2>>1]|0;c[m>>2]=d[k+3>>0];a[n>>0]=a[k+2>>0]|0;c[o>>2]=qh(c[j>>2]|0,c[m>>2]|0)|0;c[c[i>>2]>>2]=(e[k>>1]|0)+(c[o>>2]|0);l=h;return a[n>>0]|0;}function qh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=rh(c[e>>2]|0,c[f>>2]|0)|0;sh(c[e>>2]|0,c[f>>2]|0);l=d;return c[g>>2]|0;}function rh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;c[e>>2]=a;c[f>>2]=b;c[d>>2]=31;l=d;return c[c[e>>2]>>2]<<(c[(c[e>>2]|0)+4>>2]&31)>>>1>>>(31-(c[f>>2]|0)&31)|0;}function sh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=(c[e>>2]|0)+4|0;c[b>>2]=(c[b>>2]|0)+(c[f>>2]|0);l=d;return;}function th(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=uh(c[e>>2]|0,c[f>>2]|0)|0;sh(c[e>>2]|0,c[f>>2]|0);l=d;return c[g>>2]|0;}function uh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;c[e>>2]=a;c[f>>2]=b;c[d>>2]=31;l=d;return c[c[e>>2]>>2]<<(c[(c[e>>2]|0)+4>>2]&31)>>>(32-(c[f>>2]|0)&31)|0;}function vh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(wh()|0)!=0;f=c[e>>2]|0;if(a){c[d>>2]=xh(f)|0;g=c[d>>2]|0;l=b;return g|0;}else{a=yh(f)|0;c[d>>2]=a;g=c[d>>2]|0;l=b;return g|0;}return 0;}function wh(){return 1;}function xh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(zh()|0)!=0;f=Ch(c[e>>2]|0)|0;if(a){c[d>>2]=f;g=c[d>>2]|0;l=b;return g|0;}else{c[d>>2]=Dh(f)|0;g=c[d>>2]|0;l=b;return g|0;}return 0;}function yh(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b;e=b+8|0;c[e>>2]=a;a=(zh()|0)!=0;f=Ah(c[e>>2]|0)|0;e=y;if(a){a=d;c[a>>2]=f;c[a+4>>2]=e;}else{a=Bh(f,e)|0;e=d;c[e>>2]=a;c[e+4>>2]=y;}e=d;y=c[e+4>>2]|0;l=b;return c[e>>2]|0;}function zh(){return d[11936]|0|0;}function Ah(a){a=a|0;var b=0,e=0,f=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;e=a;f=a+4|0;y=d[f>>0]|d[f+1>>0]<<8|d[f+2>>0]<<16|d[f+3>>0]<<24;l=b;return d[e>>0]|d[e+1>>0]<<8|d[e+2>>0]<<16|d[e+3>>0]<<24|0;}function Bh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d;f=e;c[f>>2]=a;c[f+4>>2]=b;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,56)|0;b=y&-16777216;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,40)|0;f=b|y&16711680;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=f|y&65280;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,8)|0;f=b|y&255;b=e;a=iE(c[b>>2]|0,c[b+4>>2]|0,8)|0;b=e;g=iE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=e;h=iE(c[b>>2]|0,c[b+4>>2]|0,40)|0;b=e;e=iE(c[b>>2]|0,c[b+4>>2]|0,56)|0;y=f;l=d;return a&-16777216|g&16711680|h&65280|e&255|0;}function Ch(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0;}function Dh(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[d>>2]<<24&-16777216|c[d>>2]<<8&16711680|(c[d>>2]|0)>>>8&65280|(c[d>>2]|0)>>>24&255|0;}function Eh(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=31-(Q(c[d>>2]|0)|0)|0;l=b;return a|0;}function Fh(b){b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=b;b=c[e>>2]|0;a[f>>0]=a[b>>0]|0;a[f+1>>0]=a[b+1>>0]|0;a[f+2>>0]=a[b+2>>0]|0;a[f+3>>0]=a[b+3>>0]|0;l=d;return c[f>>2]|0;}function Gh(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[d>>2]<<24&-16777216|c[d>>2]<<8&16711680|(c[d>>2]|0)>>>8&65280|(c[d>>2]|0)>>>24&255|0;}function Hh(b){b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;f=d;c[e>>2]=b;b=c[e>>2]|0;a[f>>0]=a[b>>0]|0;a[f+1>>0]=a[b+1>>0]|0;a[f+2>>0]=a[b+2>>0]|0;a[f+3>>0]=a[b+3>>0]|0;a[f+4>>0]=a[b+4>>0]|0;a[f+5>>0]=a[b+5>>0]|0;a[f+6>>0]=a[b+6>>0]|0;a[f+7>>0]=a[b+7>>0]|0;b=f;y=c[b+4>>2]|0;l=d;return c[b>>2]|0;}function Ih(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d;f=e;c[f>>2]=a;c[f+4>>2]=b;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,56)|0;b=y&-16777216;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,40)|0;f=b|y&16711680;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=f|y&65280;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,8)|0;f=b|y&255;b=e;a=iE(c[b>>2]|0,c[b+4>>2]|0,8)|0;b=e;g=iE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=e;h=iE(c[b>>2]|0,c[b+4>>2]|0,40)|0;b=e;e=iE(c[b>>2]|0,c[b+4>>2]|0,56)|0;y=f;l=d;return a&-16777216|g&16711680|h&65280|e&255|0;}function Jh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=l;l=l+16|0;g=f+8|0;h=f;i=g;c[i>>2]=a;c[i+4>>2]=b;b=h;c[b>>2]=d;c[b+4>>2]=e;e=h;h=cE(c[e>>2]|0,c[e+4>>2]|0,668265295,-1028477379)|0;e=g;b=dE(c[e>>2]|0,c[e+4>>2]|0,h|0,y|0)|0;h=g;c[h>>2]=b;c[h+4>>2]=y;h=g;b=jE(c[h>>2]|0,c[h+4>>2]|0,31)|0;h=y;e=g;d=iE(c[e>>2]|0,c[e+4>>2]|0,33)|0;e=g;c[e>>2]=b|d;c[e+4>>2]=h|y;h=g;e=cE(c[h>>2]|0,c[h+4>>2]|0,-2048144761,-1640531535)|0;h=g;c[h>>2]=e;c[h+4>>2]=y;h=g;y=c[h+4>>2]|0;l=f;return c[h>>2]|0;}function Kh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=l;l=l+16|0;g=f+8|0;h=f;i=g;c[i>>2]=a;c[i+4>>2]=b;b=h;c[b>>2]=d;c[b+4>>2]=e;e=h;b=Jh(0,0,c[e>>2]|0,c[e+4>>2]|0)|0;e=h;c[e>>2]=b;c[e+4>>2]=y;e=h;h=g;b=c[h+4>>2]^c[e+4>>2];d=g;c[d>>2]=c[h>>2]^c[e>>2];c[d+4>>2]=b;b=g;d=cE(c[b>>2]|0,c[b+4>>2]|0,-2048144761,-1640531535)|0;b=dE(d|0,y|0,-1028477341,-2048144777)|0;d=g;c[d>>2]=b;c[d+4>>2]=y;d=g;y=c[d+4>>2]|0;l=f;return c[d>>2]|0;}function Lh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+112|0;f=e+96|0;g=e+88|0;h=e;c[f>>2]=a;a=g;c[a>>2]=b;c[a+4>>2]=d;d=h;a=d+80|0;do{c[d>>2]=0;d=d+4|0;}while((d|0)<(a|0));b=g;i=dE(c[b>>2]|0,c[b+4>>2]|0,-2048144761,-1640531535)|0;b=dE(i|0,y|0,668265295,-1028477379)|0;i=h+8|0;c[i>>2]=b;c[i+4>>2]=y;i=g;b=dE(c[i>>2]|0,c[i+4>>2]|0,668265295,-1028477379)|0;i=h+16|0;c[i>>2]=b;c[i+4>>2]=y;i=g;b=dE(c[i>>2]|0,c[i+4>>2]|0,0,0)|0;i=h+24|0;c[i>>2]=b;c[i+4>>2]=y;i=g;g=eE(c[i>>2]|0,c[i+4>>2]|0,-2048144761,-1640531535)|0;i=h+32|0;c[i>>2]=g;c[i+4>>2]=y;d=c[f>>2]|0;f=h;a=d+88|0;do{c[d>>2]=c[f>>2];d=d+4|0;f=f+4|0;}while((d|0)<(a|0));l=e;return 0;}function Mh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=c[f>>2]|0;mE(d|0,c[g>>2]|0,c[h>>2]|0)|0;l=e;return d|0;}function Nh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,yc=0,zc=0,Ac=0,Bc=0,Cc=0,Dc=0,Ec=0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0;f=l;l=l+608|0;g=f+184|0;h=f+592|0;i=f+588|0;j=f+584|0;k=f+580|0;m=f+576|0;n=f+176|0;o=f+572|0;p=f+568|0;q=f+564|0;r=f+560|0;s=f+556|0;t=f+168|0;u=f+552|0;v=f+548|0;w=f+544|0;x=f+540|0;z=f+536|0;A=f+160|0;B=f+532|0;C=f+528|0;D=f+524|0;E=f+520|0;F=f+516|0;G=f+152|0;H=f+512|0;I=f+508|0;J=f+504|0;K=f+500|0;L=f+496|0;M=f+144|0;N=f+492|0;O=f+488|0;P=f+484|0;Q=f+480|0;R=f+476|0;S=f+136|0;T=f+472|0;U=f+468|0;V=f+464|0;W=f+460|0;X=f+456|0;Y=f+128|0;Z=f+452|0;_=f+448|0;$=f+444|0;aa=f+440|0;ba=f+436|0;ca=f+432|0;da=f+428|0;ea=f+424|0;fa=f+420|0;ga=f+416|0;ha=f+412|0;ia=f+408|0;ja=f+404|0;ka=f+120|0;la=f+112|0;ma=f+104|0;na=f+96|0;oa=f+88|0;pa=f+400|0;qa=f+396|0;ra=f+392|0;sa=f+388|0;ta=f+384|0;ua=f+80|0;va=f+380|0;wa=f+376|0;xa=f+372|0;ya=f+368|0;za=f+364|0;Aa=f+72|0;Ba=f+360|0;Ca=f+356|0;Da=f+352|0;Ea=f+348|0;Fa=f+344|0;Ga=f+64|0;Ha=f+340|0;Ia=f+336|0;Ja=f+332|0;Ka=f+328|0;La=f+324|0;Ma=f+56|0;Na=f+320|0;Oa=f+316|0;Pa=f+312|0;Qa=f+308|0;Ra=f+304|0;Sa=f+48|0;Ta=f+300|0;Ua=f+296|0;Va=f+292|0;Wa=f+288|0;Xa=f+284|0;Ya=f+40|0;Za=f+280|0;_a=f+276|0;$a=f+272|0;ab=f+268|0;bb=f+264|0;cb=f+32|0;db=f+260|0;eb=f+256|0;fb=f+252|0;gb=f+248|0;hb=f+244|0;ib=f+240|0;jb=f+236|0;kb=f+232|0;lb=f+228|0;mb=f+224|0;nb=f+220|0;ob=f+216|0;pb=f+212|0;qb=f+24|0;rb=f+16|0;sb=f+8|0;tb=f;ub=f+208|0;vb=f+204|0;wb=f+200|0;xb=f+196|0;yb=f+192|0;c[vb>>2]=b;c[wb>>2]=d;c[xb>>2]=e;c[yb>>2]=a[11920];e=c[vb>>2]|0;vb=c[wb>>2]|0;wb=c[xb>>2]|0;if((c[yb>>2]|0)==1){c[jb>>2]=e;c[kb>>2]=vb;c[lb>>2]=wb;c[mb>>2]=1;c[nb>>2]=c[kb>>2];c[ob>>2]=(c[nb>>2]|0)+(c[lb>>2]|0);yb=c[jb>>2]|0;xb=yb;d=dE(c[xb>>2]|0,c[xb+4>>2]|0,c[lb>>2]|0,0)|0;xb=yb;c[xb>>2]=d;c[xb+4>>2]=y;xb=c[jb>>2]|0;if(((c[(c[jb>>2]|0)+72>>2]|0)+(c[lb>>2]|0)|0)>>>0<32){Mh(xb+40+(c[(c[jb>>2]|0)+72>>2]|0)|0,c[kb>>2]|0,c[lb>>2]|0)|0;d=(c[jb>>2]|0)+72|0;c[d>>2]=(c[d>>2]|0)+(c[lb>>2]|0);c[ib>>2]=0;}else{if(c[xb+72>>2]|0){Mh((c[jb>>2]|0)+40+(c[(c[jb>>2]|0)+72>>2]|0)|0,c[kb>>2]|0,32-(c[(c[jb>>2]|0)+72>>2]|0)|0)|0;kb=(c[jb>>2]|0)+8|0;xb=c[kb>>2]|0;lb=c[kb+4>>2]|0;kb=c[mb>>2]|0;c[gb>>2]=(c[jb>>2]|0)+40;c[hb>>2]=kb;kb=c[hb>>2]|0;c[db>>2]=c[gb>>2];c[eb>>2]=kb;c[fb>>2]=1;kb=(c[eb>>2]|0)==1;eb=c[db>>2]|0;if((c[fb>>2]|0)==1){fb=Hh(eb)|0;db=y;if(kb){zb=fb;Ab=db;}else{gb=Ih(fb,db)|0;zb=gb;Ab=y;}gb=cb;c[gb>>2]=zb;c[gb+4>>2]=Ab;}else{Ab=eb;eb=c[Ab>>2]|0;gb=c[Ab+4>>2]|0;if(kb){Bb=eb;Cb=gb;}else{kb=Ih(eb,gb)|0;Bb=kb;Cb=y;}kb=cb;c[kb>>2]=Bb;c[kb+4>>2]=Cb;}Cb=cb;cb=Jh(xb,lb,c[Cb>>2]|0,c[Cb+4>>2]|0)|0;Cb=(c[jb>>2]|0)+8|0;c[Cb>>2]=cb;c[Cb+4>>2]=y;Cb=(c[jb>>2]|0)+16|0;cb=c[Cb>>2]|0;lb=c[Cb+4>>2]|0;Cb=c[mb>>2]|0;c[ab>>2]=(c[jb>>2]|0)+40+8;c[bb>>2]=Cb;Cb=c[bb>>2]|0;c[Za>>2]=c[ab>>2];c[_a>>2]=Cb;c[$a>>2]=1;Cb=(c[_a>>2]|0)==1;_a=c[Za>>2]|0;if((c[$a>>2]|0)==1){$a=Hh(_a)|0;Za=y;if(Cb){Db=$a;Eb=Za;}else{ab=Ih($a,Za)|0;Db=ab;Eb=y;}ab=Ya;c[ab>>2]=Db;c[ab+4>>2]=Eb;}else{Eb=_a;_a=c[Eb>>2]|0;ab=c[Eb+4>>2]|0;if(Cb){Fb=_a;Gb=ab;}else{Cb=Ih(_a,ab)|0;Fb=Cb;Gb=y;}Cb=Ya;c[Cb>>2]=Fb;c[Cb+4>>2]=Gb;}Gb=Ya;Ya=Jh(cb,lb,c[Gb>>2]|0,c[Gb+4>>2]|0)|0;Gb=(c[jb>>2]|0)+16|0;c[Gb>>2]=Ya;c[Gb+4>>2]=y;Gb=(c[jb>>2]|0)+24|0;Ya=c[Gb>>2]|0;lb=c[Gb+4>>2]|0;Gb=c[mb>>2]|0;c[Wa>>2]=(c[jb>>2]|0)+40+16;c[Xa>>2]=Gb;Gb=c[Xa>>2]|0;c[Ta>>2]=c[Wa>>2];c[Ua>>2]=Gb;c[Va>>2]=1;Gb=(c[Ua>>2]|0)==1;Ua=c[Ta>>2]|0;if((c[Va>>2]|0)==1){Va=Hh(Ua)|0;Ta=y;if(Gb){Hb=Va;Ib=Ta;}else{Wa=Ih(Va,Ta)|0;Hb=Wa;Ib=y;}Wa=Sa;c[Wa>>2]=Hb;c[Wa+4>>2]=Ib;}else{Ib=Ua;Ua=c[Ib>>2]|0;Wa=c[Ib+4>>2]|0;if(Gb){Jb=Ua;Kb=Wa;}else{Gb=Ih(Ua,Wa)|0;Jb=Gb;Kb=y;}Gb=Sa;c[Gb>>2]=Jb;c[Gb+4>>2]=Kb;}Kb=Sa;Sa=Jh(Ya,lb,c[Kb>>2]|0,c[Kb+4>>2]|0)|0;Kb=(c[jb>>2]|0)+24|0;c[Kb>>2]=Sa;c[Kb+4>>2]=y;Kb=(c[jb>>2]|0)+32|0;Sa=c[Kb>>2]|0;lb=c[Kb+4>>2]|0;Kb=c[mb>>2]|0;c[Qa>>2]=(c[jb>>2]|0)+40+24;c[Ra>>2]=Kb;Kb=c[Ra>>2]|0;c[Na>>2]=c[Qa>>2];c[Oa>>2]=Kb;c[Pa>>2]=1;Kb=(c[Oa>>2]|0)==1;Oa=c[Na>>2]|0;if((c[Pa>>2]|0)==1){Pa=Hh(Oa)|0;Na=y;if(Kb){Lb=Pa;Mb=Na;}else{Qa=Ih(Pa,Na)|0;Lb=Qa;Mb=y;}Qa=Ma;c[Qa>>2]=Lb;c[Qa+4>>2]=Mb;}else{Mb=Oa;Oa=c[Mb>>2]|0;Qa=c[Mb+4>>2]|0;if(Kb){Nb=Oa;Ob=Qa;}else{Kb=Ih(Oa,Qa)|0;Nb=Kb;Ob=y;}Kb=Ma;c[Kb>>2]=Nb;c[Kb+4>>2]=Ob;}Ob=Ma;Ma=Jh(Sa,lb,c[Ob>>2]|0,c[Ob+4>>2]|0)|0;Ob=(c[jb>>2]|0)+32|0;c[Ob>>2]=Ma;c[Ob+4>>2]=y;c[nb>>2]=(c[nb>>2]|0)+(32-(c[(c[jb>>2]|0)+72>>2]|0));c[(c[jb>>2]|0)+72>>2]=0;}if(((c[nb>>2]|0)+32|0)>>>0<=(c[ob>>2]|0)>>>0){c[pb>>2]=(c[ob>>2]|0)+-32;Ob=(c[jb>>2]|0)+8|0;Ma=c[Ob+4>>2]|0;lb=qb;c[lb>>2]=c[Ob>>2];c[lb+4>>2]=Ma;Ma=(c[jb>>2]|0)+16|0;lb=c[Ma+4>>2]|0;Ob=rb;c[Ob>>2]=c[Ma>>2];c[Ob+4>>2]=lb;lb=(c[jb>>2]|0)+24|0;Ob=c[lb+4>>2]|0;Ma=sb;c[Ma>>2]=c[lb>>2];c[Ma+4>>2]=Ob;Ob=(c[jb>>2]|0)+32|0;Ma=c[Ob+4>>2]|0;lb=tb;c[lb>>2]=c[Ob>>2];c[lb+4>>2]=Ma;do{Ma=qb;lb=c[Ma>>2]|0;Ob=c[Ma+4>>2]|0;Ma=c[mb>>2]|0;c[Ka>>2]=c[nb>>2];c[La>>2]=Ma;Ma=c[La>>2]|0;c[Ha>>2]=c[Ka>>2];c[Ia>>2]=Ma;c[Ja>>2]=1;Ma=(c[Ia>>2]|0)==1;Sa=c[Ha>>2]|0;if((c[Ja>>2]|0)==1){Kb=Hh(Sa)|0;Nb=y;if(Ma){Pb=Kb;Qb=Nb;}else{Qa=Ih(Kb,Nb)|0;Pb=Qa;Qb=y;}Qa=Ga;c[Qa>>2]=Pb;c[Qa+4>>2]=Qb;}else{Qa=Sa;Sa=c[Qa>>2]|0;Nb=c[Qa+4>>2]|0;if(Ma){Rb=Sa;Sb=Nb;}else{Ma=Ih(Sa,Nb)|0;Rb=Ma;Sb=y;}Ma=Ga;c[Ma>>2]=Rb;c[Ma+4>>2]=Sb;}Ma=Ga;Nb=Jh(lb,Ob,c[Ma>>2]|0,c[Ma+4>>2]|0)|0;Ma=qb;c[Ma>>2]=Nb;c[Ma+4>>2]=y;c[nb>>2]=(c[nb>>2]|0)+8;Ma=rb;Nb=c[Ma>>2]|0;Ob=c[Ma+4>>2]|0;Ma=c[mb>>2]|0;c[Ea>>2]=c[nb>>2];c[Fa>>2]=Ma;Ma=c[Fa>>2]|0;c[Ba>>2]=c[Ea>>2];c[Ca>>2]=Ma;c[Da>>2]=1;Ma=(c[Ca>>2]|0)==1;lb=c[Ba>>2]|0;if((c[Da>>2]|0)==1){Sa=Hh(lb)|0;Qa=y;if(Ma){Tb=Sa;Ub=Qa;}else{Kb=Ih(Sa,Qa)|0;Tb=Kb;Ub=y;}Kb=Aa;c[Kb>>2]=Tb;c[Kb+4>>2]=Ub;}else{Kb=lb;lb=c[Kb>>2]|0;Qa=c[Kb+4>>2]|0;if(Ma){Vb=lb;Wb=Qa;}else{Ma=Ih(lb,Qa)|0;Vb=Ma;Wb=y;}Ma=Aa;c[Ma>>2]=Vb;c[Ma+4>>2]=Wb;}Ma=Aa;Qa=Jh(Nb,Ob,c[Ma>>2]|0,c[Ma+4>>2]|0)|0;Ma=rb;c[Ma>>2]=Qa;c[Ma+4>>2]=y;c[nb>>2]=(c[nb>>2]|0)+8;Ma=sb;Qa=c[Ma>>2]|0;Ob=c[Ma+4>>2]|0;Ma=c[mb>>2]|0;c[ya>>2]=c[nb>>2];c[za>>2]=Ma;Ma=c[za>>2]|0;c[va>>2]=c[ya>>2];c[wa>>2]=Ma;c[xa>>2]=1;Ma=(c[wa>>2]|0)==1;Nb=c[va>>2]|0;if((c[xa>>2]|0)==1){lb=Hh(Nb)|0;Kb=y;if(Ma){Xb=lb;Yb=Kb;}else{Sa=Ih(lb,Kb)|0;Xb=Sa;Yb=y;}Sa=ua;c[Sa>>2]=Xb;c[Sa+4>>2]=Yb;}else{Sa=Nb;Nb=c[Sa>>2]|0;Kb=c[Sa+4>>2]|0;if(Ma){Zb=Nb;_b=Kb;}else{Ma=Ih(Nb,Kb)|0;Zb=Ma;_b=y;}Ma=ua;c[Ma>>2]=Zb;c[Ma+4>>2]=_b;}Ma=ua;Kb=Jh(Qa,Ob,c[Ma>>2]|0,c[Ma+4>>2]|0)|0;Ma=sb;c[Ma>>2]=Kb;c[Ma+4>>2]=y;c[nb>>2]=(c[nb>>2]|0)+8;Ma=tb;Kb=c[Ma>>2]|0;Ob=c[Ma+4>>2]|0;Ma=c[mb>>2]|0;c[sa>>2]=c[nb>>2];c[ta>>2]=Ma;Ma=c[ta>>2]|0;c[pa>>2]=c[sa>>2];c[qa>>2]=Ma;c[ra>>2]=1;Ma=(c[qa>>2]|0)==1;Qa=c[pa>>2]|0;if((c[ra>>2]|0)==1){Nb=Hh(Qa)|0;Sa=y;if(Ma){$b=Nb;ac=Sa;}else{lb=Ih(Nb,Sa)|0;$b=lb;ac=y;}lb=oa;c[lb>>2]=$b;c[lb+4>>2]=ac;}else{lb=Qa;Qa=c[lb>>2]|0;Sa=c[lb+4>>2]|0;if(Ma){bc=Qa;cc=Sa;}else{Ma=Ih(Qa,Sa)|0;bc=Ma;cc=y;}Ma=oa;c[Ma>>2]=bc;c[Ma+4>>2]=cc;}Ma=oa;Sa=Jh(Kb,Ob,c[Ma>>2]|0,c[Ma+4>>2]|0)|0;Ma=tb;c[Ma>>2]=Sa;c[Ma+4>>2]=y;c[nb>>2]=(c[nb>>2]|0)+8;}while((c[nb>>2]|0)>>>0<=(c[pb>>2]|0)>>>0);pb=qb;qb=c[pb+4>>2]|0;oa=(c[jb>>2]|0)+8|0;c[oa>>2]=c[pb>>2];c[oa+4>>2]=qb;qb=rb;rb=c[qb+4>>2]|0;oa=(c[jb>>2]|0)+16|0;c[oa>>2]=c[qb>>2];c[oa+4>>2]=rb;rb=sb;sb=c[rb+4>>2]|0;oa=(c[jb>>2]|0)+24|0;c[oa>>2]=c[rb>>2];c[oa+4>>2]=sb;sb=tb;tb=c[sb+4>>2]|0;oa=(c[jb>>2]|0)+32|0;c[oa>>2]=c[sb>>2];c[oa+4>>2]=tb;}if((c[nb>>2]|0)>>>0<(c[ob>>2]|0)>>>0){Mh((c[jb>>2]|0)+40|0,c[nb>>2]|0,(c[ob>>2]|0)-(c[nb>>2]|0)|0)|0;c[(c[jb>>2]|0)+72>>2]=(c[ob>>2]|0)-(c[nb>>2]|0);}c[ib>>2]=0;}c[ub>>2]=c[ib>>2];dc=c[ub>>2]|0;l=f;return dc|0;}else{c[da>>2]=e;c[ea>>2]=vb;c[fa>>2]=wb;c[ga>>2]=0;c[ha>>2]=c[ea>>2];c[ia>>2]=(c[ha>>2]|0)+(c[fa>>2]|0);wb=c[da>>2]|0;vb=wb;e=dE(c[vb>>2]|0,c[vb+4>>2]|0,c[fa>>2]|0,0)|0;vb=wb;c[vb>>2]=e;c[vb+4>>2]=y;vb=c[da>>2]|0;if(((c[(c[da>>2]|0)+72>>2]|0)+(c[fa>>2]|0)|0)>>>0<32){Mh(vb+40+(c[(c[da>>2]|0)+72>>2]|0)|0,c[ea>>2]|0,c[fa>>2]|0)|0;e=(c[da>>2]|0)+72|0;c[e>>2]=(c[e>>2]|0)+(c[fa>>2]|0);c[ca>>2]=0;}else{if(c[vb+72>>2]|0){Mh((c[da>>2]|0)+40+(c[(c[da>>2]|0)+72>>2]|0)|0,c[ea>>2]|0,32-(c[(c[da>>2]|0)+72>>2]|0)|0)|0;ea=(c[da>>2]|0)+8|0;vb=c[ea>>2]|0;fa=c[ea+4>>2]|0;ea=c[ga>>2]|0;c[aa>>2]=(c[da>>2]|0)+40;c[ba>>2]=ea;ea=c[ba>>2]|0;c[Z>>2]=c[aa>>2];c[_>>2]=ea;c[$>>2]=1;ea=(c[_>>2]|0)==1;_=c[Z>>2]|0;if((c[$>>2]|0)==1){$=Hh(_)|0;Z=y;if(ea){ec=$;fc=Z;}else{aa=Ih($,Z)|0;ec=aa;fc=y;}aa=Y;c[aa>>2]=ec;c[aa+4>>2]=fc;}else{fc=_;_=c[fc>>2]|0;aa=c[fc+4>>2]|0;if(ea){gc=_;hc=aa;}else{ea=Ih(_,aa)|0;gc=ea;hc=y;}ea=Y;c[ea>>2]=gc;c[ea+4>>2]=hc;}hc=Y;Y=Jh(vb,fa,c[hc>>2]|0,c[hc+4>>2]|0)|0;hc=(c[da>>2]|0)+8|0;c[hc>>2]=Y;c[hc+4>>2]=y;hc=(c[da>>2]|0)+16|0;Y=c[hc>>2]|0;fa=c[hc+4>>2]|0;hc=c[ga>>2]|0;c[W>>2]=(c[da>>2]|0)+40+8;c[X>>2]=hc;hc=c[X>>2]|0;c[T>>2]=c[W>>2];c[U>>2]=hc;c[V>>2]=1;hc=(c[U>>2]|0)==1;U=c[T>>2]|0;if((c[V>>2]|0)==1){V=Hh(U)|0;T=y;if(hc){ic=V;jc=T;}else{W=Ih(V,T)|0;ic=W;jc=y;}W=S;c[W>>2]=ic;c[W+4>>2]=jc;}else{jc=U;U=c[jc>>2]|0;W=c[jc+4>>2]|0;if(hc){kc=U;lc=W;}else{hc=Ih(U,W)|0;kc=hc;lc=y;}hc=S;c[hc>>2]=kc;c[hc+4>>2]=lc;}lc=S;S=Jh(Y,fa,c[lc>>2]|0,c[lc+4>>2]|0)|0;lc=(c[da>>2]|0)+16|0;c[lc>>2]=S;c[lc+4>>2]=y;lc=(c[da>>2]|0)+24|0;S=c[lc>>2]|0;fa=c[lc+4>>2]|0;lc=c[ga>>2]|0;c[Q>>2]=(c[da>>2]|0)+40+16;c[R>>2]=lc;lc=c[R>>2]|0;c[N>>2]=c[Q>>2];c[O>>2]=lc;c[P>>2]=1;lc=(c[O>>2]|0)==1;O=c[N>>2]|0;if((c[P>>2]|0)==1){P=Hh(O)|0;N=y;if(lc){mc=P;nc=N;}else{Q=Ih(P,N)|0;mc=Q;nc=y;}Q=M;c[Q>>2]=mc;c[Q+4>>2]=nc;}else{nc=O;O=c[nc>>2]|0;Q=c[nc+4>>2]|0;if(lc){oc=O;pc=Q;}else{lc=Ih(O,Q)|0;oc=lc;pc=y;}lc=M;c[lc>>2]=oc;c[lc+4>>2]=pc;}pc=M;M=Jh(S,fa,c[pc>>2]|0,c[pc+4>>2]|0)|0;pc=(c[da>>2]|0)+24|0;c[pc>>2]=M;c[pc+4>>2]=y;pc=(c[da>>2]|0)+32|0;M=c[pc>>2]|0;fa=c[pc+4>>2]|0;pc=c[ga>>2]|0;c[K>>2]=(c[da>>2]|0)+40+24;c[L>>2]=pc;pc=c[L>>2]|0;c[H>>2]=c[K>>2];c[I>>2]=pc;c[J>>2]=1;pc=(c[I>>2]|0)==1;I=c[H>>2]|0;if((c[J>>2]|0)==1){J=Hh(I)|0;H=y;if(pc){qc=J;rc=H;}else{K=Ih(J,H)|0;qc=K;rc=y;}K=G;c[K>>2]=qc;c[K+4>>2]=rc;}else{rc=I;I=c[rc>>2]|0;K=c[rc+4>>2]|0;if(pc){sc=I;tc=K;}else{pc=Ih(I,K)|0;sc=pc;tc=y;}pc=G;c[pc>>2]=sc;c[pc+4>>2]=tc;}tc=G;G=Jh(M,fa,c[tc>>2]|0,c[tc+4>>2]|0)|0;tc=(c[da>>2]|0)+32|0;c[tc>>2]=G;c[tc+4>>2]=y;c[ha>>2]=(c[ha>>2]|0)+(32-(c[(c[da>>2]|0)+72>>2]|0));c[(c[da>>2]|0)+72>>2]=0;}if(((c[ha>>2]|0)+32|0)>>>0<=(c[ia>>2]|0)>>>0){c[ja>>2]=(c[ia>>2]|0)+-32;tc=(c[da>>2]|0)+8|0;G=c[tc+4>>2]|0;fa=ka;c[fa>>2]=c[tc>>2];c[fa+4>>2]=G;G=(c[da>>2]|0)+16|0;fa=c[G+4>>2]|0;tc=la;c[tc>>2]=c[G>>2];c[tc+4>>2]=fa;fa=(c[da>>2]|0)+24|0;tc=c[fa+4>>2]|0;G=ma;c[G>>2]=c[fa>>2];c[G+4>>2]=tc;tc=(c[da>>2]|0)+32|0;G=c[tc+4>>2]|0;fa=na;c[fa>>2]=c[tc>>2];c[fa+4>>2]=G;do{G=ka;fa=c[G>>2]|0;tc=c[G+4>>2]|0;G=c[ga>>2]|0;c[E>>2]=c[ha>>2];c[F>>2]=G;G=c[F>>2]|0;c[B>>2]=c[E>>2];c[C>>2]=G;c[D>>2]=1;G=(c[C>>2]|0)==1;M=c[B>>2]|0;if((c[D>>2]|0)==1){pc=Hh(M)|0;sc=y;if(G){uc=pc;vc=sc;}else{K=Ih(pc,sc)|0;uc=K;vc=y;}K=A;c[K>>2]=uc;c[K+4>>2]=vc;}else{K=M;M=c[K>>2]|0;sc=c[K+4>>2]|0;if(G){wc=M;xc=sc;}else{G=Ih(M,sc)|0;wc=G;xc=y;}G=A;c[G>>2]=wc;c[G+4>>2]=xc;}G=A;sc=Jh(fa,tc,c[G>>2]|0,c[G+4>>2]|0)|0;G=ka;c[G>>2]=sc;c[G+4>>2]=y;c[ha>>2]=(c[ha>>2]|0)+8;G=la;sc=c[G>>2]|0;tc=c[G+4>>2]|0;G=c[ga>>2]|0;c[x>>2]=c[ha>>2];c[z>>2]=G;G=c[z>>2]|0;c[u>>2]=c[x>>2];c[v>>2]=G;c[w>>2]=1;G=(c[v>>2]|0)==1;fa=c[u>>2]|0;if((c[w>>2]|0)==1){M=Hh(fa)|0;K=y;if(G){yc=M;zc=K;}else{pc=Ih(M,K)|0;yc=pc;zc=y;}pc=t;c[pc>>2]=yc;c[pc+4>>2]=zc;}else{pc=fa;fa=c[pc>>2]|0;K=c[pc+4>>2]|0;if(G){Ac=fa;Bc=K;}else{G=Ih(fa,K)|0;Ac=G;Bc=y;}G=t;c[G>>2]=Ac;c[G+4>>2]=Bc;}G=t;K=Jh(sc,tc,c[G>>2]|0,c[G+4>>2]|0)|0;G=la;c[G>>2]=K;c[G+4>>2]=y;c[ha>>2]=(c[ha>>2]|0)+8;G=ma;K=c[G>>2]|0;tc=c[G+4>>2]|0;G=c[ga>>2]|0;c[r>>2]=c[ha>>2];c[s>>2]=G;G=c[s>>2]|0;c[o>>2]=c[r>>2];c[p>>2]=G;c[q>>2]=1;G=(c[p>>2]|0)==1;sc=c[o>>2]|0;if((c[q>>2]|0)==1){fa=Hh(sc)|0;pc=y;if(G){Cc=fa;Dc=pc;}else{M=Ih(fa,pc)|0;Cc=M;Dc=y;}M=n;c[M>>2]=Cc;c[M+4>>2]=Dc;}else{M=sc;sc=c[M>>2]|0;pc=c[M+4>>2]|0;if(G){Ec=sc;Fc=pc;}else{G=Ih(sc,pc)|0;Ec=G;Fc=y;}G=n;c[G>>2]=Ec;c[G+4>>2]=Fc;}G=n;pc=Jh(K,tc,c[G>>2]|0,c[G+4>>2]|0)|0;G=ma;c[G>>2]=pc;c[G+4>>2]=y;c[ha>>2]=(c[ha>>2]|0)+8;G=na;pc=c[G>>2]|0;tc=c[G+4>>2]|0;G=c[ga>>2]|0;c[k>>2]=c[ha>>2];c[m>>2]=G;G=c[m>>2]|0;c[h>>2]=c[k>>2];c[i>>2]=G;c[j>>2]=1;G=(c[i>>2]|0)==1;K=c[h>>2]|0;if((c[j>>2]|0)==1){sc=Hh(K)|0;M=y;if(G){Gc=sc;Hc=M;}else{fa=Ih(sc,M)|0;Gc=fa;Hc=y;}fa=g;c[fa>>2]=Gc;c[fa+4>>2]=Hc;}else{fa=K;K=c[fa>>2]|0;M=c[fa+4>>2]|0;if(G){Ic=K;Jc=M;}else{G=Ih(K,M)|0;Ic=G;Jc=y;}G=g;c[G>>2]=Ic;c[G+4>>2]=Jc;}G=g;M=Jh(pc,tc,c[G>>2]|0,c[G+4>>2]|0)|0;G=na;c[G>>2]=M;c[G+4>>2]=y;c[ha>>2]=(c[ha>>2]|0)+8;}while((c[ha>>2]|0)>>>0<=(c[ja>>2]|0)>>>0);ja=ka;ka=c[ja+4>>2]|0;g=(c[da>>2]|0)+8|0;c[g>>2]=c[ja>>2];c[g+4>>2]=ka;ka=la;la=c[ka+4>>2]|0;g=(c[da>>2]|0)+16|0;c[g>>2]=c[ka>>2];c[g+4>>2]=la;la=ma;ma=c[la+4>>2]|0;g=(c[da>>2]|0)+24|0;c[g>>2]=c[la>>2];c[g+4>>2]=ma;ma=na;na=c[ma+4>>2]|0;g=(c[da>>2]|0)+32|0;c[g>>2]=c[ma>>2];c[g+4>>2]=na;}if((c[ha>>2]|0)>>>0<(c[ia>>2]|0)>>>0){Mh((c[da>>2]|0)+40|0,c[ha>>2]|0,(c[ia>>2]|0)-(c[ha>>2]|0)|0)|0;c[(c[da>>2]|0)+72>>2]=(c[ia>>2]|0)-(c[ha>>2]|0);}c[ca>>2]=0;}c[ub>>2]=c[ca>>2];dc=c[ub>>2]|0;l=f;return dc|0;}return 0;}function Oh(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0;e=l;l=l+256|0;f=e+244|0;g=e+240|0;h=e+236|0;i=e+232|0;j=e+228|0;k=e+224|0;m=e+112|0;n=e+220|0;o=e+216|0;p=e+212|0;q=e+208|0;r=e+204|0;s=e+200|0;t=e+196|0;u=e+192|0;v=e+188|0;w=e+104|0;x=e+96|0;z=e+88|0;A=e+80|0;B=e+72|0;C=e+64|0;D=e+184|0;E=e+180|0;F=e+176|0;G=e+172|0;H=e+168|0;I=e+164|0;J=e+56|0;K=e+160|0;L=e+156|0;M=e+152|0;N=e+148|0;O=e+144|0;P=e+140|0;Q=e+136|0;R=e+132|0;S=e+128|0;T=e+48|0;U=e+40|0;V=e+32|0;W=e+24|0;X=e+16|0;Y=e+8|0;Z=e;_=e+124|0;$=e+120|0;c[_>>2]=b;c[$>>2]=a[11920];b=c[_>>2]|0;if((c[$>>2]|0)==1){c[P>>2]=b;c[Q>>2]=1;c[R>>2]=(c[P>>2]|0)+40;c[S>>2]=(c[P>>2]|0)+40+(c[(c[P>>2]|0)+72>>2]|0);$=c[P>>2]|0;_=c[$+4>>2]|0;aa=c[P>>2]|0;if(_>>>0>0|(_|0)==0&(c[$>>2]|0)>>>0>=32){$=aa+8|0;_=c[$+4>>2]|0;ba=U;c[ba>>2]=c[$>>2];c[ba+4>>2]=_;_=(c[P>>2]|0)+16|0;ba=c[_+4>>2]|0;$=V;c[$>>2]=c[_>>2];c[$+4>>2]=ba;ba=(c[P>>2]|0)+24|0;$=c[ba+4>>2]|0;_=W;c[_>>2]=c[ba>>2];c[_+4>>2]=$;$=(c[P>>2]|0)+32|0;_=c[$+4>>2]|0;ba=X;c[ba>>2]=c[$>>2];c[ba+4>>2]=_;_=U;ba=jE(c[_>>2]|0,c[_+4>>2]|0,1)|0;_=y;$=U;ca=iE(c[$>>2]|0,c[$+4>>2]|0,63)|0;$=_|y;_=V;da=jE(c[_>>2]|0,c[_+4>>2]|0,7)|0;_=y;ea=V;fa=iE(c[ea>>2]|0,c[ea+4>>2]|0,57)|0;ea=dE(ba|ca|0,$|0,da|fa|0,_|y|0)|0;_=y;fa=W;da=jE(c[fa>>2]|0,c[fa+4>>2]|0,12)|0;fa=y;$=W;ca=iE(c[$>>2]|0,c[$+4>>2]|0,52)|0;$=dE(ea|0,_|0,da|ca|0,fa|y|0)|0;fa=y;ca=X;da=jE(c[ca>>2]|0,c[ca+4>>2]|0,18)|0;ca=y;_=X;ea=iE(c[_>>2]|0,c[_+4>>2]|0,46)|0;_=dE($|0,fa|0,da|ea|0,ca|y|0)|0;ca=T;c[ca>>2]=_;c[ca+4>>2]=y;ca=T;_=U;U=Kh(c[ca>>2]|0,c[ca+4>>2]|0,c[_>>2]|0,c[_+4>>2]|0)|0;_=T;c[_>>2]=U;c[_+4>>2]=y;_=T;U=V;V=Kh(c[_>>2]|0,c[_+4>>2]|0,c[U>>2]|0,c[U+4>>2]|0)|0;U=T;c[U>>2]=V;c[U+4>>2]=y;U=T;V=W;W=Kh(c[U>>2]|0,c[U+4>>2]|0,c[V>>2]|0,c[V+4>>2]|0)|0;V=T;c[V>>2]=W;c[V+4>>2]=y;V=T;W=X;X=Kh(c[V>>2]|0,c[V+4>>2]|0,c[W>>2]|0,c[W+4>>2]|0)|0;W=T;c[W>>2]=X;c[W+4>>2]=y;}else{W=aa+24|0;aa=dE(c[W>>2]|0,c[W+4>>2]|0,374761413,668265263)|0;W=T;c[W>>2]=aa;c[W+4>>2]=y;}W=c[P>>2]|0;P=T;aa=dE(c[P>>2]|0,c[P+4>>2]|0,c[W>>2]|0,c[W+4>>2]|0)|0;W=T;c[W>>2]=aa;c[W+4>>2]=y;while(1){ga=c[R>>2]|0;if(((c[R>>2]|0)+8|0)>>>0>(c[S>>2]|0)>>>0)break;W=c[Q>>2]|0;c[N>>2]=ga;c[O>>2]=W;W=c[O>>2]|0;c[K>>2]=c[N>>2];c[L>>2]=W;c[M>>2]=1;W=(c[L>>2]|0)==1;aa=c[K>>2]|0;if((c[M>>2]|0)==1){P=Hh(aa)|0;X=y;if(W){ha=P;ia=X;}else{V=Ih(P,X)|0;ha=V;ia=y;}V=J;c[V>>2]=ha;c[V+4>>2]=ia;}else{V=aa;aa=c[V>>2]|0;X=c[V+4>>2]|0;if(W){ja=aa;ka=X;}else{W=Ih(aa,X)|0;ja=W;ka=y;}W=J;c[W>>2]=ja;c[W+4>>2]=ka;}W=J;X=Jh(0,0,c[W>>2]|0,c[W+4>>2]|0)|0;W=Y;c[W>>2]=X;c[W+4>>2]=y;W=Y;X=T;aa=c[X+4>>2]^c[W+4>>2];V=T;c[V>>2]=c[X>>2]^c[W>>2];c[V+4>>2]=aa;aa=T;V=jE(c[aa>>2]|0,c[aa+4>>2]|0,27)|0;aa=y;W=T;X=iE(c[W>>2]|0,c[W+4>>2]|0,37)|0;W=cE(V|X|0,aa|y|0,-2048144761,-1640531535)|0;aa=dE(W|0,y|0,-1028477341,-2048144777)|0;W=T;c[W>>2]=aa;c[W+4>>2]=y;c[R>>2]=(c[R>>2]|0)+8;}if((ga+4|0)>>>0<=(c[S>>2]|0)>>>0){ga=c[Q>>2]|0;c[H>>2]=c[R>>2];c[I>>2]=ga;ga=c[I>>2]|0;c[E>>2]=c[H>>2];c[F>>2]=ga;c[G>>2]=1;ga=(c[F>>2]|0)==1;F=c[E>>2]|0;if((c[G>>2]|0)==1){G=Fh(F)|0;if(ga)la=G;else la=Gh(G)|0;c[D>>2]=la;}else{la=c[F>>2]|0;if(ga)ma=la;else ma=Gh(la)|0;c[D>>2]=ma;}ma=cE(c[D>>2]|0,0,-2048144761,-1640531535)|0;D=T;la=c[D+4>>2]^y;ga=T;c[ga>>2]=c[D>>2]^ma;c[ga+4>>2]=la;la=T;ga=jE(c[la>>2]|0,c[la+4>>2]|0,23)|0;la=y;ma=T;D=iE(c[ma>>2]|0,c[ma+4>>2]|0,41)|0;ma=cE(ga|D|0,la|y|0,668265295,-1028477379)|0;la=dE(ma|0,y|0,-1640531463,374761393)|0;ma=T;c[ma>>2]=la;c[ma+4>>2]=y;c[R>>2]=(c[R>>2]|0)+4;}while(1){if((c[R>>2]|0)>>>0>=(c[S>>2]|0)>>>0)break;ma=cE(d[c[R>>2]>>0]|0,0,374761413,668265263)|0;la=T;D=c[la+4>>2]^y;ga=T;c[ga>>2]=c[la>>2]^ma;c[ga+4>>2]=D;D=T;ga=jE(c[D>>2]|0,c[D+4>>2]|0,11)|0;D=y;ma=T;la=iE(c[ma>>2]|0,c[ma+4>>2]|0,53)|0;ma=cE(ga|la|0,D|y|0,-2048144761,-1640531535)|0;D=T;c[D>>2]=ma;c[D+4>>2]=y;c[R>>2]=(c[R>>2]|0)+1;}R=T;S=iE(c[R>>2]|0,c[R+4>>2]|0,33)|0;R=T;D=c[R+4>>2]^y;ma=T;c[ma>>2]=c[R>>2]^S;c[ma+4>>2]=D;D=T;ma=cE(c[D>>2]|0,c[D+4>>2]|0,668265295,-1028477379)|0;D=T;c[D>>2]=ma;c[D+4>>2]=y;D=T;ma=iE(c[D>>2]|0,c[D+4>>2]|0,29)|0;D=T;S=c[D+4>>2]^y;R=T;c[R>>2]=c[D>>2]^ma;c[R+4>>2]=S;S=T;R=cE(c[S>>2]|0,c[S+4>>2]|0,-1640531463,374761393)|0;S=T;c[S>>2]=R;c[S+4>>2]=y;S=T;R=c[S+4>>2]|0;ma=T;c[ma>>2]=c[S>>2]^c[T+4>>2];c[ma+4>>2]=R;R=T;T=c[R+4>>2]|0;ma=Z;c[ma>>2]=c[R>>2];c[ma+4>>2]=T;na=Z;oa=na;pa=c[oa>>2]|0;qa=na+4|0;ra=qa;sa=c[ra>>2]|0;y=sa;l=e;return pa|0;}else{c[s>>2]=b;c[t>>2]=0;c[u>>2]=(c[s>>2]|0)+40;c[v>>2]=(c[s>>2]|0)+40+(c[(c[s>>2]|0)+72>>2]|0);b=c[s>>2]|0;T=c[b+4>>2]|0;ma=c[s>>2]|0;if(T>>>0>0|(T|0)==0&(c[b>>2]|0)>>>0>=32){b=ma+8|0;T=c[b+4>>2]|0;R=x;c[R>>2]=c[b>>2];c[R+4>>2]=T;T=(c[s>>2]|0)+16|0;R=c[T+4>>2]|0;b=z;c[b>>2]=c[T>>2];c[b+4>>2]=R;R=(c[s>>2]|0)+24|0;b=c[R+4>>2]|0;T=A;c[T>>2]=c[R>>2];c[T+4>>2]=b;b=(c[s>>2]|0)+32|0;T=c[b+4>>2]|0;R=B;c[R>>2]=c[b>>2];c[R+4>>2]=T;T=x;R=jE(c[T>>2]|0,c[T+4>>2]|0,1)|0;T=y;b=x;S=iE(c[b>>2]|0,c[b+4>>2]|0,63)|0;b=T|y;T=z;D=jE(c[T>>2]|0,c[T+4>>2]|0,7)|0;T=y;la=z;ga=iE(c[la>>2]|0,c[la+4>>2]|0,57)|0;la=dE(R|S|0,b|0,D|ga|0,T|y|0)|0;T=y;ga=A;D=jE(c[ga>>2]|0,c[ga+4>>2]|0,12)|0;ga=y;b=A;S=iE(c[b>>2]|0,c[b+4>>2]|0,52)|0;b=dE(la|0,T|0,D|S|0,ga|y|0)|0;ga=y;S=B;D=jE(c[S>>2]|0,c[S+4>>2]|0,18)|0;S=y;T=B;la=iE(c[T>>2]|0,c[T+4>>2]|0,46)|0;T=dE(b|0,ga|0,D|la|0,S|y|0)|0;S=w;c[S>>2]=T;c[S+4>>2]=y;S=w;T=x;x=Kh(c[S>>2]|0,c[S+4>>2]|0,c[T>>2]|0,c[T+4>>2]|0)|0;T=w;c[T>>2]=x;c[T+4>>2]=y;T=w;x=z;z=Kh(c[T>>2]|0,c[T+4>>2]|0,c[x>>2]|0,c[x+4>>2]|0)|0;x=w;c[x>>2]=z;c[x+4>>2]=y;x=w;z=A;A=Kh(c[x>>2]|0,c[x+4>>2]|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=w;c[z>>2]=A;c[z+4>>2]=y;z=w;A=B;B=Kh(c[z>>2]|0,c[z+4>>2]|0,c[A>>2]|0,c[A+4>>2]|0)|0;A=w;c[A>>2]=B;c[A+4>>2]=y;}else{A=ma+24|0;ma=dE(c[A>>2]|0,c[A+4>>2]|0,374761413,668265263)|0;A=w;c[A>>2]=ma;c[A+4>>2]=y;}A=c[s>>2]|0;s=w;ma=dE(c[s>>2]|0,c[s+4>>2]|0,c[A>>2]|0,c[A+4>>2]|0)|0;A=w;c[A>>2]=ma;c[A+4>>2]=y;while(1){ta=c[u>>2]|0;if(((c[u>>2]|0)+8|0)>>>0>(c[v>>2]|0)>>>0)break;A=c[t>>2]|0;c[q>>2]=ta;c[r>>2]=A;A=c[r>>2]|0;c[n>>2]=c[q>>2];c[o>>2]=A;c[p>>2]=1;A=(c[o>>2]|0)==1;ma=c[n>>2]|0;if((c[p>>2]|0)==1){s=Hh(ma)|0;B=y;if(A){ua=s;va=B;}else{z=Ih(s,B)|0;ua=z;va=y;}z=m;c[z>>2]=ua;c[z+4>>2]=va;}else{z=ma;ma=c[z>>2]|0;B=c[z+4>>2]|0;if(A){wa=ma;xa=B;}else{A=Ih(ma,B)|0;wa=A;xa=y;}A=m;c[A>>2]=wa;c[A+4>>2]=xa;}A=m;B=Jh(0,0,c[A>>2]|0,c[A+4>>2]|0)|0;A=C;c[A>>2]=B;c[A+4>>2]=y;A=C;B=w;ma=c[B+4>>2]^c[A+4>>2];z=w;c[z>>2]=c[B>>2]^c[A>>2];c[z+4>>2]=ma;ma=w;z=jE(c[ma>>2]|0,c[ma+4>>2]|0,27)|0;ma=y;A=w;B=iE(c[A>>2]|0,c[A+4>>2]|0,37)|0;A=cE(z|B|0,ma|y|0,-2048144761,-1640531535)|0;ma=dE(A|0,y|0,-1028477341,-2048144777)|0;A=w;c[A>>2]=ma;c[A+4>>2]=y;c[u>>2]=(c[u>>2]|0)+8;}if((ta+4|0)>>>0<=(c[v>>2]|0)>>>0){ta=c[t>>2]|0;c[j>>2]=c[u>>2];c[k>>2]=ta;ta=c[k>>2]|0;c[g>>2]=c[j>>2];c[h>>2]=ta;c[i>>2]=1;ta=(c[h>>2]|0)==1;h=c[g>>2]|0;if((c[i>>2]|0)==1){i=Fh(h)|0;if(ta)ya=i;else ya=Gh(i)|0;c[f>>2]=ya;}else{ya=c[h>>2]|0;if(ta)za=ya;else za=Gh(ya)|0;c[f>>2]=za;}za=cE(c[f>>2]|0,0,-2048144761,-1640531535)|0;f=w;ya=c[f+4>>2]^y;ta=w;c[ta>>2]=c[f>>2]^za;c[ta+4>>2]=ya;ya=w;ta=jE(c[ya>>2]|0,c[ya+4>>2]|0,23)|0;ya=y;za=w;f=iE(c[za>>2]|0,c[za+4>>2]|0,41)|0;za=cE(ta|f|0,ya|y|0,668265295,-1028477379)|0;ya=dE(za|0,y|0,-1640531463,374761393)|0;za=w;c[za>>2]=ya;c[za+4>>2]=y;c[u>>2]=(c[u>>2]|0)+4;}while(1){if((c[u>>2]|0)>>>0>=(c[v>>2]|0)>>>0)break;za=cE(d[c[u>>2]>>0]|0,0,374761413,668265263)|0;ya=w;f=c[ya+4>>2]^y;ta=w;c[ta>>2]=c[ya>>2]^za;c[ta+4>>2]=f;f=w;ta=jE(c[f>>2]|0,c[f+4>>2]|0,11)|0;f=y;za=w;ya=iE(c[za>>2]|0,c[za+4>>2]|0,53)|0;za=cE(ta|ya|0,f|y|0,-2048144761,-1640531535)|0;f=w;c[f>>2]=za;c[f+4>>2]=y;c[u>>2]=(c[u>>2]|0)+1;}u=w;v=iE(c[u>>2]|0,c[u+4>>2]|0,33)|0;u=w;f=c[u+4>>2]^y;za=w;c[za>>2]=c[u>>2]^v;c[za+4>>2]=f;f=w;za=cE(c[f>>2]|0,c[f+4>>2]|0,668265295,-1028477379)|0;f=w;c[f>>2]=za;c[f+4>>2]=y;f=w;za=iE(c[f>>2]|0,c[f+4>>2]|0,29)|0;f=w;v=c[f+4>>2]^y;u=w;c[u>>2]=c[f>>2]^za;c[u+4>>2]=v;v=w;u=cE(c[v>>2]|0,c[v+4>>2]|0,-1640531463,374761393)|0;v=w;c[v>>2]=u;c[v+4>>2]=y;v=w;u=c[v+4>>2]|0;za=w;c[za>>2]=c[v>>2]^c[w+4>>2];c[za+4>>2]=u;u=w;w=c[u+4>>2]|0;za=Z;c[za>>2]=c[u>>2];c[za+4>>2]=w;na=Z;oa=na;pa=c[oa>>2]|0;qa=na+4|0;ra=qa;sa=c[ra>>2]|0;y=sa;l=e;return pa|0;}return 0;}function Ph(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=Qh(c[d>>2]|0)|0;l=b;return a|0;}function Qh(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return(c[d>>2]|0)>>>0>4294967176|0;}function Rh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+4|0;f=d;c[f>>2]=a;if(c[b>>2]|0){c[e>>2]=qc[c[b>>2]&63](c[b+8>>2]|0,c[f>>2]|0)|0;g=c[e>>2]|0;l=d;return g|0;}else{c[e>>2]=Cy(c[f>>2]|0)|0;g=c[e>>2]|0;l=d;return g|0;}return 0;}function Sh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[f>>2]=a;if(c[b>>2]|0){c[g>>2]=qc[c[b>>2]&63](c[b+8>>2]|0,c[f>>2]|0)|0;oE(c[g>>2]|0,0,c[f>>2]|0)|0;c[e>>2]=c[g>>2];h=c[e>>2]|0;l=d;return h|0;}else{c[e>>2]=Ey(1,c[f>>2]|0)|0;h=c[e>>2]|0;l=d;return h|0;}return 0;}function Th(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=a;if(!(c[e>>2]|0)){l=d;return;}if(c[b+4>>2]|0){xc[c[b+4>>2]&31](c[b+8>>2]|0,c[e>>2]|0);l=d;return;}else{Dy(c[e>>2]|0);l=d;return;}}function Uh(e,f,g,h,i,j){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0;k=l;l=l+1136|0;m=k+1124|0;n=k+1120|0;o=k+1116|0;p=k+1112|0;q=k+1108|0;r=k+1104|0;s=k+1100|0;t=k+1096|0;u=k+1092|0;v=k+1088|0;w=k+1084|0;x=k+1080|0;y=k+1076|0;z=k+1072|0;A=k;B=k+1068|0;C=k+1064|0;D=k+1060|0;E=k+1056|0;F=k+1052|0;G=k+1048|0;H=k+1044|0;I=k+1128|0;J=k+1040|0;K=k+1036|0;L=k+1032|0;M=k+1028|0;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[r>>2]=i;c[s>>2]=j;c[t>>2]=1<<c[q>>2];c[u>>2]=(c[t>>2]|0)-1;c[v>>2]=c[n>>2];c[w>>2]=(c[v>>2]|0)+4;c[x>>2]=(c[v>>2]|0)+4+((c[q>>2]|0?(c[t>>2]|0)>>>1:1)<<2);c[y>>2]=c[x>>2];c[z>>2]=((c[t>>2]|0)>>>1)+((c[t>>2]|0)>>>3)+3;c[B>>2]=c[r>>2];c[C>>2]=(c[t>>2]|0)-1;if(1<<c[q>>2]>>>0>(c[s>>2]|0)>>>0){c[m>>2]=-44;N=c[m>>2]|0;l=k;return N|0;}b[(c[w>>2]|0)+-4>>1]=c[q>>2];b[(c[w>>2]|0)+-2>>1]=c[p>>2];c[A>>2]=0;c[D>>2]=1;while(1){if((c[D>>2]|0)>>>0>((c[p>>2]|0)+1|0)>>>0)break;s=c[A+((c[D>>2]|0)-1<<2)>>2]|0;if((b[(c[o>>2]|0)+((c[D>>2]|0)-1<<1)>>1]|0)==-1){c[A+(c[D>>2]<<2)>>2]=s+1;r=(c[D>>2]|0)-1&255;x=c[B>>2]|0;v=c[C>>2]|0;c[C>>2]=v+-1;a[x+v>>0]=r;}else c[A+(c[D>>2]<<2)>>2]=s+(b[(c[o>>2]|0)+((c[D>>2]|0)-1<<1)>>1]|0);c[D>>2]=(c[D>>2]|0)+1;}c[A+((c[p>>2]|0)+1<<2)>>2]=(c[t>>2]|0)+1;c[E>>2]=0;c[F>>2]=0;while(1){if((c[F>>2]|0)>>>0>(c[p>>2]|0)>>>0)break;c[G>>2]=0;while(1){O=c[F>>2]|0;if((c[G>>2]|0)>=(b[(c[o>>2]|0)+(c[F>>2]<<1)>>1]|0))break;a[(c[B>>2]|0)+(c[E>>2]|0)>>0]=O;c[E>>2]=(c[E>>2]|0)+(c[z>>2]|0)&c[u>>2];while(1){if((c[E>>2]|0)>>>0<=(c[C>>2]|0)>>>0)break;c[E>>2]=(c[E>>2]|0)+(c[z>>2]|0)&c[u>>2];}c[G>>2]=(c[G>>2]|0)+1;}c[F>>2]=O+1;}if(c[E>>2]|0){c[m>>2]=-1;N=c[m>>2]|0;l=k;return N|0;}c[H>>2]=0;while(1){if((c[H>>2]|0)>>>0>=(c[t>>2]|0)>>>0)break;a[I>>0]=a[(c[B>>2]|0)+(c[H>>2]|0)>>0]|0;E=(c[t>>2]|0)+(c[H>>2]|0)&65535;O=c[w>>2]|0;F=A+(d[I>>0]<<2)|0;G=c[F>>2]|0;c[F>>2]=G+1;b[O+(G<<1)>>1]=E;c[H>>2]=(c[H>>2]|0)+1;}c[J>>2]=0;c[K>>2]=0;while(1){if((c[K>>2]|0)>>>0>(c[p>>2]|0)>>>0)break;switch(b[(c[o>>2]|0)+(c[K>>2]<<1)>>1]|0){case 0:break;case 1:case-1:{c[(c[y>>2]|0)+(c[K>>2]<<3)+4>>2]=(c[q>>2]<<16)-(1<<c[q>>2]);c[(c[y>>2]|0)+(c[K>>2]<<3)>>2]=(c[J>>2]|0)-1;c[J>>2]=(c[J>>2]|0)+1;break;}default:{c[L>>2]=(c[q>>2]|0)-(Vh((b[(c[o>>2]|0)+(c[K>>2]<<1)>>1]|0)-1|0)|0);c[M>>2]=b[(c[o>>2]|0)+(c[K>>2]<<1)>>1]<<c[L>>2];c[(c[y>>2]|0)+(c[K>>2]<<3)+4>>2]=(c[L>>2]<<16)-(c[M>>2]|0);c[(c[y>>2]|0)+(c[K>>2]<<3)>>2]=(c[J>>2]|0)-(b[(c[o>>2]|0)+(c[K>>2]<<1)>>1]|0);c[J>>2]=(c[J>>2]|0)+(b[(c[o>>2]|0)+(c[K>>2]<<1)>>1]|0);}}c[K>>2]=(c[K>>2]|0)+1;}c[m>>2]=0;N=c[m>>2]|0;l=k;return N|0;}function Vh(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=31-(Q(c[d>>2]|0)|0)|0;l=b;return a|0;}function Wh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=((N((c[e>>2]|0)+1|0,c[f>>2]|0)|0)>>>3)+3;l=d;return(c[e>>2]|0?c[g>>2]|0:512)|0;}function Xh(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;g=l;l=l+32|0;h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;m=g+4|0;n=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;do{if((c[n>>2]|0)>>>0<=12){if((c[n>>2]|0)>>>0<5){c[h>>2]=-1;break;}f=c[j>>2]|0;e=f>>>0<(Wh(c[m>>2]|0,c[n>>2]|0)|0)>>>0;f=c[i>>2]|0;d=c[j>>2]|0;b=c[k>>2]|0;a=c[m>>2]|0;o=c[n>>2]|0;if(e){c[h>>2]=Yh(f,d,b,a,o,0)|0;break;}else{c[h>>2]=Yh(f,d,b,a,o,1)|0;break;}}else c[h>>2]=-44;}while(0);l=g;return c[h>>2]|0;}function Yh(d,e,f,g,h,i){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;j=l;l=l+96|0;k=j+80|0;m=j+76|0;n=j+72|0;o=j+68|0;p=j+64|0;q=j+60|0;r=j+56|0;s=j+52|0;t=j+48|0;u=j+44|0;v=j+40|0;w=j+36|0;x=j+32|0;y=j+28|0;z=j+24|0;A=j+20|0;B=j+16|0;C=j+12|0;D=j+8|0;E=j+4|0;F=j;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[r>>2]=i;c[s>>2]=c[m>>2];c[t>>2]=c[s>>2];c[u>>2]=(c[s>>2]|0)+(c[n>>2]|0);c[w>>2]=1<<c[q>>2];c[B>>2]=0;c[C>>2]=0;c[z>>2]=0;c[A>>2]=0;c[z>>2]=(c[z>>2]|0)+((c[q>>2]|0)-5<<c[A>>2]);c[A>>2]=(c[A>>2]|0)+4;c[x>>2]=(c[w>>2]|0)+1;c[y>>2]=c[w>>2];c[v>>2]=(c[q>>2]|0)+1;a:while(1){if((c[x>>2]|0)<=1){G=34;break;}if(c[C>>2]|0){c[D>>2]=c[B>>2];while(1){if(!((b[(c[o>>2]|0)+(c[B>>2]<<1)>>1]|0)!=0^1))break;c[B>>2]=(c[B>>2]|0)+1;}while(1){if((c[B>>2]|0)>>>0<((c[D>>2]|0)+24|0)>>>0)break;c[D>>2]=(c[D>>2]|0)+24;c[z>>2]=(c[z>>2]|0)+(65535<<c[A>>2]);if((c[r>>2]|0)==0?(c[t>>2]|0)>>>0>((c[u>>2]|0)+-2|0)>>>0:0){G=11;break a;}a[c[t>>2]>>0]=c[z>>2];a[(c[t>>2]|0)+1>>0]=(c[z>>2]|0)>>>8;c[t>>2]=(c[t>>2]|0)+2;c[z>>2]=(c[z>>2]|0)>>>16;}while(1){if((c[B>>2]|0)>>>0<((c[D>>2]|0)+3|0)>>>0)break;c[D>>2]=(c[D>>2]|0)+3;c[z>>2]=(c[z>>2]|0)+(3<<c[A>>2]);c[A>>2]=(c[A>>2]|0)+2;}c[z>>2]=(c[z>>2]|0)+((c[B>>2]|0)-(c[D>>2]|0)<<c[A>>2]);c[A>>2]=(c[A>>2]|0)+2;if((c[A>>2]|0)>16){if((c[r>>2]|0)==0?(c[t>>2]|0)>>>0>((c[u>>2]|0)+-2|0)>>>0:0){G=19;break;}a[c[t>>2]>>0]=c[z>>2];a[(c[t>>2]|0)+1>>0]=(c[z>>2]|0)>>>8;c[t>>2]=(c[t>>2]|0)+2;c[z>>2]=(c[z>>2]|0)>>>16;c[A>>2]=(c[A>>2]|0)-16;}}q=c[o>>2]|0;w=c[B>>2]|0;c[B>>2]=w+1;c[E>>2]=b[q+(w<<1)>>1];c[F>>2]=(c[y>>2]<<1)-1-(c[x>>2]|0);w=c[E>>2]|0;c[x>>2]=(c[x>>2]|0)-((c[E>>2]|0)<0?0-w|0:w);c[E>>2]=(c[E>>2]|0)+1;if((c[E>>2]|0)>=(c[y>>2]|0))c[E>>2]=(c[E>>2]|0)+(c[F>>2]|0);c[z>>2]=(c[z>>2]|0)+(c[E>>2]<<c[A>>2]);c[A>>2]=(c[A>>2]|0)+(c[v>>2]|0);c[A>>2]=(c[A>>2]|0)-((c[E>>2]|0)<(c[F>>2]|0)&1);c[C>>2]=(c[E>>2]|0)==1&1;if((c[x>>2]|0)<1){G=24;break;}while(1){if((c[x>>2]|0)>=(c[y>>2]|0))break;c[v>>2]=(c[v>>2]|0)+-1;c[y>>2]=c[y>>2]>>1;}if((c[A>>2]|0)>16){if((c[r>>2]|0)==0?(c[t>>2]|0)>>>0>((c[u>>2]|0)+-2|0)>>>0:0){G=31;break;}a[c[t>>2]>>0]=c[z>>2];a[(c[t>>2]|0)+1>>0]=(c[z>>2]|0)>>>8;c[t>>2]=(c[t>>2]|0)+2;c[z>>2]=(c[z>>2]|0)>>>16;c[A>>2]=(c[A>>2]|0)-16;}}if((G|0)==11){c[k>>2]=-70;H=c[k>>2]|0;l=j;return H|0;}else if((G|0)==19){c[k>>2]=-70;H=c[k>>2]|0;l=j;return H|0;}else if((G|0)==24){c[k>>2]=-1;H=c[k>>2]|0;l=j;return H|0;}else if((G|0)==31){c[k>>2]=-70;H=c[k>>2]|0;l=j;return H|0;}else if((G|0)==34){if((c[r>>2]|0)==0?(c[t>>2]|0)>>>0>((c[u>>2]|0)+-2|0)>>>0:0){c[k>>2]=-70;H=c[k>>2]|0;l=j;return H|0;}a[c[t>>2]>>0]=c[z>>2];a[(c[t>>2]|0)+1>>0]=(c[z>>2]|0)>>>8;c[t>>2]=(c[t>>2]|0)+(((c[A>>2]|0)+7|0)/8|0);if((c[B>>2]|0)>>>0>((c[p>>2]|0)+1|0)>>>0){c[k>>2]=-1;H=c[k>>2]|0;l=j;return H|0;}else{c[k>>2]=(c[t>>2]|0)-(c[s>>2]|0);H=c[k>>2]|0;l=j;return H|0;}}return 0;}function Zh(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=l;l=l+48|0;h=g+36|0;i=g+32|0;j=g+28|0;k=g+24|0;m=g+20|0;n=g+16|0;o=g+12|0;p=g+8|0;q=g+4|0;r=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=e;c[m>>2]=f;c[n>>2]=c[k>>2];c[o>>2]=(c[n>>2]|0)+(c[m>>2]|0);c[p>>2]=c[c[j>>2]>>2];c[q>>2]=0;oE(c[i>>2]|0,0,(c[p>>2]|0)+1<<2|0)|0;if(!(c[m>>2]|0)){c[c[j>>2]>>2]=0;c[h>>2]=0;s=c[h>>2]|0;l=g;return s|0;}while(1){if((c[n>>2]|0)>>>0>=(c[o>>2]|0)>>>0)break;m=c[i>>2]|0;k=c[n>>2]|0;c[n>>2]=k+1;f=m+((d[k>>0]|0)<<2)|0;c[f>>2]=(c[f>>2]|0)+1;}while(1){t=c[p>>2]|0;if(!((c[(c[i>>2]|0)+(c[p>>2]<<2)>>2]|0)!=0^1))break;c[p>>2]=t+-1;}c[c[j>>2]>>2]=t;c[r>>2]=0;while(1){if((c[r>>2]|0)>>>0>(c[p>>2]|0)>>>0)break;if((c[(c[i>>2]|0)+(c[r>>2]<<2)>>2]|0)>>>0>(c[q>>2]|0)>>>0)c[q>>2]=c[(c[i>>2]|0)+(c[r>>2]<<2)>>2];c[r>>2]=(c[r>>2]|0)+1;}c[h>>2]=c[q>>2];s=c[h>>2]|0;l=g;return s|0;}function _h(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;g=l;l=l+32|0;h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;m=g+4|0;n=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;f=c[i>>2]|0;i=c[j>>2]|0;j=c[k>>2]|0;k=c[m>>2]|0;if((c[m>>2]|0)>>>0<1500){c[h>>2]=Zh(f,i,j,k)|0;o=c[h>>2]|0;l=g;return o|0;}else{c[h>>2]=$h(f,i,j,k,0,c[n>>2]|0)|0;o=c[h>>2]|0;l=g;return o|0;}return 0;}function $h(a,b,e,f,g,h){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;i=l;l=l+80|0;j=i+72|0;k=i+68|0;m=i+64|0;n=i+60|0;o=i+56|0;p=i+52|0;q=i+48|0;r=i+44|0;s=i+40|0;t=i+36|0;u=i+32|0;v=i+28|0;w=i+24|0;x=i+20|0;y=i+16|0;z=i+12|0;A=i+8|0;B=i+4|0;C=i;c[k>>2]=a;c[m>>2]=b;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[r>>2]=c[n>>2];c[s>>2]=(c[r>>2]|0)+(c[o>>2]|0);c[t>>2]=c[c[m>>2]>>2];c[u>>2]=0;c[v>>2]=c[q>>2];c[w>>2]=(c[v>>2]|0)+1024;c[x>>2]=(c[w>>2]|0)+1024;c[y>>2]=(c[x>>2]|0)+1024;oE(c[q>>2]|0,0,4096)|0;if(!(c[o>>2]|0)){oE(c[k>>2]|0,0,(c[t>>2]|0)+1|0)|0;c[c[m>>2]>>2]=0;c[j>>2]=0;D=c[j>>2]|0;l=i;return D|0;}if(!(c[t>>2]|0))c[t>>2]=255;c[z>>2]=ai(c[r>>2]|0)|0;c[r>>2]=(c[r>>2]|0)+4;while(1){if((c[r>>2]|0)>>>0>=((c[s>>2]|0)+-15|0)>>>0)break;c[A>>2]=c[z>>2];c[z>>2]=ai(c[r>>2]|0)|0;c[r>>2]=(c[r>>2]|0)+4;o=(c[v>>2]|0)+((c[A>>2]&255)<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=(c[w>>2]|0)+(((c[A>>2]|0)>>>8&255)<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=(c[x>>2]|0)+(((c[A>>2]|0)>>>16&255)<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=(c[y>>2]|0)+((c[A>>2]|0)>>>24<<2)|0;c[o>>2]=(c[o>>2]|0)+1;c[A>>2]=c[z>>2];c[z>>2]=ai(c[r>>2]|0)|0;c[r>>2]=(c[r>>2]|0)+4;o=(c[v>>2]|0)+((c[A>>2]&255)<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=(c[w>>2]|0)+(((c[A>>2]|0)>>>8&255)<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=(c[x>>2]|0)+(((c[A>>2]|0)>>>16&255)<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=(c[y>>2]|0)+((c[A>>2]|0)>>>24<<2)|0;c[o>>2]=(c[o>>2]|0)+1;c[A>>2]=c[z>>2];c[z>>2]=ai(c[r>>2]|0)|0;c[r>>2]=(c[r>>2]|0)+4;o=(c[v>>2]|0)+((c[A>>2]&255)<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=(c[w>>2]|0)+(((c[A>>2]|0)>>>8&255)<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=(c[x>>2]|0)+(((c[A>>2]|0)>>>16&255)<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=(c[y>>2]|0)+((c[A>>2]|0)>>>24<<2)|0;c[o>>2]=(c[o>>2]|0)+1;c[A>>2]=c[z>>2];c[z>>2]=ai(c[r>>2]|0)|0;c[r>>2]=(c[r>>2]|0)+4;o=(c[v>>2]|0)+((c[A>>2]&255)<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=(c[w>>2]|0)+(((c[A>>2]|0)>>>8&255)<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=(c[x>>2]|0)+(((c[A>>2]|0)>>>16&255)<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=(c[y>>2]|0)+((c[A>>2]|0)>>>24<<2)|0;c[o>>2]=(c[o>>2]|0)+1;}c[r>>2]=(c[r>>2]|0)+-4;while(1){if((c[r>>2]|0)>>>0>=(c[s>>2]|0)>>>0)break;A=c[v>>2]|0;z=c[r>>2]|0;c[r>>2]=z+1;o=A+((d[z>>0]|0)<<2)|0;c[o>>2]=(c[o>>2]|0)+1;}a:do{if(c[p>>2]|0){c[B>>2]=255;while(1){if((c[B>>2]|0)>>>0<=(c[t>>2]|0)>>>0)break a;r=(c[v>>2]|0)+(c[B>>2]<<2)|0;c[r>>2]=(c[r>>2]|0)+((c[(c[w>>2]|0)+(c[B>>2]<<2)>>2]|0)+(c[(c[x>>2]|0)+(c[B>>2]<<2)>>2]|0)+(c[(c[y>>2]|0)+(c[B>>2]<<2)>>2]|0));if(c[(c[v>>2]|0)+(c[B>>2]<<2)>>2]|0)break;c[B>>2]=(c[B>>2]|0)+-1;}c[j>>2]=-48;D=c[j>>2]|0;l=i;return D|0;}}while(0);if((c[t>>2]|0)>>>0>255)c[t>>2]=255;c[C>>2]=0;while(1){if((c[C>>2]|0)>>>0>(c[t>>2]|0)>>>0)break;c[(c[k>>2]|0)+(c[C>>2]<<2)>>2]=(c[(c[v>>2]|0)+(c[C>>2]<<2)>>2]|0)+(c[(c[w>>2]|0)+(c[C>>2]<<2)>>2]|0)+(c[(c[x>>2]|0)+(c[C>>2]<<2)>>2]|0)+(c[(c[y>>2]|0)+(c[C>>2]<<2)>>2]|0);if((c[(c[k>>2]|0)+(c[C>>2]<<2)>>2]|0)>>>0>(c[u>>2]|0)>>>0)c[u>>2]=c[(c[k>>2]|0)+(c[C>>2]<<2)>>2];c[C>>2]=(c[C>>2]|0)+1;}while(1){E=c[t>>2]|0;if(!((c[(c[k>>2]|0)+(c[t>>2]<<2)>>2]|0)!=0^1))break;c[t>>2]=E+-1;}c[c[m>>2]>>2]=E;c[j>>2]=c[u>>2];D=c[j>>2]|0;l=i;return D|0;}function ai(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0;}function bi(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;g=l;l=l+32|0;h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;m=g+4|0;n=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;if((c[c[j>>2]>>2]|0)>>>0<255){c[h>>2]=$h(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,1,c[n>>2]|0)|0;o=c[h>>2]|0;l=g;return o|0;}else{c[c[j>>2]>>2]=255;c[h>>2]=_h(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;o=c[h>>2]|0;l=g;return o|0;}return 0;}function ci(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+32|0;g=f+24|0;h=f+20|0;i=f+16|0;j=f+12|0;k=f+8|0;m=f+4|0;n=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;e=Vh((c[h>>2]|0)-1|0)|0;c[k>>2]=e-(c[j>>2]|0);c[m>>2]=c[g>>2];c[n>>2]=di(c[h>>2]|0,c[i>>2]|0)|0;if(!(c[m>>2]|0))c[m>>2]=11;if((c[k>>2]|0)>>>0<(c[m>>2]|0)>>>0)c[m>>2]=c[k>>2];if((c[n>>2]|0)>>>0>(c[m>>2]|0)>>>0)c[m>>2]=c[n>>2];if((c[m>>2]|0)>>>0<5)c[m>>2]=5;if((c[m>>2]|0)>>>0<=12){o=c[m>>2]|0;l=f;return o|0;}c[m>>2]=12;o=c[m>>2]|0;l=f;return o|0;}function di(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=l;l=l+32|0;e=d+16|0;f=d+12|0;g=d+8|0;h=d+4|0;i=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=(Vh((c[e>>2]|0)-1|0)|0)+1;c[h>>2]=(Vh(c[f>>2]|0)|0)+2;c[i>>2]=(c[g>>2]|0)>>>0<(c[h>>2]|0)>>>0?c[g>>2]|0:c[h>>2]|0;l=d;return c[i>>2]|0;}function ei(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=ci(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0,2)|0;l=e;return d|0;}function fi(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0,A=0,B=0,C=0;h=l;l=l+80|0;i=h+72|0;j=h+68|0;k=h+64|0;m=h+60|0;n=h+56|0;o=h+52|0;p=h+24|0;q=h+16|0;r=h+8|0;s=h+48|0;t=h+44|0;u=h+40|0;v=h+78|0;w=h+36|0;x=h+76|0;z=h;A=h+32|0;c[j>>2]=a;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;if(!(c[k>>2]|0))c[k>>2]=11;if((c[k>>2]|0)>>>0<5){c[i>>2]=-1;B=c[i>>2]|0;l=h;return B|0;}if((c[k>>2]|0)>>>0>12){c[i>>2]=-44;B=c[i>>2]|0;l=h;return B|0;}g=c[k>>2]|0;if(g>>>0<(di(c[n>>2]|0,c[o>>2]|0)|0)>>>0){c[i>>2]=-1;B=c[i>>2]|0;l=h;return B|0;}g=p;c[g>>2]=62-(c[k>>2]|0);c[g+4>>2]=0;g=hE(0,1073741824,c[n>>2]|0,0)|0;f=q;c[f>>2]=g;c[f+4>>2]=y;f=p;g=eE(c[f>>2]|0,c[f+4>>2]|0,20,0)|0;f=jE(1,0,g|0)|0;g=r;c[g>>2]=f;c[g+4>>2]=y;c[s>>2]=1<<c[k>>2];c[u>>2]=0;b[v>>1]=0;c[w>>2]=(c[n>>2]|0)>>>(c[k>>2]|0);c[t>>2]=0;while(1){if((c[t>>2]|0)>>>0>(c[o>>2]|0)>>>0)break;if((c[(c[m>>2]|0)+(c[t>>2]<<2)>>2]|0)==(c[n>>2]|0)){C=12;break;}do{if(!(c[(c[m>>2]|0)+(c[t>>2]<<2)>>2]|0))b[(c[j>>2]|0)+(c[t>>2]<<1)>>1]=0;else{if((c[(c[m>>2]|0)+(c[t>>2]<<2)>>2]|0)>>>0<=(c[w>>2]|0)>>>0){b[(c[j>>2]|0)+(c[t>>2]<<1)>>1]=-1;c[s>>2]=(c[s>>2]|0)+-1;break;}g=q;f=cE(c[(c[m>>2]|0)+(c[t>>2]<<2)>>2]|0,0,c[g>>2]|0,c[g+4>>2]|0)|0;g=iE(f|0,y|0,c[p>>2]|0)|0;b[x>>1]=g;if((b[x>>1]|0)<8){g=r;f=cE(c[g>>2]|0,c[g+4>>2]|0,c[192+(b[x>>1]<<2)>>2]|0,0)|0;g=z;c[g>>2]=f;c[g+4>>2]=y;g=q;f=cE(c[(c[m>>2]|0)+(c[t>>2]<<2)>>2]|0,0,c[g>>2]|0,c[g+4>>2]|0)|0;g=y;e=b[x>>1]|0;d=jE(e|0,((e|0)<0)<<31>>31|0,c[p>>2]|0)|0;e=eE(f|0,g|0,d|0,y|0)|0;d=y;g=z;f=c[g+4>>2]|0;b[x>>1]=(b[x>>1]|0)+((d>>>0>f>>>0|((d|0)==(f|0)?e>>>0>(c[g>>2]|0)>>>0:0))&1);}if((b[x>>1]|0)>(b[v>>1]|0)){b[v>>1]=b[x>>1]|0;c[u>>2]=c[t>>2];}b[(c[j>>2]|0)+(c[t>>2]<<1)>>1]=b[x>>1]|0;c[s>>2]=(c[s>>2]|0)-(b[x>>1]|0);}}while(0);c[t>>2]=(c[t>>2]|0)+1;}if((C|0)==12){c[i>>2]=0;B=c[i>>2]|0;l=h;return B|0;}if((0-(c[s>>2]|0)|0)>=(b[(c[j>>2]|0)+(c[u>>2]<<1)>>1]>>1|0)){c[A>>2]=gi(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;if(hi(c[A>>2]|0)|0){c[i>>2]=c[A>>2];B=c[i>>2]|0;l=h;return B|0;}}else{A=(c[j>>2]|0)+(c[u>>2]<<1)|0;b[A>>1]=(b[A>>1]|0)+((c[s>>2]&65535)<<16>>16);}c[i>>2]=c[k>>2];B=c[i>>2]|0;l=h;return B|0;}function gi(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;h=l;l=l+112|0;i=h+100|0;j=h+96|0;k=h+92|0;m=h+88|0;n=h+84|0;o=h+80|0;p=h+76|0;q=h+72|0;r=h+68|0;s=h+64|0;t=h+60|0;u=h+56|0;v=h+52|0;w=h+32|0;x=h+24|0;z=h+16|0;A=h+8|0;B=h;C=h+48|0;D=h+44|0;E=h+40|0;c[j>>2]=a;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;b[h+104>>1]=-2;c[q>>2]=0;c[s>>2]=(c[n>>2]|0)>>>(c[k>>2]|0);c[t>>2]=((c[n>>2]|0)*3|0)>>>((c[k>>2]|0)+1|0);c[p>>2]=0;while(1){if((c[p>>2]|0)>>>0>(c[o>>2]|0)>>>0)break;do{if(c[(c[m>>2]|0)+(c[p>>2]<<2)>>2]|0){if((c[(c[m>>2]|0)+(c[p>>2]<<2)>>2]|0)>>>0<=(c[s>>2]|0)>>>0){b[(c[j>>2]|0)+(c[p>>2]<<1)>>1]=-1;c[q>>2]=(c[q>>2]|0)+1;c[n>>2]=(c[n>>2]|0)-(c[(c[m>>2]|0)+(c[p>>2]<<2)>>2]|0);break;}g=(c[j>>2]|0)+(c[p>>2]<<1)|0;if((c[(c[m>>2]|0)+(c[p>>2]<<2)>>2]|0)>>>0<=(c[t>>2]|0)>>>0){b[g>>1]=1;c[q>>2]=(c[q>>2]|0)+1;c[n>>2]=(c[n>>2]|0)-(c[(c[m>>2]|0)+(c[p>>2]<<2)>>2]|0);break;}else{b[g>>1]=-2;break;}}else b[(c[j>>2]|0)+(c[p>>2]<<1)>>1]=0;}while(0);c[p>>2]=(c[p>>2]|0)+1;}c[r>>2]=(1<<c[k>>2])-(c[q>>2]|0);if((((c[n>>2]|0)>>>0)/((c[r>>2]|0)>>>0)|0)>>>0>(c[t>>2]|0)>>>0){c[t>>2]=(((c[n>>2]|0)*3|0)>>>0)/(c[r>>2]<<1>>>0)|0;c[p>>2]=0;while(1){if((c[p>>2]|0)>>>0>(c[o>>2]|0)>>>0)break;if((b[(c[j>>2]|0)+(c[p>>2]<<1)>>1]|0)==-2?(c[(c[m>>2]|0)+(c[p>>2]<<2)>>2]|0)>>>0<=(c[t>>2]|0)>>>0:0){b[(c[j>>2]|0)+(c[p>>2]<<1)>>1]=1;c[q>>2]=(c[q>>2]|0)+1;c[n>>2]=(c[n>>2]|0)-(c[(c[m>>2]|0)+(c[p>>2]<<2)>>2]|0);}c[p>>2]=(c[p>>2]|0)+1;}c[r>>2]=(1<<c[k>>2])-(c[q>>2]|0);}if((c[q>>2]|0)==((c[o>>2]|0)+1|0)){c[u>>2]=0;c[v>>2]=0;c[p>>2]=0;while(1){if((c[p>>2]|0)>>>0>(c[o>>2]|0)>>>0)break;if((c[(c[m>>2]|0)+(c[p>>2]<<2)>>2]|0)>>>0>(c[v>>2]|0)>>>0){c[u>>2]=c[p>>2];c[v>>2]=c[(c[m>>2]|0)+(c[p>>2]<<2)>>2];}c[p>>2]=(c[p>>2]|0)+1;}v=(c[j>>2]|0)+(c[u>>2]<<1)|0;b[v>>1]=(b[v>>1]|0)+((c[r>>2]&65535)<<16>>16);c[i>>2]=0;F=c[i>>2]|0;l=h;return F|0;}if(!(c[n>>2]|0)){c[p>>2]=0;while(1){if((c[r>>2]|0)>>>0<=0)break;if((b[(c[j>>2]|0)+(c[p>>2]<<1)>>1]|0)>0){c[r>>2]=(c[r>>2]|0)+-1;v=(c[j>>2]|0)+(c[p>>2]<<1)|0;b[v>>1]=(b[v>>1]|0)+1<<16>>16;}c[p>>2]=(((c[p>>2]|0)+1|0)>>>0)%(((c[o>>2]|0)+1|0)>>>0)|0;}c[i>>2]=0;F=c[i>>2]|0;l=h;return F|0;}v=w;c[v>>2]=62-(c[k>>2]|0);c[v+4>>2]=0;v=w;k=eE(c[v>>2]|0,c[v+4>>2]|0,1,0)|0;v=jE(1,0,k|0)|0;k=eE(v|0,y|0,1,0)|0;v=x;c[v>>2]=k;c[v+4>>2]=y;v=jE(1,0,c[w>>2]|0)|0;k=cE(v|0,y|0,c[r>>2]|0,0)|0;r=x;v=dE(k|0,y|0,c[r>>2]|0,c[r+4>>2]|0)|0;r=hE(v|0,y|0,c[n>>2]|0,0)|0;n=z;c[n>>2]=r;c[n+4>>2]=y;n=x;x=c[n+4>>2]|0;r=A;c[r>>2]=c[n>>2];c[r+4>>2]=x;c[p>>2]=0;while(1){if((c[p>>2]|0)>>>0>(c[o>>2]|0)>>>0){G=40;break;}if((b[(c[j>>2]|0)+(c[p>>2]<<1)>>1]|0)==-2){x=A;r=c[x>>2]|0;n=c[x+4>>2]|0;x=z;v=cE(c[(c[m>>2]|0)+(c[p>>2]<<2)>>2]|0,0,c[x>>2]|0,c[x+4>>2]|0)|0;x=dE(r|0,n|0,v|0,y|0)|0;v=B;c[v>>2]=x;c[v+4>>2]=y;v=A;x=iE(c[v>>2]|0,c[v+4>>2]|0,c[w>>2]|0)|0;c[C>>2]=x;x=B;v=iE(c[x>>2]|0,c[x+4>>2]|0,c[w>>2]|0)|0;c[D>>2]=v;c[E>>2]=(c[D>>2]|0)-(c[C>>2]|0);if((c[E>>2]|0)>>>0<1){G=37;break;}b[(c[j>>2]|0)+(c[p>>2]<<1)>>1]=c[E>>2];v=B;x=c[v+4>>2]|0;n=A;c[n>>2]=c[v>>2];c[n+4>>2]=x;}c[p>>2]=(c[p>>2]|0)+1;}if((G|0)==37){c[i>>2]=-1;F=c[i>>2]|0;l=h;return F|0;}else if((G|0)==40){c[i>>2]=0;F=c[i>>2]|0;l=h;return F|0;}return 0;}function hi(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return(c[d>>2]|0)>>>0>4294967176|0;}function ii(e,f){e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0;g=l;l=l+32|0;h=g+16|0;i=g+20|0;j=g+12|0;k=g+8|0;m=g+4|0;n=g;c[h>>2]=e;a[i>>0]=f;c[j>>2]=c[h>>2];c[k>>2]=(c[j>>2]|0)+4;c[m>>2]=(c[j>>2]|0)+8;c[n>>2]=c[m>>2];b[(c[k>>2]|0)+-4>>1]=0;b[(c[k>>2]|0)+-2>>1]=d[i>>0]|0;b[c[k>>2]>>1]=0;b[(c[k>>2]|0)+2>>1]=0;c[(c[n>>2]|0)+((d[i>>0]|0)<<3)+4>>2]=0;c[(c[n>>2]|0)+((d[i>>0]|0)<<3)>>2]=0;l=g;return 0;}function ji(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;g=l;l=l+32|0;h=g+24|0;i=g+20|0;j=g+16|0;k=g+12|0;m=g+8|0;n=g+4|0;o=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=(c[j>>2]|0)>>>0>=((c[m>>2]|0)+((c[m>>2]|0)>>>7)|0)>>>0&1;f=c[i>>2]|0;i=c[j>>2]|0;j=c[k>>2]|0;k=c[m>>2]|0;m=c[n>>2]|0;if(c[o>>2]|0){c[h>>2]=ki(f,i,j,k,m,1)|0;p=c[h>>2]|0;l=g;return p|0;}else{c[h>>2]=ki(f,i,j,k,m,0)|0;p=c[h>>2]|0;l=g;return p|0;}return 0;}function ki(a,b,e,f,g,h){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;i=l;l=l+112|0;j=i+96|0;k=i+92|0;m=i+88|0;n=i+84|0;o=i+80|0;p=i+76|0;q=i+72|0;r=i+68|0;s=i+64|0;t=i+60|0;u=i+40|0;v=i+24|0;w=i+8|0;x=i;c[k>>2]=a;c[m>>2]=b;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[r>>2]=c[n>>2];c[s>>2]=(c[r>>2]|0)+(c[o>>2]|0);c[t>>2]=c[s>>2];if((c[o>>2]|0)>>>0<=2){c[j>>2]=0;y=c[j>>2]|0;l=i;return y|0;}c[x>>2]=li(u,c[k>>2]|0,c[m>>2]|0)|0;if(hi(c[x>>2]|0)|0){c[j>>2]=0;y=c[j>>2]|0;l=i;return y|0;}x=(c[o>>2]&1|0)!=0;m=c[p>>2]|0;k=(c[t>>2]|0)+-1|0;c[t>>2]=k;s=d[k>>0]|0;do{if(x){mi(v,m,s);k=c[p>>2]|0;n=(c[t>>2]|0)+-1|0;c[t>>2]=n;mi(w,k,d[n>>0]|0);n=(c[t>>2]|0)+-1|0;c[t>>2]=n;ni(u,v,d[n>>0]|0);if(c[q>>2]|0){oi(u);break;}else{pi(u);break;}}else{mi(w,m,s);n=c[p>>2]|0;k=(c[t>>2]|0)+-1|0;c[t>>2]=k;mi(v,n,d[k>>0]|0);}}while(0);c[o>>2]=(c[o>>2]|0)-2;while(1){if((c[t>>2]|0)>>>0<=(c[r>>2]|0)>>>0)break;o=(c[t>>2]|0)+-1|0;c[t>>2]=o;ni(u,w,d[o>>0]|0);o=(c[t>>2]|0)+-1|0;c[t>>2]=o;ni(u,v,d[o>>0]|0);if(c[q>>2]|0)oi(u);else pi(u);}qi(u,w);qi(u,v);c[j>>2]=ri(u)|0;y=c[j>>2]|0;l=i;return y|0;}function li(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[c[g>>2]>>2]=0;c[(c[g>>2]|0)+4>>2]=0;c[(c[g>>2]|0)+8>>2]=c[h>>2];c[(c[g>>2]|0)+12>>2]=c[(c[g>>2]|0)+8>>2];c[(c[g>>2]|0)+16>>2]=(c[(c[g>>2]|0)+8>>2]|0)+(c[i>>2]|0)+-4;if((c[i>>2]|0)>>>0<=4){c[f>>2]=-70;j=c[f>>2]|0;l=e;return j|0;}else{c[f>>2]=0;j=c[f>>2]|0;l=e;return j|0;}return 0;}function mi(a,b,d){a=a|0;b=b|0;d=d|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+24|0;h=f+20|0;i=f+16|0;j=f+8|0;k=f+4|0;m=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;Di(c[g>>2]|0,c[h>>2]|0);h=(c[(c[g>>2]|0)+8>>2]|0)+(c[i>>2]<<3)|0;c[j>>2]=c[h>>2];c[j+4>>2]=c[h+4>>2];c[k>>2]=c[(c[g>>2]|0)+4>>2];c[m>>2]=((c[j+4>>2]|0)+32768|0)>>>16;c[c[g>>2]>>2]=(c[m>>2]<<16)-(c[j+4>>2]|0);c[c[g>>2]>>2]=e[(c[k>>2]|0)+((c[c[g>>2]>>2]>>c[m>>2])+(c[j>>2]|0)<<1)>>1];l=f;return;}function ni(a,b,d){a=a|0;b=b|0;d=d|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+24|0;h=f+20|0;i=f+16|0;j=f+8|0;k=f+4|0;m=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;d=(c[(c[h>>2]|0)+8>>2]|0)+(c[i>>2]<<3)|0;c[j>>2]=c[d>>2];c[j+4>>2]=c[d+4>>2];c[k>>2]=c[(c[h>>2]|0)+4>>2];c[m>>2]=((c[c[h>>2]>>2]|0)+(c[j+4>>2]|0)|0)>>>16;ti(c[g>>2]|0,c[c[h>>2]>>2]|0,c[m>>2]|0);c[c[h>>2]>>2]=e[(c[k>>2]|0)+((c[c[h>>2]>>2]>>c[m>>2])+(c[j>>2]|0)<<1)>>1];l=f;return;}function oi(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=(c[(c[d>>2]|0)+4>>2]|0)>>>3;ui(c[(c[d>>2]|0)+12>>2]|0,c[c[d>>2]>>2]|0);a=(c[d>>2]|0)+12|0;c[a>>2]=(c[a>>2]|0)+(c[e>>2]|0);a=(c[d>>2]|0)+4|0;c[a>>2]=c[a>>2]&7;a=c[d>>2]|0;c[a>>2]=(c[a>>2]|0)>>>(c[e>>2]<<3);l=b;return;}function pi(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=(c[(c[d>>2]|0)+4>>2]|0)>>>3;ui(c[(c[d>>2]|0)+12>>2]|0,c[c[d>>2]>>2]|0);a=(c[d>>2]|0)+12|0;c[a>>2]=(c[a>>2]|0)+(c[e>>2]|0);if((c[(c[d>>2]|0)+12>>2]|0)>>>0>(c[(c[d>>2]|0)+16>>2]|0)>>>0)c[(c[d>>2]|0)+12>>2]=c[(c[d>>2]|0)+16>>2];a=(c[d>>2]|0)+4|0;c[a>>2]=c[a>>2]&7;a=c[d>>2]|0;c[a>>2]=(c[a>>2]|0)>>>(c[e>>2]<<3);l=b;return;}function qi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;ti(c[e>>2]|0,c[c[f>>2]>>2]|0,c[(c[f>>2]|0)+12>>2]|0);pi(c[e>>2]|0);l=d;return;}function ri(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;si(c[e>>2]|0,1,1);pi(c[e>>2]|0);if((c[(c[e>>2]|0)+12>>2]|0)>>>0>=(c[(c[e>>2]|0)+16>>2]|0)>>>0){c[d>>2]=0;f=c[d>>2]|0;l=b;return f|0;}else{c[d>>2]=(c[(c[e>>2]|0)+12>>2]|0)-(c[(c[e>>2]|0)+8>>2]|0)+((c[(c[e>>2]|0)+4>>2]|0)>>>0>0&1);f=c[d>>2]|0;l=b;return f|0;}return 0;}function si(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=c[f>>2]|0;c[d>>2]=c[d>>2]|c[g>>2]<<c[(c[f>>2]|0)+4>>2];g=(c[f>>2]|0)+4|0;c[g>>2]=(c[g>>2]|0)+(c[h>>2]|0);l=e;return;}function ti(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=c[f>>2]|0;c[d>>2]=c[d>>2]|(c[g>>2]&c[2800+(c[h>>2]<<2)>>2])<<c[(c[f>>2]|0)+4>>2];g=(c[f>>2]|0)+4|0;c[g>>2]=(c[g>>2]|0)+(c[h>>2]|0);l=e;return;}function ui(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=(vi()|0)!=0;a=c[e>>2]|0;e=c[f>>2]|0;if(b){wi(a,e);l=d;return;}else{xi(a,e,0);l=d;return;}}function vi(){return 1;}function wi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=(yi()|0)!=0;a=c[e>>2]|0;e=c[f>>2]|0;if(b){Bi(a,e);l=d;return;}else{Bi(a,Ci(e)|0);l=d;return;}}function xi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+8|0;g=e;c[f>>2]=a;a=g;c[a>>2]=b;c[a+4>>2]=d;d=(yi()|0)!=0;a=c[f>>2]|0;f=g;g=c[f>>2]|0;b=c[f+4>>2]|0;if(d){zi(a,g,b);l=e;return;}else{d=Ai(g,b)|0;zi(a,d,y);l=e;return;}}function yi(){return d[11936]|0|0;}function zi(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=l;l=l+16|0;g=f+8|0;h=f;c[g>>2]=b;b=h;c[b>>2]=d;c[b+4>>2]=e;e=h;h=c[e>>2]|0;b=c[e+4>>2]|0;e=c[g>>2]|0;g=e;a[g>>0]=h;a[g+1>>0]=h>>8;a[g+2>>0]=h>>16;a[g+3>>0]=h>>24;h=e+4|0;a[h>>0]=b;a[h+1>>0]=b>>8;a[h+2>>0]=b>>16;a[h+3>>0]=b>>24;l=f;return;}function Ai(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d;f=e;c[f>>2]=a;c[f+4>>2]=b;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,56)|0;b=y&-16777216;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,40)|0;f=b|y&16711680;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=f|y&65280;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,8)|0;f=b|y&255;b=e;a=iE(c[b>>2]|0,c[b+4>>2]|0,8)|0;b=e;g=iE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=e;h=iE(c[b>>2]|0,c[b+4>>2]|0,40)|0;b=e;e=iE(c[b>>2]|0,c[b+4>>2]|0,56)|0;y=f;l=d;return a&-16777216|g&16711680|h&65280|e&255|0;}function Bi(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[g>>2]|0;g=c[f>>2]|0;a[g>>0]=d;a[g+1>>0]=d>>8;a[g+2>>0]=d>>16;a[g+3>>0]=d>>24;l=e;return;}function Ci(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[d>>2]<<24&-16777216|c[d>>2]<<8&16711680|(c[d>>2]|0)>>>8&65280|(c[d>>2]|0)>>>24&255|0;}function Di(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=l;l=l+32|0;e=d+16|0;f=d+12|0;g=d+8|0;h=d+4|0;i=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=c[f>>2];c[h>>2]=c[g>>2];c[i>>2]=(Ei(c[g>>2]|0)|0)&65535;c[c[e>>2]>>2]=1<<c[i>>2];c[(c[e>>2]|0)+4>>2]=(c[h>>2]|0)+4;if(c[i>>2]|0)j=1<<(c[i>>2]|0)-1;else j=1;c[(c[e>>2]|0)+8>>2]=(c[f>>2]|0)+4+(j<<2);c[(c[e>>2]|0)+12>>2]=c[i>>2];l=d;return;}function Ei(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|0;}function Fi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=ci(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0,1)|0;l=e;return d|0;}function Gi(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;f=l;l=l+464|0;g=f+452|0;h=f+448|0;i=f+444|0;j=f+440|0;k=f+436|0;m=f+432|0;n=f+428|0;o=f+424|0;p=f+420|0;q=f+416|0;r=f+160|0;s=f+32|0;t=f;u=f+412|0;v=f+408|0;w=f+404|0;x=f+400|0;y=f+396|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=c[h>>2];c[n>>2]=c[m>>2];c[o>>2]=(c[m>>2]|0)+(c[i>>2]|0);c[p>>2]=12;c[q>>2]=6;if((c[k>>2]|0)>>>0<=1){c[g>>2]=0;z=c[g>>2]|0;l=f;return z|0;}c[u>>2]=Zh(s,p,c[j>>2]|0,c[k>>2]|0)|0;i=(Hi(c[u>>2]|0)|0)!=0;h=c[u>>2]|0;if(i){c[g>>2]=h;z=c[g>>2]|0;l=f;return z|0;}if((h|0)==(c[k>>2]|0)){c[g>>2]=1;z=c[g>>2]|0;l=f;return z|0;}if((c[u>>2]|0)==1){c[g>>2]=0;z=c[g>>2]|0;l=f;return z|0;}c[q>>2]=ei(c[q>>2]|0,c[k>>2]|0,c[p>>2]|0)|0;c[v>>2]=fi(t,c[q>>2]|0,s,c[k>>2]|0,c[p>>2]|0)|0;if(Hi(c[v>>2]|0)|0){c[g>>2]=c[v>>2];z=c[g>>2]|0;l=f;return z|0;}c[w>>2]=Xh(c[n>>2]|0,(c[o>>2]|0)-(c[n>>2]|0)|0,t,c[p>>2]|0,c[q>>2]|0)|0;v=(Hi(c[w>>2]|0)|0)!=0;s=c[w>>2]|0;if(v){c[g>>2]=s;z=c[g>>2]|0;l=f;return z|0;}c[n>>2]=(c[n>>2]|0)+s;c[x>>2]=Uh(r,t,c[p>>2]|0,c[q>>2]|0,f+96|0,64)|0;if(Hi(c[x>>2]|0)|0){c[g>>2]=c[x>>2];z=c[g>>2]|0;l=f;return z|0;}c[y>>2]=ji(c[n>>2]|0,(c[o>>2]|0)-(c[n>>2]|0)|0,c[j>>2]|0,c[k>>2]|0,r)|0;r=(Hi(c[y>>2]|0)|0)!=0;k=c[y>>2]|0;if(r){c[g>>2]=k;z=c[g>>2]|0;l=f;return z|0;}if(!k){c[g>>2]=0;z=c[g>>2]|0;l=f;return z|0;}else{c[n>>2]=(c[n>>2]|0)+(c[y>>2]|0);c[g>>2]=(c[n>>2]|0)-(c[m>>2]|0);z=c[g>>2]|0;l=f;return z|0;}return 0;}function Hi(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return(c[d>>2]|0)>>>0>4294967176|0;}function Ii(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;i=l;l=l+320|0;j=i+288|0;k=i+284|0;m=i+280|0;n=i+276|0;o=i+272|0;p=i+268|0;q=i+292|0;r=i;s=i+264|0;t=i+260|0;u=i+256|0;c[k>>2]=b;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;c[s>>2]=c[k>>2];if((c[o>>2]|0)>>>0>255){c[j>>2]=-46;v=c[j>>2]|0;l=i;return v|0;}a[q>>0]=0;c[t>>2]=1;while(1){if((c[t>>2]|0)>>>0>=((c[p>>2]|0)+1|0)>>>0)break;a[q+(c[t>>2]|0)>>0]=(c[p>>2]|0)+1-(c[t>>2]|0);c[t>>2]=(c[t>>2]|0)+1;}c[t>>2]=0;while(1){if((c[t>>2]|0)>>>0>=(c[o>>2]|0)>>>0)break;a[r+(c[t>>2]|0)>>0]=a[q+(d[(c[n>>2]|0)+(c[t>>2]<<2)+2>>0]|0)>>0]|0;c[t>>2]=(c[t>>2]|0)+1;}c[u>>2]=Gi((c[s>>2]|0)+1|0,(c[m>>2]|0)-1|0,r,c[o>>2]|0)|0;n=(Hi(c[u>>2]|0)|0)!=0;q=c[u>>2]|0;if(n){c[j>>2]=q;v=c[j>>2]|0;l=i;return v|0;}if((q>>>0>1?(c[u>>2]|0)>>>0<(((c[o>>2]|0)>>>0)/2|0)>>>0:0)|0){a[c[s>>2]>>0]=c[u>>2];c[j>>2]=(c[u>>2]|0)+1;v=c[j>>2]|0;l=i;return v|0;}if((c[o>>2]|0)>>>0>128){c[j>>2]=-1;v=c[j>>2]|0;l=i;return v|0;}if((((((c[o>>2]|0)+1|0)>>>0)/2|0)+1|0)>>>0>(c[m>>2]|0)>>>0){c[j>>2]=-70;v=c[j>>2]|0;l=i;return v|0;}a[c[s>>2]>>0]=128+((c[o>>2]|0)-1);a[r+(c[o>>2]|0)>>0]=0;c[t>>2]=0;while(1){if((c[t>>2]|0)>>>0>=(c[o>>2]|0)>>>0)break;a[(c[s>>2]|0)+((((c[t>>2]|0)>>>0)/2|0)+1)>>0]=((d[r+(c[t>>2]|0)>>0]|0)<<4)+(d[r+((c[t>>2]|0)+1)>>0]|0);c[t>>2]=(c[t>>2]|0)+2;}c[j>>2]=((((c[o>>2]|0)+1|0)>>>0)/2|0)+1;v=c[j>>2]|0;l=i;return v|0;}function Ji(f,g,h,i){f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;j=l;l=l+464|0;k=j+444|0;m=j+440|0;n=j+436|0;o=j+432|0;p=j+428|0;q=j+128|0;r=j+64|0;s=j+424|0;t=j+420|0;u=j+416|0;v=j+412|0;w=j+408|0;x=j+404|0;y=j+400|0;z=j+396|0;A=j+32|0;B=j;C=j+392|0;D=j+448|0;E=j+388|0;F=j+384|0;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;c[p>>2]=i;c[s>>2]=0;c[t>>2]=0;c[u>>2]=fh(q,256,r,t,s,c[o>>2]|0,c[p>>2]|0)|0;if(Hi(c[u>>2]|0)|0){c[k>>2]=c[u>>2];G=c[k>>2]|0;l=j;return G|0;}if((c[s>>2]|0)>>>0>12){c[k>>2]=-44;G=c[k>>2]|0;l=j;return G|0;}if((c[t>>2]|0)>>>0>((c[c[n>>2]>>2]|0)+1|0)>>>0){c[k>>2]=-48;G=c[k>>2]|0;l=j;return G|0;}c[w>>2]=0;c[v>>2]=1;while(1){if((c[v>>2]|0)>>>0>(c[s>>2]|0)>>>0)break;c[x>>2]=c[w>>2];c[w>>2]=(c[w>>2]|0)+(c[r+(c[v>>2]<<2)>>2]<<(c[v>>2]|0)-1);c[r+(c[v>>2]<<2)>>2]=c[x>>2];c[v>>2]=(c[v>>2]|0)+1;}c[y>>2]=0;while(1){if((c[y>>2]|0)>>>0>=(c[t>>2]|0)>>>0)break;c[z>>2]=d[q+(c[y>>2]|0)>>0];a[(c[m>>2]|0)+(c[y>>2]<<2)+2>>0]=(c[s>>2]|0)+1-(c[z>>2]|0);c[y>>2]=(c[y>>2]|0)+1;}c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;c[A+12>>2]=0;c[A+16>>2]=0;c[A+20>>2]=0;c[A+24>>2]=0;c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;c[B+12>>2]=0;c[B+16>>2]=0;c[B+20>>2]=0;c[B+24>>2]=0;c[C>>2]=0;while(1){if((c[C>>2]|0)>>>0>=(c[t>>2]|0)>>>0)break;y=A+((d[(c[m>>2]|0)+(c[C>>2]<<2)+2>>0]|0)<<1)|0;b[y>>1]=(b[y>>1]|0)+1<<16>>16;c[C>>2]=(c[C>>2]|0)+1;}b[B+((c[s>>2]|0)+1<<1)>>1]=0;b[D>>1]=0;c[E>>2]=c[s>>2];while(1){if((c[E>>2]|0)>>>0<=0)break;b[B+(c[E>>2]<<1)>>1]=b[D>>1]|0;b[D>>1]=(e[D>>1]|0)+(e[A+(c[E>>2]<<1)>>1]|0);b[D>>1]=(e[D>>1]|0)>>1;c[E>>2]=(c[E>>2]|0)+-1;}c[F>>2]=0;while(1){if((c[F>>2]|0)>>>0>=(c[t>>2]|0)>>>0)break;E=B+((d[(c[m>>2]|0)+(c[F>>2]<<2)+2>>0]|0)<<1)|0;D=b[E>>1]|0;b[E>>1]=D+1<<16>>16;b[(c[m>>2]|0)+(c[F>>2]<<2)>>1]=D;c[F>>2]=(c[F>>2]|0)+1;}c[c[n>>2]>>2]=(c[t>>2]|0)-1;c[k>>2]=c[u>>2];G=c[k>>2]|0;l=j;return G|0;}function Ki(f,g,h,i,j,k){f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;m=l;l=l+128|0;n=m+120|0;o=m+116|0;p=m+112|0;q=m+108|0;r=m+104|0;s=m+100|0;t=m+96|0;u=m+92|0;v=m+88|0;w=m+84|0;x=m+80|0;y=m+76|0;z=m+72|0;A=m+126|0;B=m+68|0;C=m+64|0;D=m+60|0;E=m+32|0;F=m;G=m+124|0;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[r>>2]=i;c[s>>2]=j;c[t>>2]=k;c[u>>2]=c[s>>2];c[v>>2]=(c[u>>2]|0)+8;b[A>>1]=256;if(c[s>>2]&3|0){c[n>>2]=-1;H=c[n>>2]|0;l=m;return H|0;}if((c[t>>2]|0)>>>0<4096){c[n>>2]=-66;H=c[n>>2]|0;l=m;return H|0;}if(!(c[r>>2]|0))c[r>>2]=11;if((c[q>>2]|0)>>>0>255){c[n>>2]=-46;H=c[n>>2]|0;l=m;return H|0;}oE(c[u>>2]|0,0,4096)|0;Li(c[v>>2]|0,c[p>>2]|0,c[q>>2]|0);c[x>>2]=c[q>>2];while(1){I=c[x>>2]|0;if(c[(c[v>>2]|0)+(c[x>>2]<<3)>>2]|0)break;c[x>>2]=I+-1;}c[y>>2]=I;c[B>>2]=(e[A>>1]|0)+(c[y>>2]|0)-1;c[z>>2]=e[A>>1];c[(c[v>>2]|0)+((e[A>>1]|0)<<3)>>2]=(c[(c[v>>2]|0)+(c[y>>2]<<3)>>2]|0)+(c[(c[v>>2]|0)+((c[y>>2]|0)-1<<3)>>2]|0);I=b[A>>1]|0;b[(c[v>>2]|0)+((c[y>>2]|0)-1<<3)+4>>1]=I;b[(c[v>>2]|0)+(c[y>>2]<<3)+4>>1]=I;b[A>>1]=(b[A>>1]|0)+1<<16>>16;c[y>>2]=(c[y>>2]|0)-2;c[w>>2]=e[A>>1];while(1){if((c[w>>2]|0)>>>0>(c[B>>2]|0)>>>0)break;c[(c[v>>2]|0)+(c[w>>2]<<3)>>2]=1073741824;c[w>>2]=(c[w>>2]|0)+1;}c[c[u>>2]>>2]=-2147483648;while(1){J=c[v>>2]|0;if((e[A>>1]|0)>>>0>(c[B>>2]|0)>>>0)break;if((c[J+(c[y>>2]<<3)>>2]|0)>>>0<(c[(c[v>>2]|0)+(c[z>>2]<<3)>>2]|0)>>>0){u=c[y>>2]|0;c[y>>2]=u+-1;K=u;}else{u=c[z>>2]|0;c[z>>2]=u+1;K=u;}c[C>>2]=K;if((c[(c[v>>2]|0)+(c[y>>2]<<3)>>2]|0)>>>0<(c[(c[v>>2]|0)+(c[z>>2]<<3)>>2]|0)>>>0){u=c[y>>2]|0;c[y>>2]=u+-1;L=u;}else{u=c[z>>2]|0;c[z>>2]=u+1;L=u;}c[D>>2]=L;c[(c[v>>2]|0)+((e[A>>1]|0)<<3)>>2]=(c[(c[v>>2]|0)+(c[C>>2]<<3)>>2]|0)+(c[(c[v>>2]|0)+(c[D>>2]<<3)>>2]|0);u=b[A>>1]|0;b[(c[v>>2]|0)+(c[D>>2]<<3)+4>>1]=u;b[(c[v>>2]|0)+(c[C>>2]<<3)+4>>1]=u;b[A>>1]=(b[A>>1]|0)+1<<16>>16;}a[J+(c[B>>2]<<3)+7>>0]=0;c[w>>2]=(c[B>>2]|0)-1;while(1){if((c[w>>2]|0)>>>0<256)break;a[(c[v>>2]|0)+(c[w>>2]<<3)+7>>0]=(d[(c[v>>2]|0)+((e[(c[v>>2]|0)+(c[w>>2]<<3)+4>>1]|0)<<3)+7>>0]|0)+1;c[w>>2]=(c[w>>2]|0)+-1;}c[w>>2]=0;while(1){M=c[v>>2]|0;if((c[w>>2]|0)>>>0>(c[x>>2]|0)>>>0)break;a[(c[v>>2]|0)+(c[w>>2]<<3)+7>>0]=(d[M+((e[(c[v>>2]|0)+(c[w>>2]<<3)+4>>1]|0)<<3)+7>>0]|0)+1;c[w>>2]=(c[w>>2]|0)+1;}c[r>>2]=Mi(M,c[x>>2]|0,c[r>>2]|0)|0;c[E>>2]=0;c[E+4>>2]=0;c[E+8>>2]=0;c[E+12>>2]=0;c[E+16>>2]=0;c[E+20>>2]=0;b[E+24>>1]=0;c[F>>2]=0;c[F+4>>2]=0;c[F+8>>2]=0;c[F+12>>2]=0;c[F+16>>2]=0;c[F+20>>2]=0;b[F+24>>1]=0;if((c[r>>2]|0)>>>0>12){c[n>>2]=-1;H=c[n>>2]|0;l=m;return H|0;}c[w>>2]=0;while(1){if((c[w>>2]|0)>>>0>(c[x>>2]|0)>>>0)break;M=E+((d[(c[v>>2]|0)+(c[w>>2]<<3)+7>>0]|0)<<1)|0;b[M>>1]=(b[M>>1]|0)+1<<16>>16;c[w>>2]=(c[w>>2]|0)+1;}b[G>>1]=0;c[w>>2]=c[r>>2];while(1){if((c[w>>2]|0)>>>0<=0)break;b[F+(c[w>>2]<<1)>>1]=b[G>>1]|0;b[G>>1]=(e[G>>1]|0)+(e[E+(c[w>>2]<<1)>>1]|0);b[G>>1]=(e[G>>1]|0)>>1;c[w>>2]=(c[w>>2]|0)+-1;}c[w>>2]=0;while(1){if((c[w>>2]|0)>>>0>(c[q>>2]|0)>>>0)break;a[(c[o>>2]|0)+((d[(c[v>>2]|0)+(c[w>>2]<<3)+6>>0]|0)<<2)+2>>0]=a[(c[v>>2]|0)+(c[w>>2]<<3)+7>>0]|0;c[w>>2]=(c[w>>2]|0)+1;}c[w>>2]=0;while(1){if((c[w>>2]|0)>>>0>(c[q>>2]|0)>>>0)break;v=F+((d[(c[o>>2]|0)+(c[w>>2]<<2)+2>>0]|0)<<1)|0;G=b[v>>1]|0;b[v>>1]=G+1<<16>>16;b[(c[o>>2]|0)+(c[w>>2]<<2)>>1]=G;c[w>>2]=(c[w>>2]|0)+1;}c[n>>2]=c[r>>2];H=c[n>>2]|0;l=m;return H|0;}function Li(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;f=l;l=l+288|0;g=f+284|0;h=f+280|0;i=f+276|0;j=f;k=f+272|0;m=f+268|0;n=f+264|0;o=f+260|0;p=f+256|0;c[g>>2]=b;c[h>>2]=d;c[i>>2]=e;oE(j|0,0,256)|0;c[k>>2]=0;while(1){if((c[k>>2]|0)>>>0>(c[i>>2]|0)>>>0)break;c[m>>2]=Ni((c[(c[h>>2]|0)+(c[k>>2]<<2)>>2]|0)+1|0)|0;e=j+(c[m>>2]<<3)|0;c[e>>2]=(c[e>>2]|0)+1;c[k>>2]=(c[k>>2]|0)+1;}c[k>>2]=30;while(1){if((c[k>>2]|0)>>>0<=0)break;m=j+((c[k>>2]|0)-1<<3)|0;c[m>>2]=(c[m>>2]|0)+(c[j+(c[k>>2]<<3)>>2]|0);c[k>>2]=(c[k>>2]|0)+-1;}c[k>>2]=0;while(1){if((c[k>>2]|0)>>>0>=32)break;c[j+(c[k>>2]<<3)+4>>2]=c[j+(c[k>>2]<<3)>>2];c[k>>2]=(c[k>>2]|0)+1;}c[k>>2]=0;while(1){if((c[k>>2]|0)>>>0>(c[i>>2]|0)>>>0)break;c[n>>2]=c[(c[h>>2]|0)+(c[k>>2]<<2)>>2];c[o>>2]=(Ni((c[n>>2]|0)+1|0)|0)+1;m=j+(c[o>>2]<<3)+4|0;e=c[m>>2]|0;c[m>>2]=e+1;c[p>>2]=e;while(1){if((c[p>>2]|0)>>>0<=(c[j+(c[o>>2]<<3)>>2]|0)>>>0)break;if((c[n>>2]|0)>>>0<=(c[(c[g>>2]|0)+((c[p>>2]|0)-1<<3)>>2]|0)>>>0)break;e=(c[g>>2]|0)+(c[p>>2]<<3)|0;m=(c[g>>2]|0)+((c[p>>2]|0)-1<<3)|0;c[e>>2]=c[m>>2];c[e+4>>2]=c[m+4>>2];c[p>>2]=(c[p>>2]|0)+-1;}c[(c[g>>2]|0)+(c[p>>2]<<3)>>2]=c[n>>2];a[(c[g>>2]|0)+(c[p>>2]<<3)+6>>0]=c[k>>2];c[k>>2]=(c[k>>2]|0)+1;}l=f;return;}function Mi(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;g=l;l=l+128|0;h=g+116|0;i=g+112|0;j=g+108|0;k=g+104|0;m=g+100|0;n=g+96|0;o=g+92|0;p=g+88|0;q=g+84|0;r=g;s=g+80|0;t=g+76|0;u=g+72|0;v=g+68|0;w=g+64|0;x=g+60|0;y=g+56|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=d[(c[i>>2]|0)+(c[j>>2]<<3)+7>>0];if((c[m>>2]|0)>>>0<=(c[k>>2]|0)>>>0){c[h>>2]=c[m>>2];z=c[h>>2]|0;l=g;return z|0;}c[n>>2]=0;c[o>>2]=1<<(c[m>>2]|0)-(c[k>>2]|0);c[p>>2]=c[j>>2];while(1){if((d[(c[i>>2]|0)+(c[p>>2]<<3)+7>>0]|0)>>>0<=(c[k>>2]|0)>>>0)break;c[n>>2]=(c[n>>2]|0)+((c[o>>2]|0)-(1<<(c[m>>2]|0)-(d[(c[i>>2]|0)+(c[p>>2]<<3)+7>>0]|0)));a[(c[i>>2]|0)+(c[p>>2]<<3)+7>>0]=c[k>>2];c[p>>2]=(c[p>>2]|0)+-1;}while(1){if((d[(c[i>>2]|0)+(c[p>>2]<<3)+7>>0]|0|0)!=(c[k>>2]|0))break;c[p>>2]=(c[p>>2]|0)+-1;}c[n>>2]=c[n>>2]>>(c[m>>2]|0)-(c[k>>2]|0);c[q>>2]=-252645136;q=r;m=q+56|0;do{c[q>>2]=-252645136;q=q+4|0;}while((q|0)<(m|0));c[t>>2]=c[k>>2];c[s>>2]=c[p>>2];while(1){if((c[s>>2]|0)<0)break;if((d[(c[i>>2]|0)+(c[s>>2]<<3)+7>>0]|0)>>>0<(c[t>>2]|0)>>>0){c[t>>2]=d[(c[i>>2]|0)+(c[s>>2]<<3)+7>>0];c[r+((c[k>>2]|0)-(c[t>>2]|0)<<2)>>2]=c[s>>2];}c[s>>2]=(c[s>>2]|0)+-1;}while(1){if((c[n>>2]|0)<=0)break;c[u>>2]=(Ni(c[n>>2]|0)|0)+1;while(1){if((c[u>>2]|0)>>>0<=1)break;c[v>>2]=c[r+(c[u>>2]<<2)>>2];c[w>>2]=c[r+((c[u>>2]|0)-1<<2)>>2];if((c[v>>2]|0)!=-252645136){if((c[w>>2]|0)==-252645136)break;c[x>>2]=c[(c[i>>2]|0)+(c[v>>2]<<3)>>2];c[y>>2]=c[(c[i>>2]|0)+(c[w>>2]<<3)>>2]<<1;if((c[x>>2]|0)>>>0<=(c[y>>2]|0)>>>0)break;}c[u>>2]=(c[u>>2]|0)+-1;}while(1){if((c[u>>2]|0)>>>0<=12)A=(c[r+(c[u>>2]<<2)>>2]|0)==-252645136;else A=0;B=c[u>>2]|0;if(!A)break;c[u>>2]=B+1;}c[n>>2]=(c[n>>2]|0)-(1<<B-1);if((c[r+((c[u>>2]|0)-1<<2)>>2]|0)==-252645136)c[r+((c[u>>2]|0)-1<<2)>>2]=c[r+(c[u>>2]<<2)>>2];s=(c[i>>2]|0)+(c[r+(c[u>>2]<<2)>>2]<<3)+7|0;a[s>>0]=(a[s>>0]|0)+1<<24>>24;s=r+(c[u>>2]<<2)|0;if(c[r+(c[u>>2]<<2)>>2]|0){c[s>>2]=(c[s>>2]|0)+-1;if((d[(c[i>>2]|0)+(c[r+(c[u>>2]<<2)>>2]<<3)+7>>0]|0|0)!=((c[k>>2]|0)-(c[u>>2]|0)|0))c[r+(c[u>>2]<<2)>>2]=-252645136;}else c[s>>2]=-252645136;}while(1){if((c[n>>2]|0)>=0)break;if((c[r+4>>2]|0)!=-252645136){u=(c[i>>2]|0)+((c[r+4>>2]|0)+1<<3)+7|0;a[u>>0]=(a[u>>0]|0)+-1<<24>>24;u=r+4|0;c[u>>2]=(c[u>>2]|0)+1;c[n>>2]=(c[n>>2]|0)+1;continue;}while(1){if((d[(c[i>>2]|0)+(c[p>>2]<<3)+7>>0]|0|0)!=(c[k>>2]|0))break;c[p>>2]=(c[p>>2]|0)+-1;}u=(c[i>>2]|0)+((c[p>>2]|0)+1<<3)+7|0;a[u>>0]=(a[u>>0]|0)+-1<<24>>24;c[r+4>>2]=(c[p>>2]|0)+1;c[n>>2]=(c[n>>2]|0)+1;}c[h>>2]=c[k>>2];z=c[h>>2]|0;l=g;return z|0;}function Ni(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=31-(Q(c[d>>2]|0)|0)|0;l=b;return a|0;}function Oi(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;h=l;l=l+32|0;i=h+24|0;j=h+20|0;k=h+16|0;m=h+12|0;n=h+8|0;o=h+4|0;p=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;g=c[j>>2]|0;j=c[k>>2]|0;k=c[m>>2]|0;m=c[n>>2]|0;n=c[o>>2]|0;if(c[p>>2]|0){c[i>>2]=Pi(g,j,k,m,n)|0;q=c[i>>2]|0;l=h;return q|0;}else{c[i>>2]=Qi(g,j,k,m,n)|0;q=c[i>>2]|0;l=h;return q|0;}return 0;}function Pi(a,b,f,g,h){a=a|0;b=b|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0;i=l;l=l+176|0;j=i+168|0;k=i+164|0;m=i+160|0;n=i+156|0;o=i+152|0;p=i+148|0;q=i+144|0;r=i+140|0;s=i+136|0;t=i+132|0;u=i+128|0;v=i+124|0;w=i+120|0;x=i+116|0;y=i+112|0;z=i+108|0;A=i+104|0;B=i+100|0;C=i+96|0;D=i+92|0;E=i+88|0;F=i+84|0;G=i+80|0;H=i+76|0;I=i+72|0;J=i+68|0;K=i+64|0;L=i+60|0;M=i+56|0;N=i+52|0;O=i+48|0;P=i+44|0;Q=i+24|0;R=i+20|0;S=i+16|0;T=i+12|0;U=i+8|0;V=i+4|0;W=i;c[S>>2]=a;c[T>>2]=b;c[U>>2]=f;c[V>>2]=g;c[W>>2]=h;h=c[T>>2]|0;T=c[U>>2]|0;U=c[V>>2]|0;V=c[W>>2]|0;c[G>>2]=c[S>>2];c[H>>2]=h;c[I>>2]=T;c[J>>2]=U;c[K>>2]=V;c[L>>2]=c[I>>2];c[M>>2]=c[G>>2];c[N>>2]=(c[M>>2]|0)+(c[H>>2]|0);c[O>>2]=c[M>>2];if((c[H>>2]|0)>>>0<8){c[F>>2]=0;X=c[F>>2]|0;l=i;return X|0;}c[R>>2]=Ri(Q,c[O>>2]|0,(c[N>>2]|0)-(c[O>>2]|0)|0)|0;if(Hi(c[R>>2]|0)|0){c[F>>2]=0;X=c[F>>2]|0;l=i;return X|0;}c[P>>2]=c[J>>2]&-4;switch(c[J>>2]&3|0){case 3:{J=d[(c[L>>2]|0)+((c[P>>2]|0)+2)>>0]|0;R=c[K>>2]|0;c[C>>2]=Q;c[D>>2]=J;c[E>>2]=R;Si(c[C>>2]|0,e[(c[E>>2]|0)+(c[D>>2]<<2)>>1]|0,d[(c[E>>2]|0)+(c[D>>2]<<2)+2>>0]|0);Ti(Q);Y=7;break;}case 2:{Y=7;break;}case 1:{Y=8;break;}case 0:break;default:{}}if((Y|0)==7){D=d[(c[L>>2]|0)+((c[P>>2]|0)+1)>>0]|0;E=c[K>>2]|0;c[z>>2]=Q;c[A>>2]=D;c[B>>2]=E;Si(c[z>>2]|0,e[(c[B>>2]|0)+(c[A>>2]<<2)>>1]|0,d[(c[B>>2]|0)+(c[A>>2]<<2)+2>>0]|0);Y=8;}if((Y|0)==8){Y=d[(c[L>>2]|0)+(c[P>>2]|0)>>0]|0;A=c[K>>2]|0;c[w>>2]=Q;c[x>>2]=Y;c[y>>2]=A;Si(c[w>>2]|0,e[(c[y>>2]|0)+(c[x>>2]<<2)>>1]|0,d[(c[y>>2]|0)+(c[x>>2]<<2)+2>>0]|0);Ti(Q);}while(1){if((c[P>>2]|0)>>>0<=0)break;x=d[(c[L>>2]|0)+((c[P>>2]|0)-1)>>0]|0;y=c[K>>2]|0;c[t>>2]=Q;c[u>>2]=x;c[v>>2]=y;Si(c[t>>2]|0,e[(c[v>>2]|0)+(c[u>>2]<<2)>>1]|0,d[(c[v>>2]|0)+(c[u>>2]<<2)+2>>0]|0);y=d[(c[L>>2]|0)+((c[P>>2]|0)-2)>>0]|0;x=c[K>>2]|0;c[q>>2]=Q;c[r>>2]=y;c[s>>2]=x;Si(c[q>>2]|0,e[(c[s>>2]|0)+(c[r>>2]<<2)>>1]|0,d[(c[s>>2]|0)+(c[r>>2]<<2)+2>>0]|0);Ti(Q);x=d[(c[L>>2]|0)+((c[P>>2]|0)-3)>>0]|0;y=c[K>>2]|0;c[n>>2]=Q;c[o>>2]=x;c[p>>2]=y;Si(c[n>>2]|0,e[(c[p>>2]|0)+(c[o>>2]<<2)>>1]|0,d[(c[p>>2]|0)+(c[o>>2]<<2)+2>>0]|0);y=d[(c[L>>2]|0)+((c[P>>2]|0)-4)>>0]|0;x=c[K>>2]|0;c[j>>2]=Q;c[k>>2]=y;c[m>>2]=x;Si(c[j>>2]|0,e[(c[m>>2]|0)+(c[k>>2]<<2)>>1]|0,d[(c[m>>2]|0)+(c[k>>2]<<2)+2>>0]|0);Ti(Q);c[P>>2]=(c[P>>2]|0)-4;}c[F>>2]=Ui(Q)|0;X=c[F>>2]|0;l=i;return X|0;}function Qi(a,b,f,g,h){a=a|0;b=b|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0;i=l;l=l+176|0;j=i+168|0;k=i+164|0;m=i+160|0;n=i+156|0;o=i+152|0;p=i+148|0;q=i+144|0;r=i+140|0;s=i+136|0;t=i+132|0;u=i+128|0;v=i+124|0;w=i+120|0;x=i+116|0;y=i+112|0;z=i+108|0;A=i+104|0;B=i+100|0;C=i+96|0;D=i+92|0;E=i+88|0;F=i+84|0;G=i+80|0;H=i+76|0;I=i+72|0;J=i+68|0;K=i+64|0;L=i+60|0;M=i+56|0;N=i+52|0;O=i+48|0;P=i+44|0;Q=i+24|0;R=i+20|0;S=i+16|0;T=i+12|0;U=i+8|0;V=i+4|0;W=i;c[S>>2]=a;c[T>>2]=b;c[U>>2]=f;c[V>>2]=g;c[W>>2]=h;h=c[T>>2]|0;T=c[U>>2]|0;U=c[V>>2]|0;V=c[W>>2]|0;c[G>>2]=c[S>>2];c[H>>2]=h;c[I>>2]=T;c[J>>2]=U;c[K>>2]=V;c[L>>2]=c[I>>2];c[M>>2]=c[G>>2];c[N>>2]=(c[M>>2]|0)+(c[H>>2]|0);c[O>>2]=c[M>>2];if((c[H>>2]|0)>>>0<8){c[F>>2]=0;X=c[F>>2]|0;l=i;return X|0;}c[R>>2]=Ri(Q,c[O>>2]|0,(c[N>>2]|0)-(c[O>>2]|0)|0)|0;if(Hi(c[R>>2]|0)|0){c[F>>2]=0;X=c[F>>2]|0;l=i;return X|0;}c[P>>2]=c[J>>2]&-4;switch(c[J>>2]&3|0){case 3:{J=d[(c[L>>2]|0)+((c[P>>2]|0)+2)>>0]|0;R=c[K>>2]|0;c[C>>2]=Q;c[D>>2]=J;c[E>>2]=R;Si(c[C>>2]|0,e[(c[E>>2]|0)+(c[D>>2]<<2)>>1]|0,d[(c[E>>2]|0)+(c[D>>2]<<2)+2>>0]|0);Ti(Q);Y=7;break;}case 2:{Y=7;break;}case 1:{Y=8;break;}case 0:break;default:{}}if((Y|0)==7){D=d[(c[L>>2]|0)+((c[P>>2]|0)+1)>>0]|0;E=c[K>>2]|0;c[z>>2]=Q;c[A>>2]=D;c[B>>2]=E;Si(c[z>>2]|0,e[(c[B>>2]|0)+(c[A>>2]<<2)>>1]|0,d[(c[B>>2]|0)+(c[A>>2]<<2)+2>>0]|0);Y=8;}if((Y|0)==8){Y=d[(c[L>>2]|0)+(c[P>>2]|0)>>0]|0;A=c[K>>2]|0;c[w>>2]=Q;c[x>>2]=Y;c[y>>2]=A;Si(c[w>>2]|0,e[(c[y>>2]|0)+(c[x>>2]<<2)>>1]|0,d[(c[y>>2]|0)+(c[x>>2]<<2)+2>>0]|0);Ti(Q);}while(1){if((c[P>>2]|0)>>>0<=0)break;x=d[(c[L>>2]|0)+((c[P>>2]|0)-1)>>0]|0;y=c[K>>2]|0;c[t>>2]=Q;c[u>>2]=x;c[v>>2]=y;Si(c[t>>2]|0,e[(c[v>>2]|0)+(c[u>>2]<<2)>>1]|0,d[(c[v>>2]|0)+(c[u>>2]<<2)+2>>0]|0);y=d[(c[L>>2]|0)+((c[P>>2]|0)-2)>>0]|0;x=c[K>>2]|0;c[q>>2]=Q;c[r>>2]=y;c[s>>2]=x;Si(c[q>>2]|0,e[(c[s>>2]|0)+(c[r>>2]<<2)>>1]|0,d[(c[s>>2]|0)+(c[r>>2]<<2)+2>>0]|0);Ti(Q);x=d[(c[L>>2]|0)+((c[P>>2]|0)-3)>>0]|0;y=c[K>>2]|0;c[n>>2]=Q;c[o>>2]=x;c[p>>2]=y;Si(c[n>>2]|0,e[(c[p>>2]|0)+(c[o>>2]<<2)>>1]|0,d[(c[p>>2]|0)+(c[o>>2]<<2)+2>>0]|0);y=d[(c[L>>2]|0)+((c[P>>2]|0)-4)>>0]|0;x=c[K>>2]|0;c[j>>2]=Q;c[k>>2]=y;c[m>>2]=x;Si(c[j>>2]|0,e[(c[m>>2]|0)+(c[k>>2]<<2)>>1]|0,d[(c[m>>2]|0)+(c[k>>2]<<2)+2>>0]|0);Ti(Q);c[P>>2]=(c[P>>2]|0)-4;}c[F>>2]=Ui(Q)|0;X=c[F>>2]|0;l=i;return X|0;}function Ri(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[c[g>>2]>>2]=0;c[(c[g>>2]|0)+4>>2]=0;c[(c[g>>2]|0)+8>>2]=c[h>>2];c[(c[g>>2]|0)+12>>2]=c[(c[g>>2]|0)+8>>2];c[(c[g>>2]|0)+16>>2]=(c[(c[g>>2]|0)+8>>2]|0)+(c[i>>2]|0)+-4;if((c[i>>2]|0)>>>0<=4){c[f>>2]=-70;j=c[f>>2]|0;l=e;return j|0;}else{c[f>>2]=0;j=c[f>>2]|0;l=e;return j|0;}return 0;}function Si(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=c[f>>2]|0;c[d>>2]=c[d>>2]|c[g>>2]<<c[(c[f>>2]|0)+4>>2];g=(c[f>>2]|0)+4|0;c[g>>2]=(c[g>>2]|0)+(c[h>>2]|0);l=e;return;}function Ti(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=(c[(c[d>>2]|0)+4>>2]|0)>>>3;Vi(c[(c[d>>2]|0)+12>>2]|0,c[c[d>>2]>>2]|0);a=(c[d>>2]|0)+12|0;c[a>>2]=(c[a>>2]|0)+(c[e>>2]|0);if((c[(c[d>>2]|0)+12>>2]|0)>>>0>(c[(c[d>>2]|0)+16>>2]|0)>>>0)c[(c[d>>2]|0)+12>>2]=c[(c[d>>2]|0)+16>>2];a=(c[d>>2]|0)+4|0;c[a>>2]=c[a>>2]&7;a=c[d>>2]|0;c[a>>2]=(c[a>>2]|0)>>>(c[e>>2]<<3);l=b;return;}function Ui(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;Si(c[e>>2]|0,1,1);Ti(c[e>>2]|0);if((c[(c[e>>2]|0)+12>>2]|0)>>>0>=(c[(c[e>>2]|0)+16>>2]|0)>>>0){c[d>>2]=0;f=c[d>>2]|0;l=b;return f|0;}else{c[d>>2]=(c[(c[e>>2]|0)+12>>2]|0)-(c[(c[e>>2]|0)+8>>2]|0)+((c[(c[e>>2]|0)+4>>2]|0)>>>0>0&1);f=c[d>>2]|0;l=b;return f|0;}return 0;}function Vi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=(Wi()|0)!=0;a=c[e>>2]|0;e=c[f>>2]|0;if(b){Xi(a,e);l=d;return;}else{Yi(a,e,0);l=d;return;}}function Wi(){return 1;}function Xi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=(Zi()|0)!=0;a=c[e>>2]|0;e=c[f>>2]|0;if(b){aj(a,e);l=d;return;}else{aj(a,bj(e)|0);l=d;return;}}function Yi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+8|0;g=e;c[f>>2]=a;a=g;c[a>>2]=b;c[a+4>>2]=d;d=(Zi()|0)!=0;a=c[f>>2]|0;f=g;g=c[f>>2]|0;b=c[f+4>>2]|0;if(d){_i(a,g,b);l=e;return;}else{d=$i(g,b)|0;_i(a,d,y);l=e;return;}}function Zi(){return d[11936]|0|0;}function _i(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=l;l=l+16|0;g=f+8|0;h=f;c[g>>2]=b;b=h;c[b>>2]=d;c[b+4>>2]=e;e=h;h=c[e>>2]|0;b=c[e+4>>2]|0;e=c[g>>2]|0;g=e;a[g>>0]=h;a[g+1>>0]=h>>8;a[g+2>>0]=h>>16;a[g+3>>0]=h>>24;h=e+4|0;a[h>>0]=b;a[h+1>>0]=b>>8;a[h+2>>0]=b>>16;a[h+3>>0]=b>>24;l=f;return;}function $i(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d;f=e;c[f>>2]=a;c[f+4>>2]=b;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,56)|0;b=y&-16777216;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,40)|0;f=b|y&16711680;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=f|y&65280;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,8)|0;f=b|y&255;b=e;a=iE(c[b>>2]|0,c[b+4>>2]|0,8)|0;b=e;g=iE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=e;h=iE(c[b>>2]|0,c[b+4>>2]|0,40)|0;b=e;e=iE(c[b>>2]|0,c[b+4>>2]|0,56)|0;y=f;l=d;return a&-16777216|g&16711680|h&65280|e&255|0;}function aj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[g>>2]|0;g=c[f>>2]|0;a[g>>0]=d;a[g+1>>0]=d>>8;a[g+2>>0]=d>>16;a[g+3>>0]=d>>24;l=e;return;}function bj(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[d>>2]<<24&-16777216|c[d>>2]<<8&16711680|(c[d>>2]|0)>>>8&65280|(c[d>>2]|0)>>>24&255|0;}function cj(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;h=l;l=l+80|0;i=h+64|0;j=h+60|0;k=h+56|0;m=h+52|0;n=h+48|0;o=h+44|0;p=h+40|0;q=h+36|0;r=h+32|0;s=h+28|0;t=h+24|0;u=h+20|0;v=h+16|0;w=h+12|0;x=h+8|0;y=h+4|0;z=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=(((c[n>>2]|0)+3|0)>>>0)/4|0;c[r>>2]=c[m>>2];c[s>>2]=(c[r>>2]|0)+(c[n>>2]|0);c[t>>2]=c[j>>2];c[u>>2]=(c[t>>2]|0)+(c[k>>2]|0);c[v>>2]=c[t>>2];if((c[k>>2]|0)>>>0<17){c[i>>2]=0;A=c[i>>2]|0;l=h;return A|0;}if((c[n>>2]|0)>>>0<12){c[i>>2]=0;A=c[i>>2]|0;l=h;return A|0;}c[v>>2]=(c[v>>2]|0)+6;c[w>>2]=Oi(c[v>>2]|0,(c[u>>2]|0)-(c[v>>2]|0)|0,c[r>>2]|0,c[q>>2]|0,c[o>>2]|0,c[p>>2]|0)|0;n=(Hi(c[w>>2]|0)|0)!=0;k=c[w>>2]|0;if(n){c[i>>2]=k;A=c[i>>2]|0;l=h;return A|0;}if(!k){c[i>>2]=0;A=c[i>>2]|0;l=h;return A|0;}dj(c[t>>2]|0,c[w>>2]&65535);c[v>>2]=(c[v>>2]|0)+(c[w>>2]|0);c[r>>2]=(c[r>>2]|0)+(c[q>>2]|0);c[x>>2]=Oi(c[v>>2]|0,(c[u>>2]|0)-(c[v>>2]|0)|0,c[r>>2]|0,c[q>>2]|0,c[o>>2]|0,c[p>>2]|0)|0;w=(Hi(c[x>>2]|0)|0)!=0;k=c[x>>2]|0;if(w){c[i>>2]=k;A=c[i>>2]|0;l=h;return A|0;}if(!k){c[i>>2]=0;A=c[i>>2]|0;l=h;return A|0;}dj((c[t>>2]|0)+2|0,c[x>>2]&65535);c[v>>2]=(c[v>>2]|0)+(c[x>>2]|0);c[r>>2]=(c[r>>2]|0)+(c[q>>2]|0);c[y>>2]=Oi(c[v>>2]|0,(c[u>>2]|0)-(c[v>>2]|0)|0,c[r>>2]|0,c[q>>2]|0,c[o>>2]|0,c[p>>2]|0)|0;x=(Hi(c[y>>2]|0)|0)!=0;k=c[y>>2]|0;if(x){c[i>>2]=k;A=c[i>>2]|0;l=h;return A|0;}if(!k){c[i>>2]=0;A=c[i>>2]|0;l=h;return A|0;}dj((c[t>>2]|0)+4|0,c[y>>2]&65535);c[v>>2]=(c[v>>2]|0)+(c[y>>2]|0);c[r>>2]=(c[r>>2]|0)+(c[q>>2]|0);c[z>>2]=Oi(c[v>>2]|0,(c[u>>2]|0)-(c[v>>2]|0)|0,c[r>>2]|0,(c[s>>2]|0)-(c[r>>2]|0)|0,c[o>>2]|0,c[p>>2]|0)|0;p=(Hi(c[z>>2]|0)|0)!=0;o=c[z>>2]|0;if(p){c[i>>2]=o;A=c[i>>2]|0;l=h;return A|0;}if(!o){c[i>>2]=0;A=c[i>>2]|0;l=h;return A|0;}else{c[v>>2]=(c[v>>2]|0)+(c[z>>2]|0);c[i>>2]=(c[v>>2]|0)-(c[t>>2]|0);A=c[i>>2]|0;l=h;return A|0;}return 0;}function dj(d,f){d=d|0;f=f|0;var g=0,h=0,i=0,j=0;g=l;l=l+16|0;h=g+4|0;i=g+8|0;j=g;c[h>>2]=d;b[i>>1]=f;f=(Zi()|0)!=0;d=c[h>>2]|0;if(f){ej(d,b[i>>1]|0);l=g;return;}else{c[j>>2]=d;a[c[j>>2]>>0]=b[i>>1];a[(c[j>>2]|0)+1>>0]=(e[i>>1]|0)>>8;l=g;return;}}function ej(d,e){d=d|0;e=e|0;var f=0,g=0,h=0;f=l;l=l+16|0;g=f;h=f+4|0;c[g>>2]=d;b[h>>1]=e;e=b[h>>1]|0;h=c[g>>2]|0;a[h>>0]=e;a[h+1>>0]=e>>8;l=f;return;}function fj(b,d,e,f,g,h,i,j,k,m,n,o,p){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;p=p|0;var q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0;q=l;l=l+96|0;r=q+88|0;s=q+84|0;t=q+80|0;u=q+76|0;v=q+72|0;w=q+68|0;x=q+64|0;y=q+60|0;z=q+56|0;A=q+52|0;B=q+48|0;C=q+44|0;D=q+40|0;E=q+36|0;F=q+32|0;G=q+28|0;H=q+24|0;I=q+20|0;J=q+16|0;K=q+12|0;L=q+8|0;M=q+4|0;N=q;c[s>>2]=b;c[t>>2]=d;c[u>>2]=e;c[v>>2]=f;c[w>>2]=g;c[x>>2]=h;c[y>>2]=i;c[z>>2]=j;c[A>>2]=k;c[B>>2]=m;c[C>>2]=n;c[D>>2]=o;c[E>>2]=p;c[F>>2]=c[z>>2];c[G>>2]=c[s>>2];c[H>>2]=(c[G>>2]|0)+(c[t>>2]|0);c[I>>2]=c[G>>2];if(c[z>>2]&3|0){c[r>>2]=-1;O=c[r>>2]|0;l=q;return O|0;}if((c[A>>2]|0)>>>0<6144){c[r>>2]=-66;O=c[r>>2]|0;l=q;return O|0;}if(!(c[v>>2]|0)){c[r>>2]=0;O=c[r>>2]|0;l=q;return O|0;}if(!(c[t>>2]|0)){c[r>>2]=0;O=c[r>>2]|0;l=q;return O|0;}if((c[v>>2]|0)>>>0>131072){c[r>>2]=-72;O=c[r>>2]|0;l=q;return O|0;}if((c[x>>2]|0)>>>0>12){c[r>>2]=-44;O=c[r>>2]|0;l=q;return O|0;}if((c[w>>2]|0)>>>0>255){c[r>>2]=-46;O=c[r>>2]|0;l=q;return O|0;}if(!(c[w>>2]|0))c[w>>2]=255;if(!(c[x>>2]|0))c[x>>2]=11;if((c[D>>2]|0)!=0&(c[C>>2]|0)!=0?(c[c[C>>2]>>2]|0)==2:0){c[r>>2]=gj(c[G>>2]|0,c[I>>2]|0,c[H>>2]|0,c[u>>2]|0,c[v>>2]|0,c[y>>2]|0,c[B>>2]|0,c[E>>2]|0)|0;O=c[r>>2]|0;l=q;return O|0;}c[J>>2]=bi(c[F>>2]|0,w,c[u>>2]|0,c[v>>2]|0,c[F>>2]|0)|0;A=(Hi(c[J>>2]|0)|0)!=0;z=c[J>>2]|0;if(A){c[r>>2]=z;O=c[r>>2]|0;l=q;return O|0;}if((z|0)==(c[v>>2]|0)){a[c[G>>2]>>0]=a[c[u>>2]>>0]|0;c[r>>2]=1;O=c[r>>2]|0;l=q;return O|0;}if((c[J>>2]|0)>>>0<=(((c[v>>2]|0)>>>7)+1|0)>>>0){c[r>>2]=0;O=c[r>>2]|0;l=q;return O|0;}if((c[C>>2]|0?(c[c[C>>2]>>2]|0)==1:0)?(hj(c[B>>2]|0,c[F>>2]|0,c[w>>2]|0)|0)==0:0)c[c[C>>2]>>2]=0;if((c[D>>2]|0)!=0&(c[C>>2]|0)!=0?c[c[C>>2]>>2]|0:0){c[r>>2]=gj(c[G>>2]|0,c[I>>2]|0,c[H>>2]|0,c[u>>2]|0,c[v>>2]|0,c[y>>2]|0,c[B>>2]|0,c[E>>2]|0)|0;O=c[r>>2]|0;l=q;return O|0;}c[x>>2]=Fi(c[x>>2]|0,c[v>>2]|0,c[w>>2]|0)|0;c[K>>2]=Ki((c[F>>2]|0)+1024|0,c[F>>2]|0,c[w>>2]|0,c[x>>2]|0,(c[F>>2]|0)+2048|0,4096)|0;D=(Hi(c[K>>2]|0)|0)!=0;J=c[K>>2]|0;if(D){c[r>>2]=J;O=c[r>>2]|0;l=q;return O|0;}c[x>>2]=J;oE((c[F>>2]|0)+1024+((c[w>>2]|0)+1<<2)|0,0,1024-((c[w>>2]|0)+1<<2)|0)|0;c[L>>2]=Ii(c[I>>2]|0,c[t>>2]|0,(c[F>>2]|0)+1024|0,c[w>>2]|0,c[x>>2]|0)|0;if(Hi(c[L>>2]|0)|0){c[r>>2]=c[L>>2];O=c[r>>2]|0;l=q;return O|0;}do{if(c[C>>2]|0?c[c[C>>2]>>2]|0:0){c[M>>2]=ij(c[B>>2]|0,c[F>>2]|0,c[w>>2]|0)|0;c[N>>2]=ij((c[F>>2]|0)+1024|0,c[F>>2]|0,c[w>>2]|0)|0;if((c[M>>2]|0)>>>0>((c[L>>2]|0)+(c[N>>2]|0)|0)>>>0?((c[L>>2]|0)+12|0)>>>0<(c[v>>2]|0)>>>0:0)break;c[r>>2]=gj(c[G>>2]|0,c[I>>2]|0,c[H>>2]|0,c[u>>2]|0,c[v>>2]|0,c[y>>2]|0,c[B>>2]|0,c[E>>2]|0)|0;O=c[r>>2]|0;l=q;return O|0;}}while(0);if(((c[L>>2]|0)+12|0)>>>0>=(c[v>>2]|0)>>>0){c[r>>2]=0;O=c[r>>2]|0;l=q;return O|0;}c[I>>2]=(c[I>>2]|0)+(c[L>>2]|0);if(c[C>>2]|0)c[c[C>>2]>>2]=0;if(c[B>>2]|0)mE(c[B>>2]|0,(c[F>>2]|0)+1024|0,1024)|0;c[r>>2]=gj(c[G>>2]|0,c[I>>2]|0,c[H>>2]|0,c[u>>2]|0,c[v>>2]|0,c[y>>2]|0,(c[F>>2]|0)+1024|0,c[E>>2]|0)|0;O=c[r>>2]|0;l=q;return O|0;}function gj(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;j=l;l=l+48|0;k=j+36|0;m=j+32|0;n=j+28|0;o=j+24|0;p=j+20|0;q=j+16|0;r=j+12|0;s=j+8|0;t=j+4|0;u=j;c[m>>2]=a;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=i;i=c[n>>2]|0;h=(c[o>>2]|0)-(c[n>>2]|0)|0;o=c[p>>2]|0;p=c[q>>2]|0;g=c[s>>2]|0;s=c[t>>2]|0;if(c[r>>2]|0)v=Oi(i,h,o,p,g,s)|0;else v=cj(i,h,o,p,g,s)|0;c[u>>2]=v;v=(Hi(c[u>>2]|0)|0)!=0;s=c[u>>2]|0;if(v){c[k>>2]=s;w=c[k>>2]|0;l=j;return w|0;}if(!s){c[k>>2]=0;w=c[k>>2]|0;l=j;return w|0;}c[n>>2]=(c[n>>2]|0)+(c[u>>2]|0);if(((c[n>>2]|0)-(c[m>>2]|0)|0)>>>0>=((c[q>>2]|0)-1|0)>>>0){c[k>>2]=0;w=c[k>>2]|0;l=j;return w|0;}else{c[k>>2]=(c[n>>2]|0)-(c[m>>2]|0);w=c[k>>2]|0;l=j;return w|0;}return 0;}function hj(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=e;c[j>>2]=0;c[k>>2]=0;while(1){if((c[k>>2]|0)>(c[i>>2]|0))break;c[j>>2]=c[j>>2]|(c[(c[h>>2]|0)+(c[k>>2]<<2)>>2]|0?(d[(c[g>>2]|0)+(c[k>>2]<<2)+2>>0]|0|0)==0:0);c[k>>2]=(c[k>>2]|0)+1;}l=f;return((c[j>>2]|0)!=0^1)&1|0;}function ij(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=e;c[j>>2]=0;c[k>>2]=0;while(1){if((c[k>>2]|0)>(c[i>>2]|0))break;e=N(d[(c[g>>2]|0)+(c[k>>2]<<2)+2>>0]|0,c[(c[h>>2]|0)+(c[k>>2]<<2)>>2]|0)|0;c[j>>2]=(c[j>>2]|0)+e;c[k>>2]=(c[k>>2]|0)+1;}l=f;return(c[j>>2]|0)>>>3|0;}function jj(a,b,d,e,f,g,h,i,j,k,m,n){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;o=l;l=l+48|0;p=o+44|0;q=o+40|0;r=o+36|0;s=o+32|0;t=o+28|0;u=o+24|0;v=o+20|0;w=o+16|0;x=o+12|0;y=o+8|0;z=o+4|0;A=o;c[p>>2]=a;c[q>>2]=b;c[r>>2]=d;c[s>>2]=e;c[t>>2]=f;c[u>>2]=g;c[v>>2]=h;c[w>>2]=i;c[x>>2]=j;c[y>>2]=k;c[z>>2]=m;c[A>>2]=n;n=fj(c[p>>2]|0,c[q>>2]|0,c[r>>2]|0,c[s>>2]|0,c[t>>2]|0,c[u>>2]|0,1,c[v>>2]|0,c[w>>2]|0,c[x>>2]|0,c[y>>2]|0,c[z>>2]|0,c[A>>2]|0)|0;l=o;return n|0;}function kj(a,b,d,e,f,g,h,i,j,k,m,n){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;o=l;l=l+48|0;p=o+44|0;q=o+40|0;r=o+36|0;s=o+32|0;t=o+28|0;u=o+24|0;v=o+20|0;w=o+16|0;x=o+12|0;y=o+8|0;z=o+4|0;A=o;c[p>>2]=a;c[q>>2]=b;c[r>>2]=d;c[s>>2]=e;c[t>>2]=f;c[u>>2]=g;c[v>>2]=h;c[w>>2]=i;c[x>>2]=j;c[y>>2]=k;c[z>>2]=m;c[A>>2]=n;n=fj(c[p>>2]|0,c[q>>2]|0,c[r>>2]|0,c[s>>2]|0,c[t>>2]|0,c[u>>2]|0,0,c[v>>2]|0,c[w>>2]|0,c[x>>2]|0,c[y>>2]|0,c[z>>2]|0,c[A>>2]|0)|0;l=o;return n|0;}function lj(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=(c[d>>2]|0)+((c[d>>2]|0)>>>8)|0;if((c[d>>2]|0)>>>0>=131072){e=0;f=a+e|0;l=b;return f|0;}e=(131072-(c[d>>2]|0)|0)>>>11;f=a+e|0;l=b;return f|0;}function mj(){var a=0,b=0,d=0;a=l;l=l+16|0;b=a;c[b>>2]=c[5406];c[b+4>>2]=c[5407];c[b+8>>2]=c[5408];d=nj(b)|0;l=a;return d|0;}function nj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+48|0;d=b+24|0;e=b+20|0;f=b+16|0;g=b;if(((c[a>>2]|0)!=0^1)&1^((c[a+4>>2]|0)!=0^1)&1|0){c[e>>2]=0;h=c[e>>2]|0;l=b;return h|0;};c[d>>2]=c[a>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];c[f>>2]=Sh(656,d)|0;if(c[f>>2]|0){i=(c[f>>2]|0)+352|0;c[i>>2]=c[a>>2];c[i+4>>2]=c[a+4>>2];c[i+8>>2]=c[a+8>>2];c[(c[f>>2]|0)+12+44>>2]=3;c[(c[f>>2]|0)+12+32>>2]=1;oj(g);c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];c[d+12>>2]=c[g+12>>2];g=pj(d)|0;c[(c[f>>2]|0)+8>>2]=g;c[e>>2]=c[f>>2];h=c[e>>2]|0;l=b;return h|0;}else{c[e>>2]=0;h=c[e>>2]|0;l=b;return h|0;}return 0;}function oj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=l;l=l+32|0;d=b+28|0;e=b+24|0;f=b+20|0;g=b+16|0;h=b;c[d>>2]=0;c[e>>2]=0;c[f>>2]=0;c[g>>2]=0;c[h>>2]=c[d>>2];c[h+4>>2]=c[e>>2];c[h+8>>2]=c[f>>2];c[h+12>>2]=c[g>>2];c[a>>2]=c[h>>2];c[a+4>>2]=c[h+4>>2];c[a+8>>2]=c[h+8>>2];c[a+12>>2]=c[h+12>>2];l=b;return;}function pj(a){a=a|0;return(c[a+8>>2]&256|0)!=0|0;}function qj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=l;l=l+32|0;d=b+8|0;e=b+4|0;f=b;c[f>>2]=a;if(!(c[f>>2]|0)){c[e>>2]=0;g=c[e>>2]|0;l=b;return g|0;}if(c[(c[f>>2]|0)+364>>2]|0){c[e>>2]=-64;g=c[e>>2]|0;l=b;return g|0;}else{a=c[(c[f>>2]|0)+224>>2]|0;h=(c[f>>2]|0)+352|0;c[d>>2]=c[h>>2];c[d+4>>2]=c[h+4>>2];c[d+8>>2]=c[h+8>>2];Th(a,d);c[(c[f>>2]|0)+224>>2]=0;rj(c[(c[f>>2]|0)+636>>2]|0)|0;c[(c[f>>2]|0)+636>>2]=0;a=c[f>>2]|0;h=(c[f>>2]|0)+352|0;c[d>>2]=c[h>>2];c[d+4>>2]=c[h+4>>2];c[d+8>>2]=c[h+8>>2];Th(a,d);c[e>>2]=0;g=c[e>>2]|0;l=b;return g|0;}return 0;}function rj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=l;l=l+32|0;d=b+20|0;e=b+16|0;f=b+12|0;g=b;c[f>>2]=a;if(!(c[f>>2]|0)){c[e>>2]=0;h=c[e>>2]|0;l=b;return h|0;}else{a=(c[f>>2]|0)+4748|0;c[g>>2]=c[a>>2];c[g+4>>2]=c[a+4>>2];c[g+8>>2]=c[a+8>>2];a=c[(c[f>>2]|0)+12>>2]|0;c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];Th(a,d);a=c[c[f>>2]>>2]|0;c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];Th(a,d);a=c[f>>2]|0;c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];Th(a,d);c[e>>2]=0;h=c[e>>2]|0;l=b;return h|0;}return 0;}function sj(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0,A=0;g=l;l=l+96|0;h=g+64|0;i=g+60|0;j=g+8|0;k=g+56|0;m=g+52|0;n=g;o=g+48|0;p=g+44|0;q=g+16|0;c[i>>2]=b;b=j;c[b>>2]=d;c[b+4>>2]=e;c[k>>2]=f;f=j;c[m>>2]=(c[f>>2]|0)!=0|(c[f+4>>2]|0)!=0?0:500;f=j;e=dE(c[f>>2]|0,c[f+4>>2]|0,c[k>>2]|0,0)|0;if((e|0)!=0|(y|0)!=0){e=j;f=dE(c[e>>2]|0,c[e+4>>2]|0,c[k>>2]|0,0)|0;e=dE(f|0,y|0,c[m>>2]|0,0)|0;r=e;s=y;}else{r=-1;s=-1;}e=n;c[e>>2]=r;c[e+4>>2]=s;s=n;e=c[s+4>>2]|0;r=n;m=c[r+4>>2]|0;f=n;n=c[f+4>>2]|0;c[o>>2]=((e>>>0<0|(e|0)==0&(c[s>>2]|0)>>>0<=262144)&1)+((m>>>0<0|(m|0)==0&(c[r>>2]|0)>>>0<=131072)&1)+((n>>>0<0|(n|0)==0&(c[f>>2]|0)>>>0<=16384)&1);f=c[i>>2]|0;c[p>>2]=f;n=(c[i>>2]|0)==0?3:f;c[p>>2]=n;f=(c[i>>2]|0)<0?0:n;c[p>>2]=f;c[p>>2]=(c[i>>2]|0)>22?22:f;f=224+((c[o>>2]|0)*644|0)+((c[p>>2]|0)*28|0)|0;c[q>>2]=c[f>>2];c[q+4>>2]=c[f+4>>2];c[q+8>>2]=c[f+8>>2];c[q+12>>2]=c[f+12>>2];c[q+16>>2]=c[f+16>>2];c[q+20>>2]=c[f+20>>2];c[q+24>>2]=c[f+24>>2];if((c[i>>2]|0)>=0){t=j;u=t;v=c[u>>2]|0;w=t+4|0;x=w;z=c[x>>2]|0;A=c[k>>2]|0;c[h>>2]=c[q>>2];c[h+4>>2]=c[q+4>>2];c[h+8>>2]=c[q+8>>2];c[h+12>>2]=c[q+12>>2];c[h+16>>2]=c[q+16>>2];c[h+20>>2]=c[q+20>>2];c[h+24>>2]=c[q+24>>2];tj(a,h,v,z,A);l=g;return;}c[q+20>>2]=0-(c[i>>2]|0);t=j;u=t;v=c[u>>2]|0;w=t+4|0;x=w;z=c[x>>2]|0;A=c[k>>2]|0;c[h>>2]=c[q>>2];c[h+4>>2]=c[q+4>>2];c[h+8>>2]=c[q+8>>2];c[h+12>>2]=c[q+12>>2];c[h+16>>2]=c[q+16>>2];c[h+20>>2]=c[q+20>>2];c[h+24>>2]=c[q+24>>2];tj(a,h,v,z,A);l=g;return;}function tj(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;g=l;l=l+32|0;h=g;i=g+20|0;j=g+16|0;k=g+12|0;m=g+8|0;n=h;c[n>>2]=d;c[n+4>>2]=e;c[i>>2]=f;if(c[i>>2]|0?(f=h,e=dE(c[f>>2]|0,c[f+4>>2]|0,1,0)|0,f=y,f>>>0<0|(f|0)==0&e>>>0<2):0){e=h;c[e>>2]=513;c[e+4>>2]=0;}else o=4;if((o|0)==4?(o=h,(c[o>>2]|0)==0&(c[o+4>>2]|0)==0):0){o=h;c[o>>2]=-1;c[o+4>>2]=-1;}o=h;e=c[o+4>>2]|0;if(e>>>0<0|(e|0)==0&(c[o>>2]|0)>>>0<536870912?0<0|0==0&(c[i>>2]|0)>>>0<536870912:0){o=h;h=dE(c[o>>2]|0,c[o+4>>2]|0,c[i>>2]|0,0)|0;c[j>>2]=h;if((c[j>>2]|0)>>>0<64)p=6;else p=(uj((c[j>>2]|0)-1|0)|0)+1|0;c[k>>2]=p;if((c[b>>2]|0)>>>0>(c[k>>2]|0)>>>0)c[b>>2]=c[k>>2];}if((c[b+8>>2]|0)>>>0>(c[b>>2]|0)>>>0)c[b+8>>2]=c[b>>2];c[m>>2]=vj(c[b+4>>2]|0,c[b+24>>2]|0)|0;if((c[m>>2]|0)>>>0>(c[b>>2]|0)>>>0){k=b+4|0;c[k>>2]=(c[k>>2]|0)-((c[m>>2]|0)-(c[b>>2]|0));}if((c[b>>2]|0)>>>0>=10){c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];c[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];l=g;return;}c[b>>2]=10;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];c[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];l=g;return;}function uj(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=31-(Q(c[d>>2]|0)|0)|0;l=b;return a|0;}function vj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=(c[f>>2]|0)>>>0>=6&1;l=d;return(c[e>>2]|0)-(c[g>>2]|0)|0;}function wj(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return(c[d>>2]|0)>>>0>4294967176|0;}function xj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+32|0;f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;a:do{switch(c[h>>2]|0){case 10:{if((c[i>>2]|0)>>>0>1){c[f>>2]=-40;break a;}else{c[c[g>>2]>>2]=c[i>>2];c[f>>2]=c[c[g>>2]>>2];break a;}break;}case 100:{c[j>>2]=c[i>>2];if((c[j>>2]|0)>(yj()|0))c[j>>2]=yj()|0;if(c[j>>2]|0){c[(c[g>>2]|0)+48>>2]=(c[j>>2]|0)<0&1;c[(c[g>>2]|0)+44>>2]=c[j>>2];}if((c[(c[g>>2]|0)+44>>2]|0)>=0){c[f>>2]=c[(c[g>>2]|0)+44>>2];break a;}else{c[f>>2]=0;break a;}break;}case 101:{if((c[i>>2]|0)>>>0>0?(c[i>>2]|0)>>>0<10|(c[i>>2]|0)>>>0>30|0:0){c[f>>2]=-42;break a;}c[(c[g>>2]|0)+4>>2]=c[i>>2];c[f>>2]=c[(c[g>>2]|0)+4>>2];break;}case 102:{if((c[i>>2]|0)>>>0>0?(c[i>>2]|0)>>>0<6|(c[i>>2]|0)>>>0>30|0:0){c[f>>2]=-42;break a;}c[(c[g>>2]|0)+4+8>>2]=c[i>>2];c[f>>2]=c[(c[g>>2]|0)+4+8>>2];break;}case 103:{if((c[i>>2]|0)>>>0>0?(c[i>>2]|0)>>>0<6|(c[i>>2]|0)>>>0>29|0:0){c[f>>2]=-42;break a;}c[(c[g>>2]|0)+4+4>>2]=c[i>>2];c[f>>2]=c[(c[g>>2]|0)+4+4>>2];break;}case 104:{if((c[i>>2]|0)>>>0>0?(c[i>>2]|0)>>>0<1|(c[i>>2]|0)>>>0>29|0:0){c[f>>2]=-42;break a;}c[(c[g>>2]|0)+4+12>>2]=c[i>>2];c[f>>2]=c[i>>2];break;}case 105:{if((c[i>>2]|0)>>>0>0?(c[i>>2]|0)>>>0<3|(c[i>>2]|0)>>>0>7|0:0){c[f>>2]=-42;break a;}c[(c[g>>2]|0)+4+16>>2]=c[i>>2];c[f>>2]=c[(c[g>>2]|0)+4+16>>2];break;}case 106:{c[(c[g>>2]|0)+4+20>>2]=c[i>>2];c[f>>2]=c[(c[g>>2]|0)+4+20>>2];break;}case 107:{if((c[i>>2]|0)>>>0>0?(c[i>>2]|0)>>>0<1|(c[i>>2]|0)>>>0>8|0:0){c[f>>2]=-42;break a;}c[(c[g>>2]|0)+4+24>>2]=c[i>>2];c[f>>2]=c[(c[g>>2]|0)+4+24>>2];break;}case 1e3:{c[(c[g>>2]|0)+48>>2]=((c[i>>2]|0)!=0^1)&1;c[f>>2]=((c[(c[g>>2]|0)+48>>2]|0)!=0^1)&1;break;}case 200:{c[(c[g>>2]|0)+32>>2]=(c[i>>2]|0)>>>0>0&1;c[f>>2]=c[(c[g>>2]|0)+32>>2];break;}case 201:{c[(c[g>>2]|0)+32+4>>2]=(c[i>>2]|0)>>>0>0&1;c[f>>2]=c[(c[g>>2]|0)+32+4>>2];break;}case 202:{c[(c[g>>2]|0)+32+8>>2]=((c[i>>2]|0)!=0^1)&1;c[f>>2]=((c[(c[g>>2]|0)+32+8>>2]|0)!=0^1)&1;break;}case 1100:{c[(c[g>>2]|0)+52>>2]=(c[i>>2]|0)>>>0>0&1;c[f>>2]=c[(c[g>>2]|0)+52>>2];break;}case 400:{if((c[i>>2]|0)>>>0>0){c[f>>2]=-40;break a;}else{c[f>>2]=0;break a;}break;}case 401:{c[f>>2]=-40;break;}case 402:{c[f>>2]=-40;break;}case 160:{c[(c[g>>2]|0)+68>>2]=(c[i>>2]|0)>>>0>0&1;c[f>>2]=c[(c[g>>2]|0)+68>>2];break;}case 161:{if((c[i>>2]|0)>>>0>0?(c[i>>2]|0)>>>0<6|(c[i>>2]|0)>>>0>30|0:0){c[f>>2]=-42;break a;}c[(c[g>>2]|0)+68+4>>2]=c[i>>2];c[f>>2]=c[(c[g>>2]|0)+68+4>>2];break;}case 162:{if((c[i>>2]|0)>>>0>0?(c[i>>2]|0)>>>0<4|(c[i>>2]|0)>>>0>4096|0:0){c[f>>2]=-42;break a;}c[(c[g>>2]|0)+68+12>>2]=c[i>>2];c[f>>2]=c[(c[g>>2]|0)+68+12>>2];break;}case 163:{if((c[i>>2]|0)>>>0>8){c[f>>2]=-42;break a;}else{c[(c[g>>2]|0)+68+8>>2]=c[i>>2];c[f>>2]=c[(c[g>>2]|0)+68+8>>2];break a;}break;}case 164:{if((c[i>>2]|0)>>>0>24){c[f>>2]=-42;break a;}else{c[(c[g>>2]|0)+68+16>>2]=c[i>>2];c[f>>2]=c[(c[g>>2]|0)+68+16>>2];break a;}break;}default:c[f>>2]=-40;}}while(0);l=e;return c[f>>2]|0;}function yj(){return 22;}function zj(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;h=l;l=l+64|0;i=h+32|0;j=h+28|0;k=h+24|0;m=h+20|0;n=h+16|0;o=h+12|0;p=h+8|0;q=h+4|0;r=h;c[k>>2]=a;c[m>>2]=b;c[n>>2]=d;c[o>>2]=e;if(((c[g>>2]|0)!=0^1)&1^((c[g+4>>2]|0)!=0^1)&1|0){c[j>>2]=0;s=c[j>>2]|0;l=h;return s|0;};c[i>>2]=c[g>>2];c[i+4>>2]=c[g+4>>2];c[i+8>>2]=c[g+8>>2];c[p>>2]=Rh(4764,i)|0;c[q>>2]=6144+(Aj(f,0)|0);e=c[q>>2]|0;c[i>>2]=c[g>>2];c[i+4>>2]=c[g+4>>2];c[i+8>>2]=c[g+8>>2];c[r>>2]=Rh(e,i)|0;e=c[p>>2]|0;if(!((c[p>>2]|0)!=0&(c[r>>2]|0)!=0)){c[i>>2]=c[g>>2];c[i+4>>2]=c[g+4>>2];c[i+8>>2]=c[g+8>>2];Th(e,i);d=c[r>>2]|0;c[i>>2]=c[g>>2];c[i+4>>2]=c[g+4>>2];c[i+8>>2]=c[g+8>>2];Th(d,i);c[j>>2]=0;s=c[j>>2]|0;l=h;return s|0;}d=e+4748|0;c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];c[(c[p>>2]|0)+12>>2]=c[r>>2];c[(c[p>>2]|0)+16>>2]=c[q>>2];q=c[p>>2]|0;r=c[k>>2]|0;k=c[m>>2]|0;m=c[n>>2]|0;n=c[o>>2]|0;c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];c[i+16>>2]=c[f+16>>2];c[i+20>>2]=c[f+20>>2];c[i+24>>2]=c[f+24>>2];f=(Ph(Bj(q,r,k,m,n,i)|0)|0)!=0;i=c[p>>2]|0;if(f){rj(i)|0;c[j>>2]=0;s=c[j>>2]|0;l=h;return s|0;}else{c[j>>2]=i;s=c[j>>2]|0;l=h;return s|0;}return 0;}function Aj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;d=l;l=l+48|0;e=d+32|0;f=d+28|0;g=d+24|0;h=d+20|0;i=d+16|0;j=d+12|0;k=d+8|0;m=d+4|0;n=d;c[e>>2]=a;c[f>>2]=b;if((c[(c[e>>2]|0)+24>>2]|0)==1)o=0;else o=1<<c[(c[e>>2]|0)+4>>2];c[g>>2]=o;c[h>>2]=1<<c[(c[e>>2]|0)+8>>2];if(c[f>>2]|0?(c[(c[e>>2]|0)+16>>2]|0)==3:0){if(17<(c[c[e>>2]>>2]|0)>>>0)p=17;else p=c[c[e>>2]>>2]|0;}else p=0;c[i>>2]=p;c[j>>2]=1<<c[i>>2];c[k>>2]=(c[g>>2]|0)+(c[h>>2]|0)+(c[j>>2]|0)<<2;c[m>>2]=149e3;if(c[f>>2]|0){if((c[(c[e>>2]|0)+24>>2]|0)==7)q=1;else q=(c[(c[e>>2]|0)+24>>2]|0)==8;}else q=0;c[n>>2]=q?149e3:0;l=d;return(c[k>>2]|0)+(c[n>>2]|0)|0;}function Bj(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;h=l;l=l+160|0;i=h+144|0;j=h+140|0;k=h+136|0;m=h+132|0;n=h+128|0;o=h+124|0;p=h+120|0;q=h+116|0;r=h+112|0;s=h+8|0;t=h;c[k>>2]=a;c[m>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;f=(c[k>>2]|0)+4720|0;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];c[f+16>>2]=c[g+16>>2];c[f+20>>2]=c[g+20>>2];c[f+24>>2]=c[g+24>>2];do{if((c[o>>2]|0)!=1&(c[m>>2]|0)!=0&(c[n>>2]|0)!=0){f=c[n>>2]|0;e=(c[k>>2]|0)+4748|0;c[i>>2]=c[e>>2];c[i+4>>2]=c[e+4>>2];c[i+8>>2]=c[e+8>>2];c[q>>2]=Rh(f,i)|0;c[c[k>>2]>>2]=c[q>>2];c[(c[k>>2]|0)+4>>2]=c[q>>2];if(c[q>>2]|0){mE(c[q>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;break;}c[j>>2]=-64;u=c[j>>2]|0;l=h;return u|0;}else{c[c[k>>2]>>2]=0;c[(c[k>>2]|0)+4>>2]=c[m>>2];}}while(0);c[(c[k>>2]|0)+8>>2]=c[n>>2];Cj((c[k>>2]|0)+128|0);c[r>>2]=Dj((c[k>>2]|0)+20|0,(c[(c[k>>2]|0)+12>>2]|0)+6144|0,g,0,0)|0;r=s;n=r+104|0;do{c[r>>2]=0;r=r+4|0;}while((r|0)<(n|0));c[s+44>>2]=3;c[s+32>>2]=1;r=s+4|0;c[r>>2]=c[g>>2];c[r+4>>2]=c[g+4>>2];c[r+8>>2]=c[g+8>>2];c[r+12>>2]=c[g+12>>2];c[r+16>>2]=c[g+16>>2];c[r+20>>2]=c[g+20>>2];c[r+24>>2]=c[g+24>>2];c[t>>2]=Ej((c[k>>2]|0)+128|0,(c[k>>2]|0)+20|0,s,c[(c[k>>2]|0)+4>>2]|0,c[(c[k>>2]|0)+8>>2]|0,c[p>>2]|0,c[(c[k>>2]|0)+12>>2]|0)|0;p=(Ph(c[t>>2]|0)|0)!=0;s=c[t>>2]|0;if(p){c[j>>2]=s;u=c[j>>2]|0;l=h;return u|0;}else{c[(c[k>>2]|0)+4760>>2]=s;c[j>>2]=0;u=c[j>>2]|0;l=h;return u|0;}return 0;}function Cj(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=0;while(1){if((c[e>>2]|0)>=3)break;c[(c[d>>2]|0)+4580+(c[e>>2]<<2)>>2]=c[11940+(c[e>>2]<<2)>>2];c[e>>2]=(c[e>>2]|0)+1;}c[(c[d>>2]|0)+4564>>2]=0;c[(c[d>>2]|0)+4568>>2]=0;c[(c[d>>2]|0)+4572>>2]=0;c[(c[d>>2]|0)+4576>>2]=0;l=b;return;}function Dj(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;g=l;l=l+48|0;h=g+36|0;i=g+32|0;j=g+28|0;k=g+24|0;m=g+20|0;n=g+16|0;o=g+12|0;p=g+8|0;q=g+4|0;r=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;if((c[(c[j>>2]|0)+24>>2]|0)==1)s=0;else s=1<<c[(c[j>>2]|0)+4>>2];c[n>>2]=s;c[o>>2]=1<<c[(c[j>>2]|0)+8>>2];if(c[m>>2]|0?(c[(c[j>>2]|0)+16>>2]|0)==3:0){if(17<(c[c[j>>2]>>2]|0)>>>0)t=17;else t=c[c[j>>2]>>2]|0;}else t=0;c[p>>2]=t;c[q>>2]=1<<c[p>>2];c[r>>2]=(c[n>>2]|0)+(c[o>>2]|0)+(c[q>>2]|0)<<2;c[(c[h>>2]|0)+32>>2]=c[p>>2];p=c[h>>2]|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;c[p+16>>2]=0;hl(c[h>>2]|0);if(c[m>>2]|0?((c[(c[j>>2]|0)+24>>2]|0)==7?1:(c[(c[j>>2]|0)+24>>2]|0)==8)|0:0){c[(c[h>>2]|0)+48>>2]=c[i>>2];c[(c[h>>2]|0)+48+4>>2]=(c[(c[h>>2]|0)+48>>2]|0)+1024;c[(c[h>>2]|0)+48+8>>2]=(c[(c[h>>2]|0)+48+4>>2]|0)+144;c[(c[h>>2]|0)+48+12>>2]=(c[(c[h>>2]|0)+48+8>>2]|0)+212;c[i>>2]=(c[(c[h>>2]|0)+48+12>>2]|0)+128;c[(c[h>>2]|0)+48+16>>2]=c[i>>2];c[i>>2]=(c[(c[h>>2]|0)+48+16>>2]|0)+32768+8;c[(c[h>>2]|0)+48+20>>2]=c[i>>2];c[i>>2]=(c[(c[h>>2]|0)+48+20>>2]|0)+114688+28;}if((c[k>>2]|0)==1){u=c[i>>2]|0;v=c[h>>2]|0;w=v+36|0;c[w>>2]=u;x=c[h>>2]|0;y=x+36|0;z=c[y>>2]|0;A=c[o>>2]|0;B=z+(A<<2)|0;C=c[h>>2]|0;D=C+44|0;c[D>>2]=B;E=c[h>>2]|0;F=E+44|0;G=c[F>>2]|0;H=c[n>>2]|0;I=G+(H<<2)|0;J=c[h>>2]|0;K=J+40|0;c[K>>2]=I;L=c[h>>2]|0;M=L+40|0;N=c[M>>2]|0;O=c[q>>2]|0;P=N+(O<<2)|0;c[i>>2]=P;Q=c[i>>2]|0;l=g;return Q|0;}oE(c[i>>2]|0,0,c[r>>2]|0)|0;u=c[i>>2]|0;v=c[h>>2]|0;w=v+36|0;c[w>>2]=u;x=c[h>>2]|0;y=x+36|0;z=c[y>>2]|0;A=c[o>>2]|0;B=z+(A<<2)|0;C=c[h>>2]|0;D=C+44|0;c[D>>2]=B;E=c[h>>2]|0;F=E+44|0;G=c[F>>2]|0;H=c[n>>2]|0;I=G+(H<<2)|0;J=c[h>>2]|0;K=J+40|0;c[K>>2]=I;L=c[h>>2]|0;M=L+40|0;N=c[M>>2]|0;O=c[q>>2]|0;P=N+(O<<2)|0;c[i>>2]=P;Q=c[i>>2]|0;l=g;return Q|0;}function Ej(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;i=l;l=l+32|0;j=i+28|0;k=i+24|0;m=i+20|0;n=i+16|0;o=i+12|0;p=i+8|0;q=i+4|0;r=i;c[k>>2]=a;c[m>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;if((c[o>>2]|0)==0|(c[p>>2]|0)>>>0<=8){c[j>>2]=0;s=c[j>>2]|0;l=i;return s|0;}Cj(c[k>>2]|0);if((c[q>>2]|0)==1){c[j>>2]=Fj(c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0)|0;s=c[j>>2]|0;l=i;return s|0;}if((Gj(c[o>>2]|0)|0)!=-332356553){if(!(c[q>>2]|0)){c[j>>2]=Fj(c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0)|0;s=c[j>>2]|0;l=i;return s|0;}if((c[q>>2]|0)==2){c[j>>2]=-32;s=c[j>>2]|0;l=i;return s|0;}}c[j>>2]=Hj(c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,c[r>>2]|0)|0;s=c[j>>2]|0;l=i;return s|0;}function Fj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;f=l;l=l+32|0;g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f+12|0;m=f+8|0;n=f+4|0;o=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=c[j>>2];c[n>>2]=(c[m>>2]|0)+(c[k>>2]|0);c[o>>2]=(c[i>>2]|0)+4;Mj(c[h>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;if(c[(c[i>>2]|0)+52>>2]|0)p=0;else p=(c[n>>2]|0)-(c[(c[h>>2]|0)+4>>2]|0)|0;c[(c[h>>2]|0)+20>>2]=p;if((c[k>>2]|0)>>>0<=8){c[g>>2]=0;q=c[g>>2]|0;l=f;return q|0;}switch(c[(c[i>>2]|0)+4+24>>2]|0){case 1:{Nj(c[h>>2]|0,c[o>>2]|0,c[n>>2]|0);break;}case 2:{Oj(c[h>>2]|0,c[o>>2]|0,c[n>>2]|0);break;}case 5:case 4:case 3:{if((c[k>>2]|0)>>>0>=8)Pj(c[h>>2]|0,c[o>>2]|0,(c[n>>2]|0)+-8|0)|0;break;}case 8:case 7:case 6:{if((c[k>>2]|0)>>>0>=8)Qj(c[h>>2]|0,c[o>>2]|0,(c[n>>2]|0)+-8|0,c[n>>2]|0);break;}default:{}}c[(c[h>>2]|0)+24>>2]=(c[n>>2]|0)-(c[(c[h>>2]|0)+4>>2]|0);c[g>>2]=0;q=c[g>>2]|0;l=f;return q|0;}function Gj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(Jj()|0)!=0;f=Kj(c[e>>2]|0)|0;if(a){c[d>>2]=f;g=c[d>>2]|0;l=b;return g|0;}else{c[d>>2]=Lj(f)|0;g=c[d>>2]|0;l=b;return g|0;}return 0;}function Hj(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0;h=l;l=l+384|0;i=h+380|0;j=h+376|0;k=h+372|0;m=h+368|0;n=h+364|0;o=h+360|0;p=h+356|0;q=h+352|0;r=h+348|0;s=h+192|0;t=h+344|0;u=h+340|0;v=h+336|0;w=h+332|0;x=h+328|0;y=h+324|0;z=h+320|0;A=h+80|0;B=h+316|0;C=h+312|0;D=h+308|0;E=h+304|0;F=h+300|0;G=h;H=h+296|0;I=h+292|0;J=h+288|0;K=h+284|0;L=h+280|0;M=h+276|0;N=h+272|0;O=h+268|0;P=h+264|0;Q=h+260|0;R=h+256|0;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=c[n>>2];c[r>>2]=(c[q>>2]|0)+(c[o>>2]|0);c[t>>2]=31;c[q>>2]=(c[q>>2]|0)+4;if(c[(c[m>>2]|0)+32+8>>2]|0)S=0;else S=Gj(c[q>>2]|0)|0;c[u>>2]=S;c[q>>2]=(c[q>>2]|0)+4;c[v>>2]=255;c[w>>2]=Ji(c[j>>2]|0,v,c[q>>2]|0,(c[r>>2]|0)-(c[q>>2]|0)|0)|0;if($g(c[w>>2]|0)|0){c[i>>2]=-30;T=c[i>>2]|0;l=h;return T|0;}if((c[v>>2]|0)>>>0<255){c[i>>2]=-30;T=c[i>>2]|0;l=h;return T|0;}c[q>>2]=(c[q>>2]|0)+(c[w>>2]|0);c[y>>2]=ah(s,t,x,c[q>>2]|0,(c[r>>2]|0)-(c[q>>2]|0)|0)|0;if(Zg(c[y>>2]|0)|0){c[i>>2]=-30;T=c[i>>2]|0;l=h;return T|0;}if((c[x>>2]|0)>>>0>8){c[i>>2]=-30;T=c[i>>2]|0;l=h;return T|0;}c[z>>2]=Uh((c[j>>2]|0)+1024|0,s,c[t>>2]|0,c[x>>2]|0,c[p>>2]|0,6144)|0;if(wj(c[z>>2]|0)|0){c[i>>2]=-30;T=c[i>>2]|0;l=h;return T|0;}c[q>>2]=(c[q>>2]|0)+(c[y>>2]|0);c[B>>2]=52;c[D>>2]=ah(A,B,C,c[q>>2]|0,(c[r>>2]|0)-(c[q>>2]|0)|0)|0;if(Zg(c[D>>2]|0)|0){c[i>>2]=-30;T=c[i>>2]|0;l=h;return T|0;}if((c[C>>2]|0)>>>0>9){c[i>>2]=-30;T=c[i>>2]|0;l=h;return T|0;}c[E>>2]=Ij(A,c[B>>2]|0,52)|0;if(wj(c[E>>2]|0)|0){c[i>>2]=c[E>>2];T=c[i>>2]|0;l=h;return T|0;}c[F>>2]=Uh((c[j>>2]|0)+1796|0,A,c[B>>2]|0,c[C>>2]|0,c[p>>2]|0,6144)|0;if(wj(c[F>>2]|0)|0){c[i>>2]=-30;T=c[i>>2]|0;l=h;return T|0;}c[q>>2]=(c[q>>2]|0)+(c[D>>2]|0);c[H>>2]=35;c[J>>2]=ah(G,H,I,c[q>>2]|0,(c[r>>2]|0)-(c[q>>2]|0)|0)|0;if(Zg(c[J>>2]|0)|0){c[i>>2]=-30;T=c[i>>2]|0;l=h;return T|0;}if((c[I>>2]|0)>>>0>9){c[i>>2]=-30;T=c[i>>2]|0;l=h;return T|0;}c[K>>2]=Ij(G,c[H>>2]|0,35)|0;if(wj(c[K>>2]|0)|0){c[i>>2]=c[K>>2];T=c[i>>2]|0;l=h;return T|0;}c[L>>2]=Uh((c[j>>2]|0)+3248|0,G,c[H>>2]|0,c[I>>2]|0,c[p>>2]|0,6144)|0;if(wj(c[L>>2]|0)|0){c[i>>2]=-30;T=c[i>>2]|0;l=h;return T|0;}c[q>>2]=(c[q>>2]|0)+(c[J>>2]|0);if(((c[q>>2]|0)+12|0)>>>0>(c[r>>2]|0)>>>0){c[i>>2]=-30;T=c[i>>2]|0;l=h;return T|0;}J=Gj(c[q>>2]|0)|0;c[(c[j>>2]|0)+4580>>2]=J;J=Gj((c[q>>2]|0)+4|0)|0;c[(c[j>>2]|0)+4580+4>>2]=J;J=Gj((c[q>>2]|0)+8|0)|0;c[(c[j>>2]|0)+4580+8>>2]=J;c[q>>2]=(c[q>>2]|0)+12;c[M>>2]=(c[r>>2]|0)-(c[q>>2]|0);c[N>>2]=31;if((c[M>>2]|0)>>>0<=4294836223){c[O>>2]=(c[M>>2]|0)+131072;c[N>>2]=uj(c[O>>2]|0)|0;}c[P>>2]=Ij(s,c[t>>2]|0,(c[N>>2]|0)>>>0<31?c[N>>2]|0:31)|0;if(wj(c[P>>2]|0)|0){c[i>>2]=c[P>>2];T=c[i>>2]|0;l=h;return T|0;}c[Q>>2]=0;while(1){U=c[j>>2]|0;if((c[Q>>2]|0)>>>0>=3){V=42;break;}if(!(c[U+4580+(c[Q>>2]<<2)>>2]|0)){V=38;break;}if((c[(c[j>>2]|0)+4580+(c[Q>>2]<<2)>>2]|0)>>>0>(c[M>>2]|0)>>>0){V=40;break;}c[Q>>2]=(c[Q>>2]|0)+1;}if((V|0)==38){c[i>>2]=-30;T=c[i>>2]|0;l=h;return T|0;}else if((V|0)==40){c[i>>2]=-30;T=c[i>>2]|0;l=h;return T|0;}else if((V|0)==42){c[U+4564>>2]=2;c[(c[j>>2]|0)+4568>>2]=2;c[(c[j>>2]|0)+4572>>2]=2;c[(c[j>>2]|0)+4576>>2]=2;c[R>>2]=Fj(c[k>>2]|0,c[m>>2]|0,c[q>>2]|0,c[M>>2]|0)|0;if(wj(c[R>>2]|0)|0){c[i>>2]=c[R>>2];T=c[i>>2]|0;l=h;return T|0;}else{c[i>>2]=c[u>>2];T=c[i>>2]|0;l=h;return T|0;}}return 0;}function Ij(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[h>>2]=a;c[i>>2]=d;c[j>>2]=e;if((c[i>>2]|0)>>>0<(c[j>>2]|0)>>>0){c[g>>2]=-30;m=c[g>>2]|0;l=f;return m|0;}c[k>>2]=0;while(1){if((c[k>>2]|0)>>>0>(c[j>>2]|0)>>>0){n=8;break;}if(!(b[(c[h>>2]|0)+(c[k>>2]<<1)>>1]|0)){n=6;break;}c[k>>2]=(c[k>>2]|0)+1;}if((n|0)==6){c[g>>2]=-30;m=c[g>>2]|0;l=f;return m|0;}else if((n|0)==8){c[g>>2]=0;m=c[g>>2]|0;l=f;return m|0;}return 0;}function Jj(){return d[11936]|0|0;}function Kj(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0;}function Lj(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[d>>2]<<24&-16777216|c[d>>2]<<8&16711680|(c[d>>2]|0)>>>8&65280|(c[d>>2]|0)>>>24&255|0;}function Mj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;e=l;l=l+32|0;f=e+28|0;g=e+24|0;h=e+20|0;i=e+16|0;j=e+12|0;k=e+8|0;m=e+4|0;n=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[g>>2];c[j>>2]=1;if((c[g>>2]|0)!=(c[c[f>>2]>>2]|0)){c[k>>2]=(c[c[f>>2]>>2]|0)-(c[(c[f>>2]|0)+4>>2]|0);c[(c[f>>2]|0)+16>>2]=c[(c[f>>2]|0)+12>>2];c[(c[f>>2]|0)+12>>2]=c[k>>2];c[(c[f>>2]|0)+8>>2]=c[(c[f>>2]|0)+4>>2];c[(c[f>>2]|0)+4>>2]=(c[i>>2]|0)+(0-(c[k>>2]|0));if(((c[(c[f>>2]|0)+12>>2]|0)-(c[(c[f>>2]|0)+16>>2]|0)|0)>>>0<8)c[(c[f>>2]|0)+16>>2]=c[(c[f>>2]|0)+12>>2];c[j>>2]=0;}c[c[f>>2]>>2]=(c[i>>2]|0)+(c[h>>2]|0);if(!(((c[i>>2]|0)>>>0<((c[(c[f>>2]|0)+8>>2]|0)+(c[(c[f>>2]|0)+12>>2]|0)|0)>>>0?((c[i>>2]|0)+(c[h>>2]|0)|0)>>>0>((c[(c[f>>2]|0)+8>>2]|0)+(c[(c[f>>2]|0)+16>>2]|0)|0)>>>0:0)|0)){o=c[j>>2]|0;l=e;return o|0;}c[m>>2]=(c[i>>2]|0)+(c[h>>2]|0)-(c[(c[f>>2]|0)+8>>2]|0);if((c[m>>2]|0)>(c[(c[f>>2]|0)+12>>2]|0))p=c[(c[f>>2]|0)+12>>2]|0;else p=c[m>>2]|0;c[n>>2]=p;c[(c[f>>2]|0)+16>>2]=c[n>>2];o=c[j>>2]|0;l=e;return o|0;}function Nj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;e=l;l=l+64|0;f=e+48|0;g=e+44|0;h=e+40|0;i=e+36|0;j=e+32|0;k=e+28|0;m=e+24|0;n=e+20|0;o=e+16|0;p=e+8|0;q=e+4|0;r=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[(c[f>>2]|0)+36>>2];c[j>>2]=c[(c[g>>2]|0)+8>>2];c[k>>2]=c[(c[g>>2]|0)+16>>2];c[m>>2]=c[(c[f>>2]|0)+4>>2];c[n>>2]=(c[m>>2]|0)+(c[(c[f>>2]|0)+24>>2]|0);c[o>>2]=(c[h>>2]|0)+-8;c[e+12>>2]=3;while(1){if(((c[n>>2]|0)+3+-1|0)>>>0>(c[o>>2]|0)>>>0)break;c[p>>2]=(c[n>>2]|0)-(c[m>>2]|0);c[q>>2]=0;while(1){s=c[n>>2]|0;if((c[q>>2]|0)>>>0>=3)break;c[r>>2]=Tk(s+(c[q>>2]|0)|0,c[j>>2]|0,c[k>>2]|0)|0;if(!((c[q>>2]|0)!=0?(c[(c[i>>2]|0)+(c[r>>2]<<2)>>2]|0)!=0:0))c[(c[i>>2]|0)+(c[r>>2]<<2)>>2]=(c[p>>2]|0)+(c[q>>2]|0);c[q>>2]=(c[q>>2]|0)+1;}c[n>>2]=s+3;}l=e;return;}function Oj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;e=l;l=l+64|0;f=e+60|0;g=e+56|0;h=e+52|0;i=e+48|0;j=e+44|0;k=e+40|0;m=e+36|0;n=e+32|0;o=e+28|0;p=e+24|0;q=e+20|0;r=e+12|0;s=e+8|0;t=e+4|0;u=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[(c[f>>2]|0)+36>>2];c[j>>2]=c[(c[g>>2]|0)+8>>2];c[k>>2]=c[(c[g>>2]|0)+16>>2];c[m>>2]=c[(c[f>>2]|0)+44>>2];c[n>>2]=c[(c[g>>2]|0)+4>>2];c[o>>2]=c[(c[f>>2]|0)+4>>2];c[p>>2]=(c[o>>2]|0)+(c[(c[f>>2]|0)+24>>2]|0);c[q>>2]=(c[h>>2]|0)+-8;c[e+16>>2]=3;while(1){if(((c[p>>2]|0)+3+-1|0)>>>0>(c[q>>2]|0)>>>0)break;c[r>>2]=(c[p>>2]|0)-(c[o>>2]|0);c[s>>2]=0;while(1){v=c[p>>2]|0;if((c[s>>2]|0)>>>0>=3)break;c[t>>2]=Dk(v+(c[s>>2]|0)|0,c[n>>2]|0,c[k>>2]|0)|0;c[u>>2]=Dk((c[p>>2]|0)+(c[s>>2]|0)|0,c[j>>2]|0,8)|0;if(!(c[s>>2]|0))c[(c[m>>2]|0)+(c[t>>2]<<2)>>2]=(c[r>>2]|0)+(c[s>>2]|0);if(!((c[s>>2]|0)!=0?(c[(c[i>>2]|0)+(c[u>>2]<<2)>>2]|0)!=0:0))c[(c[i>>2]|0)+(c[u>>2]<<2)>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+1;}c[p>>2]=v+3;}l=e;return;}function Pj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=mk(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0,c[(c[g>>2]|0)+16>>2]|0)|0;l=e;return d|0;}function Qj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;f=l;l=l+64|0;g=f+48|0;h=f+44|0;i=f+40|0;j=f+36|0;k=f+32|0;m=f+28|0;n=f+24|0;o=f+20|0;p=f+16|0;q=f+12|0;r=f+8|0;s=f+4|0;t=f;c[q>>2]=a;c[r>>2]=b;c[s>>2]=d;c[t>>2]=e;e=c[r>>2]|0;d=c[s>>2]|0;s=c[t>>2]|0;t=c[(c[r>>2]|0)+16>>2]|0;c[g>>2]=c[q>>2];c[h>>2]=e;c[i>>2]=d;c[j>>2]=s;c[k>>2]=t;c[m>>2]=0;c[n>>2]=c[(c[g>>2]|0)+4>>2];c[o>>2]=(c[i>>2]|0)-(c[n>>2]|0);c[p>>2]=c[(c[g>>2]|0)+24>>2];while(1){if((c[p>>2]|0)>>>0>=(c[o>>2]|0)>>>0)break;i=Rj(c[g>>2]|0,c[h>>2]|0,(c[n>>2]|0)+(c[p>>2]|0)|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[p>>2]=(c[p>>2]|0)+i;}c[(c[g>>2]|0)+24>>2]=c[o>>2];l=f;return;}function Rj(a,b,e,f,g,h){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0;i=l;l=l+144|0;j=i+128|0;k=i+124|0;m=i+120|0;n=i+116|0;o=i+112|0;p=i+108|0;q=i+104|0;r=i+100|0;s=i+96|0;t=i+92|0;u=i+88|0;v=i+84|0;w=i+80|0;x=i+76|0;y=i+72|0;z=i+68|0;A=i+64|0;B=i+60|0;C=i+56|0;D=i+52|0;E=i+48|0;F=i+44|0;G=i+40|0;H=i+36|0;I=i+32|0;J=i+28|0;K=i+24|0;L=i+20|0;M=i+16|0;N=i+12|0;O=i+8|0;P=i+4|0;Q=i;c[k>>2]=a;c[m>>2]=b;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[r>>2]=c[(c[k>>2]|0)+36>>2];c[s>>2]=c[(c[m>>2]|0)+8>>2];c[t>>2]=Sj(c[n>>2]|0,c[s>>2]|0,c[p>>2]|0)|0;c[u>>2]=c[(c[k>>2]|0)+44>>2];c[v>>2]=(c[(c[m>>2]|0)+4>>2]|0)-1;c[w>>2]=(1<<c[v>>2])-1;c[x>>2]=c[(c[r>>2]|0)+(c[t>>2]<<2)>>2];c[y>>2]=0;c[z>>2]=0;c[A>>2]=c[(c[k>>2]|0)+4>>2];c[B>>2]=c[(c[k>>2]|0)+8>>2];c[C>>2]=c[(c[k>>2]|0)+12>>2];c[D>>2]=(c[B>>2]|0)+(c[C>>2]|0);c[E>>2]=(c[A>>2]|0)+(c[C>>2]|0);c[G>>2]=(c[n>>2]|0)-(c[A>>2]|0);if((c[w>>2]|0)>>>0>=(c[G>>2]|0)>>>0)R=0;else R=(c[G>>2]|0)-(c[w>>2]|0)|0;c[H>>2]=R;c[I>>2]=(c[u>>2]|0)+((c[G>>2]&c[w>>2])<<1<<2);c[J>>2]=(c[I>>2]|0)+4;c[L>>2]=c[(c[k>>2]|0)+16>>2];c[M>>2]=(c[G>>2]|0)+8+1;c[N>>2]=8;c[O>>2]=1<<c[(c[m>>2]|0)+12>>2];c[(c[r>>2]|0)+(c[t>>2]<<2)>>2]=c[G>>2];while(1){t=c[O>>2]|0;c[O>>2]=t+-1;if(!t)break;if((c[x>>2]|0)>>>0<=(c[L>>2]|0)>>>0)break;c[P>>2]=(c[u>>2]|0)+((c[x>>2]&c[w>>2])<<1<<2);c[Q>>2]=(c[y>>2]|0)>>>0<(c[z>>2]|0)>>>0?c[y>>2]|0:c[z>>2]|0;if(c[q>>2]|0?((c[x>>2]|0)+(c[Q>>2]|0)|0)>>>0<(c[C>>2]|0)>>>0:0){c[F>>2]=(c[B>>2]|0)+(c[x>>2]|0);t=Uj((c[n>>2]|0)+(c[Q>>2]|0)|0,(c[F>>2]|0)+(c[Q>>2]|0)|0,c[o>>2]|0,c[D>>2]|0,c[E>>2]|0)|0;c[Q>>2]=(c[Q>>2]|0)+t;if(((c[x>>2]|0)+(c[Q>>2]|0)|0)>>>0>=(c[C>>2]|0)>>>0)c[F>>2]=(c[A>>2]|0)+(c[x>>2]|0);}else{c[F>>2]=(c[A>>2]|0)+(c[x>>2]|0);t=Tj((c[n>>2]|0)+(c[Q>>2]|0)|0,(c[F>>2]|0)+(c[Q>>2]|0)|0,c[o>>2]|0)|0;c[Q>>2]=(c[Q>>2]|0)+t;}if((c[Q>>2]|0)>>>0>(c[N>>2]|0)>>>0?(c[N>>2]=c[Q>>2],(c[Q>>2]|0)>>>0>((c[M>>2]|0)-(c[x>>2]|0)|0)>>>0):0)c[M>>2]=(c[x>>2]|0)+(c[Q>>2]|0);if(((c[n>>2]|0)+(c[Q>>2]|0)|0)==(c[o>>2]|0))break;t=c[x>>2]|0;if((d[(c[F>>2]|0)+(c[Q>>2]|0)>>0]|0|0)<(d[(c[n>>2]|0)+(c[Q>>2]|0)>>0]|0|0)){c[c[I>>2]>>2]=t;c[y>>2]=c[Q>>2];if((c[x>>2]|0)>>>0<=(c[H>>2]|0)>>>0){S=17;break;}c[I>>2]=(c[P>>2]|0)+4;c[x>>2]=c[(c[P>>2]|0)+4>>2];}else{c[c[J>>2]>>2]=t;c[z>>2]=c[Q>>2];if((c[x>>2]|0)>>>0<=(c[H>>2]|0)>>>0){S=20;break;}c[J>>2]=c[P>>2];c[x>>2]=c[c[P>>2]>>2];}}if((S|0)==17)c[I>>2]=K;else if((S|0)==20)c[J>>2]=K;c[c[J>>2]>>2]=0;c[c[I>>2]>>2]=0;if((c[N>>2]|0)>>>0>384){c[j>>2]=192<((c[N>>2]|0)-384|0)>>>0?192:(c[N>>2]|0)-384|0;T=c[j>>2]|0;l=i;return T|0;}else{c[j>>2]=(c[M>>2]|0)-((c[G>>2]|0)+8);T=c[j>>2]|0;l=i;return T|0;}return 0;}function Sj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;switch(c[i>>2]|0){case 8:{c[f>>2]=dk(c[g>>2]|0,c[h>>2]|0)|0;break;}case 5:{c[f>>2]=ak(c[g>>2]|0,c[h>>2]|0)|0;break;}case 6:{c[f>>2]=bk(c[g>>2]|0,c[h>>2]|0)|0;break;}case 7:{c[f>>2]=ck(c[g>>2]|0,c[h>>2]|0)|0;break;}default:c[f>>2]=$j(c[g>>2]|0,c[h>>2]|0)|0;}l=e;return c[f>>2]|0;}function Tj(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;f=l;l=l+32|0;g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f+12|0;m=f+8|0;n=f+4|0;o=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=e;c[k>>2]=c[h>>2];c[m>>2]=(c[j>>2]|0)+-3;a:do{if((c[h>>2]|0)>>>0<(c[m>>2]|0)>>>0){e=Vj(c[i>>2]|0)|0;c[n>>2]=e^(Vj(c[h>>2]|0)|0);if(c[n>>2]|0){c[g>>2]=Wj(c[n>>2]|0)|0;p=c[g>>2]|0;l=f;return p|0;}c[h>>2]=(c[h>>2]|0)+4;c[i>>2]=(c[i>>2]|0)+4;while(1){if((c[h>>2]|0)>>>0>=(c[m>>2]|0)>>>0)break a;e=Vj(c[i>>2]|0)|0;c[o>>2]=e^(Vj(c[h>>2]|0)|0);if(c[o>>2]|0)break;c[h>>2]=(c[h>>2]|0)+4;c[i>>2]=(c[i>>2]|0)+4;}e=Wj(c[o>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+e;c[g>>2]=(c[h>>2]|0)-(c[k>>2]|0);p=c[g>>2]|0;l=f;return p|0;}}while(0);if((Xj()|0?(c[h>>2]|0)>>>0<((c[j>>2]|0)+-3|0)>>>0:0)?(o=Yj(c[i>>2]|0)|0,(o|0)==(Yj(c[h>>2]|0)|0)):0){c[h>>2]=(c[h>>2]|0)+4;c[i>>2]=(c[i>>2]|0)+4;}if((c[h>>2]|0)>>>0<((c[j>>2]|0)+-1|0)>>>0?(o=(Zj(c[i>>2]|0)|0)&65535,(o|0)==((Zj(c[h>>2]|0)|0)&65535|0)):0){c[h>>2]=(c[h>>2]|0)+2;c[i>>2]=(c[i>>2]|0)+2;}if((c[h>>2]|0)>>>0<(c[j>>2]|0)>>>0?(d[c[i>>2]>>0]|0|0)==(d[c[h>>2]>>0]|0|0):0)c[h>>2]=(c[h>>2]|0)+1;c[g>>2]=(c[h>>2]|0)-(c[k>>2]|0);p=c[g>>2]|0;l=f;return p|0;}function Uj(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;g=l;l=l+32|0;h=g+28|0;i=g+24|0;j=g+20|0;k=g+16|0;m=g+12|0;n=g+8|0;o=g+4|0;p=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;if(((c[i>>2]|0)+((c[m>>2]|0)-(c[j>>2]|0))|0)>>>0<(c[k>>2]|0)>>>0)q=(c[i>>2]|0)+((c[m>>2]|0)-(c[j>>2]|0))|0;else q=c[k>>2]|0;c[o>>2]=q;c[p>>2]=Tj(c[i>>2]|0,c[j>>2]|0,c[o>>2]|0)|0;o=c[p>>2]|0;if(((c[j>>2]|0)+(c[p>>2]|0)|0)!=(c[m>>2]|0)){c[h>>2]=o;r=c[h>>2]|0;l=g;return r|0;}else{c[h>>2]=o+(Tj((c[i>>2]|0)+(c[p>>2]|0)|0,c[n>>2]|0,c[k>>2]|0)|0);r=c[h>>2]|0;l=g;return r|0;}return 0;}function Vj(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0;}function Wj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(_j()|0)!=0;f=(Xj()|0)!=0;g=c[e>>2]|0;do{if(a){if(f){e=ob(g|0,0,0)|0;c[d>>2]=e>>3;break;}else{c[d>>2]=(fE(g|0)|0)>>3;break;}}else if(f){e=lE(g|0,0,0)|0;c[d>>2]=e>>3;break;}else{c[d>>2]=(Q(g|0)|0)>>3;break;}}while(0);l=b;return c[d>>2]|0;}function Xj(){return 0;}function Yj(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0;}function Zj(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|0;}function _j(){return d[11936]|0|0;}function $j(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=Yj(c[e>>2]|0)|0;e=lk(b,c[f>>2]|0)|0;l=d;return e|0;}function ak(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=ek(c[e>>2]|0)|0;e=kk(b,y,c[f>>2]|0)|0;l=d;return e|0;}function bk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=ek(c[e>>2]|0)|0;e=jk(b,y,c[f>>2]|0)|0;l=d;return e|0;}function ck(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=ek(c[e>>2]|0)|0;e=ik(b,y,c[f>>2]|0)|0;l=d;return e|0;}function dk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=ek(c[e>>2]|0)|0;e=fk(b,y,c[f>>2]|0)|0;l=d;return e|0;}function ek(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b;e=b+8|0;c[e>>2]=a;a=(_j()|0)!=0;f=gk(c[e>>2]|0)|0;e=y;if(a){a=d;c[a>>2]=f;c[a+4>>2]=e;}else{a=hk(f,e)|0;e=d;c[e>>2]=a;c[e+4>>2]=y;}e=d;y=c[e+4>>2]|0;l=b;return c[e>>2]|0;}function fk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;d=f;f=cE(c[d>>2]|0,c[d+4>>2]|0,-1213897629,-820265764)|0;d=iE(f|0,y|0,64-(c[g>>2]|0)|0)|0;l=e;return d|0;}function gk(a){a=a|0;var b=0,e=0,f=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;e=a;f=a+4|0;y=d[f>>0]|d[f+1>>0]<<8|d[f+2>>0]<<16|d[f+3>>0]<<24;l=b;return d[e>>0]|d[e+1>>0]<<8|d[e+2>>0]<<16|d[e+3>>0]<<24|0;}function hk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d;f=e;c[f>>2]=a;c[f+4>>2]=b;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,56)|0;b=y&-16777216;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,40)|0;f=b|y&16711680;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=f|y&65280;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,8)|0;f=b|y&255;b=e;a=iE(c[b>>2]|0,c[b+4>>2]|0,8)|0;b=e;g=iE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=e;h=iE(c[b>>2]|0,c[b+4>>2]|0,40)|0;b=e;e=iE(c[b>>2]|0,c[b+4>>2]|0,56)|0;y=f;l=d;return a&-16777216|g&16711680|h&65280|e&255|0;}function ik(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;d=f;f=jE(c[d>>2]|0,c[d+4>>2]|0,8)|0;d=cE(f|0,y|0,-591420061,13573052)|0;f=iE(d|0,y|0,64-(c[g>>2]|0)|0)|0;l=e;return f|0;}function jk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;d=f;f=jE(c[d>>2]|0,c[d+4>>2]|0,16)|0;d=cE(f|0,y|0,-1126383717,53019)|0;f=iE(d|0,y|0,64-(c[g>>2]|0)|0)|0;l=e;return f|0;}function kk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;d=f;f=jE(c[d>>2]|0,c[d+4>>2]|0,24)|0;d=cE(f|0,y|0,465362107,207)|0;f=iE(d|0,y|0,64-(c[g>>2]|0)|0)|0;l=e;return f|0;}function lk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=N(c[e>>2]|0,-1640531535)|0;l=d;return b>>>(32-(c[f>>2]|0)|0)|0;}function mk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;f=l;l=l+48|0;g=f+44|0;h=f+40|0;i=f+36|0;j=f+32|0;k=f+28|0;m=f+24|0;n=f+20|0;o=f+16|0;p=f+12|0;q=f+8|0;r=f+4|0;s=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=c[(c[g>>2]|0)+36>>2];c[m>>2]=c[(c[h>>2]|0)+8>>2];c[n>>2]=c[(c[g>>2]|0)+44>>2];c[o>>2]=(1<<c[(c[h>>2]|0)+4>>2])-1;c[p>>2]=c[(c[g>>2]|0)+4>>2];c[q>>2]=(c[i>>2]|0)-(c[p>>2]|0);c[r>>2]=c[(c[g>>2]|0)+24>>2];while(1){if((c[r>>2]|0)>>>0>=(c[q>>2]|0)>>>0)break;c[s>>2]=nk((c[p>>2]|0)+(c[r>>2]|0)|0,c[m>>2]|0,c[j>>2]|0)|0;c[(c[n>>2]|0)+((c[r>>2]&c[o>>2])<<2)>>2]=c[(c[k>>2]|0)+(c[s>>2]<<2)>>2];c[(c[k>>2]|0)+(c[s>>2]<<2)>>2]=c[r>>2];c[r>>2]=(c[r>>2]|0)+1;}c[(c[g>>2]|0)+24>>2]=c[q>>2];q=c[k>>2]|0;k=c[q+((nk(c[i>>2]|0,c[m>>2]|0,c[j>>2]|0)|0)<<2)>>2]|0;l=f;return k|0;}function nk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;switch(c[i>>2]|0){case 8:{c[f>>2]=sk(c[g>>2]|0,c[h>>2]|0)|0;break;}case 5:{c[f>>2]=pk(c[g>>2]|0,c[h>>2]|0)|0;break;}case 6:{c[f>>2]=qk(c[g>>2]|0,c[h>>2]|0)|0;break;}case 7:{c[f>>2]=rk(c[g>>2]|0,c[h>>2]|0)|0;break;}default:c[f>>2]=ok(c[g>>2]|0,c[h>>2]|0)|0;}l=e;return c[f>>2]|0;}function ok(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=Bk(c[e>>2]|0)|0;e=Ck(b,c[f>>2]|0)|0;l=d;return e|0;}function pk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=tk(c[e>>2]|0)|0;e=Ak(b,y,c[f>>2]|0)|0;l=d;return e|0;}function qk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=tk(c[e>>2]|0)|0;e=zk(b,y,c[f>>2]|0)|0;l=d;return e|0;}function rk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=tk(c[e>>2]|0)|0;e=yk(b,y,c[f>>2]|0)|0;l=d;return e|0;}function sk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=tk(c[e>>2]|0)|0;e=uk(b,y,c[f>>2]|0)|0;l=d;return e|0;}function tk(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b;e=b+8|0;c[e>>2]=a;a=(vk()|0)!=0;f=wk(c[e>>2]|0)|0;e=y;if(a){a=d;c[a>>2]=f;c[a+4>>2]=e;}else{a=xk(f,e)|0;e=d;c[e>>2]=a;c[e+4>>2]=y;}e=d;y=c[e+4>>2]|0;l=b;return c[e>>2]|0;}function uk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;d=f;f=cE(c[d>>2]|0,c[d+4>>2]|0,-1213897629,-820265764)|0;d=iE(f|0,y|0,64-(c[g>>2]|0)|0)|0;l=e;return d|0;}function vk(){return d[11936]|0|0;}function wk(a){a=a|0;var b=0,e=0,f=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;e=a;f=a+4|0;y=d[f>>0]|d[f+1>>0]<<8|d[f+2>>0]<<16|d[f+3>>0]<<24;l=b;return d[e>>0]|d[e+1>>0]<<8|d[e+2>>0]<<16|d[e+3>>0]<<24|0;}function xk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d;f=e;c[f>>2]=a;c[f+4>>2]=b;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,56)|0;b=y&-16777216;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,40)|0;f=b|y&16711680;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=f|y&65280;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,8)|0;f=b|y&255;b=e;a=iE(c[b>>2]|0,c[b+4>>2]|0,8)|0;b=e;g=iE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=e;h=iE(c[b>>2]|0,c[b+4>>2]|0,40)|0;b=e;e=iE(c[b>>2]|0,c[b+4>>2]|0,56)|0;y=f;l=d;return a&-16777216|g&16711680|h&65280|e&255|0;}function yk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;d=f;f=jE(c[d>>2]|0,c[d+4>>2]|0,8)|0;d=cE(f|0,y|0,-591420061,13573052)|0;f=iE(d|0,y|0,64-(c[g>>2]|0)|0)|0;l=e;return f|0;}function zk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;d=f;f=jE(c[d>>2]|0,c[d+4>>2]|0,16)|0;d=cE(f|0,y|0,-1126383717,53019)|0;f=iE(d|0,y|0,64-(c[g>>2]|0)|0)|0;l=e;return f|0;}function Ak(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;d=f;f=jE(c[d>>2]|0,c[d+4>>2]|0,24)|0;d=cE(f|0,y|0,465362107,207)|0;f=iE(d|0,y|0,64-(c[g>>2]|0)|0)|0;l=e;return f|0;}function Bk(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0;}function Ck(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=N(c[e>>2]|0,-1640531535)|0;l=d;return b>>>(32-(c[f>>2]|0)|0)|0;}function Dk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;switch(c[i>>2]|0){case 8:{c[f>>2]=Ik(c[g>>2]|0,c[h>>2]|0)|0;break;}case 5:{c[f>>2]=Fk(c[g>>2]|0,c[h>>2]|0)|0;break;}case 6:{c[f>>2]=Gk(c[g>>2]|0,c[h>>2]|0)|0;break;}case 7:{c[f>>2]=Hk(c[g>>2]|0,c[h>>2]|0)|0;break;}default:c[f>>2]=Ek(c[g>>2]|0,c[h>>2]|0)|0;}l=e;return c[f>>2]|0;}function Ek(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=Rk(c[e>>2]|0)|0;e=Sk(b,c[f>>2]|0)|0;l=d;return e|0;}function Fk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=Jk(c[e>>2]|0)|0;e=Qk(b,y,c[f>>2]|0)|0;l=d;return e|0;}function Gk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=Jk(c[e>>2]|0)|0;e=Pk(b,y,c[f>>2]|0)|0;l=d;return e|0;}function Hk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=Jk(c[e>>2]|0)|0;e=Ok(b,y,c[f>>2]|0)|0;l=d;return e|0;}function Ik(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=Jk(c[e>>2]|0)|0;e=Kk(b,y,c[f>>2]|0)|0;l=d;return e|0;}function Jk(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b;e=b+8|0;c[e>>2]=a;a=(Lk()|0)!=0;f=Mk(c[e>>2]|0)|0;e=y;if(a){a=d;c[a>>2]=f;c[a+4>>2]=e;}else{a=Nk(f,e)|0;e=d;c[e>>2]=a;c[e+4>>2]=y;}e=d;y=c[e+4>>2]|0;l=b;return c[e>>2]|0;}function Kk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;d=f;f=cE(c[d>>2]|0,c[d+4>>2]|0,-1213897629,-820265764)|0;d=iE(f|0,y|0,64-(c[g>>2]|0)|0)|0;l=e;return d|0;}function Lk(){return d[11936]|0|0;}function Mk(a){a=a|0;var b=0,e=0,f=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;e=a;f=a+4|0;y=d[f>>0]|d[f+1>>0]<<8|d[f+2>>0]<<16|d[f+3>>0]<<24;l=b;return d[e>>0]|d[e+1>>0]<<8|d[e+2>>0]<<16|d[e+3>>0]<<24|0;}function Nk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d;f=e;c[f>>2]=a;c[f+4>>2]=b;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,56)|0;b=y&-16777216;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,40)|0;f=b|y&16711680;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=f|y&65280;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,8)|0;f=b|y&255;b=e;a=iE(c[b>>2]|0,c[b+4>>2]|0,8)|0;b=e;g=iE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=e;h=iE(c[b>>2]|0,c[b+4>>2]|0,40)|0;b=e;e=iE(c[b>>2]|0,c[b+4>>2]|0,56)|0;y=f;l=d;return a&-16777216|g&16711680|h&65280|e&255|0;}function Ok(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;d=f;f=jE(c[d>>2]|0,c[d+4>>2]|0,8)|0;d=cE(f|0,y|0,-591420061,13573052)|0;f=iE(d|0,y|0,64-(c[g>>2]|0)|0)|0;l=e;return f|0;}function Pk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;d=f;f=jE(c[d>>2]|0,c[d+4>>2]|0,16)|0;d=cE(f|0,y|0,-1126383717,53019)|0;f=iE(d|0,y|0,64-(c[g>>2]|0)|0)|0;l=e;return f|0;}function Qk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;d=f;f=jE(c[d>>2]|0,c[d+4>>2]|0,24)|0;d=cE(f|0,y|0,465362107,207)|0;f=iE(d|0,y|0,64-(c[g>>2]|0)|0)|0;l=e;return f|0;}function Rk(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0;}function Sk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=N(c[e>>2]|0,-1640531535)|0;l=d;return b>>>(32-(c[f>>2]|0)|0)|0;}function Tk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;switch(c[i>>2]|0){case 8:{c[f>>2]=Yk(c[g>>2]|0,c[h>>2]|0)|0;break;}case 5:{c[f>>2]=Vk(c[g>>2]|0,c[h>>2]|0)|0;break;}case 6:{c[f>>2]=Wk(c[g>>2]|0,c[h>>2]|0)|0;break;}case 7:{c[f>>2]=Xk(c[g>>2]|0,c[h>>2]|0)|0;break;}default:c[f>>2]=Uk(c[g>>2]|0,c[h>>2]|0)|0;}l=e;return c[f>>2]|0;}function Uk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=fl(c[e>>2]|0)|0;e=gl(b,c[f>>2]|0)|0;l=d;return e|0;}function Vk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=Zk(c[e>>2]|0)|0;e=el(b,y,c[f>>2]|0)|0;l=d;return e|0;}function Wk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=Zk(c[e>>2]|0)|0;e=dl(b,y,c[f>>2]|0)|0;l=d;return e|0;}function Xk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=Zk(c[e>>2]|0)|0;e=cl(b,y,c[f>>2]|0)|0;l=d;return e|0;}function Yk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=Zk(c[e>>2]|0)|0;e=_k(b,y,c[f>>2]|0)|0;l=d;return e|0;}function Zk(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b;e=b+8|0;c[e>>2]=a;a=($k()|0)!=0;f=al(c[e>>2]|0)|0;e=y;if(a){a=d;c[a>>2]=f;c[a+4>>2]=e;}else{a=bl(f,e)|0;e=d;c[e>>2]=a;c[e+4>>2]=y;}e=d;y=c[e+4>>2]|0;l=b;return c[e>>2]|0;}function _k(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;d=f;f=cE(c[d>>2]|0,c[d+4>>2]|0,-1213897629,-820265764)|0;d=iE(f|0,y|0,64-(c[g>>2]|0)|0)|0;l=e;return d|0;}function $k(){return d[11936]|0|0;}function al(a){a=a|0;var b=0,e=0,f=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;e=a;f=a+4|0;y=d[f>>0]|d[f+1>>0]<<8|d[f+2>>0]<<16|d[f+3>>0]<<24;l=b;return d[e>>0]|d[e+1>>0]<<8|d[e+2>>0]<<16|d[e+3>>0]<<24|0;}function bl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d;f=e;c[f>>2]=a;c[f+4>>2]=b;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,56)|0;b=y&-16777216;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,40)|0;f=b|y&16711680;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=f|y&65280;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,8)|0;f=b|y&255;b=e;a=iE(c[b>>2]|0,c[b+4>>2]|0,8)|0;b=e;g=iE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=e;h=iE(c[b>>2]|0,c[b+4>>2]|0,40)|0;b=e;e=iE(c[b>>2]|0,c[b+4>>2]|0,56)|0;y=f;l=d;return a&-16777216|g&16711680|h&65280|e&255|0;}function cl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;d=f;f=jE(c[d>>2]|0,c[d+4>>2]|0,8)|0;d=cE(f|0,y|0,-591420061,13573052)|0;f=iE(d|0,y|0,64-(c[g>>2]|0)|0)|0;l=e;return f|0;}function dl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;d=f;f=jE(c[d>>2]|0,c[d+4>>2]|0,16)|0;d=cE(f|0,y|0,-1126383717,53019)|0;f=iE(d|0,y|0,64-(c[g>>2]|0)|0)|0;l=e;return f|0;}function el(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;d=f;f=jE(c[d>>2]|0,c[d+4>>2]|0,24)|0;d=cE(f|0,y|0,465362107,207)|0;f=iE(d|0,y|0,64-(c[g>>2]|0)|0)|0;l=e;return f|0;}function fl(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0;}function gl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=N(c[e>>2]|0,-1640531535)|0;l=d;return b>>>(32-(c[f>>2]|0)|0)|0;}function hl(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;il(c[d>>2]|0);c[(c[d>>2]|0)+24>>2]=(c[(c[d>>2]|0)+12>>2]|0)+1;c[(c[d>>2]|0)+20>>2]=0;c[(c[d>>2]|0)+48+28>>2]=0;l=b;return;}function il(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b+8|0;e=b+4|0;f=b;c[d>>2]=a;c[e>>2]=(c[c[d>>2]>>2]|0)-(c[(c[d>>2]|0)+4>>2]|0);c[f>>2]=c[e>>2];c[(c[d>>2]|0)+16>>2]=c[f>>2];c[(c[d>>2]|0)+12>>2]=c[f>>2];l=b;return;}function jl(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;c[(c[d>>2]|0)+628>>2]=0;a=(c[d>>2]|0)+240|0;c[a>>2]=0;c[a+4>>2]=0;l=b;return;}function kl(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+12|0;e=b+8|0;f=b+4|0;g=b;c[d>>2]=1<<c[a+4>>2];c[e>>2]=(c[a+8>>2]|0)>>>0<(c[a+4>>2]|0)>>>0?c[a+8>>2]|0:c[a+4>>2]|0;c[f>>2]=1<<(c[a+4>>2]|0)-(c[e>>2]|0);c[g>>2]=(c[f>>2]|0)+(c[d>>2]<<3);l=b;return(c[a>>2]|0?c[g>>2]|0:0)|0;}function ll(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;c[e>>2]=b;if(!(c[a>>2]|0)){f=0;l=d;return f|0;}f=((c[e>>2]|0)>>>0)/((c[a+12>>2]|0)>>>0)|0;l=d;return f|0;}function ml(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0;h=l;l=l+304|0;i=h+200|0;j=h+80|0;k=h+196|0;m=h+192|0;n=h;o=h+188|0;p=h+184|0;q=h+76|0;r=h+72|0;s=h+68|0;t=h+64|0;u=h+60|0;v=h+56|0;w=h+52|0;x=h+48|0;z=h+44|0;A=h+40|0;B=h+36|0;C=h+32|0;D=h+28|0;E=h+24|0;F=h+20|0;G=h+16|0;H=h+12|0;I=h+8|0;c[m>>2]=a;a=n;c[a>>2]=d;c[a+4>>2]=e;c[o>>2]=f;c[p>>2]=g;if(!(c[o>>2]|0)){g=c[(c[m>>2]|0)+596>>2]|0;f=c[(c[m>>2]|0)+232>>2]|0;e=c[p>>2]|0;a=n;d=c[a>>2]|0;J=c[a+4>>2]|0;K=j;L=(c[m>>2]|0)+116|0;M=K+104|0;do{c[K>>2]=c[L>>2];K=K+4|0;L=L+4|0;}while((K|0)<(M|0));K=i;L=b;M=K+104|0;do{c[K>>2]=c[L>>2];K=K+4|0;L=L+4|0;}while((K|0)<(M|0));if(nl(j,i,g,f,e,d,J)|0){J=c[m>>2]|0;d=n;e=c[d>>2]|0;f=c[d+4>>2]|0;K=i;L=b;M=K+104|0;do{c[K>>2]=c[L>>2];K=K+4|0;L=L+4|0;}while((K|0)<(M|0));c[k>>2]=ol(J,i,e,f)|0;N=c[k>>2]|0;l=h;return N|0;}}if(c[b+68>>2]|0){c[b+68+20>>2]=c[b+4>>2];pl(b+68|0,b+4|0);f=ql(c[b+68+12>>2]|0)|0;e=(c[m>>2]|0)+408+32|0;c[e>>2]=f;c[e+4>>2]=y;}e=jE(1,0,c[b+4>>2]|0)|0;f=y;J=n;d=c[J+4>>2]|0;if(f>>>0<d>>>0|((f|0)==(d|0)?e>>>0<(c[J>>2]|0)>>>0:0)){J=jE(1,0,c[b+4>>2]|0)|0;O=J;P=y;}else{J=n;O=c[J>>2]|0;P=c[J+4>>2]|0;}if(1>O>>>0)Q=1;else{O=jE(1,0,c[b+4>>2]|0)|0;J=y;P=n;e=c[P+4>>2]|0;if(J>>>0<e>>>0|((J|0)==(e|0)?O>>>0<(c[P>>2]|0)>>>0:0)){P=jE(1,0,c[b+4>>2]|0)|0;R=P;S=y;}else{P=n;R=c[P>>2]|0;S=c[P+4>>2]|0;}Q=R;}c[q>>2]=Q;c[r>>2]=131072<(c[q>>2]|0)>>>0?131072:c[q>>2]|0;c[s>>2]=(c[b+4+16>>2]|0)==3?3:4;c[t>>2]=((c[r>>2]|0)>>>0)/((c[s>>2]|0)>>>0)|0;c[u>>2]=(c[r>>2]|0)+((c[t>>2]|0)*11|0);if((c[p>>2]|0)==1)T=(lj(c[r>>2]|0)|0)+1|0;else T=0;c[v>>2]=T;if((c[p>>2]|0)==1)U=(c[q>>2]|0)+(c[r>>2]|0)|0;else U=0;c[w>>2]=U;c[x>>2]=Aj(b+4|0,1)|0;U=b+68|0;q=c[r>>2]|0;c[i>>2]=c[U>>2];c[i+4>>2]=c[U+4>>2];c[i+8>>2]=c[U+8>>2];c[i+12>>2]=c[U+12>>2];c[i+16>>2]=c[U+16>>2];c[i+20>>2]=c[U+20>>2];c[z>>2]=ll(i,q)|0;c[B>>2]=6144;c[C>>2]=9184;c[D>>2]=(c[w>>2]|0)+(c[v>>2]|0);C=b+68|0;c[i>>2]=c[C>>2];c[i+4>>2]=c[C+4>>2];c[i+8>>2]=c[C+8>>2];c[i+12>>2]=c[C+12>>2];c[i+16>>2]=c[C+16>>2];c[i+20>>2]=c[C+20>>2];c[E>>2]=kl(i)|0;c[F>>2]=(c[z>>2]|0)*12;c[G>>2]=15328+(c[E>>2]|0)+(c[F>>2]|0)+(c[x>>2]|0)+(c[u>>2]|0)+(c[D>>2]|0);do{if((c[(c[m>>2]|0)+228>>2]|0)>>>0<(c[G>>2]|0)>>>0){if(c[(c[m>>2]|0)+364>>2]|0){c[k>>2]=-64;N=c[k>>2]|0;l=h;return N|0;}c[(c[m>>2]|0)+228>>2]=0;D=c[(c[m>>2]|0)+224>>2]|0;u=(c[m>>2]|0)+352|0;c[i>>2]=c[u>>2];c[i+4>>2]=c[u+4>>2];c[i+8>>2]=c[u+8>>2];Th(D,i);D=c[G>>2]|0;u=(c[m>>2]|0)+352|0;c[i>>2]=c[u>>2];c[i+4>>2]=c[u+4>>2];c[i+8>>2]=c[u+8>>2];u=Rh(D,i)|0;c[(c[m>>2]|0)+224>>2]=u;if(c[(c[m>>2]|0)+224>>2]|0){c[(c[m>>2]|0)+228>>2]=c[G>>2];c[A>>2]=c[(c[m>>2]|0)+224>>2];c[(c[m>>2]|0)+472>>2]=c[(c[m>>2]|0)+224>>2];c[(c[m>>2]|0)+472+4>>2]=(c[(c[m>>2]|0)+472>>2]|0)+4592;c[A>>2]=(c[(c[m>>2]|0)+472+4>>2]|0)+4592;c[(c[m>>2]|0)+588>>2]=c[A>>2];break;}c[k>>2]=-64;N=c[k>>2]|0;l=h;return N|0;}}while(0);K=(c[m>>2]|0)+116|0;L=b;M=K+104|0;do{c[K>>2]=c[L>>2];K=K+4|0;L=L+4|0;}while((K|0)<(M|0));L=n;K=dE(c[L>>2]|0,c[L+4>>2]|0,1,0)|0;L=(c[m>>2]|0)+240|0;c[L>>2]=K;c[L+4>>2]=y;L=(c[m>>2]|0)+248|0;c[L>>2]=0;c[L+4>>2]=0;L=(c[m>>2]|0)+256|0;c[L>>2]=0;c[L+4>>2]=0;L=n;if((c[L>>2]|0)==-1?(c[L+4>>2]|0)==-1:0)c[(c[m>>2]|0)+116+32>>2]=0;c[(c[m>>2]|0)+232>>2]=c[r>>2];Lh((c[m>>2]|0)+264|0,0,0)|0;c[c[m>>2]>>2]=1;c[(c[m>>2]|0)+220>>2]=0;Cj(c[(c[m>>2]|0)+472>>2]|0);c[A>>2]=(c[(c[m>>2]|0)+588>>2]|0)+6144;if(c[b+68>>2]|0){c[H>>2]=1<<c[b+68+4>>2];oE(c[A>>2]|0,0,c[H>>2]<<3|0)|0;c[(c[m>>2]|0)+408+20>>2]=c[A>>2];c[A>>2]=(c[(c[m>>2]|0)+408+20>>2]|0)+(c[H>>2]<<3);c[(c[m>>2]|0)+448>>2]=c[A>>2];c[A>>2]=(c[(c[m>>2]|0)+448>>2]|0)+((c[z>>2]|0)*12|0);c[(c[m>>2]|0)+452>>2]=c[z>>2];z=(c[m>>2]|0)+408|0;c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;c[z+12>>2]=0;c[z+16>>2]=0;}c[A>>2]=Dj((c[m>>2]|0)+472+8|0,c[A>>2]|0,b+4|0,c[o>>2]|0,1)|0;c[(c[m>>2]|0)+368>>2]=c[A>>2];c[A>>2]=(c[(c[m>>2]|0)+368>>2]|0)+(c[t>>2]<<3);c[(c[m>>2]|0)+368+16>>2]=c[A>>2];c[(c[m>>2]|0)+368+20>>2]=(c[(c[m>>2]|0)+368+16>>2]|0)+(c[t>>2]|0);c[(c[m>>2]|0)+368+24>>2]=(c[(c[m>>2]|0)+368+20>>2]|0)+(c[t>>2]|0);c[(c[m>>2]|0)+368+8>>2]=(c[(c[m>>2]|0)+368+24>>2]|0)+(c[t>>2]|0);c[A>>2]=(c[(c[m>>2]|0)+368+8>>2]|0)+(c[r>>2]|0);if(c[b+68>>2]|0){c[I>>2]=1<<(c[b+68+4>>2]|0)-(c[b+68+8>>2]|0);oE(c[A>>2]|0,0,c[I>>2]|0)|0;c[(c[m>>2]|0)+408+24>>2]=c[A>>2];c[A>>2]=(c[(c[m>>2]|0)+408+24>>2]|0)+(c[I>>2]|0);il((c[m>>2]|0)+408|0);}rl(c[m>>2]|0,0,0)|0;c[(c[m>>2]|0)+596>>2]=c[w>>2];c[(c[m>>2]|0)+592>>2]=c[A>>2];c[(c[m>>2]|0)+616>>2]=c[v>>2];c[(c[m>>2]|0)+612>>2]=(c[(c[m>>2]|0)+592>>2]|0)+(c[w>>2]|0);c[k>>2]=0;N=c[k>>2]|0;l=h;return N|0;}function nl(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;i=l;l=l+80|0;j=i+48|0;k=i+16|0;m=i+44|0;n=i+12|0;o=i+8|0;p=i;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;f=p;c[f>>2]=g;c[f+4>>2]=h;h=a+4|0;f=b+4|0;c[k>>2]=c[h>>2];c[k+4>>2]=c[h+4>>2];c[k+8>>2]=c[h+8>>2];c[k+12>>2]=c[h+12>>2];c[k+16>>2]=c[h+16>>2];c[k+20>>2]=c[h+20>>2];c[k+24>>2]=c[h+24>>2];c[j>>2]=c[f>>2];c[j+4>>2]=c[f+4>>2];c[j+8>>2]=c[f+8>>2];c[j+12>>2]=c[f+12>>2];c[j+16>>2]=c[f+16>>2];c[j+20>>2]=c[f+20>>2];c[j+24>>2]=c[f+24>>2];if(!(tl(k,j)|0)){q=0;r=q&1;l=i;return r|0;}f=a+68|0;a=b+68|0;c[k>>2]=c[f>>2];c[k+4>>2]=c[f+4>>2];c[k+8>>2]=c[f+8>>2];c[k+12>>2]=c[f+12>>2];c[k+16>>2]=c[f+16>>2];c[k+20>>2]=c[f+20>>2];c[j>>2]=c[a>>2];c[j+4>>2]=c[a+4>>2];c[j+8>>2]=c[a+8>>2];c[j+12>>2]=c[a+12>>2];c[j+16>>2]=c[a+16>>2];c[j+20>>2]=c[a+20>>2];if(!(ul(k,j)|0)){q=0;r=q&1;l=i;return r|0;}k=c[m>>2]|0;m=c[n>>2]|0;n=c[o>>2]|0;o=b+4|0;b=p;p=c[b>>2]|0;a=c[b+4>>2]|0;c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];c[j+12>>2]=c[o+12>>2];c[j+16>>2]=c[o+16>>2];c[j+20>>2]=c[o+20>>2];c[j+24>>2]=c[o+24>>2];q=(vl(k,m,n,j,p,a)|0)!=0;r=q&1;l=i;return r|0;}function ol(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0,A=0;f=l;l=l+32|0;g=f+16|0;h=f;i=f+12|0;j=f+8|0;c[g>>2]=a;a=h;c[a>>2]=d;c[a+4>>2]=e;e=jE(1,0,c[b+4>>2]|0)|0;a=y;d=h;k=c[d+4>>2]|0;if(a>>>0<k>>>0|((a|0)==(k|0)?e>>>0<(c[d>>2]|0)>>>0:0)){d=jE(1,0,c[b+4>>2]|0)|0;m=y;n=d;}else{d=h;m=c[d+4>>2]|0;n=c[d>>2]|0;}if(1>n>>>0)o=1;else{n=jE(1,0,c[b+4>>2]|0)|0;d=y;m=h;e=c[m+4>>2]|0;if(d>>>0<e>>>0|((d|0)==(e|0)?n>>>0<(c[m>>2]|0)>>>0:0)){m=jE(1,0,c[b+4>>2]|0)|0;p=m;q=y;}else{m=h;p=c[m>>2]|0;q=c[m+4>>2]|0;}o=p;}c[i>>2]=o;c[j>>2]=131072<(c[i>>2]|0)>>>0?131072:c[i>>2]|0;c[(c[g>>2]|0)+232>>2]=c[j>>2];j=(c[g>>2]|0)+116|0;i=b;o=j+104|0;do{c[j>>2]=c[i>>2];j=j+4|0;i=i+4|0;}while((j|0)<(o|0));i=h;j=dE(c[i>>2]|0,c[i+4>>2]|0,1,0)|0;i=(c[g>>2]|0)+240|0;c[i>>2]=j;c[i+4>>2]=y;i=(c[g>>2]|0)+248|0;c[i>>2]=0;c[i+4>>2]=0;i=(c[g>>2]|0)+256|0;c[i>>2]=0;c[i+4>>2]=0;i=h;if((c[i>>2]|0)==-1?(c[i+4>>2]|0)==-1:0)c[(c[g>>2]|0)+116+32>>2]=0;c[c[g>>2]>>2]=1;c[(c[g>>2]|0)+220>>2]=0;if(!(c[b+68>>2]|0)){r=c[g>>2]|0;rl(r,0,0)|0;s=c[g>>2]|0;t=s+472|0;u=t+8|0;hl(u);v=c[g>>2]|0;w=v+472|0;x=c[w>>2]|0;Cj(x);z=c[g>>2]|0;A=z+264|0;Lh(A,0,0)|0;l=f;return 0;}il((c[g>>2]|0)+408|0);r=c[g>>2]|0;rl(r,0,0)|0;s=c[g>>2]|0;t=s+472|0;u=t+8|0;hl(u);v=c[g>>2]|0;w=v+472|0;x=c[w>>2]|0;Cj(x);z=c[g>>2]|0;A=z+264|0;Lh(A,0,0)|0;l=f;return 0;}function pl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;d=l;l=l+16|0;e=d+12|0;f=d+8|0;g=d+4|0;h=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=c[c[f>>2]>>2];if(!(c[(c[e>>2]|0)+8>>2]|0))c[(c[e>>2]|0)+8>>2]=3;if(!(c[(c[e>>2]|0)+12>>2]|0))c[(c[e>>2]|0)+12>>2]=64;if((c[(c[f>>2]|0)+24>>2]|0)>>>0>=7){if((c[(c[f>>2]|0)+20>>2]|0)>>>0>(c[(c[e>>2]|0)+12>>2]|0)>>>0)i=c[(c[f>>2]|0)+20>>2]|0;else i=c[(c[e>>2]|0)+12>>2]|0;c[h>>2]=i;c[(c[e>>2]|0)+12>>2]=c[h>>2];}if(!(c[(c[e>>2]|0)+4>>2]|0))c[(c[e>>2]|0)+4>>2]=6>((c[g>>2]|0)-7|0)>>>0?6:(c[g>>2]|0)-7|0;if(!(c[(c[e>>2]|0)+16>>2]|0)){if((c[g>>2]|0)>>>0<(c[(c[e>>2]|0)+4>>2]|0)>>>0)j=0;else j=(c[g>>2]|0)-(c[(c[e>>2]|0)+4>>2]|0)|0;c[(c[e>>2]|0)+16>>2]=j;}j=c[e>>2]|0;if((c[(c[e>>2]|0)+8>>2]|0)>>>0<(c[(c[e>>2]|0)+4>>2]|0)>>>0){k=c[j+8>>2]|0;m=c[e>>2]|0;n=m+8|0;c[n>>2]=k;l=d;return;}else{k=c[j+4>>2]|0;m=c[e>>2]|0;n=m+8|0;c[n>>2]=k;l=d;return;}}function ql(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=sl(-1213897629,-820265764,(c[d>>2]|0)-1|0,0)|0;l=b;return a|0;}function rl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;if((c[c[g>>2]>>2]|0)!=1){c[f>>2]=-60;j=c[f>>2]|0;l=e;return j|0;}if(c[(c[g>>2]|0)+116+68>>2]|0){c[f>>2]=-40;j=c[f>>2]|0;l=e;return j|0;}else{c[(c[g>>2]|0)+456>>2]=c[h>>2];c[(c[g>>2]|0)+456+8>>2]=c[i>>2];c[(c[g>>2]|0)+456+12>>2]=c[i>>2];c[(c[g>>2]|0)+456+4>>2]=0;c[f>>2]=0;j=c[f>>2]|0;l=e;return j|0;}return 0;}function sl(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+32|0;g=f+16|0;h=f+8|0;i=f;j=g;c[j>>2]=a;c[j+4>>2]=b;b=h;c[b>>2]=d;c[b+4>>2]=e;e=i;c[e>>2]=1;c[e+4>>2]=0;while(1){e=h;if(!((c[e>>2]|0)!=0|(c[e+4>>2]|0)!=0))break;if((c[h>>2]&1|0)!=0|0!=0){e=g;b=i;d=cE(c[b>>2]|0,c[b+4>>2]|0,c[e>>2]|0,c[e+4>>2]|0)|0;e=i;c[e>>2]=d;c[e+4>>2]=y;}e=h;d=iE(c[e>>2]|0,c[e+4>>2]|0,1)|0;e=h;c[e>>2]=d;c[e+4>>2]=y;e=g;d=g;b=cE(c[d>>2]|0,c[d+4>>2]|0,c[e>>2]|0,c[e+4>>2]|0)|0;e=g;c[e>>2]=b;c[e+4>>2]=y;}g=i;y=c[g+4>>2]|0;l=f;return c[g>>2]|0;}function tl(a,b){a=a|0;b=b|0;return((c[a+8>>2]|0)==(c[b+8>>2]|0)?(c[a+4>>2]|0)==(c[b+4>>2]|0):0)&(c[a+24>>2]|0)==(c[b+24>>2]|0)&((c[a+16>>2]|0)==3|0)==((c[b+16>>2]|0)==3|0)|0;}function ul(a,b){a=a|0;b=b|0;var d=0;if(!(c[a>>2]|0)?!(c[b>>2]|0):0)d=1;else if((((c[a>>2]|0)==(c[b>>2]|0)?(c[a+4>>2]|0)==(c[b+4>>2]|0):0)?(c[a+8>>2]|0)==(c[b+8>>2]|0):0)?(c[a+12>>2]|0)==(c[b+12>>2]|0):0)d=(c[a+16>>2]|0)==(c[b+16>>2]|0);else d=0;return d&1|0;}function vl(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;h=l;l=l+32|0;i=h+28|0;j=h+24|0;k=h+20|0;m=h;n=h+16|0;o=h+12|0;p=h+8|0;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;d=m;c[d>>2]=f;c[d+4>>2]=g;g=jE(1,0,c[e>>2]|0)|0;d=y;f=m;b=c[f+4>>2]|0;if(d>>>0<b>>>0|((d|0)==(b|0)?g>>>0<(c[f>>2]|0)>>>0:0)){f=jE(1,0,c[e>>2]|0)|0;q=f;r=y;}else{f=m;q=c[f>>2]|0;r=c[f+4>>2]|0;}if(1>q>>>0)s=1;else{q=jE(1,0,c[e>>2]|0)|0;f=y;r=m;g=c[r+4>>2]|0;if(f>>>0<g>>>0|((f|0)==(g|0)?q>>>0<(c[r>>2]|0)>>>0:0)){r=jE(1,0,c[e>>2]|0)|0;t=r;u=y;}else{r=m;t=c[r>>2]|0;u=c[r+4>>2]|0;}s=t;}c[n>>2]=s;c[o>>2]=131072<(c[n>>2]|0)>>>0?131072:c[n>>2]|0;if((c[k>>2]|0)!=1){v=0;c[p>>2]=v;w=c[o>>2]|0;x=c[j>>2]|0;z=w>>>0<=x>>>0;A=z&1;B=c[p>>2]|0;C=c[i>>2]|0;D=B>>>0<=C>>>0;E=D&1;F=A&E;l=h;return F|0;}v=(c[n>>2]|0)+(c[o>>2]|0)|0;c[p>>2]=v;w=c[o>>2]|0;x=c[j>>2]|0;z=w>>>0<=x>>>0;A=z&1;B=c[p>>2]|0;C=c[i>>2]|0;D=B>>>0<=C>>>0;E=D&1;F=A&E;l=h;return F|0;}function wl(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;xl(c[f>>2]|0,c[g>>2]&65535);a[(c[f>>2]|0)+2>>0]=(c[g>>2]|0)>>>16;l=e;return;}function xl(d,f){d=d|0;f=f|0;var g=0,h=0,i=0,j=0;g=l;l=l+16|0;h=g+4|0;i=g+8|0;j=g;c[h>>2]=d;b[i>>1]=f;f=(Jj()|0)!=0;d=c[h>>2]|0;if(f){yl(d,b[i>>1]|0);l=g;return;}else{c[j>>2]=d;a[c[j>>2]>>0]=b[i>>1];a[(c[j>>2]|0)+1>>0]=(e[i>>1]|0)>>8;l=g;return;}}function yl(d,e){d=d|0;e=e|0;var f=0,g=0,h=0;f=l;l=l+16|0;g=f;h=f+4|0;c[g>>2]=d;b[h>>1]=e;e=b[h>>1]|0;h=c[g>>2]|0;a[h>>0]=e;a[h+1>>0]=e>>8;l=f;return;}function zl(b){b=b|0;var d=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;d=l;l=l+48|0;f=d+32|0;g=d+28|0;h=d+24|0;i=d+20|0;j=d+16|0;k=d+12|0;m=d+8|0;n=d+4|0;o=d;c[f>>2]=b;c[g>>2]=c[c[f>>2]>>2];c[h>>2]=c[(c[f>>2]|0)+16>>2];c[i>>2]=c[(c[f>>2]|0)+24>>2];c[j>>2]=c[(c[f>>2]|0)+20>>2];c[k>>2]=((c[(c[f>>2]|0)+4>>2]|0)-(c[c[f>>2]>>2]|0)|0)/8|0;c[m>>2]=0;while(1){if((c[m>>2]|0)>>>0>=(c[k>>2]|0)>>>0)break;c[n>>2]=e[(c[g>>2]|0)+(c[m>>2]<<3)+4>>1];c[o>>2]=e[(c[g>>2]|0)+(c[m>>2]<<3)+6>>1];b=(Al(c[n>>2]|0)|0)&255;a[(c[h>>2]|0)+(c[m>>2]|0)>>0]=b;b=(uj(c[(c[g>>2]|0)+(c[m>>2]<<3)>>2]|0)|0)&255;a[(c[i>>2]|0)+(c[m>>2]|0)>>0]=b;b=(Bl(c[o>>2]|0)|0)&255;a[(c[j>>2]|0)+(c[m>>2]|0)>>0]=b;c[m>>2]=(c[m>>2]|0)+1;}if((c[(c[f>>2]|0)+28>>2]|0)==1)a[(c[h>>2]|0)+(c[(c[f>>2]|0)+32>>2]|0)>>0]=35;if((c[(c[f>>2]|0)+28>>2]|0)!=2){l=d;return;}a[(c[j>>2]|0)+(c[(c[f>>2]|0)+32>>2]|0)>>0]=52;l=d;return;}function Al(a){a=a|0;var b=0,e=0,f=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;if((c[e>>2]|0)>>>0>63){f=(uj(a)|0)+19|0;l=b;return f|0;}else{f=d[3008+a>>0]|0;l=b;return f|0;}return 0;}function Bl(a){a=a|0;var b=0,e=0,f=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;if((c[e>>2]|0)>>>0>127){f=(uj(a)|0)+36|0;l=b;return f|0;}else{f=d[3072+a>>0]|0;l=b;return f|0;}return 0;}function Cl(a,b,d,e,f,g,h,i,j,k,m,n){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;o=l;l=l+64|0;p=o+48|0;q=o+44|0;r=o+40|0;s=o+36|0;t=o+32|0;u=o+28|0;v=o+24|0;w=o+20|0;x=o+16|0;y=o+12|0;z=o+8|0;A=o+4|0;B=o;c[q>>2]=a;c[r>>2]=b;c[s>>2]=d;c[t>>2]=e;c[u>>2]=f;c[v>>2]=g;c[w>>2]=h;c[x>>2]=i;c[y>>2]=j;c[z>>2]=k;c[A>>2]=m;c[B>>2]=n;if(c[B>>2]|0){c[p>>2]=Dl(c[q>>2]|0,c[r>>2]|0,c[s>>2]|0,c[t>>2]|0,c[u>>2]|0,c[v>>2]|0,c[w>>2]|0,c[x>>2]|0,c[y>>2]|0,c[z>>2]|0,c[A>>2]|0)|0;C=c[p>>2]|0;l=o;return C|0;}else{c[p>>2]=El(c[q>>2]|0,c[r>>2]|0,c[s>>2]|0,c[t>>2]|0,c[u>>2]|0,c[v>>2]|0,c[w>>2]|0,c[x>>2]|0,c[y>>2]|0,c[z>>2]|0,c[A>>2]|0)|0;C=c[p>>2]|0;l=o;return C|0;}return 0;}function Dl(b,f,g,h,i,j,k,m,n,o,p){b=b|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;p=p|0;var q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0;q=l;l=l+208|0;r=q+192|0;s=q+188|0;t=q+184|0;u=q+180|0;v=q+176|0;w=q+172|0;x=q+168|0;y=q+164|0;z=q+160|0;A=q+156|0;B=q+152|0;C=q+148|0;D=q+128|0;E=q+112|0;F=q+96|0;G=q+80|0;H=q+76|0;I=q+72|0;J=q+68|0;K=q+64|0;L=q+198|0;M=q+197|0;N=q+196|0;O=q+60|0;P=q+56|0;Q=q+52|0;R=q+48|0;S=q+44|0;T=q+40|0;U=q+36|0;V=q+32|0;W=q+28|0;X=q+24|0;Y=q+20|0;Z=q+16|0;_=q+12|0;$=q+8|0;aa=q+4|0;ba=q;c[T>>2]=b;c[U>>2]=f;c[V>>2]=g;c[W>>2]=h;c[X>>2]=i;c[Y>>2]=j;c[Z>>2]=k;c[_>>2]=m;c[$>>2]=n;c[aa>>2]=o;c[ba>>2]=p;p=c[U>>2]|0;U=c[V>>2]|0;V=c[W>>2]|0;W=c[X>>2]|0;X=c[Y>>2]|0;Y=c[Z>>2]|0;Z=c[_>>2]|0;_=c[$>>2]|0;$=c[aa>>2]|0;aa=c[ba>>2]|0;c[s>>2]=c[T>>2];c[t>>2]=p;c[u>>2]=U;c[v>>2]=V;c[w>>2]=W;c[x>>2]=X;c[y>>2]=Y;c[z>>2]=Z;c[A>>2]=_;c[B>>2]=$;c[C>>2]=aa;c[H>>2]=Fl(D,c[s>>2]|0,c[t>>2]|0)|0;if(wj(c[H>>2]|0)|0){c[r>>2]=-70;ca=c[r>>2]|0;l=q;return ca|0;}Gl(E,c[u>>2]|0,d[(c[v>>2]|0)+((c[B>>2]|0)-1)>>0]|0);Gl(F,c[w>>2]|0,d[(c[x>>2]|0)+((c[B>>2]|0)-1)>>0]|0);Gl(G,c[y>>2]|0,d[(c[z>>2]|0)+((c[B>>2]|0)-1)>>0]|0);Hl(D,e[(c[A>>2]|0)+((c[B>>2]|0)-1<<3)+4>>1]|0,c[5696+((d[(c[z>>2]|0)+((c[B>>2]|0)-1)>>0]|0)<<2)>>2]|0);if(Il()|0)Jl(D);Hl(D,e[(c[A>>2]|0)+((c[B>>2]|0)-1<<3)+6>>1]|0,c[5840+((d[(c[v>>2]|0)+((c[B>>2]|0)-1)>>0]|0)<<2)>>2]|0);if(Il()|0)Jl(D);if(c[C>>2]|0){c[I>>2]=d[(c[x>>2]|0)+((c[B>>2]|0)-1)>>0];y=c[I>>2]|0;w=c[I>>2]|0;u=(Il()|0)!=0;if(w>>>0<((u?25:57)-1|0)>>>0)da=c[I>>2]|0;else{u=(Il()|0)!=0;da=(u?25:57)-1|0;}c[J>>2]=y-da;if(c[J>>2]|0){Hl(D,c[(c[A>>2]|0)+((c[B>>2]|0)-1<<3)>>2]|0,c[J>>2]|0);Jl(D);}Hl(D,(c[(c[A>>2]|0)+((c[B>>2]|0)-1<<3)>>2]|0)>>>(c[J>>2]|0),(c[I>>2]|0)-(c[J>>2]|0)|0);}else Hl(D,c[(c[A>>2]|0)+((c[B>>2]|0)-1<<3)>>2]|0,d[(c[x>>2]|0)+((c[B>>2]|0)-1)>>0]|0);Jl(D);c[K>>2]=(c[B>>2]|0)-2;while(1){if((c[K>>2]|0)>>>0>=(c[B>>2]|0)>>>0)break;a[L>>0]=a[(c[z>>2]|0)+(c[K>>2]|0)>>0]|0;a[M>>0]=a[(c[x>>2]|0)+(c[K>>2]|0)>>0]|0;a[N>>0]=a[(c[v>>2]|0)+(c[K>>2]|0)>>0]|0;c[O>>2]=c[5696+((d[L>>0]|0)<<2)>>2];c[P>>2]=d[M>>0];c[Q>>2]=c[5840+((d[N>>0]|0)<<2)>>2];Kl(D,F,d[M>>0]|0);Kl(D,E,d[N>>0]|0);if(Il()|0)Jl(D);Kl(D,G,d[L>>0]|0);if(!(!(Il()|0)?((c[P>>2]|0)+(c[Q>>2]|0)+(c[O>>2]|0)|0)>>>0<31:0))Jl(D);Hl(D,e[(c[A>>2]|0)+(c[K>>2]<<3)+4>>1]|0,c[O>>2]|0);if(Il()|0?((c[O>>2]|0)+(c[Q>>2]|0)|0)>>>0>24:0)Jl(D);Hl(D,e[(c[A>>2]|0)+(c[K>>2]<<3)+6>>1]|0,c[Q>>2]|0);if(!(!(Il()|0)?((c[P>>2]|0)+(c[Q>>2]|0)+(c[O>>2]|0)|0)>>>0<=56:0))Jl(D);if(c[C>>2]|0){J=c[P>>2]|0;I=c[P>>2]|0;da=(Il()|0)!=0;if(I>>>0<((da?25:57)-1|0)>>>0)ea=c[P>>2]|0;else{da=(Il()|0)!=0;ea=(da?25:57)-1|0;}c[R>>2]=J-ea;if(c[R>>2]|0){Hl(D,c[(c[A>>2]|0)+(c[K>>2]<<3)>>2]|0,c[R>>2]|0);Jl(D);}Hl(D,(c[(c[A>>2]|0)+(c[K>>2]<<3)>>2]|0)>>>(c[R>>2]|0),(c[P>>2]|0)-(c[R>>2]|0)|0);}else Hl(D,c[(c[A>>2]|0)+(c[K>>2]<<3)>>2]|0,c[P>>2]|0);Jl(D);c[K>>2]=(c[K>>2]|0)+-1;}Ll(D,E);Ll(D,F);Ll(D,G);c[S>>2]=Ml(D)|0;if(!(c[S>>2]|0)){c[r>>2]=-70;ca=c[r>>2]|0;l=q;return ca|0;}else{c[r>>2]=c[S>>2];ca=c[r>>2]|0;l=q;return ca|0;}return 0;}function El(b,f,g,h,i,j,k,m,n,o,p){b=b|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;p=p|0;var q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0;q=l;l=l+208|0;r=q+192|0;s=q+188|0;t=q+184|0;u=q+180|0;v=q+176|0;w=q+172|0;x=q+168|0;y=q+164|0;z=q+160|0;A=q+156|0;B=q+152|0;C=q+148|0;D=q+128|0;E=q+112|0;F=q+96|0;G=q+80|0;H=q+76|0;I=q+72|0;J=q+68|0;K=q+64|0;L=q+198|0;M=q+197|0;N=q+196|0;O=q+60|0;P=q+56|0;Q=q+52|0;R=q+48|0;S=q+44|0;T=q+40|0;U=q+36|0;V=q+32|0;W=q+28|0;X=q+24|0;Y=q+20|0;Z=q+16|0;_=q+12|0;$=q+8|0;aa=q+4|0;ba=q;c[T>>2]=b;c[U>>2]=f;c[V>>2]=g;c[W>>2]=h;c[X>>2]=i;c[Y>>2]=j;c[Z>>2]=k;c[_>>2]=m;c[$>>2]=n;c[aa>>2]=o;c[ba>>2]=p;p=c[U>>2]|0;U=c[V>>2]|0;V=c[W>>2]|0;W=c[X>>2]|0;X=c[Y>>2]|0;Y=c[Z>>2]|0;Z=c[_>>2]|0;_=c[$>>2]|0;$=c[aa>>2]|0;aa=c[ba>>2]|0;c[s>>2]=c[T>>2];c[t>>2]=p;c[u>>2]=U;c[v>>2]=V;c[w>>2]=W;c[x>>2]=X;c[y>>2]=Y;c[z>>2]=Z;c[A>>2]=_;c[B>>2]=$;c[C>>2]=aa;c[H>>2]=Fl(D,c[s>>2]|0,c[t>>2]|0)|0;if(wj(c[H>>2]|0)|0){c[r>>2]=-70;ca=c[r>>2]|0;l=q;return ca|0;}Gl(E,c[u>>2]|0,d[(c[v>>2]|0)+((c[B>>2]|0)-1)>>0]|0);Gl(F,c[w>>2]|0,d[(c[x>>2]|0)+((c[B>>2]|0)-1)>>0]|0);Gl(G,c[y>>2]|0,d[(c[z>>2]|0)+((c[B>>2]|0)-1)>>0]|0);Hl(D,e[(c[A>>2]|0)+((c[B>>2]|0)-1<<3)+4>>1]|0,c[5696+((d[(c[z>>2]|0)+((c[B>>2]|0)-1)>>0]|0)<<2)>>2]|0);if(Il()|0)Jl(D);Hl(D,e[(c[A>>2]|0)+((c[B>>2]|0)-1<<3)+6>>1]|0,c[5840+((d[(c[v>>2]|0)+((c[B>>2]|0)-1)>>0]|0)<<2)>>2]|0);if(Il()|0)Jl(D);if(c[C>>2]|0){c[I>>2]=d[(c[x>>2]|0)+((c[B>>2]|0)-1)>>0];y=c[I>>2]|0;w=c[I>>2]|0;u=(Il()|0)!=0;if(w>>>0<((u?25:57)-1|0)>>>0)da=c[I>>2]|0;else{u=(Il()|0)!=0;da=(u?25:57)-1|0;}c[J>>2]=y-da;if(c[J>>2]|0){Hl(D,c[(c[A>>2]|0)+((c[B>>2]|0)-1<<3)>>2]|0,c[J>>2]|0);Jl(D);}Hl(D,(c[(c[A>>2]|0)+((c[B>>2]|0)-1<<3)>>2]|0)>>>(c[J>>2]|0),(c[I>>2]|0)-(c[J>>2]|0)|0);}else Hl(D,c[(c[A>>2]|0)+((c[B>>2]|0)-1<<3)>>2]|0,d[(c[x>>2]|0)+((c[B>>2]|0)-1)>>0]|0);Jl(D);c[K>>2]=(c[B>>2]|0)-2;while(1){if((c[K>>2]|0)>>>0>=(c[B>>2]|0)>>>0)break;a[L>>0]=a[(c[z>>2]|0)+(c[K>>2]|0)>>0]|0;a[M>>0]=a[(c[x>>2]|0)+(c[K>>2]|0)>>0]|0;a[N>>0]=a[(c[v>>2]|0)+(c[K>>2]|0)>>0]|0;c[O>>2]=c[5696+((d[L>>0]|0)<<2)>>2];c[P>>2]=d[M>>0];c[Q>>2]=c[5840+((d[N>>0]|0)<<2)>>2];Kl(D,F,d[M>>0]|0);Kl(D,E,d[N>>0]|0);if(Il()|0)Jl(D);Kl(D,G,d[L>>0]|0);if(!(!(Il()|0)?((c[P>>2]|0)+(c[Q>>2]|0)+(c[O>>2]|0)|0)>>>0<31:0))Jl(D);Hl(D,e[(c[A>>2]|0)+(c[K>>2]<<3)+4>>1]|0,c[O>>2]|0);if(Il()|0?((c[O>>2]|0)+(c[Q>>2]|0)|0)>>>0>24:0)Jl(D);Hl(D,e[(c[A>>2]|0)+(c[K>>2]<<3)+6>>1]|0,c[Q>>2]|0);if(!(!(Il()|0)?((c[P>>2]|0)+(c[Q>>2]|0)+(c[O>>2]|0)|0)>>>0<=56:0))Jl(D);if(c[C>>2]|0){J=c[P>>2]|0;I=c[P>>2]|0;da=(Il()|0)!=0;if(I>>>0<((da?25:57)-1|0)>>>0)ea=c[P>>2]|0;else{da=(Il()|0)!=0;ea=(da?25:57)-1|0;}c[R>>2]=J-ea;if(c[R>>2]|0){Hl(D,c[(c[A>>2]|0)+(c[K>>2]<<3)>>2]|0,c[R>>2]|0);Jl(D);}Hl(D,(c[(c[A>>2]|0)+(c[K>>2]<<3)>>2]|0)>>>(c[R>>2]|0),(c[P>>2]|0)-(c[R>>2]|0)|0);}else Hl(D,c[(c[A>>2]|0)+(c[K>>2]<<3)>>2]|0,c[P>>2]|0);Jl(D);c[K>>2]=(c[K>>2]|0)+-1;}Ll(D,E);Ll(D,F);Ll(D,G);c[S>>2]=Ml(D)|0;if(!(c[S>>2]|0)){c[r>>2]=-70;ca=c[r>>2]|0;l=q;return ca|0;}else{c[r>>2]=c[S>>2];ca=c[r>>2]|0;l=q;return ca|0;}return 0;}function Fl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[c[g>>2]>>2]=0;c[(c[g>>2]|0)+4>>2]=0;c[(c[g>>2]|0)+8>>2]=c[h>>2];c[(c[g>>2]|0)+12>>2]=c[(c[g>>2]|0)+8>>2];c[(c[g>>2]|0)+16>>2]=(c[(c[g>>2]|0)+8>>2]|0)+(c[i>>2]|0)+-4;if((c[i>>2]|0)>>>0<=4){c[f>>2]=-70;j=c[f>>2]|0;l=e;return j|0;}else{c[f>>2]=0;j=c[f>>2]|0;l=e;return j|0;}return 0;}function Gl(a,b,d){a=a|0;b=b|0;d=d|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+24|0;h=f+20|0;i=f+16|0;j=f+8|0;k=f+4|0;m=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;Ul(c[g>>2]|0,c[h>>2]|0);h=(c[(c[g>>2]|0)+8>>2]|0)+(c[i>>2]<<3)|0;c[j>>2]=c[h>>2];c[j+4>>2]=c[h+4>>2];c[k>>2]=c[(c[g>>2]|0)+4>>2];c[m>>2]=((c[j+4>>2]|0)+32768|0)>>>16;c[c[g>>2]>>2]=(c[m>>2]<<16)-(c[j+4>>2]|0);c[c[g>>2]>>2]=e[(c[k>>2]|0)+((c[c[g>>2]>>2]>>c[m>>2])+(c[j>>2]|0)<<1)>>1];l=f;return;}function Hl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=c[f>>2]|0;c[d>>2]=c[d>>2]|(c[g>>2]&c[2800+(c[h>>2]<<2)>>2])<<c[(c[f>>2]|0)+4>>2];g=(c[f>>2]|0)+4|0;c[g>>2]=(c[g>>2]|0)+(c[h>>2]|0);l=e;return;}function Il(){return 1;}function Jl(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=(c[(c[d>>2]|0)+4>>2]|0)>>>3;Ol(c[(c[d>>2]|0)+12>>2]|0,c[c[d>>2]>>2]|0);a=(c[d>>2]|0)+12|0;c[a>>2]=(c[a>>2]|0)+(c[e>>2]|0);if((c[(c[d>>2]|0)+12>>2]|0)>>>0>(c[(c[d>>2]|0)+16>>2]|0)>>>0)c[(c[d>>2]|0)+12>>2]=c[(c[d>>2]|0)+16>>2];a=(c[d>>2]|0)+4|0;c[a>>2]=c[a>>2]&7;a=c[d>>2]|0;c[a>>2]=(c[a>>2]|0)>>>(c[e>>2]<<3);l=b;return;}function Kl(a,b,d){a=a|0;b=b|0;d=d|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+24|0;h=f+20|0;i=f+16|0;j=f+8|0;k=f+4|0;m=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;d=(c[(c[h>>2]|0)+8>>2]|0)+(c[i>>2]<<3)|0;c[j>>2]=c[d>>2];c[j+4>>2]=c[d+4>>2];c[k>>2]=c[(c[h>>2]|0)+4>>2];c[m>>2]=((c[c[h>>2]>>2]|0)+(c[j+4>>2]|0)|0)>>>16;Hl(c[g>>2]|0,c[c[h>>2]>>2]|0,c[m>>2]|0);c[c[h>>2]>>2]=e[(c[k>>2]|0)+((c[c[h>>2]>>2]>>c[m>>2])+(c[j>>2]|0)<<1)>>1];l=f;return;}function Ll(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;Hl(c[e>>2]|0,c[c[f>>2]>>2]|0,c[(c[f>>2]|0)+12>>2]|0);Jl(c[e>>2]|0);l=d;return;}function Ml(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;Nl(c[e>>2]|0,1,1);Jl(c[e>>2]|0);if((c[(c[e>>2]|0)+12>>2]|0)>>>0>=(c[(c[e>>2]|0)+16>>2]|0)>>>0){c[d>>2]=0;f=c[d>>2]|0;l=b;return f|0;}else{c[d>>2]=(c[(c[e>>2]|0)+12>>2]|0)-(c[(c[e>>2]|0)+8>>2]|0)+((c[(c[e>>2]|0)+4>>2]|0)>>>0>0&1);f=c[d>>2]|0;l=b;return f|0;}return 0;}function Nl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=c[f>>2]|0;c[d>>2]=c[d>>2]|c[g>>2]<<c[(c[f>>2]|0)+4>>2];g=(c[f>>2]|0)+4|0;c[g>>2]=(c[g>>2]|0)+(c[h>>2]|0);l=e;return;}function Ol(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=(Il()|0)!=0;a=c[e>>2]|0;e=c[f>>2]|0;if(b){Pl(a,e);l=d;return;}else{Ql(a,e,0);l=d;return;}}function Pl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=(Jj()|0)!=0;a=c[e>>2]|0;e=c[f>>2]|0;if(b){Tl(a,e);l=d;return;}else{Tl(a,Lj(e)|0);l=d;return;}}function Ql(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+8|0;g=e;c[f>>2]=a;a=g;c[a>>2]=b;c[a+4>>2]=d;d=(Jj()|0)!=0;a=c[f>>2]|0;f=g;g=c[f>>2]|0;b=c[f+4>>2]|0;if(d){Rl(a,g,b);l=e;return;}else{d=Sl(g,b)|0;Rl(a,d,y);l=e;return;}}function Rl(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=l;l=l+16|0;g=f+8|0;h=f;c[g>>2]=b;b=h;c[b>>2]=d;c[b+4>>2]=e;e=h;h=c[e>>2]|0;b=c[e+4>>2]|0;e=c[g>>2]|0;g=e;a[g>>0]=h;a[g+1>>0]=h>>8;a[g+2>>0]=h>>16;a[g+3>>0]=h>>24;h=e+4|0;a[h>>0]=b;a[h+1>>0]=b>>8;a[h+2>>0]=b>>16;a[h+3>>0]=b>>24;l=f;return;}function Sl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d;f=e;c[f>>2]=a;c[f+4>>2]=b;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,56)|0;b=y&-16777216;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,40)|0;f=b|y&16711680;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=f|y&65280;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,8)|0;f=b|y&255;b=e;a=iE(c[b>>2]|0,c[b+4>>2]|0,8)|0;b=e;g=iE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=e;h=iE(c[b>>2]|0,c[b+4>>2]|0,40)|0;b=e;e=iE(c[b>>2]|0,c[b+4>>2]|0,56)|0;y=f;l=d;return a&-16777216|g&16711680|h&65280|e&255|0;}function Tl(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[g>>2]|0;g=c[f>>2]|0;a[g>>0]=d;a[g+1>>0]=d>>8;a[g+2>>0]=d>>16;a[g+3>>0]=d>>24;l=e;return;}function Ul(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=l;l=l+32|0;e=d+16|0;f=d+12|0;g=d+8|0;h=d+4|0;i=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=c[f>>2];c[h>>2]=c[g>>2];c[i>>2]=(Vl(c[g>>2]|0)|0)&65535;c[c[e>>2]>>2]=1<<c[i>>2];c[(c[e>>2]|0)+4>>2]=(c[h>>2]|0)+4;if(c[i>>2]|0)j=1<<(c[i>>2]|0)-1;else j=1;c[(c[e>>2]|0)+8>>2]=(c[f>>2]|0)+4+(j<<2);c[(c[e>>2]|0)+12>>2]=c[i>>2];l=d;return;}function Vl(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|0;}function Wl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;l=d;return c[2928+(((c[f>>2]|0)!=0&1)*36|0)+(c[e>>2]<<2)>>2]|0;}function Xl(a,b,e,f,g,h){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0;i=l;l=l+512|0;j=i+500|0;k=i+496|0;m=i+492|0;n=i+488|0;o=i+484|0;p=i+480|0;q=i+476|0;r=i+472|0;s=i+468|0;t=i+464|0;u=i+460|0;v=i+456|0;w=i+452|0;x=i+448|0;y=i+444|0;z=i+440|0;A=i+436|0;B=i+432|0;C=i+428|0;D=i+424|0;E=i+420|0;F=i+416|0;G=i+412|0;H=i+408|0;I=i+404|0;J=i+400|0;K=i+396|0;L=i+392|0;M=i+388|0;N=i+384|0;O=i+380|0;P=i+376|0;Q=i+372|0;R=i+368|0;S=i+364|0;T=i+360|0;U=i+356|0;V=i+352|0;W=i+348|0;X=i+344|0;Y=i+340|0;Z=i+336|0;_=i+332|0;$=i+328|0;aa=i+324|0;ba=i+320|0;ca=i+316|0;da=i+312|0;ea=i+308|0;fa=i+304|0;ga=i+300|0;ha=i+296|0;ia=i+292|0;ja=i+288|0;ka=i+284|0;la=i+280|0;ma=i+276|0;na=i+272|0;oa=i+268|0;pa=i+264|0;qa=i+260|0;ra=i+256|0;sa=i+252|0;ta=i+248|0;ua=i+244|0;va=i+240|0;wa=i+236|0;xa=i+232|0;ya=i+228|0;za=i+224|0;Aa=i+220|0;Ba=i+216|0;Ca=i+212|0;Da=i+208|0;Ea=i+204|0;Fa=i+200|0;Ga=i+196|0;Ha=i+192|0;Ia=i+188|0;Ja=i+184|0;Ka=i+180|0;La=i+176|0;Ma=i+172|0;Na=i+168|0;Oa=i+164|0;Pa=i+160|0;Qa=i+156|0;Ra=i+152|0;Sa=i+148|0;Ta=i+144|0;Ua=i+140|0;Va=i+136|0;Wa=i+132|0;Xa=i+128|0;Ya=i+124|0;Za=i+120|0;_a=i+116|0;$a=i+112|0;ab=i+108|0;bb=i+104|0;cb=i+100|0;db=i+96|0;eb=i+92|0;fb=i+88|0;gb=i+84|0;hb=i+80|0;ib=i+76|0;jb=i+72|0;kb=i+68|0;lb=i+64|0;mb=i+60|0;nb=i+56|0;ob=i+52|0;pb=i+48|0;qb=i+44|0;rb=i+40|0;sb=i+36|0;tb=i+32|0;ub=i+28|0;vb=i+24|0;wb=i+20|0;xb=i+16|0;yb=i+12|0;zb=i+8|0;Ab=i+4|0;Bb=i;c[tb>>2]=a;c[ub>>2]=b;c[vb>>2]=e;c[wb>>2]=f;c[xb>>2]=g;c[yb>>2]=h;c[zb>>2]=c[(c[wb>>2]|0)+8>>2];c[Ab>>2]=c[(c[wb>>2]|0)+16>>2];c[Bb>>2]=c[(c[wb>>2]|0)+20>>2];switch(c[Ab>>2]|0){case 7:{Ab=c[ub>>2]|0;wb=c[vb>>2]|0;h=c[xb>>2]|0;g=c[yb>>2]|0;f=c[zb>>2]|0;e=c[Bb>>2]|0;c[j>>2]=c[tb>>2];c[k>>2]=Ab;c[m>>2]=wb;c[n>>2]=h;c[o>>2]=g;c[p>>2]=f;c[q>>2]=e;c[r>>2]=7;c[s>>2]=c[(c[j>>2]|0)+36>>2];c[t>>2]=c[(c[j>>2]|0)+4>>2];c[u>>2]=c[n>>2];c[v>>2]=c[u>>2];c[w>>2]=c[u>>2];c[x>>2]=c[(c[j>>2]|0)+12>>2];c[y>>2]=(c[t>>2]|0)+(c[x>>2]|0);c[z>>2]=(c[u>>2]|0)+(c[o>>2]|0);c[A>>2]=(c[z>>2]|0)+-8;c[B>>2]=c[c[m>>2]>>2];c[C>>2]=c[(c[m>>2]|0)+4>>2];c[D>>2]=0;c[v>>2]=(c[v>>2]|0)+((c[v>>2]|0)==(c[y>>2]|0)&1);c[E>>2]=(c[v>>2]|0)-(c[y>>2]|0);if((c[C>>2]|0)>>>0>(c[E>>2]|0)>>>0){c[D>>2]=c[C>>2];c[C>>2]=0;}if((c[B>>2]|0)>>>0>(c[E>>2]|0)>>>0){c[D>>2]=c[B>>2];c[B>>2]=0;}a:while(1){if((c[v>>2]|0)>>>0>=(c[A>>2]|0)>>>0)break;c[G>>2]=Tk(c[v>>2]|0,c[p>>2]|0,c[r>>2]|0)|0;c[H>>2]=(c[v>>2]|0)-(c[t>>2]|0);c[I>>2]=c[(c[s>>2]|0)+(c[G>>2]<<2)>>2];c[J>>2]=(c[t>>2]|0)+(c[I>>2]|0);c[(c[s>>2]|0)+(c[G>>2]<<2)>>2]=c[H>>2];E=(c[B>>2]|0)>>>0>0&1;o=fl((c[v>>2]|0)+1+(0-(c[B>>2]|0))|0)|0;do{if(E&(o|0)==(fl((c[v>>2]|0)+1|0)|0)|0){c[F>>2]=(nn((c[v>>2]|0)+1+4|0,(c[v>>2]|0)+1+4+(0-(c[B>>2]|0))|0,c[z>>2]|0)|0)+4;c[v>>2]=(c[v>>2]|0)+1;kn(c[k>>2]|0,(c[v>>2]|0)-(c[w>>2]|0)|0,c[w>>2]|0,0,(c[F>>2]|0)-3|0);}else{if((c[I>>2]|0)>>>0>(c[x>>2]|0)>>>0?(u=fl(c[J>>2]|0)|0,(u|0)==(fl(c[v>>2]|0)|0)):0){c[F>>2]=(nn((c[v>>2]|0)+4|0,(c[J>>2]|0)+4|0,c[z>>2]|0)|0)+4;c[K>>2]=(c[v>>2]|0)-(c[J>>2]|0);while(1){if(!(((c[v>>2]|0)>>>0>(c[w>>2]|0)>>>0?(c[J>>2]|0)>>>0>(c[y>>2]|0)>>>0:0)|0))break;if((d[(c[v>>2]|0)+-1>>0]|0|0)!=(d[(c[J>>2]|0)+-1>>0]|0|0))break;c[v>>2]=(c[v>>2]|0)+-1;c[J>>2]=(c[J>>2]|0)+-1;c[F>>2]=(c[F>>2]|0)+1;}c[C>>2]=c[B>>2];c[B>>2]=c[K>>2];kn(c[k>>2]|0,(c[v>>2]|0)-(c[w>>2]|0)|0,c[w>>2]|0,(c[K>>2]|0)+2|0,(c[F>>2]|0)-3|0);break;}c[v>>2]=(c[v>>2]|0)+(((c[v>>2]|0)-(c[w>>2]|0)>>8)+(c[q>>2]|0));continue a;}}while(0);c[v>>2]=(c[v>>2]|0)+(c[F>>2]|0);c[w>>2]=c[v>>2];b:do{if((c[v>>2]|0)>>>0<=(c[A>>2]|0)>>>0){o=(c[H>>2]|0)+2|0;E=c[s>>2]|0;c[E+((Tk((c[t>>2]|0)+(c[H>>2]|0)+2|0,c[p>>2]|0,c[r>>2]|0)|0)<<2)>>2]=o;o=(c[v>>2]|0)+-2-(c[t>>2]|0)|0;E=c[s>>2]|0;c[E+((Tk((c[v>>2]|0)+-2|0,c[p>>2]|0,c[r>>2]|0)|0)<<2)>>2]=o;while(1){if((c[v>>2]|0)>>>0>(c[A>>2]|0)>>>0)break b;o=(c[C>>2]|0)>>>0>0&1;E=fl(c[v>>2]|0)|0;if(!(o&(E|0)==(fl((c[v>>2]|0)+(0-(c[C>>2]|0))|0)|0)))break b;c[L>>2]=(nn((c[v>>2]|0)+4|0,(c[v>>2]|0)+4+(0-(c[C>>2]|0))|0,c[z>>2]|0)|0)+4;c[M>>2]=c[C>>2];c[C>>2]=c[B>>2];c[B>>2]=c[M>>2];E=(c[v>>2]|0)-(c[t>>2]|0)|0;o=c[s>>2]|0;c[o+((Tk(c[v>>2]|0,c[p>>2]|0,c[r>>2]|0)|0)<<2)>>2]=E;kn(c[k>>2]|0,0,c[w>>2]|0,0,(c[L>>2]|0)-3|0);c[v>>2]=(c[v>>2]|0)+(c[L>>2]|0);c[w>>2]=c[v>>2];}}}while(0);}c[c[m>>2]>>2]=c[B>>2]|0?c[B>>2]|0:c[D>>2]|0;c[(c[m>>2]|0)+4>>2]=c[C>>2]|0?c[C>>2]|0:c[D>>2]|0;c[sb>>2]=(c[z>>2]|0)-(c[w>>2]|0);Cb=c[sb>>2]|0;l=i;return Cb|0;}case 5:{w=c[ub>>2]|0;z=c[vb>>2]|0;D=c[xb>>2]|0;C=c[yb>>2]|0;m=c[zb>>2]|0;B=c[Bb>>2]|0;c[oa>>2]=c[tb>>2];c[pa>>2]=w;c[qa>>2]=z;c[ra>>2]=D;c[sa>>2]=C;c[ta>>2]=m;c[ua>>2]=B;c[va>>2]=5;c[wa>>2]=c[(c[oa>>2]|0)+36>>2];c[xa>>2]=c[(c[oa>>2]|0)+4>>2];c[ya>>2]=c[ra>>2];c[za>>2]=c[ya>>2];c[Aa>>2]=c[ya>>2];c[Ba>>2]=c[(c[oa>>2]|0)+12>>2];c[Ca>>2]=(c[xa>>2]|0)+(c[Ba>>2]|0);c[Da>>2]=(c[ya>>2]|0)+(c[sa>>2]|0);c[Ea>>2]=(c[Da>>2]|0)+-8;c[Fa>>2]=c[c[qa>>2]>>2];c[Ga>>2]=c[(c[qa>>2]|0)+4>>2];c[Ha>>2]=0;c[za>>2]=(c[za>>2]|0)+((c[za>>2]|0)==(c[Ca>>2]|0)&1);c[Ia>>2]=(c[za>>2]|0)-(c[Ca>>2]|0);if((c[Ga>>2]|0)>>>0>(c[Ia>>2]|0)>>>0){c[Ha>>2]=c[Ga>>2];c[Ga>>2]=0;}if((c[Fa>>2]|0)>>>0>(c[Ia>>2]|0)>>>0){c[Ha>>2]=c[Fa>>2];c[Fa>>2]=0;}c:while(1){if((c[za>>2]|0)>>>0>=(c[Ea>>2]|0)>>>0)break;c[Ka>>2]=Tk(c[za>>2]|0,c[ta>>2]|0,c[va>>2]|0)|0;c[La>>2]=(c[za>>2]|0)-(c[xa>>2]|0);c[Ma>>2]=c[(c[wa>>2]|0)+(c[Ka>>2]<<2)>>2];c[Na>>2]=(c[xa>>2]|0)+(c[Ma>>2]|0);c[(c[wa>>2]|0)+(c[Ka>>2]<<2)>>2]=c[La>>2];Ia=(c[Fa>>2]|0)>>>0>0&1;sa=fl((c[za>>2]|0)+1+(0-(c[Fa>>2]|0))|0)|0;do{if(Ia&(sa|0)==(fl((c[za>>2]|0)+1|0)|0)|0){c[Ja>>2]=(nn((c[za>>2]|0)+1+4|0,(c[za>>2]|0)+1+4+(0-(c[Fa>>2]|0))|0,c[Da>>2]|0)|0)+4;c[za>>2]=(c[za>>2]|0)+1;kn(c[pa>>2]|0,(c[za>>2]|0)-(c[Aa>>2]|0)|0,c[Aa>>2]|0,0,(c[Ja>>2]|0)-3|0);}else{if((c[Ma>>2]|0)>>>0>(c[Ba>>2]|0)>>>0?(ya=fl(c[Na>>2]|0)|0,(ya|0)==(fl(c[za>>2]|0)|0)):0){c[Ja>>2]=(nn((c[za>>2]|0)+4|0,(c[Na>>2]|0)+4|0,c[Da>>2]|0)|0)+4;c[Oa>>2]=(c[za>>2]|0)-(c[Na>>2]|0);while(1){if(!(((c[za>>2]|0)>>>0>(c[Aa>>2]|0)>>>0?(c[Na>>2]|0)>>>0>(c[Ca>>2]|0)>>>0:0)|0))break;if((d[(c[za>>2]|0)+-1>>0]|0|0)!=(d[(c[Na>>2]|0)+-1>>0]|0|0))break;c[za>>2]=(c[za>>2]|0)+-1;c[Na>>2]=(c[Na>>2]|0)+-1;c[Ja>>2]=(c[Ja>>2]|0)+1;}c[Ga>>2]=c[Fa>>2];c[Fa>>2]=c[Oa>>2];kn(c[pa>>2]|0,(c[za>>2]|0)-(c[Aa>>2]|0)|0,c[Aa>>2]|0,(c[Oa>>2]|0)+2|0,(c[Ja>>2]|0)-3|0);break;}c[za>>2]=(c[za>>2]|0)+(((c[za>>2]|0)-(c[Aa>>2]|0)>>8)+(c[ua>>2]|0));continue c;}}while(0);c[za>>2]=(c[za>>2]|0)+(c[Ja>>2]|0);c[Aa>>2]=c[za>>2];d:do{if((c[za>>2]|0)>>>0<=(c[Ea>>2]|0)>>>0){sa=(c[La>>2]|0)+2|0;Ia=c[wa>>2]|0;c[Ia+((Tk((c[xa>>2]|0)+(c[La>>2]|0)+2|0,c[ta>>2]|0,c[va>>2]|0)|0)<<2)>>2]=sa;sa=(c[za>>2]|0)+-2-(c[xa>>2]|0)|0;Ia=c[wa>>2]|0;c[Ia+((Tk((c[za>>2]|0)+-2|0,c[ta>>2]|0,c[va>>2]|0)|0)<<2)>>2]=sa;while(1){if((c[za>>2]|0)>>>0>(c[Ea>>2]|0)>>>0)break d;sa=(c[Ga>>2]|0)>>>0>0&1;Ia=fl(c[za>>2]|0)|0;if(!(sa&(Ia|0)==(fl((c[za>>2]|0)+(0-(c[Ga>>2]|0))|0)|0)))break d;c[Pa>>2]=(nn((c[za>>2]|0)+4|0,(c[za>>2]|0)+4+(0-(c[Ga>>2]|0))|0,c[Da>>2]|0)|0)+4;c[Qa>>2]=c[Ga>>2];c[Ga>>2]=c[Fa>>2];c[Fa>>2]=c[Qa>>2];Ia=(c[za>>2]|0)-(c[xa>>2]|0)|0;sa=c[wa>>2]|0;c[sa+((Tk(c[za>>2]|0,c[ta>>2]|0,c[va>>2]|0)|0)<<2)>>2]=Ia;kn(c[pa>>2]|0,0,c[Aa>>2]|0,0,(c[Pa>>2]|0)-3|0);c[za>>2]=(c[za>>2]|0)+(c[Pa>>2]|0);c[Aa>>2]=c[za>>2];}}}while(0);}c[c[qa>>2]>>2]=c[Fa>>2]|0?c[Fa>>2]|0:c[Ha>>2]|0;c[(c[qa>>2]|0)+4>>2]=c[Ga>>2]|0?c[Ga>>2]|0:c[Ha>>2]|0;c[sb>>2]=(c[Da>>2]|0)-(c[Aa>>2]|0);Cb=c[sb>>2]|0;l=i;return Cb|0;}case 6:{Aa=c[ub>>2]|0;Da=c[vb>>2]|0;Ha=c[xb>>2]|0;Ga=c[yb>>2]|0;qa=c[zb>>2]|0;Fa=c[Bb>>2]|0;c[N>>2]=c[tb>>2];c[O>>2]=Aa;c[P>>2]=Da;c[Q>>2]=Ha;c[R>>2]=Ga;c[S>>2]=qa;c[T>>2]=Fa;c[U>>2]=6;c[V>>2]=c[(c[N>>2]|0)+36>>2];c[W>>2]=c[(c[N>>2]|0)+4>>2];c[X>>2]=c[Q>>2];c[Y>>2]=c[X>>2];c[Z>>2]=c[X>>2];c[_>>2]=c[(c[N>>2]|0)+12>>2];c[$>>2]=(c[W>>2]|0)+(c[_>>2]|0);c[aa>>2]=(c[X>>2]|0)+(c[R>>2]|0);c[ba>>2]=(c[aa>>2]|0)+-8;c[ca>>2]=c[c[P>>2]>>2];c[da>>2]=c[(c[P>>2]|0)+4>>2];c[ea>>2]=0;c[Y>>2]=(c[Y>>2]|0)+((c[Y>>2]|0)==(c[$>>2]|0)&1);c[fa>>2]=(c[Y>>2]|0)-(c[$>>2]|0);if((c[da>>2]|0)>>>0>(c[fa>>2]|0)>>>0){c[ea>>2]=c[da>>2];c[da>>2]=0;}if((c[ca>>2]|0)>>>0>(c[fa>>2]|0)>>>0){c[ea>>2]=c[ca>>2];c[ca>>2]=0;}e:while(1){if((c[Y>>2]|0)>>>0>=(c[ba>>2]|0)>>>0)break;c[ha>>2]=Tk(c[Y>>2]|0,c[S>>2]|0,c[U>>2]|0)|0;c[ia>>2]=(c[Y>>2]|0)-(c[W>>2]|0);c[ja>>2]=c[(c[V>>2]|0)+(c[ha>>2]<<2)>>2];c[ka>>2]=(c[W>>2]|0)+(c[ja>>2]|0);c[(c[V>>2]|0)+(c[ha>>2]<<2)>>2]=c[ia>>2];fa=(c[ca>>2]|0)>>>0>0&1;R=fl((c[Y>>2]|0)+1+(0-(c[ca>>2]|0))|0)|0;do{if(fa&(R|0)==(fl((c[Y>>2]|0)+1|0)|0)|0){c[ga>>2]=(nn((c[Y>>2]|0)+1+4|0,(c[Y>>2]|0)+1+4+(0-(c[ca>>2]|0))|0,c[aa>>2]|0)|0)+4;c[Y>>2]=(c[Y>>2]|0)+1;kn(c[O>>2]|0,(c[Y>>2]|0)-(c[Z>>2]|0)|0,c[Z>>2]|0,0,(c[ga>>2]|0)-3|0);}else{if((c[ja>>2]|0)>>>0>(c[_>>2]|0)>>>0?(X=fl(c[ka>>2]|0)|0,(X|0)==(fl(c[Y>>2]|0)|0)):0){c[ga>>2]=(nn((c[Y>>2]|0)+4|0,(c[ka>>2]|0)+4|0,c[aa>>2]|0)|0)+4;c[la>>2]=(c[Y>>2]|0)-(c[ka>>2]|0);while(1){if(!(((c[Y>>2]|0)>>>0>(c[Z>>2]|0)>>>0?(c[ka>>2]|0)>>>0>(c[$>>2]|0)>>>0:0)|0))break;if((d[(c[Y>>2]|0)+-1>>0]|0|0)!=(d[(c[ka>>2]|0)+-1>>0]|0|0))break;c[Y>>2]=(c[Y>>2]|0)+-1;c[ka>>2]=(c[ka>>2]|0)+-1;c[ga>>2]=(c[ga>>2]|0)+1;}c[da>>2]=c[ca>>2];c[ca>>2]=c[la>>2];kn(c[O>>2]|0,(c[Y>>2]|0)-(c[Z>>2]|0)|0,c[Z>>2]|0,(c[la>>2]|0)+2|0,(c[ga>>2]|0)-3|0);break;}c[Y>>2]=(c[Y>>2]|0)+(((c[Y>>2]|0)-(c[Z>>2]|0)>>8)+(c[T>>2]|0));continue e;}}while(0);c[Y>>2]=(c[Y>>2]|0)+(c[ga>>2]|0);c[Z>>2]=c[Y>>2];f:do{if((c[Y>>2]|0)>>>0<=(c[ba>>2]|0)>>>0){R=(c[ia>>2]|0)+2|0;fa=c[V>>2]|0;c[fa+((Tk((c[W>>2]|0)+(c[ia>>2]|0)+2|0,c[S>>2]|0,c[U>>2]|0)|0)<<2)>>2]=R;R=(c[Y>>2]|0)+-2-(c[W>>2]|0)|0;fa=c[V>>2]|0;c[fa+((Tk((c[Y>>2]|0)+-2|0,c[S>>2]|0,c[U>>2]|0)|0)<<2)>>2]=R;while(1){if((c[Y>>2]|0)>>>0>(c[ba>>2]|0)>>>0)break f;R=(c[da>>2]|0)>>>0>0&1;fa=fl(c[Y>>2]|0)|0;if(!(R&(fa|0)==(fl((c[Y>>2]|0)+(0-(c[da>>2]|0))|0)|0)))break f;c[ma>>2]=(nn((c[Y>>2]|0)+4|0,(c[Y>>2]|0)+4+(0-(c[da>>2]|0))|0,c[aa>>2]|0)|0)+4;c[na>>2]=c[da>>2];c[da>>2]=c[ca>>2];c[ca>>2]=c[na>>2];fa=(c[Y>>2]|0)-(c[W>>2]|0)|0;R=c[V>>2]|0;c[R+((Tk(c[Y>>2]|0,c[S>>2]|0,c[U>>2]|0)|0)<<2)>>2]=fa;kn(c[O>>2]|0,0,c[Z>>2]|0,0,(c[ma>>2]|0)-3|0);c[Y>>2]=(c[Y>>2]|0)+(c[ma>>2]|0);c[Z>>2]=c[Y>>2];}}}while(0);}c[c[P>>2]>>2]=c[ca>>2]|0?c[ca>>2]|0:c[ea>>2]|0;c[(c[P>>2]|0)+4>>2]=c[da>>2]|0?c[da>>2]|0:c[ea>>2]|0;c[sb>>2]=(c[aa>>2]|0)-(c[Z>>2]|0);Cb=c[sb>>2]|0;l=i;return Cb|0;}default:{Z=c[ub>>2]|0;ub=c[vb>>2]|0;vb=c[xb>>2]|0;xb=c[yb>>2]|0;yb=c[zb>>2]|0;zb=c[Bb>>2]|0;c[Ra>>2]=c[tb>>2];c[Sa>>2]=Z;c[Ta>>2]=ub;c[Ua>>2]=vb;c[Va>>2]=xb;c[Wa>>2]=yb;c[Xa>>2]=zb;c[Ya>>2]=4;c[Za>>2]=c[(c[Ra>>2]|0)+36>>2];c[_a>>2]=c[(c[Ra>>2]|0)+4>>2];c[$a>>2]=c[Ua>>2];c[ab>>2]=c[$a>>2];c[bb>>2]=c[$a>>2];c[cb>>2]=c[(c[Ra>>2]|0)+12>>2];c[db>>2]=(c[_a>>2]|0)+(c[cb>>2]|0);c[eb>>2]=(c[$a>>2]|0)+(c[Va>>2]|0);c[fb>>2]=(c[eb>>2]|0)+-8;c[gb>>2]=c[c[Ta>>2]>>2];c[hb>>2]=c[(c[Ta>>2]|0)+4>>2];c[ib>>2]=0;c[ab>>2]=(c[ab>>2]|0)+((c[ab>>2]|0)==(c[db>>2]|0)&1);c[jb>>2]=(c[ab>>2]|0)-(c[db>>2]|0);if((c[hb>>2]|0)>>>0>(c[jb>>2]|0)>>>0){c[ib>>2]=c[hb>>2];c[hb>>2]=0;}if((c[gb>>2]|0)>>>0>(c[jb>>2]|0)>>>0){c[ib>>2]=c[gb>>2];c[gb>>2]=0;}g:while(1){if((c[ab>>2]|0)>>>0>=(c[fb>>2]|0)>>>0)break;c[lb>>2]=Tk(c[ab>>2]|0,c[Wa>>2]|0,c[Ya>>2]|0)|0;c[mb>>2]=(c[ab>>2]|0)-(c[_a>>2]|0);c[nb>>2]=c[(c[Za>>2]|0)+(c[lb>>2]<<2)>>2];c[ob>>2]=(c[_a>>2]|0)+(c[nb>>2]|0);c[(c[Za>>2]|0)+(c[lb>>2]<<2)>>2]=c[mb>>2];jb=(c[gb>>2]|0)>>>0>0&1;Va=fl((c[ab>>2]|0)+1+(0-(c[gb>>2]|0))|0)|0;do{if(jb&(Va|0)==(fl((c[ab>>2]|0)+1|0)|0)|0){c[kb>>2]=(nn((c[ab>>2]|0)+1+4|0,(c[ab>>2]|0)+1+4+(0-(c[gb>>2]|0))|0,c[eb>>2]|0)|0)+4;c[ab>>2]=(c[ab>>2]|0)+1;kn(c[Sa>>2]|0,(c[ab>>2]|0)-(c[bb>>2]|0)|0,c[bb>>2]|0,0,(c[kb>>2]|0)-3|0);}else{if((c[nb>>2]|0)>>>0>(c[cb>>2]|0)>>>0?($a=fl(c[ob>>2]|0)|0,($a|0)==(fl(c[ab>>2]|0)|0)):0){c[kb>>2]=(nn((c[ab>>2]|0)+4|0,(c[ob>>2]|0)+4|0,c[eb>>2]|0)|0)+4;c[pb>>2]=(c[ab>>2]|0)-(c[ob>>2]|0);while(1){if(!(((c[ab>>2]|0)>>>0>(c[bb>>2]|0)>>>0?(c[ob>>2]|0)>>>0>(c[db>>2]|0)>>>0:0)|0))break;if((d[(c[ab>>2]|0)+-1>>0]|0|0)!=(d[(c[ob>>2]|0)+-1>>0]|0|0))break;c[ab>>2]=(c[ab>>2]|0)+-1;c[ob>>2]=(c[ob>>2]|0)+-1;c[kb>>2]=(c[kb>>2]|0)+1;}c[hb>>2]=c[gb>>2];c[gb>>2]=c[pb>>2];kn(c[Sa>>2]|0,(c[ab>>2]|0)-(c[bb>>2]|0)|0,c[bb>>2]|0,(c[pb>>2]|0)+2|0,(c[kb>>2]|0)-3|0);break;}c[ab>>2]=(c[ab>>2]|0)+(((c[ab>>2]|0)-(c[bb>>2]|0)>>8)+(c[Xa>>2]|0));continue g;}}while(0);c[ab>>2]=(c[ab>>2]|0)+(c[kb>>2]|0);c[bb>>2]=c[ab>>2];h:do{if((c[ab>>2]|0)>>>0<=(c[fb>>2]|0)>>>0){Va=(c[mb>>2]|0)+2|0;jb=c[Za>>2]|0;c[jb+((Tk((c[_a>>2]|0)+(c[mb>>2]|0)+2|0,c[Wa>>2]|0,c[Ya>>2]|0)|0)<<2)>>2]=Va;Va=(c[ab>>2]|0)+-2-(c[_a>>2]|0)|0;jb=c[Za>>2]|0;c[jb+((Tk((c[ab>>2]|0)+-2|0,c[Wa>>2]|0,c[Ya>>2]|0)|0)<<2)>>2]=Va;while(1){if((c[ab>>2]|0)>>>0>(c[fb>>2]|0)>>>0)break h;Va=(c[hb>>2]|0)>>>0>0&1;jb=fl(c[ab>>2]|0)|0;if(!(Va&(jb|0)==(fl((c[ab>>2]|0)+(0-(c[hb>>2]|0))|0)|0)))break h;c[qb>>2]=(nn((c[ab>>2]|0)+4|0,(c[ab>>2]|0)+4+(0-(c[hb>>2]|0))|0,c[eb>>2]|0)|0)+4;c[rb>>2]=c[hb>>2];c[hb>>2]=c[gb>>2];c[gb>>2]=c[rb>>2];jb=(c[ab>>2]|0)-(c[_a>>2]|0)|0;Va=c[Za>>2]|0;c[Va+((Tk(c[ab>>2]|0,c[Wa>>2]|0,c[Ya>>2]|0)|0)<<2)>>2]=jb;kn(c[Sa>>2]|0,0,c[bb>>2]|0,0,(c[qb>>2]|0)-3|0);c[ab>>2]=(c[ab>>2]|0)+(c[qb>>2]|0);c[bb>>2]=c[ab>>2];}}}while(0);}c[c[Ta>>2]>>2]=c[gb>>2]|0?c[gb>>2]|0:c[ib>>2]|0;c[(c[Ta>>2]|0)+4>>2]=c[hb>>2]|0?c[hb>>2]|0:c[ib>>2]|0;c[sb>>2]=(c[eb>>2]|0)-(c[bb>>2]|0);Cb=c[sb>>2]|0;l=i;return Cb|0;}}return 0;}function Yl(a,b,e,f,g,h){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0;i=l;l=l+624|0;j=i+620|0;k=i+616|0;m=i+612|0;n=i+608|0;o=i+604|0;p=i+600|0;q=i+596|0;r=i+592|0;s=i+588|0;t=i+584|0;u=i+580|0;v=i+576|0;w=i+572|0;x=i+568|0;z=i+564|0;A=i+560|0;B=i+556|0;C=i+552|0;D=i+548|0;E=i+544|0;F=i+540|0;G=i+536|0;H=i+532|0;I=i+528|0;J=i+524|0;K=i+520|0;L=i+516|0;M=i+512|0;N=i+508|0;O=i+504|0;P=i+500|0;Q=i+496|0;R=i+492|0;S=i+488|0;T=i+484|0;U=i+480|0;V=i+476|0;W=i+472|0;X=i+468|0;Y=i+464|0;Z=i+460|0;_=i+456|0;$=i+452|0;aa=i+448|0;ba=i+444|0;ca=i+440|0;da=i+436|0;ea=i+432|0;fa=i+428|0;ga=i+424|0;ha=i+420|0;ia=i+416|0;ja=i+412|0;ka=i+408|0;la=i+404|0;ma=i+400|0;na=i+396|0;oa=i+392|0;pa=i+388|0;qa=i+384|0;ra=i+380|0;sa=i+376|0;ta=i+372|0;ua=i+368|0;va=i+364|0;wa=i+360|0;xa=i+356|0;ya=i+352|0;za=i+348|0;Aa=i+344|0;Ba=i+340|0;Ca=i+336|0;Da=i+332|0;Ea=i+328|0;Fa=i+324|0;Ga=i+320|0;Ha=i+316|0;Ia=i+312|0;Ja=i+308|0;Ka=i+304|0;La=i+300|0;Ma=i+296|0;Na=i+292|0;Oa=i+288|0;Pa=i+284|0;Qa=i+280|0;Ra=i+276|0;Sa=i+272|0;Ta=i+268|0;Ua=i+264|0;Va=i+260|0;Wa=i+256|0;Xa=i+252|0;Ya=i+248|0;Za=i+244|0;_a=i+240|0;$a=i+236|0;ab=i+232|0;bb=i+228|0;cb=i+224|0;db=i+220|0;eb=i+216|0;fb=i+212|0;gb=i+208|0;hb=i+204|0;ib=i+200|0;jb=i+196|0;kb=i+192|0;lb=i+188|0;mb=i+184|0;nb=i+180|0;ob=i+176|0;pb=i+172|0;qb=i+168|0;rb=i+164|0;sb=i+160|0;tb=i+156|0;ub=i+152|0;vb=i+148|0;wb=i+144|0;xb=i+140|0;yb=i+136|0;zb=i+132|0;Ab=i+128|0;Bb=i+124|0;Cb=i+120|0;Db=i+116|0;Eb=i+112|0;Fb=i+108|0;Gb=i+104|0;Hb=i+100|0;Ib=i+96|0;Jb=i+92|0;Kb=i+88|0;Lb=i+84|0;Mb=i+80|0;Nb=i+76|0;Ob=i+72|0;Pb=i+68|0;Qb=i+64|0;Rb=i+60|0;Sb=i+56|0;Tb=i+52|0;Ub=i+48|0;Vb=i+44|0;Wb=i+40|0;Xb=i+36|0;Yb=i+32|0;Zb=i+28|0;_b=i+24|0;$b=i+20|0;ac=i+16|0;bc=i+12|0;cc=i+8|0;dc=i+4|0;ec=i;c[_b>>2]=a;c[$b>>2]=b;c[ac>>2]=e;c[bc>>2]=f;c[cc>>2]=g;c[dc>>2]=h;c[ec>>2]=c[(c[bc>>2]|0)+16>>2];switch(c[ec>>2]|0){case 7:{ec=c[$b>>2]|0;h=c[ac>>2]|0;g=c[bc>>2]|0;f=c[cc>>2]|0;e=c[dc>>2]|0;c[j>>2]=c[_b>>2];c[k>>2]=ec;c[m>>2]=h;c[n>>2]=g;c[o>>2]=f;c[p>>2]=e;c[q>>2]=7;c[r>>2]=c[(c[j>>2]|0)+36>>2];c[s>>2]=c[(c[n>>2]|0)+8>>2];c[t>>2]=c[(c[j>>2]|0)+44>>2];c[u>>2]=c[(c[n>>2]|0)+4>>2];c[v>>2]=c[(c[j>>2]|0)+4>>2];c[w>>2]=c[o>>2];c[x>>2]=c[w>>2];c[z>>2]=c[w>>2];c[A>>2]=c[(c[j>>2]|0)+12>>2];c[B>>2]=(c[v>>2]|0)+(c[A>>2]|0);c[C>>2]=(c[w>>2]|0)+(c[p>>2]|0);c[D>>2]=(c[C>>2]|0)+-8;c[E>>2]=c[c[m>>2]>>2];c[F>>2]=c[(c[m>>2]|0)+4>>2];c[G>>2]=0;c[x>>2]=(c[x>>2]|0)+((c[x>>2]|0)==(c[B>>2]|0)&1);c[H>>2]=(c[x>>2]|0)-(c[B>>2]|0);if((c[F>>2]|0)>>>0>(c[H>>2]|0)>>>0){c[G>>2]=c[F>>2];c[F>>2]=0;}if((c[E>>2]|0)>>>0>(c[H>>2]|0)>>>0){c[G>>2]=c[E>>2];c[E>>2]=0;}a:while(1){if((c[x>>2]|0)>>>0>=(c[D>>2]|0)>>>0)break;c[J>>2]=Dk(c[x>>2]|0,c[s>>2]|0,8)|0;c[K>>2]=Dk(c[x>>2]|0,c[u>>2]|0,c[q>>2]|0)|0;c[L>>2]=(c[x>>2]|0)-(c[v>>2]|0);c[M>>2]=c[(c[r>>2]|0)+(c[J>>2]<<2)>>2];c[N>>2]=c[(c[t>>2]|0)+(c[K>>2]<<2)>>2];c[O>>2]=(c[v>>2]|0)+(c[M>>2]|0);c[P>>2]=(c[v>>2]|0)+(c[N>>2]|0);H=c[L>>2]|0;c[(c[t>>2]|0)+(c[K>>2]<<2)>>2]=H;c[(c[r>>2]|0)+(c[J>>2]<<2)>>2]=H;H=(c[E>>2]|0)>>>0>0&1;p=Rk((c[x>>2]|0)+1+(0-(c[E>>2]|0))|0)|0;if(H&(p|0)==(Rk((c[x>>2]|0)+1|0)|0)|0){c[I>>2]=(cn((c[x>>2]|0)+1+4|0,(c[x>>2]|0)+1+4+(0-(c[E>>2]|0))|0,c[C>>2]|0)|0)+4;c[x>>2]=(c[x>>2]|0)+1;$m(c[k>>2]|0,(c[x>>2]|0)-(c[z>>2]|0)|0,c[z>>2]|0,0,(c[I>>2]|0)-3|0);}else{b:do{if((c[M>>2]|0)>>>0>(c[A>>2]|0)>>>0?(p=Mk(c[O>>2]|0)|0,H=y,w=Mk(c[x>>2]|0)|0,(p|0)==(w|0)&(H|0)==(y|0)):0){c[I>>2]=(cn((c[x>>2]|0)+8|0,(c[O>>2]|0)+8|0,c[C>>2]|0)|0)+8;c[Q>>2]=(c[x>>2]|0)-(c[O>>2]|0);while(1){if(!(((c[x>>2]|0)>>>0>(c[z>>2]|0)>>>0?(c[O>>2]|0)>>>0>(c[B>>2]|0)>>>0:0)|0))break b;if((d[(c[x>>2]|0)+-1>>0]|0|0)!=(d[(c[O>>2]|0)+-1>>0]|0|0))break b;c[x>>2]=(c[x>>2]|0)+-1;c[O>>2]=(c[O>>2]|0)+-1;c[I>>2]=(c[I>>2]|0)+1;}}else fc=121;}while(0);c:do{if((fc|0)==121){fc=0;if((c[N>>2]|0)>>>0>(c[A>>2]|0)>>>0?(H=Rk(c[P>>2]|0)|0,(H|0)==(Rk(c[x>>2]|0)|0)):0){c[R>>2]=Dk((c[x>>2]|0)+1|0,c[s>>2]|0,8)|0;c[S>>2]=c[(c[r>>2]|0)+(c[R>>2]<<2)>>2];c[T>>2]=(c[v>>2]|0)+(c[S>>2]|0);c[(c[r>>2]|0)+(c[R>>2]<<2)>>2]=(c[L>>2]|0)+1;if((c[S>>2]|0)>>>0>(c[A>>2]|0)>>>0?(H=Mk(c[T>>2]|0)|0,w=y,p=Mk((c[x>>2]|0)+1|0)|0,(H|0)==(p|0)&(w|0)==(y|0)):0){c[I>>2]=(cn((c[x>>2]|0)+9|0,(c[T>>2]|0)+8|0,c[C>>2]|0)|0)+8;c[x>>2]=(c[x>>2]|0)+1;c[Q>>2]=(c[x>>2]|0)-(c[T>>2]|0);while(1){if(!(((c[x>>2]|0)>>>0>(c[z>>2]|0)>>>0?(c[T>>2]|0)>>>0>(c[B>>2]|0)>>>0:0)|0))break c;if((d[(c[x>>2]|0)+-1>>0]|0|0)!=(d[(c[T>>2]|0)+-1>>0]|0|0))break c;c[x>>2]=(c[x>>2]|0)+-1;c[T>>2]=(c[T>>2]|0)+-1;c[I>>2]=(c[I>>2]|0)+1;}}c[I>>2]=(cn((c[x>>2]|0)+4|0,(c[P>>2]|0)+4|0,c[C>>2]|0)|0)+4;c[Q>>2]=(c[x>>2]|0)-(c[P>>2]|0);while(1){if(!(((c[x>>2]|0)>>>0>(c[z>>2]|0)>>>0?(c[P>>2]|0)>>>0>(c[B>>2]|0)>>>0:0)|0))break c;if((d[(c[x>>2]|0)+-1>>0]|0|0)!=(d[(c[P>>2]|0)+-1>>0]|0|0))break c;c[x>>2]=(c[x>>2]|0)+-1;c[P>>2]=(c[P>>2]|0)+-1;c[I>>2]=(c[I>>2]|0)+1;}}c[x>>2]=(c[x>>2]|0)+(((c[x>>2]|0)-(c[z>>2]|0)>>8)+1);continue a;}}while(0);c[F>>2]=c[E>>2];c[E>>2]=c[Q>>2];$m(c[k>>2]|0,(c[x>>2]|0)-(c[z>>2]|0)|0,c[z>>2]|0,(c[Q>>2]|0)+2|0,(c[I>>2]|0)-3|0);}c[x>>2]=(c[x>>2]|0)+(c[I>>2]|0);c[z>>2]=c[x>>2];d:do{if((c[x>>2]|0)>>>0<=(c[D>>2]|0)>>>0){w=(c[L>>2]|0)+2|0;p=c[t>>2]|0;c[p+((Dk((c[v>>2]|0)+(c[L>>2]|0)+2|0,c[u>>2]|0,c[q>>2]|0)|0)<<2)>>2]=w;p=c[r>>2]|0;c[p+((Dk((c[v>>2]|0)+(c[L>>2]|0)+2|0,c[s>>2]|0,8)|0)<<2)>>2]=w;w=(c[x>>2]|0)+-2-(c[v>>2]|0)|0;p=c[t>>2]|0;c[p+((Dk((c[x>>2]|0)+-2|0,c[u>>2]|0,c[q>>2]|0)|0)<<2)>>2]=w;p=c[r>>2]|0;c[p+((Dk((c[x>>2]|0)+-2|0,c[s>>2]|0,8)|0)<<2)>>2]=w;while(1){if((c[x>>2]|0)>>>0>(c[D>>2]|0)>>>0)break d;w=(c[F>>2]|0)>>>0>0&1;p=Rk(c[x>>2]|0)|0;if(!(w&(p|0)==(Rk((c[x>>2]|0)+(0-(c[F>>2]|0))|0)|0)))break d;c[U>>2]=(cn((c[x>>2]|0)+4|0,(c[x>>2]|0)+4+(0-(c[F>>2]|0))|0,c[C>>2]|0)|0)+4;c[V>>2]=c[F>>2];c[F>>2]=c[E>>2];c[E>>2]=c[V>>2];p=(c[x>>2]|0)-(c[v>>2]|0)|0;w=c[t>>2]|0;c[w+((Dk(c[x>>2]|0,c[u>>2]|0,c[q>>2]|0)|0)<<2)>>2]=p;p=(c[x>>2]|0)-(c[v>>2]|0)|0;w=c[r>>2]|0;c[w+((Dk(c[x>>2]|0,c[s>>2]|0,8)|0)<<2)>>2]=p;$m(c[k>>2]|0,0,c[z>>2]|0,0,(c[U>>2]|0)-3|0);c[x>>2]=(c[x>>2]|0)+(c[U>>2]|0);c[z>>2]=c[x>>2];}}}while(0);}c[c[m>>2]>>2]=c[E>>2]|0?c[E>>2]|0:c[G>>2]|0;c[(c[m>>2]|0)+4>>2]=c[F>>2]|0?c[F>>2]|0:c[G>>2]|0;c[Zb>>2]=(c[C>>2]|0)-(c[z>>2]|0);gc=c[Zb>>2]|0;l=i;return gc|0;}case 5:{z=c[$b>>2]|0;C=c[ac>>2]|0;G=c[bc>>2]|0;F=c[cc>>2]|0;m=c[dc>>2]|0;c[Fa>>2]=c[_b>>2];c[Ga>>2]=z;c[Ha>>2]=C;c[Ia>>2]=G;c[Ja>>2]=F;c[Ka>>2]=m;c[La>>2]=5;c[Ma>>2]=c[(c[Fa>>2]|0)+36>>2];c[Na>>2]=c[(c[Ia>>2]|0)+8>>2];c[Oa>>2]=c[(c[Fa>>2]|0)+44>>2];c[Pa>>2]=c[(c[Ia>>2]|0)+4>>2];c[Qa>>2]=c[(c[Fa>>2]|0)+4>>2];c[Ra>>2]=c[Ja>>2];c[Sa>>2]=c[Ra>>2];c[Ta>>2]=c[Ra>>2];c[Ua>>2]=c[(c[Fa>>2]|0)+12>>2];c[Va>>2]=(c[Qa>>2]|0)+(c[Ua>>2]|0);c[Wa>>2]=(c[Ra>>2]|0)+(c[Ka>>2]|0);c[Xa>>2]=(c[Wa>>2]|0)+-8;c[Ya>>2]=c[c[Ha>>2]>>2];c[Za>>2]=c[(c[Ha>>2]|0)+4>>2];c[_a>>2]=0;c[Sa>>2]=(c[Sa>>2]|0)+((c[Sa>>2]|0)==(c[Va>>2]|0)&1);c[$a>>2]=(c[Sa>>2]|0)-(c[Va>>2]|0);if((c[Za>>2]|0)>>>0>(c[$a>>2]|0)>>>0){c[_a>>2]=c[Za>>2];c[Za>>2]=0;}if((c[Ya>>2]|0)>>>0>(c[$a>>2]|0)>>>0){c[_a>>2]=c[Ya>>2];c[Ya>>2]=0;}e:while(1){if((c[Sa>>2]|0)>>>0>=(c[Xa>>2]|0)>>>0)break;c[bb>>2]=Dk(c[Sa>>2]|0,c[Na>>2]|0,8)|0;c[cb>>2]=Dk(c[Sa>>2]|0,c[Pa>>2]|0,c[La>>2]|0)|0;c[db>>2]=(c[Sa>>2]|0)-(c[Qa>>2]|0);c[eb>>2]=c[(c[Ma>>2]|0)+(c[bb>>2]<<2)>>2];c[fb>>2]=c[(c[Oa>>2]|0)+(c[cb>>2]<<2)>>2];c[gb>>2]=(c[Qa>>2]|0)+(c[eb>>2]|0);c[hb>>2]=(c[Qa>>2]|0)+(c[fb>>2]|0);$a=c[db>>2]|0;c[(c[Oa>>2]|0)+(c[cb>>2]<<2)>>2]=$a;c[(c[Ma>>2]|0)+(c[bb>>2]<<2)>>2]=$a;$a=(c[Ya>>2]|0)>>>0>0&1;Ka=Rk((c[Sa>>2]|0)+1+(0-(c[Ya>>2]|0))|0)|0;if($a&(Ka|0)==(Rk((c[Sa>>2]|0)+1|0)|0)|0){c[ab>>2]=(cn((c[Sa>>2]|0)+1+4|0,(c[Sa>>2]|0)+1+4+(0-(c[Ya>>2]|0))|0,c[Wa>>2]|0)|0)+4;c[Sa>>2]=(c[Sa>>2]|0)+1;$m(c[Ga>>2]|0,(c[Sa>>2]|0)-(c[Ta>>2]|0)|0,c[Ta>>2]|0,0,(c[ab>>2]|0)-3|0);}else{f:do{if((c[eb>>2]|0)>>>0>(c[Ua>>2]|0)>>>0?(Ka=Mk(c[gb>>2]|0)|0,$a=y,Ra=Mk(c[Sa>>2]|0)|0,(Ka|0)==(Ra|0)&($a|0)==(y|0)):0){c[ab>>2]=(cn((c[Sa>>2]|0)+8|0,(c[gb>>2]|0)+8|0,c[Wa>>2]|0)|0)+8;c[ib>>2]=(c[Sa>>2]|0)-(c[gb>>2]|0);while(1){if(!(((c[Sa>>2]|0)>>>0>(c[Ta>>2]|0)>>>0?(c[gb>>2]|0)>>>0>(c[Va>>2]|0)>>>0:0)|0))break f;if((d[(c[Sa>>2]|0)+-1>>0]|0|0)!=(d[(c[gb>>2]|0)+-1>>0]|0|0))break f;c[Sa>>2]=(c[Sa>>2]|0)+-1;c[gb>>2]=(c[gb>>2]|0)+-1;c[ab>>2]=(c[ab>>2]|0)+1;}}else fc=51;}while(0);g:do{if((fc|0)==51){fc=0;if((c[fb>>2]|0)>>>0>(c[Ua>>2]|0)>>>0?($a=Rk(c[hb>>2]|0)|0,($a|0)==(Rk(c[Sa>>2]|0)|0)):0){c[jb>>2]=Dk((c[Sa>>2]|0)+1|0,c[Na>>2]|0,8)|0;c[kb>>2]=c[(c[Ma>>2]|0)+(c[jb>>2]<<2)>>2];c[lb>>2]=(c[Qa>>2]|0)+(c[kb>>2]|0);c[(c[Ma>>2]|0)+(c[jb>>2]<<2)>>2]=(c[db>>2]|0)+1;if((c[kb>>2]|0)>>>0>(c[Ua>>2]|0)>>>0?($a=Mk(c[lb>>2]|0)|0,Ra=y,Ka=Mk((c[Sa>>2]|0)+1|0)|0,($a|0)==(Ka|0)&(Ra|0)==(y|0)):0){c[ab>>2]=(cn((c[Sa>>2]|0)+9|0,(c[lb>>2]|0)+8|0,c[Wa>>2]|0)|0)+8;c[Sa>>2]=(c[Sa>>2]|0)+1;c[ib>>2]=(c[Sa>>2]|0)-(c[lb>>2]|0);while(1){if(!(((c[Sa>>2]|0)>>>0>(c[Ta>>2]|0)>>>0?(c[lb>>2]|0)>>>0>(c[Va>>2]|0)>>>0:0)|0))break g;if((d[(c[Sa>>2]|0)+-1>>0]|0|0)!=(d[(c[lb>>2]|0)+-1>>0]|0|0))break g;c[Sa>>2]=(c[Sa>>2]|0)+-1;c[lb>>2]=(c[lb>>2]|0)+-1;c[ab>>2]=(c[ab>>2]|0)+1;}}c[ab>>2]=(cn((c[Sa>>2]|0)+4|0,(c[hb>>2]|0)+4|0,c[Wa>>2]|0)|0)+4;c[ib>>2]=(c[Sa>>2]|0)-(c[hb>>2]|0);while(1){if(!(((c[Sa>>2]|0)>>>0>(c[Ta>>2]|0)>>>0?(c[hb>>2]|0)>>>0>(c[Va>>2]|0)>>>0:0)|0))break g;if((d[(c[Sa>>2]|0)+-1>>0]|0|0)!=(d[(c[hb>>2]|0)+-1>>0]|0|0))break g;c[Sa>>2]=(c[Sa>>2]|0)+-1;c[hb>>2]=(c[hb>>2]|0)+-1;c[ab>>2]=(c[ab>>2]|0)+1;}}c[Sa>>2]=(c[Sa>>2]|0)+(((c[Sa>>2]|0)-(c[Ta>>2]|0)>>8)+1);continue e;}}while(0);c[Za>>2]=c[Ya>>2];c[Ya>>2]=c[ib>>2];$m(c[Ga>>2]|0,(c[Sa>>2]|0)-(c[Ta>>2]|0)|0,c[Ta>>2]|0,(c[ib>>2]|0)+2|0,(c[ab>>2]|0)-3|0);}c[Sa>>2]=(c[Sa>>2]|0)+(c[ab>>2]|0);c[Ta>>2]=c[Sa>>2];h:do{if((c[Sa>>2]|0)>>>0<=(c[Xa>>2]|0)>>>0){Ra=(c[db>>2]|0)+2|0;Ka=c[Oa>>2]|0;c[Ka+((Dk((c[Qa>>2]|0)+(c[db>>2]|0)+2|0,c[Pa>>2]|0,c[La>>2]|0)|0)<<2)>>2]=Ra;Ka=c[Ma>>2]|0;c[Ka+((Dk((c[Qa>>2]|0)+(c[db>>2]|0)+2|0,c[Na>>2]|0,8)|0)<<2)>>2]=Ra;Ra=(c[Sa>>2]|0)+-2-(c[Qa>>2]|0)|0;Ka=c[Oa>>2]|0;c[Ka+((Dk((c[Sa>>2]|0)+-2|0,c[Pa>>2]|0,c[La>>2]|0)|0)<<2)>>2]=Ra;Ka=c[Ma>>2]|0;c[Ka+((Dk((c[Sa>>2]|0)+-2|0,c[Na>>2]|0,8)|0)<<2)>>2]=Ra;while(1){if((c[Sa>>2]|0)>>>0>(c[Xa>>2]|0)>>>0)break h;Ra=(c[Za>>2]|0)>>>0>0&1;Ka=Rk(c[Sa>>2]|0)|0;if(!(Ra&(Ka|0)==(Rk((c[Sa>>2]|0)+(0-(c[Za>>2]|0))|0)|0)))break h;c[mb>>2]=(cn((c[Sa>>2]|0)+4|0,(c[Sa>>2]|0)+4+(0-(c[Za>>2]|0))|0,c[Wa>>2]|0)|0)+4;c[nb>>2]=c[Za>>2];c[Za>>2]=c[Ya>>2];c[Ya>>2]=c[nb>>2];Ka=(c[Sa>>2]|0)-(c[Qa>>2]|0)|0;Ra=c[Oa>>2]|0;c[Ra+((Dk(c[Sa>>2]|0,c[Pa>>2]|0,c[La>>2]|0)|0)<<2)>>2]=Ka;Ka=(c[Sa>>2]|0)-(c[Qa>>2]|0)|0;Ra=c[Ma>>2]|0;c[Ra+((Dk(c[Sa>>2]|0,c[Na>>2]|0,8)|0)<<2)>>2]=Ka;$m(c[Ga>>2]|0,0,c[Ta>>2]|0,0,(c[mb>>2]|0)-3|0);c[Sa>>2]=(c[Sa>>2]|0)+(c[mb>>2]|0);c[Ta>>2]=c[Sa>>2];}}}while(0);}c[c[Ha>>2]>>2]=c[Ya>>2]|0?c[Ya>>2]|0:c[_a>>2]|0;c[(c[Ha>>2]|0)+4>>2]=c[Za>>2]|0?c[Za>>2]|0:c[_a>>2]|0;c[Zb>>2]=(c[Wa>>2]|0)-(c[Ta>>2]|0);gc=c[Zb>>2]|0;l=i;return gc|0;}case 6:{Ta=c[$b>>2]|0;Wa=c[ac>>2]|0;_a=c[bc>>2]|0;Za=c[cc>>2]|0;Ha=c[dc>>2]|0;c[W>>2]=c[_b>>2];c[X>>2]=Ta;c[Y>>2]=Wa;c[Z>>2]=_a;c[_>>2]=Za;c[$>>2]=Ha;c[aa>>2]=6;c[ba>>2]=c[(c[W>>2]|0)+36>>2];c[ca>>2]=c[(c[Z>>2]|0)+8>>2];c[da>>2]=c[(c[W>>2]|0)+44>>2];c[ea>>2]=c[(c[Z>>2]|0)+4>>2];c[fa>>2]=c[(c[W>>2]|0)+4>>2];c[ga>>2]=c[_>>2];c[ha>>2]=c[ga>>2];c[ia>>2]=c[ga>>2];c[ja>>2]=c[(c[W>>2]|0)+12>>2];c[ka>>2]=(c[fa>>2]|0)+(c[ja>>2]|0);c[la>>2]=(c[ga>>2]|0)+(c[$>>2]|0);c[ma>>2]=(c[la>>2]|0)+-8;c[na>>2]=c[c[Y>>2]>>2];c[oa>>2]=c[(c[Y>>2]|0)+4>>2];c[pa>>2]=0;c[ha>>2]=(c[ha>>2]|0)+((c[ha>>2]|0)==(c[ka>>2]|0)&1);c[qa>>2]=(c[ha>>2]|0)-(c[ka>>2]|0);if((c[oa>>2]|0)>>>0>(c[qa>>2]|0)>>>0){c[pa>>2]=c[oa>>2];c[oa>>2]=0;}if((c[na>>2]|0)>>>0>(c[qa>>2]|0)>>>0){c[pa>>2]=c[na>>2];c[na>>2]=0;}i:while(1){if((c[ha>>2]|0)>>>0>=(c[ma>>2]|0)>>>0)break;c[sa>>2]=Dk(c[ha>>2]|0,c[ca>>2]|0,8)|0;c[ta>>2]=Dk(c[ha>>2]|0,c[ea>>2]|0,c[aa>>2]|0)|0;c[ua>>2]=(c[ha>>2]|0)-(c[fa>>2]|0);c[va>>2]=c[(c[ba>>2]|0)+(c[sa>>2]<<2)>>2];c[wa>>2]=c[(c[da>>2]|0)+(c[ta>>2]<<2)>>2];c[xa>>2]=(c[fa>>2]|0)+(c[va>>2]|0);c[ya>>2]=(c[fa>>2]|0)+(c[wa>>2]|0);qa=c[ua>>2]|0;c[(c[da>>2]|0)+(c[ta>>2]<<2)>>2]=qa;c[(c[ba>>2]|0)+(c[sa>>2]<<2)>>2]=qa;qa=(c[na>>2]|0)>>>0>0&1;$=Rk((c[ha>>2]|0)+1+(0-(c[na>>2]|0))|0)|0;if(qa&($|0)==(Rk((c[ha>>2]|0)+1|0)|0)|0){c[ra>>2]=(cn((c[ha>>2]|0)+1+4|0,(c[ha>>2]|0)+1+4+(0-(c[na>>2]|0))|0,c[la>>2]|0)|0)+4;c[ha>>2]=(c[ha>>2]|0)+1;$m(c[X>>2]|0,(c[ha>>2]|0)-(c[ia>>2]|0)|0,c[ia>>2]|0,0,(c[ra>>2]|0)-3|0);}else{j:do{if((c[va>>2]|0)>>>0>(c[ja>>2]|0)>>>0?($=Mk(c[xa>>2]|0)|0,qa=y,ga=Mk(c[ha>>2]|0)|0,($|0)==(ga|0)&(qa|0)==(y|0)):0){c[ra>>2]=(cn((c[ha>>2]|0)+8|0,(c[xa>>2]|0)+8|0,c[la>>2]|0)|0)+8;c[za>>2]=(c[ha>>2]|0)-(c[xa>>2]|0);while(1){if(!(((c[ha>>2]|0)>>>0>(c[ia>>2]|0)>>>0?(c[xa>>2]|0)>>>0>(c[ka>>2]|0)>>>0:0)|0))break j;if((d[(c[ha>>2]|0)+-1>>0]|0|0)!=(d[(c[xa>>2]|0)+-1>>0]|0|0))break j;c[ha>>2]=(c[ha>>2]|0)+-1;c[xa>>2]=(c[xa>>2]|0)+-1;c[ra>>2]=(c[ra>>2]|0)+1;}}else fc=86;}while(0);k:do{if((fc|0)==86){fc=0;if((c[wa>>2]|0)>>>0>(c[ja>>2]|0)>>>0?(qa=Rk(c[ya>>2]|0)|0,(qa|0)==(Rk(c[ha>>2]|0)|0)):0){c[Aa>>2]=Dk((c[ha>>2]|0)+1|0,c[ca>>2]|0,8)|0;c[Ba>>2]=c[(c[ba>>2]|0)+(c[Aa>>2]<<2)>>2];c[Ca>>2]=(c[fa>>2]|0)+(c[Ba>>2]|0);c[(c[ba>>2]|0)+(c[Aa>>2]<<2)>>2]=(c[ua>>2]|0)+1;if((c[Ba>>2]|0)>>>0>(c[ja>>2]|0)>>>0?(qa=Mk(c[Ca>>2]|0)|0,ga=y,$=Mk((c[ha>>2]|0)+1|0)|0,(qa|0)==($|0)&(ga|0)==(y|0)):0){c[ra>>2]=(cn((c[ha>>2]|0)+9|0,(c[Ca>>2]|0)+8|0,c[la>>2]|0)|0)+8;c[ha>>2]=(c[ha>>2]|0)+1;c[za>>2]=(c[ha>>2]|0)-(c[Ca>>2]|0);while(1){if(!(((c[ha>>2]|0)>>>0>(c[ia>>2]|0)>>>0?(c[Ca>>2]|0)>>>0>(c[ka>>2]|0)>>>0:0)|0))break k;if((d[(c[ha>>2]|0)+-1>>0]|0|0)!=(d[(c[Ca>>2]|0)+-1>>0]|0|0))break k;c[ha>>2]=(c[ha>>2]|0)+-1;c[Ca>>2]=(c[Ca>>2]|0)+-1;c[ra>>2]=(c[ra>>2]|0)+1;}}c[ra>>2]=(cn((c[ha>>2]|0)+4|0,(c[ya>>2]|0)+4|0,c[la>>2]|0)|0)+4;c[za>>2]=(c[ha>>2]|0)-(c[ya>>2]|0);while(1){if(!(((c[ha>>2]|0)>>>0>(c[ia>>2]|0)>>>0?(c[ya>>2]|0)>>>0>(c[ka>>2]|0)>>>0:0)|0))break k;if((d[(c[ha>>2]|0)+-1>>0]|0|0)!=(d[(c[ya>>2]|0)+-1>>0]|0|0))break k;c[ha>>2]=(c[ha>>2]|0)+-1;c[ya>>2]=(c[ya>>2]|0)+-1;c[ra>>2]=(c[ra>>2]|0)+1;}}c[ha>>2]=(c[ha>>2]|0)+(((c[ha>>2]|0)-(c[ia>>2]|0)>>8)+1);continue i;}}while(0);c[oa>>2]=c[na>>2];c[na>>2]=c[za>>2];$m(c[X>>2]|0,(c[ha>>2]|0)-(c[ia>>2]|0)|0,c[ia>>2]|0,(c[za>>2]|0)+2|0,(c[ra>>2]|0)-3|0);}c[ha>>2]=(c[ha>>2]|0)+(c[ra>>2]|0);c[ia>>2]=c[ha>>2];l:do{if((c[ha>>2]|0)>>>0<=(c[ma>>2]|0)>>>0){ga=(c[ua>>2]|0)+2|0;$=c[da>>2]|0;c[$+((Dk((c[fa>>2]|0)+(c[ua>>2]|0)+2|0,c[ea>>2]|0,c[aa>>2]|0)|0)<<2)>>2]=ga;$=c[ba>>2]|0;c[$+((Dk((c[fa>>2]|0)+(c[ua>>2]|0)+2|0,c[ca>>2]|0,8)|0)<<2)>>2]=ga;ga=(c[ha>>2]|0)+-2-(c[fa>>2]|0)|0;$=c[da>>2]|0;c[$+((Dk((c[ha>>2]|0)+-2|0,c[ea>>2]|0,c[aa>>2]|0)|0)<<2)>>2]=ga;$=c[ba>>2]|0;c[$+((Dk((c[ha>>2]|0)+-2|0,c[ca>>2]|0,8)|0)<<2)>>2]=ga;while(1){if((c[ha>>2]|0)>>>0>(c[ma>>2]|0)>>>0)break l;ga=(c[oa>>2]|0)>>>0>0&1;$=Rk(c[ha>>2]|0)|0;if(!(ga&($|0)==(Rk((c[ha>>2]|0)+(0-(c[oa>>2]|0))|0)|0)))break l;c[Da>>2]=(cn((c[ha>>2]|0)+4|0,(c[ha>>2]|0)+4+(0-(c[oa>>2]|0))|0,c[la>>2]|0)|0)+4;c[Ea>>2]=c[oa>>2];c[oa>>2]=c[na>>2];c[na>>2]=c[Ea>>2];$=(c[ha>>2]|0)-(c[fa>>2]|0)|0;ga=c[da>>2]|0;c[ga+((Dk(c[ha>>2]|0,c[ea>>2]|0,c[aa>>2]|0)|0)<<2)>>2]=$;$=(c[ha>>2]|0)-(c[fa>>2]|0)|0;ga=c[ba>>2]|0;c[ga+((Dk(c[ha>>2]|0,c[ca>>2]|0,8)|0)<<2)>>2]=$;$m(c[X>>2]|0,0,c[ia>>2]|0,0,(c[Da>>2]|0)-3|0);c[ha>>2]=(c[ha>>2]|0)+(c[Da>>2]|0);c[ia>>2]=c[ha>>2];}}}while(0);}c[c[Y>>2]>>2]=c[na>>2]|0?c[na>>2]|0:c[pa>>2]|0;c[(c[Y>>2]|0)+4>>2]=c[oa>>2]|0?c[oa>>2]|0:c[pa>>2]|0;c[Zb>>2]=(c[la>>2]|0)-(c[ia>>2]|0);gc=c[Zb>>2]|0;l=i;return gc|0;}default:{ia=c[$b>>2]|0;$b=c[ac>>2]|0;ac=c[bc>>2]|0;bc=c[cc>>2]|0;cc=c[dc>>2]|0;c[ob>>2]=c[_b>>2];c[pb>>2]=ia;c[qb>>2]=$b;c[rb>>2]=ac;c[sb>>2]=bc;c[tb>>2]=cc;c[ub>>2]=4;c[vb>>2]=c[(c[ob>>2]|0)+36>>2];c[wb>>2]=c[(c[rb>>2]|0)+8>>2];c[xb>>2]=c[(c[ob>>2]|0)+44>>2];c[yb>>2]=c[(c[rb>>2]|0)+4>>2];c[zb>>2]=c[(c[ob>>2]|0)+4>>2];c[Ab>>2]=c[sb>>2];c[Bb>>2]=c[Ab>>2];c[Cb>>2]=c[Ab>>2];c[Db>>2]=c[(c[ob>>2]|0)+12>>2];c[Eb>>2]=(c[zb>>2]|0)+(c[Db>>2]|0);c[Fb>>2]=(c[Ab>>2]|0)+(c[tb>>2]|0);c[Gb>>2]=(c[Fb>>2]|0)+-8;c[Hb>>2]=c[c[qb>>2]>>2];c[Ib>>2]=c[(c[qb>>2]|0)+4>>2];c[Jb>>2]=0;c[Bb>>2]=(c[Bb>>2]|0)+((c[Bb>>2]|0)==(c[Eb>>2]|0)&1);c[Kb>>2]=(c[Bb>>2]|0)-(c[Eb>>2]|0);if((c[Ib>>2]|0)>>>0>(c[Kb>>2]|0)>>>0){c[Jb>>2]=c[Ib>>2];c[Ib>>2]=0;}if((c[Hb>>2]|0)>>>0>(c[Kb>>2]|0)>>>0){c[Jb>>2]=c[Hb>>2];c[Hb>>2]=0;}m:while(1){if((c[Bb>>2]|0)>>>0>=(c[Gb>>2]|0)>>>0)break;c[Mb>>2]=Dk(c[Bb>>2]|0,c[wb>>2]|0,8)|0;c[Nb>>2]=Dk(c[Bb>>2]|0,c[yb>>2]|0,c[ub>>2]|0)|0;c[Ob>>2]=(c[Bb>>2]|0)-(c[zb>>2]|0);c[Pb>>2]=c[(c[vb>>2]|0)+(c[Mb>>2]<<2)>>2];c[Qb>>2]=c[(c[xb>>2]|0)+(c[Nb>>2]<<2)>>2];c[Rb>>2]=(c[zb>>2]|0)+(c[Pb>>2]|0);c[Sb>>2]=(c[zb>>2]|0)+(c[Qb>>2]|0);Kb=c[Ob>>2]|0;c[(c[xb>>2]|0)+(c[Nb>>2]<<2)>>2]=Kb;c[(c[vb>>2]|0)+(c[Mb>>2]<<2)>>2]=Kb;Kb=(c[Hb>>2]|0)>>>0>0&1;tb=Rk((c[Bb>>2]|0)+1+(0-(c[Hb>>2]|0))|0)|0;if(Kb&(tb|0)==(Rk((c[Bb>>2]|0)+1|0)|0)|0){c[Lb>>2]=(cn((c[Bb>>2]|0)+1+4|0,(c[Bb>>2]|0)+1+4+(0-(c[Hb>>2]|0))|0,c[Fb>>2]|0)|0)+4;c[Bb>>2]=(c[Bb>>2]|0)+1;$m(c[pb>>2]|0,(c[Bb>>2]|0)-(c[Cb>>2]|0)|0,c[Cb>>2]|0,0,(c[Lb>>2]|0)-3|0);}else{n:do{if((c[Pb>>2]|0)>>>0>(c[Db>>2]|0)>>>0?(tb=Mk(c[Rb>>2]|0)|0,Kb=y,Ab=Mk(c[Bb>>2]|0)|0,(tb|0)==(Ab|0)&(Kb|0)==(y|0)):0){c[Lb>>2]=(cn((c[Bb>>2]|0)+8|0,(c[Rb>>2]|0)+8|0,c[Fb>>2]|0)|0)+8;c[Tb>>2]=(c[Bb>>2]|0)-(c[Rb>>2]|0);while(1){if(!(((c[Bb>>2]|0)>>>0>(c[Cb>>2]|0)>>>0?(c[Rb>>2]|0)>>>0>(c[Eb>>2]|0)>>>0:0)|0))break n;if((d[(c[Bb>>2]|0)+-1>>0]|0|0)!=(d[(c[Rb>>2]|0)+-1>>0]|0|0))break n;c[Bb>>2]=(c[Bb>>2]|0)+-1;c[Rb>>2]=(c[Rb>>2]|0)+-1;c[Lb>>2]=(c[Lb>>2]|0)+1;}}else fc=16;}while(0);o:do{if((fc|0)==16){fc=0;if((c[Qb>>2]|0)>>>0>(c[Db>>2]|0)>>>0?(Kb=Rk(c[Sb>>2]|0)|0,(Kb|0)==(Rk(c[Bb>>2]|0)|0)):0){c[Ub>>2]=Dk((c[Bb>>2]|0)+1|0,c[wb>>2]|0,8)|0;c[Vb>>2]=c[(c[vb>>2]|0)+(c[Ub>>2]<<2)>>2];c[Wb>>2]=(c[zb>>2]|0)+(c[Vb>>2]|0);c[(c[vb>>2]|0)+(c[Ub>>2]<<2)>>2]=(c[Ob>>2]|0)+1;if((c[Vb>>2]|0)>>>0>(c[Db>>2]|0)>>>0?(Kb=Mk(c[Wb>>2]|0)|0,Ab=y,tb=Mk((c[Bb>>2]|0)+1|0)|0,(Kb|0)==(tb|0)&(Ab|0)==(y|0)):0){c[Lb>>2]=(cn((c[Bb>>2]|0)+9|0,(c[Wb>>2]|0)+8|0,c[Fb>>2]|0)|0)+8;c[Bb>>2]=(c[Bb>>2]|0)+1;c[Tb>>2]=(c[Bb>>2]|0)-(c[Wb>>2]|0);while(1){if(!(((c[Bb>>2]|0)>>>0>(c[Cb>>2]|0)>>>0?(c[Wb>>2]|0)>>>0>(c[Eb>>2]|0)>>>0:0)|0))break o;if((d[(c[Bb>>2]|0)+-1>>0]|0|0)!=(d[(c[Wb>>2]|0)+-1>>0]|0|0))break o;c[Bb>>2]=(c[Bb>>2]|0)+-1;c[Wb>>2]=(c[Wb>>2]|0)+-1;c[Lb>>2]=(c[Lb>>2]|0)+1;}}c[Lb>>2]=(cn((c[Bb>>2]|0)+4|0,(c[Sb>>2]|0)+4|0,c[Fb>>2]|0)|0)+4;c[Tb>>2]=(c[Bb>>2]|0)-(c[Sb>>2]|0);while(1){if(!(((c[Bb>>2]|0)>>>0>(c[Cb>>2]|0)>>>0?(c[Sb>>2]|0)>>>0>(c[Eb>>2]|0)>>>0:0)|0))break o;if((d[(c[Bb>>2]|0)+-1>>0]|0|0)!=(d[(c[Sb>>2]|0)+-1>>0]|0|0))break o;c[Bb>>2]=(c[Bb>>2]|0)+-1;c[Sb>>2]=(c[Sb>>2]|0)+-1;c[Lb>>2]=(c[Lb>>2]|0)+1;}}c[Bb>>2]=(c[Bb>>2]|0)+(((c[Bb>>2]|0)-(c[Cb>>2]|0)>>8)+1);continue m;}}while(0);c[Ib>>2]=c[Hb>>2];c[Hb>>2]=c[Tb>>2];$m(c[pb>>2]|0,(c[Bb>>2]|0)-(c[Cb>>2]|0)|0,c[Cb>>2]|0,(c[Tb>>2]|0)+2|0,(c[Lb>>2]|0)-3|0);}c[Bb>>2]=(c[Bb>>2]|0)+(c[Lb>>2]|0);c[Cb>>2]=c[Bb>>2];p:do{if((c[Bb>>2]|0)>>>0<=(c[Gb>>2]|0)>>>0){Ab=(c[Ob>>2]|0)+2|0;tb=c[xb>>2]|0;c[tb+((Dk((c[zb>>2]|0)+(c[Ob>>2]|0)+2|0,c[yb>>2]|0,c[ub>>2]|0)|0)<<2)>>2]=Ab;tb=c[vb>>2]|0;c[tb+((Dk((c[zb>>2]|0)+(c[Ob>>2]|0)+2|0,c[wb>>2]|0,8)|0)<<2)>>2]=Ab;Ab=(c[Bb>>2]|0)+-2-(c[zb>>2]|0)|0;tb=c[xb>>2]|0;c[tb+((Dk((c[Bb>>2]|0)+-2|0,c[yb>>2]|0,c[ub>>2]|0)|0)<<2)>>2]=Ab;tb=c[vb>>2]|0;c[tb+((Dk((c[Bb>>2]|0)+-2|0,c[wb>>2]|0,8)|0)<<2)>>2]=Ab;while(1){if((c[Bb>>2]|0)>>>0>(c[Gb>>2]|0)>>>0)break p;Ab=(c[Ib>>2]|0)>>>0>0&1;tb=Rk(c[Bb>>2]|0)|0;if(!(Ab&(tb|0)==(Rk((c[Bb>>2]|0)+(0-(c[Ib>>2]|0))|0)|0)))break p;c[Xb>>2]=(cn((c[Bb>>2]|0)+4|0,(c[Bb>>2]|0)+4+(0-(c[Ib>>2]|0))|0,c[Fb>>2]|0)|0)+4;c[Yb>>2]=c[Ib>>2];c[Ib>>2]=c[Hb>>2];c[Hb>>2]=c[Yb>>2];tb=(c[Bb>>2]|0)-(c[zb>>2]|0)|0;Ab=c[xb>>2]|0;c[Ab+((Dk(c[Bb>>2]|0,c[yb>>2]|0,c[ub>>2]|0)|0)<<2)>>2]=tb;tb=(c[Bb>>2]|0)-(c[zb>>2]|0)|0;Ab=c[vb>>2]|0;c[Ab+((Dk(c[Bb>>2]|0,c[wb>>2]|0,8)|0)<<2)>>2]=tb;$m(c[pb>>2]|0,0,c[Cb>>2]|0,0,(c[Xb>>2]|0)-3|0);c[Bb>>2]=(c[Bb>>2]|0)+(c[Xb>>2]|0);c[Cb>>2]=c[Bb>>2];}}}while(0);}c[c[qb>>2]>>2]=c[Hb>>2]|0?c[Hb>>2]|0:c[Jb>>2]|0;c[(c[qb>>2]|0)+4>>2]=c[Ib>>2]|0?c[Ib>>2]|0:c[Jb>>2]|0;c[Zb>>2]=(c[Fb>>2]|0)-(c[Cb>>2]|0);gc=c[Zb>>2]|0;l=i;return gc|0;}}return 0;}function jm(a,b,e,f,g,h){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,yc=0,zc=0,Ac=0,Bc=0,Cc=0,Dc=0,Ec=0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0,Kc=0,Lc=0,Mc=0,Nc=0,Oc=0,Pc=0,Qc=0,Rc=0,Sc=0,Tc=0,Uc=0,Vc=0,Wc=0,Xc=0,Yc=0,Zc=0,_c=0,$c=0,ad=0,bd=0,cd=0,dd=0,ed=0,fd=0,gd=0,hd=0,id=0,jd=0,kd=0,ld=0,md=0,nd=0,od=0,pd=0,qd=0,rd=0,sd=0,td=0,ud=0,vd=0,wd=0,xd=0,yd=0,zd=0,Ad=0,Bd=0,Cd=0,Dd=0,Ed=0,Fd=0,Gd=0,Hd=0,Id=0,Jd=0,Kd=0,Ld=0,Md=0,Nd=0,Od=0,Pd=0,Qd=0,Rd=0,Sd=0,Td=0,Ud=0,Vd=0,Wd=0,Xd=0,Yd=0,Zd=0,_d=0,$d=0,ae=0,be=0,ce=0,de=0,ee=0,fe=0,ge=0,he=0,ie=0,je=0,ke=0,le=0,me=0,ne=0,oe=0,pe=0,qe=0,re=0,se=0,te=0,ue=0,ve=0,we=0,xe=0,ye=0,ze=0,Ae=0,Be=0,Ce=0,De=0,Ee=0,Fe=0,Ge=0,He=0,Ie=0,Je=0,Ke=0,Le=0,Me=0,Ne=0,Oe=0,Pe=0,Qe=0,Re=0,Se=0,Te=0,Ue=0,Ve=0,We=0,Xe=0,Ye=0,Ze=0,_e=0,$e=0,af=0,bf=0,cf=0,df=0,ef=0,ff=0,gf=0,hf=0,jf=0,kf=0,lf=0,mf=0,nf=0,of=0,pf=0,qf=0,rf=0,sf=0,tf=0,uf=0,vf=0,wf=0,xf=0,yf=0,zf=0,Af=0,Bf=0,Cf=0,Df=0,Ef=0,Ff=0,Gf=0,Hf=0,If=0,Jf=0,Kf=0,Lf=0,Mf=0,Nf=0,Of=0,Pf=0,Qf=0,Rf=0,Sf=0,Tf=0,Uf=0,Vf=0,Wf=0,Xf=0,Yf=0,Zf=0,_f=0,$f=0,ag=0,bg=0,cg=0,dg=0,eg=0,fg=0,gg=0,hg=0,ig=0,jg=0,kg=0,lg=0,mg=0,ng=0,og=0,pg=0,qg=0,rg=0,sg=0,tg=0,ug=0,vg=0,wg=0,xg=0,yg=0,zg=0,Ag=0,Bg=0,Cg=0,Dg=0,Eg=0,Fg=0,Gg=0,Hg=0,Ig=0,Jg=0,Kg=0,Lg=0,Mg=0,Ng=0,Og=0,Pg=0,Qg=0,Rg=0,Sg=0,Tg=0,Ug=0,Vg=0,Wg=0,Xg=0,Yg=0,Zg=0,_g=0,$g=0,ah=0,bh=0,ch=0,dh=0,eh=0,fh=0,gh=0,hh=0,ih=0,jh=0,kh=0,lh=0,mh=0,nh=0,oh=0,ph=0,qh=0,rh=0,sh=0,th=0,uh=0,vh=0,wh=0,xh=0,yh=0,zh=0,Ah=0,Bh=0,Ch=0,Dh=0,Eh=0,Fh=0,Gh=0,Hh=0,Ih=0,Jh=0,Kh=0,Lh=0,Mh=0,Nh=0,Oh=0,Ph=0,Qh=0,Rh=0,Sh=0,Th=0,Uh=0,Vh=0,Wh=0,Xh=0,Yh=0,Zh=0,_h=0,$h=0,ai=0,bi=0,ci=0,di=0,ei=0,fi=0,gi=0,hi=0,ii=0,ji=0,ki=0,li=0,mi=0,ni=0,oi=0,pi=0,qi=0,ri=0,si=0,ti=0,ui=0,vi=0,wi=0,xi=0,yi=0,zi=0,Ai=0,Bi=0,Ci=0,Di=0,Ei=0,Fi=0,Gi=0,Hi=0,Ii=0,Ji=0,Ki=0,Li=0,Mi=0,Ni=0,Oi=0,Pi=0,Qi=0,Ri=0,Si=0,Ti=0,Ui=0,Vi=0,Wi=0,Xi=0,Yi=0,Zi=0,_i=0,$i=0,aj=0,bj=0,cj=0,dj=0,ej=0,fj=0,gj=0,hj=0,ij=0,jj=0,kj=0,lj=0,mj=0,nj=0,oj=0,pj=0,qj=0,rj=0,sj=0,tj=0,uj=0,vj=0,wj=0,xj=0,yj=0,zj=0,Aj=0,Bj=0,Cj=0,Dj=0,Ej=0;i=l;l=l+2144|0;j=i+2136|0;k=i+2132|0;m=i+2128|0;n=i+2124|0;o=i+2120|0;p=i+2116|0;q=i+2112|0;r=i+2108|0;s=i+2104|0;t=i+2100|0;u=i+2096|0;v=i+2092|0;w=i+2088|0;x=i+2084|0;y=i+2080|0;z=i+2076|0;A=i+2072|0;B=i+2068|0;C=i+2064|0;D=i+2060|0;E=i+2056|0;F=i+2052|0;G=i+2048|0;H=i+2044|0;I=i+2040|0;J=i+2036|0;K=i+2032|0;L=i+2028|0;M=i+2024|0;N=i+2020|0;O=i+2016|0;P=i+2012|0;Q=i+2008|0;R=i+2004|0;S=i+2e3|0;T=i+1996|0;U=i+1992|0;V=i+1988|0;W=i+1984|0;X=i+1980|0;Y=i+1976|0;Z=i+1972|0;_=i+1968|0;$=i+1964|0;aa=i+1960|0;ba=i+1956|0;ca=i+1952|0;da=i+1948|0;ea=i+1944|0;fa=i+1940|0;ga=i+1936|0;ha=i+1932|0;ia=i+1928|0;ja=i+1924|0;ka=i+1920|0;la=i+1916|0;ma=i+1912|0;na=i+1908|0;oa=i+1904|0;pa=i+1900|0;qa=i+1896|0;ra=i+1892|0;sa=i+1888|0;ta=i+1884|0;ua=i+1880|0;va=i+1876|0;wa=i+1872|0;xa=i+1868|0;ya=i+1864|0;za=i+1860|0;Aa=i+1856|0;Ba=i+1852|0;Ca=i+1848|0;Da=i+1844|0;Ea=i+1840|0;Fa=i+1836|0;Ga=i+1832|0;Ha=i+1828|0;Ia=i+1824|0;Ja=i+1820|0;Ka=i+1816|0;La=i+1812|0;Ma=i+1808|0;Na=i+1804|0;Oa=i+1800|0;Pa=i+1796|0;Qa=i+1792|0;Ra=i+1788|0;Sa=i+1784|0;Ta=i+1780|0;Ua=i+1776|0;Va=i+1772|0;Wa=i+1768|0;Xa=i+1764|0;Ya=i+1760|0;Za=i+1756|0;_a=i+1752|0;$a=i+1748|0;ab=i+1744|0;bb=i+1740|0;cb=i+1736|0;db=i+1732|0;eb=i+1728|0;fb=i+1724|0;gb=i+1720|0;hb=i+1716|0;ib=i+1712|0;jb=i+1708|0;kb=i+1704|0;lb=i+1700|0;mb=i+1696|0;nb=i+1692|0;ob=i+1688|0;pb=i+1684|0;qb=i+1680|0;rb=i+1676|0;sb=i+1672|0;tb=i+1668|0;ub=i+1664|0;vb=i+1660|0;wb=i+1656|0;xb=i+1652|0;yb=i+1648|0;zb=i+1644|0;Ab=i+1640|0;Bb=i+1636|0;Cb=i+1632|0;Db=i+1628|0;Eb=i+1624|0;Fb=i+1620|0;Gb=i+1616|0;Hb=i+1612|0;Ib=i+1608|0;Jb=i+1604|0;Kb=i+1600|0;Lb=i+1596|0;Mb=i+1592|0;Nb=i+1588|0;Ob=i+1584|0;Pb=i+1580|0;Qb=i+1576|0;Rb=i+1572|0;Sb=i+1568|0;Tb=i+1564|0;Ub=i+1560|0;Vb=i+1556|0;Wb=i+1552|0;Xb=i+1548|0;Yb=i+1544|0;Zb=i+1540|0;_b=i+1536|0;$b=i+1532|0;ac=i+1528|0;bc=i+1524|0;cc=i+1520|0;dc=i+1516|0;ec=i+1512|0;fc=i+1508|0;gc=i+1504|0;hc=i+1500|0;ic=i+1496|0;jc=i+1492|0;kc=i+1488|0;lc=i+1484|0;mc=i+1480|0;nc=i+1476|0;oc=i+1472|0;pc=i+1468|0;qc=i+1464|0;rc=i+1460|0;sc=i+1456|0;tc=i+1452|0;uc=i+1448|0;vc=i+1444|0;wc=i+1440|0;xc=i+1436|0;yc=i+1432|0;zc=i+1428|0;Ac=i+1424|0;Bc=i+1420|0;Cc=i+1416|0;Dc=i+1412|0;Ec=i+1408|0;Fc=i+1404|0;Gc=i+1400|0;Hc=i+1396|0;Ic=i+1392|0;Jc=i+1388|0;Kc=i+1384|0;Lc=i+1380|0;Mc=i+1376|0;Nc=i+1372|0;Oc=i+1368|0;Pc=i+1364|0;Qc=i+1360|0;Rc=i+1356|0;Sc=i+1352|0;Tc=i+1348|0;Uc=i+1344|0;Vc=i+1340|0;Wc=i+1336|0;Xc=i+1332|0;Yc=i+1328|0;Zc=i+1324|0;_c=i+1320|0;$c=i+1316|0;ad=i+1312|0;bd=i+1308|0;cd=i+1304|0;dd=i+1300|0;ed=i+1296|0;fd=i+1292|0;gd=i+1288|0;hd=i+1284|0;id=i+1280|0;jd=i+1276|0;kd=i+1272|0;ld=i+1268|0;md=i+1264|0;nd=i+1260|0;od=i+1256|0;pd=i+1252|0;qd=i+1248|0;rd=i+1244|0;sd=i+1240|0;td=i+1236|0;ud=i+1232|0;vd=i+1228|0;wd=i+1224|0;xd=i+1220|0;yd=i+1216|0;zd=i+1212|0;Ad=i+1208|0;Bd=i+1204|0;Cd=i+1200|0;Dd=i+1196|0;Ed=i+1192|0;Fd=i+1188|0;Gd=i+1184|0;Hd=i+1180|0;Id=i+1176|0;Jd=i+1172|0;Kd=i+1168|0;Ld=i+1164|0;Md=i+1160|0;Nd=i+1156|0;Od=i+1152|0;Pd=i+1148|0;Qd=i+1144|0;Rd=i+1140|0;Sd=i+1136|0;Td=i+1132|0;Ud=i+1128|0;Vd=i+1124|0;Wd=i+1120|0;Xd=i+1116|0;Yd=i+1112|0;Zd=i+1108|0;_d=i+1104|0;$d=i+1100|0;ae=i+1096|0;be=i+1092|0;ce=i+1088|0;de=i+1084|0;ee=i+1080|0;fe=i+1076|0;ge=i+1072|0;he=i+1068|0;ie=i+1064|0;je=i+1060|0;ke=i+1056|0;le=i+1052|0;me=i+1048|0;ne=i+1044|0;oe=i+1040|0;pe=i+1036|0;qe=i+1032|0;re=i+1028|0;se=i+1024|0;te=i+1020|0;ue=i+1016|0;ve=i+1012|0;we=i+1008|0;xe=i+1004|0;ye=i+1e3|0;ze=i+996|0;Ae=i+992|0;Be=i+988|0;Ce=i+984|0;De=i+980|0;Ee=i+976|0;Fe=i+972|0;Ge=i+968|0;He=i+964|0;Ie=i+960|0;Je=i+956|0;Ke=i+952|0;Le=i+948|0;Me=i+944|0;Ne=i+940|0;Oe=i+936|0;Pe=i+932|0;Qe=i+928|0;Re=i+924|0;Se=i+920|0;Te=i+916|0;Ue=i+912|0;Ve=i+908|0;We=i+904|0;Xe=i+900|0;Ye=i+896|0;Ze=i+892|0;_e=i+888|0;$e=i+884|0;af=i+880|0;bf=i+876|0;cf=i+872|0;df=i+868|0;ef=i+864|0;ff=i+860|0;gf=i+856|0;hf=i+852|0;jf=i+848|0;kf=i+844|0;lf=i+840|0;mf=i+836|0;nf=i+832|0;of=i+828|0;pf=i+824|0;qf=i+820|0;rf=i+816|0;sf=i+812|0;tf=i+808|0;uf=i+804|0;vf=i+800|0;wf=i+796|0;xf=i+792|0;yf=i+788|0;zf=i+784|0;Af=i+780|0;Bf=i+776|0;Cf=i+772|0;Df=i+768|0;Ef=i+764|0;Ff=i+760|0;Gf=i+756|0;Hf=i+752|0;If=i+748|0;Jf=i+744|0;Kf=i+740|0;Lf=i+736|0;Mf=i+732|0;Nf=i+728|0;Of=i+724|0;Pf=i+720|0;Qf=i+716|0;Rf=i+712|0;Sf=i+708|0;Tf=i+704|0;Uf=i+700|0;Vf=i+696|0;Wf=i+692|0;Xf=i+688|0;Yf=i+684|0;Zf=i+680|0;_f=i+676|0;$f=i+672|0;ag=i+668|0;bg=i+664|0;cg=i+660|0;dg=i+656|0;eg=i+652|0;fg=i+648|0;gg=i+644|0;hg=i+640|0;ig=i+636|0;jg=i+632|0;kg=i+628|0;lg=i+624|0;mg=i+620|0;ng=i+616|0;og=i+612|0;pg=i+608|0;qg=i+604|0;rg=i+600|0;sg=i+596|0;tg=i+592|0;ug=i+588|0;vg=i+584|0;wg=i+580|0;xg=i+576|0;yg=i+572|0;zg=i+568|0;Ag=i+564|0;Bg=i+560|0;Cg=i+556|0;Dg=i+552|0;Eg=i+548|0;Fg=i+544|0;Gg=i+540|0;Hg=i+536|0;Ig=i+532|0;Jg=i+528|0;Kg=i+524|0;Lg=i+520|0;Mg=i+516|0;Ng=i+512|0;Og=i+508|0;Pg=i+504|0;Qg=i+500|0;Rg=i+496|0;Sg=i+492|0;Tg=i+488|0;Ug=i+484|0;Vg=i+480|0;Wg=i+476|0;Xg=i+472|0;Yg=i+468|0;Zg=i+464|0;_g=i+460|0;$g=i+456|0;ah=i+452|0;bh=i+448|0;ch=i+444|0;dh=i+440|0;eh=i+436|0;fh=i+432|0;gh=i+428|0;hh=i+424|0;ih=i+420|0;jh=i+416|0;kh=i+412|0;lh=i+408|0;mh=i+404|0;nh=i+400|0;oh=i+396|0;ph=i+392|0;qh=i+388|0;rh=i+384|0;sh=i+380|0;th=i+376|0;uh=i+372|0;vh=i+368|0;wh=i+364|0;xh=i+360|0;yh=i+356|0;zh=i+352|0;Ah=i+348|0;Bh=i+344|0;Ch=i+340|0;Dh=i+336|0;Eh=i+332|0;Fh=i+328|0;Gh=i+324|0;Hh=i+320|0;Ih=i+316|0;Jh=i+312|0;Kh=i+308|0;Lh=i+304|0;Mh=i+300|0;Nh=i+296|0;Oh=i+292|0;Ph=i+288|0;Qh=i+284|0;Rh=i+280|0;Sh=i+276|0;Th=i+272|0;Uh=i+268|0;Vh=i+264|0;Wh=i+260|0;Xh=i+256|0;Yh=i+252|0;Zh=i+248|0;_h=i+244|0;$h=i+240|0;ai=i+236|0;bi=i+232|0;ci=i+228|0;di=i+216|0;ei=i+212|0;fi=i+208|0;gi=i+204|0;hi=i+200|0;ii=i+196|0;ji=i+192|0;ki=i+188|0;li=i+184|0;mi=i+180|0;ni=i+176|0;oi=i+172|0;pi=i+168|0;qi=i+164|0;ri=i+160|0;si=i+148|0;ti=i+144|0;ui=i+140|0;vi=i+136|0;wi=i+132|0;xi=i+128|0;yi=i+124|0;zi=i+120|0;Ai=i+116|0;Bi=i+112|0;Ci=i+108|0;Di=i+104|0;Ei=i+100|0;Fi=i+88|0;Gi=i+84|0;Hi=i+80|0;Ii=i+76|0;Ji=i+72|0;Ki=i+68|0;Li=i+64|0;Mi=i+60|0;Ni=i+56|0;Oi=i+52|0;Pi=i+48|0;Qi=i+44|0;Ri=i+40|0;Si=i+36|0;Ti=i+32|0;Ui=i+28|0;Vi=i+24|0;Wi=i+20|0;Xi=i+16|0;Yi=i+12|0;Zi=i+8|0;_i=i+4|0;$i=i;c[Wi>>2]=a;c[Xi>>2]=b;c[Yi>>2]=e;c[Zi>>2]=f;c[_i>>2]=g;c[$i>>2]=h;h=c[Xi>>2]|0;Xi=c[Yi>>2]|0;Yi=c[Zi>>2]|0;Zi=c[_i>>2]|0;_i=c[$i>>2]|0;c[Lh>>2]=c[Wi>>2];c[Mh>>2]=h;c[Nh>>2]=Xi;c[Oh>>2]=Yi;c[Ph>>2]=Zi;c[Qh>>2]=_i;c[Rh>>2]=0;c[Sh>>2]=1;c[Th>>2]=(c[Lh>>2]|0)+48;c[Uh>>2]=c[Ph>>2];c[Vh>>2]=c[Uh>>2];c[Wh>>2]=c[Uh>>2];c[Xh>>2]=(c[Uh>>2]|0)+(c[Qh>>2]|0);c[Yh>>2]=(c[Xh>>2]|0)+-8;c[Zh>>2]=c[(c[Lh>>2]|0)+4>>2];c[_h>>2]=(c[Zh>>2]|0)+(c[(c[Lh>>2]|0)+12>>2]|0);if((c[(c[Oh>>2]|0)+20>>2]|0)>>>0<4095)aj=c[(c[Oh>>2]|0)+20>>2]|0;else aj=4095;c[$h>>2]=aj;c[ai>>2]=(c[(c[Oh>>2]|0)+16>>2]|0)==3?3:4;c[bi>>2]=c[(c[Th>>2]|0)+20>>2];c[ci>>2]=c[(c[Th>>2]|0)+16>>2];c[(c[Lh>>2]|0)+28>>2]=c[(c[Lh>>2]|0)+24>>2];lm(c[Th>>2]|0,c[Ph>>2]|0,c[Qh>>2]|0);c[Vh>>2]=(c[Vh>>2]|0)+((c[Vh>>2]|0)==(c[_h>>2]|0)&1);c[di>>2]=0;c[di+4>>2]=0;c[di+8>>2]=0;while(1){if((c[Vh>>2]|0)>>>0>=(c[Yh>>2]|0)>>>0)break;c[fi>>2]=0;c[ii>>2]=(c[Vh>>2]|0)-(c[Wh>>2]|0);c[ji>>2]=((c[ii>>2]|0)!=0^1)&1;_h=c[Oh>>2]|0;Qh=c[Vh>>2]|0;Ph=c[Xh>>2]|0;aj=c[Sh>>2]|0;Zh=c[Nh>>2]|0;Uh=c[ji>>2]|0;_i=c[ci>>2]|0;Zi=c[ai>>2]|0;c[Bh>>2]=c[Lh>>2];c[Ch>>2]=_h;c[Dh>>2]=Qh;c[Eh>>2]=Ph;c[Fh>>2]=aj;c[Gh>>2]=Zh;c[Hh>>2]=Uh;c[Ih>>2]=_i;c[Jh>>2]=Zi;c[Kh>>2]=c[(c[Ch>>2]|0)+16>>2];a:do{if((c[Dh>>2]|0)>>>0<((c[(c[Bh>>2]|0)+4>>2]|0)+(c[(c[Bh>>2]|0)+24>>2]|0)|0)>>>0)c[Ah>>2]=0;else{Zi=c[Ch>>2]|0;_i=c[Dh>>2]|0;Uh=c[Eh>>2]|0;Zh=c[Kh>>2]|0;aj=c[Fh>>2]|0;c[rh>>2]=c[Bh>>2];c[sh>>2]=Zi;c[th>>2]=_i;c[uh>>2]=Uh;c[vh>>2]=Zh;c[wh>>2]=aj;c[xh>>2]=c[(c[rh>>2]|0)+4>>2];c[yh>>2]=(c[th>>2]|0)-(c[xh>>2]|0);c[zh>>2]=c[(c[rh>>2]|0)+24>>2];while(1){if((c[zh>>2]|0)>>>0>=(c[yh>>2]|0)>>>0)break;aj=Rj(c[rh>>2]|0,c[sh>>2]|0,(c[xh>>2]|0)+(c[zh>>2]|0)|0,c[uh>>2]|0,c[vh>>2]|0,c[wh>>2]|0)|0;c[zh>>2]=(c[zh>>2]|0)+aj;}c[(c[rh>>2]|0)+24>>2]=c[yh>>2];switch(c[Kh>>2]|0){case 3:{aj=c[Ch>>2]|0;Zh=c[Dh>>2]|0;Uh=c[Eh>>2]|0;_i=c[Fh>>2]|0;Zi=c[Gh>>2]|0;Ph=c[Hh>>2]|0;Qh=c[Ih>>2]|0;_h=c[Jh>>2]|0;c[wg>>2]=c[Bh>>2];c[xg>>2]=aj;c[yg>>2]=Zh;c[zg>>2]=Uh;c[Ag>>2]=_i;c[Bg>>2]=Zi;c[Cg>>2]=Ph;c[Dg>>2]=Qh;c[Eg>>2]=_h;c[Fg>>2]=3;if((c[(c[xg>>2]|0)+20>>2]|0)>>>0<4095)bj=c[(c[xg>>2]|0)+20>>2]|0;else bj=4095;c[Gg>>2]=bj;c[Hg>>2]=c[(c[wg>>2]|0)+4>>2];c[Ig>>2]=(c[yg>>2]|0)-(c[Hg>>2]|0);c[Jg>>2]=c[(c[xg>>2]|0)+8>>2];c[Kg>>2]=(c[Fg>>2]|0)==3?3:4;c[Lg>>2]=c[(c[wg>>2]|0)+36>>2];c[Mg>>2]=Sj(c[yg>>2]|0,c[Jg>>2]|0,c[Fg>>2]|0)|0;c[Ng>>2]=c[(c[Lg>>2]|0)+(c[Mg>>2]<<2)>>2];c[Og>>2]=c[(c[wg>>2]|0)+44>>2];c[Pg>>2]=(c[(c[xg>>2]|0)+4>>2]|0)-1;c[Qg>>2]=(1<<c[Pg>>2])-1;c[Rg>>2]=0;c[Sg>>2]=0;c[Tg>>2]=c[(c[wg>>2]|0)+8>>2];c[Ug>>2]=c[(c[wg>>2]|0)+12>>2];c[Vg>>2]=(c[Tg>>2]|0)+(c[Ug>>2]|0);c[Wg>>2]=(c[Hg>>2]|0)+(c[Ug>>2]|0);if((c[Qg>>2]|0)>>>0>=(c[Ig>>2]|0)>>>0)cj=0;else cj=(c[Ig>>2]|0)-(c[Qg>>2]|0)|0;c[Xg>>2]=cj;c[Yg>>2]=c[(c[wg>>2]|0)+16>>2];c[Zg>>2]=(c[Og>>2]|0)+((c[Ig>>2]&c[Qg>>2])<<1<<2);c[_g>>2]=(c[Og>>2]|0)+((c[Ig>>2]&c[Qg>>2])<<1<<2)+4;c[$g>>2]=(c[Ig>>2]|0)+8+1;c[bh>>2]=0;c[ch>>2]=1<<c[(c[xg>>2]|0)+12>>2];c[dh>>2]=(c[Eg>>2]|0)-1;c[eh>>2]=3+(c[Cg>>2]|0);c[fh>>2]=c[Cg>>2];while(1){if((c[fh>>2]|0)>>>0>=(c[eh>>2]|0)>>>0){dj=31;break;}_h=c[Bg>>2]|0;if((c[fh>>2]|0)==3)ej=(c[_h>>2]|0)-1|0;else ej=c[_h+(c[fh>>2]<<2)>>2]|0;c[gh>>2]=ej;c[hh>>2]=(c[Ig>>2]|0)-(c[gh>>2]|0);c[ih>>2]=0;if(((c[gh>>2]|0)-1|0)>>>0<((c[Ig>>2]|0)-(c[Ug>>2]|0)|0)>>>0){_h=mm(c[yg>>2]|0,c[Kg>>2]|0)|0;if((_h|0)==(mm((c[yg>>2]|0)+(0-(c[gh>>2]|0))|0,c[Kg>>2]|0)|0)){_h=Tj((c[yg>>2]|0)+(c[Kg>>2]|0)|0,(c[yg>>2]|0)+(c[Kg>>2]|0)+(0-(c[gh>>2]|0))|0,c[zg>>2]|0)|0;c[ih>>2]=_h+(c[Kg>>2]|0);}}else{c[jh>>2]=(c[Tg>>2]|0)+(c[hh>>2]|0);if((c[Ag>>2]|0?(((c[Ug>>2]|0)-1-(c[hh>>2]|0)|0)>>>0>=3?((c[gh>>2]|0)-1|0)>>>0<((c[Ig>>2]|0)-(c[Yg>>2]|0)|0)>>>0:0)|0:0)?(_h=mm(c[yg>>2]|0,c[Kg>>2]|0)|0,(_h|0)==(mm(c[jh>>2]|0,c[Kg>>2]|0)|0)):0){_h=Uj((c[yg>>2]|0)+(c[Kg>>2]|0)|0,(c[jh>>2]|0)+(c[Kg>>2]|0)|0,c[zg>>2]|0,c[Vg>>2]|0,c[Wg>>2]|0)|0;c[ih>>2]=_h+(c[Kg>>2]|0);}}if((c[ih>>2]|0)>>>0>(c[dh>>2]|0)>>>0?(c[dh>>2]=c[ih>>2],c[(c[Dg>>2]|0)+(c[bh>>2]<<3)>>2]=(c[fh>>2]|0)-(c[Cg>>2]|0),c[(c[Dg>>2]|0)+(c[bh>>2]<<3)+4>>2]=c[ih>>2],c[bh>>2]=(c[bh>>2]|0)+1,((c[ih>>2]|0)>>>0>(c[Gg>>2]|0)>>>0?1:((c[yg>>2]|0)+(c[ih>>2]|0)|0)==(c[zg>>2]|0))|0):0){dj=29;break;}c[fh>>2]=(c[fh>>2]|0)+1;}do{if((dj|0)==29){dj=0;c[vg>>2]=c[bh>>2];}else if((dj|0)==31){dj=0;if(((c[Fg>>2]|0)==3?(c[dh>>2]|0)>>>0<(c[Fg>>2]|0)>>>0:0)?(c[kh>>2]=nm(c[wg>>2]|0,c[yg>>2]|0)|0,((c[kh>>2]|0)>>>0>(c[Yg>>2]|0)>>>0?((c[Ig>>2]|0)-(c[kh>>2]|0)|0)>>>0<262144:0)|0):0){if(c[Ag>>2]|0?(c[kh>>2]|0)>>>0<(c[Ug>>2]|0)>>>0:0){c[nh>>2]=(c[Tg>>2]|0)+(c[kh>>2]|0);c[lh>>2]=Uj(c[yg>>2]|0,c[nh>>2]|0,c[zg>>2]|0,c[Vg>>2]|0,c[Wg>>2]|0)|0;}else{c[mh>>2]=(c[Hg>>2]|0)+(c[kh>>2]|0);c[lh>>2]=Tj(c[yg>>2]|0,c[mh>>2]|0,c[zg>>2]|0)|0;}if((c[lh>>2]|0)>>>0>=(c[Fg>>2]|0)>>>0?(c[dh>>2]=c[lh>>2],c[c[Dg>>2]>>2]=(c[Ig>>2]|0)-(c[kh>>2]|0)+2,c[(c[Dg>>2]|0)+4>>2]=c[lh>>2],c[bh>>2]=1,((c[lh>>2]|0)>>>0>(c[Gg>>2]|0)>>>0?1:((c[yg>>2]|0)+(c[lh>>2]|0)|0)==(c[zg>>2]|0))|0):0){c[(c[wg>>2]|0)+24>>2]=(c[Ig>>2]|0)+1;c[vg>>2]=1;break;}}c[(c[Lg>>2]|0)+(c[Mg>>2]<<2)>>2]=c[Ig>>2];while(1){_h=c[ch>>2]|0;c[ch>>2]=_h+-1;if(!_h)break;if((c[Ng>>2]|0)>>>0<=(c[Yg>>2]|0)>>>0)break;c[oh>>2]=(c[Og>>2]|0)+((c[Ng>>2]&c[Qg>>2])<<1<<2);c[ph>>2]=(c[Rg>>2]|0)>>>0<(c[Sg>>2]|0)>>>0?c[Rg>>2]|0:c[Sg>>2]|0;if(c[Ag>>2]|0?((c[Ng>>2]|0)+(c[ph>>2]|0)|0)>>>0<(c[Ug>>2]|0)>>>0:0){c[qh>>2]=(c[Tg>>2]|0)+(c[Ng>>2]|0);_h=Uj((c[yg>>2]|0)+(c[ph>>2]|0)|0,(c[qh>>2]|0)+(c[ph>>2]|0)|0,c[zg>>2]|0,c[Vg>>2]|0,c[Wg>>2]|0)|0;c[ph>>2]=(c[ph>>2]|0)+_h;if(((c[Ng>>2]|0)+(c[ph>>2]|0)|0)>>>0>=(c[Ug>>2]|0)>>>0)c[qh>>2]=(c[Hg>>2]|0)+(c[Ng>>2]|0);}else{c[qh>>2]=(c[Hg>>2]|0)+(c[Ng>>2]|0);_h=Tj((c[yg>>2]|0)+(c[ph>>2]|0)|0,(c[qh>>2]|0)+(c[ph>>2]|0)|0,c[zg>>2]|0)|0;c[ph>>2]=(c[ph>>2]|0)+_h;}if((c[ph>>2]|0)>>>0>(c[dh>>2]|0)>>>0){if((c[ph>>2]|0)>>>0>((c[$g>>2]|0)-(c[Ng>>2]|0)|0)>>>0)c[$g>>2]=(c[Ng>>2]|0)+(c[ph>>2]|0);c[dh>>2]=c[ph>>2];c[(c[Dg>>2]|0)+(c[bh>>2]<<3)>>2]=(c[Ig>>2]|0)-(c[Ng>>2]|0)+2;c[(c[Dg>>2]|0)+(c[bh>>2]<<3)+4>>2]=c[ph>>2];c[bh>>2]=(c[bh>>2]|0)+1;if((c[ph>>2]|0)>>>0>4096)break;if(((c[yg>>2]|0)+(c[ph>>2]|0)|0)==(c[zg>>2]|0))break;}_h=c[Ng>>2]|0;if((d[(c[qh>>2]|0)+(c[ph>>2]|0)>>0]|0|0)<(d[(c[yg>>2]|0)+(c[ph>>2]|0)>>0]|0|0)){c[c[Zg>>2]>>2]=_h;c[Rg>>2]=c[ph>>2];if((c[Ng>>2]|0)>>>0<=(c[Xg>>2]|0)>>>0){dj=56;break;}c[Zg>>2]=(c[oh>>2]|0)+4;c[Ng>>2]=c[(c[oh>>2]|0)+4>>2];}else{c[c[_g>>2]>>2]=_h;c[Sg>>2]=c[ph>>2];if((c[Ng>>2]|0)>>>0<=(c[Xg>>2]|0)>>>0){dj=59;break;}c[_g>>2]=c[oh>>2];c[Ng>>2]=c[c[oh>>2]>>2];}}if((dj|0)==56){dj=0;c[Zg>>2]=ah;}else if((dj|0)==59){dj=0;c[_g>>2]=ah;}c[c[_g>>2]>>2]=0;c[c[Zg>>2]>>2]=0;c[(c[wg>>2]|0)+24>>2]=(c[$g>>2]|0)-8;c[vg>>2]=c[bh>>2];}}while(0);c[Ah>>2]=c[vg>>2];break a;break;}case 7:case 6:{_h=c[Ch>>2]|0;Qh=c[Dh>>2]|0;Ph=c[Eh>>2]|0;Zi=c[Fh>>2]|0;_i=c[Gh>>2]|0;Uh=c[Hh>>2]|0;Zh=c[Ih>>2]|0;aj=c[Jh>>2]|0;c[Hd>>2]=c[Bh>>2];c[Id>>2]=_h;c[Jd>>2]=Qh;c[Kd>>2]=Ph;c[Ld>>2]=Zi;c[Md>>2]=_i;c[Nd>>2]=Uh;c[Od>>2]=Zh;c[Pd>>2]=aj;c[Qd>>2]=6;if((c[(c[Id>>2]|0)+20>>2]|0)>>>0<4095)fj=c[(c[Id>>2]|0)+20>>2]|0;else fj=4095;c[Rd>>2]=fj;c[Sd>>2]=c[(c[Hd>>2]|0)+4>>2];c[Td>>2]=(c[Jd>>2]|0)-(c[Sd>>2]|0);c[Ud>>2]=c[(c[Id>>2]|0)+8>>2];c[Vd>>2]=(c[Qd>>2]|0)==3?3:4;c[Wd>>2]=c[(c[Hd>>2]|0)+36>>2];c[Xd>>2]=Sj(c[Jd>>2]|0,c[Ud>>2]|0,c[Qd>>2]|0)|0;c[Yd>>2]=c[(c[Wd>>2]|0)+(c[Xd>>2]<<2)>>2];c[Zd>>2]=c[(c[Hd>>2]|0)+44>>2];c[_d>>2]=(c[(c[Id>>2]|0)+4>>2]|0)-1;c[$d>>2]=(1<<c[_d>>2])-1;c[ae>>2]=0;c[be>>2]=0;c[ce>>2]=c[(c[Hd>>2]|0)+8>>2];c[de>>2]=c[(c[Hd>>2]|0)+12>>2];c[ee>>2]=(c[ce>>2]|0)+(c[de>>2]|0);c[fe>>2]=(c[Sd>>2]|0)+(c[de>>2]|0);if((c[$d>>2]|0)>>>0>=(c[Td>>2]|0)>>>0)gj=0;else gj=(c[Td>>2]|0)-(c[$d>>2]|0)|0;c[ge>>2]=gj;c[he>>2]=c[(c[Hd>>2]|0)+16>>2];c[ie>>2]=(c[Zd>>2]|0)+((c[Td>>2]&c[$d>>2])<<1<<2);c[je>>2]=(c[Zd>>2]|0)+((c[Td>>2]&c[$d>>2])<<1<<2)+4;c[ke>>2]=(c[Td>>2]|0)+8+1;c[me>>2]=0;c[ne>>2]=1<<c[(c[Id>>2]|0)+12>>2];c[oe>>2]=(c[Pd>>2]|0)-1;c[pe>>2]=3+(c[Nd>>2]|0);c[qe>>2]=c[Nd>>2];while(1){if((c[qe>>2]|0)>>>0>=(c[pe>>2]|0)>>>0){dj=190;break;}aj=c[Md>>2]|0;if((c[qe>>2]|0)==3)hj=(c[aj>>2]|0)-1|0;else hj=c[aj+(c[qe>>2]<<2)>>2]|0;c[re>>2]=hj;c[se>>2]=(c[Td>>2]|0)-(c[re>>2]|0);c[te>>2]=0;if(((c[re>>2]|0)-1|0)>>>0<((c[Td>>2]|0)-(c[de>>2]|0)|0)>>>0){aj=mm(c[Jd>>2]|0,c[Vd>>2]|0)|0;if((aj|0)==(mm((c[Jd>>2]|0)+(0-(c[re>>2]|0))|0,c[Vd>>2]|0)|0)){aj=Tj((c[Jd>>2]|0)+(c[Vd>>2]|0)|0,(c[Jd>>2]|0)+(c[Vd>>2]|0)+(0-(c[re>>2]|0))|0,c[Kd>>2]|0)|0;c[te>>2]=aj+(c[Vd>>2]|0);}}else{c[ue>>2]=(c[ce>>2]|0)+(c[se>>2]|0);if((c[Ld>>2]|0?(((c[de>>2]|0)-1-(c[se>>2]|0)|0)>>>0>=3?((c[re>>2]|0)-1|0)>>>0<((c[Td>>2]|0)-(c[he>>2]|0)|0)>>>0:0)|0:0)?(aj=mm(c[Jd>>2]|0,c[Vd>>2]|0)|0,(aj|0)==(mm(c[ue>>2]|0,c[Vd>>2]|0)|0)):0){aj=Uj((c[Jd>>2]|0)+(c[Vd>>2]|0)|0,(c[ue>>2]|0)+(c[Vd>>2]|0)|0,c[Kd>>2]|0,c[ee>>2]|0,c[fe>>2]|0)|0;c[te>>2]=aj+(c[Vd>>2]|0);}}if((c[te>>2]|0)>>>0>(c[oe>>2]|0)>>>0?(c[oe>>2]=c[te>>2],c[(c[Od>>2]|0)+(c[me>>2]<<3)>>2]=(c[qe>>2]|0)-(c[Nd>>2]|0),c[(c[Od>>2]|0)+(c[me>>2]<<3)+4>>2]=c[te>>2],c[me>>2]=(c[me>>2]|0)+1,((c[te>>2]|0)>>>0>(c[Rd>>2]|0)>>>0?1:((c[Jd>>2]|0)+(c[te>>2]|0)|0)==(c[Kd>>2]|0))|0):0){dj=188;break;}c[qe>>2]=(c[qe>>2]|0)+1;}do{if((dj|0)==188){dj=0;c[Gd>>2]=c[me>>2];}else if((dj|0)==190){dj=0;if(((c[Qd>>2]|0)==3?(c[oe>>2]|0)>>>0<(c[Qd>>2]|0)>>>0:0)?(c[ve>>2]=nm(c[Hd>>2]|0,c[Jd>>2]|0)|0,((c[ve>>2]|0)>>>0>(c[he>>2]|0)>>>0?((c[Td>>2]|0)-(c[ve>>2]|0)|0)>>>0<262144:0)|0):0){if(c[Ld>>2]|0?(c[ve>>2]|0)>>>0<(c[de>>2]|0)>>>0:0){c[ye>>2]=(c[ce>>2]|0)+(c[ve>>2]|0);c[we>>2]=Uj(c[Jd>>2]|0,c[ye>>2]|0,c[Kd>>2]|0,c[ee>>2]|0,c[fe>>2]|0)|0;}else{c[xe>>2]=(c[Sd>>2]|0)+(c[ve>>2]|0);c[we>>2]=Tj(c[Jd>>2]|0,c[xe>>2]|0,c[Kd>>2]|0)|0;}if((c[we>>2]|0)>>>0>=(c[Qd>>2]|0)>>>0?(c[oe>>2]=c[we>>2],c[c[Od>>2]>>2]=(c[Td>>2]|0)-(c[ve>>2]|0)+2,c[(c[Od>>2]|0)+4>>2]=c[we>>2],c[me>>2]=1,((c[we>>2]|0)>>>0>(c[Rd>>2]|0)>>>0?1:((c[Jd>>2]|0)+(c[we>>2]|0)|0)==(c[Kd>>2]|0))|0):0){c[(c[Hd>>2]|0)+24>>2]=(c[Td>>2]|0)+1;c[Gd>>2]=1;break;}}c[(c[Wd>>2]|0)+(c[Xd>>2]<<2)>>2]=c[Td>>2];while(1){aj=c[ne>>2]|0;c[ne>>2]=aj+-1;if(!aj)break;if((c[Yd>>2]|0)>>>0<=(c[he>>2]|0)>>>0)break;c[ze>>2]=(c[Zd>>2]|0)+((c[Yd>>2]&c[$d>>2])<<1<<2);c[Ae>>2]=(c[ae>>2]|0)>>>0<(c[be>>2]|0)>>>0?c[ae>>2]|0:c[be>>2]|0;if(c[Ld>>2]|0?((c[Yd>>2]|0)+(c[Ae>>2]|0)|0)>>>0<(c[de>>2]|0)>>>0:0){c[Be>>2]=(c[ce>>2]|0)+(c[Yd>>2]|0);aj=Uj((c[Jd>>2]|0)+(c[Ae>>2]|0)|0,(c[Be>>2]|0)+(c[Ae>>2]|0)|0,c[Kd>>2]|0,c[ee>>2]|0,c[fe>>2]|0)|0;c[Ae>>2]=(c[Ae>>2]|0)+aj;if(((c[Yd>>2]|0)+(c[Ae>>2]|0)|0)>>>0>=(c[de>>2]|0)>>>0)c[Be>>2]=(c[Sd>>2]|0)+(c[Yd>>2]|0);}else{c[Be>>2]=(c[Sd>>2]|0)+(c[Yd>>2]|0);aj=Tj((c[Jd>>2]|0)+(c[Ae>>2]|0)|0,(c[Be>>2]|0)+(c[Ae>>2]|0)|0,c[Kd>>2]|0)|0;c[Ae>>2]=(c[Ae>>2]|0)+aj;}if((c[Ae>>2]|0)>>>0>(c[oe>>2]|0)>>>0){if((c[Ae>>2]|0)>>>0>((c[ke>>2]|0)-(c[Yd>>2]|0)|0)>>>0)c[ke>>2]=(c[Yd>>2]|0)+(c[Ae>>2]|0);c[oe>>2]=c[Ae>>2];c[(c[Od>>2]|0)+(c[me>>2]<<3)>>2]=(c[Td>>2]|0)-(c[Yd>>2]|0)+2;c[(c[Od>>2]|0)+(c[me>>2]<<3)+4>>2]=c[Ae>>2];c[me>>2]=(c[me>>2]|0)+1;if((c[Ae>>2]|0)>>>0>4096)break;if(((c[Jd>>2]|0)+(c[Ae>>2]|0)|0)==(c[Kd>>2]|0))break;}aj=c[Yd>>2]|0;if((d[(c[Be>>2]|0)+(c[Ae>>2]|0)>>0]|0|0)<(d[(c[Jd>>2]|0)+(c[Ae>>2]|0)>>0]|0|0)){c[c[ie>>2]>>2]=aj;c[ae>>2]=c[Ae>>2];if((c[Yd>>2]|0)>>>0<=(c[ge>>2]|0)>>>0){dj=215;break;}c[ie>>2]=(c[ze>>2]|0)+4;c[Yd>>2]=c[(c[ze>>2]|0)+4>>2];}else{c[c[je>>2]>>2]=aj;c[be>>2]=c[Ae>>2];if((c[Yd>>2]|0)>>>0<=(c[ge>>2]|0)>>>0){dj=218;break;}c[je>>2]=c[ze>>2];c[Yd>>2]=c[c[ze>>2]>>2];}}if((dj|0)==215){dj=0;c[ie>>2]=le;}else if((dj|0)==218){dj=0;c[je>>2]=le;}c[c[je>>2]>>2]=0;c[c[ie>>2]>>2]=0;c[(c[Hd>>2]|0)+24>>2]=(c[ke>>2]|0)-8;c[Gd>>2]=c[me>>2];}}while(0);c[Ah>>2]=c[Gd>>2];break a;break;}case 5:{aj=c[Ch>>2]|0;Zh=c[Dh>>2]|0;Uh=c[Eh>>2]|0;_i=c[Fh>>2]|0;Zi=c[Gh>>2]|0;Ph=c[Hh>>2]|0;Qh=c[Ih>>2]|0;_h=c[Jh>>2]|0;c[De>>2]=c[Bh>>2];c[Ee>>2]=aj;c[Fe>>2]=Zh;c[Ge>>2]=Uh;c[He>>2]=_i;c[Ie>>2]=Zi;c[Je>>2]=Ph;c[Ke>>2]=Qh;c[Le>>2]=_h;c[Me>>2]=5;if((c[(c[Ee>>2]|0)+20>>2]|0)>>>0<4095)ij=c[(c[Ee>>2]|0)+20>>2]|0;else ij=4095;c[Ne>>2]=ij;c[Oe>>2]=c[(c[De>>2]|0)+4>>2];c[Pe>>2]=(c[Fe>>2]|0)-(c[Oe>>2]|0);c[Qe>>2]=c[(c[Ee>>2]|0)+8>>2];c[Re>>2]=(c[Me>>2]|0)==3?3:4;c[Se>>2]=c[(c[De>>2]|0)+36>>2];c[Te>>2]=Sj(c[Fe>>2]|0,c[Qe>>2]|0,c[Me>>2]|0)|0;c[Ue>>2]=c[(c[Se>>2]|0)+(c[Te>>2]<<2)>>2];c[Ve>>2]=c[(c[De>>2]|0)+44>>2];c[We>>2]=(c[(c[Ee>>2]|0)+4>>2]|0)-1;c[Xe>>2]=(1<<c[We>>2])-1;c[Ye>>2]=0;c[Ze>>2]=0;c[_e>>2]=c[(c[De>>2]|0)+8>>2];c[$e>>2]=c[(c[De>>2]|0)+12>>2];c[af>>2]=(c[_e>>2]|0)+(c[$e>>2]|0);c[bf>>2]=(c[Oe>>2]|0)+(c[$e>>2]|0);if((c[Xe>>2]|0)>>>0>=(c[Pe>>2]|0)>>>0)jj=0;else jj=(c[Pe>>2]|0)-(c[Xe>>2]|0)|0;c[cf>>2]=jj;c[df>>2]=c[(c[De>>2]|0)+16>>2];c[ef>>2]=(c[Ve>>2]|0)+((c[Pe>>2]&c[Xe>>2])<<1<<2);c[ff>>2]=(c[Ve>>2]|0)+((c[Pe>>2]&c[Xe>>2])<<1<<2)+4;c[gf>>2]=(c[Pe>>2]|0)+8+1;c[jf>>2]=0;c[kf>>2]=1<<c[(c[Ee>>2]|0)+12>>2];c[lf>>2]=(c[Le>>2]|0)-1;c[mf>>2]=3+(c[Je>>2]|0);c[nf>>2]=c[Je>>2];while(1){if((c[nf>>2]|0)>>>0>=(c[mf>>2]|0)>>>0){dj=137;break;}_h=c[Ie>>2]|0;if((c[nf>>2]|0)==3)kj=(c[_h>>2]|0)-1|0;else kj=c[_h+(c[nf>>2]<<2)>>2]|0;c[of>>2]=kj;c[pf>>2]=(c[Pe>>2]|0)-(c[of>>2]|0);c[qf>>2]=0;if(((c[of>>2]|0)-1|0)>>>0<((c[Pe>>2]|0)-(c[$e>>2]|0)|0)>>>0){_h=mm(c[Fe>>2]|0,c[Re>>2]|0)|0;if((_h|0)==(mm((c[Fe>>2]|0)+(0-(c[of>>2]|0))|0,c[Re>>2]|0)|0)){_h=Tj((c[Fe>>2]|0)+(c[Re>>2]|0)|0,(c[Fe>>2]|0)+(c[Re>>2]|0)+(0-(c[of>>2]|0))|0,c[Ge>>2]|0)|0;c[qf>>2]=_h+(c[Re>>2]|0);}}else{c[rf>>2]=(c[_e>>2]|0)+(c[pf>>2]|0);if((c[He>>2]|0?(((c[$e>>2]|0)-1-(c[pf>>2]|0)|0)>>>0>=3?((c[of>>2]|0)-1|0)>>>0<((c[Pe>>2]|0)-(c[df>>2]|0)|0)>>>0:0)|0:0)?(_h=mm(c[Fe>>2]|0,c[Re>>2]|0)|0,(_h|0)==(mm(c[rf>>2]|0,c[Re>>2]|0)|0)):0){_h=Uj((c[Fe>>2]|0)+(c[Re>>2]|0)|0,(c[rf>>2]|0)+(c[Re>>2]|0)|0,c[Ge>>2]|0,c[af>>2]|0,c[bf>>2]|0)|0;c[qf>>2]=_h+(c[Re>>2]|0);}}if((c[qf>>2]|0)>>>0>(c[lf>>2]|0)>>>0?(c[lf>>2]=c[qf>>2],c[(c[Ke>>2]|0)+(c[jf>>2]<<3)>>2]=(c[nf>>2]|0)-(c[Je>>2]|0),c[(c[Ke>>2]|0)+(c[jf>>2]<<3)+4>>2]=c[qf>>2],c[jf>>2]=(c[jf>>2]|0)+1,((c[qf>>2]|0)>>>0>(c[Ne>>2]|0)>>>0?1:((c[Fe>>2]|0)+(c[qf>>2]|0)|0)==(c[Ge>>2]|0))|0):0){dj=135;break;}c[nf>>2]=(c[nf>>2]|0)+1;}do{if((dj|0)==135){dj=0;c[Ce>>2]=c[jf>>2];}else if((dj|0)==137){dj=0;if(((c[Me>>2]|0)==3?(c[lf>>2]|0)>>>0<(c[Me>>2]|0)>>>0:0)?(c[sf>>2]=nm(c[De>>2]|0,c[Fe>>2]|0)|0,((c[sf>>2]|0)>>>0>(c[df>>2]|0)>>>0?((c[Pe>>2]|0)-(c[sf>>2]|0)|0)>>>0<262144:0)|0):0){if(c[He>>2]|0?(c[sf>>2]|0)>>>0<(c[$e>>2]|0)>>>0:0){c[vf>>2]=(c[_e>>2]|0)+(c[sf>>2]|0);c[tf>>2]=Uj(c[Fe>>2]|0,c[vf>>2]|0,c[Ge>>2]|0,c[af>>2]|0,c[bf>>2]|0)|0;}else{c[uf>>2]=(c[Oe>>2]|0)+(c[sf>>2]|0);c[tf>>2]=Tj(c[Fe>>2]|0,c[uf>>2]|0,c[Ge>>2]|0)|0;}if((c[tf>>2]|0)>>>0>=(c[Me>>2]|0)>>>0?(c[lf>>2]=c[tf>>2],c[c[Ke>>2]>>2]=(c[Pe>>2]|0)-(c[sf>>2]|0)+2,c[(c[Ke>>2]|0)+4>>2]=c[tf>>2],c[jf>>2]=1,((c[tf>>2]|0)>>>0>(c[Ne>>2]|0)>>>0?1:((c[Fe>>2]|0)+(c[tf>>2]|0)|0)==(c[Ge>>2]|0))|0):0){c[(c[De>>2]|0)+24>>2]=(c[Pe>>2]|0)+1;c[Ce>>2]=1;break;}}c[(c[Se>>2]|0)+(c[Te>>2]<<2)>>2]=c[Pe>>2];while(1){_h=c[kf>>2]|0;c[kf>>2]=_h+-1;if(!_h)break;if((c[Ue>>2]|0)>>>0<=(c[df>>2]|0)>>>0)break;c[wf>>2]=(c[Ve>>2]|0)+((c[Ue>>2]&c[Xe>>2])<<1<<2);c[xf>>2]=(c[Ye>>2]|0)>>>0<(c[Ze>>2]|0)>>>0?c[Ye>>2]|0:c[Ze>>2]|0;if(c[He>>2]|0?((c[Ue>>2]|0)+(c[xf>>2]|0)|0)>>>0<(c[$e>>2]|0)>>>0:0){c[yf>>2]=(c[_e>>2]|0)+(c[Ue>>2]|0);_h=Uj((c[Fe>>2]|0)+(c[xf>>2]|0)|0,(c[yf>>2]|0)+(c[xf>>2]|0)|0,c[Ge>>2]|0,c[af>>2]|0,c[bf>>2]|0)|0;c[xf>>2]=(c[xf>>2]|0)+_h;if(((c[Ue>>2]|0)+(c[xf>>2]|0)|0)>>>0>=(c[$e>>2]|0)>>>0)c[yf>>2]=(c[Oe>>2]|0)+(c[Ue>>2]|0);}else{c[yf>>2]=(c[Oe>>2]|0)+(c[Ue>>2]|0);_h=Tj((c[Fe>>2]|0)+(c[xf>>2]|0)|0,(c[yf>>2]|0)+(c[xf>>2]|0)|0,c[Ge>>2]|0)|0;c[xf>>2]=(c[xf>>2]|0)+_h;}if((c[xf>>2]|0)>>>0>(c[lf>>2]|0)>>>0){if((c[xf>>2]|0)>>>0>((c[gf>>2]|0)-(c[Ue>>2]|0)|0)>>>0)c[gf>>2]=(c[Ue>>2]|0)+(c[xf>>2]|0);c[lf>>2]=c[xf>>2];c[(c[Ke>>2]|0)+(c[jf>>2]<<3)>>2]=(c[Pe>>2]|0)-(c[Ue>>2]|0)+2;c[(c[Ke>>2]|0)+(c[jf>>2]<<3)+4>>2]=c[xf>>2];c[jf>>2]=(c[jf>>2]|0)+1;if((c[xf>>2]|0)>>>0>4096)break;if(((c[Fe>>2]|0)+(c[xf>>2]|0)|0)==(c[Ge>>2]|0))break;}_h=c[Ue>>2]|0;if((d[(c[yf>>2]|0)+(c[xf>>2]|0)>>0]|0|0)<(d[(c[Fe>>2]|0)+(c[xf>>2]|0)>>0]|0|0)){c[c[ef>>2]>>2]=_h;c[Ye>>2]=c[xf>>2];if((c[Ue>>2]|0)>>>0<=(c[cf>>2]|0)>>>0){dj=162;break;}c[ef>>2]=(c[wf>>2]|0)+4;c[Ue>>2]=c[(c[wf>>2]|0)+4>>2];}else{c[c[ff>>2]>>2]=_h;c[Ze>>2]=c[xf>>2];if((c[Ue>>2]|0)>>>0<=(c[cf>>2]|0)>>>0){dj=165;break;}c[ff>>2]=c[wf>>2];c[Ue>>2]=c[c[wf>>2]>>2];}}if((dj|0)==162){dj=0;c[ef>>2]=hf;}else if((dj|0)==165){dj=0;c[ff>>2]=hf;}c[c[ff>>2]>>2]=0;c[c[ef>>2]>>2]=0;c[(c[De>>2]|0)+24>>2]=(c[gf>>2]|0)-8;c[Ce>>2]=c[jf>>2];}}while(0);c[Ah>>2]=c[Ce>>2];break a;break;}default:{_h=c[Ch>>2]|0;Qh=c[Dh>>2]|0;Ph=c[Eh>>2]|0;Zi=c[Fh>>2]|0;_i=c[Gh>>2]|0;Uh=c[Hh>>2]|0;Zh=c[Ih>>2]|0;aj=c[Jh>>2]|0;c[Af>>2]=c[Bh>>2];c[Bf>>2]=_h;c[Cf>>2]=Qh;c[Df>>2]=Ph;c[Ef>>2]=Zi;c[Ff>>2]=_i;c[Gf>>2]=Uh;c[Hf>>2]=Zh;c[If>>2]=aj;c[Jf>>2]=4;if((c[(c[Bf>>2]|0)+20>>2]|0)>>>0<4095)lj=c[(c[Bf>>2]|0)+20>>2]|0;else lj=4095;c[Kf>>2]=lj;c[Lf>>2]=c[(c[Af>>2]|0)+4>>2];c[Mf>>2]=(c[Cf>>2]|0)-(c[Lf>>2]|0);c[Nf>>2]=c[(c[Bf>>2]|0)+8>>2];c[Of>>2]=(c[Jf>>2]|0)==3?3:4;c[Pf>>2]=c[(c[Af>>2]|0)+36>>2];c[Qf>>2]=Sj(c[Cf>>2]|0,c[Nf>>2]|0,c[Jf>>2]|0)|0;c[Rf>>2]=c[(c[Pf>>2]|0)+(c[Qf>>2]<<2)>>2];c[Sf>>2]=c[(c[Af>>2]|0)+44>>2];c[Tf>>2]=(c[(c[Bf>>2]|0)+4>>2]|0)-1;c[Uf>>2]=(1<<c[Tf>>2])-1;c[Vf>>2]=0;c[Wf>>2]=0;c[Xf>>2]=c[(c[Af>>2]|0)+8>>2];c[Yf>>2]=c[(c[Af>>2]|0)+12>>2];c[Zf>>2]=(c[Xf>>2]|0)+(c[Yf>>2]|0);c[_f>>2]=(c[Lf>>2]|0)+(c[Yf>>2]|0);if((c[Uf>>2]|0)>>>0>=(c[Mf>>2]|0)>>>0)mj=0;else mj=(c[Mf>>2]|0)-(c[Uf>>2]|0)|0;c[$f>>2]=mj;c[ag>>2]=c[(c[Af>>2]|0)+16>>2];c[bg>>2]=(c[Sf>>2]|0)+((c[Mf>>2]&c[Uf>>2])<<1<<2);c[cg>>2]=(c[Sf>>2]|0)+((c[Mf>>2]&c[Uf>>2])<<1<<2)+4;c[dg>>2]=(c[Mf>>2]|0)+8+1;c[fg>>2]=0;c[gg>>2]=1<<c[(c[Bf>>2]|0)+12>>2];c[hg>>2]=(c[If>>2]|0)-1;c[ig>>2]=3+(c[Gf>>2]|0);c[jg>>2]=c[Gf>>2];while(1){if((c[jg>>2]|0)>>>0>=(c[ig>>2]|0)>>>0){dj=84;break;}aj=c[Ff>>2]|0;if((c[jg>>2]|0)==3)nj=(c[aj>>2]|0)-1|0;else nj=c[aj+(c[jg>>2]<<2)>>2]|0;c[kg>>2]=nj;c[lg>>2]=(c[Mf>>2]|0)-(c[kg>>2]|0);c[mg>>2]=0;if(((c[kg>>2]|0)-1|0)>>>0<((c[Mf>>2]|0)-(c[Yf>>2]|0)|0)>>>0){aj=mm(c[Cf>>2]|0,c[Of>>2]|0)|0;if((aj|0)==(mm((c[Cf>>2]|0)+(0-(c[kg>>2]|0))|0,c[Of>>2]|0)|0)){aj=Tj((c[Cf>>2]|0)+(c[Of>>2]|0)|0,(c[Cf>>2]|0)+(c[Of>>2]|0)+(0-(c[kg>>2]|0))|0,c[Df>>2]|0)|0;c[mg>>2]=aj+(c[Of>>2]|0);}}else{c[ng>>2]=(c[Xf>>2]|0)+(c[lg>>2]|0);if((c[Ef>>2]|0?(((c[Yf>>2]|0)-1-(c[lg>>2]|0)|0)>>>0>=3?((c[kg>>2]|0)-1|0)>>>0<((c[Mf>>2]|0)-(c[ag>>2]|0)|0)>>>0:0)|0:0)?(aj=mm(c[Cf>>2]|0,c[Of>>2]|0)|0,(aj|0)==(mm(c[ng>>2]|0,c[Of>>2]|0)|0)):0){aj=Uj((c[Cf>>2]|0)+(c[Of>>2]|0)|0,(c[ng>>2]|0)+(c[Of>>2]|0)|0,c[Df>>2]|0,c[Zf>>2]|0,c[_f>>2]|0)|0;c[mg>>2]=aj+(c[Of>>2]|0);}}if((c[mg>>2]|0)>>>0>(c[hg>>2]|0)>>>0?(c[hg>>2]=c[mg>>2],c[(c[Hf>>2]|0)+(c[fg>>2]<<3)>>2]=(c[jg>>2]|0)-(c[Gf>>2]|0),c[(c[Hf>>2]|0)+(c[fg>>2]<<3)+4>>2]=c[mg>>2],c[fg>>2]=(c[fg>>2]|0)+1,((c[mg>>2]|0)>>>0>(c[Kf>>2]|0)>>>0?1:((c[Cf>>2]|0)+(c[mg>>2]|0)|0)==(c[Df>>2]|0))|0):0){dj=82;break;}c[jg>>2]=(c[jg>>2]|0)+1;}do{if((dj|0)==82){dj=0;c[zf>>2]=c[fg>>2];}else if((dj|0)==84){dj=0;if(((c[Jf>>2]|0)==3?(c[hg>>2]|0)>>>0<(c[Jf>>2]|0)>>>0:0)?(c[og>>2]=nm(c[Af>>2]|0,c[Cf>>2]|0)|0,((c[og>>2]|0)>>>0>(c[ag>>2]|0)>>>0?((c[Mf>>2]|0)-(c[og>>2]|0)|0)>>>0<262144:0)|0):0){if(c[Ef>>2]|0?(c[og>>2]|0)>>>0<(c[Yf>>2]|0)>>>0:0){c[rg>>2]=(c[Xf>>2]|0)+(c[og>>2]|0);c[pg>>2]=Uj(c[Cf>>2]|0,c[rg>>2]|0,c[Df>>2]|0,c[Zf>>2]|0,c[_f>>2]|0)|0;}else{c[qg>>2]=(c[Lf>>2]|0)+(c[og>>2]|0);c[pg>>2]=Tj(c[Cf>>2]|0,c[qg>>2]|0,c[Df>>2]|0)|0;}if((c[pg>>2]|0)>>>0>=(c[Jf>>2]|0)>>>0?(c[hg>>2]=c[pg>>2],c[c[Hf>>2]>>2]=(c[Mf>>2]|0)-(c[og>>2]|0)+2,c[(c[Hf>>2]|0)+4>>2]=c[pg>>2],c[fg>>2]=1,((c[pg>>2]|0)>>>0>(c[Kf>>2]|0)>>>0?1:((c[Cf>>2]|0)+(c[pg>>2]|0)|0)==(c[Df>>2]|0))|0):0){c[(c[Af>>2]|0)+24>>2]=(c[Mf>>2]|0)+1;c[zf>>2]=1;break;}}c[(c[Pf>>2]|0)+(c[Qf>>2]<<2)>>2]=c[Mf>>2];while(1){aj=c[gg>>2]|0;c[gg>>2]=aj+-1;if(!aj)break;if((c[Rf>>2]|0)>>>0<=(c[ag>>2]|0)>>>0)break;c[sg>>2]=(c[Sf>>2]|0)+((c[Rf>>2]&c[Uf>>2])<<1<<2);c[tg>>2]=(c[Vf>>2]|0)>>>0<(c[Wf>>2]|0)>>>0?c[Vf>>2]|0:c[Wf>>2]|0;if(c[Ef>>2]|0?((c[Rf>>2]|0)+(c[tg>>2]|0)|0)>>>0<(c[Yf>>2]|0)>>>0:0){c[ug>>2]=(c[Xf>>2]|0)+(c[Rf>>2]|0);aj=Uj((c[Cf>>2]|0)+(c[tg>>2]|0)|0,(c[ug>>2]|0)+(c[tg>>2]|0)|0,c[Df>>2]|0,c[Zf>>2]|0,c[_f>>2]|0)|0;c[tg>>2]=(c[tg>>2]|0)+aj;if(((c[Rf>>2]|0)+(c[tg>>2]|0)|0)>>>0>=(c[Yf>>2]|0)>>>0)c[ug>>2]=(c[Lf>>2]|0)+(c[Rf>>2]|0);}else{c[ug>>2]=(c[Lf>>2]|0)+(c[Rf>>2]|0);aj=Tj((c[Cf>>2]|0)+(c[tg>>2]|0)|0,(c[ug>>2]|0)+(c[tg>>2]|0)|0,c[Df>>2]|0)|0;c[tg>>2]=(c[tg>>2]|0)+aj;}if((c[tg>>2]|0)>>>0>(c[hg>>2]|0)>>>0){if((c[tg>>2]|0)>>>0>((c[dg>>2]|0)-(c[Rf>>2]|0)|0)>>>0)c[dg>>2]=(c[Rf>>2]|0)+(c[tg>>2]|0);c[hg>>2]=c[tg>>2];c[(c[Hf>>2]|0)+(c[fg>>2]<<3)>>2]=(c[Mf>>2]|0)-(c[Rf>>2]|0)+2;c[(c[Hf>>2]|0)+(c[fg>>2]<<3)+4>>2]=c[tg>>2];c[fg>>2]=(c[fg>>2]|0)+1;if((c[tg>>2]|0)>>>0>4096)break;if(((c[Cf>>2]|0)+(c[tg>>2]|0)|0)==(c[Df>>2]|0))break;}aj=c[Rf>>2]|0;if((d[(c[ug>>2]|0)+(c[tg>>2]|0)>>0]|0|0)<(d[(c[Cf>>2]|0)+(c[tg>>2]|0)>>0]|0|0)){c[c[bg>>2]>>2]=aj;c[Vf>>2]=c[tg>>2];if((c[Rf>>2]|0)>>>0<=(c[$f>>2]|0)>>>0){dj=109;break;}c[bg>>2]=(c[sg>>2]|0)+4;c[Rf>>2]=c[(c[sg>>2]|0)+4>>2];}else{c[c[cg>>2]>>2]=aj;c[Wf>>2]=c[tg>>2];if((c[Rf>>2]|0)>>>0<=(c[$f>>2]|0)>>>0){dj=112;break;}c[cg>>2]=c[sg>>2];c[Rf>>2]=c[c[sg>>2]>>2];}}if((dj|0)==109){dj=0;c[bg>>2]=eg;}else if((dj|0)==112){dj=0;c[cg>>2]=eg;}c[c[cg>>2]>>2]=0;c[c[bg>>2]>>2]=0;c[(c[Af>>2]|0)+24>>2]=(c[dg>>2]|0)-8;c[zf>>2]=c[fg>>2];}}while(0);c[Ah>>2]=c[zf>>2];break a;}}}}while(0);c[ki>>2]=c[Ah>>2];if(!(c[ki>>2]|0)){c[Vh>>2]=(c[Vh>>2]|0)+1;continue;}c[li>>2]=0;while(1){if((c[li>>2]|0)>>>0>=3)break;c[(c[bi>>2]|0)+16+(c[li>>2]<<2)>>2]=c[(c[Nh>>2]|0)+(c[li>>2]<<2)>>2];c[li>>2]=(c[li>>2]|0)+1;}c[(c[bi>>2]|0)+8>>2]=1;c[(c[bi>>2]|0)+12>>2]=c[ii>>2];c[mi>>2]=c[(c[ci>>2]|0)+((c[ki>>2]|0)-1<<3)+4>>2];do{if((c[mi>>2]|0)>>>0<=(c[$h>>2]|0)>>>0){c[ni>>2]=om(di,c[Wh>>2]|0,c[ii>>2]|0,c[Th>>2]|0)|0;c[oi>>2]=0;while(1){if((c[oi>>2]|0)>>>0>=(c[ai>>2]|0)>>>0)break;c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+8>>2]=1;c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)>>2]=1073741824;c[oi>>2]=(c[oi>>2]|0)+1;}c[pi>>2]=0;while(1){if((c[pi>>2]|0)>>>0>=(c[ki>>2]|0)>>>0)break;c[qi>>2]=c[(c[ci>>2]|0)+(c[pi>>2]<<3)>>2];c[ri>>2]=c[(c[ci>>2]|0)+(c[pi>>2]<<3)+4>>2];pm(si,c[Nh>>2]|0,c[qi>>2]|0,c[ji>>2]|0);while(1){if((c[oi>>2]|0)>>>0>(c[ri>>2]|0)>>>0)break;aj=c[ni>>2]|0;Zh=c[oi>>2]|0;Uh=c[Th>>2]|0;_i=c[Rh>>2]|0;c[yd>>2]=c[qi>>2];c[zd>>2]=Zh;c[Ad>>2]=Uh;c[Bd>>2]=_i;c[Dd>>2]=qm((c[yd>>2]|0)+1|0)|0;c[Ed>>2]=(c[zd>>2]|0)-3;if(c[(c[Ad>>2]|0)+56>>2]|0){_i=(qm((c[Ed>>2]|0)+1|0)|0)+16|0;c[xd>>2]=_i+(c[Dd>>2]|0);}else{_i=(c[Dd>>2]|0)+(c[(c[Ad>>2]|0)+52>>2]|0)|0;c[Cd>>2]=_i-(qm((c[(c[(c[Ad>>2]|0)+12>>2]|0)+(c[Dd>>2]<<2)>>2]|0)+1|0)|0);if((c[Bd>>2]|0)<2&(c[Dd>>2]|0)>>>0>=20)c[Cd>>2]=(c[Cd>>2]|0)+((c[Dd>>2]|0)-19<<1);c[Fd>>2]=rm(c[Ed>>2]|0)|0;_i=(c[5840+(c[Fd>>2]<<2)>>2]|0)+(c[(c[Ad>>2]|0)+48>>2]|0)|0;Uh=_i-(qm((c[(c[(c[Ad>>2]|0)+8>>2]|0)+(c[Fd>>2]<<2)>>2]|0)+1|0)|0)|0;c[Cd>>2]=(c[Cd>>2]|0)+Uh;c[xd>>2]=c[Cd>>2];}c[ti>>2]=aj+(c[xd>>2]|0);c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+8>>2]=c[oi>>2];c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+4>>2]=c[qi>>2];c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+12>>2]=c[ii>>2];c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)>>2]=c[ti>>2];aj=(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+16|0;c[aj>>2]=c[si>>2];c[aj+4>>2]=c[si+4>>2];c[aj+8>>2]=c[si+8>>2];c[oi>>2]=(c[oi>>2]|0)+1;}c[pi>>2]=(c[pi>>2]|0)+1;}c[fi>>2]=(c[oi>>2]|0)-1;c[ei>>2]=1;b:while(1){if((c[ei>>2]|0)>>>0>(c[fi>>2]|0)>>>0){dj=504;break;}c[ui>>2]=(c[Vh>>2]|0)+(c[ei>>2]|0);if((c[(c[bi>>2]|0)+(((c[ei>>2]|0)-1|0)*28|0)+8>>2]|0)==1)oj=(c[(c[bi>>2]|0)+(((c[ei>>2]|0)-1|0)*28|0)+12>>2]|0)+1|0;else oj=1;c[vi>>2]=oj;if((c[ei>>2]|0)>>>0>(c[vi>>2]|0)>>>0){aj=c[(c[bi>>2]|0)+(((c[ei>>2]|0)-(c[vi>>2]|0)|0)*28|0)>>2]|0;c[wi>>2]=aj+(sm((c[ui>>2]|0)+(0-(c[vi>>2]|0))|0,c[vi>>2]|0,c[Th>>2]|0)|0);}else c[wi>>2]=tm(di,c[Wh>>2]|0,c[vi>>2]|0,c[Th>>2]|0)|0;if((c[wi>>2]|0)<=(c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)>>2]|0)){c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+8>>2]=1;c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+4>>2]=0;c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+12>>2]=c[vi>>2];c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)>>2]=c[wi>>2];aj=(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+16|0;Uh=(c[bi>>2]|0)+(((c[ei>>2]|0)-1|0)*28|0)+16|0;c[aj>>2]=c[Uh>>2];c[aj+4>>2]=c[Uh+4>>2];c[aj+8>>2]=c[Uh+8>>2];}c:do{if((c[ui>>2]|0)>>>0<=(c[Yh>>2]|0)>>>0){if((c[ei>>2]|0)==(c[fi>>2]|0)){dj=504;break b;}if((c[Rh>>2]|0)==0?(c[(c[bi>>2]|0)+(((c[ei>>2]|0)+1|0)*28|0)>>2]|0)<=(c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)>>2]|0):0)break;c[xi>>2]=(c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+8>>2]|0)!=1&1;if((c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+8>>2]|0)==1)pj=c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+12>>2]|0;else pj=0;c[yi>>2]=pj;if((c[ei>>2]|0)>>>0>(c[yi>>2]|0)>>>0)qj=c[(c[bi>>2]|0)+(((c[ei>>2]|0)-(c[yi>>2]|0)|0)*28|0)>>2]|0;else qj=0;c[zi>>2]=qj;Uh=c[zi>>2]|0;c[Ai>>2]=Uh+(um((c[ui>>2]|0)+(0-(c[yi>>2]|0))|0,c[yi>>2]|0,c[Th>>2]|0)|0);Uh=c[Oh>>2]|0;aj=c[ui>>2]|0;_i=c[Xh>>2]|0;Zh=c[Sh>>2]|0;Zi=(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+16|0;Ph=c[xi>>2]|0;Qh=c[ci>>2]|0;_h=c[ai>>2]|0;c[nd>>2]=c[Lh>>2];c[od>>2]=Uh;c[pd>>2]=aj;c[qd>>2]=_i;c[rd>>2]=Zh;c[sd>>2]=Zi;c[td>>2]=Ph;c[ud>>2]=Qh;c[vd>>2]=_h;c[wd>>2]=c[(c[od>>2]|0)+16>>2];d:do{if((c[pd>>2]|0)>>>0<((c[(c[nd>>2]|0)+4>>2]|0)+(c[(c[nd>>2]|0)+24>>2]|0)|0)>>>0)c[md>>2]=0;else{_h=c[od>>2]|0;Qh=c[pd>>2]|0;Ph=c[qd>>2]|0;Zi=c[wd>>2]|0;Zh=c[rd>>2]|0;c[dd>>2]=c[nd>>2];c[ed>>2]=_h;c[fd>>2]=Qh;c[gd>>2]=Ph;c[hd>>2]=Zi;c[id>>2]=Zh;c[jd>>2]=c[(c[dd>>2]|0)+4>>2];c[kd>>2]=(c[fd>>2]|0)-(c[jd>>2]|0);c[ld>>2]=c[(c[dd>>2]|0)+24>>2];while(1){if((c[ld>>2]|0)>>>0>=(c[kd>>2]|0)>>>0)break;Zh=Rj(c[dd>>2]|0,c[ed>>2]|0,(c[jd>>2]|0)+(c[ld>>2]|0)|0,c[gd>>2]|0,c[hd>>2]|0,c[id>>2]|0)|0;c[ld>>2]=(c[ld>>2]|0)+Zh;}c[(c[dd>>2]|0)+24>>2]=c[kd>>2];switch(c[wd>>2]|0){case 3:{Zh=c[od>>2]|0;Zi=c[pd>>2]|0;Ph=c[qd>>2]|0;Qh=c[rd>>2]|0;_h=c[sd>>2]|0;_i=c[td>>2]|0;aj=c[ud>>2]|0;Uh=c[vd>>2]|0;c[ic>>2]=c[nd>>2];c[jc>>2]=Zh;c[kc>>2]=Zi;c[lc>>2]=Ph;c[mc>>2]=Qh;c[nc>>2]=_h;c[oc>>2]=_i;c[pc>>2]=aj;c[qc>>2]=Uh;c[rc>>2]=3;if((c[(c[jc>>2]|0)+20>>2]|0)>>>0<4095)rj=c[(c[jc>>2]|0)+20>>2]|0;else rj=4095;c[sc>>2]=rj;c[tc>>2]=c[(c[ic>>2]|0)+4>>2];c[uc>>2]=(c[kc>>2]|0)-(c[tc>>2]|0);c[vc>>2]=c[(c[jc>>2]|0)+8>>2];c[wc>>2]=(c[rc>>2]|0)==3?3:4;c[xc>>2]=c[(c[ic>>2]|0)+36>>2];c[yc>>2]=Sj(c[kc>>2]|0,c[vc>>2]|0,c[rc>>2]|0)|0;c[zc>>2]=c[(c[xc>>2]|0)+(c[yc>>2]<<2)>>2];c[Ac>>2]=c[(c[ic>>2]|0)+44>>2];c[Bc>>2]=(c[(c[jc>>2]|0)+4>>2]|0)-1;c[Cc>>2]=(1<<c[Bc>>2])-1;c[Dc>>2]=0;c[Ec>>2]=0;c[Fc>>2]=c[(c[ic>>2]|0)+8>>2];c[Gc>>2]=c[(c[ic>>2]|0)+12>>2];c[Hc>>2]=(c[Fc>>2]|0)+(c[Gc>>2]|0);c[Ic>>2]=(c[tc>>2]|0)+(c[Gc>>2]|0);if((c[Cc>>2]|0)>>>0>=(c[uc>>2]|0)>>>0)sj=0;else sj=(c[uc>>2]|0)-(c[Cc>>2]|0)|0;c[Jc>>2]=sj;c[Kc>>2]=c[(c[ic>>2]|0)+16>>2];c[Lc>>2]=(c[Ac>>2]|0)+((c[uc>>2]&c[Cc>>2])<<1<<2);c[Mc>>2]=(c[Ac>>2]|0)+((c[uc>>2]&c[Cc>>2])<<1<<2)+4;c[Nc>>2]=(c[uc>>2]|0)+8+1;c[Pc>>2]=0;c[Qc>>2]=1<<c[(c[jc>>2]|0)+12>>2];c[Rc>>2]=(c[qc>>2]|0)-1;c[Sc>>2]=3+(c[oc>>2]|0);c[Tc>>2]=c[oc>>2];while(1){if((c[Tc>>2]|0)>>>0>=(c[Sc>>2]|0)>>>0){dj=287;break;}Uh=c[nc>>2]|0;if((c[Tc>>2]|0)==3)tj=(c[Uh>>2]|0)-1|0;else tj=c[Uh+(c[Tc>>2]<<2)>>2]|0;c[Uc>>2]=tj;c[Vc>>2]=(c[uc>>2]|0)-(c[Uc>>2]|0);c[Wc>>2]=0;do{if(((c[Uc>>2]|0)-1|0)>>>0<((c[uc>>2]|0)-(c[Gc>>2]|0)|0)>>>0){Uh=mm(c[kc>>2]|0,c[wc>>2]|0)|0;if((Uh|0)!=(mm((c[kc>>2]|0)+(0-(c[Uc>>2]|0))|0,c[wc>>2]|0)|0))break;Uh=Tj((c[kc>>2]|0)+(c[wc>>2]|0)|0,(c[kc>>2]|0)+(c[wc>>2]|0)+(0-(c[Uc>>2]|0))|0,c[lc>>2]|0)|0;c[Wc>>2]=Uh+(c[wc>>2]|0);}else{c[Xc>>2]=(c[Fc>>2]|0)+(c[Vc>>2]|0);if(!(c[mc>>2]|0))break;if(!((((c[Gc>>2]|0)-1-(c[Vc>>2]|0)|0)>>>0>=3?((c[Uc>>2]|0)-1|0)>>>0<((c[uc>>2]|0)-(c[Kc>>2]|0)|0)>>>0:0)|0))break;Uh=mm(c[kc>>2]|0,c[wc>>2]|0)|0;if((Uh|0)!=(mm(c[Xc>>2]|0,c[wc>>2]|0)|0))break;Uh=Uj((c[kc>>2]|0)+(c[wc>>2]|0)|0,(c[Xc>>2]|0)+(c[wc>>2]|0)|0,c[lc>>2]|0,c[Hc>>2]|0,c[Ic>>2]|0)|0;c[Wc>>2]=Uh+(c[wc>>2]|0);}}while(0);if((c[Wc>>2]|0)>>>0>(c[Rc>>2]|0)>>>0?(c[Rc>>2]=c[Wc>>2],c[(c[pc>>2]|0)+(c[Pc>>2]<<3)>>2]=(c[Tc>>2]|0)-(c[oc>>2]|0),c[(c[pc>>2]|0)+(c[Pc>>2]<<3)+4>>2]=c[Wc>>2],c[Pc>>2]=(c[Pc>>2]|0)+1,((c[Wc>>2]|0)>>>0>(c[sc>>2]|0)>>>0?1:((c[kc>>2]|0)+(c[Wc>>2]|0)|0)==(c[lc>>2]|0))|0):0){dj=285;break;}c[Tc>>2]=(c[Tc>>2]|0)+1;}e:do{if((dj|0)==285){dj=0;c[hc>>2]=c[Pc>>2];}else if((dj|0)==287){dj=0;do{if((c[rc>>2]|0)==3){if((c[Rc>>2]|0)>>>0>=(c[rc>>2]|0)>>>0)break;c[Yc>>2]=nm(c[ic>>2]|0,c[kc>>2]|0)|0;if(!(((c[Yc>>2]|0)>>>0>(c[Kc>>2]|0)>>>0?((c[uc>>2]|0)-(c[Yc>>2]|0)|0)>>>0<262144:0)|0))break;do{if(c[mc>>2]|0){if((c[Yc>>2]|0)>>>0>=(c[Gc>>2]|0)>>>0){dj=292;break;}c[$c>>2]=(c[Fc>>2]|0)+(c[Yc>>2]|0);c[Zc>>2]=Uj(c[kc>>2]|0,c[$c>>2]|0,c[lc>>2]|0,c[Hc>>2]|0,c[Ic>>2]|0)|0;}else dj=292;}while(0);if((dj|0)==292){dj=0;c[_c>>2]=(c[tc>>2]|0)+(c[Yc>>2]|0);c[Zc>>2]=Tj(c[kc>>2]|0,c[_c>>2]|0,c[lc>>2]|0)|0;}if((c[Zc>>2]|0)>>>0<(c[rc>>2]|0)>>>0)break;c[Rc>>2]=c[Zc>>2];c[c[pc>>2]>>2]=(c[uc>>2]|0)-(c[Yc>>2]|0)+2;c[(c[pc>>2]|0)+4>>2]=c[Zc>>2];c[Pc>>2]=1;if(!(((c[Zc>>2]|0)>>>0>(c[sc>>2]|0)>>>0?1:((c[kc>>2]|0)+(c[Zc>>2]|0)|0)==(c[lc>>2]|0))|0))break;c[(c[ic>>2]|0)+24>>2]=(c[uc>>2]|0)+1;c[hc>>2]=1;break e;}}while(0);c[(c[xc>>2]|0)+(c[yc>>2]<<2)>>2]=c[uc>>2];while(1){Uh=c[Qc>>2]|0;c[Qc>>2]=Uh+-1;if(!Uh)break;if((c[zc>>2]|0)>>>0<=(c[Kc>>2]|0)>>>0)break;c[ad>>2]=(c[Ac>>2]|0)+((c[zc>>2]&c[Cc>>2])<<1<<2);c[bd>>2]=(c[Dc>>2]|0)>>>0<(c[Ec>>2]|0)>>>0?c[Dc>>2]|0:c[Ec>>2]|0;do{if(c[mc>>2]|0){if(((c[zc>>2]|0)+(c[bd>>2]|0)|0)>>>0>=(c[Gc>>2]|0)>>>0){dj=302;break;}c[cd>>2]=(c[Fc>>2]|0)+(c[zc>>2]|0);Uh=Uj((c[kc>>2]|0)+(c[bd>>2]|0)|0,(c[cd>>2]|0)+(c[bd>>2]|0)|0,c[lc>>2]|0,c[Hc>>2]|0,c[Ic>>2]|0)|0;c[bd>>2]=(c[bd>>2]|0)+Uh;if(((c[zc>>2]|0)+(c[bd>>2]|0)|0)>>>0<(c[Gc>>2]|0)>>>0)break;c[cd>>2]=(c[tc>>2]|0)+(c[zc>>2]|0);}else dj=302;}while(0);if((dj|0)==302){dj=0;c[cd>>2]=(c[tc>>2]|0)+(c[zc>>2]|0);Uh=Tj((c[kc>>2]|0)+(c[bd>>2]|0)|0,(c[cd>>2]|0)+(c[bd>>2]|0)|0,c[lc>>2]|0)|0;c[bd>>2]=(c[bd>>2]|0)+Uh;}if((c[bd>>2]|0)>>>0>(c[Rc>>2]|0)>>>0){if((c[bd>>2]|0)>>>0>((c[Nc>>2]|0)-(c[zc>>2]|0)|0)>>>0)c[Nc>>2]=(c[zc>>2]|0)+(c[bd>>2]|0);c[Rc>>2]=c[bd>>2];c[(c[pc>>2]|0)+(c[Pc>>2]<<3)>>2]=(c[uc>>2]|0)-(c[zc>>2]|0)+2;c[(c[pc>>2]|0)+(c[Pc>>2]<<3)+4>>2]=c[bd>>2];c[Pc>>2]=(c[Pc>>2]|0)+1;if((c[bd>>2]|0)>>>0>4096)break;if(((c[kc>>2]|0)+(c[bd>>2]|0)|0)==(c[lc>>2]|0))break;}Uh=c[zc>>2]|0;if((d[(c[cd>>2]|0)+(c[bd>>2]|0)>>0]|0|0)<(d[(c[kc>>2]|0)+(c[bd>>2]|0)>>0]|0|0)){c[c[Lc>>2]>>2]=Uh;c[Dc>>2]=c[bd>>2];if((c[zc>>2]|0)>>>0<=(c[Jc>>2]|0)>>>0){dj=312;break;}c[Lc>>2]=(c[ad>>2]|0)+4;c[zc>>2]=c[(c[ad>>2]|0)+4>>2];}else{c[c[Mc>>2]>>2]=Uh;c[Ec>>2]=c[bd>>2];if((c[zc>>2]|0)>>>0<=(c[Jc>>2]|0)>>>0){dj=315;break;}c[Mc>>2]=c[ad>>2];c[zc>>2]=c[c[ad>>2]>>2];}}if((dj|0)==312){dj=0;c[Lc>>2]=Oc;}else if((dj|0)==315){dj=0;c[Mc>>2]=Oc;}c[c[Mc>>2]>>2]=0;c[c[Lc>>2]>>2]=0;c[(c[ic>>2]|0)+24>>2]=(c[Nc>>2]|0)-8;c[hc>>2]=c[Pc>>2];}}while(0);c[md>>2]=c[hc>>2];break d;break;}case 7:case 6:{Uh=c[od>>2]|0;aj=c[pd>>2]|0;_i=c[qd>>2]|0;_h=c[rd>>2]|0;Qh=c[sd>>2]|0;Ph=c[td>>2]|0;Zi=c[ud>>2]|0;Zh=c[vd>>2]|0;c[u>>2]=c[nd>>2];c[v>>2]=Uh;c[w>>2]=aj;c[x>>2]=_i;c[y>>2]=_h;c[z>>2]=Qh;c[A>>2]=Ph;c[B>>2]=Zi;c[C>>2]=Zh;c[D>>2]=6;if((c[(c[v>>2]|0)+20>>2]|0)>>>0<4095)uj=c[(c[v>>2]|0)+20>>2]|0;else uj=4095;c[E>>2]=uj;c[F>>2]=c[(c[u>>2]|0)+4>>2];c[G>>2]=(c[w>>2]|0)-(c[F>>2]|0);c[H>>2]=c[(c[v>>2]|0)+8>>2];c[I>>2]=(c[D>>2]|0)==3?3:4;c[J>>2]=c[(c[u>>2]|0)+36>>2];c[K>>2]=Sj(c[w>>2]|0,c[H>>2]|0,c[D>>2]|0)|0;c[L>>2]=c[(c[J>>2]|0)+(c[K>>2]<<2)>>2];c[M>>2]=c[(c[u>>2]|0)+44>>2];c[N>>2]=(c[(c[v>>2]|0)+4>>2]|0)-1;c[O>>2]=(1<<c[N>>2])-1;c[P>>2]=0;c[Q>>2]=0;c[R>>2]=c[(c[u>>2]|0)+8>>2];c[S>>2]=c[(c[u>>2]|0)+12>>2];c[T>>2]=(c[R>>2]|0)+(c[S>>2]|0);c[U>>2]=(c[F>>2]|0)+(c[S>>2]|0);if((c[O>>2]|0)>>>0>=(c[G>>2]|0)>>>0)vj=0;else vj=(c[G>>2]|0)-(c[O>>2]|0)|0;c[V>>2]=vj;c[W>>2]=c[(c[u>>2]|0)+16>>2];c[X>>2]=(c[M>>2]|0)+((c[G>>2]&c[O>>2])<<1<<2);c[Y>>2]=(c[M>>2]|0)+((c[G>>2]&c[O>>2])<<1<<2)+4;c[Z>>2]=(c[G>>2]|0)+8+1;c[$>>2]=0;c[aa>>2]=1<<c[(c[v>>2]|0)+12>>2];c[ba>>2]=(c[C>>2]|0)-1;c[ca>>2]=3+(c[A>>2]|0);c[da>>2]=c[A>>2];while(1){if((c[da>>2]|0)>>>0>=(c[ca>>2]|0)>>>0){dj=446;break;}Zh=c[z>>2]|0;if((c[da>>2]|0)==3)wj=(c[Zh>>2]|0)-1|0;else wj=c[Zh+(c[da>>2]<<2)>>2]|0;c[ea>>2]=wj;c[fa>>2]=(c[G>>2]|0)-(c[ea>>2]|0);c[ga>>2]=0;do{if(((c[ea>>2]|0)-1|0)>>>0<((c[G>>2]|0)-(c[S>>2]|0)|0)>>>0){Zh=mm(c[w>>2]|0,c[I>>2]|0)|0;if((Zh|0)!=(mm((c[w>>2]|0)+(0-(c[ea>>2]|0))|0,c[I>>2]|0)|0))break;Zh=Tj((c[w>>2]|0)+(c[I>>2]|0)|0,(c[w>>2]|0)+(c[I>>2]|0)+(0-(c[ea>>2]|0))|0,c[x>>2]|0)|0;c[ga>>2]=Zh+(c[I>>2]|0);}else{c[ha>>2]=(c[R>>2]|0)+(c[fa>>2]|0);if(!(c[y>>2]|0))break;if(!((((c[S>>2]|0)-1-(c[fa>>2]|0)|0)>>>0>=3?((c[ea>>2]|0)-1|0)>>>0<((c[G>>2]|0)-(c[W>>2]|0)|0)>>>0:0)|0))break;Zh=mm(c[w>>2]|0,c[I>>2]|0)|0;if((Zh|0)!=(mm(c[ha>>2]|0,c[I>>2]|0)|0))break;Zh=Uj((c[w>>2]|0)+(c[I>>2]|0)|0,(c[ha>>2]|0)+(c[I>>2]|0)|0,c[x>>2]|0,c[T>>2]|0,c[U>>2]|0)|0;c[ga>>2]=Zh+(c[I>>2]|0);}}while(0);if((c[ga>>2]|0)>>>0>(c[ba>>2]|0)>>>0?(c[ba>>2]=c[ga>>2],c[(c[B>>2]|0)+(c[$>>2]<<3)>>2]=(c[da>>2]|0)-(c[A>>2]|0),c[(c[B>>2]|0)+(c[$>>2]<<3)+4>>2]=c[ga>>2],c[$>>2]=(c[$>>2]|0)+1,((c[ga>>2]|0)>>>0>(c[E>>2]|0)>>>0?1:((c[w>>2]|0)+(c[ga>>2]|0)|0)==(c[x>>2]|0))|0):0){dj=444;break;}c[da>>2]=(c[da>>2]|0)+1;}f:do{if((dj|0)==444){dj=0;c[t>>2]=c[$>>2];}else if((dj|0)==446){dj=0;do{if((c[D>>2]|0)==3){if((c[ba>>2]|0)>>>0>=(c[D>>2]|0)>>>0)break;c[ia>>2]=nm(c[u>>2]|0,c[w>>2]|0)|0;if(!(((c[ia>>2]|0)>>>0>(c[W>>2]|0)>>>0?((c[G>>2]|0)-(c[ia>>2]|0)|0)>>>0<262144:0)|0))break;do{if(c[y>>2]|0){if((c[ia>>2]|0)>>>0>=(c[S>>2]|0)>>>0){dj=451;break;}c[la>>2]=(c[R>>2]|0)+(c[ia>>2]|0);c[ja>>2]=Uj(c[w>>2]|0,c[la>>2]|0,c[x>>2]|0,c[T>>2]|0,c[U>>2]|0)|0;}else dj=451;}while(0);if((dj|0)==451){dj=0;c[ka>>2]=(c[F>>2]|0)+(c[ia>>2]|0);c[ja>>2]=Tj(c[w>>2]|0,c[ka>>2]|0,c[x>>2]|0)|0;}if((c[ja>>2]|0)>>>0<(c[D>>2]|0)>>>0)break;c[ba>>2]=c[ja>>2];c[c[B>>2]>>2]=(c[G>>2]|0)-(c[ia>>2]|0)+2;c[(c[B>>2]|0)+4>>2]=c[ja>>2];c[$>>2]=1;if(!(((c[ja>>2]|0)>>>0>(c[E>>2]|0)>>>0?1:((c[w>>2]|0)+(c[ja>>2]|0)|0)==(c[x>>2]|0))|0))break;c[(c[u>>2]|0)+24>>2]=(c[G>>2]|0)+1;c[t>>2]=1;break f;}}while(0);c[(c[J>>2]|0)+(c[K>>2]<<2)>>2]=c[G>>2];while(1){Zh=c[aa>>2]|0;c[aa>>2]=Zh+-1;if(!Zh)break;if((c[L>>2]|0)>>>0<=(c[W>>2]|0)>>>0)break;c[ma>>2]=(c[M>>2]|0)+((c[L>>2]&c[O>>2])<<1<<2);c[na>>2]=(c[P>>2]|0)>>>0<(c[Q>>2]|0)>>>0?c[P>>2]|0:c[Q>>2]|0;do{if(c[y>>2]|0){if(((c[L>>2]|0)+(c[na>>2]|0)|0)>>>0>=(c[S>>2]|0)>>>0){dj=461;break;}c[oa>>2]=(c[R>>2]|0)+(c[L>>2]|0);Zh=Uj((c[w>>2]|0)+(c[na>>2]|0)|0,(c[oa>>2]|0)+(c[na>>2]|0)|0,c[x>>2]|0,c[T>>2]|0,c[U>>2]|0)|0;c[na>>2]=(c[na>>2]|0)+Zh;if(((c[L>>2]|0)+(c[na>>2]|0)|0)>>>0<(c[S>>2]|0)>>>0)break;c[oa>>2]=(c[F>>2]|0)+(c[L>>2]|0);}else dj=461;}while(0);if((dj|0)==461){dj=0;c[oa>>2]=(c[F>>2]|0)+(c[L>>2]|0);Zh=Tj((c[w>>2]|0)+(c[na>>2]|0)|0,(c[oa>>2]|0)+(c[na>>2]|0)|0,c[x>>2]|0)|0;c[na>>2]=(c[na>>2]|0)+Zh;}if((c[na>>2]|0)>>>0>(c[ba>>2]|0)>>>0){if((c[na>>2]|0)>>>0>((c[Z>>2]|0)-(c[L>>2]|0)|0)>>>0)c[Z>>2]=(c[L>>2]|0)+(c[na>>2]|0);c[ba>>2]=c[na>>2];c[(c[B>>2]|0)+(c[$>>2]<<3)>>2]=(c[G>>2]|0)-(c[L>>2]|0)+2;c[(c[B>>2]|0)+(c[$>>2]<<3)+4>>2]=c[na>>2];c[$>>2]=(c[$>>2]|0)+1;if((c[na>>2]|0)>>>0>4096)break;if(((c[w>>2]|0)+(c[na>>2]|0)|0)==(c[x>>2]|0))break;}Zh=c[L>>2]|0;if((d[(c[oa>>2]|0)+(c[na>>2]|0)>>0]|0|0)<(d[(c[w>>2]|0)+(c[na>>2]|0)>>0]|0|0)){c[c[X>>2]>>2]=Zh;c[P>>2]=c[na>>2];if((c[L>>2]|0)>>>0<=(c[V>>2]|0)>>>0){dj=471;break;}c[X>>2]=(c[ma>>2]|0)+4;c[L>>2]=c[(c[ma>>2]|0)+4>>2];}else{c[c[Y>>2]>>2]=Zh;c[Q>>2]=c[na>>2];if((c[L>>2]|0)>>>0<=(c[V>>2]|0)>>>0){dj=474;break;}c[Y>>2]=c[ma>>2];c[L>>2]=c[c[ma>>2]>>2];}}if((dj|0)==471){dj=0;c[X>>2]=_;}else if((dj|0)==474){dj=0;c[Y>>2]=_;}c[c[Y>>2]>>2]=0;c[c[X>>2]>>2]=0;c[(c[u>>2]|0)+24>>2]=(c[Z>>2]|0)-8;c[t>>2]=c[$>>2];}}while(0);c[md>>2]=c[t>>2];break d;break;}case 5:{Zh=c[od>>2]|0;Zi=c[pd>>2]|0;Ph=c[qd>>2]|0;Qh=c[rd>>2]|0;_h=c[sd>>2]|0;_i=c[td>>2]|0;aj=c[ud>>2]|0;Uh=c[vd>>2]|0;c[qa>>2]=c[nd>>2];c[ra>>2]=Zh;c[sa>>2]=Zi;c[ta>>2]=Ph;c[ua>>2]=Qh;c[va>>2]=_h;c[wa>>2]=_i;c[xa>>2]=aj;c[ya>>2]=Uh;c[za>>2]=5;if((c[(c[ra>>2]|0)+20>>2]|0)>>>0<4095)xj=c[(c[ra>>2]|0)+20>>2]|0;else xj=4095;c[Aa>>2]=xj;c[Ba>>2]=c[(c[qa>>2]|0)+4>>2];c[Ca>>2]=(c[sa>>2]|0)-(c[Ba>>2]|0);c[Da>>2]=c[(c[ra>>2]|0)+8>>2];c[Ea>>2]=(c[za>>2]|0)==3?3:4;c[Fa>>2]=c[(c[qa>>2]|0)+36>>2];c[Ga>>2]=Sj(c[sa>>2]|0,c[Da>>2]|0,c[za>>2]|0)|0;c[Ha>>2]=c[(c[Fa>>2]|0)+(c[Ga>>2]<<2)>>2];c[Ia>>2]=c[(c[qa>>2]|0)+44>>2];c[Ja>>2]=(c[(c[ra>>2]|0)+4>>2]|0)-1;c[Ka>>2]=(1<<c[Ja>>2])-1;c[La>>2]=0;c[Ma>>2]=0;c[Na>>2]=c[(c[qa>>2]|0)+8>>2];c[Oa>>2]=c[(c[qa>>2]|0)+12>>2];c[Pa>>2]=(c[Na>>2]|0)+(c[Oa>>2]|0);c[Qa>>2]=(c[Ba>>2]|0)+(c[Oa>>2]|0);if((c[Ka>>2]|0)>>>0>=(c[Ca>>2]|0)>>>0)yj=0;else yj=(c[Ca>>2]|0)-(c[Ka>>2]|0)|0;c[Ra>>2]=yj;c[Sa>>2]=c[(c[qa>>2]|0)+16>>2];c[Ta>>2]=(c[Ia>>2]|0)+((c[Ca>>2]&c[Ka>>2])<<1<<2);c[Ua>>2]=(c[Ia>>2]|0)+((c[Ca>>2]&c[Ka>>2])<<1<<2)+4;c[Va>>2]=(c[Ca>>2]|0)+8+1;c[Xa>>2]=0;c[Ya>>2]=1<<c[(c[ra>>2]|0)+12>>2];c[Za>>2]=(c[ya>>2]|0)-1;c[_a>>2]=3+(c[wa>>2]|0);c[$a>>2]=c[wa>>2];while(1){if((c[$a>>2]|0)>>>0>=(c[_a>>2]|0)>>>0){dj=393;break;}Uh=c[va>>2]|0;if((c[$a>>2]|0)==3)zj=(c[Uh>>2]|0)-1|0;else zj=c[Uh+(c[$a>>2]<<2)>>2]|0;c[ab>>2]=zj;c[bb>>2]=(c[Ca>>2]|0)-(c[ab>>2]|0);c[cb>>2]=0;do{if(((c[ab>>2]|0)-1|0)>>>0<((c[Ca>>2]|0)-(c[Oa>>2]|0)|0)>>>0){Uh=mm(c[sa>>2]|0,c[Ea>>2]|0)|0;if((Uh|0)!=(mm((c[sa>>2]|0)+(0-(c[ab>>2]|0))|0,c[Ea>>2]|0)|0))break;Uh=Tj((c[sa>>2]|0)+(c[Ea>>2]|0)|0,(c[sa>>2]|0)+(c[Ea>>2]|0)+(0-(c[ab>>2]|0))|0,c[ta>>2]|0)|0;c[cb>>2]=Uh+(c[Ea>>2]|0);}else{c[db>>2]=(c[Na>>2]|0)+(c[bb>>2]|0);if(!(c[ua>>2]|0))break;if(!((((c[Oa>>2]|0)-1-(c[bb>>2]|0)|0)>>>0>=3?((c[ab>>2]|0)-1|0)>>>0<((c[Ca>>2]|0)-(c[Sa>>2]|0)|0)>>>0:0)|0))break;Uh=mm(c[sa>>2]|0,c[Ea>>2]|0)|0;if((Uh|0)!=(mm(c[db>>2]|0,c[Ea>>2]|0)|0))break;Uh=Uj((c[sa>>2]|0)+(c[Ea>>2]|0)|0,(c[db>>2]|0)+(c[Ea>>2]|0)|0,c[ta>>2]|0,c[Pa>>2]|0,c[Qa>>2]|0)|0;c[cb>>2]=Uh+(c[Ea>>2]|0);}}while(0);if((c[cb>>2]|0)>>>0>(c[Za>>2]|0)>>>0?(c[Za>>2]=c[cb>>2],c[(c[xa>>2]|0)+(c[Xa>>2]<<3)>>2]=(c[$a>>2]|0)-(c[wa>>2]|0),c[(c[xa>>2]|0)+(c[Xa>>2]<<3)+4>>2]=c[cb>>2],c[Xa>>2]=(c[Xa>>2]|0)+1,((c[cb>>2]|0)>>>0>(c[Aa>>2]|0)>>>0?1:((c[sa>>2]|0)+(c[cb>>2]|0)|0)==(c[ta>>2]|0))|0):0){dj=391;break;}c[$a>>2]=(c[$a>>2]|0)+1;}g:do{if((dj|0)==391){dj=0;c[pa>>2]=c[Xa>>2];}else if((dj|0)==393){dj=0;do{if((c[za>>2]|0)==3){if((c[Za>>2]|0)>>>0>=(c[za>>2]|0)>>>0)break;c[eb>>2]=nm(c[qa>>2]|0,c[sa>>2]|0)|0;if(!(((c[eb>>2]|0)>>>0>(c[Sa>>2]|0)>>>0?((c[Ca>>2]|0)-(c[eb>>2]|0)|0)>>>0<262144:0)|0))break;do{if(c[ua>>2]|0){if((c[eb>>2]|0)>>>0>=(c[Oa>>2]|0)>>>0){dj=398;break;}c[hb>>2]=(c[Na>>2]|0)+(c[eb>>2]|0);c[fb>>2]=Uj(c[sa>>2]|0,c[hb>>2]|0,c[ta>>2]|0,c[Pa>>2]|0,c[Qa>>2]|0)|0;}else dj=398;}while(0);if((dj|0)==398){dj=0;c[gb>>2]=(c[Ba>>2]|0)+(c[eb>>2]|0);c[fb>>2]=Tj(c[sa>>2]|0,c[gb>>2]|0,c[ta>>2]|0)|0;}if((c[fb>>2]|0)>>>0<(c[za>>2]|0)>>>0)break;c[Za>>2]=c[fb>>2];c[c[xa>>2]>>2]=(c[Ca>>2]|0)-(c[eb>>2]|0)+2;c[(c[xa>>2]|0)+4>>2]=c[fb>>2];c[Xa>>2]=1;if(!(((c[fb>>2]|0)>>>0>(c[Aa>>2]|0)>>>0?1:((c[sa>>2]|0)+(c[fb>>2]|0)|0)==(c[ta>>2]|0))|0))break;c[(c[qa>>2]|0)+24>>2]=(c[Ca>>2]|0)+1;c[pa>>2]=1;break g;}}while(0);c[(c[Fa>>2]|0)+(c[Ga>>2]<<2)>>2]=c[Ca>>2];while(1){Uh=c[Ya>>2]|0;c[Ya>>2]=Uh+-1;if(!Uh)break;if((c[Ha>>2]|0)>>>0<=(c[Sa>>2]|0)>>>0)break;c[ib>>2]=(c[Ia>>2]|0)+((c[Ha>>2]&c[Ka>>2])<<1<<2);c[jb>>2]=(c[La>>2]|0)>>>0<(c[Ma>>2]|0)>>>0?c[La>>2]|0:c[Ma>>2]|0;do{if(c[ua>>2]|0){if(((c[Ha>>2]|0)+(c[jb>>2]|0)|0)>>>0>=(c[Oa>>2]|0)>>>0){dj=408;break;}c[kb>>2]=(c[Na>>2]|0)+(c[Ha>>2]|0);Uh=Uj((c[sa>>2]|0)+(c[jb>>2]|0)|0,(c[kb>>2]|0)+(c[jb>>2]|0)|0,c[ta>>2]|0,c[Pa>>2]|0,c[Qa>>2]|0)|0;c[jb>>2]=(c[jb>>2]|0)+Uh;if(((c[Ha>>2]|0)+(c[jb>>2]|0)|0)>>>0<(c[Oa>>2]|0)>>>0)break;c[kb>>2]=(c[Ba>>2]|0)+(c[Ha>>2]|0);}else dj=408;}while(0);if((dj|0)==408){dj=0;c[kb>>2]=(c[Ba>>2]|0)+(c[Ha>>2]|0);Uh=Tj((c[sa>>2]|0)+(c[jb>>2]|0)|0,(c[kb>>2]|0)+(c[jb>>2]|0)|0,c[ta>>2]|0)|0;c[jb>>2]=(c[jb>>2]|0)+Uh;}if((c[jb>>2]|0)>>>0>(c[Za>>2]|0)>>>0){if((c[jb>>2]|0)>>>0>((c[Va>>2]|0)-(c[Ha>>2]|0)|0)>>>0)c[Va>>2]=(c[Ha>>2]|0)+(c[jb>>2]|0);c[Za>>2]=c[jb>>2];c[(c[xa>>2]|0)+(c[Xa>>2]<<3)>>2]=(c[Ca>>2]|0)-(c[Ha>>2]|0)+2;c[(c[xa>>2]|0)+(c[Xa>>2]<<3)+4>>2]=c[jb>>2];c[Xa>>2]=(c[Xa>>2]|0)+1;if((c[jb>>2]|0)>>>0>4096)break;if(((c[sa>>2]|0)+(c[jb>>2]|0)|0)==(c[ta>>2]|0))break;}Uh=c[Ha>>2]|0;if((d[(c[kb>>2]|0)+(c[jb>>2]|0)>>0]|0|0)<(d[(c[sa>>2]|0)+(c[jb>>2]|0)>>0]|0|0)){c[c[Ta>>2]>>2]=Uh;c[La>>2]=c[jb>>2];if((c[Ha>>2]|0)>>>0<=(c[Ra>>2]|0)>>>0){dj=418;break;}c[Ta>>2]=(c[ib>>2]|0)+4;c[Ha>>2]=c[(c[ib>>2]|0)+4>>2];}else{c[c[Ua>>2]>>2]=Uh;c[Ma>>2]=c[jb>>2];if((c[Ha>>2]|0)>>>0<=(c[Ra>>2]|0)>>>0){dj=421;break;}c[Ua>>2]=c[ib>>2];c[Ha>>2]=c[c[ib>>2]>>2];}}if((dj|0)==418){dj=0;c[Ta>>2]=Wa;}else if((dj|0)==421){dj=0;c[Ua>>2]=Wa;}c[c[Ua>>2]>>2]=0;c[c[Ta>>2]>>2]=0;c[(c[qa>>2]|0)+24>>2]=(c[Va>>2]|0)-8;c[pa>>2]=c[Xa>>2];}}while(0);c[md>>2]=c[pa>>2];break d;break;}default:{Uh=c[od>>2]|0;aj=c[pd>>2]|0;_i=c[qd>>2]|0;_h=c[rd>>2]|0;Qh=c[sd>>2]|0;Ph=c[td>>2]|0;Zi=c[ud>>2]|0;Zh=c[vd>>2]|0;c[mb>>2]=c[nd>>2];c[nb>>2]=Uh;c[ob>>2]=aj;c[pb>>2]=_i;c[qb>>2]=_h;c[rb>>2]=Qh;c[sb>>2]=Ph;c[tb>>2]=Zi;c[ub>>2]=Zh;c[vb>>2]=4;if((c[(c[nb>>2]|0)+20>>2]|0)>>>0<4095)Aj=c[(c[nb>>2]|0)+20>>2]|0;else Aj=4095;c[wb>>2]=Aj;c[xb>>2]=c[(c[mb>>2]|0)+4>>2];c[yb>>2]=(c[ob>>2]|0)-(c[xb>>2]|0);c[zb>>2]=c[(c[nb>>2]|0)+8>>2];c[Ab>>2]=(c[vb>>2]|0)==3?3:4;c[Bb>>2]=c[(c[mb>>2]|0)+36>>2];c[Cb>>2]=Sj(c[ob>>2]|0,c[zb>>2]|0,c[vb>>2]|0)|0;c[Db>>2]=c[(c[Bb>>2]|0)+(c[Cb>>2]<<2)>>2];c[Eb>>2]=c[(c[mb>>2]|0)+44>>2];c[Fb>>2]=(c[(c[nb>>2]|0)+4>>2]|0)-1;c[Gb>>2]=(1<<c[Fb>>2])-1;c[Hb>>2]=0;c[Ib>>2]=0;c[Jb>>2]=c[(c[mb>>2]|0)+8>>2];c[Kb>>2]=c[(c[mb>>2]|0)+12>>2];c[Lb>>2]=(c[Jb>>2]|0)+(c[Kb>>2]|0);c[Mb>>2]=(c[xb>>2]|0)+(c[Kb>>2]|0);if((c[Gb>>2]|0)>>>0>=(c[yb>>2]|0)>>>0)Bj=0;else Bj=(c[yb>>2]|0)-(c[Gb>>2]|0)|0;c[Nb>>2]=Bj;c[Ob>>2]=c[(c[mb>>2]|0)+16>>2];c[Pb>>2]=(c[Eb>>2]|0)+((c[yb>>2]&c[Gb>>2])<<1<<2);c[Qb>>2]=(c[Eb>>2]|0)+((c[yb>>2]&c[Gb>>2])<<1<<2)+4;c[Rb>>2]=(c[yb>>2]|0)+8+1;c[Tb>>2]=0;c[Ub>>2]=1<<c[(c[nb>>2]|0)+12>>2];c[Vb>>2]=(c[ub>>2]|0)-1;c[Wb>>2]=3+(c[sb>>2]|0);c[Xb>>2]=c[sb>>2];while(1){if((c[Xb>>2]|0)>>>0>=(c[Wb>>2]|0)>>>0){dj=340;break;}Zh=c[rb>>2]|0;if((c[Xb>>2]|0)==3)Cj=(c[Zh>>2]|0)-1|0;else Cj=c[Zh+(c[Xb>>2]<<2)>>2]|0;c[Yb>>2]=Cj;c[Zb>>2]=(c[yb>>2]|0)-(c[Yb>>2]|0);c[_b>>2]=0;do{if(((c[Yb>>2]|0)-1|0)>>>0<((c[yb>>2]|0)-(c[Kb>>2]|0)|0)>>>0){Zh=mm(c[ob>>2]|0,c[Ab>>2]|0)|0;if((Zh|0)!=(mm((c[ob>>2]|0)+(0-(c[Yb>>2]|0))|0,c[Ab>>2]|0)|0))break;Zh=Tj((c[ob>>2]|0)+(c[Ab>>2]|0)|0,(c[ob>>2]|0)+(c[Ab>>2]|0)+(0-(c[Yb>>2]|0))|0,c[pb>>2]|0)|0;c[_b>>2]=Zh+(c[Ab>>2]|0);}else{c[$b>>2]=(c[Jb>>2]|0)+(c[Zb>>2]|0);if(!(c[qb>>2]|0))break;if(!((((c[Kb>>2]|0)-1-(c[Zb>>2]|0)|0)>>>0>=3?((c[Yb>>2]|0)-1|0)>>>0<((c[yb>>2]|0)-(c[Ob>>2]|0)|0)>>>0:0)|0))break;Zh=mm(c[ob>>2]|0,c[Ab>>2]|0)|0;if((Zh|0)!=(mm(c[$b>>2]|0,c[Ab>>2]|0)|0))break;Zh=Uj((c[ob>>2]|0)+(c[Ab>>2]|0)|0,(c[$b>>2]|0)+(c[Ab>>2]|0)|0,c[pb>>2]|0,c[Lb>>2]|0,c[Mb>>2]|0)|0;c[_b>>2]=Zh+(c[Ab>>2]|0);}}while(0);if((c[_b>>2]|0)>>>0>(c[Vb>>2]|0)>>>0?(c[Vb>>2]=c[_b>>2],c[(c[tb>>2]|0)+(c[Tb>>2]<<3)>>2]=(c[Xb>>2]|0)-(c[sb>>2]|0),c[(c[tb>>2]|0)+(c[Tb>>2]<<3)+4>>2]=c[_b>>2],c[Tb>>2]=(c[Tb>>2]|0)+1,((c[_b>>2]|0)>>>0>(c[wb>>2]|0)>>>0?1:((c[ob>>2]|0)+(c[_b>>2]|0)|0)==(c[pb>>2]|0))|0):0){dj=338;break;}c[Xb>>2]=(c[Xb>>2]|0)+1;}h:do{if((dj|0)==338){dj=0;c[lb>>2]=c[Tb>>2];}else if((dj|0)==340){dj=0;do{if((c[vb>>2]|0)==3){if((c[Vb>>2]|0)>>>0>=(c[vb>>2]|0)>>>0)break;c[ac>>2]=nm(c[mb>>2]|0,c[ob>>2]|0)|0;if(!(((c[ac>>2]|0)>>>0>(c[Ob>>2]|0)>>>0?((c[yb>>2]|0)-(c[ac>>2]|0)|0)>>>0<262144:0)|0))break;do{if(c[qb>>2]|0){if((c[ac>>2]|0)>>>0>=(c[Kb>>2]|0)>>>0){dj=345;break;}c[dc>>2]=(c[Jb>>2]|0)+(c[ac>>2]|0);c[bc>>2]=Uj(c[ob>>2]|0,c[dc>>2]|0,c[pb>>2]|0,c[Lb>>2]|0,c[Mb>>2]|0)|0;}else dj=345;}while(0);if((dj|0)==345){dj=0;c[cc>>2]=(c[xb>>2]|0)+(c[ac>>2]|0);c[bc>>2]=Tj(c[ob>>2]|0,c[cc>>2]|0,c[pb>>2]|0)|0;}if((c[bc>>2]|0)>>>0<(c[vb>>2]|0)>>>0)break;c[Vb>>2]=c[bc>>2];c[c[tb>>2]>>2]=(c[yb>>2]|0)-(c[ac>>2]|0)+2;c[(c[tb>>2]|0)+4>>2]=c[bc>>2];c[Tb>>2]=1;if(!(((c[bc>>2]|0)>>>0>(c[wb>>2]|0)>>>0?1:((c[ob>>2]|0)+(c[bc>>2]|0)|0)==(c[pb>>2]|0))|0))break;c[(c[mb>>2]|0)+24>>2]=(c[yb>>2]|0)+1;c[lb>>2]=1;break h;}}while(0);c[(c[Bb>>2]|0)+(c[Cb>>2]<<2)>>2]=c[yb>>2];while(1){Zh=c[Ub>>2]|0;c[Ub>>2]=Zh+-1;if(!Zh)break;if((c[Db>>2]|0)>>>0<=(c[Ob>>2]|0)>>>0)break;c[ec>>2]=(c[Eb>>2]|0)+((c[Db>>2]&c[Gb>>2])<<1<<2);c[fc>>2]=(c[Hb>>2]|0)>>>0<(c[Ib>>2]|0)>>>0?c[Hb>>2]|0:c[Ib>>2]|0;do{if(c[qb>>2]|0){if(((c[Db>>2]|0)+(c[fc>>2]|0)|0)>>>0>=(c[Kb>>2]|0)>>>0){dj=355;break;}c[gc>>2]=(c[Jb>>2]|0)+(c[Db>>2]|0);Zh=Uj((c[ob>>2]|0)+(c[fc>>2]|0)|0,(c[gc>>2]|0)+(c[fc>>2]|0)|0,c[pb>>2]|0,c[Lb>>2]|0,c[Mb>>2]|0)|0;c[fc>>2]=(c[fc>>2]|0)+Zh;if(((c[Db>>2]|0)+(c[fc>>2]|0)|0)>>>0<(c[Kb>>2]|0)>>>0)break;c[gc>>2]=(c[xb>>2]|0)+(c[Db>>2]|0);}else dj=355;}while(0);if((dj|0)==355){dj=0;c[gc>>2]=(c[xb>>2]|0)+(c[Db>>2]|0);Zh=Tj((c[ob>>2]|0)+(c[fc>>2]|0)|0,(c[gc>>2]|0)+(c[fc>>2]|0)|0,c[pb>>2]|0)|0;c[fc>>2]=(c[fc>>2]|0)+Zh;}if((c[fc>>2]|0)>>>0>(c[Vb>>2]|0)>>>0){if((c[fc>>2]|0)>>>0>((c[Rb>>2]|0)-(c[Db>>2]|0)|0)>>>0)c[Rb>>2]=(c[Db>>2]|0)+(c[fc>>2]|0);c[Vb>>2]=c[fc>>2];c[(c[tb>>2]|0)+(c[Tb>>2]<<3)>>2]=(c[yb>>2]|0)-(c[Db>>2]|0)+2;c[(c[tb>>2]|0)+(c[Tb>>2]<<3)+4>>2]=c[fc>>2];c[Tb>>2]=(c[Tb>>2]|0)+1;if((c[fc>>2]|0)>>>0>4096)break;if(((c[ob>>2]|0)+(c[fc>>2]|0)|0)==(c[pb>>2]|0))break;}Zh=c[Db>>2]|0;if((d[(c[gc>>2]|0)+(c[fc>>2]|0)>>0]|0|0)<(d[(c[ob>>2]|0)+(c[fc>>2]|0)>>0]|0|0)){c[c[Pb>>2]>>2]=Zh;c[Hb>>2]=c[fc>>2];if((c[Db>>2]|0)>>>0<=(c[Nb>>2]|0)>>>0){dj=365;break;}c[Pb>>2]=(c[ec>>2]|0)+4;c[Db>>2]=c[(c[ec>>2]|0)+4>>2];}else{c[c[Qb>>2]>>2]=Zh;c[Ib>>2]=c[fc>>2];if((c[Db>>2]|0)>>>0<=(c[Nb>>2]|0)>>>0){dj=368;break;}c[Qb>>2]=c[ec>>2];c[Db>>2]=c[c[ec>>2]>>2];}}if((dj|0)==365){dj=0;c[Pb>>2]=Sb;}else if((dj|0)==368){dj=0;c[Qb>>2]=Sb;}c[c[Qb>>2]>>2]=0;c[c[Pb>>2]>>2]=0;c[(c[mb>>2]|0)+24>>2]=(c[Rb>>2]|0)-8;c[lb>>2]=c[Tb>>2];}}while(0);c[md>>2]=c[lb>>2];break d;}}}}while(0);c[Bi>>2]=c[md>>2];if(c[Bi>>2]|0){c[Di>>2]=c[(c[ci>>2]|0)+((c[Bi>>2]|0)-1<<3)+4>>2];if(((c[Di>>2]|0)>>>0>(c[$h>>2]|0)>>>0?1:((c[ei>>2]|0)+(c[Di>>2]|0)|0)>>>0>=4096)|0){dj=481;break b;}c[Ci>>2]=0;while(1){if((c[Ci>>2]|0)>>>0>=(c[Bi>>2]|0)>>>0)break c;c[Ei>>2]=c[(c[ci>>2]|0)+(c[Ci>>2]<<3)>>2];pm(Fi,(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+16|0,c[Ei>>2]|0,c[xi>>2]|0);c[Gi>>2]=c[(c[ci>>2]|0)+(c[Ci>>2]<<3)+4>>2];if((c[Ci>>2]|0)>>>0>0)Dj=(c[(c[ci>>2]|0)+((c[Ci>>2]|0)-1<<3)+4>>2]|0)+1|0;else Dj=c[ai>>2]|0;c[Hi>>2]=Dj;c[Ii>>2]=c[Gi>>2];i:while(1){if((c[Ii>>2]|0)>>>0<(c[Hi>>2]|0)>>>0)break;c[Ji>>2]=(c[ei>>2]|0)+(c[Ii>>2]|0);Zh=c[Ai>>2]|0;Zi=c[Ii>>2]|0;Ph=c[Th>>2]|0;Qh=c[Rh>>2]|0;c[k>>2]=c[Ei>>2];c[m>>2]=Zi;c[n>>2]=Ph;c[o>>2]=Qh;c[q>>2]=qm((c[k>>2]|0)+1|0)|0;c[r>>2]=(c[m>>2]|0)-3;if(c[(c[n>>2]|0)+56>>2]|0){Qh=(qm((c[r>>2]|0)+1|0)|0)+16|0;c[j>>2]=Qh+(c[q>>2]|0);}else{Qh=(c[q>>2]|0)+(c[(c[n>>2]|0)+52>>2]|0)|0;c[p>>2]=Qh-(qm((c[(c[(c[n>>2]|0)+12>>2]|0)+(c[q>>2]<<2)>>2]|0)+1|0)|0);if((c[o>>2]|0)<2&(c[q>>2]|0)>>>0>=20)c[p>>2]=(c[p>>2]|0)+((c[q>>2]|0)-19<<1);c[s>>2]=rm(c[r>>2]|0)|0;Qh=(c[5840+(c[s>>2]<<2)>>2]|0)+(c[(c[n>>2]|0)+48>>2]|0)|0;Ph=Qh-(qm((c[(c[(c[n>>2]|0)+8>>2]|0)+(c[s>>2]<<2)>>2]|0)+1|0)|0)|0;c[p>>2]=(c[p>>2]|0)+Ph;c[j>>2]=c[p>>2];}c[Ki>>2]=Zh+(c[j>>2]|0);do{if((c[Ji>>2]|0)>>>0<=(c[fi>>2]|0)>>>0){if((c[Ki>>2]|0)<(c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)>>2]|0)){dj=496;break;}if(!(c[Rh>>2]|0))break i;}else dj=496;}while(0);if((dj|0)==496){dj=0;while(1){if((c[fi>>2]|0)>>>0>=(c[Ji>>2]|0)>>>0)break;c[(c[bi>>2]|0)+(((c[fi>>2]|0)+1|0)*28|0)>>2]=1073741824;c[fi>>2]=(c[fi>>2]|0)+1;}c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)+8>>2]=c[Ii>>2];c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)+4>>2]=c[Ei>>2];c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)+12>>2]=c[yi>>2];c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)>>2]=c[Ki>>2];Zh=(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)+16|0;c[Zh>>2]=c[Fi>>2];c[Zh+4>>2]=c[Fi+4>>2];c[Zh+8>>2]=c[Fi+8>>2];}c[Ii>>2]=(c[Ii>>2]|0)+-1;}c[Ci>>2]=(c[Ci>>2]|0)+1;}}}}while(0);c[ei>>2]=(c[ei>>2]|0)+1;}if((dj|0)==481){dj=0;c[gi>>2]=c[Di>>2];c[hi>>2]=c[(c[ci>>2]|0)+((c[Bi>>2]|0)-1<<3)>>2];c[fi>>2]=(c[ei>>2]|0)+1;break;}else if((dj|0)==504){dj=0;c[gi>>2]=c[(c[bi>>2]|0)+((c[fi>>2]|0)*28|0)+8>>2];c[hi>>2]=c[(c[bi>>2]|0)+((c[fi>>2]|0)*28|0)+4>>2];c[ei>>2]=(c[fi>>2]|0)-(c[gi>>2]|0);break;}}else{c[gi>>2]=c[mi>>2];c[hi>>2]=c[(c[ci>>2]|0)+((c[ki>>2]|0)-1<<3)>>2];c[ei>>2]=0;c[fi>>2]=1;}}while(0);c[Li>>2]=c[gi>>2];c[Mi>>2]=c[hi>>2];c[Ni>>2]=c[ei>>2];while(1){c[Oi>>2]=c[(c[bi>>2]|0)+((c[Ni>>2]|0)*28|0)+8>>2];c[Pi>>2]=c[(c[bi>>2]|0)+((c[Ni>>2]|0)*28|0)+4>>2];c[(c[bi>>2]|0)+((c[Ni>>2]|0)*28|0)+8>>2]=c[Li>>2];c[(c[bi>>2]|0)+((c[Ni>>2]|0)*28|0)+4>>2]=c[Mi>>2];c[Li>>2]=c[Oi>>2];c[Mi>>2]=c[Pi>>2];if((c[Oi>>2]|0)>>>0>(c[Ni>>2]|0)>>>0)break;c[Ni>>2]=(c[Ni>>2]|0)-(c[Oi>>2]|0);}c[Qi>>2]=0;while(1){if((c[Qi>>2]|0)>>>0>=(c[fi>>2]|0)>>>0)break;c[Ri>>2]=(c[Vh>>2]|0)-(c[Wh>>2]|0);c[Si>>2]=c[(c[bi>>2]|0)+((c[Qi>>2]|0)*28|0)+8>>2];c[Ti>>2]=c[(c[bi>>2]|0)+((c[Qi>>2]|0)*28|0)+4>>2];if((c[Si>>2]|0)==1){c[Vh>>2]=(c[Vh>>2]|0)+1;c[Qi>>2]=(c[Qi>>2]|0)+1;continue;}c[Qi>>2]=(c[Qi>>2]|0)+(c[Si>>2]|0);c[Vh>>2]=(c[Vh>>2]|0)+(c[Si>>2]|0);if((c[Ti>>2]|0)>>>0<3){c[Ui>>2]=(c[Ti>>2]|0)+((c[Ri>>2]|0)==0&1);if(c[Ui>>2]|0){Zh=c[Nh>>2]|0;if((c[Ui>>2]|0)==3)Ej=(c[Zh>>2]|0)-1|0;else Ej=c[Zh+(c[Ui>>2]<<2)>>2]|0;c[Vi>>2]=Ej;if((c[Ui>>2]|0)>>>0>=2)c[(c[Nh>>2]|0)+8>>2]=c[(c[Nh>>2]|0)+4>>2];c[(c[Nh>>2]|0)+4>>2]=c[c[Nh>>2]>>2];c[c[Nh>>2]>>2]=c[Vi>>2];}}else{c[(c[Nh>>2]|0)+8>>2]=c[(c[Nh>>2]|0)+4>>2];c[(c[Nh>>2]|0)+4>>2]=c[c[Nh>>2]>>2];c[c[Nh>>2]>>2]=(c[Ti>>2]|0)-2;}vm(c[Th>>2]|0,c[Ri>>2]|0,c[Wh>>2]|0,c[Ti>>2]|0,c[Si>>2]|0);wm(c[Mh>>2]|0,c[Ri>>2]|0,c[Wh>>2]|0,c[Ti>>2]|0,(c[Si>>2]|0)-3|0);c[Wh>>2]=c[Vh>>2];}xm(c[Th>>2]|0);}l=i;return(c[Xh>>2]|0)-(c[Wh>>2]|0)|0;}function km(a,b,e,f,g,h){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,yc=0,zc=0,Ac=0,Bc=0,Cc=0,Dc=0,Ec=0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0,Kc=0,Lc=0,Mc=0,Nc=0,Oc=0,Pc=0,Qc=0,Rc=0,Sc=0,Tc=0,Uc=0,Vc=0,Wc=0,Xc=0,Yc=0,Zc=0,_c=0,$c=0,ad=0,bd=0,cd=0,dd=0,ed=0,fd=0,gd=0,hd=0,id=0,jd=0,kd=0,ld=0,md=0,nd=0,od=0,pd=0,qd=0,rd=0,sd=0,td=0,ud=0,vd=0,wd=0,xd=0,yd=0,zd=0,Ad=0,Bd=0,Cd=0,Dd=0,Ed=0,Fd=0,Gd=0,Hd=0,Id=0,Jd=0,Kd=0,Ld=0,Md=0,Nd=0,Od=0,Pd=0,Qd=0,Rd=0,Sd=0,Td=0,Ud=0,Vd=0,Wd=0,Xd=0,Yd=0,Zd=0,_d=0,$d=0,ae=0,be=0,ce=0,de=0,ee=0,fe=0,ge=0,he=0,ie=0,je=0,ke=0,le=0,me=0,ne=0,oe=0,pe=0,qe=0,re=0,se=0,te=0,ue=0,ve=0,we=0,xe=0,ye=0,ze=0,Ae=0,Be=0,Ce=0,De=0,Ee=0,Fe=0,Ge=0,He=0,Ie=0,Je=0,Ke=0,Le=0,Me=0,Ne=0,Oe=0,Pe=0,Qe=0,Re=0,Se=0,Te=0,Ue=0,Ve=0,We=0,Xe=0,Ye=0,Ze=0,_e=0,$e=0,af=0,bf=0,cf=0,df=0,ef=0,ff=0,gf=0,hf=0,jf=0,kf=0,lf=0,mf=0,nf=0,of=0,pf=0,qf=0,rf=0,sf=0,tf=0,uf=0,vf=0,wf=0,xf=0,yf=0,zf=0,Af=0,Bf=0,Cf=0,Df=0,Ef=0,Ff=0,Gf=0,Hf=0,If=0,Jf=0,Kf=0,Lf=0,Mf=0,Nf=0,Of=0,Pf=0,Qf=0,Rf=0,Sf=0,Tf=0,Uf=0,Vf=0,Wf=0,Xf=0,Yf=0,Zf=0,_f=0,$f=0,ag=0,bg=0,cg=0,dg=0,eg=0,fg=0,gg=0,hg=0,ig=0,jg=0,kg=0,lg=0,mg=0,ng=0,og=0,pg=0,qg=0,rg=0,sg=0,tg=0,ug=0,vg=0,wg=0,xg=0,yg=0,zg=0,Ag=0,Bg=0,Cg=0,Dg=0,Eg=0,Fg=0,Gg=0,Hg=0,Ig=0,Jg=0,Kg=0,Lg=0,Mg=0,Ng=0,Og=0,Pg=0,Qg=0,Rg=0,Sg=0,Tg=0,Ug=0,Vg=0,Wg=0,Xg=0,Yg=0,Zg=0,_g=0,$g=0,ah=0,bh=0,ch=0,dh=0,eh=0,fh=0,gh=0,hh=0,ih=0,jh=0,kh=0,lh=0,mh=0,nh=0,oh=0,ph=0,qh=0,rh=0,sh=0,th=0,uh=0,vh=0,wh=0,xh=0,yh=0,zh=0,Ah=0,Bh=0,Ch=0,Dh=0,Eh=0,Fh=0,Gh=0,Hh=0,Ih=0,Jh=0,Kh=0,Lh=0,Mh=0,Nh=0,Oh=0,Ph=0,Qh=0,Rh=0,Sh=0,Th=0,Uh=0,Vh=0,Wh=0,Xh=0,Yh=0,Zh=0,_h=0,$h=0,ai=0,bi=0,ci=0,di=0,ei=0,fi=0,gi=0,hi=0,ii=0,ji=0,ki=0,li=0,mi=0,ni=0,oi=0,pi=0,qi=0,ri=0,si=0,ti=0,ui=0,vi=0,wi=0,xi=0,yi=0,zi=0,Ai=0,Bi=0,Ci=0,Di=0,Ei=0,Fi=0,Gi=0,Hi=0,Ii=0,Ji=0,Ki=0,Li=0,Mi=0,Ni=0,Oi=0,Pi=0,Qi=0,Ri=0,Si=0,Ti=0,Ui=0,Vi=0,Wi=0,Xi=0,Yi=0,Zi=0,_i=0,$i=0,aj=0,bj=0,cj=0,dj=0,ej=0,fj=0,gj=0,hj=0,ij=0,jj=0,kj=0,lj=0,mj=0,nj=0,oj=0,pj=0,qj=0,rj=0,sj=0,tj=0,uj=0,vj=0,wj=0,xj=0,yj=0,zj=0,Aj=0,Bj=0,Cj=0,Dj=0,Ej=0;i=l;l=l+2144|0;j=i+2136|0;k=i+2132|0;m=i+2128|0;n=i+2124|0;o=i+2120|0;p=i+2116|0;q=i+2112|0;r=i+2108|0;s=i+2104|0;t=i+2100|0;u=i+2096|0;v=i+2092|0;w=i+2088|0;x=i+2084|0;y=i+2080|0;z=i+2076|0;A=i+2072|0;B=i+2068|0;C=i+2064|0;D=i+2060|0;E=i+2056|0;F=i+2052|0;G=i+2048|0;H=i+2044|0;I=i+2040|0;J=i+2036|0;K=i+2032|0;L=i+2028|0;M=i+2024|0;N=i+2020|0;O=i+2016|0;P=i+2012|0;Q=i+2008|0;R=i+2004|0;S=i+2e3|0;T=i+1996|0;U=i+1992|0;V=i+1988|0;W=i+1984|0;X=i+1980|0;Y=i+1976|0;Z=i+1972|0;_=i+1968|0;$=i+1964|0;aa=i+1960|0;ba=i+1956|0;ca=i+1952|0;da=i+1948|0;ea=i+1944|0;fa=i+1940|0;ga=i+1936|0;ha=i+1932|0;ia=i+1928|0;ja=i+1924|0;ka=i+1920|0;la=i+1916|0;ma=i+1912|0;na=i+1908|0;oa=i+1904|0;pa=i+1900|0;qa=i+1896|0;ra=i+1892|0;sa=i+1888|0;ta=i+1884|0;ua=i+1880|0;va=i+1876|0;wa=i+1872|0;xa=i+1868|0;ya=i+1864|0;za=i+1860|0;Aa=i+1856|0;Ba=i+1852|0;Ca=i+1848|0;Da=i+1844|0;Ea=i+1840|0;Fa=i+1836|0;Ga=i+1832|0;Ha=i+1828|0;Ia=i+1824|0;Ja=i+1820|0;Ka=i+1816|0;La=i+1812|0;Ma=i+1808|0;Na=i+1804|0;Oa=i+1800|0;Pa=i+1796|0;Qa=i+1792|0;Ra=i+1788|0;Sa=i+1784|0;Ta=i+1780|0;Ua=i+1776|0;Va=i+1772|0;Wa=i+1768|0;Xa=i+1764|0;Ya=i+1760|0;Za=i+1756|0;_a=i+1752|0;$a=i+1748|0;ab=i+1744|0;bb=i+1740|0;cb=i+1736|0;db=i+1732|0;eb=i+1728|0;fb=i+1724|0;gb=i+1720|0;hb=i+1716|0;ib=i+1712|0;jb=i+1708|0;kb=i+1704|0;lb=i+1700|0;mb=i+1696|0;nb=i+1692|0;ob=i+1688|0;pb=i+1684|0;qb=i+1680|0;rb=i+1676|0;sb=i+1672|0;tb=i+1668|0;ub=i+1664|0;vb=i+1660|0;wb=i+1656|0;xb=i+1652|0;yb=i+1648|0;zb=i+1644|0;Ab=i+1640|0;Bb=i+1636|0;Cb=i+1632|0;Db=i+1628|0;Eb=i+1624|0;Fb=i+1620|0;Gb=i+1616|0;Hb=i+1612|0;Ib=i+1608|0;Jb=i+1604|0;Kb=i+1600|0;Lb=i+1596|0;Mb=i+1592|0;Nb=i+1588|0;Ob=i+1584|0;Pb=i+1580|0;Qb=i+1576|0;Rb=i+1572|0;Sb=i+1568|0;Tb=i+1564|0;Ub=i+1560|0;Vb=i+1556|0;Wb=i+1552|0;Xb=i+1548|0;Yb=i+1544|0;Zb=i+1540|0;_b=i+1536|0;$b=i+1532|0;ac=i+1528|0;bc=i+1524|0;cc=i+1520|0;dc=i+1516|0;ec=i+1512|0;fc=i+1508|0;gc=i+1504|0;hc=i+1500|0;ic=i+1496|0;jc=i+1492|0;kc=i+1488|0;lc=i+1484|0;mc=i+1480|0;nc=i+1476|0;oc=i+1472|0;pc=i+1468|0;qc=i+1464|0;rc=i+1460|0;sc=i+1456|0;tc=i+1452|0;uc=i+1448|0;vc=i+1444|0;wc=i+1440|0;xc=i+1436|0;yc=i+1432|0;zc=i+1428|0;Ac=i+1424|0;Bc=i+1420|0;Cc=i+1416|0;Dc=i+1412|0;Ec=i+1408|0;Fc=i+1404|0;Gc=i+1400|0;Hc=i+1396|0;Ic=i+1392|0;Jc=i+1388|0;Kc=i+1384|0;Lc=i+1380|0;Mc=i+1376|0;Nc=i+1372|0;Oc=i+1368|0;Pc=i+1364|0;Qc=i+1360|0;Rc=i+1356|0;Sc=i+1352|0;Tc=i+1348|0;Uc=i+1344|0;Vc=i+1340|0;Wc=i+1336|0;Xc=i+1332|0;Yc=i+1328|0;Zc=i+1324|0;_c=i+1320|0;$c=i+1316|0;ad=i+1312|0;bd=i+1308|0;cd=i+1304|0;dd=i+1300|0;ed=i+1296|0;fd=i+1292|0;gd=i+1288|0;hd=i+1284|0;id=i+1280|0;jd=i+1276|0;kd=i+1272|0;ld=i+1268|0;md=i+1264|0;nd=i+1260|0;od=i+1256|0;pd=i+1252|0;qd=i+1248|0;rd=i+1244|0;sd=i+1240|0;td=i+1236|0;ud=i+1232|0;vd=i+1228|0;wd=i+1224|0;xd=i+1220|0;yd=i+1216|0;zd=i+1212|0;Ad=i+1208|0;Bd=i+1204|0;Cd=i+1200|0;Dd=i+1196|0;Ed=i+1192|0;Fd=i+1188|0;Gd=i+1184|0;Hd=i+1180|0;Id=i+1176|0;Jd=i+1172|0;Kd=i+1168|0;Ld=i+1164|0;Md=i+1160|0;Nd=i+1156|0;Od=i+1152|0;Pd=i+1148|0;Qd=i+1144|0;Rd=i+1140|0;Sd=i+1136|0;Td=i+1132|0;Ud=i+1128|0;Vd=i+1124|0;Wd=i+1120|0;Xd=i+1116|0;Yd=i+1112|0;Zd=i+1108|0;_d=i+1104|0;$d=i+1100|0;ae=i+1096|0;be=i+1092|0;ce=i+1088|0;de=i+1084|0;ee=i+1080|0;fe=i+1076|0;ge=i+1072|0;he=i+1068|0;ie=i+1064|0;je=i+1060|0;ke=i+1056|0;le=i+1052|0;me=i+1048|0;ne=i+1044|0;oe=i+1040|0;pe=i+1036|0;qe=i+1032|0;re=i+1028|0;se=i+1024|0;te=i+1020|0;ue=i+1016|0;ve=i+1012|0;we=i+1008|0;xe=i+1004|0;ye=i+1e3|0;ze=i+996|0;Ae=i+992|0;Be=i+988|0;Ce=i+984|0;De=i+980|0;Ee=i+976|0;Fe=i+972|0;Ge=i+968|0;He=i+964|0;Ie=i+960|0;Je=i+956|0;Ke=i+952|0;Le=i+948|0;Me=i+944|0;Ne=i+940|0;Oe=i+936|0;Pe=i+932|0;Qe=i+928|0;Re=i+924|0;Se=i+920|0;Te=i+916|0;Ue=i+912|0;Ve=i+908|0;We=i+904|0;Xe=i+900|0;Ye=i+896|0;Ze=i+892|0;_e=i+888|0;$e=i+884|0;af=i+880|0;bf=i+876|0;cf=i+872|0;df=i+868|0;ef=i+864|0;ff=i+860|0;gf=i+856|0;hf=i+852|0;jf=i+848|0;kf=i+844|0;lf=i+840|0;mf=i+836|0;nf=i+832|0;of=i+828|0;pf=i+824|0;qf=i+820|0;rf=i+816|0;sf=i+812|0;tf=i+808|0;uf=i+804|0;vf=i+800|0;wf=i+796|0;xf=i+792|0;yf=i+788|0;zf=i+784|0;Af=i+780|0;Bf=i+776|0;Cf=i+772|0;Df=i+768|0;Ef=i+764|0;Ff=i+760|0;Gf=i+756|0;Hf=i+752|0;If=i+748|0;Jf=i+744|0;Kf=i+740|0;Lf=i+736|0;Mf=i+732|0;Nf=i+728|0;Of=i+724|0;Pf=i+720|0;Qf=i+716|0;Rf=i+712|0;Sf=i+708|0;Tf=i+704|0;Uf=i+700|0;Vf=i+696|0;Wf=i+692|0;Xf=i+688|0;Yf=i+684|0;Zf=i+680|0;_f=i+676|0;$f=i+672|0;ag=i+668|0;bg=i+664|0;cg=i+660|0;dg=i+656|0;eg=i+652|0;fg=i+648|0;gg=i+644|0;hg=i+640|0;ig=i+636|0;jg=i+632|0;kg=i+628|0;lg=i+624|0;mg=i+620|0;ng=i+616|0;og=i+612|0;pg=i+608|0;qg=i+604|0;rg=i+600|0;sg=i+596|0;tg=i+592|0;ug=i+588|0;vg=i+584|0;wg=i+580|0;xg=i+576|0;yg=i+572|0;zg=i+568|0;Ag=i+564|0;Bg=i+560|0;Cg=i+556|0;Dg=i+552|0;Eg=i+548|0;Fg=i+544|0;Gg=i+540|0;Hg=i+536|0;Ig=i+532|0;Jg=i+528|0;Kg=i+524|0;Lg=i+520|0;Mg=i+516|0;Ng=i+512|0;Og=i+508|0;Pg=i+504|0;Qg=i+500|0;Rg=i+496|0;Sg=i+492|0;Tg=i+488|0;Ug=i+484|0;Vg=i+480|0;Wg=i+476|0;Xg=i+472|0;Yg=i+468|0;Zg=i+464|0;_g=i+460|0;$g=i+456|0;ah=i+452|0;bh=i+448|0;ch=i+444|0;dh=i+440|0;eh=i+436|0;fh=i+432|0;gh=i+428|0;hh=i+424|0;ih=i+420|0;jh=i+416|0;kh=i+412|0;lh=i+408|0;mh=i+404|0;nh=i+400|0;oh=i+396|0;ph=i+392|0;qh=i+388|0;rh=i+384|0;sh=i+380|0;th=i+376|0;uh=i+372|0;vh=i+368|0;wh=i+364|0;xh=i+360|0;yh=i+356|0;zh=i+352|0;Ah=i+348|0;Bh=i+344|0;Ch=i+340|0;Dh=i+336|0;Eh=i+332|0;Fh=i+328|0;Gh=i+324|0;Hh=i+320|0;Ih=i+316|0;Jh=i+312|0;Kh=i+308|0;Lh=i+304|0;Mh=i+300|0;Nh=i+296|0;Oh=i+292|0;Ph=i+288|0;Qh=i+284|0;Rh=i+280|0;Sh=i+276|0;Th=i+272|0;Uh=i+268|0;Vh=i+264|0;Wh=i+260|0;Xh=i+256|0;Yh=i+252|0;Zh=i+248|0;_h=i+244|0;$h=i+240|0;ai=i+236|0;bi=i+232|0;ci=i+228|0;di=i+216|0;ei=i+212|0;fi=i+208|0;gi=i+204|0;hi=i+200|0;ii=i+196|0;ji=i+192|0;ki=i+188|0;li=i+184|0;mi=i+180|0;ni=i+176|0;oi=i+172|0;pi=i+168|0;qi=i+164|0;ri=i+160|0;si=i+148|0;ti=i+144|0;ui=i+140|0;vi=i+136|0;wi=i+132|0;xi=i+128|0;yi=i+124|0;zi=i+120|0;Ai=i+116|0;Bi=i+112|0;Ci=i+108|0;Di=i+104|0;Ei=i+100|0;Fi=i+88|0;Gi=i+84|0;Hi=i+80|0;Ii=i+76|0;Ji=i+72|0;Ki=i+68|0;Li=i+64|0;Mi=i+60|0;Ni=i+56|0;Oi=i+52|0;Pi=i+48|0;Qi=i+44|0;Ri=i+40|0;Si=i+36|0;Ti=i+32|0;Ui=i+28|0;Vi=i+24|0;Wi=i+20|0;Xi=i+16|0;Yi=i+12|0;Zi=i+8|0;_i=i+4|0;$i=i;c[Wi>>2]=a;c[Xi>>2]=b;c[Yi>>2]=e;c[Zi>>2]=f;c[_i>>2]=g;c[$i>>2]=h;h=c[Xi>>2]|0;Xi=c[Yi>>2]|0;Yi=c[Zi>>2]|0;Zi=c[_i>>2]|0;_i=c[$i>>2]|0;c[Lh>>2]=c[Wi>>2];c[Mh>>2]=h;c[Nh>>2]=Xi;c[Oh>>2]=Yi;c[Ph>>2]=Zi;c[Qh>>2]=_i;c[Rh>>2]=2;c[Sh>>2]=1;c[Th>>2]=(c[Lh>>2]|0)+48;c[Uh>>2]=c[Ph>>2];c[Vh>>2]=c[Uh>>2];c[Wh>>2]=c[Uh>>2];c[Xh>>2]=(c[Uh>>2]|0)+(c[Qh>>2]|0);c[Yh>>2]=(c[Xh>>2]|0)+-8;c[Zh>>2]=c[(c[Lh>>2]|0)+4>>2];c[_h>>2]=(c[Zh>>2]|0)+(c[(c[Lh>>2]|0)+12>>2]|0);if((c[(c[Oh>>2]|0)+20>>2]|0)>>>0<4095)aj=c[(c[Oh>>2]|0)+20>>2]|0;else aj=4095;c[$h>>2]=aj;c[ai>>2]=(c[(c[Oh>>2]|0)+16>>2]|0)==3?3:4;c[bi>>2]=c[(c[Th>>2]|0)+20>>2];c[ci>>2]=c[(c[Th>>2]|0)+16>>2];c[(c[Lh>>2]|0)+28>>2]=c[(c[Lh>>2]|0)+24>>2];lm(c[Th>>2]|0,c[Ph>>2]|0,c[Qh>>2]|0);c[Vh>>2]=(c[Vh>>2]|0)+((c[Vh>>2]|0)==(c[_h>>2]|0)&1);c[di>>2]=0;c[di+4>>2]=0;c[di+8>>2]=0;while(1){if((c[Vh>>2]|0)>>>0>=(c[Yh>>2]|0)>>>0)break;c[fi>>2]=0;c[ii>>2]=(c[Vh>>2]|0)-(c[Wh>>2]|0);c[ji>>2]=((c[ii>>2]|0)!=0^1)&1;_h=c[Oh>>2]|0;Qh=c[Vh>>2]|0;Ph=c[Xh>>2]|0;aj=c[Sh>>2]|0;Zh=c[Nh>>2]|0;Uh=c[ji>>2]|0;_i=c[ci>>2]|0;Zi=c[ai>>2]|0;c[Bh>>2]=c[Lh>>2];c[Ch>>2]=_h;c[Dh>>2]=Qh;c[Eh>>2]=Ph;c[Fh>>2]=aj;c[Gh>>2]=Zh;c[Hh>>2]=Uh;c[Ih>>2]=_i;c[Jh>>2]=Zi;c[Kh>>2]=c[(c[Ch>>2]|0)+16>>2];a:do{if((c[Dh>>2]|0)>>>0<((c[(c[Bh>>2]|0)+4>>2]|0)+(c[(c[Bh>>2]|0)+24>>2]|0)|0)>>>0)c[Ah>>2]=0;else{Zi=c[Ch>>2]|0;_i=c[Dh>>2]|0;Uh=c[Eh>>2]|0;Zh=c[Kh>>2]|0;aj=c[Fh>>2]|0;c[rh>>2]=c[Bh>>2];c[sh>>2]=Zi;c[th>>2]=_i;c[uh>>2]=Uh;c[vh>>2]=Zh;c[wh>>2]=aj;c[xh>>2]=c[(c[rh>>2]|0)+4>>2];c[yh>>2]=(c[th>>2]|0)-(c[xh>>2]|0);c[zh>>2]=c[(c[rh>>2]|0)+24>>2];while(1){if((c[zh>>2]|0)>>>0>=(c[yh>>2]|0)>>>0)break;aj=Rj(c[rh>>2]|0,c[sh>>2]|0,(c[xh>>2]|0)+(c[zh>>2]|0)|0,c[uh>>2]|0,c[vh>>2]|0,c[wh>>2]|0)|0;c[zh>>2]=(c[zh>>2]|0)+aj;}c[(c[rh>>2]|0)+24>>2]=c[yh>>2];switch(c[Kh>>2]|0){case 3:{aj=c[Ch>>2]|0;Zh=c[Dh>>2]|0;Uh=c[Eh>>2]|0;_i=c[Fh>>2]|0;Zi=c[Gh>>2]|0;Ph=c[Hh>>2]|0;Qh=c[Ih>>2]|0;_h=c[Jh>>2]|0;c[wg>>2]=c[Bh>>2];c[xg>>2]=aj;c[yg>>2]=Zh;c[zg>>2]=Uh;c[Ag>>2]=_i;c[Bg>>2]=Zi;c[Cg>>2]=Ph;c[Dg>>2]=Qh;c[Eg>>2]=_h;c[Fg>>2]=3;if((c[(c[xg>>2]|0)+20>>2]|0)>>>0<4095)bj=c[(c[xg>>2]|0)+20>>2]|0;else bj=4095;c[Gg>>2]=bj;c[Hg>>2]=c[(c[wg>>2]|0)+4>>2];c[Ig>>2]=(c[yg>>2]|0)-(c[Hg>>2]|0);c[Jg>>2]=c[(c[xg>>2]|0)+8>>2];c[Kg>>2]=(c[Fg>>2]|0)==3?3:4;c[Lg>>2]=c[(c[wg>>2]|0)+36>>2];c[Mg>>2]=Sj(c[yg>>2]|0,c[Jg>>2]|0,c[Fg>>2]|0)|0;c[Ng>>2]=c[(c[Lg>>2]|0)+(c[Mg>>2]<<2)>>2];c[Og>>2]=c[(c[wg>>2]|0)+44>>2];c[Pg>>2]=(c[(c[xg>>2]|0)+4>>2]|0)-1;c[Qg>>2]=(1<<c[Pg>>2])-1;c[Rg>>2]=0;c[Sg>>2]=0;c[Tg>>2]=c[(c[wg>>2]|0)+8>>2];c[Ug>>2]=c[(c[wg>>2]|0)+12>>2];c[Vg>>2]=(c[Tg>>2]|0)+(c[Ug>>2]|0);c[Wg>>2]=(c[Hg>>2]|0)+(c[Ug>>2]|0);if((c[Qg>>2]|0)>>>0>=(c[Ig>>2]|0)>>>0)cj=0;else cj=(c[Ig>>2]|0)-(c[Qg>>2]|0)|0;c[Xg>>2]=cj;c[Yg>>2]=c[(c[wg>>2]|0)+16>>2];c[Zg>>2]=(c[Og>>2]|0)+((c[Ig>>2]&c[Qg>>2])<<1<<2);c[_g>>2]=(c[Og>>2]|0)+((c[Ig>>2]&c[Qg>>2])<<1<<2)+4;c[$g>>2]=(c[Ig>>2]|0)+8+1;c[bh>>2]=0;c[ch>>2]=1<<c[(c[xg>>2]|0)+12>>2];c[dh>>2]=(c[Eg>>2]|0)-1;c[eh>>2]=3+(c[Cg>>2]|0);c[fh>>2]=c[Cg>>2];while(1){if((c[fh>>2]|0)>>>0>=(c[eh>>2]|0)>>>0){dj=31;break;}_h=c[Bg>>2]|0;if((c[fh>>2]|0)==3)ej=(c[_h>>2]|0)-1|0;else ej=c[_h+(c[fh>>2]<<2)>>2]|0;c[gh>>2]=ej;c[hh>>2]=(c[Ig>>2]|0)-(c[gh>>2]|0);c[ih>>2]=0;if(((c[gh>>2]|0)-1|0)>>>0<((c[Ig>>2]|0)-(c[Ug>>2]|0)|0)>>>0){_h=mm(c[yg>>2]|0,c[Kg>>2]|0)|0;if((_h|0)==(mm((c[yg>>2]|0)+(0-(c[gh>>2]|0))|0,c[Kg>>2]|0)|0)){_h=Tj((c[yg>>2]|0)+(c[Kg>>2]|0)|0,(c[yg>>2]|0)+(c[Kg>>2]|0)+(0-(c[gh>>2]|0))|0,c[zg>>2]|0)|0;c[ih>>2]=_h+(c[Kg>>2]|0);}}else{c[jh>>2]=(c[Tg>>2]|0)+(c[hh>>2]|0);if((c[Ag>>2]|0?(((c[Ug>>2]|0)-1-(c[hh>>2]|0)|0)>>>0>=3?((c[gh>>2]|0)-1|0)>>>0<((c[Ig>>2]|0)-(c[Yg>>2]|0)|0)>>>0:0)|0:0)?(_h=mm(c[yg>>2]|0,c[Kg>>2]|0)|0,(_h|0)==(mm(c[jh>>2]|0,c[Kg>>2]|0)|0)):0){_h=Uj((c[yg>>2]|0)+(c[Kg>>2]|0)|0,(c[jh>>2]|0)+(c[Kg>>2]|0)|0,c[zg>>2]|0,c[Vg>>2]|0,c[Wg>>2]|0)|0;c[ih>>2]=_h+(c[Kg>>2]|0);}}if((c[ih>>2]|0)>>>0>(c[dh>>2]|0)>>>0?(c[dh>>2]=c[ih>>2],c[(c[Dg>>2]|0)+(c[bh>>2]<<3)>>2]=(c[fh>>2]|0)-(c[Cg>>2]|0),c[(c[Dg>>2]|0)+(c[bh>>2]<<3)+4>>2]=c[ih>>2],c[bh>>2]=(c[bh>>2]|0)+1,((c[ih>>2]|0)>>>0>(c[Gg>>2]|0)>>>0?1:((c[yg>>2]|0)+(c[ih>>2]|0)|0)==(c[zg>>2]|0))|0):0){dj=29;break;}c[fh>>2]=(c[fh>>2]|0)+1;}do{if((dj|0)==29){dj=0;c[vg>>2]=c[bh>>2];}else if((dj|0)==31){dj=0;if(((c[Fg>>2]|0)==3?(c[dh>>2]|0)>>>0<(c[Fg>>2]|0)>>>0:0)?(c[kh>>2]=nm(c[wg>>2]|0,c[yg>>2]|0)|0,((c[kh>>2]|0)>>>0>(c[Yg>>2]|0)>>>0?((c[Ig>>2]|0)-(c[kh>>2]|0)|0)>>>0<262144:0)|0):0){if(c[Ag>>2]|0?(c[kh>>2]|0)>>>0<(c[Ug>>2]|0)>>>0:0){c[nh>>2]=(c[Tg>>2]|0)+(c[kh>>2]|0);c[lh>>2]=Uj(c[yg>>2]|0,c[nh>>2]|0,c[zg>>2]|0,c[Vg>>2]|0,c[Wg>>2]|0)|0;}else{c[mh>>2]=(c[Hg>>2]|0)+(c[kh>>2]|0);c[lh>>2]=Tj(c[yg>>2]|0,c[mh>>2]|0,c[zg>>2]|0)|0;}if((c[lh>>2]|0)>>>0>=(c[Fg>>2]|0)>>>0?(c[dh>>2]=c[lh>>2],c[c[Dg>>2]>>2]=(c[Ig>>2]|0)-(c[kh>>2]|0)+2,c[(c[Dg>>2]|0)+4>>2]=c[lh>>2],c[bh>>2]=1,((c[lh>>2]|0)>>>0>(c[Gg>>2]|0)>>>0?1:((c[yg>>2]|0)+(c[lh>>2]|0)|0)==(c[zg>>2]|0))|0):0){c[(c[wg>>2]|0)+24>>2]=(c[Ig>>2]|0)+1;c[vg>>2]=1;break;}}c[(c[Lg>>2]|0)+(c[Mg>>2]<<2)>>2]=c[Ig>>2];while(1){_h=c[ch>>2]|0;c[ch>>2]=_h+-1;if(!_h)break;if((c[Ng>>2]|0)>>>0<=(c[Yg>>2]|0)>>>0)break;c[oh>>2]=(c[Og>>2]|0)+((c[Ng>>2]&c[Qg>>2])<<1<<2);c[ph>>2]=(c[Rg>>2]|0)>>>0<(c[Sg>>2]|0)>>>0?c[Rg>>2]|0:c[Sg>>2]|0;if(c[Ag>>2]|0?((c[Ng>>2]|0)+(c[ph>>2]|0)|0)>>>0<(c[Ug>>2]|0)>>>0:0){c[qh>>2]=(c[Tg>>2]|0)+(c[Ng>>2]|0);_h=Uj((c[yg>>2]|0)+(c[ph>>2]|0)|0,(c[qh>>2]|0)+(c[ph>>2]|0)|0,c[zg>>2]|0,c[Vg>>2]|0,c[Wg>>2]|0)|0;c[ph>>2]=(c[ph>>2]|0)+_h;if(((c[Ng>>2]|0)+(c[ph>>2]|0)|0)>>>0>=(c[Ug>>2]|0)>>>0)c[qh>>2]=(c[Hg>>2]|0)+(c[Ng>>2]|0);}else{c[qh>>2]=(c[Hg>>2]|0)+(c[Ng>>2]|0);_h=Tj((c[yg>>2]|0)+(c[ph>>2]|0)|0,(c[qh>>2]|0)+(c[ph>>2]|0)|0,c[zg>>2]|0)|0;c[ph>>2]=(c[ph>>2]|0)+_h;}if((c[ph>>2]|0)>>>0>(c[dh>>2]|0)>>>0){if((c[ph>>2]|0)>>>0>((c[$g>>2]|0)-(c[Ng>>2]|0)|0)>>>0)c[$g>>2]=(c[Ng>>2]|0)+(c[ph>>2]|0);c[dh>>2]=c[ph>>2];c[(c[Dg>>2]|0)+(c[bh>>2]<<3)>>2]=(c[Ig>>2]|0)-(c[Ng>>2]|0)+2;c[(c[Dg>>2]|0)+(c[bh>>2]<<3)+4>>2]=c[ph>>2];c[bh>>2]=(c[bh>>2]|0)+1;if((c[ph>>2]|0)>>>0>4096)break;if(((c[yg>>2]|0)+(c[ph>>2]|0)|0)==(c[zg>>2]|0))break;}_h=c[Ng>>2]|0;if((d[(c[qh>>2]|0)+(c[ph>>2]|0)>>0]|0|0)<(d[(c[yg>>2]|0)+(c[ph>>2]|0)>>0]|0|0)){c[c[Zg>>2]>>2]=_h;c[Rg>>2]=c[ph>>2];if((c[Ng>>2]|0)>>>0<=(c[Xg>>2]|0)>>>0){dj=56;break;}c[Zg>>2]=(c[oh>>2]|0)+4;c[Ng>>2]=c[(c[oh>>2]|0)+4>>2];}else{c[c[_g>>2]>>2]=_h;c[Sg>>2]=c[ph>>2];if((c[Ng>>2]|0)>>>0<=(c[Xg>>2]|0)>>>0){dj=59;break;}c[_g>>2]=c[oh>>2];c[Ng>>2]=c[c[oh>>2]>>2];}}if((dj|0)==56){dj=0;c[Zg>>2]=ah;}else if((dj|0)==59){dj=0;c[_g>>2]=ah;}c[c[_g>>2]>>2]=0;c[c[Zg>>2]>>2]=0;c[(c[wg>>2]|0)+24>>2]=(c[$g>>2]|0)-8;c[vg>>2]=c[bh>>2];}}while(0);c[Ah>>2]=c[vg>>2];break a;break;}case 7:case 6:{_h=c[Ch>>2]|0;Qh=c[Dh>>2]|0;Ph=c[Eh>>2]|0;Zi=c[Fh>>2]|0;_i=c[Gh>>2]|0;Uh=c[Hh>>2]|0;Zh=c[Ih>>2]|0;aj=c[Jh>>2]|0;c[Hd>>2]=c[Bh>>2];c[Id>>2]=_h;c[Jd>>2]=Qh;c[Kd>>2]=Ph;c[Ld>>2]=Zi;c[Md>>2]=_i;c[Nd>>2]=Uh;c[Od>>2]=Zh;c[Pd>>2]=aj;c[Qd>>2]=6;if((c[(c[Id>>2]|0)+20>>2]|0)>>>0<4095)fj=c[(c[Id>>2]|0)+20>>2]|0;else fj=4095;c[Rd>>2]=fj;c[Sd>>2]=c[(c[Hd>>2]|0)+4>>2];c[Td>>2]=(c[Jd>>2]|0)-(c[Sd>>2]|0);c[Ud>>2]=c[(c[Id>>2]|0)+8>>2];c[Vd>>2]=(c[Qd>>2]|0)==3?3:4;c[Wd>>2]=c[(c[Hd>>2]|0)+36>>2];c[Xd>>2]=Sj(c[Jd>>2]|0,c[Ud>>2]|0,c[Qd>>2]|0)|0;c[Yd>>2]=c[(c[Wd>>2]|0)+(c[Xd>>2]<<2)>>2];c[Zd>>2]=c[(c[Hd>>2]|0)+44>>2];c[_d>>2]=(c[(c[Id>>2]|0)+4>>2]|0)-1;c[$d>>2]=(1<<c[_d>>2])-1;c[ae>>2]=0;c[be>>2]=0;c[ce>>2]=c[(c[Hd>>2]|0)+8>>2];c[de>>2]=c[(c[Hd>>2]|0)+12>>2];c[ee>>2]=(c[ce>>2]|0)+(c[de>>2]|0);c[fe>>2]=(c[Sd>>2]|0)+(c[de>>2]|0);if((c[$d>>2]|0)>>>0>=(c[Td>>2]|0)>>>0)gj=0;else gj=(c[Td>>2]|0)-(c[$d>>2]|0)|0;c[ge>>2]=gj;c[he>>2]=c[(c[Hd>>2]|0)+16>>2];c[ie>>2]=(c[Zd>>2]|0)+((c[Td>>2]&c[$d>>2])<<1<<2);c[je>>2]=(c[Zd>>2]|0)+((c[Td>>2]&c[$d>>2])<<1<<2)+4;c[ke>>2]=(c[Td>>2]|0)+8+1;c[me>>2]=0;c[ne>>2]=1<<c[(c[Id>>2]|0)+12>>2];c[oe>>2]=(c[Pd>>2]|0)-1;c[pe>>2]=3+(c[Nd>>2]|0);c[qe>>2]=c[Nd>>2];while(1){if((c[qe>>2]|0)>>>0>=(c[pe>>2]|0)>>>0){dj=190;break;}aj=c[Md>>2]|0;if((c[qe>>2]|0)==3)hj=(c[aj>>2]|0)-1|0;else hj=c[aj+(c[qe>>2]<<2)>>2]|0;c[re>>2]=hj;c[se>>2]=(c[Td>>2]|0)-(c[re>>2]|0);c[te>>2]=0;if(((c[re>>2]|0)-1|0)>>>0<((c[Td>>2]|0)-(c[de>>2]|0)|0)>>>0){aj=mm(c[Jd>>2]|0,c[Vd>>2]|0)|0;if((aj|0)==(mm((c[Jd>>2]|0)+(0-(c[re>>2]|0))|0,c[Vd>>2]|0)|0)){aj=Tj((c[Jd>>2]|0)+(c[Vd>>2]|0)|0,(c[Jd>>2]|0)+(c[Vd>>2]|0)+(0-(c[re>>2]|0))|0,c[Kd>>2]|0)|0;c[te>>2]=aj+(c[Vd>>2]|0);}}else{c[ue>>2]=(c[ce>>2]|0)+(c[se>>2]|0);if((c[Ld>>2]|0?(((c[de>>2]|0)-1-(c[se>>2]|0)|0)>>>0>=3?((c[re>>2]|0)-1|0)>>>0<((c[Td>>2]|0)-(c[he>>2]|0)|0)>>>0:0)|0:0)?(aj=mm(c[Jd>>2]|0,c[Vd>>2]|0)|0,(aj|0)==(mm(c[ue>>2]|0,c[Vd>>2]|0)|0)):0){aj=Uj((c[Jd>>2]|0)+(c[Vd>>2]|0)|0,(c[ue>>2]|0)+(c[Vd>>2]|0)|0,c[Kd>>2]|0,c[ee>>2]|0,c[fe>>2]|0)|0;c[te>>2]=aj+(c[Vd>>2]|0);}}if((c[te>>2]|0)>>>0>(c[oe>>2]|0)>>>0?(c[oe>>2]=c[te>>2],c[(c[Od>>2]|0)+(c[me>>2]<<3)>>2]=(c[qe>>2]|0)-(c[Nd>>2]|0),c[(c[Od>>2]|0)+(c[me>>2]<<3)+4>>2]=c[te>>2],c[me>>2]=(c[me>>2]|0)+1,((c[te>>2]|0)>>>0>(c[Rd>>2]|0)>>>0?1:((c[Jd>>2]|0)+(c[te>>2]|0)|0)==(c[Kd>>2]|0))|0):0){dj=188;break;}c[qe>>2]=(c[qe>>2]|0)+1;}do{if((dj|0)==188){dj=0;c[Gd>>2]=c[me>>2];}else if((dj|0)==190){dj=0;if(((c[Qd>>2]|0)==3?(c[oe>>2]|0)>>>0<(c[Qd>>2]|0)>>>0:0)?(c[ve>>2]=nm(c[Hd>>2]|0,c[Jd>>2]|0)|0,((c[ve>>2]|0)>>>0>(c[he>>2]|0)>>>0?((c[Td>>2]|0)-(c[ve>>2]|0)|0)>>>0<262144:0)|0):0){if(c[Ld>>2]|0?(c[ve>>2]|0)>>>0<(c[de>>2]|0)>>>0:0){c[ye>>2]=(c[ce>>2]|0)+(c[ve>>2]|0);c[we>>2]=Uj(c[Jd>>2]|0,c[ye>>2]|0,c[Kd>>2]|0,c[ee>>2]|0,c[fe>>2]|0)|0;}else{c[xe>>2]=(c[Sd>>2]|0)+(c[ve>>2]|0);c[we>>2]=Tj(c[Jd>>2]|0,c[xe>>2]|0,c[Kd>>2]|0)|0;}if((c[we>>2]|0)>>>0>=(c[Qd>>2]|0)>>>0?(c[oe>>2]=c[we>>2],c[c[Od>>2]>>2]=(c[Td>>2]|0)-(c[ve>>2]|0)+2,c[(c[Od>>2]|0)+4>>2]=c[we>>2],c[me>>2]=1,((c[we>>2]|0)>>>0>(c[Rd>>2]|0)>>>0?1:((c[Jd>>2]|0)+(c[we>>2]|0)|0)==(c[Kd>>2]|0))|0):0){c[(c[Hd>>2]|0)+24>>2]=(c[Td>>2]|0)+1;c[Gd>>2]=1;break;}}c[(c[Wd>>2]|0)+(c[Xd>>2]<<2)>>2]=c[Td>>2];while(1){aj=c[ne>>2]|0;c[ne>>2]=aj+-1;if(!aj)break;if((c[Yd>>2]|0)>>>0<=(c[he>>2]|0)>>>0)break;c[ze>>2]=(c[Zd>>2]|0)+((c[Yd>>2]&c[$d>>2])<<1<<2);c[Ae>>2]=(c[ae>>2]|0)>>>0<(c[be>>2]|0)>>>0?c[ae>>2]|0:c[be>>2]|0;if(c[Ld>>2]|0?((c[Yd>>2]|0)+(c[Ae>>2]|0)|0)>>>0<(c[de>>2]|0)>>>0:0){c[Be>>2]=(c[ce>>2]|0)+(c[Yd>>2]|0);aj=Uj((c[Jd>>2]|0)+(c[Ae>>2]|0)|0,(c[Be>>2]|0)+(c[Ae>>2]|0)|0,c[Kd>>2]|0,c[ee>>2]|0,c[fe>>2]|0)|0;c[Ae>>2]=(c[Ae>>2]|0)+aj;if(((c[Yd>>2]|0)+(c[Ae>>2]|0)|0)>>>0>=(c[de>>2]|0)>>>0)c[Be>>2]=(c[Sd>>2]|0)+(c[Yd>>2]|0);}else{c[Be>>2]=(c[Sd>>2]|0)+(c[Yd>>2]|0);aj=Tj((c[Jd>>2]|0)+(c[Ae>>2]|0)|0,(c[Be>>2]|0)+(c[Ae>>2]|0)|0,c[Kd>>2]|0)|0;c[Ae>>2]=(c[Ae>>2]|0)+aj;}if((c[Ae>>2]|0)>>>0>(c[oe>>2]|0)>>>0){if((c[Ae>>2]|0)>>>0>((c[ke>>2]|0)-(c[Yd>>2]|0)|0)>>>0)c[ke>>2]=(c[Yd>>2]|0)+(c[Ae>>2]|0);c[oe>>2]=c[Ae>>2];c[(c[Od>>2]|0)+(c[me>>2]<<3)>>2]=(c[Td>>2]|0)-(c[Yd>>2]|0)+2;c[(c[Od>>2]|0)+(c[me>>2]<<3)+4>>2]=c[Ae>>2];c[me>>2]=(c[me>>2]|0)+1;if((c[Ae>>2]|0)>>>0>4096)break;if(((c[Jd>>2]|0)+(c[Ae>>2]|0)|0)==(c[Kd>>2]|0))break;}aj=c[Yd>>2]|0;if((d[(c[Be>>2]|0)+(c[Ae>>2]|0)>>0]|0|0)<(d[(c[Jd>>2]|0)+(c[Ae>>2]|0)>>0]|0|0)){c[c[ie>>2]>>2]=aj;c[ae>>2]=c[Ae>>2];if((c[Yd>>2]|0)>>>0<=(c[ge>>2]|0)>>>0){dj=215;break;}c[ie>>2]=(c[ze>>2]|0)+4;c[Yd>>2]=c[(c[ze>>2]|0)+4>>2];}else{c[c[je>>2]>>2]=aj;c[be>>2]=c[Ae>>2];if((c[Yd>>2]|0)>>>0<=(c[ge>>2]|0)>>>0){dj=218;break;}c[je>>2]=c[ze>>2];c[Yd>>2]=c[c[ze>>2]>>2];}}if((dj|0)==215){dj=0;c[ie>>2]=le;}else if((dj|0)==218){dj=0;c[je>>2]=le;}c[c[je>>2]>>2]=0;c[c[ie>>2]>>2]=0;c[(c[Hd>>2]|0)+24>>2]=(c[ke>>2]|0)-8;c[Gd>>2]=c[me>>2];}}while(0);c[Ah>>2]=c[Gd>>2];break a;break;}case 5:{aj=c[Ch>>2]|0;Zh=c[Dh>>2]|0;Uh=c[Eh>>2]|0;_i=c[Fh>>2]|0;Zi=c[Gh>>2]|0;Ph=c[Hh>>2]|0;Qh=c[Ih>>2]|0;_h=c[Jh>>2]|0;c[De>>2]=c[Bh>>2];c[Ee>>2]=aj;c[Fe>>2]=Zh;c[Ge>>2]=Uh;c[He>>2]=_i;c[Ie>>2]=Zi;c[Je>>2]=Ph;c[Ke>>2]=Qh;c[Le>>2]=_h;c[Me>>2]=5;if((c[(c[Ee>>2]|0)+20>>2]|0)>>>0<4095)ij=c[(c[Ee>>2]|0)+20>>2]|0;else ij=4095;c[Ne>>2]=ij;c[Oe>>2]=c[(c[De>>2]|0)+4>>2];c[Pe>>2]=(c[Fe>>2]|0)-(c[Oe>>2]|0);c[Qe>>2]=c[(c[Ee>>2]|0)+8>>2];c[Re>>2]=(c[Me>>2]|0)==3?3:4;c[Se>>2]=c[(c[De>>2]|0)+36>>2];c[Te>>2]=Sj(c[Fe>>2]|0,c[Qe>>2]|0,c[Me>>2]|0)|0;c[Ue>>2]=c[(c[Se>>2]|0)+(c[Te>>2]<<2)>>2];c[Ve>>2]=c[(c[De>>2]|0)+44>>2];c[We>>2]=(c[(c[Ee>>2]|0)+4>>2]|0)-1;c[Xe>>2]=(1<<c[We>>2])-1;c[Ye>>2]=0;c[Ze>>2]=0;c[_e>>2]=c[(c[De>>2]|0)+8>>2];c[$e>>2]=c[(c[De>>2]|0)+12>>2];c[af>>2]=(c[_e>>2]|0)+(c[$e>>2]|0);c[bf>>2]=(c[Oe>>2]|0)+(c[$e>>2]|0);if((c[Xe>>2]|0)>>>0>=(c[Pe>>2]|0)>>>0)jj=0;else jj=(c[Pe>>2]|0)-(c[Xe>>2]|0)|0;c[cf>>2]=jj;c[df>>2]=c[(c[De>>2]|0)+16>>2];c[ef>>2]=(c[Ve>>2]|0)+((c[Pe>>2]&c[Xe>>2])<<1<<2);c[ff>>2]=(c[Ve>>2]|0)+((c[Pe>>2]&c[Xe>>2])<<1<<2)+4;c[gf>>2]=(c[Pe>>2]|0)+8+1;c[jf>>2]=0;c[kf>>2]=1<<c[(c[Ee>>2]|0)+12>>2];c[lf>>2]=(c[Le>>2]|0)-1;c[mf>>2]=3+(c[Je>>2]|0);c[nf>>2]=c[Je>>2];while(1){if((c[nf>>2]|0)>>>0>=(c[mf>>2]|0)>>>0){dj=137;break;}_h=c[Ie>>2]|0;if((c[nf>>2]|0)==3)kj=(c[_h>>2]|0)-1|0;else kj=c[_h+(c[nf>>2]<<2)>>2]|0;c[of>>2]=kj;c[pf>>2]=(c[Pe>>2]|0)-(c[of>>2]|0);c[qf>>2]=0;if(((c[of>>2]|0)-1|0)>>>0<((c[Pe>>2]|0)-(c[$e>>2]|0)|0)>>>0){_h=mm(c[Fe>>2]|0,c[Re>>2]|0)|0;if((_h|0)==(mm((c[Fe>>2]|0)+(0-(c[of>>2]|0))|0,c[Re>>2]|0)|0)){_h=Tj((c[Fe>>2]|0)+(c[Re>>2]|0)|0,(c[Fe>>2]|0)+(c[Re>>2]|0)+(0-(c[of>>2]|0))|0,c[Ge>>2]|0)|0;c[qf>>2]=_h+(c[Re>>2]|0);}}else{c[rf>>2]=(c[_e>>2]|0)+(c[pf>>2]|0);if((c[He>>2]|0?(((c[$e>>2]|0)-1-(c[pf>>2]|0)|0)>>>0>=3?((c[of>>2]|0)-1|0)>>>0<((c[Pe>>2]|0)-(c[df>>2]|0)|0)>>>0:0)|0:0)?(_h=mm(c[Fe>>2]|0,c[Re>>2]|0)|0,(_h|0)==(mm(c[rf>>2]|0,c[Re>>2]|0)|0)):0){_h=Uj((c[Fe>>2]|0)+(c[Re>>2]|0)|0,(c[rf>>2]|0)+(c[Re>>2]|0)|0,c[Ge>>2]|0,c[af>>2]|0,c[bf>>2]|0)|0;c[qf>>2]=_h+(c[Re>>2]|0);}}if((c[qf>>2]|0)>>>0>(c[lf>>2]|0)>>>0?(c[lf>>2]=c[qf>>2],c[(c[Ke>>2]|0)+(c[jf>>2]<<3)>>2]=(c[nf>>2]|0)-(c[Je>>2]|0),c[(c[Ke>>2]|0)+(c[jf>>2]<<3)+4>>2]=c[qf>>2],c[jf>>2]=(c[jf>>2]|0)+1,((c[qf>>2]|0)>>>0>(c[Ne>>2]|0)>>>0?1:((c[Fe>>2]|0)+(c[qf>>2]|0)|0)==(c[Ge>>2]|0))|0):0){dj=135;break;}c[nf>>2]=(c[nf>>2]|0)+1;}do{if((dj|0)==135){dj=0;c[Ce>>2]=c[jf>>2];}else if((dj|0)==137){dj=0;if(((c[Me>>2]|0)==3?(c[lf>>2]|0)>>>0<(c[Me>>2]|0)>>>0:0)?(c[sf>>2]=nm(c[De>>2]|0,c[Fe>>2]|0)|0,((c[sf>>2]|0)>>>0>(c[df>>2]|0)>>>0?((c[Pe>>2]|0)-(c[sf>>2]|0)|0)>>>0<262144:0)|0):0){if(c[He>>2]|0?(c[sf>>2]|0)>>>0<(c[$e>>2]|0)>>>0:0){c[vf>>2]=(c[_e>>2]|0)+(c[sf>>2]|0);c[tf>>2]=Uj(c[Fe>>2]|0,c[vf>>2]|0,c[Ge>>2]|0,c[af>>2]|0,c[bf>>2]|0)|0;}else{c[uf>>2]=(c[Oe>>2]|0)+(c[sf>>2]|0);c[tf>>2]=Tj(c[Fe>>2]|0,c[uf>>2]|0,c[Ge>>2]|0)|0;}if((c[tf>>2]|0)>>>0>=(c[Me>>2]|0)>>>0?(c[lf>>2]=c[tf>>2],c[c[Ke>>2]>>2]=(c[Pe>>2]|0)-(c[sf>>2]|0)+2,c[(c[Ke>>2]|0)+4>>2]=c[tf>>2],c[jf>>2]=1,((c[tf>>2]|0)>>>0>(c[Ne>>2]|0)>>>0?1:((c[Fe>>2]|0)+(c[tf>>2]|0)|0)==(c[Ge>>2]|0))|0):0){c[(c[De>>2]|0)+24>>2]=(c[Pe>>2]|0)+1;c[Ce>>2]=1;break;}}c[(c[Se>>2]|0)+(c[Te>>2]<<2)>>2]=c[Pe>>2];while(1){_h=c[kf>>2]|0;c[kf>>2]=_h+-1;if(!_h)break;if((c[Ue>>2]|0)>>>0<=(c[df>>2]|0)>>>0)break;c[wf>>2]=(c[Ve>>2]|0)+((c[Ue>>2]&c[Xe>>2])<<1<<2);c[xf>>2]=(c[Ye>>2]|0)>>>0<(c[Ze>>2]|0)>>>0?c[Ye>>2]|0:c[Ze>>2]|0;if(c[He>>2]|0?((c[Ue>>2]|0)+(c[xf>>2]|0)|0)>>>0<(c[$e>>2]|0)>>>0:0){c[yf>>2]=(c[_e>>2]|0)+(c[Ue>>2]|0);_h=Uj((c[Fe>>2]|0)+(c[xf>>2]|0)|0,(c[yf>>2]|0)+(c[xf>>2]|0)|0,c[Ge>>2]|0,c[af>>2]|0,c[bf>>2]|0)|0;c[xf>>2]=(c[xf>>2]|0)+_h;if(((c[Ue>>2]|0)+(c[xf>>2]|0)|0)>>>0>=(c[$e>>2]|0)>>>0)c[yf>>2]=(c[Oe>>2]|0)+(c[Ue>>2]|0);}else{c[yf>>2]=(c[Oe>>2]|0)+(c[Ue>>2]|0);_h=Tj((c[Fe>>2]|0)+(c[xf>>2]|0)|0,(c[yf>>2]|0)+(c[xf>>2]|0)|0,c[Ge>>2]|0)|0;c[xf>>2]=(c[xf>>2]|0)+_h;}if((c[xf>>2]|0)>>>0>(c[lf>>2]|0)>>>0){if((c[xf>>2]|0)>>>0>((c[gf>>2]|0)-(c[Ue>>2]|0)|0)>>>0)c[gf>>2]=(c[Ue>>2]|0)+(c[xf>>2]|0);c[lf>>2]=c[xf>>2];c[(c[Ke>>2]|0)+(c[jf>>2]<<3)>>2]=(c[Pe>>2]|0)-(c[Ue>>2]|0)+2;c[(c[Ke>>2]|0)+(c[jf>>2]<<3)+4>>2]=c[xf>>2];c[jf>>2]=(c[jf>>2]|0)+1;if((c[xf>>2]|0)>>>0>4096)break;if(((c[Fe>>2]|0)+(c[xf>>2]|0)|0)==(c[Ge>>2]|0))break;}_h=c[Ue>>2]|0;if((d[(c[yf>>2]|0)+(c[xf>>2]|0)>>0]|0|0)<(d[(c[Fe>>2]|0)+(c[xf>>2]|0)>>0]|0|0)){c[c[ef>>2]>>2]=_h;c[Ye>>2]=c[xf>>2];if((c[Ue>>2]|0)>>>0<=(c[cf>>2]|0)>>>0){dj=162;break;}c[ef>>2]=(c[wf>>2]|0)+4;c[Ue>>2]=c[(c[wf>>2]|0)+4>>2];}else{c[c[ff>>2]>>2]=_h;c[Ze>>2]=c[xf>>2];if((c[Ue>>2]|0)>>>0<=(c[cf>>2]|0)>>>0){dj=165;break;}c[ff>>2]=c[wf>>2];c[Ue>>2]=c[c[wf>>2]>>2];}}if((dj|0)==162){dj=0;c[ef>>2]=hf;}else if((dj|0)==165){dj=0;c[ff>>2]=hf;}c[c[ff>>2]>>2]=0;c[c[ef>>2]>>2]=0;c[(c[De>>2]|0)+24>>2]=(c[gf>>2]|0)-8;c[Ce>>2]=c[jf>>2];}}while(0);c[Ah>>2]=c[Ce>>2];break a;break;}default:{_h=c[Ch>>2]|0;Qh=c[Dh>>2]|0;Ph=c[Eh>>2]|0;Zi=c[Fh>>2]|0;_i=c[Gh>>2]|0;Uh=c[Hh>>2]|0;Zh=c[Ih>>2]|0;aj=c[Jh>>2]|0;c[Af>>2]=c[Bh>>2];c[Bf>>2]=_h;c[Cf>>2]=Qh;c[Df>>2]=Ph;c[Ef>>2]=Zi;c[Ff>>2]=_i;c[Gf>>2]=Uh;c[Hf>>2]=Zh;c[If>>2]=aj;c[Jf>>2]=4;if((c[(c[Bf>>2]|0)+20>>2]|0)>>>0<4095)lj=c[(c[Bf>>2]|0)+20>>2]|0;else lj=4095;c[Kf>>2]=lj;c[Lf>>2]=c[(c[Af>>2]|0)+4>>2];c[Mf>>2]=(c[Cf>>2]|0)-(c[Lf>>2]|0);c[Nf>>2]=c[(c[Bf>>2]|0)+8>>2];c[Of>>2]=(c[Jf>>2]|0)==3?3:4;c[Pf>>2]=c[(c[Af>>2]|0)+36>>2];c[Qf>>2]=Sj(c[Cf>>2]|0,c[Nf>>2]|0,c[Jf>>2]|0)|0;c[Rf>>2]=c[(c[Pf>>2]|0)+(c[Qf>>2]<<2)>>2];c[Sf>>2]=c[(c[Af>>2]|0)+44>>2];c[Tf>>2]=(c[(c[Bf>>2]|0)+4>>2]|0)-1;c[Uf>>2]=(1<<c[Tf>>2])-1;c[Vf>>2]=0;c[Wf>>2]=0;c[Xf>>2]=c[(c[Af>>2]|0)+8>>2];c[Yf>>2]=c[(c[Af>>2]|0)+12>>2];c[Zf>>2]=(c[Xf>>2]|0)+(c[Yf>>2]|0);c[_f>>2]=(c[Lf>>2]|0)+(c[Yf>>2]|0);if((c[Uf>>2]|0)>>>0>=(c[Mf>>2]|0)>>>0)mj=0;else mj=(c[Mf>>2]|0)-(c[Uf>>2]|0)|0;c[$f>>2]=mj;c[ag>>2]=c[(c[Af>>2]|0)+16>>2];c[bg>>2]=(c[Sf>>2]|0)+((c[Mf>>2]&c[Uf>>2])<<1<<2);c[cg>>2]=(c[Sf>>2]|0)+((c[Mf>>2]&c[Uf>>2])<<1<<2)+4;c[dg>>2]=(c[Mf>>2]|0)+8+1;c[fg>>2]=0;c[gg>>2]=1<<c[(c[Bf>>2]|0)+12>>2];c[hg>>2]=(c[If>>2]|0)-1;c[ig>>2]=3+(c[Gf>>2]|0);c[jg>>2]=c[Gf>>2];while(1){if((c[jg>>2]|0)>>>0>=(c[ig>>2]|0)>>>0){dj=84;break;}aj=c[Ff>>2]|0;if((c[jg>>2]|0)==3)nj=(c[aj>>2]|0)-1|0;else nj=c[aj+(c[jg>>2]<<2)>>2]|0;c[kg>>2]=nj;c[lg>>2]=(c[Mf>>2]|0)-(c[kg>>2]|0);c[mg>>2]=0;if(((c[kg>>2]|0)-1|0)>>>0<((c[Mf>>2]|0)-(c[Yf>>2]|0)|0)>>>0){aj=mm(c[Cf>>2]|0,c[Of>>2]|0)|0;if((aj|0)==(mm((c[Cf>>2]|0)+(0-(c[kg>>2]|0))|0,c[Of>>2]|0)|0)){aj=Tj((c[Cf>>2]|0)+(c[Of>>2]|0)|0,(c[Cf>>2]|0)+(c[Of>>2]|0)+(0-(c[kg>>2]|0))|0,c[Df>>2]|0)|0;c[mg>>2]=aj+(c[Of>>2]|0);}}else{c[ng>>2]=(c[Xf>>2]|0)+(c[lg>>2]|0);if((c[Ef>>2]|0?(((c[Yf>>2]|0)-1-(c[lg>>2]|0)|0)>>>0>=3?((c[kg>>2]|0)-1|0)>>>0<((c[Mf>>2]|0)-(c[ag>>2]|0)|0)>>>0:0)|0:0)?(aj=mm(c[Cf>>2]|0,c[Of>>2]|0)|0,(aj|0)==(mm(c[ng>>2]|0,c[Of>>2]|0)|0)):0){aj=Uj((c[Cf>>2]|0)+(c[Of>>2]|0)|0,(c[ng>>2]|0)+(c[Of>>2]|0)|0,c[Df>>2]|0,c[Zf>>2]|0,c[_f>>2]|0)|0;c[mg>>2]=aj+(c[Of>>2]|0);}}if((c[mg>>2]|0)>>>0>(c[hg>>2]|0)>>>0?(c[hg>>2]=c[mg>>2],c[(c[Hf>>2]|0)+(c[fg>>2]<<3)>>2]=(c[jg>>2]|0)-(c[Gf>>2]|0),c[(c[Hf>>2]|0)+(c[fg>>2]<<3)+4>>2]=c[mg>>2],c[fg>>2]=(c[fg>>2]|0)+1,((c[mg>>2]|0)>>>0>(c[Kf>>2]|0)>>>0?1:((c[Cf>>2]|0)+(c[mg>>2]|0)|0)==(c[Df>>2]|0))|0):0){dj=82;break;}c[jg>>2]=(c[jg>>2]|0)+1;}do{if((dj|0)==82){dj=0;c[zf>>2]=c[fg>>2];}else if((dj|0)==84){dj=0;if(((c[Jf>>2]|0)==3?(c[hg>>2]|0)>>>0<(c[Jf>>2]|0)>>>0:0)?(c[og>>2]=nm(c[Af>>2]|0,c[Cf>>2]|0)|0,((c[og>>2]|0)>>>0>(c[ag>>2]|0)>>>0?((c[Mf>>2]|0)-(c[og>>2]|0)|0)>>>0<262144:0)|0):0){if(c[Ef>>2]|0?(c[og>>2]|0)>>>0<(c[Yf>>2]|0)>>>0:0){c[rg>>2]=(c[Xf>>2]|0)+(c[og>>2]|0);c[pg>>2]=Uj(c[Cf>>2]|0,c[rg>>2]|0,c[Df>>2]|0,c[Zf>>2]|0,c[_f>>2]|0)|0;}else{c[qg>>2]=(c[Lf>>2]|0)+(c[og>>2]|0);c[pg>>2]=Tj(c[Cf>>2]|0,c[qg>>2]|0,c[Df>>2]|0)|0;}if((c[pg>>2]|0)>>>0>=(c[Jf>>2]|0)>>>0?(c[hg>>2]=c[pg>>2],c[c[Hf>>2]>>2]=(c[Mf>>2]|0)-(c[og>>2]|0)+2,c[(c[Hf>>2]|0)+4>>2]=c[pg>>2],c[fg>>2]=1,((c[pg>>2]|0)>>>0>(c[Kf>>2]|0)>>>0?1:((c[Cf>>2]|0)+(c[pg>>2]|0)|0)==(c[Df>>2]|0))|0):0){c[(c[Af>>2]|0)+24>>2]=(c[Mf>>2]|0)+1;c[zf>>2]=1;break;}}c[(c[Pf>>2]|0)+(c[Qf>>2]<<2)>>2]=c[Mf>>2];while(1){aj=c[gg>>2]|0;c[gg>>2]=aj+-1;if(!aj)break;if((c[Rf>>2]|0)>>>0<=(c[ag>>2]|0)>>>0)break;c[sg>>2]=(c[Sf>>2]|0)+((c[Rf>>2]&c[Uf>>2])<<1<<2);c[tg>>2]=(c[Vf>>2]|0)>>>0<(c[Wf>>2]|0)>>>0?c[Vf>>2]|0:c[Wf>>2]|0;if(c[Ef>>2]|0?((c[Rf>>2]|0)+(c[tg>>2]|0)|0)>>>0<(c[Yf>>2]|0)>>>0:0){c[ug>>2]=(c[Xf>>2]|0)+(c[Rf>>2]|0);aj=Uj((c[Cf>>2]|0)+(c[tg>>2]|0)|0,(c[ug>>2]|0)+(c[tg>>2]|0)|0,c[Df>>2]|0,c[Zf>>2]|0,c[_f>>2]|0)|0;c[tg>>2]=(c[tg>>2]|0)+aj;if(((c[Rf>>2]|0)+(c[tg>>2]|0)|0)>>>0>=(c[Yf>>2]|0)>>>0)c[ug>>2]=(c[Lf>>2]|0)+(c[Rf>>2]|0);}else{c[ug>>2]=(c[Lf>>2]|0)+(c[Rf>>2]|0);aj=Tj((c[Cf>>2]|0)+(c[tg>>2]|0)|0,(c[ug>>2]|0)+(c[tg>>2]|0)|0,c[Df>>2]|0)|0;c[tg>>2]=(c[tg>>2]|0)+aj;}if((c[tg>>2]|0)>>>0>(c[hg>>2]|0)>>>0){if((c[tg>>2]|0)>>>0>((c[dg>>2]|0)-(c[Rf>>2]|0)|0)>>>0)c[dg>>2]=(c[Rf>>2]|0)+(c[tg>>2]|0);c[hg>>2]=c[tg>>2];c[(c[Hf>>2]|0)+(c[fg>>2]<<3)>>2]=(c[Mf>>2]|0)-(c[Rf>>2]|0)+2;c[(c[Hf>>2]|0)+(c[fg>>2]<<3)+4>>2]=c[tg>>2];c[fg>>2]=(c[fg>>2]|0)+1;if((c[tg>>2]|0)>>>0>4096)break;if(((c[Cf>>2]|0)+(c[tg>>2]|0)|0)==(c[Df>>2]|0))break;}aj=c[Rf>>2]|0;if((d[(c[ug>>2]|0)+(c[tg>>2]|0)>>0]|0|0)<(d[(c[Cf>>2]|0)+(c[tg>>2]|0)>>0]|0|0)){c[c[bg>>2]>>2]=aj;c[Vf>>2]=c[tg>>2];if((c[Rf>>2]|0)>>>0<=(c[$f>>2]|0)>>>0){dj=109;break;}c[bg>>2]=(c[sg>>2]|0)+4;c[Rf>>2]=c[(c[sg>>2]|0)+4>>2];}else{c[c[cg>>2]>>2]=aj;c[Wf>>2]=c[tg>>2];if((c[Rf>>2]|0)>>>0<=(c[$f>>2]|0)>>>0){dj=112;break;}c[cg>>2]=c[sg>>2];c[Rf>>2]=c[c[sg>>2]>>2];}}if((dj|0)==109){dj=0;c[bg>>2]=eg;}else if((dj|0)==112){dj=0;c[cg>>2]=eg;}c[c[cg>>2]>>2]=0;c[c[bg>>2]>>2]=0;c[(c[Af>>2]|0)+24>>2]=(c[dg>>2]|0)-8;c[zf>>2]=c[fg>>2];}}while(0);c[Ah>>2]=c[zf>>2];break a;}}}}while(0);c[ki>>2]=c[Ah>>2];if(!(c[ki>>2]|0)){c[Vh>>2]=(c[Vh>>2]|0)+1;continue;}c[li>>2]=0;while(1){if((c[li>>2]|0)>>>0>=3)break;c[(c[bi>>2]|0)+16+(c[li>>2]<<2)>>2]=c[(c[Nh>>2]|0)+(c[li>>2]<<2)>>2];c[li>>2]=(c[li>>2]|0)+1;}c[(c[bi>>2]|0)+8>>2]=1;c[(c[bi>>2]|0)+12>>2]=c[ii>>2];c[mi>>2]=c[(c[ci>>2]|0)+((c[ki>>2]|0)-1<<3)+4>>2];do{if((c[mi>>2]|0)>>>0<=(c[$h>>2]|0)>>>0){c[ni>>2]=om(di,c[Wh>>2]|0,c[ii>>2]|0,c[Th>>2]|0)|0;c[oi>>2]=0;while(1){if((c[oi>>2]|0)>>>0>=(c[ai>>2]|0)>>>0)break;c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+8>>2]=1;c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)>>2]=1073741824;c[oi>>2]=(c[oi>>2]|0)+1;}c[pi>>2]=0;while(1){if((c[pi>>2]|0)>>>0>=(c[ki>>2]|0)>>>0)break;c[qi>>2]=c[(c[ci>>2]|0)+(c[pi>>2]<<3)>>2];c[ri>>2]=c[(c[ci>>2]|0)+(c[pi>>2]<<3)+4>>2];pm(si,c[Nh>>2]|0,c[qi>>2]|0,c[ji>>2]|0);while(1){if((c[oi>>2]|0)>>>0>(c[ri>>2]|0)>>>0)break;aj=c[ni>>2]|0;Zh=c[oi>>2]|0;Uh=c[Th>>2]|0;_i=c[Rh>>2]|0;c[yd>>2]=c[qi>>2];c[zd>>2]=Zh;c[Ad>>2]=Uh;c[Bd>>2]=_i;c[Dd>>2]=qm((c[yd>>2]|0)+1|0)|0;c[Ed>>2]=(c[zd>>2]|0)-3;if(c[(c[Ad>>2]|0)+56>>2]|0){_i=(qm((c[Ed>>2]|0)+1|0)|0)+16|0;c[xd>>2]=_i+(c[Dd>>2]|0);}else{_i=(c[Dd>>2]|0)+(c[(c[Ad>>2]|0)+52>>2]|0)|0;c[Cd>>2]=_i-(qm((c[(c[(c[Ad>>2]|0)+12>>2]|0)+(c[Dd>>2]<<2)>>2]|0)+1|0)|0);if((c[Bd>>2]|0)<2&(c[Dd>>2]|0)>>>0>=20)c[Cd>>2]=(c[Cd>>2]|0)+((c[Dd>>2]|0)-19<<1);c[Fd>>2]=rm(c[Ed>>2]|0)|0;_i=(c[5840+(c[Fd>>2]<<2)>>2]|0)+(c[(c[Ad>>2]|0)+48>>2]|0)|0;Uh=_i-(qm((c[(c[(c[Ad>>2]|0)+8>>2]|0)+(c[Fd>>2]<<2)>>2]|0)+1|0)|0)|0;c[Cd>>2]=(c[Cd>>2]|0)+Uh;c[xd>>2]=c[Cd>>2];}c[ti>>2]=aj+(c[xd>>2]|0);c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+8>>2]=c[oi>>2];c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+4>>2]=c[qi>>2];c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+12>>2]=c[ii>>2];c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)>>2]=c[ti>>2];aj=(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+16|0;c[aj>>2]=c[si>>2];c[aj+4>>2]=c[si+4>>2];c[aj+8>>2]=c[si+8>>2];c[oi>>2]=(c[oi>>2]|0)+1;}c[pi>>2]=(c[pi>>2]|0)+1;}c[fi>>2]=(c[oi>>2]|0)-1;c[ei>>2]=1;b:while(1){if((c[ei>>2]|0)>>>0>(c[fi>>2]|0)>>>0){dj=504;break;}c[ui>>2]=(c[Vh>>2]|0)+(c[ei>>2]|0);if((c[(c[bi>>2]|0)+(((c[ei>>2]|0)-1|0)*28|0)+8>>2]|0)==1)oj=(c[(c[bi>>2]|0)+(((c[ei>>2]|0)-1|0)*28|0)+12>>2]|0)+1|0;else oj=1;c[vi>>2]=oj;if((c[ei>>2]|0)>>>0>(c[vi>>2]|0)>>>0){aj=c[(c[bi>>2]|0)+(((c[ei>>2]|0)-(c[vi>>2]|0)|0)*28|0)>>2]|0;c[wi>>2]=aj+(sm((c[ui>>2]|0)+(0-(c[vi>>2]|0))|0,c[vi>>2]|0,c[Th>>2]|0)|0);}else c[wi>>2]=tm(di,c[Wh>>2]|0,c[vi>>2]|0,c[Th>>2]|0)|0;if((c[wi>>2]|0)<=(c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)>>2]|0)){c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+8>>2]=1;c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+4>>2]=0;c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+12>>2]=c[vi>>2];c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)>>2]=c[wi>>2];aj=(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+16|0;Uh=(c[bi>>2]|0)+(((c[ei>>2]|0)-1|0)*28|0)+16|0;c[aj>>2]=c[Uh>>2];c[aj+4>>2]=c[Uh+4>>2];c[aj+8>>2]=c[Uh+8>>2];}c:do{if((c[ui>>2]|0)>>>0<=(c[Yh>>2]|0)>>>0){if((c[ei>>2]|0)==(c[fi>>2]|0)){dj=504;break b;}if((c[Rh>>2]|0)==0?(c[(c[bi>>2]|0)+(((c[ei>>2]|0)+1|0)*28|0)>>2]|0)<=(c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)>>2]|0):0)break;c[xi>>2]=(c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+8>>2]|0)!=1&1;if((c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+8>>2]|0)==1)pj=c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+12>>2]|0;else pj=0;c[yi>>2]=pj;if((c[ei>>2]|0)>>>0>(c[yi>>2]|0)>>>0)qj=c[(c[bi>>2]|0)+(((c[ei>>2]|0)-(c[yi>>2]|0)|0)*28|0)>>2]|0;else qj=0;c[zi>>2]=qj;Uh=c[zi>>2]|0;c[Ai>>2]=Uh+(um((c[ui>>2]|0)+(0-(c[yi>>2]|0))|0,c[yi>>2]|0,c[Th>>2]|0)|0);Uh=c[Oh>>2]|0;aj=c[ui>>2]|0;_i=c[Xh>>2]|0;Zh=c[Sh>>2]|0;Zi=(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+16|0;Ph=c[xi>>2]|0;Qh=c[ci>>2]|0;_h=c[ai>>2]|0;c[nd>>2]=c[Lh>>2];c[od>>2]=Uh;c[pd>>2]=aj;c[qd>>2]=_i;c[rd>>2]=Zh;c[sd>>2]=Zi;c[td>>2]=Ph;c[ud>>2]=Qh;c[vd>>2]=_h;c[wd>>2]=c[(c[od>>2]|0)+16>>2];d:do{if((c[pd>>2]|0)>>>0<((c[(c[nd>>2]|0)+4>>2]|0)+(c[(c[nd>>2]|0)+24>>2]|0)|0)>>>0)c[md>>2]=0;else{_h=c[od>>2]|0;Qh=c[pd>>2]|0;Ph=c[qd>>2]|0;Zi=c[wd>>2]|0;Zh=c[rd>>2]|0;c[dd>>2]=c[nd>>2];c[ed>>2]=_h;c[fd>>2]=Qh;c[gd>>2]=Ph;c[hd>>2]=Zi;c[id>>2]=Zh;c[jd>>2]=c[(c[dd>>2]|0)+4>>2];c[kd>>2]=(c[fd>>2]|0)-(c[jd>>2]|0);c[ld>>2]=c[(c[dd>>2]|0)+24>>2];while(1){if((c[ld>>2]|0)>>>0>=(c[kd>>2]|0)>>>0)break;Zh=Rj(c[dd>>2]|0,c[ed>>2]|0,(c[jd>>2]|0)+(c[ld>>2]|0)|0,c[gd>>2]|0,c[hd>>2]|0,c[id>>2]|0)|0;c[ld>>2]=(c[ld>>2]|0)+Zh;}c[(c[dd>>2]|0)+24>>2]=c[kd>>2];switch(c[wd>>2]|0){case 3:{Zh=c[od>>2]|0;Zi=c[pd>>2]|0;Ph=c[qd>>2]|0;Qh=c[rd>>2]|0;_h=c[sd>>2]|0;_i=c[td>>2]|0;aj=c[ud>>2]|0;Uh=c[vd>>2]|0;c[ic>>2]=c[nd>>2];c[jc>>2]=Zh;c[kc>>2]=Zi;c[lc>>2]=Ph;c[mc>>2]=Qh;c[nc>>2]=_h;c[oc>>2]=_i;c[pc>>2]=aj;c[qc>>2]=Uh;c[rc>>2]=3;if((c[(c[jc>>2]|0)+20>>2]|0)>>>0<4095)rj=c[(c[jc>>2]|0)+20>>2]|0;else rj=4095;c[sc>>2]=rj;c[tc>>2]=c[(c[ic>>2]|0)+4>>2];c[uc>>2]=(c[kc>>2]|0)-(c[tc>>2]|0);c[vc>>2]=c[(c[jc>>2]|0)+8>>2];c[wc>>2]=(c[rc>>2]|0)==3?3:4;c[xc>>2]=c[(c[ic>>2]|0)+36>>2];c[yc>>2]=Sj(c[kc>>2]|0,c[vc>>2]|0,c[rc>>2]|0)|0;c[zc>>2]=c[(c[xc>>2]|0)+(c[yc>>2]<<2)>>2];c[Ac>>2]=c[(c[ic>>2]|0)+44>>2];c[Bc>>2]=(c[(c[jc>>2]|0)+4>>2]|0)-1;c[Cc>>2]=(1<<c[Bc>>2])-1;c[Dc>>2]=0;c[Ec>>2]=0;c[Fc>>2]=c[(c[ic>>2]|0)+8>>2];c[Gc>>2]=c[(c[ic>>2]|0)+12>>2];c[Hc>>2]=(c[Fc>>2]|0)+(c[Gc>>2]|0);c[Ic>>2]=(c[tc>>2]|0)+(c[Gc>>2]|0);if((c[Cc>>2]|0)>>>0>=(c[uc>>2]|0)>>>0)sj=0;else sj=(c[uc>>2]|0)-(c[Cc>>2]|0)|0;c[Jc>>2]=sj;c[Kc>>2]=c[(c[ic>>2]|0)+16>>2];c[Lc>>2]=(c[Ac>>2]|0)+((c[uc>>2]&c[Cc>>2])<<1<<2);c[Mc>>2]=(c[Ac>>2]|0)+((c[uc>>2]&c[Cc>>2])<<1<<2)+4;c[Nc>>2]=(c[uc>>2]|0)+8+1;c[Pc>>2]=0;c[Qc>>2]=1<<c[(c[jc>>2]|0)+12>>2];c[Rc>>2]=(c[qc>>2]|0)-1;c[Sc>>2]=3+(c[oc>>2]|0);c[Tc>>2]=c[oc>>2];while(1){if((c[Tc>>2]|0)>>>0>=(c[Sc>>2]|0)>>>0){dj=287;break;}Uh=c[nc>>2]|0;if((c[Tc>>2]|0)==3)tj=(c[Uh>>2]|0)-1|0;else tj=c[Uh+(c[Tc>>2]<<2)>>2]|0;c[Uc>>2]=tj;c[Vc>>2]=(c[uc>>2]|0)-(c[Uc>>2]|0);c[Wc>>2]=0;do{if(((c[Uc>>2]|0)-1|0)>>>0<((c[uc>>2]|0)-(c[Gc>>2]|0)|0)>>>0){Uh=mm(c[kc>>2]|0,c[wc>>2]|0)|0;if((Uh|0)!=(mm((c[kc>>2]|0)+(0-(c[Uc>>2]|0))|0,c[wc>>2]|0)|0))break;Uh=Tj((c[kc>>2]|0)+(c[wc>>2]|0)|0,(c[kc>>2]|0)+(c[wc>>2]|0)+(0-(c[Uc>>2]|0))|0,c[lc>>2]|0)|0;c[Wc>>2]=Uh+(c[wc>>2]|0);}else{c[Xc>>2]=(c[Fc>>2]|0)+(c[Vc>>2]|0);if(!(c[mc>>2]|0))break;if(!((((c[Gc>>2]|0)-1-(c[Vc>>2]|0)|0)>>>0>=3?((c[Uc>>2]|0)-1|0)>>>0<((c[uc>>2]|0)-(c[Kc>>2]|0)|0)>>>0:0)|0))break;Uh=mm(c[kc>>2]|0,c[wc>>2]|0)|0;if((Uh|0)!=(mm(c[Xc>>2]|0,c[wc>>2]|0)|0))break;Uh=Uj((c[kc>>2]|0)+(c[wc>>2]|0)|0,(c[Xc>>2]|0)+(c[wc>>2]|0)|0,c[lc>>2]|0,c[Hc>>2]|0,c[Ic>>2]|0)|0;c[Wc>>2]=Uh+(c[wc>>2]|0);}}while(0);if((c[Wc>>2]|0)>>>0>(c[Rc>>2]|0)>>>0?(c[Rc>>2]=c[Wc>>2],c[(c[pc>>2]|0)+(c[Pc>>2]<<3)>>2]=(c[Tc>>2]|0)-(c[oc>>2]|0),c[(c[pc>>2]|0)+(c[Pc>>2]<<3)+4>>2]=c[Wc>>2],c[Pc>>2]=(c[Pc>>2]|0)+1,((c[Wc>>2]|0)>>>0>(c[sc>>2]|0)>>>0?1:((c[kc>>2]|0)+(c[Wc>>2]|0)|0)==(c[lc>>2]|0))|0):0){dj=285;break;}c[Tc>>2]=(c[Tc>>2]|0)+1;}e:do{if((dj|0)==285){dj=0;c[hc>>2]=c[Pc>>2];}else if((dj|0)==287){dj=0;do{if((c[rc>>2]|0)==3){if((c[Rc>>2]|0)>>>0>=(c[rc>>2]|0)>>>0)break;c[Yc>>2]=nm(c[ic>>2]|0,c[kc>>2]|0)|0;if(!(((c[Yc>>2]|0)>>>0>(c[Kc>>2]|0)>>>0?((c[uc>>2]|0)-(c[Yc>>2]|0)|0)>>>0<262144:0)|0))break;do{if(c[mc>>2]|0){if((c[Yc>>2]|0)>>>0>=(c[Gc>>2]|0)>>>0){dj=292;break;}c[$c>>2]=(c[Fc>>2]|0)+(c[Yc>>2]|0);c[Zc>>2]=Uj(c[kc>>2]|0,c[$c>>2]|0,c[lc>>2]|0,c[Hc>>2]|0,c[Ic>>2]|0)|0;}else dj=292;}while(0);if((dj|0)==292){dj=0;c[_c>>2]=(c[tc>>2]|0)+(c[Yc>>2]|0);c[Zc>>2]=Tj(c[kc>>2]|0,c[_c>>2]|0,c[lc>>2]|0)|0;}if((c[Zc>>2]|0)>>>0<(c[rc>>2]|0)>>>0)break;c[Rc>>2]=c[Zc>>2];c[c[pc>>2]>>2]=(c[uc>>2]|0)-(c[Yc>>2]|0)+2;c[(c[pc>>2]|0)+4>>2]=c[Zc>>2];c[Pc>>2]=1;if(!(((c[Zc>>2]|0)>>>0>(c[sc>>2]|0)>>>0?1:((c[kc>>2]|0)+(c[Zc>>2]|0)|0)==(c[lc>>2]|0))|0))break;c[(c[ic>>2]|0)+24>>2]=(c[uc>>2]|0)+1;c[hc>>2]=1;break e;}}while(0);c[(c[xc>>2]|0)+(c[yc>>2]<<2)>>2]=c[uc>>2];while(1){Uh=c[Qc>>2]|0;c[Qc>>2]=Uh+-1;if(!Uh)break;if((c[zc>>2]|0)>>>0<=(c[Kc>>2]|0)>>>0)break;c[ad>>2]=(c[Ac>>2]|0)+((c[zc>>2]&c[Cc>>2])<<1<<2);c[bd>>2]=(c[Dc>>2]|0)>>>0<(c[Ec>>2]|0)>>>0?c[Dc>>2]|0:c[Ec>>2]|0;do{if(c[mc>>2]|0){if(((c[zc>>2]|0)+(c[bd>>2]|0)|0)>>>0>=(c[Gc>>2]|0)>>>0){dj=302;break;}c[cd>>2]=(c[Fc>>2]|0)+(c[zc>>2]|0);Uh=Uj((c[kc>>2]|0)+(c[bd>>2]|0)|0,(c[cd>>2]|0)+(c[bd>>2]|0)|0,c[lc>>2]|0,c[Hc>>2]|0,c[Ic>>2]|0)|0;c[bd>>2]=(c[bd>>2]|0)+Uh;if(((c[zc>>2]|0)+(c[bd>>2]|0)|0)>>>0<(c[Gc>>2]|0)>>>0)break;c[cd>>2]=(c[tc>>2]|0)+(c[zc>>2]|0);}else dj=302;}while(0);if((dj|0)==302){dj=0;c[cd>>2]=(c[tc>>2]|0)+(c[zc>>2]|0);Uh=Tj((c[kc>>2]|0)+(c[bd>>2]|0)|0,(c[cd>>2]|0)+(c[bd>>2]|0)|0,c[lc>>2]|0)|0;c[bd>>2]=(c[bd>>2]|0)+Uh;}if((c[bd>>2]|0)>>>0>(c[Rc>>2]|0)>>>0){if((c[bd>>2]|0)>>>0>((c[Nc>>2]|0)-(c[zc>>2]|0)|0)>>>0)c[Nc>>2]=(c[zc>>2]|0)+(c[bd>>2]|0);c[Rc>>2]=c[bd>>2];c[(c[pc>>2]|0)+(c[Pc>>2]<<3)>>2]=(c[uc>>2]|0)-(c[zc>>2]|0)+2;c[(c[pc>>2]|0)+(c[Pc>>2]<<3)+4>>2]=c[bd>>2];c[Pc>>2]=(c[Pc>>2]|0)+1;if((c[bd>>2]|0)>>>0>4096)break;if(((c[kc>>2]|0)+(c[bd>>2]|0)|0)==(c[lc>>2]|0))break;}Uh=c[zc>>2]|0;if((d[(c[cd>>2]|0)+(c[bd>>2]|0)>>0]|0|0)<(d[(c[kc>>2]|0)+(c[bd>>2]|0)>>0]|0|0)){c[c[Lc>>2]>>2]=Uh;c[Dc>>2]=c[bd>>2];if((c[zc>>2]|0)>>>0<=(c[Jc>>2]|0)>>>0){dj=312;break;}c[Lc>>2]=(c[ad>>2]|0)+4;c[zc>>2]=c[(c[ad>>2]|0)+4>>2];}else{c[c[Mc>>2]>>2]=Uh;c[Ec>>2]=c[bd>>2];if((c[zc>>2]|0)>>>0<=(c[Jc>>2]|0)>>>0){dj=315;break;}c[Mc>>2]=c[ad>>2];c[zc>>2]=c[c[ad>>2]>>2];}}if((dj|0)==312){dj=0;c[Lc>>2]=Oc;}else if((dj|0)==315){dj=0;c[Mc>>2]=Oc;}c[c[Mc>>2]>>2]=0;c[c[Lc>>2]>>2]=0;c[(c[ic>>2]|0)+24>>2]=(c[Nc>>2]|0)-8;c[hc>>2]=c[Pc>>2];}}while(0);c[md>>2]=c[hc>>2];break d;break;}case 7:case 6:{Uh=c[od>>2]|0;aj=c[pd>>2]|0;_i=c[qd>>2]|0;_h=c[rd>>2]|0;Qh=c[sd>>2]|0;Ph=c[td>>2]|0;Zi=c[ud>>2]|0;Zh=c[vd>>2]|0;c[u>>2]=c[nd>>2];c[v>>2]=Uh;c[w>>2]=aj;c[x>>2]=_i;c[y>>2]=_h;c[z>>2]=Qh;c[A>>2]=Ph;c[B>>2]=Zi;c[C>>2]=Zh;c[D>>2]=6;if((c[(c[v>>2]|0)+20>>2]|0)>>>0<4095)uj=c[(c[v>>2]|0)+20>>2]|0;else uj=4095;c[E>>2]=uj;c[F>>2]=c[(c[u>>2]|0)+4>>2];c[G>>2]=(c[w>>2]|0)-(c[F>>2]|0);c[H>>2]=c[(c[v>>2]|0)+8>>2];c[I>>2]=(c[D>>2]|0)==3?3:4;c[J>>2]=c[(c[u>>2]|0)+36>>2];c[K>>2]=Sj(c[w>>2]|0,c[H>>2]|0,c[D>>2]|0)|0;c[L>>2]=c[(c[J>>2]|0)+(c[K>>2]<<2)>>2];c[M>>2]=c[(c[u>>2]|0)+44>>2];c[N>>2]=(c[(c[v>>2]|0)+4>>2]|0)-1;c[O>>2]=(1<<c[N>>2])-1;c[P>>2]=0;c[Q>>2]=0;c[R>>2]=c[(c[u>>2]|0)+8>>2];c[S>>2]=c[(c[u>>2]|0)+12>>2];c[T>>2]=(c[R>>2]|0)+(c[S>>2]|0);c[U>>2]=(c[F>>2]|0)+(c[S>>2]|0);if((c[O>>2]|0)>>>0>=(c[G>>2]|0)>>>0)vj=0;else vj=(c[G>>2]|0)-(c[O>>2]|0)|0;c[V>>2]=vj;c[W>>2]=c[(c[u>>2]|0)+16>>2];c[X>>2]=(c[M>>2]|0)+((c[G>>2]&c[O>>2])<<1<<2);c[Y>>2]=(c[M>>2]|0)+((c[G>>2]&c[O>>2])<<1<<2)+4;c[Z>>2]=(c[G>>2]|0)+8+1;c[$>>2]=0;c[aa>>2]=1<<c[(c[v>>2]|0)+12>>2];c[ba>>2]=(c[C>>2]|0)-1;c[ca>>2]=3+(c[A>>2]|0);c[da>>2]=c[A>>2];while(1){if((c[da>>2]|0)>>>0>=(c[ca>>2]|0)>>>0){dj=446;break;}Zh=c[z>>2]|0;if((c[da>>2]|0)==3)wj=(c[Zh>>2]|0)-1|0;else wj=c[Zh+(c[da>>2]<<2)>>2]|0;c[ea>>2]=wj;c[fa>>2]=(c[G>>2]|0)-(c[ea>>2]|0);c[ga>>2]=0;do{if(((c[ea>>2]|0)-1|0)>>>0<((c[G>>2]|0)-(c[S>>2]|0)|0)>>>0){Zh=mm(c[w>>2]|0,c[I>>2]|0)|0;if((Zh|0)!=(mm((c[w>>2]|0)+(0-(c[ea>>2]|0))|0,c[I>>2]|0)|0))break;Zh=Tj((c[w>>2]|0)+(c[I>>2]|0)|0,(c[w>>2]|0)+(c[I>>2]|0)+(0-(c[ea>>2]|0))|0,c[x>>2]|0)|0;c[ga>>2]=Zh+(c[I>>2]|0);}else{c[ha>>2]=(c[R>>2]|0)+(c[fa>>2]|0);if(!(c[y>>2]|0))break;if(!((((c[S>>2]|0)-1-(c[fa>>2]|0)|0)>>>0>=3?((c[ea>>2]|0)-1|0)>>>0<((c[G>>2]|0)-(c[W>>2]|0)|0)>>>0:0)|0))break;Zh=mm(c[w>>2]|0,c[I>>2]|0)|0;if((Zh|0)!=(mm(c[ha>>2]|0,c[I>>2]|0)|0))break;Zh=Uj((c[w>>2]|0)+(c[I>>2]|0)|0,(c[ha>>2]|0)+(c[I>>2]|0)|0,c[x>>2]|0,c[T>>2]|0,c[U>>2]|0)|0;c[ga>>2]=Zh+(c[I>>2]|0);}}while(0);if((c[ga>>2]|0)>>>0>(c[ba>>2]|0)>>>0?(c[ba>>2]=c[ga>>2],c[(c[B>>2]|0)+(c[$>>2]<<3)>>2]=(c[da>>2]|0)-(c[A>>2]|0),c[(c[B>>2]|0)+(c[$>>2]<<3)+4>>2]=c[ga>>2],c[$>>2]=(c[$>>2]|0)+1,((c[ga>>2]|0)>>>0>(c[E>>2]|0)>>>0?1:((c[w>>2]|0)+(c[ga>>2]|0)|0)==(c[x>>2]|0))|0):0){dj=444;break;}c[da>>2]=(c[da>>2]|0)+1;}f:do{if((dj|0)==444){dj=0;c[t>>2]=c[$>>2];}else if((dj|0)==446){dj=0;do{if((c[D>>2]|0)==3){if((c[ba>>2]|0)>>>0>=(c[D>>2]|0)>>>0)break;c[ia>>2]=nm(c[u>>2]|0,c[w>>2]|0)|0;if(!(((c[ia>>2]|0)>>>0>(c[W>>2]|0)>>>0?((c[G>>2]|0)-(c[ia>>2]|0)|0)>>>0<262144:0)|0))break;do{if(c[y>>2]|0){if((c[ia>>2]|0)>>>0>=(c[S>>2]|0)>>>0){dj=451;break;}c[la>>2]=(c[R>>2]|0)+(c[ia>>2]|0);c[ja>>2]=Uj(c[w>>2]|0,c[la>>2]|0,c[x>>2]|0,c[T>>2]|0,c[U>>2]|0)|0;}else dj=451;}while(0);if((dj|0)==451){dj=0;c[ka>>2]=(c[F>>2]|0)+(c[ia>>2]|0);c[ja>>2]=Tj(c[w>>2]|0,c[ka>>2]|0,c[x>>2]|0)|0;}if((c[ja>>2]|0)>>>0<(c[D>>2]|0)>>>0)break;c[ba>>2]=c[ja>>2];c[c[B>>2]>>2]=(c[G>>2]|0)-(c[ia>>2]|0)+2;c[(c[B>>2]|0)+4>>2]=c[ja>>2];c[$>>2]=1;if(!(((c[ja>>2]|0)>>>0>(c[E>>2]|0)>>>0?1:((c[w>>2]|0)+(c[ja>>2]|0)|0)==(c[x>>2]|0))|0))break;c[(c[u>>2]|0)+24>>2]=(c[G>>2]|0)+1;c[t>>2]=1;break f;}}while(0);c[(c[J>>2]|0)+(c[K>>2]<<2)>>2]=c[G>>2];while(1){Zh=c[aa>>2]|0;c[aa>>2]=Zh+-1;if(!Zh)break;if((c[L>>2]|0)>>>0<=(c[W>>2]|0)>>>0)break;c[ma>>2]=(c[M>>2]|0)+((c[L>>2]&c[O>>2])<<1<<2);c[na>>2]=(c[P>>2]|0)>>>0<(c[Q>>2]|0)>>>0?c[P>>2]|0:c[Q>>2]|0;do{if(c[y>>2]|0){if(((c[L>>2]|0)+(c[na>>2]|0)|0)>>>0>=(c[S>>2]|0)>>>0){dj=461;break;}c[oa>>2]=(c[R>>2]|0)+(c[L>>2]|0);Zh=Uj((c[w>>2]|0)+(c[na>>2]|0)|0,(c[oa>>2]|0)+(c[na>>2]|0)|0,c[x>>2]|0,c[T>>2]|0,c[U>>2]|0)|0;c[na>>2]=(c[na>>2]|0)+Zh;if(((c[L>>2]|0)+(c[na>>2]|0)|0)>>>0<(c[S>>2]|0)>>>0)break;c[oa>>2]=(c[F>>2]|0)+(c[L>>2]|0);}else dj=461;}while(0);if((dj|0)==461){dj=0;c[oa>>2]=(c[F>>2]|0)+(c[L>>2]|0);Zh=Tj((c[w>>2]|0)+(c[na>>2]|0)|0,(c[oa>>2]|0)+(c[na>>2]|0)|0,c[x>>2]|0)|0;c[na>>2]=(c[na>>2]|0)+Zh;}if((c[na>>2]|0)>>>0>(c[ba>>2]|0)>>>0){if((c[na>>2]|0)>>>0>((c[Z>>2]|0)-(c[L>>2]|0)|0)>>>0)c[Z>>2]=(c[L>>2]|0)+(c[na>>2]|0);c[ba>>2]=c[na>>2];c[(c[B>>2]|0)+(c[$>>2]<<3)>>2]=(c[G>>2]|0)-(c[L>>2]|0)+2;c[(c[B>>2]|0)+(c[$>>2]<<3)+4>>2]=c[na>>2];c[$>>2]=(c[$>>2]|0)+1;if((c[na>>2]|0)>>>0>4096)break;if(((c[w>>2]|0)+(c[na>>2]|0)|0)==(c[x>>2]|0))break;}Zh=c[L>>2]|0;if((d[(c[oa>>2]|0)+(c[na>>2]|0)>>0]|0|0)<(d[(c[w>>2]|0)+(c[na>>2]|0)>>0]|0|0)){c[c[X>>2]>>2]=Zh;c[P>>2]=c[na>>2];if((c[L>>2]|0)>>>0<=(c[V>>2]|0)>>>0){dj=471;break;}c[X>>2]=(c[ma>>2]|0)+4;c[L>>2]=c[(c[ma>>2]|0)+4>>2];}else{c[c[Y>>2]>>2]=Zh;c[Q>>2]=c[na>>2];if((c[L>>2]|0)>>>0<=(c[V>>2]|0)>>>0){dj=474;break;}c[Y>>2]=c[ma>>2];c[L>>2]=c[c[ma>>2]>>2];}}if((dj|0)==471){dj=0;c[X>>2]=_;}else if((dj|0)==474){dj=0;c[Y>>2]=_;}c[c[Y>>2]>>2]=0;c[c[X>>2]>>2]=0;c[(c[u>>2]|0)+24>>2]=(c[Z>>2]|0)-8;c[t>>2]=c[$>>2];}}while(0);c[md>>2]=c[t>>2];break d;break;}case 5:{Zh=c[od>>2]|0;Zi=c[pd>>2]|0;Ph=c[qd>>2]|0;Qh=c[rd>>2]|0;_h=c[sd>>2]|0;_i=c[td>>2]|0;aj=c[ud>>2]|0;Uh=c[vd>>2]|0;c[qa>>2]=c[nd>>2];c[ra>>2]=Zh;c[sa>>2]=Zi;c[ta>>2]=Ph;c[ua>>2]=Qh;c[va>>2]=_h;c[wa>>2]=_i;c[xa>>2]=aj;c[ya>>2]=Uh;c[za>>2]=5;if((c[(c[ra>>2]|0)+20>>2]|0)>>>0<4095)xj=c[(c[ra>>2]|0)+20>>2]|0;else xj=4095;c[Aa>>2]=xj;c[Ba>>2]=c[(c[qa>>2]|0)+4>>2];c[Ca>>2]=(c[sa>>2]|0)-(c[Ba>>2]|0);c[Da>>2]=c[(c[ra>>2]|0)+8>>2];c[Ea>>2]=(c[za>>2]|0)==3?3:4;c[Fa>>2]=c[(c[qa>>2]|0)+36>>2];c[Ga>>2]=Sj(c[sa>>2]|0,c[Da>>2]|0,c[za>>2]|0)|0;c[Ha>>2]=c[(c[Fa>>2]|0)+(c[Ga>>2]<<2)>>2];c[Ia>>2]=c[(c[qa>>2]|0)+44>>2];c[Ja>>2]=(c[(c[ra>>2]|0)+4>>2]|0)-1;c[Ka>>2]=(1<<c[Ja>>2])-1;c[La>>2]=0;c[Ma>>2]=0;c[Na>>2]=c[(c[qa>>2]|0)+8>>2];c[Oa>>2]=c[(c[qa>>2]|0)+12>>2];c[Pa>>2]=(c[Na>>2]|0)+(c[Oa>>2]|0);c[Qa>>2]=(c[Ba>>2]|0)+(c[Oa>>2]|0);if((c[Ka>>2]|0)>>>0>=(c[Ca>>2]|0)>>>0)yj=0;else yj=(c[Ca>>2]|0)-(c[Ka>>2]|0)|0;c[Ra>>2]=yj;c[Sa>>2]=c[(c[qa>>2]|0)+16>>2];c[Ta>>2]=(c[Ia>>2]|0)+((c[Ca>>2]&c[Ka>>2])<<1<<2);c[Ua>>2]=(c[Ia>>2]|0)+((c[Ca>>2]&c[Ka>>2])<<1<<2)+4;c[Va>>2]=(c[Ca>>2]|0)+8+1;c[Xa>>2]=0;c[Ya>>2]=1<<c[(c[ra>>2]|0)+12>>2];c[Za>>2]=(c[ya>>2]|0)-1;c[_a>>2]=3+(c[wa>>2]|0);c[$a>>2]=c[wa>>2];while(1){if((c[$a>>2]|0)>>>0>=(c[_a>>2]|0)>>>0){dj=393;break;}Uh=c[va>>2]|0;if((c[$a>>2]|0)==3)zj=(c[Uh>>2]|0)-1|0;else zj=c[Uh+(c[$a>>2]<<2)>>2]|0;c[ab>>2]=zj;c[bb>>2]=(c[Ca>>2]|0)-(c[ab>>2]|0);c[cb>>2]=0;do{if(((c[ab>>2]|0)-1|0)>>>0<((c[Ca>>2]|0)-(c[Oa>>2]|0)|0)>>>0){Uh=mm(c[sa>>2]|0,c[Ea>>2]|0)|0;if((Uh|0)!=(mm((c[sa>>2]|0)+(0-(c[ab>>2]|0))|0,c[Ea>>2]|0)|0))break;Uh=Tj((c[sa>>2]|0)+(c[Ea>>2]|0)|0,(c[sa>>2]|0)+(c[Ea>>2]|0)+(0-(c[ab>>2]|0))|0,c[ta>>2]|0)|0;c[cb>>2]=Uh+(c[Ea>>2]|0);}else{c[db>>2]=(c[Na>>2]|0)+(c[bb>>2]|0);if(!(c[ua>>2]|0))break;if(!((((c[Oa>>2]|0)-1-(c[bb>>2]|0)|0)>>>0>=3?((c[ab>>2]|0)-1|0)>>>0<((c[Ca>>2]|0)-(c[Sa>>2]|0)|0)>>>0:0)|0))break;Uh=mm(c[sa>>2]|0,c[Ea>>2]|0)|0;if((Uh|0)!=(mm(c[db>>2]|0,c[Ea>>2]|0)|0))break;Uh=Uj((c[sa>>2]|0)+(c[Ea>>2]|0)|0,(c[db>>2]|0)+(c[Ea>>2]|0)|0,c[ta>>2]|0,c[Pa>>2]|0,c[Qa>>2]|0)|0;c[cb>>2]=Uh+(c[Ea>>2]|0);}}while(0);if((c[cb>>2]|0)>>>0>(c[Za>>2]|0)>>>0?(c[Za>>2]=c[cb>>2],c[(c[xa>>2]|0)+(c[Xa>>2]<<3)>>2]=(c[$a>>2]|0)-(c[wa>>2]|0),c[(c[xa>>2]|0)+(c[Xa>>2]<<3)+4>>2]=c[cb>>2],c[Xa>>2]=(c[Xa>>2]|0)+1,((c[cb>>2]|0)>>>0>(c[Aa>>2]|0)>>>0?1:((c[sa>>2]|0)+(c[cb>>2]|0)|0)==(c[ta>>2]|0))|0):0){dj=391;break;}c[$a>>2]=(c[$a>>2]|0)+1;}g:do{if((dj|0)==391){dj=0;c[pa>>2]=c[Xa>>2];}else if((dj|0)==393){dj=0;do{if((c[za>>2]|0)==3){if((c[Za>>2]|0)>>>0>=(c[za>>2]|0)>>>0)break;c[eb>>2]=nm(c[qa>>2]|0,c[sa>>2]|0)|0;if(!(((c[eb>>2]|0)>>>0>(c[Sa>>2]|0)>>>0?((c[Ca>>2]|0)-(c[eb>>2]|0)|0)>>>0<262144:0)|0))break;do{if(c[ua>>2]|0){if((c[eb>>2]|0)>>>0>=(c[Oa>>2]|0)>>>0){dj=398;break;}c[hb>>2]=(c[Na>>2]|0)+(c[eb>>2]|0);c[fb>>2]=Uj(c[sa>>2]|0,c[hb>>2]|0,c[ta>>2]|0,c[Pa>>2]|0,c[Qa>>2]|0)|0;}else dj=398;}while(0);if((dj|0)==398){dj=0;c[gb>>2]=(c[Ba>>2]|0)+(c[eb>>2]|0);c[fb>>2]=Tj(c[sa>>2]|0,c[gb>>2]|0,c[ta>>2]|0)|0;}if((c[fb>>2]|0)>>>0<(c[za>>2]|0)>>>0)break;c[Za>>2]=c[fb>>2];c[c[xa>>2]>>2]=(c[Ca>>2]|0)-(c[eb>>2]|0)+2;c[(c[xa>>2]|0)+4>>2]=c[fb>>2];c[Xa>>2]=1;if(!(((c[fb>>2]|0)>>>0>(c[Aa>>2]|0)>>>0?1:((c[sa>>2]|0)+(c[fb>>2]|0)|0)==(c[ta>>2]|0))|0))break;c[(c[qa>>2]|0)+24>>2]=(c[Ca>>2]|0)+1;c[pa>>2]=1;break g;}}while(0);c[(c[Fa>>2]|0)+(c[Ga>>2]<<2)>>2]=c[Ca>>2];while(1){Uh=c[Ya>>2]|0;c[Ya>>2]=Uh+-1;if(!Uh)break;if((c[Ha>>2]|0)>>>0<=(c[Sa>>2]|0)>>>0)break;c[ib>>2]=(c[Ia>>2]|0)+((c[Ha>>2]&c[Ka>>2])<<1<<2);c[jb>>2]=(c[La>>2]|0)>>>0<(c[Ma>>2]|0)>>>0?c[La>>2]|0:c[Ma>>2]|0;do{if(c[ua>>2]|0){if(((c[Ha>>2]|0)+(c[jb>>2]|0)|0)>>>0>=(c[Oa>>2]|0)>>>0){dj=408;break;}c[kb>>2]=(c[Na>>2]|0)+(c[Ha>>2]|0);Uh=Uj((c[sa>>2]|0)+(c[jb>>2]|0)|0,(c[kb>>2]|0)+(c[jb>>2]|0)|0,c[ta>>2]|0,c[Pa>>2]|0,c[Qa>>2]|0)|0;c[jb>>2]=(c[jb>>2]|0)+Uh;if(((c[Ha>>2]|0)+(c[jb>>2]|0)|0)>>>0<(c[Oa>>2]|0)>>>0)break;c[kb>>2]=(c[Ba>>2]|0)+(c[Ha>>2]|0);}else dj=408;}while(0);if((dj|0)==408){dj=0;c[kb>>2]=(c[Ba>>2]|0)+(c[Ha>>2]|0);Uh=Tj((c[sa>>2]|0)+(c[jb>>2]|0)|0,(c[kb>>2]|0)+(c[jb>>2]|0)|0,c[ta>>2]|0)|0;c[jb>>2]=(c[jb>>2]|0)+Uh;}if((c[jb>>2]|0)>>>0>(c[Za>>2]|0)>>>0){if((c[jb>>2]|0)>>>0>((c[Va>>2]|0)-(c[Ha>>2]|0)|0)>>>0)c[Va>>2]=(c[Ha>>2]|0)+(c[jb>>2]|0);c[Za>>2]=c[jb>>2];c[(c[xa>>2]|0)+(c[Xa>>2]<<3)>>2]=(c[Ca>>2]|0)-(c[Ha>>2]|0)+2;c[(c[xa>>2]|0)+(c[Xa>>2]<<3)+4>>2]=c[jb>>2];c[Xa>>2]=(c[Xa>>2]|0)+1;if((c[jb>>2]|0)>>>0>4096)break;if(((c[sa>>2]|0)+(c[jb>>2]|0)|0)==(c[ta>>2]|0))break;}Uh=c[Ha>>2]|0;if((d[(c[kb>>2]|0)+(c[jb>>2]|0)>>0]|0|0)<(d[(c[sa>>2]|0)+(c[jb>>2]|0)>>0]|0|0)){c[c[Ta>>2]>>2]=Uh;c[La>>2]=c[jb>>2];if((c[Ha>>2]|0)>>>0<=(c[Ra>>2]|0)>>>0){dj=418;break;}c[Ta>>2]=(c[ib>>2]|0)+4;c[Ha>>2]=c[(c[ib>>2]|0)+4>>2];}else{c[c[Ua>>2]>>2]=Uh;c[Ma>>2]=c[jb>>2];if((c[Ha>>2]|0)>>>0<=(c[Ra>>2]|0)>>>0){dj=421;break;}c[Ua>>2]=c[ib>>2];c[Ha>>2]=c[c[ib>>2]>>2];}}if((dj|0)==418){dj=0;c[Ta>>2]=Wa;}else if((dj|0)==421){dj=0;c[Ua>>2]=Wa;}c[c[Ua>>2]>>2]=0;c[c[Ta>>2]>>2]=0;c[(c[qa>>2]|0)+24>>2]=(c[Va>>2]|0)-8;c[pa>>2]=c[Xa>>2];}}while(0);c[md>>2]=c[pa>>2];break d;break;}default:{Uh=c[od>>2]|0;aj=c[pd>>2]|0;_i=c[qd>>2]|0;_h=c[rd>>2]|0;Qh=c[sd>>2]|0;Ph=c[td>>2]|0;Zi=c[ud>>2]|0;Zh=c[vd>>2]|0;c[mb>>2]=c[nd>>2];c[nb>>2]=Uh;c[ob>>2]=aj;c[pb>>2]=_i;c[qb>>2]=_h;c[rb>>2]=Qh;c[sb>>2]=Ph;c[tb>>2]=Zi;c[ub>>2]=Zh;c[vb>>2]=4;if((c[(c[nb>>2]|0)+20>>2]|0)>>>0<4095)Aj=c[(c[nb>>2]|0)+20>>2]|0;else Aj=4095;c[wb>>2]=Aj;c[xb>>2]=c[(c[mb>>2]|0)+4>>2];c[yb>>2]=(c[ob>>2]|0)-(c[xb>>2]|0);c[zb>>2]=c[(c[nb>>2]|0)+8>>2];c[Ab>>2]=(c[vb>>2]|0)==3?3:4;c[Bb>>2]=c[(c[mb>>2]|0)+36>>2];c[Cb>>2]=Sj(c[ob>>2]|0,c[zb>>2]|0,c[vb>>2]|0)|0;c[Db>>2]=c[(c[Bb>>2]|0)+(c[Cb>>2]<<2)>>2];c[Eb>>2]=c[(c[mb>>2]|0)+44>>2];c[Fb>>2]=(c[(c[nb>>2]|0)+4>>2]|0)-1;c[Gb>>2]=(1<<c[Fb>>2])-1;c[Hb>>2]=0;c[Ib>>2]=0;c[Jb>>2]=c[(c[mb>>2]|0)+8>>2];c[Kb>>2]=c[(c[mb>>2]|0)+12>>2];c[Lb>>2]=(c[Jb>>2]|0)+(c[Kb>>2]|0);c[Mb>>2]=(c[xb>>2]|0)+(c[Kb>>2]|0);if((c[Gb>>2]|0)>>>0>=(c[yb>>2]|0)>>>0)Bj=0;else Bj=(c[yb>>2]|0)-(c[Gb>>2]|0)|0;c[Nb>>2]=Bj;c[Ob>>2]=c[(c[mb>>2]|0)+16>>2];c[Pb>>2]=(c[Eb>>2]|0)+((c[yb>>2]&c[Gb>>2])<<1<<2);c[Qb>>2]=(c[Eb>>2]|0)+((c[yb>>2]&c[Gb>>2])<<1<<2)+4;c[Rb>>2]=(c[yb>>2]|0)+8+1;c[Tb>>2]=0;c[Ub>>2]=1<<c[(c[nb>>2]|0)+12>>2];c[Vb>>2]=(c[ub>>2]|0)-1;c[Wb>>2]=3+(c[sb>>2]|0);c[Xb>>2]=c[sb>>2];while(1){if((c[Xb>>2]|0)>>>0>=(c[Wb>>2]|0)>>>0){dj=340;break;}Zh=c[rb>>2]|0;if((c[Xb>>2]|0)==3)Cj=(c[Zh>>2]|0)-1|0;else Cj=c[Zh+(c[Xb>>2]<<2)>>2]|0;c[Yb>>2]=Cj;c[Zb>>2]=(c[yb>>2]|0)-(c[Yb>>2]|0);c[_b>>2]=0;do{if(((c[Yb>>2]|0)-1|0)>>>0<((c[yb>>2]|0)-(c[Kb>>2]|0)|0)>>>0){Zh=mm(c[ob>>2]|0,c[Ab>>2]|0)|0;if((Zh|0)!=(mm((c[ob>>2]|0)+(0-(c[Yb>>2]|0))|0,c[Ab>>2]|0)|0))break;Zh=Tj((c[ob>>2]|0)+(c[Ab>>2]|0)|0,(c[ob>>2]|0)+(c[Ab>>2]|0)+(0-(c[Yb>>2]|0))|0,c[pb>>2]|0)|0;c[_b>>2]=Zh+(c[Ab>>2]|0);}else{c[$b>>2]=(c[Jb>>2]|0)+(c[Zb>>2]|0);if(!(c[qb>>2]|0))break;if(!((((c[Kb>>2]|0)-1-(c[Zb>>2]|0)|0)>>>0>=3?((c[Yb>>2]|0)-1|0)>>>0<((c[yb>>2]|0)-(c[Ob>>2]|0)|0)>>>0:0)|0))break;Zh=mm(c[ob>>2]|0,c[Ab>>2]|0)|0;if((Zh|0)!=(mm(c[$b>>2]|0,c[Ab>>2]|0)|0))break;Zh=Uj((c[ob>>2]|0)+(c[Ab>>2]|0)|0,(c[$b>>2]|0)+(c[Ab>>2]|0)|0,c[pb>>2]|0,c[Lb>>2]|0,c[Mb>>2]|0)|0;c[_b>>2]=Zh+(c[Ab>>2]|0);}}while(0);if((c[_b>>2]|0)>>>0>(c[Vb>>2]|0)>>>0?(c[Vb>>2]=c[_b>>2],c[(c[tb>>2]|0)+(c[Tb>>2]<<3)>>2]=(c[Xb>>2]|0)-(c[sb>>2]|0),c[(c[tb>>2]|0)+(c[Tb>>2]<<3)+4>>2]=c[_b>>2],c[Tb>>2]=(c[Tb>>2]|0)+1,((c[_b>>2]|0)>>>0>(c[wb>>2]|0)>>>0?1:((c[ob>>2]|0)+(c[_b>>2]|0)|0)==(c[pb>>2]|0))|0):0){dj=338;break;}c[Xb>>2]=(c[Xb>>2]|0)+1;}h:do{if((dj|0)==338){dj=0;c[lb>>2]=c[Tb>>2];}else if((dj|0)==340){dj=0;do{if((c[vb>>2]|0)==3){if((c[Vb>>2]|0)>>>0>=(c[vb>>2]|0)>>>0)break;c[ac>>2]=nm(c[mb>>2]|0,c[ob>>2]|0)|0;if(!(((c[ac>>2]|0)>>>0>(c[Ob>>2]|0)>>>0?((c[yb>>2]|0)-(c[ac>>2]|0)|0)>>>0<262144:0)|0))break;do{if(c[qb>>2]|0){if((c[ac>>2]|0)>>>0>=(c[Kb>>2]|0)>>>0){dj=345;break;}c[dc>>2]=(c[Jb>>2]|0)+(c[ac>>2]|0);c[bc>>2]=Uj(c[ob>>2]|0,c[dc>>2]|0,c[pb>>2]|0,c[Lb>>2]|0,c[Mb>>2]|0)|0;}else dj=345;}while(0);if((dj|0)==345){dj=0;c[cc>>2]=(c[xb>>2]|0)+(c[ac>>2]|0);c[bc>>2]=Tj(c[ob>>2]|0,c[cc>>2]|0,c[pb>>2]|0)|0;}if((c[bc>>2]|0)>>>0<(c[vb>>2]|0)>>>0)break;c[Vb>>2]=c[bc>>2];c[c[tb>>2]>>2]=(c[yb>>2]|0)-(c[ac>>2]|0)+2;c[(c[tb>>2]|0)+4>>2]=c[bc>>2];c[Tb>>2]=1;if(!(((c[bc>>2]|0)>>>0>(c[wb>>2]|0)>>>0?1:((c[ob>>2]|0)+(c[bc>>2]|0)|0)==(c[pb>>2]|0))|0))break;c[(c[mb>>2]|0)+24>>2]=(c[yb>>2]|0)+1;c[lb>>2]=1;break h;}}while(0);c[(c[Bb>>2]|0)+(c[Cb>>2]<<2)>>2]=c[yb>>2];while(1){Zh=c[Ub>>2]|0;c[Ub>>2]=Zh+-1;if(!Zh)break;if((c[Db>>2]|0)>>>0<=(c[Ob>>2]|0)>>>0)break;c[ec>>2]=(c[Eb>>2]|0)+((c[Db>>2]&c[Gb>>2])<<1<<2);c[fc>>2]=(c[Hb>>2]|0)>>>0<(c[Ib>>2]|0)>>>0?c[Hb>>2]|0:c[Ib>>2]|0;do{if(c[qb>>2]|0){if(((c[Db>>2]|0)+(c[fc>>2]|0)|0)>>>0>=(c[Kb>>2]|0)>>>0){dj=355;break;}c[gc>>2]=(c[Jb>>2]|0)+(c[Db>>2]|0);Zh=Uj((c[ob>>2]|0)+(c[fc>>2]|0)|0,(c[gc>>2]|0)+(c[fc>>2]|0)|0,c[pb>>2]|0,c[Lb>>2]|0,c[Mb>>2]|0)|0;c[fc>>2]=(c[fc>>2]|0)+Zh;if(((c[Db>>2]|0)+(c[fc>>2]|0)|0)>>>0<(c[Kb>>2]|0)>>>0)break;c[gc>>2]=(c[xb>>2]|0)+(c[Db>>2]|0);}else dj=355;}while(0);if((dj|0)==355){dj=0;c[gc>>2]=(c[xb>>2]|0)+(c[Db>>2]|0);Zh=Tj((c[ob>>2]|0)+(c[fc>>2]|0)|0,(c[gc>>2]|0)+(c[fc>>2]|0)|0,c[pb>>2]|0)|0;c[fc>>2]=(c[fc>>2]|0)+Zh;}if((c[fc>>2]|0)>>>0>(c[Vb>>2]|0)>>>0){if((c[fc>>2]|0)>>>0>((c[Rb>>2]|0)-(c[Db>>2]|0)|0)>>>0)c[Rb>>2]=(c[Db>>2]|0)+(c[fc>>2]|0);c[Vb>>2]=c[fc>>2];c[(c[tb>>2]|0)+(c[Tb>>2]<<3)>>2]=(c[yb>>2]|0)-(c[Db>>2]|0)+2;c[(c[tb>>2]|0)+(c[Tb>>2]<<3)+4>>2]=c[fc>>2];c[Tb>>2]=(c[Tb>>2]|0)+1;if((c[fc>>2]|0)>>>0>4096)break;if(((c[ob>>2]|0)+(c[fc>>2]|0)|0)==(c[pb>>2]|0))break;}Zh=c[Db>>2]|0;if((d[(c[gc>>2]|0)+(c[fc>>2]|0)>>0]|0|0)<(d[(c[ob>>2]|0)+(c[fc>>2]|0)>>0]|0|0)){c[c[Pb>>2]>>2]=Zh;c[Hb>>2]=c[fc>>2];if((c[Db>>2]|0)>>>0<=(c[Nb>>2]|0)>>>0){dj=365;break;}c[Pb>>2]=(c[ec>>2]|0)+4;c[Db>>2]=c[(c[ec>>2]|0)+4>>2];}else{c[c[Qb>>2]>>2]=Zh;c[Ib>>2]=c[fc>>2];if((c[Db>>2]|0)>>>0<=(c[Nb>>2]|0)>>>0){dj=368;break;}c[Qb>>2]=c[ec>>2];c[Db>>2]=c[c[ec>>2]>>2];}}if((dj|0)==365){dj=0;c[Pb>>2]=Sb;}else if((dj|0)==368){dj=0;c[Qb>>2]=Sb;}c[c[Qb>>2]>>2]=0;c[c[Pb>>2]>>2]=0;c[(c[mb>>2]|0)+24>>2]=(c[Rb>>2]|0)-8;c[lb>>2]=c[Tb>>2];}}while(0);c[md>>2]=c[lb>>2];break d;}}}}while(0);c[Bi>>2]=c[md>>2];if(c[Bi>>2]|0){c[Di>>2]=c[(c[ci>>2]|0)+((c[Bi>>2]|0)-1<<3)+4>>2];if(((c[Di>>2]|0)>>>0>(c[$h>>2]|0)>>>0?1:((c[ei>>2]|0)+(c[Di>>2]|0)|0)>>>0>=4096)|0){dj=481;break b;}c[Ci>>2]=0;while(1){if((c[Ci>>2]|0)>>>0>=(c[Bi>>2]|0)>>>0)break c;c[Ei>>2]=c[(c[ci>>2]|0)+(c[Ci>>2]<<3)>>2];pm(Fi,(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+16|0,c[Ei>>2]|0,c[xi>>2]|0);c[Gi>>2]=c[(c[ci>>2]|0)+(c[Ci>>2]<<3)+4>>2];if((c[Ci>>2]|0)>>>0>0)Dj=(c[(c[ci>>2]|0)+((c[Ci>>2]|0)-1<<3)+4>>2]|0)+1|0;else Dj=c[ai>>2]|0;c[Hi>>2]=Dj;c[Ii>>2]=c[Gi>>2];i:while(1){if((c[Ii>>2]|0)>>>0<(c[Hi>>2]|0)>>>0)break;c[Ji>>2]=(c[ei>>2]|0)+(c[Ii>>2]|0);Zh=c[Ai>>2]|0;Zi=c[Ii>>2]|0;Ph=c[Th>>2]|0;Qh=c[Rh>>2]|0;c[k>>2]=c[Ei>>2];c[m>>2]=Zi;c[n>>2]=Ph;c[o>>2]=Qh;c[q>>2]=qm((c[k>>2]|0)+1|0)|0;c[r>>2]=(c[m>>2]|0)-3;if(c[(c[n>>2]|0)+56>>2]|0){Qh=(qm((c[r>>2]|0)+1|0)|0)+16|0;c[j>>2]=Qh+(c[q>>2]|0);}else{Qh=(c[q>>2]|0)+(c[(c[n>>2]|0)+52>>2]|0)|0;c[p>>2]=Qh-(qm((c[(c[(c[n>>2]|0)+12>>2]|0)+(c[q>>2]<<2)>>2]|0)+1|0)|0);if((c[o>>2]|0)<2&(c[q>>2]|0)>>>0>=20)c[p>>2]=(c[p>>2]|0)+((c[q>>2]|0)-19<<1);c[s>>2]=rm(c[r>>2]|0)|0;Qh=(c[5840+(c[s>>2]<<2)>>2]|0)+(c[(c[n>>2]|0)+48>>2]|0)|0;Ph=Qh-(qm((c[(c[(c[n>>2]|0)+8>>2]|0)+(c[s>>2]<<2)>>2]|0)+1|0)|0)|0;c[p>>2]=(c[p>>2]|0)+Ph;c[j>>2]=c[p>>2];}c[Ki>>2]=Zh+(c[j>>2]|0);do{if((c[Ji>>2]|0)>>>0<=(c[fi>>2]|0)>>>0){if((c[Ki>>2]|0)<(c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)>>2]|0)){dj=496;break;}if(!(c[Rh>>2]|0))break i;}else dj=496;}while(0);if((dj|0)==496){dj=0;while(1){if((c[fi>>2]|0)>>>0>=(c[Ji>>2]|0)>>>0)break;c[(c[bi>>2]|0)+(((c[fi>>2]|0)+1|0)*28|0)>>2]=1073741824;c[fi>>2]=(c[fi>>2]|0)+1;}c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)+8>>2]=c[Ii>>2];c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)+4>>2]=c[Ei>>2];c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)+12>>2]=c[yi>>2];c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)>>2]=c[Ki>>2];Zh=(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)+16|0;c[Zh>>2]=c[Fi>>2];c[Zh+4>>2]=c[Fi+4>>2];c[Zh+8>>2]=c[Fi+8>>2];}c[Ii>>2]=(c[Ii>>2]|0)+-1;}c[Ci>>2]=(c[Ci>>2]|0)+1;}}}}while(0);c[ei>>2]=(c[ei>>2]|0)+1;}if((dj|0)==481){dj=0;c[gi>>2]=c[Di>>2];c[hi>>2]=c[(c[ci>>2]|0)+((c[Bi>>2]|0)-1<<3)>>2];c[fi>>2]=(c[ei>>2]|0)+1;break;}else if((dj|0)==504){dj=0;c[gi>>2]=c[(c[bi>>2]|0)+((c[fi>>2]|0)*28|0)+8>>2];c[hi>>2]=c[(c[bi>>2]|0)+((c[fi>>2]|0)*28|0)+4>>2];c[ei>>2]=(c[fi>>2]|0)-(c[gi>>2]|0);break;}}else{c[gi>>2]=c[mi>>2];c[hi>>2]=c[(c[ci>>2]|0)+((c[ki>>2]|0)-1<<3)>>2];c[ei>>2]=0;c[fi>>2]=1;}}while(0);c[Li>>2]=c[gi>>2];c[Mi>>2]=c[hi>>2];c[Ni>>2]=c[ei>>2];while(1){c[Oi>>2]=c[(c[bi>>2]|0)+((c[Ni>>2]|0)*28|0)+8>>2];c[Pi>>2]=c[(c[bi>>2]|0)+((c[Ni>>2]|0)*28|0)+4>>2];c[(c[bi>>2]|0)+((c[Ni>>2]|0)*28|0)+8>>2]=c[Li>>2];c[(c[bi>>2]|0)+((c[Ni>>2]|0)*28|0)+4>>2]=c[Mi>>2];c[Li>>2]=c[Oi>>2];c[Mi>>2]=c[Pi>>2];if((c[Oi>>2]|0)>>>0>(c[Ni>>2]|0)>>>0)break;c[Ni>>2]=(c[Ni>>2]|0)-(c[Oi>>2]|0);}c[Qi>>2]=0;while(1){if((c[Qi>>2]|0)>>>0>=(c[fi>>2]|0)>>>0)break;c[Ri>>2]=(c[Vh>>2]|0)-(c[Wh>>2]|0);c[Si>>2]=c[(c[bi>>2]|0)+((c[Qi>>2]|0)*28|0)+8>>2];c[Ti>>2]=c[(c[bi>>2]|0)+((c[Qi>>2]|0)*28|0)+4>>2];if((c[Si>>2]|0)==1){c[Vh>>2]=(c[Vh>>2]|0)+1;c[Qi>>2]=(c[Qi>>2]|0)+1;continue;}c[Qi>>2]=(c[Qi>>2]|0)+(c[Si>>2]|0);c[Vh>>2]=(c[Vh>>2]|0)+(c[Si>>2]|0);if((c[Ti>>2]|0)>>>0<3){c[Ui>>2]=(c[Ti>>2]|0)+((c[Ri>>2]|0)==0&1);if(c[Ui>>2]|0){Zh=c[Nh>>2]|0;if((c[Ui>>2]|0)==3)Ej=(c[Zh>>2]|0)-1|0;else Ej=c[Zh+(c[Ui>>2]<<2)>>2]|0;c[Vi>>2]=Ej;if((c[Ui>>2]|0)>>>0>=2)c[(c[Nh>>2]|0)+8>>2]=c[(c[Nh>>2]|0)+4>>2];c[(c[Nh>>2]|0)+4>>2]=c[c[Nh>>2]>>2];c[c[Nh>>2]>>2]=c[Vi>>2];}}else{c[(c[Nh>>2]|0)+8>>2]=c[(c[Nh>>2]|0)+4>>2];c[(c[Nh>>2]|0)+4>>2]=c[c[Nh>>2]>>2];c[c[Nh>>2]>>2]=(c[Ti>>2]|0)-2;}vm(c[Th>>2]|0,c[Ri>>2]|0,c[Wh>>2]|0,c[Ti>>2]|0,c[Si>>2]|0);wm(c[Mh>>2]|0,c[Ri>>2]|0,c[Wh>>2]|0,c[Ti>>2]|0,(c[Si>>2]|0)-3|0);c[Wh>>2]=c[Vh>>2];}xm(c[Th>>2]|0);}l=i;return(c[Xh>>2]|0)-(c[Wh>>2]|0)|0;}function lm(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=e;c[(c[g>>2]|0)+56>>2]=0;if(c[(c[g>>2]|0)+28>>2]|0){c[(c[g>>2]|0)+24>>2]=0;c[k>>2]=0;while(1){m=c[g>>2]|0;if((c[k>>2]|0)>>>0>255)break;c[(c[c[g>>2]>>2]|0)+(c[k>>2]<<2)>>2]=1+((c[(c[m>>2]|0)+(c[k>>2]<<2)>>2]|0)>>>5);e=(c[g>>2]|0)+24|0;c[e>>2]=(c[e>>2]|0)+(c[(c[c[g>>2]>>2]|0)+(c[k>>2]<<2)>>2]|0);c[k>>2]=(c[k>>2]|0)+1;}c[m+28>>2]=0;c[k>>2]=0;while(1){n=c[g>>2]|0;if((c[k>>2]|0)>>>0>35)break;c[(c[(c[g>>2]|0)+4>>2]|0)+(c[k>>2]<<2)>>2]=1+((c[(c[n+4>>2]|0)+(c[k>>2]<<2)>>2]|0)>>>5);m=(c[g>>2]|0)+28|0;c[m>>2]=(c[m>>2]|0)+(c[(c[(c[g>>2]|0)+4>>2]|0)+(c[k>>2]<<2)>>2]|0);c[k>>2]=(c[k>>2]|0)+1;}c[n+32>>2]=0;c[k>>2]=0;while(1){o=c[g>>2]|0;if((c[k>>2]|0)>>>0>52)break;c[(c[(c[g>>2]|0)+8>>2]|0)+(c[k>>2]<<2)>>2]=1+((c[(c[o+8>>2]|0)+(c[k>>2]<<2)>>2]|0)>>>4);n=(c[g>>2]|0)+32|0;c[n>>2]=(c[n>>2]|0)+(c[(c[(c[g>>2]|0)+8>>2]|0)+(c[k>>2]<<2)>>2]|0);c[k>>2]=(c[k>>2]|0)+1;}c[o+36>>2]=0;c[k>>2]=0;while(1){if((c[k>>2]|0)>>>0>31)break;c[(c[(c[g>>2]|0)+12>>2]|0)+(c[k>>2]<<2)>>2]=1+((c[(c[(c[g>>2]|0)+12>>2]|0)+(c[k>>2]<<2)>>2]|0)>>>4);o=(c[g>>2]|0)+36|0;c[o>>2]=(c[o>>2]|0)+(c[(c[(c[g>>2]|0)+12>>2]|0)+(c[k>>2]<<2)>>2]|0);c[k>>2]=(c[k>>2]|0)+1;}p=c[g>>2]|0;xm(p);l=f;return;}if((c[i>>2]|0)>>>0<=1024)c[(c[g>>2]|0)+56>>2]=1;c[j>>2]=0;while(1){if((c[j>>2]|0)>>>0>255)break;c[(c[c[g>>2]>>2]|0)+(c[j>>2]<<2)>>2]=0;c[j>>2]=(c[j>>2]|0)+1;}c[j>>2]=0;while(1){q=c[g>>2]|0;if((c[j>>2]|0)>>>0>=(c[i>>2]|0)>>>0)break;k=(c[q>>2]|0)+((d[(c[h>>2]|0)+(c[j>>2]|0)>>0]|0)<<2)|0;c[k>>2]=(c[k>>2]|0)+1;c[j>>2]=(c[j>>2]|0)+1;}c[q+24>>2]=0;c[j>>2]=0;while(1){if((c[j>>2]|0)>>>0>255)break;c[(c[c[g>>2]>>2]|0)+(c[j>>2]<<2)>>2]=1+((c[(c[c[g>>2]>>2]|0)+(c[j>>2]<<2)>>2]|0)>>>4);q=(c[g>>2]|0)+24|0;c[q>>2]=(c[q>>2]|0)+(c[(c[c[g>>2]>>2]|0)+(c[j>>2]<<2)>>2]|0);c[j>>2]=(c[j>>2]|0)+1;}c[j>>2]=0;while(1){r=c[g>>2]|0;if((c[j>>2]|0)>>>0>35)break;c[(c[r+4>>2]|0)+(c[j>>2]<<2)>>2]=1;c[j>>2]=(c[j>>2]|0)+1;}c[r+28>>2]=36;c[j>>2]=0;while(1){s=c[g>>2]|0;if((c[j>>2]|0)>>>0>52)break;c[(c[s+8>>2]|0)+(c[j>>2]<<2)>>2]=1;c[j>>2]=(c[j>>2]|0)+1;}c[s+32>>2]=53;c[j>>2]=0;while(1){t=c[g>>2]|0;if((c[j>>2]|0)>>>0>31)break;c[(c[t+12>>2]|0)+(c[j>>2]<<2)>>2]=1;c[j>>2]=(c[j>>2]|0)+1;}c[t+36>>2]=32;p=c[g>>2]|0;xm(p);l=f;return;}function mm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[f>>2]=a;c[g>>2]=b;do{if((c[g>>2]|0)==3){b=(_j()|0)!=0;a=Yj(c[f>>2]|0)|0;if(b){c[e>>2]=a<<8;break;}else{c[e>>2]=a>>>8;break;}}else c[e>>2]=Yj(c[f>>2]|0)|0;}while(0);l=d;return c[e>>2]|0;}function nm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;d=l;l=l+32|0;e=d+28|0;f=d+24|0;g=d+20|0;h=d+16|0;i=d+12|0;j=d+8|0;k=d+4|0;m=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=c[(c[e>>2]|0)+40>>2];c[h>>2]=c[(c[e>>2]|0)+32>>2];c[i>>2]=c[(c[e>>2]|0)+4>>2];c[j>>2]=c[(c[e>>2]|0)+28>>2];b=(c[f>>2]|0)-(c[i>>2]|0)|0;c[(c[e>>2]|0)+28>>2]=b;c[k>>2]=b;c[m>>2]=Fm(c[f>>2]|0,c[h>>2]|0)|0;while(1){if((c[j>>2]|0)>>>0>=(c[k>>2]|0)>>>0)break;f=c[j>>2]|0;b=c[g>>2]|0;c[b+((Fm((c[i>>2]|0)+(c[j>>2]|0)|0,c[h>>2]|0)|0)<<2)>>2]=f;c[j>>2]=(c[j>>2]|0)+1;}l=d;return c[(c[g>>2]|0)+(c[m>>2]<<2)>>2]|0;}function om(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;g=f+12|0;h=f+8|0;i=f+4|0;j=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;e=Dm(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0,c[j>>2]|0)|0;h=e+(Cm(c[i>>2]|0,c[j>>2]|0)|0)|0;l=f;return h|0;}function pm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+32|0;g=f+28|0;h=f+24|0;i=f+20|0;j=f+8|0;k=f+4|0;m=f;c[g>>2]=b;c[h>>2]=d;c[i>>2]=e;if((c[h>>2]|0)>>>0>=3){c[j+8>>2]=c[(c[g>>2]|0)+4>>2];c[j+4>>2]=c[c[g>>2]>>2];c[j>>2]=(c[h>>2]|0)-2;c[a>>2]=c[j>>2];c[a+4>>2]=c[j+4>>2];c[a+8>>2]=c[j+8>>2];l=f;return;}c[k>>2]=(c[h>>2]|0)+(c[i>>2]|0);if((c[k>>2]|0)>>>0<=0){i=c[g>>2]|0;c[j>>2]=c[i>>2];c[j+4>>2]=c[i+4>>2];c[j+8>>2]=c[i+8>>2];c[a>>2]=c[j>>2];c[a+4>>2]=c[j+4>>2];c[a+8>>2]=c[j+8>>2];l=f;return;}i=c[g>>2]|0;if((c[k>>2]|0)==3)n=(c[i>>2]|0)-1|0;else n=c[i+(c[k>>2]<<2)>>2]|0;c[m>>2]=n;n=c[g>>2]|0;if((c[k>>2]|0)>>>0>=2)o=c[n+4>>2]|0;else o=c[n+8>>2]|0;c[j+8>>2]=o;c[j+4>>2]=c[c[g>>2]>>2];c[j>>2]=c[m>>2];c[a>>2]=c[j>>2];c[a+4>>2]=c[j+4>>2];c[a+8>>2]=c[j+8>>2];l=f;return;}function qm(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=31-(Q(c[d>>2]|0)|0)|0;l=b;return a|0;}function rm(a){a=a|0;var b=0,e=0,f=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;if((c[e>>2]|0)>>>0>127){f=(qm(a)|0)+36|0;l=b;return f|0;}else{f=d[3072+a>>0]|0;l=b;return f|0;}return 0;}function sm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=Bm(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;c[i>>2]=d+(Em(c[g>>2]|0,c[h>>2]|0)|0);l=e;return c[i>>2]|0;}function tm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;e=Dm(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0,c[j>>2]|0)|0;c[k>>2]=e+(Em(c[i>>2]|0,c[j>>2]|0)|0);l=f;return c[k>>2]|0;}function um(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=Bm(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;f=d+(Cm(c[g>>2]|0,c[h>>2]|0)|0)|0;l=e;return f|0;}function vm(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;h=l;l=l+48|0;i=h+36|0;j=h+32|0;k=h+28|0;m=h+24|0;n=h+20|0;o=h+16|0;p=h+12|0;q=h+8|0;r=h+4|0;s=h;c[i>>2]=a;c[j>>2]=b;c[k>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=0;while(1){if((c[o>>2]|0)>>>0>=(c[j>>2]|0)>>>0)break;g=(c[c[i>>2]>>2]|0)+((d[(c[k>>2]|0)+(c[o>>2]|0)>>0]|0)<<2)|0;c[g>>2]=(c[g>>2]|0)+2;c[o>>2]=(c[o>>2]|0)+1;}o=(c[i>>2]|0)+24|0;c[o>>2]=(c[o>>2]|0)+(c[j>>2]<<1);c[p>>2]=Am(c[j>>2]|0)|0;j=(c[(c[i>>2]|0)+4>>2]|0)+(c[p>>2]<<2)|0;c[j>>2]=(c[j>>2]|0)+1;j=(c[i>>2]|0)+28|0;c[j>>2]=(c[j>>2]|0)+1;c[q>>2]=qm((c[m>>2]|0)+1|0)|0;m=(c[(c[i>>2]|0)+12>>2]|0)+(c[q>>2]<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=(c[i>>2]|0)+36|0;c[m>>2]=(c[m>>2]|0)+1;c[r>>2]=(c[n>>2]|0)-3;c[s>>2]=rm(c[r>>2]|0)|0;r=(c[(c[i>>2]|0)+8>>2]|0)+(c[s>>2]<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=(c[i>>2]|0)+32|0;c[r>>2]=(c[r>>2]|0)+1;l=h;return;}function wm(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;h=l;l=l+32|0;i=h+16|0;j=h+12|0;k=h+8|0;m=h+4|0;n=h;c[i>>2]=a;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=g;ym(c[(c[i>>2]|0)+12>>2]|0,c[k>>2]|0,c[j>>2]|0);k=(c[i>>2]|0)+12|0;c[k>>2]=(c[k>>2]|0)+(c[j>>2]|0);if((c[j>>2]|0)>>>0>65535){c[(c[i>>2]|0)+28>>2]=1;c[(c[i>>2]|0)+32>>2]=((c[(c[i>>2]|0)+4>>2]|0)-(c[c[i>>2]>>2]|0)|0)/8|0;}b[(c[(c[i>>2]|0)+4>>2]|0)+4>>1]=c[j>>2];c[c[(c[i>>2]|0)+4>>2]>>2]=(c[m>>2]|0)+1;if((c[n>>2]|0)>>>0<=65535){o=c[n>>2]|0;p=o&65535;q=c[i>>2]|0;r=q+4|0;s=c[r>>2]|0;t=s+6|0;b[t>>1]=p;u=c[i>>2]|0;v=u+4|0;w=c[v>>2]|0;x=w+8|0;c[v>>2]=x;l=h;return;}c[(c[i>>2]|0)+28>>2]=2;c[(c[i>>2]|0)+32>>2]=((c[(c[i>>2]|0)+4>>2]|0)-(c[c[i>>2]>>2]|0)|0)/8|0;o=c[n>>2]|0;p=o&65535;q=c[i>>2]|0;r=q+4|0;s=c[r>>2]|0;t=s+6|0;b[t>>1]=p;u=c[i>>2]|0;v=u+4|0;w=c[v>>2]|0;x=w+8|0;c[v>>2]=x;l=h;return;}function xm(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=qm((c[(c[d>>2]|0)+24>>2]|0)+1|0)|0;c[(c[d>>2]|0)+40>>2]=a;a=qm((c[(c[d>>2]|0)+28>>2]|0)+1|0)|0;c[(c[d>>2]|0)+44>>2]=a;a=qm((c[(c[d>>2]|0)+32>>2]|0)+1|0)|0;c[(c[d>>2]|0)+48>>2]=a;a=qm((c[(c[d>>2]|0)+36>>2]|0)+1|0)|0;c[(c[d>>2]|0)+52>>2]=a;l=b;return;}function ym(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[g>>2];c[j>>2]=c[f>>2];c[k>>2]=(c[j>>2]|0)+(c[h>>2]|0);do{zm(c[j>>2]|0,c[i>>2]|0);c[j>>2]=(c[j>>2]|0)+8;c[i>>2]=(c[i>>2]|0)+8;}while((c[j>>2]|0)>>>0<(c[k>>2]|0)>>>0);l=e;return;}function zm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[f>>2]|0;f=c[g>>2]|0;a[d>>0]=a[f>>0]|0;a[d+1>>0]=a[f+1>>0]|0;a[d+2>>0]=a[f+2>>0]|0;a[d+3>>0]=a[f+3>>0]|0;a[d+4>>0]=a[f+4>>0]|0;a[d+5>>0]=a[f+5>>0]|0;a[d+6>>0]=a[f+6>>0]|0;a[d+7>>0]=a[f+7>>0]|0;l=e;return;}function Am(a){a=a|0;var b=0,e=0,f=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;if((c[e>>2]|0)>>>0>63){f=(qm(a)|0)+19|0;l=b;return f|0;}else{f=d[3008+a>>0]|0;l=b;return f|0;}return 0;}function Bm(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;f=l;l=l+32|0;g=f+20|0;h=f+16|0;i=f+12|0;j=f+8|0;k=f+4|0;m=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=e;e=c[i>>2]|0;if(c[(c[j>>2]|0)+56>>2]|0){c[g>>2]=e*6;n=c[g>>2]|0;l=f;return n|0;}if(!e){c[g>>2]=0;n=c[g>>2]|0;l=f;return n|0;}c[m>>2]=N(c[i>>2]|0,c[(c[j>>2]|0)+40>>2]|0)|0;c[k>>2]=0;while(1){if((c[k>>2]|0)>>>0>=(c[i>>2]|0)>>>0)break;e=qm((c[(c[c[j>>2]>>2]|0)+((d[(c[h>>2]|0)+(c[k>>2]|0)>>0]|0)<<2)>>2]|0)+1|0)|0;c[m>>2]=(c[m>>2]|0)-e;c[k>>2]=(c[k>>2]|0)+1;}c[g>>2]=c[m>>2];n=c[g>>2]|0;l=f;return n|0;}function Cm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=l;l=l+32|0;e=d+16|0;f=d+12|0;g=d+8|0;h=d+4|0;i=d;c[f>>2]=a;c[g>>2]=b;b=c[f>>2]|0;if(c[(c[g>>2]|0)+56>>2]|0){c[e>>2]=qm(b+1|0)|0;j=c[e>>2]|0;l=d;return j|0;}else{c[h>>2]=Am(b)|0;b=(c[5696+(c[h>>2]<<2)>>2]|0)+(c[(c[g>>2]|0)+44>>2]|0)|0;c[i>>2]=b-(qm((c[(c[(c[g>>2]|0)+4>>2]|0)+(c[h>>2]<<2)>>2]|0)+1|0)|0);c[e>>2]=c[i>>2];j=c[e>>2]|0;l=d;return j|0;}return 0;}function Dm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+32|0;g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f+12|0;m=f+8|0;n=f+4|0;o=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;if((c[h>>2]|0)==(c[c[g>>2]>>2]|0)){c[k>>2]=c[(c[g>>2]|0)+8>>2];c[n>>2]=(c[h>>2]|0)+(c[(c[g>>2]|0)+4>>2]|0);c[m>>2]=(c[i>>2]|0)-(c[(c[g>>2]|0)+4>>2]|0);}else{c[k>>2]=0;c[n>>2]=c[h>>2];c[m>>2]=c[i>>2];}e=c[k>>2]|0;c[o>>2]=e+(Bm(c[n>>2]|0,c[m>>2]|0,c[j>>2]|0)|0);c[c[g>>2]>>2]=c[h>>2];c[(c[g>>2]|0)+4>>2]=c[i>>2];c[(c[g>>2]|0)+8>>2]=c[o>>2];l=f;return c[o>>2]|0;}function Em(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=l;l=l+32|0;e=d+16|0;f=d+12|0;g=d+8|0;h=d+4|0;i=d;c[f>>2]=a;c[g>>2]=b;b=c[f>>2]|0;if(c[(c[g>>2]|0)+56>>2]|0){c[e>>2]=qm(b+1|0)|0;j=c[e>>2]|0;l=d;return j|0;}else{c[h>>2]=Am(b)|0;b=c[5696+(c[h>>2]<<2)>>2]|0;f=b+(qm((c[c[(c[g>>2]|0)+4>>2]>>2]|0)+1|0)|0)|0;c[i>>2]=f-(qm((c[(c[(c[g>>2]|0)+4>>2]|0)+(c[h>>2]<<2)>>2]|0)+1|0)|0);c[e>>2]=c[i>>2];j=c[e>>2]|0;l=d;return j|0;}return 0;}function Fm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=Gm(c[e>>2]|0)|0;e=Hm(b,c[f>>2]|0)|0;l=d;return e|0;}function Gm(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(_j()|0)!=0;f=Yj(c[e>>2]|0)|0;if(a){c[d>>2]=f;g=c[d>>2]|0;l=b;return g|0;}else{c[d>>2]=Im(f)|0;g=c[d>>2]|0;l=b;return g|0;}return 0;}function Hm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=N(c[e>>2]<<8,506832829)|0;l=d;return b>>>(32-(c[f>>2]|0)|0)|0;}function Im(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[d>>2]<<24&-16777216|c[d>>2]<<8&16711680|(c[d>>2]|0)>>>8&65280|(c[d>>2]|0)>>>24&255|0;}function Jm(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;g=l;l=l+32|0;h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;m=g+4|0;n=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;switch(c[(c[j>>2]|0)+16>>2]|0){case 7:case 6:{c[h>>2]=Vm(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,6)|0;o=c[h>>2]|0;l=g;return o|0;}case 5:{c[h>>2]=Vm(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,5)|0;o=c[h>>2]|0;l=g;return o|0;}default:{c[h>>2]=Vm(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,4)|0;o=c[h>>2]|0;l=g;return o|0;}}return 0;}function Km(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0;h=l;l=l+320|0;i=h+308|0;j=h+304|0;k=h+300|0;m=h+296|0;n=h+292|0;o=h+288|0;p=h+284|0;q=h+280|0;r=h+276|0;s=h+272|0;t=h+268|0;u=h+264|0;v=h+260|0;w=h+256|0;x=h+252|0;y=h+248|0;z=h+244|0;A=h+240|0;B=h+236|0;C=h+232|0;D=h+228|0;E=h+224|0;F=h+220|0;G=h+216|0;H=h+212|0;I=h+208|0;J=h+204|0;K=h+200|0;L=h+196|0;M=h+192|0;N=h+188|0;O=h+184|0;P=h+180|0;Q=h+176|0;R=h+172|0;S=h+168|0;T=h+164|0;U=h+160|0;V=h+156|0;W=h+152|0;X=h+148|0;Y=h+144|0;Z=h+140|0;_=h+136|0;$=h+132|0;aa=h+128|0;ba=h+124|0;ca=h+120|0;da=h+116|0;ea=h+112|0;fa=h+108|0;ga=h+104|0;ha=h+100|0;ia=h+96|0;ja=h+92|0;ka=h+88|0;la=h+84|0;ma=h+80|0;na=h+76|0;oa=h+72|0;pa=h+68|0;qa=h+64|0;ra=h+60|0;sa=h+56|0;ta=h+52|0;ua=h+48|0;va=h+44|0;wa=h+40|0;xa=h+36|0;ya=h+32|0;za=h+28|0;Aa=h+24|0;Ba=h+20|0;Ca=h+16|0;Da=h+12|0;Ea=h+8|0;Fa=h+4|0;Ga=h;c[Ca>>2]=a;c[Da>>2]=b;c[Ea>>2]=e;c[Fa>>2]=f;c[Ga>>2]=g;switch(c[(c[Da>>2]|0)+16>>2]|0){case 7:case 6:{g=c[Da>>2]|0;f=c[Ea>>2]|0;e=c[Fa>>2]|0;b=c[Ga>>2]|0;c[i>>2]=c[Ca>>2];c[j>>2]=g;c[k>>2]=f;c[m>>2]=e;c[n>>2]=b;c[o>>2]=6;c[p>>2]=1;c[q>>2]=c[(c[i>>2]|0)+44>>2];c[r>>2]=1<<c[(c[j>>2]|0)+4>>2];c[s>>2]=(c[r>>2]|0)-1;c[t>>2]=c[(c[i>>2]|0)+4>>2];c[u>>2]=c[(c[i>>2]|0)+8>>2];c[v>>2]=c[(c[i>>2]|0)+12>>2];c[w>>2]=(c[t>>2]|0)+(c[v>>2]|0);c[x>>2]=(c[u>>2]|0)+(c[v>>2]|0);c[y>>2]=c[(c[i>>2]|0)+16>>2];c[z>>2]=(c[k>>2]|0)-(c[t>>2]|0);if((c[z>>2]|0)>>>0>(c[r>>2]|0)>>>0)Ha=(c[z>>2]|0)-(c[r>>2]|0)|0;else Ha=0;c[A>>2]=Ha;c[B>>2]=1<<c[(c[j>>2]|0)+12>>2];c[C>>2]=3;c[D>>2]=mk(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[o>>2]|0)|0;while(1){if(!(((c[B>>2]|0)>>>0>0?(c[D>>2]|0)>>>0>(c[y>>2]|0)>>>0:0)|0))break;c[E>>2]=0;if(c[p>>2]|0?(c[D>>2]|0)>>>0<(c[v>>2]|0)>>>0:0){c[G>>2]=(c[u>>2]|0)+(c[D>>2]|0);o=Bk(c[G>>2]|0)|0;if((o|0)==(Bk(c[k>>2]|0)|0))c[E>>2]=(Lm((c[k>>2]|0)+4|0,(c[G>>2]|0)+4|0,c[m>>2]|0,c[x>>2]|0,c[w>>2]|0)|0)+4;}else Ia=38;if((Ia|0)==38?(Ia=0,c[F>>2]=(c[t>>2]|0)+(c[D>>2]|0),(d[(c[F>>2]|0)+(c[C>>2]|0)>>0]|0|0)==(d[(c[k>>2]|0)+(c[C>>2]|0)>>0]|0|0)):0)c[E>>2]=Qm(c[k>>2]|0,c[F>>2]|0,c[m>>2]|0)|0;if((c[E>>2]|0)>>>0>(c[C>>2]|0)>>>0?(c[C>>2]=c[E>>2],c[c[n>>2]>>2]=(c[z>>2]|0)-(c[D>>2]|0)+2,((c[k>>2]|0)+(c[E>>2]|0)|0)==(c[m>>2]|0)):0)break;if((c[D>>2]|0)>>>0<=(c[A>>2]|0)>>>0)break;c[D>>2]=c[(c[q>>2]|0)+((c[D>>2]&c[s>>2])<<2)>>2];c[B>>2]=(c[B>>2]|0)+-1;}c[Ba>>2]=c[C>>2];Ja=c[Ba>>2]|0;l=h;return Ja|0;}case 5:{C=c[Da>>2]|0;B=c[Ea>>2]|0;s=c[Fa>>2]|0;D=c[Ga>>2]|0;c[H>>2]=c[Ca>>2];c[I>>2]=C;c[J>>2]=B;c[K>>2]=s;c[L>>2]=D;c[M>>2]=5;c[N>>2]=1;c[O>>2]=c[(c[H>>2]|0)+44>>2];c[P>>2]=1<<c[(c[I>>2]|0)+4>>2];c[Q>>2]=(c[P>>2]|0)-1;c[R>>2]=c[(c[H>>2]|0)+4>>2];c[S>>2]=c[(c[H>>2]|0)+8>>2];c[T>>2]=c[(c[H>>2]|0)+12>>2];c[U>>2]=(c[R>>2]|0)+(c[T>>2]|0);c[V>>2]=(c[S>>2]|0)+(c[T>>2]|0);c[W>>2]=c[(c[H>>2]|0)+16>>2];c[X>>2]=(c[J>>2]|0)-(c[R>>2]|0);if((c[X>>2]|0)>>>0>(c[P>>2]|0)>>>0)Ka=(c[X>>2]|0)-(c[P>>2]|0)|0;else Ka=0;c[Y>>2]=Ka;c[Z>>2]=1<<c[(c[I>>2]|0)+12>>2];c[_>>2]=3;c[$>>2]=mk(c[H>>2]|0,c[I>>2]|0,c[J>>2]|0,c[M>>2]|0)|0;while(1){if(!(((c[Z>>2]|0)>>>0>0?(c[$>>2]|0)>>>0>(c[W>>2]|0)>>>0:0)|0))break;c[aa>>2]=0;if(c[N>>2]|0?(c[$>>2]|0)>>>0<(c[T>>2]|0)>>>0:0){c[ca>>2]=(c[S>>2]|0)+(c[$>>2]|0);M=Bk(c[ca>>2]|0)|0;if((M|0)==(Bk(c[J>>2]|0)|0))c[aa>>2]=(Lm((c[J>>2]|0)+4|0,(c[ca>>2]|0)+4|0,c[K>>2]|0,c[V>>2]|0,c[U>>2]|0)|0)+4;}else Ia=23;if((Ia|0)==23?(Ia=0,c[ba>>2]=(c[R>>2]|0)+(c[$>>2]|0),(d[(c[ba>>2]|0)+(c[_>>2]|0)>>0]|0|0)==(d[(c[J>>2]|0)+(c[_>>2]|0)>>0]|0|0)):0)c[aa>>2]=Qm(c[J>>2]|0,c[ba>>2]|0,c[K>>2]|0)|0;if((c[aa>>2]|0)>>>0>(c[_>>2]|0)>>>0?(c[_>>2]=c[aa>>2],c[c[L>>2]>>2]=(c[X>>2]|0)-(c[$>>2]|0)+2,((c[J>>2]|0)+(c[aa>>2]|0)|0)==(c[K>>2]|0)):0)break;if((c[$>>2]|0)>>>0<=(c[Y>>2]|0)>>>0)break;c[$>>2]=c[(c[O>>2]|0)+((c[$>>2]&c[Q>>2])<<2)>>2];c[Z>>2]=(c[Z>>2]|0)+-1;}c[Ba>>2]=c[_>>2];Ja=c[Ba>>2]|0;l=h;return Ja|0;}default:{_=c[Da>>2]|0;Da=c[Ea>>2]|0;Ea=c[Fa>>2]|0;Fa=c[Ga>>2]|0;c[da>>2]=c[Ca>>2];c[ea>>2]=_;c[fa>>2]=Da;c[ga>>2]=Ea;c[ha>>2]=Fa;c[ia>>2]=4;c[ja>>2]=1;c[ka>>2]=c[(c[da>>2]|0)+44>>2];c[la>>2]=1<<c[(c[ea>>2]|0)+4>>2];c[ma>>2]=(c[la>>2]|0)-1;c[na>>2]=c[(c[da>>2]|0)+4>>2];c[oa>>2]=c[(c[da>>2]|0)+8>>2];c[pa>>2]=c[(c[da>>2]|0)+12>>2];c[qa>>2]=(c[na>>2]|0)+(c[pa>>2]|0);c[ra>>2]=(c[oa>>2]|0)+(c[pa>>2]|0);c[sa>>2]=c[(c[da>>2]|0)+16>>2];c[ta>>2]=(c[fa>>2]|0)-(c[na>>2]|0);if((c[ta>>2]|0)>>>0>(c[la>>2]|0)>>>0)La=(c[ta>>2]|0)-(c[la>>2]|0)|0;else La=0;c[ua>>2]=La;c[va>>2]=1<<c[(c[ea>>2]|0)+12>>2];c[wa>>2]=3;c[xa>>2]=mk(c[da>>2]|0,c[ea>>2]|0,c[fa>>2]|0,c[ia>>2]|0)|0;while(1){if(!(((c[va>>2]|0)>>>0>0?(c[xa>>2]|0)>>>0>(c[sa>>2]|0)>>>0:0)|0))break;c[ya>>2]=0;if(c[ja>>2]|0?(c[xa>>2]|0)>>>0<(c[pa>>2]|0)>>>0:0){c[Aa>>2]=(c[oa>>2]|0)+(c[xa>>2]|0);ia=Bk(c[Aa>>2]|0)|0;if((ia|0)==(Bk(c[fa>>2]|0)|0))c[ya>>2]=(Lm((c[fa>>2]|0)+4|0,(c[Aa>>2]|0)+4|0,c[ga>>2]|0,c[ra>>2]|0,c[qa>>2]|0)|0)+4;}else Ia=8;if((Ia|0)==8?(Ia=0,c[za>>2]=(c[na>>2]|0)+(c[xa>>2]|0),(d[(c[za>>2]|0)+(c[wa>>2]|0)>>0]|0|0)==(d[(c[fa>>2]|0)+(c[wa>>2]|0)>>0]|0|0)):0)c[ya>>2]=Qm(c[fa>>2]|0,c[za>>2]|0,c[ga>>2]|0)|0;if((c[ya>>2]|0)>>>0>(c[wa>>2]|0)>>>0?(c[wa>>2]=c[ya>>2],c[c[ha>>2]>>2]=(c[ta>>2]|0)-(c[xa>>2]|0)+2,((c[fa>>2]|0)+(c[ya>>2]|0)|0)==(c[ga>>2]|0)):0)break;if((c[xa>>2]|0)>>>0<=(c[ua>>2]|0)>>>0)break;c[xa>>2]=c[(c[ka>>2]|0)+((c[xa>>2]&c[ma>>2])<<2)>>2];c[va>>2]=(c[va>>2]|0)+-1;}c[Ba>>2]=c[wa>>2];Ja=c[Ba>>2]|0;l=h;return Ja|0;}}return 0;}function Lm(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;g=l;l=l+32|0;h=g+28|0;i=g+24|0;j=g+20|0;k=g+16|0;m=g+12|0;n=g+8|0;o=g+4|0;p=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;if(((c[i>>2]|0)+((c[m>>2]|0)-(c[j>>2]|0))|0)>>>0<(c[k>>2]|0)>>>0)q=(c[i>>2]|0)+((c[m>>2]|0)-(c[j>>2]|0))|0;else q=c[k>>2]|0;c[o>>2]=q;c[p>>2]=Qm(c[i>>2]|0,c[j>>2]|0,c[o>>2]|0)|0;o=c[p>>2]|0;if(((c[j>>2]|0)+(c[p>>2]|0)|0)!=(c[m>>2]|0)){c[h>>2]=o;r=c[h>>2]|0;l=g;return r|0;}else{c[h>>2]=o+(Qm((c[i>>2]|0)+(c[p>>2]|0)|0,c[n>>2]|0,c[k>>2]|0)|0);r=c[h>>2]|0;l=g;return r|0;}return 0;}function Mm(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=31-(Q(c[d>>2]|0)|0)|0;l=b;return a|0;}function Nm(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;h=l;l=l+32|0;i=h+16|0;j=h+12|0;k=h+8|0;m=h+4|0;n=h;c[i>>2]=a;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=g;Om(c[(c[i>>2]|0)+12>>2]|0,c[k>>2]|0,c[j>>2]|0);k=(c[i>>2]|0)+12|0;c[k>>2]=(c[k>>2]|0)+(c[j>>2]|0);if((c[j>>2]|0)>>>0>65535){c[(c[i>>2]|0)+28>>2]=1;c[(c[i>>2]|0)+32>>2]=((c[(c[i>>2]|0)+4>>2]|0)-(c[c[i>>2]>>2]|0)|0)/8|0;}b[(c[(c[i>>2]|0)+4>>2]|0)+4>>1]=c[j>>2];c[c[(c[i>>2]|0)+4>>2]>>2]=(c[m>>2]|0)+1;if((c[n>>2]|0)>>>0<=65535){o=c[n>>2]|0;p=o&65535;q=c[i>>2]|0;r=q+4|0;s=c[r>>2]|0;t=s+6|0;b[t>>1]=p;u=c[i>>2]|0;v=u+4|0;w=c[v>>2]|0;x=w+8|0;c[v>>2]=x;l=h;return;}c[(c[i>>2]|0)+28>>2]=2;c[(c[i>>2]|0)+32>>2]=((c[(c[i>>2]|0)+4>>2]|0)-(c[c[i>>2]>>2]|0)|0)/8|0;o=c[n>>2]|0;p=o&65535;q=c[i>>2]|0;r=q+4|0;s=c[r>>2]|0;t=s+6|0;b[t>>1]=p;u=c[i>>2]|0;v=u+4|0;w=c[v>>2]|0;x=w+8|0;c[v>>2]=x;l=h;return;}function Om(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[g>>2];c[j>>2]=c[f>>2];c[k>>2]=(c[j>>2]|0)+(c[h>>2]|0);do{Pm(c[j>>2]|0,c[i>>2]|0);c[j>>2]=(c[j>>2]|0)+8;c[i>>2]=(c[i>>2]|0)+8;}while((c[j>>2]|0)>>>0<(c[k>>2]|0)>>>0);l=e;return;}function Pm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[f>>2]|0;f=c[g>>2]|0;a[d>>0]=a[f>>0]|0;a[d+1>>0]=a[f+1>>0]|0;a[d+2>>0]=a[f+2>>0]|0;a[d+3>>0]=a[f+3>>0]|0;a[d+4>>0]=a[f+4>>0]|0;a[d+5>>0]=a[f+5>>0]|0;a[d+6>>0]=a[f+6>>0]|0;a[d+7>>0]=a[f+7>>0]|0;l=e;return;}function Qm(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;f=l;l=l+32|0;g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f+12|0;m=f+8|0;n=f+4|0;o=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=e;c[k>>2]=c[h>>2];c[m>>2]=(c[j>>2]|0)+-3;a:do{if((c[h>>2]|0)>>>0<(c[m>>2]|0)>>>0){e=Rm(c[i>>2]|0)|0;c[n>>2]=e^(Rm(c[h>>2]|0)|0);if(c[n>>2]|0){c[g>>2]=Sm(c[n>>2]|0)|0;p=c[g>>2]|0;l=f;return p|0;}c[h>>2]=(c[h>>2]|0)+4;c[i>>2]=(c[i>>2]|0)+4;while(1){if((c[h>>2]|0)>>>0>=(c[m>>2]|0)>>>0)break a;e=Rm(c[i>>2]|0)|0;c[o>>2]=e^(Rm(c[h>>2]|0)|0);if(c[o>>2]|0)break;c[h>>2]=(c[h>>2]|0)+4;c[i>>2]=(c[i>>2]|0)+4;}e=Sm(c[o>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+e;c[g>>2]=(c[h>>2]|0)-(c[k>>2]|0);p=c[g>>2]|0;l=f;return p|0;}}while(0);if((Tm()|0?(c[h>>2]|0)>>>0<((c[j>>2]|0)+-3|0)>>>0:0)?(o=Bk(c[i>>2]|0)|0,(o|0)==(Bk(c[h>>2]|0)|0)):0){c[h>>2]=(c[h>>2]|0)+4;c[i>>2]=(c[i>>2]|0)+4;}if((c[h>>2]|0)>>>0<((c[j>>2]|0)+-1|0)>>>0?(o=(Um(c[i>>2]|0)|0)&65535,(o|0)==((Um(c[h>>2]|0)|0)&65535|0)):0){c[h>>2]=(c[h>>2]|0)+2;c[i>>2]=(c[i>>2]|0)+2;}if((c[h>>2]|0)>>>0<(c[j>>2]|0)>>>0?(d[c[i>>2]>>0]|0|0)==(d[c[h>>2]>>0]|0|0):0)c[h>>2]=(c[h>>2]|0)+1;c[g>>2]=(c[h>>2]|0)-(c[k>>2]|0);p=c[g>>2]|0;l=f;return p|0;}function Rm(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0;}function Sm(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(vk()|0)!=0;f=(Tm()|0)!=0;g=c[e>>2]|0;do{if(a){if(f){e=ob(g|0,0,0)|0;c[d>>2]=e>>3;break;}else{c[d>>2]=(fE(g|0)|0)>>3;break;}}else if(f){e=lE(g|0,0,0)|0;c[d>>2]=e>>3;break;}else{c[d>>2]=(Q(g|0)|0)>>3;break;}}while(0);l=b;return c[d>>2]|0;}function Tm(){return 0;}function Um(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|0;}function Vm(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;h=l;l=l+32|0;i=h+24|0;j=h+20|0;k=h+16|0;m=h+12|0;n=h+8|0;o=h+4|0;p=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;if((c[m>>2]|0)>>>0<((c[(c[j>>2]|0)+4>>2]|0)+(c[(c[j>>2]|0)+24>>2]|0)|0)>>>0){c[i>>2]=0;q=c[i>>2]|0;l=h;return q|0;}else{Wm(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[p>>2]|0);c[i>>2]=Xm(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,1)|0;q=c[i>>2]|0;l=h;return q|0;}return 0;}function Wm(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;g=l;l=l+80|0;h=g+64|0;i=g+60|0;j=g+56|0;k=g+48|0;m=g+44|0;n=g+40|0;o=g+36|0;p=g+32|0;q=g+28|0;r=g+24|0;s=g+20|0;t=g+16|0;u=g+12|0;v=g+8|0;w=g+4|0;x=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[g+52>>2]=e;c[k>>2]=f;c[m>>2]=c[(c[h>>2]|0)+36>>2];c[n>>2]=c[(c[i>>2]|0)+8>>2];c[o>>2]=c[(c[h>>2]|0)+44>>2];c[p>>2]=(c[(c[i>>2]|0)+4>>2]|0)-1;c[q>>2]=(1<<c[p>>2])-1;c[r>>2]=c[(c[h>>2]|0)+4>>2];c[s>>2]=(c[j>>2]|0)-(c[r>>2]|0);c[t>>2]=c[(c[h>>2]|0)+24>>2];while(1){if((c[t>>2]|0)>>>0>=(c[s>>2]|0)>>>0)break;c[u>>2]=nk((c[r>>2]|0)+(c[t>>2]|0)|0,c[n>>2]|0,c[k>>2]|0)|0;c[v>>2]=c[(c[m>>2]|0)+(c[u>>2]<<2)>>2];c[w>>2]=(c[o>>2]|0)+((c[t>>2]&c[q>>2])<<1<<2);c[x>>2]=(c[w>>2]|0)+4;c[(c[m>>2]|0)+(c[u>>2]<<2)>>2]=c[t>>2];c[c[w>>2]>>2]=c[v>>2];c[c[x>>2]>>2]=1;c[t>>2]=(c[t>>2]|0)+1;}c[(c[h>>2]|0)+24>>2]=c[s>>2];l=g;return;}function Xm(a,b,e,f,g,h,i){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0;j=l;l=l+176|0;k=j+160|0;m=j+156|0;n=j+152|0;o=j+148|0;p=j+144|0;q=j+140|0;r=j+136|0;s=j+132|0;t=j+128|0;u=j+124|0;v=j+120|0;w=j+116|0;x=j+112|0;y=j+108|0;z=j+104|0;A=j+100|0;B=j+96|0;C=j+92|0;D=j+88|0;E=j+84|0;F=j+80|0;G=j+76|0;H=j+72|0;I=j+68|0;J=j+64|0;K=j+60|0;L=j+56|0;M=j+52|0;N=j+48|0;O=j+44|0;P=j+40|0;Q=j+36|0;R=j+32|0;S=j+28|0;T=j+24|0;U=j+20|0;V=j+16|0;W=j+12|0;X=j+8|0;Y=j+4|0;Z=j;c[k>>2]=a;c[m>>2]=b;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[r>>2]=i;c[s>>2]=c[(c[k>>2]|0)+36>>2];c[t>>2]=c[(c[m>>2]|0)+8>>2];c[u>>2]=nk(c[n>>2]|0,c[t>>2]|0,c[q>>2]|0)|0;c[v>>2]=c[(c[s>>2]|0)+(c[u>>2]<<2)>>2];c[w>>2]=c[(c[k>>2]|0)+4>>2];c[x>>2]=(c[n>>2]|0)-(c[w>>2]|0);c[y>>2]=c[(c[k>>2]|0)+16>>2];c[z>>2]=c[(c[k>>2]|0)+44>>2];c[A>>2]=(c[(c[m>>2]|0)+4>>2]|0)-1;c[B>>2]=(1<<c[A>>2])-1;if((c[B>>2]|0)>>>0>=(c[x>>2]|0)>>>0)_=0;else _=(c[x>>2]|0)-(c[B>>2]|0)|0;c[C>>2]=_;c[D>>2]=(c[C>>2]|0)>>>0>(c[y>>2]|0)>>>0?c[C>>2]|0:c[y>>2]|0;c[E>>2]=(c[z>>2]|0)+((c[v>>2]&c[B>>2])<<1<<2);c[F>>2]=(c[z>>2]|0)+((c[v>>2]&c[B>>2])<<1<<2)+4;c[G>>2]=1<<c[(c[m>>2]|0)+12>>2];c[H>>2]=c[G>>2];c[I>>2]=0;while(1){if((c[v>>2]|0)>>>0<=(c[D>>2]|0)>>>0)break;if(!((c[H>>2]|0)>>>0>1?(c[c[F>>2]>>2]|0)==1:0))break;c[c[F>>2]>>2]=c[I>>2];c[I>>2]=c[v>>2];c[v>>2]=c[c[E>>2]>>2];c[E>>2]=(c[z>>2]|0)+((c[v>>2]&c[B>>2])<<1<<2);c[F>>2]=(c[z>>2]|0)+((c[v>>2]&c[B>>2])<<1<<2)+4;c[H>>2]=(c[H>>2]|0)+-1;}if((c[v>>2]|0)>>>0>(c[D>>2]|0)>>>0?(c[c[F>>2]>>2]|0)==1:0){c[c[F>>2]>>2]=0;c[c[E>>2]>>2]=0;}c[v>>2]=c[I>>2];while(1){if(!(c[v>>2]|0))break;c[J>>2]=(c[z>>2]|0)+((c[v>>2]&c[B>>2])<<1<<2)+4;c[K>>2]=c[c[J>>2]>>2];Ym(c[k>>2]|0,c[m>>2]|0,c[v>>2]|0,c[o>>2]|0,c[H>>2]|0,c[D>>2]|0,c[r>>2]|0);c[v>>2]=c[K>>2];c[H>>2]=(c[H>>2]|0)+1;}c[L>>2]=0;c[M>>2]=0;c[N>>2]=c[(c[k>>2]|0)+8>>2];c[O>>2]=c[(c[k>>2]|0)+12>>2];c[P>>2]=(c[N>>2]|0)+(c[O>>2]|0);c[Q>>2]=(c[w>>2]|0)+(c[O>>2]|0);c[R>>2]=(c[z>>2]|0)+((c[x>>2]&c[B>>2])<<1<<2);c[S>>2]=(c[z>>2]|0)+((c[x>>2]&c[B>>2])<<1<<2)+4;c[T>>2]=(c[x>>2]|0)+8+1;c[V>>2]=0;c[v>>2]=c[(c[s>>2]|0)+(c[u>>2]<<2)>>2];c[(c[s>>2]|0)+(c[u>>2]<<2)>>2]=c[x>>2];while(1){u=c[G>>2]|0;c[G>>2]=u+-1;if(!u)break;if((c[v>>2]|0)>>>0<=(c[y>>2]|0)>>>0)break;c[W>>2]=(c[z>>2]|0)+((c[v>>2]&c[B>>2])<<1<<2);c[X>>2]=(c[L>>2]|0)>>>0<(c[M>>2]|0)>>>0?c[L>>2]|0:c[M>>2]|0;if(c[r>>2]|0?((c[v>>2]|0)+(c[X>>2]|0)|0)>>>0<(c[O>>2]|0)>>>0:0){c[Y>>2]=(c[N>>2]|0)+(c[v>>2]|0);u=Lm((c[n>>2]|0)+(c[X>>2]|0)|0,(c[Y>>2]|0)+(c[X>>2]|0)|0,c[o>>2]|0,c[P>>2]|0,c[Q>>2]|0)|0;c[X>>2]=(c[X>>2]|0)+u;if(((c[v>>2]|0)+(c[X>>2]|0)|0)>>>0>=(c[O>>2]|0)>>>0)c[Y>>2]=(c[w>>2]|0)+(c[v>>2]|0);}else{c[Y>>2]=(c[w>>2]|0)+(c[v>>2]|0);u=Qm((c[n>>2]|0)+(c[X>>2]|0)|0,(c[Y>>2]|0)+(c[X>>2]|0)|0,c[o>>2]|0)|0;c[X>>2]=(c[X>>2]|0)+u;}if((c[X>>2]|0)>>>0>(c[V>>2]|0)>>>0){if((c[X>>2]|0)>>>0>((c[T>>2]|0)-(c[v>>2]|0)|0)>>>0)c[T>>2]=(c[v>>2]|0)+(c[X>>2]|0);u=(c[X>>2]|0)-(c[V>>2]|0)<<2;s=Mm((c[x>>2]|0)-(c[v>>2]|0)+1|0)|0;if((u|0)>(s-(Mm((c[c[p>>2]>>2]|0)+1|0)|0)|0)){c[V>>2]=c[X>>2];c[c[p>>2]>>2]=2+(c[x>>2]|0)-(c[v>>2]|0);}if(((c[n>>2]|0)+(c[X>>2]|0)|0)==(c[o>>2]|0))break;}s=c[v>>2]|0;if((d[(c[Y>>2]|0)+(c[X>>2]|0)>>0]|0|0)<(d[(c[n>>2]|0)+(c[X>>2]|0)>>0]|0|0)){c[c[R>>2]>>2]=s;c[L>>2]=c[X>>2];if((c[v>>2]|0)>>>0<=(c[C>>2]|0)>>>0){$=29;break;}c[R>>2]=(c[W>>2]|0)+4;c[v>>2]=c[(c[W>>2]|0)+4>>2];}else{c[c[S>>2]>>2]=s;c[M>>2]=c[X>>2];if((c[v>>2]|0)>>>0<=(c[C>>2]|0)>>>0){$=32;break;}c[S>>2]=c[W>>2];c[v>>2]=c[c[W>>2]>>2];}}if(($|0)==29)c[R>>2]=U;else if(($|0)==32)c[S>>2]=U;c[c[S>>2]>>2]=0;c[c[R>>2]>>2]=0;c[(c[k>>2]|0)+24>>2]=(c[T>>2]|0)-8;if((c[V>>2]|0)>>>0<3){aa=c[V>>2]|0;l=j;return aa|0;}c[Z>>2]=(c[x>>2]|0)-((c[c[p>>2]>>2]|0)-2);aa=c[V>>2]|0;l=j;return aa|0;}function Ym(a,b,e,f,g,h,i){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;j=l;l=l+112|0;k=j+108|0;m=j+104|0;n=j+100|0;o=j+96|0;p=j+92|0;q=j+88|0;r=j+84|0;s=j+80|0;t=j+76|0;u=j+72|0;v=j+68|0;w=j+64|0;x=j+60|0;y=j+56|0;z=j+52|0;A=j+48|0;B=j+44|0;C=j+40|0;D=j+36|0;E=j+32|0;F=j+28|0;G=j+24|0;H=j+20|0;I=j+16|0;J=j+12|0;K=j+8|0;L=j+4|0;M=j;c[k>>2]=a;c[m>>2]=b;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[r>>2]=i;c[s>>2]=c[(c[k>>2]|0)+44>>2];c[t>>2]=(c[(c[m>>2]|0)+4>>2]|0)-1;c[u>>2]=(1<<c[t>>2])-1;c[v>>2]=0;c[w>>2]=0;c[x>>2]=c[(c[k>>2]|0)+4>>2];c[y>>2]=c[(c[k>>2]|0)+8>>2];c[z>>2]=c[(c[k>>2]|0)+12>>2];c[A>>2]=(c[n>>2]|0)>>>0>=(c[z>>2]|0)>>>0?(c[x>>2]|0)+(c[n>>2]|0)|0:(c[y>>2]|0)+(c[n>>2]|0)|0;c[B>>2]=(c[n>>2]|0)>>>0>=(c[z>>2]|0)>>>0?c[o>>2]|0:(c[y>>2]|0)+(c[z>>2]|0)|0;c[C>>2]=(c[y>>2]|0)+(c[z>>2]|0);c[D>>2]=(c[x>>2]|0)+(c[z>>2]|0);c[F>>2]=(c[s>>2]|0)+((c[n>>2]&c[u>>2])<<1<<2);c[G>>2]=(c[F>>2]|0)+4;c[H>>2]=c[c[F>>2]>>2];c[J>>2]=c[(c[k>>2]|0)+16>>2];while(1){k=c[p>>2]|0;c[p>>2]=k+-1;if(!k){N=23;break;}if((c[H>>2]|0)>>>0<=(c[J>>2]|0)>>>0){N=23;break;}c[K>>2]=(c[s>>2]|0)+((c[H>>2]&c[u>>2])<<1<<2);c[L>>2]=(c[v>>2]|0)>>>0<(c[w>>2]|0)>>>0?c[v>>2]|0:c[w>>2]|0;if((c[r>>2]|0?((c[H>>2]|0)+(c[L>>2]|0)|0)>>>0<(c[z>>2]|0)>>>0:0)?(c[n>>2]|0)>>>0>=(c[z>>2]|0)>>>0:0){c[E>>2]=(c[y>>2]|0)+(c[H>>2]|0);k=Lm((c[A>>2]|0)+(c[L>>2]|0)|0,(c[E>>2]|0)+(c[L>>2]|0)|0,c[B>>2]|0,c[C>>2]|0,c[D>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+k;if(((c[H>>2]|0)+(c[L>>2]|0)|0)>>>0>=(c[z>>2]|0)>>>0)c[E>>2]=(c[x>>2]|0)+(c[H>>2]|0);}else{if(c[r>>2]|0?((c[H>>2]|0)+(c[L>>2]|0)|0)>>>0<(c[z>>2]|0)>>>0:0)O=c[y>>2]|0;else O=c[x>>2]|0;c[M>>2]=O;c[E>>2]=(c[M>>2]|0)+(c[H>>2]|0);k=Qm((c[A>>2]|0)+(c[L>>2]|0)|0,(c[E>>2]|0)+(c[L>>2]|0)|0,c[B>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+k;}if(((c[A>>2]|0)+(c[L>>2]|0)|0)==(c[B>>2]|0)){N=23;break;}k=c[H>>2]|0;if((d[(c[E>>2]|0)+(c[L>>2]|0)>>0]|0|0)<(d[(c[A>>2]|0)+(c[L>>2]|0)>>0]|0|0)){c[c[F>>2]>>2]=k;c[v>>2]=c[L>>2];if((c[H>>2]|0)>>>0<=(c[q>>2]|0)>>>0){N=17;break;}c[F>>2]=(c[K>>2]|0)+4;c[H>>2]=c[(c[K>>2]|0)+4>>2];}else{c[c[G>>2]>>2]=k;c[w>>2]=c[L>>2];if((c[H>>2]|0)>>>0<=(c[q>>2]|0)>>>0){N=20;break;}c[G>>2]=c[K>>2];c[H>>2]=c[c[K>>2]>>2];}}if((N|0)==17){c[F>>2]=I;P=c[G>>2]|0;c[P>>2]=0;Q=c[F>>2]|0;c[Q>>2]=0;l=j;return;}else if((N|0)==20){c[G>>2]=I;P=c[G>>2]|0;c[P>>2]=0;Q=c[F>>2]|0;c[Q>>2]=0;l=j;return;}else if((N|0)==23){P=c[G>>2]|0;c[P>>2]=0;Q=c[F>>2]|0;c[Q>>2]=0;l=j;return;}}function Zm(a,b,e,f,g,h,i){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0;j=l;l=l+240|0;k=j+224|0;m=j+220|0;n=j+216|0;o=j+212|0;p=j+208|0;q=j+204|0;r=j+200|0;s=j+196|0;t=j+192|0;u=j+188|0;v=j+184|0;w=j+180|0;x=j+176|0;z=j+172|0;A=j+168|0;B=j+164|0;C=j+160|0;D=j+156|0;E=j+152|0;F=j+148|0;G=j+144|0;H=j+140|0;I=j+136|0;J=j+132|0;K=j+128|0;L=j+124|0;M=j+120|0;N=j+116|0;O=j+112|0;P=j+108|0;Q=j+104|0;R=j+100|0;S=j+96|0;T=j+92|0;U=j+88|0;V=j+84|0;W=j+80|0;X=j+76|0;Y=j+72|0;Z=j+68|0;_=j+64|0;$=j+60|0;aa=j+56|0;ba=j+52|0;ca=j+48|0;da=j+44|0;ea=j+40|0;fa=j+36|0;ga=j+32|0;ha=j+28|0;ia=j+24|0;ja=j+20|0;ka=j+16|0;la=j+12|0;ma=j+8|0;na=j+4|0;oa=j;c[k>>2]=a;c[m>>2]=b;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[r>>2]=i;c[s>>2]=c[(c[k>>2]|0)+36>>2];c[t>>2]=c[(c[o>>2]|0)+8>>2];c[u>>2]=c[(c[k>>2]|0)+44>>2];c[v>>2]=c[(c[o>>2]|0)+4>>2];c[w>>2]=c[(c[k>>2]|0)+4>>2];c[x>>2]=c[(c[k>>2]|0)+8>>2];c[z>>2]=c[p>>2];c[A>>2]=c[z>>2];c[B>>2]=c[z>>2];c[C>>2]=c[(c[k>>2]|0)+16>>2];c[D>>2]=(c[x>>2]|0)+(c[C>>2]|0);c[E>>2]=c[(c[k>>2]|0)+12>>2];c[F>>2]=(c[w>>2]|0)+(c[E>>2]|0);c[G>>2]=(c[x>>2]|0)+(c[E>>2]|0);c[H>>2]=(c[z>>2]|0)+(c[q>>2]|0);c[I>>2]=(c[H>>2]|0)+-8;c[J>>2]=c[c[n>>2]>>2];c[K>>2]=c[(c[n>>2]|0)+4>>2];a:while(1){if((c[A>>2]|0)>>>0>=(c[I>>2]|0)>>>0)break;c[L>>2]=Dk(c[A>>2]|0,c[v>>2]|0,c[r>>2]|0)|0;c[M>>2]=c[(c[u>>2]|0)+(c[L>>2]<<2)>>2];c[N>>2]=(c[M>>2]|0)>>>0<(c[E>>2]|0)>>>0?c[x>>2]|0:c[w>>2]|0;c[O>>2]=(c[N>>2]|0)+(c[M>>2]|0);c[P>>2]=Dk(c[A>>2]|0,c[t>>2]|0,8)|0;c[Q>>2]=c[(c[s>>2]|0)+(c[P>>2]<<2)>>2];c[R>>2]=(c[Q>>2]|0)>>>0<(c[E>>2]|0)>>>0?c[x>>2]|0:c[w>>2]|0;c[S>>2]=(c[R>>2]|0)+(c[Q>>2]|0);c[T>>2]=(c[A>>2]|0)-(c[w>>2]|0);c[U>>2]=(c[T>>2]|0)+1-(c[J>>2]|0);c[V>>2]=(c[U>>2]|0)>>>0<(c[E>>2]|0)>>>0?c[x>>2]|0:c[w>>2]|0;c[W>>2]=(c[V>>2]|0)+(c[U>>2]|0);q=c[T>>2]|0;c[(c[s>>2]|0)+(c[P>>2]<<2)>>2]=q;c[(c[u>>2]|0)+(c[L>>2]<<2)>>2]=q;if(((c[U>>2]|0)>>>0>(c[C>>2]|0)>>>0?((c[E>>2]|0)-1-(c[U>>2]|0)|0)>>>0>=3:0)|0?(q=Rk(c[W>>2]|0)|0,(q|0)==(Rk((c[A>>2]|0)+1|0)|0)):0){c[Y>>2]=(c[U>>2]|0)>>>0<(c[E>>2]|0)>>>0?c[G>>2]|0:c[H>>2]|0;c[X>>2]=(_m((c[A>>2]|0)+1+4|0,(c[W>>2]|0)+4|0,c[H>>2]|0,c[Y>>2]|0,c[F>>2]|0)|0)+4;c[A>>2]=(c[A>>2]|0)+1;$m(c[m>>2]|0,(c[A>>2]|0)-(c[B>>2]|0)|0,c[B>>2]|0,0,(c[X>>2]|0)-3|0);}else pa=6;do{if((pa|0)==6){pa=0;if((c[Q>>2]|0)>>>0>(c[C>>2]|0)>>>0?(q=Mk(c[S>>2]|0)|0,z=y,k=Mk(c[A>>2]|0)|0,(q|0)==(k|0)&(z|0)==(y|0)):0){c[Z>>2]=(c[Q>>2]|0)>>>0<(c[E>>2]|0)>>>0?c[G>>2]|0:c[H>>2]|0;c[_>>2]=(c[Q>>2]|0)>>>0<(c[E>>2]|0)>>>0?c[D>>2]|0:c[F>>2]|0;c[X>>2]=(_m((c[A>>2]|0)+8|0,(c[S>>2]|0)+8|0,c[H>>2]|0,c[Z>>2]|0,c[F>>2]|0)|0)+8;c[$>>2]=(c[T>>2]|0)-(c[Q>>2]|0);while(1){if(!(((c[A>>2]|0)>>>0>(c[B>>2]|0)>>>0?(c[S>>2]|0)>>>0>(c[_>>2]|0)>>>0:0)|0))break;if((d[(c[A>>2]|0)+-1>>0]|0|0)!=(d[(c[S>>2]|0)+-1>>0]|0|0))break;c[A>>2]=(c[A>>2]|0)+-1;c[S>>2]=(c[S>>2]|0)+-1;c[X>>2]=(c[X>>2]|0)+1;}c[K>>2]=c[J>>2];c[J>>2]=c[$>>2];$m(c[m>>2]|0,(c[A>>2]|0)-(c[B>>2]|0)|0,c[B>>2]|0,(c[$>>2]|0)+2|0,(c[X>>2]|0)-3|0);break;}if((c[M>>2]|0)>>>0>(c[C>>2]|0)>>>0?(z=Rk(c[O>>2]|0)|0,(z|0)==(Rk(c[A>>2]|0)|0)):0){c[aa>>2]=Dk((c[A>>2]|0)+1|0,c[t>>2]|0,8)|0;c[ba>>2]=c[(c[s>>2]|0)+(c[aa>>2]<<2)>>2];c[ca>>2]=(c[ba>>2]|0)>>>0<(c[E>>2]|0)>>>0?c[x>>2]|0:c[w>>2]|0;c[da>>2]=(c[ca>>2]|0)+(c[ba>>2]|0);c[(c[s>>2]|0)+(c[aa>>2]<<2)>>2]=(c[T>>2]|0)+1;b:do{if((c[ba>>2]|0)>>>0>(c[C>>2]|0)>>>0?(z=Mk(c[da>>2]|0)|0,k=y,q=Mk((c[A>>2]|0)+1|0)|0,(z|0)==(q|0)&(k|0)==(y|0)):0){c[fa>>2]=(c[ba>>2]|0)>>>0<(c[E>>2]|0)>>>0?c[G>>2]|0:c[H>>2]|0;c[ga>>2]=(c[ba>>2]|0)>>>0<(c[E>>2]|0)>>>0?c[D>>2]|0:c[F>>2]|0;c[X>>2]=(_m((c[A>>2]|0)+9|0,(c[da>>2]|0)+8|0,c[H>>2]|0,c[fa>>2]|0,c[F>>2]|0)|0)+8;c[A>>2]=(c[A>>2]|0)+1;c[ea>>2]=(c[T>>2]|0)+1-(c[ba>>2]|0);while(1){if(!(((c[A>>2]|0)>>>0>(c[B>>2]|0)>>>0?(c[da>>2]|0)>>>0>(c[ga>>2]|0)>>>0:0)|0))break b;if((d[(c[A>>2]|0)+-1>>0]|0|0)!=(d[(c[da>>2]|0)+-1>>0]|0|0))break b;c[A>>2]=(c[A>>2]|0)+-1;c[da>>2]=(c[da>>2]|0)+-1;c[X>>2]=(c[X>>2]|0)+1;}}else pa=21;}while(0);c:do{if((pa|0)==21){pa=0;c[ha>>2]=(c[M>>2]|0)>>>0<(c[E>>2]|0)>>>0?c[G>>2]|0:c[H>>2]|0;c[ia>>2]=(c[M>>2]|0)>>>0<(c[E>>2]|0)>>>0?c[D>>2]|0:c[F>>2]|0;c[X>>2]=(_m((c[A>>2]|0)+4|0,(c[O>>2]|0)+4|0,c[H>>2]|0,c[ha>>2]|0,c[F>>2]|0)|0)+4;c[ea>>2]=(c[T>>2]|0)-(c[M>>2]|0);while(1){if(!(((c[A>>2]|0)>>>0>(c[B>>2]|0)>>>0?(c[O>>2]|0)>>>0>(c[ia>>2]|0)>>>0:0)|0))break c;if((d[(c[A>>2]|0)+-1>>0]|0|0)!=(d[(c[O>>2]|0)+-1>>0]|0|0))break c;c[A>>2]=(c[A>>2]|0)+-1;c[O>>2]=(c[O>>2]|0)+-1;c[X>>2]=(c[X>>2]|0)+1;}}}while(0);c[K>>2]=c[J>>2];c[J>>2]=c[ea>>2];$m(c[m>>2]|0,(c[A>>2]|0)-(c[B>>2]|0)|0,c[B>>2]|0,(c[ea>>2]|0)+2|0,(c[X>>2]|0)-3|0);break;}c[A>>2]=(c[A>>2]|0)+(((c[A>>2]|0)-(c[B>>2]|0)>>8)+1);continue a;}}while(0);c[A>>2]=(c[A>>2]|0)+(c[X>>2]|0);c[B>>2]=c[A>>2];d:do{if((c[A>>2]|0)>>>0<=(c[I>>2]|0)>>>0){k=(c[T>>2]|0)+2|0;q=c[u>>2]|0;c[q+((Dk((c[w>>2]|0)+(c[T>>2]|0)+2|0,c[v>>2]|0,c[r>>2]|0)|0)<<2)>>2]=k;k=(c[T>>2]|0)+2|0;q=c[s>>2]|0;c[q+((Dk((c[w>>2]|0)+(c[T>>2]|0)+2|0,c[t>>2]|0,8)|0)<<2)>>2]=k;k=(c[A>>2]|0)+-2-(c[w>>2]|0)|0;q=c[u>>2]|0;c[q+((Dk((c[A>>2]|0)+-2|0,c[v>>2]|0,c[r>>2]|0)|0)<<2)>>2]=k;k=(c[A>>2]|0)+-2-(c[w>>2]|0)|0;q=c[s>>2]|0;c[q+((Dk((c[A>>2]|0)+-2|0,c[t>>2]|0,8)|0)<<2)>>2]=k;while(1){if((c[A>>2]|0)>>>0>(c[I>>2]|0)>>>0)break d;c[ja>>2]=(c[A>>2]|0)-(c[w>>2]|0);c[ka>>2]=(c[ja>>2]|0)-(c[K>>2]|0);c[la>>2]=(c[ka>>2]|0)>>>0<(c[E>>2]|0)>>>0?(c[x>>2]|0)+(c[ka>>2]|0)|0:(c[w>>2]|0)+(c[ka>>2]|0)|0;if(!(((c[ka>>2]|0)>>>0>(c[C>>2]|0)>>>0?((c[E>>2]|0)-1-(c[ka>>2]|0)|0)>>>0>=3:0)|0))break d;k=Rk(c[la>>2]|0)|0;if((k|0)!=(Rk(c[A>>2]|0)|0))break d;c[ma>>2]=(c[ka>>2]|0)>>>0<(c[E>>2]|0)>>>0?c[G>>2]|0:c[H>>2]|0;c[na>>2]=(_m((c[A>>2]|0)+4|0,(c[la>>2]|0)+4|0,c[H>>2]|0,c[ma>>2]|0,c[F>>2]|0)|0)+4;c[oa>>2]=c[K>>2];c[K>>2]=c[J>>2];c[J>>2]=c[oa>>2];$m(c[m>>2]|0,0,c[B>>2]|0,0,(c[na>>2]|0)-3|0);k=c[ja>>2]|0;q=c[u>>2]|0;c[q+((Dk(c[A>>2]|0,c[v>>2]|0,c[r>>2]|0)|0)<<2)>>2]=k;k=c[ja>>2]|0;q=c[s>>2]|0;c[q+((Dk(c[A>>2]|0,c[t>>2]|0,8)|0)<<2)>>2]=k;c[A>>2]=(c[A>>2]|0)+(c[na>>2]|0);c[B>>2]=c[A>>2];}}}while(0);}c[c[n>>2]>>2]=c[J>>2];c[(c[n>>2]|0)+4>>2]=c[K>>2];l=j;return(c[H>>2]|0)-(c[B>>2]|0)|0;}function _m(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;g=l;l=l+32|0;h=g+28|0;i=g+24|0;j=g+20|0;k=g+16|0;m=g+12|0;n=g+8|0;o=g+4|0;p=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;if(((c[i>>2]|0)+((c[m>>2]|0)-(c[j>>2]|0))|0)>>>0<(c[k>>2]|0)>>>0)q=(c[i>>2]|0)+((c[m>>2]|0)-(c[j>>2]|0))|0;else q=c[k>>2]|0;c[o>>2]=q;c[p>>2]=cn(c[i>>2]|0,c[j>>2]|0,c[o>>2]|0)|0;o=c[p>>2]|0;if(((c[j>>2]|0)+(c[p>>2]|0)|0)!=(c[m>>2]|0)){c[h>>2]=o;r=c[h>>2]|0;l=g;return r|0;}else{c[h>>2]=o+(cn((c[i>>2]|0)+(c[p>>2]|0)|0,c[n>>2]|0,c[k>>2]|0)|0);r=c[h>>2]|0;l=g;return r|0;}return 0;}function $m(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;h=l;l=l+32|0;i=h+16|0;j=h+12|0;k=h+8|0;m=h+4|0;n=h;c[i>>2]=a;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=g;an(c[(c[i>>2]|0)+12>>2]|0,c[k>>2]|0,c[j>>2]|0);k=(c[i>>2]|0)+12|0;c[k>>2]=(c[k>>2]|0)+(c[j>>2]|0);if((c[j>>2]|0)>>>0>65535){c[(c[i>>2]|0)+28>>2]=1;c[(c[i>>2]|0)+32>>2]=((c[(c[i>>2]|0)+4>>2]|0)-(c[c[i>>2]>>2]|0)|0)/8|0;}b[(c[(c[i>>2]|0)+4>>2]|0)+4>>1]=c[j>>2];c[c[(c[i>>2]|0)+4>>2]>>2]=(c[m>>2]|0)+1;if((c[n>>2]|0)>>>0<=65535){o=c[n>>2]|0;p=o&65535;q=c[i>>2]|0;r=q+4|0;s=c[r>>2]|0;t=s+6|0;b[t>>1]=p;u=c[i>>2]|0;v=u+4|0;w=c[v>>2]|0;x=w+8|0;c[v>>2]=x;l=h;return;}c[(c[i>>2]|0)+28>>2]=2;c[(c[i>>2]|0)+32>>2]=((c[(c[i>>2]|0)+4>>2]|0)-(c[c[i>>2]>>2]|0)|0)/8|0;o=c[n>>2]|0;p=o&65535;q=c[i>>2]|0;r=q+4|0;s=c[r>>2]|0;t=s+6|0;b[t>>1]=p;u=c[i>>2]|0;v=u+4|0;w=c[v>>2]|0;x=w+8|0;c[v>>2]=x;l=h;return;}function an(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[g>>2];c[j>>2]=c[f>>2];c[k>>2]=(c[j>>2]|0)+(c[h>>2]|0);do{bn(c[j>>2]|0,c[i>>2]|0);c[j>>2]=(c[j>>2]|0)+8;c[i>>2]=(c[i>>2]|0)+8;}while((c[j>>2]|0)>>>0<(c[k>>2]|0)>>>0);l=e;return;}function bn(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[f>>2]|0;f=c[g>>2]|0;a[d>>0]=a[f>>0]|0;a[d+1>>0]=a[f+1>>0]|0;a[d+2>>0]=a[f+2>>0]|0;a[d+3>>0]=a[f+3>>0]|0;a[d+4>>0]=a[f+4>>0]|0;a[d+5>>0]=a[f+5>>0]|0;a[d+6>>0]=a[f+6>>0]|0;a[d+7>>0]=a[f+7>>0]|0;l=e;return;}function cn(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;f=l;l=l+32|0;g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f+12|0;m=f+8|0;n=f+4|0;o=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=e;c[k>>2]=c[h>>2];c[m>>2]=(c[j>>2]|0)+-3;a:do{if((c[h>>2]|0)>>>0<(c[m>>2]|0)>>>0){e=dn(c[i>>2]|0)|0;c[n>>2]=e^(dn(c[h>>2]|0)|0);if(c[n>>2]|0){c[g>>2]=en(c[n>>2]|0)|0;p=c[g>>2]|0;l=f;return p|0;}c[h>>2]=(c[h>>2]|0)+4;c[i>>2]=(c[i>>2]|0)+4;while(1){if((c[h>>2]|0)>>>0>=(c[m>>2]|0)>>>0)break a;e=dn(c[i>>2]|0)|0;c[o>>2]=e^(dn(c[h>>2]|0)|0);if(c[o>>2]|0)break;c[h>>2]=(c[h>>2]|0)+4;c[i>>2]=(c[i>>2]|0)+4;}e=en(c[o>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+e;c[g>>2]=(c[h>>2]|0)-(c[k>>2]|0);p=c[g>>2]|0;l=f;return p|0;}}while(0);if((fn()|0?(c[h>>2]|0)>>>0<((c[j>>2]|0)+-3|0)>>>0:0)?(o=Rk(c[i>>2]|0)|0,(o|0)==(Rk(c[h>>2]|0)|0)):0){c[h>>2]=(c[h>>2]|0)+4;c[i>>2]=(c[i>>2]|0)+4;}if((c[h>>2]|0)>>>0<((c[j>>2]|0)+-1|0)>>>0?(o=(gn(c[i>>2]|0)|0)&65535,(o|0)==((gn(c[h>>2]|0)|0)&65535|0)):0){c[h>>2]=(c[h>>2]|0)+2;c[i>>2]=(c[i>>2]|0)+2;}if((c[h>>2]|0)>>>0<(c[j>>2]|0)>>>0?(d[c[i>>2]>>0]|0|0)==(d[c[h>>2]>>0]|0|0):0)c[h>>2]=(c[h>>2]|0)+1;c[g>>2]=(c[h>>2]|0)-(c[k>>2]|0);p=c[g>>2]|0;l=f;return p|0;}function dn(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0;}function en(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(Lk()|0)!=0;f=(fn()|0)!=0;g=c[e>>2]|0;do{if(a){if(f){e=ob(g|0,0,0)|0;c[d>>2]=e>>3;break;}else{c[d>>2]=(fE(g|0)|0)>>3;break;}}else if(f){e=lE(g|0,0,0)|0;c[d>>2]=e>>3;break;}else{c[d>>2]=(Q(g|0)|0)>>3;break;}}while(0);l=b;return c[d>>2]|0;}function fn(){return 0;}function gn(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|0;}function hn(a,b,e,f,g,h,i,j){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0;k=l;l=l+176|0;m=k+164|0;n=k+160|0;o=k+156|0;p=k+152|0;q=k+148|0;r=k+144|0;s=k+140|0;t=k+136|0;u=k+132|0;v=k+128|0;w=k+124|0;x=k+120|0;y=k+116|0;z=k+112|0;A=k+108|0;B=k+104|0;C=k+100|0;D=k+96|0;E=k+92|0;F=k+88|0;G=k+84|0;H=k+80|0;I=k+76|0;J=k+72|0;K=k+68|0;L=k+64|0;M=k+60|0;N=k+56|0;O=k+52|0;P=k+48|0;Q=k+44|0;R=k+40|0;S=k+36|0;T=k+32|0;U=k+28|0;V=k+24|0;W=k+20|0;X=k+16|0;Y=k+12|0;Z=k+8|0;_=k+4|0;$=k;c[m>>2]=a;c[n>>2]=b;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[u>>2]=c[(c[m>>2]|0)+36>>2];c[v>>2]=c[(c[m>>2]|0)+4>>2];c[w>>2]=c[(c[m>>2]|0)+8>>2];c[x>>2]=c[p>>2];c[y>>2]=c[x>>2];c[z>>2]=c[x>>2];c[A>>2]=c[(c[m>>2]|0)+16>>2];c[B>>2]=(c[w>>2]|0)+(c[A>>2]|0);c[C>>2]=c[(c[m>>2]|0)+12>>2];c[D>>2]=(c[v>>2]|0)+(c[C>>2]|0);c[E>>2]=(c[w>>2]|0)+(c[C>>2]|0);c[F>>2]=(c[x>>2]|0)+(c[q>>2]|0);c[G>>2]=(c[F>>2]|0)+-8;c[H>>2]=c[c[o>>2]>>2];c[I>>2]=c[(c[o>>2]|0)+4>>2];a:while(1){if((c[y>>2]|0)>>>0>=(c[G>>2]|0)>>>0)break;c[J>>2]=Tk(c[y>>2]|0,c[r>>2]|0,c[t>>2]|0)|0;c[K>>2]=c[(c[u>>2]|0)+(c[J>>2]<<2)>>2];c[L>>2]=(c[K>>2]|0)>>>0<(c[C>>2]|0)>>>0?c[w>>2]|0:c[v>>2]|0;c[M>>2]=(c[L>>2]|0)+(c[K>>2]|0);c[N>>2]=(c[y>>2]|0)-(c[v>>2]|0);c[O>>2]=(c[N>>2]|0)+1-(c[H>>2]|0);c[P>>2]=(c[O>>2]|0)>>>0<(c[C>>2]|0)>>>0?c[w>>2]|0:c[v>>2]|0;c[Q>>2]=(c[P>>2]|0)+(c[O>>2]|0);c[(c[u>>2]|0)+(c[J>>2]<<2)>>2]=c[N>>2];if(((c[O>>2]|0)>>>0>(c[A>>2]|0)>>>0?((c[C>>2]|0)-1-(c[O>>2]|0)|0)>>>0>=3:0)|0?(q=fl(c[Q>>2]|0)|0,(q|0)==(fl((c[y>>2]|0)+1|0)|0)):0){c[S>>2]=(c[O>>2]|0)>>>0<(c[C>>2]|0)>>>0?c[E>>2]|0:c[F>>2]|0;c[R>>2]=(jn((c[y>>2]|0)+1+4|0,(c[Q>>2]|0)+4|0,c[F>>2]|0,c[S>>2]|0,c[D>>2]|0)|0)+4;c[y>>2]=(c[y>>2]|0)+1;kn(c[n>>2]|0,(c[y>>2]|0)-(c[z>>2]|0)|0,c[z>>2]|0,0,(c[R>>2]|0)-3|0);}else aa=6;do{if((aa|0)==6){aa=0;if((c[K>>2]|0)>>>0>=(c[A>>2]|0)>>>0?(q=fl(c[M>>2]|0)|0,(q|0)==(fl(c[y>>2]|0)|0)):0){c[T>>2]=(c[K>>2]|0)>>>0<(c[C>>2]|0)>>>0?c[E>>2]|0:c[F>>2]|0;c[U>>2]=(c[K>>2]|0)>>>0<(c[C>>2]|0)>>>0?c[B>>2]|0:c[D>>2]|0;c[R>>2]=(jn((c[y>>2]|0)+4|0,(c[M>>2]|0)+4|0,c[F>>2]|0,c[T>>2]|0,c[D>>2]|0)|0)+4;while(1){if(!(((c[y>>2]|0)>>>0>(c[z>>2]|0)>>>0?(c[M>>2]|0)>>>0>(c[U>>2]|0)>>>0:0)|0))break;if((d[(c[y>>2]|0)+-1>>0]|0|0)!=(d[(c[M>>2]|0)+-1>>0]|0|0))break;c[y>>2]=(c[y>>2]|0)+-1;c[M>>2]=(c[M>>2]|0)+-1;c[R>>2]=(c[R>>2]|0)+1;}c[V>>2]=(c[N>>2]|0)-(c[K>>2]|0);c[I>>2]=c[H>>2];c[H>>2]=c[V>>2];kn(c[n>>2]|0,(c[y>>2]|0)-(c[z>>2]|0)|0,c[z>>2]|0,(c[V>>2]|0)+2|0,(c[R>>2]|0)-3|0);break;}c[y>>2]=(c[y>>2]|0)+(((c[y>>2]|0)-(c[z>>2]|0)>>8)+(c[s>>2]|0));continue a;}}while(0);c[y>>2]=(c[y>>2]|0)+(c[R>>2]|0);c[z>>2]=c[y>>2];b:do{if((c[y>>2]|0)>>>0<=(c[G>>2]|0)>>>0){q=(c[N>>2]|0)+2|0;x=c[u>>2]|0;c[x+((Tk((c[v>>2]|0)+(c[N>>2]|0)+2|0,c[r>>2]|0,c[t>>2]|0)|0)<<2)>>2]=q;q=(c[y>>2]|0)+-2-(c[v>>2]|0)|0;x=c[u>>2]|0;c[x+((Tk((c[y>>2]|0)+-2|0,c[r>>2]|0,c[t>>2]|0)|0)<<2)>>2]=q;while(1){if((c[y>>2]|0)>>>0>(c[G>>2]|0)>>>0)break b;c[W>>2]=(c[y>>2]|0)-(c[v>>2]|0);c[X>>2]=(c[W>>2]|0)-(c[I>>2]|0);c[Y>>2]=(c[X>>2]|0)>>>0<(c[C>>2]|0)>>>0?(c[w>>2]|0)+(c[X>>2]|0)|0:(c[v>>2]|0)+(c[X>>2]|0)|0;if(!(((c[X>>2]|0)>>>0>(c[A>>2]|0)>>>0?((c[C>>2]|0)-1-(c[X>>2]|0)|0)>>>0>=3:0)|0))break b;q=fl(c[Y>>2]|0)|0;if((q|0)!=(fl(c[y>>2]|0)|0))break b;c[Z>>2]=(c[X>>2]|0)>>>0<(c[C>>2]|0)>>>0?c[E>>2]|0:c[F>>2]|0;c[_>>2]=(jn((c[y>>2]|0)+4|0,(c[Y>>2]|0)+4|0,c[F>>2]|0,c[Z>>2]|0,c[D>>2]|0)|0)+4;c[$>>2]=c[I>>2];c[I>>2]=c[H>>2];c[H>>2]=c[$>>2];kn(c[n>>2]|0,0,c[z>>2]|0,0,(c[_>>2]|0)-3|0);q=c[W>>2]|0;x=c[u>>2]|0;c[x+((Tk(c[y>>2]|0,c[r>>2]|0,c[t>>2]|0)|0)<<2)>>2]=q;c[y>>2]=(c[y>>2]|0)+(c[_>>2]|0);c[z>>2]=c[y>>2];}}}while(0);}c[c[o>>2]>>2]=c[H>>2];c[(c[o>>2]|0)+4>>2]=c[I>>2];l=k;return(c[F>>2]|0)-(c[z>>2]|0)|0;}function jn(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;g=l;l=l+32|0;h=g+28|0;i=g+24|0;j=g+20|0;k=g+16|0;m=g+12|0;n=g+8|0;o=g+4|0;p=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;if(((c[i>>2]|0)+((c[m>>2]|0)-(c[j>>2]|0))|0)>>>0<(c[k>>2]|0)>>>0)q=(c[i>>2]|0)+((c[m>>2]|0)-(c[j>>2]|0))|0;else q=c[k>>2]|0;c[o>>2]=q;c[p>>2]=nn(c[i>>2]|0,c[j>>2]|0,c[o>>2]|0)|0;o=c[p>>2]|0;if(((c[j>>2]|0)+(c[p>>2]|0)|0)!=(c[m>>2]|0)){c[h>>2]=o;r=c[h>>2]|0;l=g;return r|0;}else{c[h>>2]=o+(nn((c[i>>2]|0)+(c[p>>2]|0)|0,c[n>>2]|0,c[k>>2]|0)|0);r=c[h>>2]|0;l=g;return r|0;}return 0;}function kn(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;h=l;l=l+32|0;i=h+16|0;j=h+12|0;k=h+8|0;m=h+4|0;n=h;c[i>>2]=a;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=g;ln(c[(c[i>>2]|0)+12>>2]|0,c[k>>2]|0,c[j>>2]|0);k=(c[i>>2]|0)+12|0;c[k>>2]=(c[k>>2]|0)+(c[j>>2]|0);if((c[j>>2]|0)>>>0>65535){c[(c[i>>2]|0)+28>>2]=1;c[(c[i>>2]|0)+32>>2]=((c[(c[i>>2]|0)+4>>2]|0)-(c[c[i>>2]>>2]|0)|0)/8|0;}b[(c[(c[i>>2]|0)+4>>2]|0)+4>>1]=c[j>>2];c[c[(c[i>>2]|0)+4>>2]>>2]=(c[m>>2]|0)+1;if((c[n>>2]|0)>>>0<=65535){o=c[n>>2]|0;p=o&65535;q=c[i>>2]|0;r=q+4|0;s=c[r>>2]|0;t=s+6|0;b[t>>1]=p;u=c[i>>2]|0;v=u+4|0;w=c[v>>2]|0;x=w+8|0;c[v>>2]=x;l=h;return;}c[(c[i>>2]|0)+28>>2]=2;c[(c[i>>2]|0)+32>>2]=((c[(c[i>>2]|0)+4>>2]|0)-(c[c[i>>2]>>2]|0)|0)/8|0;o=c[n>>2]|0;p=o&65535;q=c[i>>2]|0;r=q+4|0;s=c[r>>2]|0;t=s+6|0;b[t>>1]=p;u=c[i>>2]|0;v=u+4|0;w=c[v>>2]|0;x=w+8|0;c[v>>2]=x;l=h;return;}function ln(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[g>>2];c[j>>2]=c[f>>2];c[k>>2]=(c[j>>2]|0)+(c[h>>2]|0);do{mn(c[j>>2]|0,c[i>>2]|0);c[j>>2]=(c[j>>2]|0)+8;c[i>>2]=(c[i>>2]|0)+8;}while((c[j>>2]|0)>>>0<(c[k>>2]|0)>>>0);l=e;return;}function mn(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[f>>2]|0;f=c[g>>2]|0;a[d>>0]=a[f>>0]|0;a[d+1>>0]=a[f+1>>0]|0;a[d+2>>0]=a[f+2>>0]|0;a[d+3>>0]=a[f+3>>0]|0;a[d+4>>0]=a[f+4>>0]|0;a[d+5>>0]=a[f+5>>0]|0;a[d+6>>0]=a[f+6>>0]|0;a[d+7>>0]=a[f+7>>0]|0;l=e;return;}function nn(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;f=l;l=l+32|0;g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f+12|0;m=f+8|0;n=f+4|0;o=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=e;c[k>>2]=c[h>>2];c[m>>2]=(c[j>>2]|0)+-3;a:do{if((c[h>>2]|0)>>>0<(c[m>>2]|0)>>>0){e=on(c[i>>2]|0)|0;c[n>>2]=e^(on(c[h>>2]|0)|0);if(c[n>>2]|0){c[g>>2]=pn(c[n>>2]|0)|0;p=c[g>>2]|0;l=f;return p|0;}c[h>>2]=(c[h>>2]|0)+4;c[i>>2]=(c[i>>2]|0)+4;while(1){if((c[h>>2]|0)>>>0>=(c[m>>2]|0)>>>0)break a;e=on(c[i>>2]|0)|0;c[o>>2]=e^(on(c[h>>2]|0)|0);if(c[o>>2]|0)break;c[h>>2]=(c[h>>2]|0)+4;c[i>>2]=(c[i>>2]|0)+4;}e=pn(c[o>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+e;c[g>>2]=(c[h>>2]|0)-(c[k>>2]|0);p=c[g>>2]|0;l=f;return p|0;}}while(0);if((qn()|0?(c[h>>2]|0)>>>0<((c[j>>2]|0)+-3|0)>>>0:0)?(o=fl(c[i>>2]|0)|0,(o|0)==(fl(c[h>>2]|0)|0)):0){c[h>>2]=(c[h>>2]|0)+4;c[i>>2]=(c[i>>2]|0)+4;}if((c[h>>2]|0)>>>0<((c[j>>2]|0)+-1|0)>>>0?(o=(rn(c[i>>2]|0)|0)&65535,(o|0)==((rn(c[h>>2]|0)|0)&65535|0)):0){c[h>>2]=(c[h>>2]|0)+2;c[i>>2]=(c[i>>2]|0)+2;}if((c[h>>2]|0)>>>0<(c[j>>2]|0)>>>0?(d[c[i>>2]>>0]|0|0)==(d[c[h>>2]>>0]|0|0):0)c[h>>2]=(c[h>>2]|0)+1;c[g>>2]=(c[h>>2]|0)-(c[k>>2]|0);p=c[g>>2]|0;l=f;return p|0;}function on(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0;}function pn(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=($k()|0)!=0;f=(qn()|0)!=0;g=c[e>>2]|0;do{if(a){if(f){e=ob(g|0,0,0)|0;c[d>>2]=e>>3;break;}else{c[d>>2]=(fE(g|0)|0)>>3;break;}}else if(f){e=lE(g|0,0,0)|0;c[d>>2]=e>>3;break;}else{c[d>>2]=(Q(g|0)|0)>>3;break;}}while(0);l=b;return c[d>>2]|0;}function qn(){return 0;}function rn(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|0;}function sn(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;g=l;l=l+32|0;h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;m=g+4|0;n=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;switch(c[(c[j>>2]|0)+16>>2]|0){case 7:case 6:{c[h>>2]=un(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,6)|0;o=c[h>>2]|0;l=g;return o|0;}case 5:{c[h>>2]=un(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,5)|0;o=c[h>>2]|0;l=g;return o|0;}default:{c[h>>2]=un(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,4)|0;o=c[h>>2]|0;l=g;return o|0;}}return 0;}function tn(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0;h=l;l=l+320|0;i=h+308|0;j=h+304|0;k=h+300|0;m=h+296|0;n=h+292|0;o=h+288|0;p=h+284|0;q=h+280|0;r=h+276|0;s=h+272|0;t=h+268|0;u=h+264|0;v=h+260|0;w=h+256|0;x=h+252|0;y=h+248|0;z=h+244|0;A=h+240|0;B=h+236|0;C=h+232|0;D=h+228|0;E=h+224|0;F=h+220|0;G=h+216|0;H=h+212|0;I=h+208|0;J=h+204|0;K=h+200|0;L=h+196|0;M=h+192|0;N=h+188|0;O=h+184|0;P=h+180|0;Q=h+176|0;R=h+172|0;S=h+168|0;T=h+164|0;U=h+160|0;V=h+156|0;W=h+152|0;X=h+148|0;Y=h+144|0;Z=h+140|0;_=h+136|0;$=h+132|0;aa=h+128|0;ba=h+124|0;ca=h+120|0;da=h+116|0;ea=h+112|0;fa=h+108|0;ga=h+104|0;ha=h+100|0;ia=h+96|0;ja=h+92|0;ka=h+88|0;la=h+84|0;ma=h+80|0;na=h+76|0;oa=h+72|0;pa=h+68|0;qa=h+64|0;ra=h+60|0;sa=h+56|0;ta=h+52|0;ua=h+48|0;va=h+44|0;wa=h+40|0;xa=h+36|0;ya=h+32|0;za=h+28|0;Aa=h+24|0;Ba=h+20|0;Ca=h+16|0;Da=h+12|0;Ea=h+8|0;Fa=h+4|0;Ga=h;c[Ca>>2]=a;c[Da>>2]=b;c[Ea>>2]=e;c[Fa>>2]=f;c[Ga>>2]=g;switch(c[(c[Da>>2]|0)+16>>2]|0){case 7:case 6:{g=c[Da>>2]|0;f=c[Ea>>2]|0;e=c[Fa>>2]|0;b=c[Ga>>2]|0;c[i>>2]=c[Ca>>2];c[j>>2]=g;c[k>>2]=f;c[m>>2]=e;c[n>>2]=b;c[o>>2]=6;c[p>>2]=0;c[q>>2]=c[(c[i>>2]|0)+44>>2];c[r>>2]=1<<c[(c[j>>2]|0)+4>>2];c[s>>2]=(c[r>>2]|0)-1;c[t>>2]=c[(c[i>>2]|0)+4>>2];c[u>>2]=c[(c[i>>2]|0)+8>>2];c[v>>2]=c[(c[i>>2]|0)+12>>2];c[w>>2]=(c[t>>2]|0)+(c[v>>2]|0);c[x>>2]=(c[u>>2]|0)+(c[v>>2]|0);c[y>>2]=c[(c[i>>2]|0)+16>>2];c[z>>2]=(c[k>>2]|0)-(c[t>>2]|0);if((c[z>>2]|0)>>>0>(c[r>>2]|0)>>>0)Ha=(c[z>>2]|0)-(c[r>>2]|0)|0;else Ha=0;c[A>>2]=Ha;c[B>>2]=1<<c[(c[j>>2]|0)+12>>2];c[C>>2]=3;c[D>>2]=mk(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[o>>2]|0)|0;while(1){if(!(((c[B>>2]|0)>>>0>0?(c[D>>2]|0)>>>0>(c[y>>2]|0)>>>0:0)|0))break;c[E>>2]=0;if(c[p>>2]|0?(c[D>>2]|0)>>>0<(c[v>>2]|0)>>>0:0){c[G>>2]=(c[u>>2]|0)+(c[D>>2]|0);o=Bk(c[G>>2]|0)|0;if((o|0)==(Bk(c[k>>2]|0)|0))c[E>>2]=(Lm((c[k>>2]|0)+4|0,(c[G>>2]|0)+4|0,c[m>>2]|0,c[x>>2]|0,c[w>>2]|0)|0)+4;}else Ia=38;if((Ia|0)==38?(Ia=0,c[F>>2]=(c[t>>2]|0)+(c[D>>2]|0),(d[(c[F>>2]|0)+(c[C>>2]|0)>>0]|0|0)==(d[(c[k>>2]|0)+(c[C>>2]|0)>>0]|0|0)):0)c[E>>2]=Qm(c[k>>2]|0,c[F>>2]|0,c[m>>2]|0)|0;if((c[E>>2]|0)>>>0>(c[C>>2]|0)>>>0?(c[C>>2]=c[E>>2],c[c[n>>2]>>2]=(c[z>>2]|0)-(c[D>>2]|0)+2,((c[k>>2]|0)+(c[E>>2]|0)|0)==(c[m>>2]|0)):0)break;if((c[D>>2]|0)>>>0<=(c[A>>2]|0)>>>0)break;c[D>>2]=c[(c[q>>2]|0)+((c[D>>2]&c[s>>2])<<2)>>2];c[B>>2]=(c[B>>2]|0)+-1;}c[Ba>>2]=c[C>>2];Ja=c[Ba>>2]|0;l=h;return Ja|0;}case 5:{C=c[Da>>2]|0;B=c[Ea>>2]|0;s=c[Fa>>2]|0;D=c[Ga>>2]|0;c[H>>2]=c[Ca>>2];c[I>>2]=C;c[J>>2]=B;c[K>>2]=s;c[L>>2]=D;c[M>>2]=5;c[N>>2]=0;c[O>>2]=c[(c[H>>2]|0)+44>>2];c[P>>2]=1<<c[(c[I>>2]|0)+4>>2];c[Q>>2]=(c[P>>2]|0)-1;c[R>>2]=c[(c[H>>2]|0)+4>>2];c[S>>2]=c[(c[H>>2]|0)+8>>2];c[T>>2]=c[(c[H>>2]|0)+12>>2];c[U>>2]=(c[R>>2]|0)+(c[T>>2]|0);c[V>>2]=(c[S>>2]|0)+(c[T>>2]|0);c[W>>2]=c[(c[H>>2]|0)+16>>2];c[X>>2]=(c[J>>2]|0)-(c[R>>2]|0);if((c[X>>2]|0)>>>0>(c[P>>2]|0)>>>0)Ka=(c[X>>2]|0)-(c[P>>2]|0)|0;else Ka=0;c[Y>>2]=Ka;c[Z>>2]=1<<c[(c[I>>2]|0)+12>>2];c[_>>2]=3;c[$>>2]=mk(c[H>>2]|0,c[I>>2]|0,c[J>>2]|0,c[M>>2]|0)|0;while(1){if(!(((c[Z>>2]|0)>>>0>0?(c[$>>2]|0)>>>0>(c[W>>2]|0)>>>0:0)|0))break;c[aa>>2]=0;if(c[N>>2]|0?(c[$>>2]|0)>>>0<(c[T>>2]|0)>>>0:0){c[ca>>2]=(c[S>>2]|0)+(c[$>>2]|0);M=Bk(c[ca>>2]|0)|0;if((M|0)==(Bk(c[J>>2]|0)|0))c[aa>>2]=(Lm((c[J>>2]|0)+4|0,(c[ca>>2]|0)+4|0,c[K>>2]|0,c[V>>2]|0,c[U>>2]|0)|0)+4;}else Ia=23;if((Ia|0)==23?(Ia=0,c[ba>>2]=(c[R>>2]|0)+(c[$>>2]|0),(d[(c[ba>>2]|0)+(c[_>>2]|0)>>0]|0|0)==(d[(c[J>>2]|0)+(c[_>>2]|0)>>0]|0|0)):0)c[aa>>2]=Qm(c[J>>2]|0,c[ba>>2]|0,c[K>>2]|0)|0;if((c[aa>>2]|0)>>>0>(c[_>>2]|0)>>>0?(c[_>>2]=c[aa>>2],c[c[L>>2]>>2]=(c[X>>2]|0)-(c[$>>2]|0)+2,((c[J>>2]|0)+(c[aa>>2]|0)|0)==(c[K>>2]|0)):0)break;if((c[$>>2]|0)>>>0<=(c[Y>>2]|0)>>>0)break;c[$>>2]=c[(c[O>>2]|0)+((c[$>>2]&c[Q>>2])<<2)>>2];c[Z>>2]=(c[Z>>2]|0)+-1;}c[Ba>>2]=c[_>>2];Ja=c[Ba>>2]|0;l=h;return Ja|0;}default:{_=c[Da>>2]|0;Da=c[Ea>>2]|0;Ea=c[Fa>>2]|0;Fa=c[Ga>>2]|0;c[da>>2]=c[Ca>>2];c[ea>>2]=_;c[fa>>2]=Da;c[ga>>2]=Ea;c[ha>>2]=Fa;c[ia>>2]=4;c[ja>>2]=0;c[ka>>2]=c[(c[da>>2]|0)+44>>2];c[la>>2]=1<<c[(c[ea>>2]|0)+4>>2];c[ma>>2]=(c[la>>2]|0)-1;c[na>>2]=c[(c[da>>2]|0)+4>>2];c[oa>>2]=c[(c[da>>2]|0)+8>>2];c[pa>>2]=c[(c[da>>2]|0)+12>>2];c[qa>>2]=(c[na>>2]|0)+(c[pa>>2]|0);c[ra>>2]=(c[oa>>2]|0)+(c[pa>>2]|0);c[sa>>2]=c[(c[da>>2]|0)+16>>2];c[ta>>2]=(c[fa>>2]|0)-(c[na>>2]|0);if((c[ta>>2]|0)>>>0>(c[la>>2]|0)>>>0)La=(c[ta>>2]|0)-(c[la>>2]|0)|0;else La=0;c[ua>>2]=La;c[va>>2]=1<<c[(c[ea>>2]|0)+12>>2];c[wa>>2]=3;c[xa>>2]=mk(c[da>>2]|0,c[ea>>2]|0,c[fa>>2]|0,c[ia>>2]|0)|0;while(1){if(!(((c[va>>2]|0)>>>0>0?(c[xa>>2]|0)>>>0>(c[sa>>2]|0)>>>0:0)|0))break;c[ya>>2]=0;if(c[ja>>2]|0?(c[xa>>2]|0)>>>0<(c[pa>>2]|0)>>>0:0){c[Aa>>2]=(c[oa>>2]|0)+(c[xa>>2]|0);ia=Bk(c[Aa>>2]|0)|0;if((ia|0)==(Bk(c[fa>>2]|0)|0))c[ya>>2]=(Lm((c[fa>>2]|0)+4|0,(c[Aa>>2]|0)+4|0,c[ga>>2]|0,c[ra>>2]|0,c[qa>>2]|0)|0)+4;}else Ia=8;if((Ia|0)==8?(Ia=0,c[za>>2]=(c[na>>2]|0)+(c[xa>>2]|0),(d[(c[za>>2]|0)+(c[wa>>2]|0)>>0]|0|0)==(d[(c[fa>>2]|0)+(c[wa>>2]|0)>>0]|0|0)):0)c[ya>>2]=Qm(c[fa>>2]|0,c[za>>2]|0,c[ga>>2]|0)|0;if((c[ya>>2]|0)>>>0>(c[wa>>2]|0)>>>0?(c[wa>>2]=c[ya>>2],c[c[ha>>2]>>2]=(c[ta>>2]|0)-(c[xa>>2]|0)+2,((c[fa>>2]|0)+(c[ya>>2]|0)|0)==(c[ga>>2]|0)):0)break;if((c[xa>>2]|0)>>>0<=(c[ua>>2]|0)>>>0)break;c[xa>>2]=c[(c[ka>>2]|0)+((c[xa>>2]&c[ma>>2])<<2)>>2];c[va>>2]=(c[va>>2]|0)+-1;}c[Ba>>2]=c[wa>>2];Ja=c[Ba>>2]|0;l=h;return Ja|0;}}return 0;}function un(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;h=l;l=l+32|0;i=h+24|0;j=h+20|0;k=h+16|0;m=h+12|0;n=h+8|0;o=h+4|0;p=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;if((c[m>>2]|0)>>>0<((c[(c[j>>2]|0)+4>>2]|0)+(c[(c[j>>2]|0)+24>>2]|0)|0)>>>0){c[i>>2]=0;q=c[i>>2]|0;l=h;return q|0;}else{Wm(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[p>>2]|0);c[i>>2]=Xm(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,0)|0;q=c[i>>2]|0;l=h;return q|0;}return 0;}function vn(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0;g=l;l=l+32|0;h=g+16|0;i=g+12|0;j=g+8|0;k=g+4|0;m=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;f=wn(c[h>>2]|0,c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,1,0)|0;l=g;return f|0;}function wn(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0;i=l;l=l+160|0;j=i+48|0;k=i+40|0;m=i+36|0;n=i+32|0;o=i+28|0;p=i+24|0;q=i+20|0;r=i+16|0;s=i+12|0;t=i+8|0;u=i+4|0;v=i;c[m>>2]=a;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=(c[m>>2]|0)+472+8;c[u>>2]=0;if(!(c[c[m>>2]>>2]|0)){c[k>>2]=-60;w=c[k>>2]|0;l=i;return w|0;}do{if(c[r>>2]|0?(c[c[m>>2]>>2]|0)==1:0){h=c[n>>2]|0;g=c[o>>2]|0;f=(c[m>>2]|0)+116|0;e=(c[m>>2]|0)+240|0;d=eE(c[e>>2]|0,c[e+4>>2]|0,1,0)|0;e=y;b=c[(c[m>>2]|0)+220>>2]|0;a=j;x=f;f=a+104|0;do{c[a>>2]=c[x>>2];a=a+4|0;x=x+4|0;}while((a|0)<(f|0));c[u>>2]=xn(h,g,j,d,e,b)|0;x=(Ph(c[u>>2]|0)|0)!=0;a=c[u>>2]|0;if(!x){c[o>>2]=(c[o>>2]|0)-a;c[n>>2]=(c[n>>2]|0)+(c[u>>2]|0);c[c[m>>2]>>2]=2;break;}c[k>>2]=a;w=c[k>>2]|0;l=i;return w|0;}}while(0);if(!(c[q>>2]|0)){c[k>>2]=c[u>>2];w=c[k>>2]|0;l=i;return w|0;}if(!(Mj(c[t>>2]|0,c[p>>2]|0,c[q>>2]|0)|0))c[(c[t>>2]|0)+24>>2]=c[(c[t>>2]|0)+12>>2];if(c[(c[m>>2]|0)+116+68>>2]|0)Mj((c[m>>2]|0)+408|0,c[p>>2]|0,c[q>>2]|0)|0;t=c[m>>2]|0;j=c[n>>2]|0;n=c[o>>2]|0;o=c[p>>2]|0;p=c[q>>2]|0;if(c[r>>2]|0)z=yn(t,j,n,o,p,c[s>>2]|0)|0;else z=zn(t,j,n,o,p)|0;c[v>>2]=z;if(Ph(c[v>>2]|0)|0){c[k>>2]=c[v>>2];w=c[k>>2]|0;l=i;return w|0;}z=(c[m>>2]|0)+248|0;p=z;o=dE(c[p>>2]|0,c[p+4>>2]|0,c[q>>2]|0,0)|0;q=z;c[q>>2]=o;c[q+4>>2]=y;q=(c[m>>2]|0)+256|0;o=q;z=dE(c[o>>2]|0,c[o+4>>2]|0,(c[v>>2]|0)+(c[u>>2]|0)|0,0)|0;o=q;c[o>>2]=z;c[o+4>>2]=y;if(c[(c[m>>2]|0)+116+32>>2]|0?(o=(c[m>>2]|0)+248|0,z=dE(c[o>>2]|0,c[o+4>>2]|0,1,0)|0,o=y,q=(c[m>>2]|0)+240|0,m=c[q+4>>2]|0,o>>>0>m>>>0|((o|0)==(m|0)?z>>>0>(c[q>>2]|0)>>>0:0)):0){c[k>>2]=-72;w=c[k>>2]|0;l=i;return w|0;}c[k>>2]=(c[v>>2]|0)+(c[u>>2]|0);w=c[k>>2]|0;l=i;return w|0;}function xn(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;i=l;l=l+64|0;j=i+52|0;k=i+48|0;m=i+44|0;n=i;o=i+40|0;p=i+36|0;q=i+32|0;r=i+28|0;s=i+24|0;t=i+20|0;u=i+16|0;v=i+57|0;w=i+12|0;x=i+56|0;y=i+8|0;c[k>>2]=b;c[m>>2]=d;d=n;c[d>>2]=f;c[d+4>>2]=g;c[o>>2]=h;c[p>>2]=c[k>>2];c[q>>2]=((c[o>>2]|0)>>>0>0&1)+((c[o>>2]|0)>>>0>=256&1)+((c[o>>2]|0)>>>0>=65536&1);c[r>>2]=c[e+32+8>>2]|0?0:c[q>>2]|0;c[s>>2]=(c[e+32+4>>2]|0)>>>0>0&1;c[t>>2]=1<<c[e+4>>2];if(c[e+32>>2]|0){q=n;h=c[q+4>>2]|0;z=0>h>>>0|(0==(h|0)?(c[t>>2]|0)>>>0>=(c[q>>2]|0)>>>0:0);}else z=0;c[u>>2]=z&1;a[v>>0]=(c[e+4>>2]|0)-10<<3;if(c[e+32>>2]|0){z=n;q=c[z+4>>2]|0;t=n;h=c[t+4>>2]|0;g=n;d=c[g+4>>2]|0;A=((q>>>0>0|(q|0)==0&(c[z>>2]|0)>>>0>=256)&1)+((h>>>0>0|(h|0)==0&(c[t>>2]|0)>>>0>=65792)&1)+((d>>>0>0|(d|0)==0&(c[g>>2]|0)>>>0>=4294967295)&1)|0;}else A=0;c[w>>2]=A;a[x>>0]=(c[r>>2]|0)+(c[s>>2]<<2)+(c[u>>2]<<5)+(c[w>>2]<<6);c[y>>2]=0;if((c[m>>2]|0)>>>0<18){c[j>>2]=-70;B=c[j>>2]|0;l=i;return B|0;}if(!(c[e>>2]|0)){Pl(c[k>>2]|0,-47205080);c[y>>2]=4;}k=a[x>>0]|0;x=c[p>>2]|0;e=c[y>>2]|0;c[y>>2]=e+1;a[x+e>>0]=k;if(!(c[u>>2]|0)){k=a[v>>0]|0;v=c[p>>2]|0;e=c[y>>2]|0;c[y>>2]=e+1;a[v+e>>0]=k;}switch(c[r>>2]|0){case 3:{Pl((c[p>>2]|0)+(c[y>>2]|0)|0,c[o>>2]|0);c[y>>2]=(c[y>>2]|0)+4;break;}case 1:{a[(c[p>>2]|0)+(c[y>>2]|0)>>0]=c[o>>2];c[y>>2]=(c[y>>2]|0)+1;break;}case 2:{xl((c[p>>2]|0)+(c[y>>2]|0)|0,c[o>>2]&65535);c[y>>2]=(c[y>>2]|0)+2;break;}default:{}}switch(c[w>>2]|0){case 3:{w=n;Ql((c[p>>2]|0)+(c[y>>2]|0)|0,c[w>>2]|0,c[w+4>>2]|0);c[y>>2]=(c[y>>2]|0)+8;break;}case 1:{w=(c[p>>2]|0)+(c[y>>2]|0)|0;o=n;xl(w,(eE(c[o>>2]|0,c[o+4>>2]|0,256,0)|0)&65535);c[y>>2]=(c[y>>2]|0)+2;break;}case 2:{Pl((c[p>>2]|0)+(c[y>>2]|0)|0,c[n>>2]|0);c[y>>2]=(c[y>>2]|0)+4;break;}default:if(c[u>>2]|0){u=c[n>>2]&255;n=c[p>>2]|0;p=c[y>>2]|0;c[y>>2]=p+1;a[n+p>>0]=u;}}c[j>>2]=c[y>>2];B=c[j>>2]|0;l=i;return B|0;}function yn(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;h=l;l=l+112|0;i=h+80|0;j=h+76|0;k=h+72|0;m=h+68|0;n=h+64|0;o=h+60|0;p=h+56|0;q=h+52|0;r=h+48|0;s=h+44|0;t=h+40|0;u=h+36|0;v=h+32|0;w=h+28|0;x=h+24|0;y=h+20|0;z=h+16|0;A=h+12|0;B=h+8|0;C=h+4|0;D=h;c[k>>2]=a;c[m>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=c[(c[k>>2]|0)+232>>2];c[s>>2]=c[p>>2];c[t>>2]=c[o>>2];c[u>>2]=c[m>>2];c[v>>2]=c[u>>2];c[w>>2]=1<<c[(c[k>>2]|0)+116+4>>2];if(c[p>>2]|0?(c[(c[k>>2]|0)+116+32+4>>2]|0)!=0:0)Nh((c[k>>2]|0)+264|0,c[o>>2]|0,c[p>>2]|0)|0;while(1){if(!(c[s>>2]|0)){E=24;break;}c[x>>2]=(c[k>>2]|0)+472+8;c[y>>2]=c[q>>2]&(c[r>>2]|0)>>>0>=(c[s>>2]|0)>>>0;if((c[n>>2]|0)>>>0<6){E=6;break;}if((c[s>>2]|0)>>>0<(c[r>>2]|0)>>>0)c[r>>2]=c[s>>2];p=c[x>>2]|0;o=(c[t>>2]|0)+(c[r>>2]|0)|0;c[i>>2]=c[p>>2];c[i+4>>2]=c[p+4>>2];c[i+8>>2]=c[p+8>>2];c[i+12>>2]=c[p+12>>2];c[i+16>>2]=c[p+16>>2];if(ro(i,o)|0){c[z>>2]=vj(c[(c[k>>2]|0)+116+4+4>>2]|0,c[(c[k>>2]|0)+116+4+24>>2]|0)|0;c[A>>2]=so(c[x>>2]|0,c[z>>2]|0,c[w>>2]|0,c[t>>2]|0)|0;to(c[k>>2]|0,c[A>>2]|0);if((c[(c[x>>2]|0)+24>>2]|0)>>>0<(c[A>>2]|0)>>>0)c[(c[x>>2]|0)+24>>2]=0;else{o=(c[x>>2]|0)+24|0;c[o>>2]=(c[o>>2]|0)-(c[A>>2]|0);}c[(c[x>>2]|0)+20>>2]=0;}uo(c[x>>2]|0,(c[t>>2]|0)+(c[r>>2]|0)|0,c[w>>2]|0,(c[x>>2]|0)+20|0);if((c[(c[x>>2]|0)+24>>2]|0)>>>0<(c[(c[x>>2]|0)+16>>2]|0)>>>0)c[(c[x>>2]|0)+24>>2]=c[(c[x>>2]|0)+16>>2];c[B>>2]=zn(c[k>>2]|0,(c[v>>2]|0)+3|0,(c[n>>2]|0)-3|0,c[t>>2]|0,c[r>>2]|0)|0;o=(Ph(c[B>>2]|0)|0)!=0;F=c[B>>2]|0;if(o){E=17;break;}o=c[y>>2]|0;if(!F){c[C>>2]=o+0+(c[r>>2]<<3);if(((c[r>>2]|0)+3|0)>>>0>(c[n>>2]|0)>>>0){E=20;break;}Pl(c[v>>2]|0,c[C>>2]|0);mE((c[v>>2]|0)+3|0,c[t>>2]|0,c[r>>2]|0)|0;c[B>>2]=3+(c[r>>2]|0);}else{c[D>>2]=o+4+(c[B>>2]<<3);wl(c[v>>2]|0,c[D>>2]|0);c[B>>2]=(c[B>>2]|0)+3;}c[t>>2]=(c[t>>2]|0)+(c[r>>2]|0);c[s>>2]=(c[s>>2]|0)-(c[r>>2]|0);c[v>>2]=(c[v>>2]|0)+(c[B>>2]|0);c[n>>2]=(c[n>>2]|0)-(c[B>>2]|0);}if((E|0)==6){c[j>>2]=-70;G=c[j>>2]|0;l=h;return G|0;}else if((E|0)==17){c[j>>2]=F;G=c[j>>2]|0;l=h;return G|0;}else if((E|0)==20){c[j>>2]=-70;G=c[j>>2]|0;l=h;return G|0;}else if((E|0)==24){if(c[q>>2]|0?(c[v>>2]|0)>>>0>(c[u>>2]|0)>>>0:0)c[c[k>>2]>>2]=3;c[j>>2]=(c[v>>2]|0)-(c[u>>2]|0);G=c[j>>2]|0;l=h;return G|0;}return 0;}function zn(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;g=l;l=l+112|0;h=g+92|0;i=g+88|0;j=g+84|0;k=g+80|0;m=g+76|0;n=g+72|0;o=g+68|0;p=g+64|0;q=g+60|0;r=g+56|0;s=g+52|0;t=g+48|0;u=g+44|0;v=g+40|0;w=g+24|0;x=g+16|0;y=g+12|0;z=g+8|0;A=g+4|0;B=g;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=(c[j>>2]|0)+472+8;f=c[j>>2]|0;if((c[o>>2]|0)>>>0<7){An(f+456|0,c[o>>2]|0,c[(c[j>>2]|0)+116+4+16>>2]|0);c[i>>2]=0;C=c[i>>2]|0;l=g;return C|0;}Bn(f+368|0);c[q>>2]=c[(c[p>>2]|0)+4>>2];c[r>>2]=c[n>>2];c[s>>2]=(c[r>>2]|0)-(c[q>>2]|0);if((c[s>>2]|0)>>>0>((c[(c[p>>2]|0)+24>>2]|0)+384|0)>>>0){if(192<((c[s>>2]|0)-(c[(c[p>>2]|0)+24>>2]|0)-384|0)>>>0)D=192;else D=(c[s>>2]|0)-(c[(c[p>>2]|0)+24>>2]|0)-384|0;c[(c[p>>2]|0)+24>>2]=(c[s>>2]|0)-D;}D=c[p>>2]|0;c[h>>2]=c[D>>2];c[h+4>>2]=c[D+4>>2];c[h+8>>2]=c[D+8>>2];c[h+12>>2]=c[D+12>>2];c[h+16>>2]=c[D+16>>2];c[t>>2]=Cn(h)|0;c[v>>2]=0;while(1){E=c[j>>2]|0;if((c[v>>2]|0)>=3)break;c[(c[(c[j>>2]|0)+472+4>>2]|0)+4580+(c[v>>2]<<2)>>2]=c[(c[E+472>>2]|0)+4580+(c[v>>2]<<2)>>2];c[v>>2]=(c[v>>2]|0)+1;}v=c[j>>2]|0;do{if((c[E+456+4>>2]|0)>>>0<(c[(c[j>>2]|0)+456+8>>2]|0)>>>0)c[u>>2]=Dn(v+456|0,c[p>>2]|0,(c[j>>2]|0)+368|0,(c[(c[j>>2]|0)+472+4>>2]|0)+4580|0,(c[j>>2]|0)+116+4|0,c[n>>2]|0,c[o>>2]|0,c[t>>2]|0)|0;else{if(!(c[v+116+68>>2]|0)){c[y>>2]=Wl(c[(c[j>>2]|0)+116+4+24>>2]|0,c[t>>2]|0)|0;c[u>>2]=uc[c[y>>2]&31](c[p>>2]|0,(c[j>>2]|0)+368|0,(c[(c[j>>2]|0)+472+4>>2]|0)+4580|0,(c[j>>2]|0)+116+4|0,c[n>>2]|0,c[o>>2]|0)|0;break;};c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[w+12>>2]=0;c[w>>2]=c[(c[j>>2]|0)+448>>2];c[w+12>>2]=c[(c[j>>2]|0)+452>>2];c[x>>2]=En((c[j>>2]|0)+408|0,w,(c[j>>2]|0)+116+68|0,c[n>>2]|0,c[o>>2]|0)|0;if(!(wj(c[x>>2]|0)|0)){c[u>>2]=Dn(w,c[p>>2]|0,(c[j>>2]|0)+368|0,(c[(c[j>>2]|0)+472+4>>2]|0)+4580|0,(c[j>>2]|0)+116+4|0,c[n>>2]|0,c[o>>2]|0,c[t>>2]|0)|0;break;}c[i>>2]=c[x>>2];C=c[i>>2]|0;l=g;return C|0;}}while(0);c[z>>2]=(c[n>>2]|0)+(c[o>>2]|0)+(0-(c[u>>2]|0));Fn((c[j>>2]|0)+368|0,c[z>>2]|0,c[u>>2]|0);c[A>>2]=Gn((c[j>>2]|0)+368|0,c[(c[j>>2]|0)+472>>2]|0,c[(c[j>>2]|0)+472+4>>2]|0,(c[j>>2]|0)+116|0,c[k>>2]|0,c[m>>2]|0,c[o>>2]|0,c[(c[j>>2]|0)+588>>2]|0,c[(c[j>>2]|0)+8>>2]|0)|0;o=(Ph(c[A>>2]|0)|0)!=0;if(o|(c[A>>2]|0)==0){c[i>>2]=c[A>>2];C=c[i>>2]|0;l=g;return C|0;}else{c[B>>2]=c[(c[j>>2]|0)+472>>2];c[(c[j>>2]|0)+472>>2]=c[(c[j>>2]|0)+472+4>>2];c[(c[j>>2]|0)+472+4>>2]=c[B>>2];c[i>>2]=c[A>>2];C=c[i>>2]|0;l=g;return C|0;}return 0;}function An(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;while(1){if((c[g>>2]|0)>>>0<=0){j=12;break;}if((c[(c[f>>2]|0)+4>>2]|0)>>>0>=(c[(c[f>>2]|0)+8>>2]|0)>>>0){j=12;break;}c[i>>2]=(c[c[f>>2]>>2]|0)+((c[(c[f>>2]|0)+4>>2]|0)*12|0);if((c[g>>2]|0)>>>0<=(c[(c[i>>2]|0)+4>>2]|0)>>>0){j=5;break;}c[g>>2]=(c[g>>2]|0)-(c[(c[i>>2]|0)+4>>2]|0);c[(c[i>>2]|0)+4>>2]=0;if((c[g>>2]|0)>>>0<(c[(c[i>>2]|0)+8>>2]|0)>>>0){j=7;break;}c[g>>2]=(c[g>>2]|0)-(c[(c[i>>2]|0)+8>>2]|0);c[(c[i>>2]|0)+8>>2]=0;d=(c[f>>2]|0)+4|0;c[d>>2]=(c[d>>2]|0)+1;}if((j|0)==5){d=(c[i>>2]|0)+4|0;c[d>>2]=(c[d>>2]|0)-(c[g>>2]|0);l=e;return;}else if((j|0)==7){d=(c[i>>2]|0)+8|0;c[d>>2]=(c[d>>2]|0)-(c[g>>2]|0);if((c[(c[i>>2]|0)+8>>2]|0)>>>0>=(c[h>>2]|0)>>>0){l=e;return;}if(((c[(c[f>>2]|0)+4>>2]|0)+1|0)>>>0<(c[(c[f>>2]|0)+8>>2]|0)>>>0){h=(c[i>>2]|0)+12+4|0;c[h>>2]=(c[h>>2]|0)+(c[(c[i>>2]|0)+8>>2]|0);}i=(c[f>>2]|0)+4|0;c[i>>2]=(c[i>>2]|0)+1;l=e;return;}else if((j|0)==12){l=e;return;}}function Bn(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;c[(c[d>>2]|0)+12>>2]=c[(c[d>>2]|0)+8>>2];c[(c[d>>2]|0)+4>>2]=c[c[d>>2]>>2];c[(c[d>>2]|0)+28>>2]=0;l=b;return;}function Cn(a){a=a|0;return(c[a+16>>2]|0)>>>0<(c[a+12>>2]|0)>>>0|0;}function Dn(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;j=l;l=l+80|0;k=j+76|0;m=j+72|0;n=j+68|0;o=j+64|0;p=j+60|0;q=j+56|0;r=j+52|0;s=j+48|0;t=j+44|0;u=j+40|0;v=j+36|0;w=j+32|0;x=j+28|0;y=j+24|0;z=j+12|0;A=j+8|0;B=j+4|0;C=j;c[k>>2]=a;c[m>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=c[(c[p>>2]|0)+16>>2];c[u>>2]=Wl(c[(c[p>>2]|0)+24>>2]|0,c[s>>2]|0)|0;c[v>>2]=c[(c[m>>2]|0)+4>>2];c[w>>2]=c[q>>2];c[x>>2]=(c[w>>2]|0)+(c[r>>2]|0);c[y>>2]=c[w>>2];while(1){if((c[(c[k>>2]|0)+4>>2]|0)>>>0>=(c[(c[k>>2]|0)+8>>2]|0)>>>0)break;if((c[y>>2]|0)>>>0>=(c[x>>2]|0)>>>0)break;lo(z,c[k>>2]|0,(c[x>>2]|0)-(c[y>>2]|0)|0,c[t>>2]|0);if(!(c[z>>2]|0))break;mo(c[m>>2]|0,c[y>>2]|0);no(c[m>>2]|0,c[p>>2]|0,c[y>>2]|0)|0;c[B>>2]=uc[c[u>>2]&31](c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,c[y>>2]|0,c[z+4>>2]|0)|0;c[y>>2]=(c[y>>2]|0)+(c[z+4>>2]|0);c[(c[m>>2]|0)+24>>2]=(c[y>>2]|0)-(c[v>>2]|0);c[A>>2]=2;while(1){if((c[A>>2]|0)<=0)break;c[(c[o>>2]|0)+(c[A>>2]<<2)>>2]=c[(c[o>>2]|0)+((c[A>>2]|0)-1<<2)>>2];c[A>>2]=(c[A>>2]|0)+-1;}c[c[o>>2]>>2]=c[z>>2];oo(c[n>>2]|0,c[B>>2]|0,(c[y>>2]|0)+(0-(c[B>>2]|0))|0,(c[z>>2]|0)+2|0,(c[z+8>>2]|0)-3|0);c[y>>2]=(c[y>>2]|0)+(c[z+8>>2]|0);}mo(c[m>>2]|0,c[y>>2]|0);no(c[m>>2]|0,c[p>>2]|0,c[y>>2]|0)|0;c[C>>2]=uc[c[u>>2]&31](c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,c[y>>2]|0,(c[x>>2]|0)-(c[y>>2]|0)|0)|0;c[(c[m>>2]|0)+24>>2]=(c[x>>2]|0)-(c[v>>2]|0);l=j;return c[C>>2]|0;}function En(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;g=l;l=l+112|0;h=g+84|0;i=g+80|0;j=g+76|0;k=g+72|0;m=g+68|0;n=g+64|0;o=g+60|0;p=g+56|0;q=g+52|0;r=g+48|0;s=g+40|0;t=g+36|0;u=g+32|0;v=g+28|0;w=g+24|0;x=g+20|0;y=g+16|0;z=g+12|0;A=g+8|0;B=g+4|0;C=g;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=1<<c[(c[m>>2]|0)+20>>2];c[q>>2]=c[n>>2];c[r>>2]=(c[q>>2]|0)+(c[o>>2]|0);c[g+44>>2]=1048576;c[s>>2]=(((c[o>>2]|0)>>>0)/1048576|0)+((((c[o>>2]|0)>>>0)%1048576|0|0)!=0&1);c[u>>2]=0;c[t>>2]=0;while(1){if((c[t>>2]|0)>>>0>=(c[s>>2]|0)>>>0){D=12;break;}if((c[(c[k>>2]|0)+8>>2]|0)>>>0>=(c[(c[k>>2]|0)+12>>2]|0)>>>0){D=12;break;}c[v>>2]=(c[q>>2]|0)+(c[t>>2]<<20);c[w>>2]=(c[r>>2]|0)-(c[v>>2]|0);c[x>>2]=(c[w>>2]|0)>>>0<1048576?c[r>>2]|0:(c[v>>2]|0)+1048576|0;c[y>>2]=(c[x>>2]|0)-(c[v>>2]|0);c[A>>2]=c[(c[k>>2]|0)+8>>2];o=c[j>>2]|0;f=c[x>>2]|0;c[h>>2]=c[o>>2];c[h+4>>2]=c[o+4>>2];c[h+8>>2]=c[o+8>>2];c[h+12>>2]=c[o+12>>2];c[h+16>>2]=c[o+16>>2];if(On(h,f)|0){c[B>>2]=1<<c[(c[m>>2]|0)+4>>2];c[C>>2]=Pn(c[j>>2]|0,0,c[p>>2]|0,c[n>>2]|0)|0;Qn(c[(c[j>>2]|0)+20>>2]|0,c[B>>2]|0,c[C>>2]|0);}Rn(c[j>>2]|0,c[x>>2]|0,c[p>>2]|0,0);c[z>>2]=Sn(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[v>>2]|0,c[y>>2]|0)|0;if(Ph(c[z>>2]|0)|0){D=7;break;}if((c[A>>2]|0)>>>0<(c[(c[k>>2]|0)+8>>2]|0)>>>0){f=(c[c[k>>2]>>2]|0)+((c[A>>2]|0)*12|0)+4|0;c[f>>2]=(c[f>>2]|0)+(c[u>>2]|0);c[u>>2]=c[z>>2];}else c[u>>2]=(c[u>>2]|0)+(c[y>>2]|0);c[t>>2]=(c[t>>2]|0)+1;}if((D|0)==7){c[i>>2]=c[z>>2];E=c[i>>2]|0;l=g;return E|0;}else if((D|0)==12){c[i>>2]=0;E=c[i>>2]|0;l=g;return E|0;}return 0;}function Fn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;mE(c[(c[f>>2]|0)+12>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;g=(c[f>>2]|0)+12|0;c[g>>2]=(c[g>>2]|0)+(c[h>>2]|0);l=e;return;}function Gn(a,b,d,e,f,g,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;k=l;l=l+48|0;m=k+44|0;n=k+40|0;o=k+36|0;p=k+32|0;q=k+28|0;r=k+24|0;s=k+20|0;t=k+16|0;u=k+12|0;v=k+8|0;w=k+4|0;x=k;c[n>>2]=a;c[o>>2]=b;c[p>>2]=d;c[q>>2]=e;c[r>>2]=f;c[s>>2]=g;c[t>>2]=h;c[u>>2]=i;c[v>>2]=j;c[w>>2]=Hn(c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0,c[r>>2]|0,c[s>>2]|0,c[u>>2]|0,c[v>>2]|0)|0;if(((c[w>>2]|0)==-70?(c[t>>2]|0)>>>0<=(c[s>>2]|0)>>>0:0)|0){c[m>>2]=0;y=c[m>>2]|0;l=k;return y|0;}if(Ph(c[w>>2]|0)|0){c[m>>2]=c[w>>2];y=c[m>>2]|0;l=k;return y|0;}s=c[t>>2]|0;c[x>>2]=s-(In(c[t>>2]|0)|0);if((c[w>>2]|0)>>>0>=(c[x>>2]|0)>>>0){c[m>>2]=0;y=c[m>>2]|0;l=k;return y|0;}if((c[(c[p>>2]|0)+4568>>2]|0)==2)c[(c[p>>2]|0)+4568>>2]=1;c[m>>2]=c[w>>2];y=c[m>>2]|0;l=k;return y|0;}function Hn(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0;k=l;l=l+368|0;m=k+364|0;n=k+360|0;o=k+356|0;p=k+352|0;q=k+348|0;r=k+344|0;s=k+340|0;t=k+336|0;u=k+332|0;v=k+328|0;w=k;x=k+324|0;y=k+320|0;z=k+316|0;A=k+312|0;B=k+308|0;C=k+304|0;D=k+300|0;E=k+296|0;F=k+292|0;G=k+288|0;H=k+284|0;I=k+280|0;J=k+276|0;K=k+272|0;L=k+268|0;M=k+264|0;N=k+260|0;O=k+256|0;P=k+252|0;Q=k+248|0;R=k+244|0;S=k+240|0;T=k+236|0;U=k+232|0;V=k+228|0;W=k+224|0;X=k+220|0;Y=k+216|0;Z=k+212|0;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=i;c[u>>2]=j;j=c[(c[q>>2]|0)+4>>2]|0;i=(Il()|0)!=0;c[v>>2]=j>>>0>(i?25:57)>>>0&1;c[x>>2]=(c[p>>2]|0)+3248;c[y>>2]=(c[p>>2]|0)+1024;c[z>>2]=(c[p>>2]|0)+1796;c[D>>2]=c[c[n>>2]>>2];c[E>>2]=c[(c[n>>2]|0)+24>>2];c[F>>2]=c[(c[n>>2]|0)+16>>2];c[G>>2]=c[(c[n>>2]|0)+20>>2];c[H>>2]=c[r>>2];c[I>>2]=(c[H>>2]|0)+(c[s>>2]|0);c[J>>2]=c[H>>2];c[K>>2]=((c[(c[n>>2]|0)+4>>2]|0)-(c[c[n>>2]>>2]|0)|0)/8|0;c[M>>2]=c[(c[n>>2]|0)+8>>2];c[N>>2]=(c[(c[n>>2]|0)+12>>2]|0)-(c[M>>2]|0);c[O>>2]=Jn(c[o>>2]|0,c[p>>2]|0,c[(c[q>>2]|0)+4+24>>2]|0,c[(c[q>>2]|0)+48>>2]|0,c[J>>2]|0,c[s>>2]|0,c[M>>2]|0,c[N>>2]|0,c[t>>2]|0,c[u>>2]|0)|0;N=(Ph(c[O>>2]|0)|0)!=0;M=c[O>>2]|0;if(N){c[m>>2]=M;_=c[m>>2]|0;l=k;return _|0;}c[J>>2]=(c[J>>2]|0)+M;if(((c[I>>2]|0)-(c[J>>2]|0)|0)<4){c[m>>2]=-70;_=c[m>>2]|0;l=k;return _|0;}M=c[K>>2]|0;do{if((c[K>>2]|0)>>>0>=127){if(M>>>0<32512){a[c[J>>2]>>0]=((c[K>>2]|0)>>>8)+128;a[(c[J>>2]|0)+1>>0]=c[K>>2];c[J>>2]=(c[J>>2]|0)+2;break;}else{a[c[J>>2]>>0]=-1;xl((c[J>>2]|0)+1|0,(c[K>>2]|0)-32512&65535);c[J>>2]=(c[J>>2]|0)+3;break;}}else{N=c[J>>2]|0;c[J>>2]=N+1;a[N>>0]=M;}}while(0);if(!(c[K>>2]|0)){mE((c[p>>2]|0)+3248|0,(c[o>>2]|0)+3248|0,1316)|0;c[(c[p>>2]|0)+4576>>2]=c[(c[o>>2]|0)+4576>>2];mE((c[p>>2]|0)+1024|0,(c[o>>2]|0)+1024|0,772)|0;c[(c[p>>2]|0)+4568>>2]=c[(c[o>>2]|0)+4568>>2];mE((c[p>>2]|0)+1796|0,(c[o>>2]|0)+1796|0,1452)|0;c[(c[p>>2]|0)+4572>>2]=c[(c[o>>2]|0)+4572>>2];c[m>>2]=(c[J>>2]|0)-(c[H>>2]|0);_=c[m>>2]|0;l=k;return _|0;}M=c[J>>2]|0;c[J>>2]=M+1;c[L>>2]=M;zl(c[n>>2]|0);c[P>>2]=35;c[Q>>2]=_h(w,P,c[F>>2]|0,c[K>>2]|0,c[t>>2]|0)|0;c[(c[p>>2]|0)+4576>>2]=c[(c[o>>2]|0)+4576>>2];c[A>>2]=Kn((c[p>>2]|0)+4576|0,c[Q>>2]|0,c[K>>2]|0,6,1)|0;c[R>>2]=Ln(c[J>>2]|0,(c[I>>2]|0)-(c[J>>2]|0)|0,c[x>>2]|0,9,c[A>>2]|0,w,c[P>>2]|0,c[F>>2]|0,c[K>>2]|0,3200,6,35,(c[o>>2]|0)+3248|0,1316,c[t>>2]|0,6144)|0;P=(Ph(c[R>>2]|0)|0)!=0;Q=c[R>>2]|0;if(P){c[m>>2]=Q;_=c[m>>2]|0;l=k;return _|0;}c[J>>2]=(c[J>>2]|0)+Q;c[S>>2]=31;c[T>>2]=_h(w,S,c[E>>2]|0,c[K>>2]|0,c[t>>2]|0)|0;c[U>>2]=(c[S>>2]|0)>>>0<=28?1:0;c[(c[p>>2]|0)+4568>>2]=c[(c[o>>2]|0)+4568>>2];c[B>>2]=Kn((c[p>>2]|0)+4568|0,c[T>>2]|0,c[K>>2]|0,5,c[U>>2]|0)|0;c[V>>2]=Ln(c[J>>2]|0,(c[I>>2]|0)-(c[J>>2]|0)|0,c[y>>2]|0,8,c[B>>2]|0,w,c[S>>2]|0,c[E>>2]|0,c[K>>2]|0,3280,5,28,(c[o>>2]|0)+1024|0,772,c[t>>2]|0,6144)|0;S=(Ph(c[V>>2]|0)|0)!=0;U=c[V>>2]|0;if(S){c[m>>2]=U;_=c[m>>2]|0;l=k;return _|0;}c[J>>2]=(c[J>>2]|0)+U;c[W>>2]=52;c[X>>2]=_h(w,W,c[G>>2]|0,c[K>>2]|0,c[t>>2]|0)|0;c[(c[p>>2]|0)+4572>>2]=c[(c[o>>2]|0)+4572>>2];c[C>>2]=Kn((c[p>>2]|0)+4572|0,c[X>>2]|0,c[K>>2]|0,6,1)|0;c[Y>>2]=Ln(c[J>>2]|0,(c[I>>2]|0)-(c[J>>2]|0)|0,c[z>>2]|0,9,c[C>>2]|0,w,c[W>>2]|0,c[G>>2]|0,c[K>>2]|0,3344,6,52,(c[o>>2]|0)+1796|0,1452,c[t>>2]|0,6144)|0;t=(Ph(c[Y>>2]|0)|0)!=0;o=c[Y>>2]|0;if(t){c[m>>2]=o;_=c[m>>2]|0;l=k;return _|0;}c[J>>2]=(c[J>>2]|0)+o;a[c[L>>2]>>0]=(c[A>>2]<<6)+(c[B>>2]<<4)+(c[C>>2]<<2);c[Z>>2]=Cl(c[J>>2]|0,(c[I>>2]|0)-(c[J>>2]|0)|0,c[z>>2]|0,c[G>>2]|0,c[y>>2]|0,c[E>>2]|0,c[x>>2]|0,c[F>>2]|0,c[D>>2]|0,c[K>>2]|0,c[v>>2]|0,c[u>>2]|0)|0;u=(Ph(c[Z>>2]|0)|0)!=0;v=c[Z>>2]|0;if(u){c[m>>2]=v;_=c[m>>2]|0;l=k;return _|0;}else{c[J>>2]=(c[J>>2]|0)+v;c[m>>2]=(c[J>>2]|0)-(c[H>>2]|0);_=c[m>>2]|0;l=k;return _|0;}return 0;}function In(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return((c[d>>2]|0)>>>6)+2|0;}function Jn(b,d,e,f,g,h,i,j,k,m){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;n=l;l=l+96|0;o=n+88|0;p=n+84|0;q=n+80|0;r=n+76|0;s=n+72|0;t=n+68|0;u=n+64|0;v=n+60|0;w=n+56|0;x=n+52|0;y=n+48|0;z=n+44|0;A=n+40|0;B=n+36|0;C=n+32|0;D=n+28|0;E=n+24|0;F=n+20|0;G=n+16|0;H=n+12|0;I=n+8|0;J=n+4|0;K=n;c[p>>2]=b;c[q>>2]=d;c[r>>2]=e;c[s>>2]=f;c[t>>2]=g;c[u>>2]=h;c[v>>2]=i;c[w>>2]=j;c[x>>2]=k;c[y>>2]=m;c[z>>2]=In(c[w>>2]|0)|0;c[A>>2]=3+((c[w>>2]|0)>>>0>=1024&1)+((c[w>>2]|0)>>>0>=16384&1);c[B>>2]=c[t>>2];c[C>>2]=(c[w>>2]|0)>>>0<256&1;c[D>>2]=2;c[(c[q>>2]|0)+4564>>2]=c[(c[p>>2]|0)+4564>>2];mE(c[q>>2]|0,c[p>>2]|0,1024)|0;if(c[s>>2]|0){c[o>>2]=Mn(c[t>>2]|0,c[u>>2]|0,c[v>>2]|0,c[w>>2]|0)|0;L=c[o>>2]|0;l=n;return L|0;}c[F>>2]=(c[(c[p>>2]|0)+4564>>2]|0)==2?6:63;if((c[w>>2]|0)>>>0<=(c[F>>2]|0)>>>0){c[o>>2]=Mn(c[t>>2]|0,c[u>>2]|0,c[v>>2]|0,c[w>>2]|0)|0;L=c[o>>2]|0;l=n;return L|0;}if((c[u>>2]|0)>>>0<((c[A>>2]|0)+1|0)>>>0){c[o>>2]=-70;L=c[o>>2]|0;l=n;return L|0;}c[G>>2]=c[(c[p>>2]|0)+4564>>2];c[H>>2]=(c[r>>2]|0)>>>0<4?(c[w>>2]|0)>>>0<=1024&1:0;if((c[G>>2]|0)==2&(c[A>>2]|0)==3)c[C>>2]=1;r=(c[B>>2]|0)+(c[A>>2]|0)|0;F=(c[u>>2]|0)-(c[A>>2]|0)|0;s=c[v>>2]|0;m=c[w>>2]|0;k=c[x>>2]|0;x=c[q>>2]|0;j=c[H>>2]|0;H=c[y>>2]|0;if(c[C>>2]|0)M=jj(r,F,s,m,255,11,k,6144,x,G,j,H)|0;else M=kj(r,F,s,m,255,11,k,6144,x,G,j,H)|0;c[E>>2]=M;if(c[G>>2]|0)c[D>>2]=3;G=(c[E>>2]|0)==0?1:(c[E>>2]|0)>>>0>=((c[w>>2]|0)-(c[z>>2]|0)|0)>>>0;if(G|(wj(c[E>>2]|0)|0)|0){mE(c[q>>2]|0,c[p>>2]|0,1024)|0;c[o>>2]=Mn(c[t>>2]|0,c[u>>2]|0,c[v>>2]|0,c[w>>2]|0)|0;L=c[o>>2]|0;l=n;return L|0;}if((c[E>>2]|0)==1){mE(c[q>>2]|0,c[p>>2]|0,1024)|0;c[o>>2]=Nn(c[t>>2]|0,c[u>>2]|0,c[v>>2]|0,c[w>>2]|0)|0;L=c[o>>2]|0;l=n;return L|0;}if((c[D>>2]|0)==2)c[(c[q>>2]|0)+4564>>2]=1;switch(c[A>>2]|0){case 3:{c[I>>2]=(c[D>>2]|0)+((((c[C>>2]|0)!=0^1)&1)<<2)+(c[w>>2]<<4)+(c[E>>2]<<14);wl(c[B>>2]|0,c[I>>2]|0);break;}case 4:{c[J>>2]=(c[D>>2]|0)+8+(c[w>>2]<<4)+(c[E>>2]<<18);Pl(c[B>>2]|0,c[J>>2]|0);break;}case 5:{c[K>>2]=(c[D>>2]|0)+12+(c[w>>2]<<4)+(c[E>>2]<<22);Pl(c[B>>2]|0,c[K>>2]|0);a[(c[B>>2]|0)+4>>0]=(c[E>>2]|0)>>>10;break;}default:{}}c[o>>2]=(c[A>>2]|0)+(c[E>>2]|0);L=c[o>>2]|0;l=n;return L|0;}function Kn(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;g=l;l=l+32|0;h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;m=g+4|0;n=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;if((c[j>>2]|0)==(c[k>>2]|0)?(c[n>>2]|0)==0|(c[k>>2]|0)>>>0>2:0){c[c[i>>2]>>2]=1;c[h>>2]=1;o=c[h>>2]|0;l=g;return o|0;}if(c[n>>2]|0?(c[k>>2]|0)>>>0<1e3?(c[c[i>>2]>>2]|0)==2:0:0){c[h>>2]=3;o=c[h>>2]|0;l=g;return o|0;}do{if(c[n>>2]|0){if((c[k>>2]|0)>>>0>=64?(c[j>>2]|0)>>>0>=(c[k>>2]|0)>>>((c[m>>2]|0)-1|0)>>>0:0)break;c[c[i>>2]>>2]=0;c[h>>2]=0;o=c[h>>2]|0;l=g;return o|0;}}while(0);c[c[i>>2]>>2]=1;c[h>>2]=2;o=c[h>>2]|0;l=g;return o|0;}function Ln(b,e,f,g,h,i,j,k,m,n,o,p,q,r,s,t){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;t=t|0;var u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;u=l;l=l+224|0;v=u+208|0;w=u+204|0;x=u+200|0;y=u+196|0;z=u+192|0;A=u+188|0;B=u+184|0;C=u+180|0;D=u+176|0;E=u+172|0;F=u+168|0;G=u+164|0;H=u+160|0;I=u+156|0;J=u+152|0;K=u+148|0;L=u+144|0;M=u+140|0;N=u+136|0;O=u+132|0;P=u+128|0;Q=u;R=u+124|0;S=u+120|0;T=u+116|0;U=u+112|0;V=u+108|0;c[w>>2]=b;c[x>>2]=e;c[y>>2]=f;c[z>>2]=g;c[A>>2]=h;c[B>>2]=i;c[C>>2]=j;c[D>>2]=k;c[E>>2]=m;c[F>>2]=n;c[G>>2]=o;c[H>>2]=p;c[I>>2]=q;c[J>>2]=r;c[K>>2]=s;c[L>>2]=t;c[M>>2]=c[w>>2];c[N>>2]=(c[M>>2]|0)+(c[x>>2]|0);switch(c[A>>2]|0){case 1:{a[c[M>>2]>>0]=a[c[D>>2]>>0]|0;c[O>>2]=ii(c[y>>2]|0,c[C>>2]&255)|0;if(wj(c[O>>2]|0)|0){c[v>>2]=c[O>>2];W=c[v>>2]|0;l=u;return W|0;}else{c[v>>2]=1;W=c[v>>2]|0;l=u;return W|0;}break;}case 3:{mE(c[y>>2]|0,c[I>>2]|0,c[J>>2]|0)|0;c[v>>2]=0;W=c[v>>2]|0;l=u;return W|0;}case 0:{c[P>>2]=Uh(c[y>>2]|0,c[F>>2]|0,c[H>>2]|0,c[G>>2]|0,c[K>>2]|0,c[L>>2]|0)|0;if(wj(c[P>>2]|0)|0){c[v>>2]=c[P>>2];W=c[v>>2]|0;l=u;return W|0;}else{c[v>>2]=0;W=c[v>>2]|0;l=u;return W|0;}break;}case 2:{c[R>>2]=c[E>>2];c[S>>2]=ei(c[z>>2]|0,c[E>>2]|0,c[C>>2]|0)|0;if((c[(c[B>>2]|0)+((d[(c[D>>2]|0)+((c[E>>2]|0)-1)>>0]|0)<<2)>>2]|0)>>>0>1){z=(c[B>>2]|0)+((d[(c[D>>2]|0)+((c[E>>2]|0)-1)>>0]|0)<<2)|0;c[z>>2]=(c[z>>2]|0)+-1;c[R>>2]=(c[R>>2]|0)+-1;}c[T>>2]=fi(Q,c[S>>2]|0,c[B>>2]|0,c[R>>2]|0,c[C>>2]|0)|0;if(wj(c[T>>2]|0)|0){c[v>>2]=c[T>>2];W=c[v>>2]|0;l=u;return W|0;}c[U>>2]=Xh(c[M>>2]|0,(c[N>>2]|0)-(c[M>>2]|0)|0,Q,c[C>>2]|0,c[S>>2]|0)|0;if(Zg(c[U>>2]|0)|0){c[v>>2]=c[U>>2];W=c[v>>2]|0;l=u;return W|0;}c[V>>2]=Uh(c[y>>2]|0,Q,c[C>>2]|0,c[S>>2]|0,c[K>>2]|0,c[L>>2]|0)|0;if(wj(c[V>>2]|0)|0){c[v>>2]=c[V>>2];W=c[v>>2]|0;l=u;return W|0;}else{c[v>>2]=c[U>>2];W=c[v>>2]|0;l=u;return W|0;}break;}default:{c[v>>2]=-1;W=c[v>>2]|0;l=u;return W|0;}}return 0;}function Mn(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;g=l;l=l+32|0;h=g+24|0;i=g+20|0;j=g+16|0;k=g+12|0;m=g+8|0;n=g+4|0;o=g;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=c[i>>2];c[o>>2]=1+((c[m>>2]|0)>>>0>31&1)+((c[m>>2]|0)>>>0>4095&1);if(((c[m>>2]|0)+(c[o>>2]|0)|0)>>>0>(c[j>>2]|0)>>>0){c[h>>2]=-70;p=c[h>>2]|0;l=g;return p|0;}switch(c[o>>2]|0){case 1:{a[c[n>>2]>>0]=0+(c[m>>2]<<3);break;}case 2:{xl(c[n>>2]|0,4+(c[m>>2]<<4)&65535);break;}case 3:{Pl(c[n>>2]|0,12+(c[m>>2]<<4)|0);break;}default:{}}mE((c[n>>2]|0)+(c[o>>2]|0)|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[m>>2]|0)+(c[o>>2]|0);p=c[h>>2]|0;l=g;return p|0;}function Nn(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0;g=l;l=l+32|0;h=g+20|0;i=g+12|0;j=g+8|0;k=g+4|0;m=g;c[h>>2]=b;c[g+16>>2]=d;c[i>>2]=e;c[j>>2]=f;c[k>>2]=c[h>>2];c[m>>2]=1+((c[j>>2]|0)>>>0>31&1)+((c[j>>2]|0)>>>0>4095&1);switch(c[m>>2]|0){case 1:{a[c[k>>2]>>0]=1+(c[j>>2]<<3);break;}case 2:{xl(c[k>>2]|0,5+(c[j>>2]<<4)&65535);break;}case 3:{Pl(c[k>>2]|0,13+(c[j>>2]<<4)|0);break;}default:{}}a[(c[k>>2]|0)+(c[m>>2]|0)>>0]=a[c[i>>2]>>0]|0;l=g;return(c[m>>2]|0)+1|0;}function On(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=b;c[f>>2]=(c[e>>2]|0)-(c[a+4>>2]|0);l=d;return(c[f>>2]|0)>>>0>2684354560|0;}function Pn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+32|0;g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f+12|0;m=f+8|0;n=f+4|0;o=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=(1<<c[h>>2])-1;c[m>>2]=(c[j>>2]|0)-(c[(c[g>>2]|0)+4>>2]|0);c[n>>2]=(c[m>>2]&c[k>>2])+(c[i>>2]|0);c[o>>2]=(c[m>>2]|0)-(c[n>>2]|0);n=(c[g>>2]|0)+4|0;c[n>>2]=(c[n>>2]|0)+(c[o>>2]|0);n=(c[g>>2]|0)+8|0;c[n>>2]=(c[n>>2]|0)+(c[o>>2]|0);n=(c[g>>2]|0)+16|0;c[n>>2]=(c[n>>2]|0)-(c[o>>2]|0);n=(c[g>>2]|0)+12|0;c[n>>2]=(c[n>>2]|0)-(c[o>>2]|0);l=f;return c[o>>2]|0;}function Qn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=0;while(1){if((c[i>>2]|0)>>>0>=(c[g>>2]|0)>>>0)break;if((c[(c[f>>2]|0)+(c[i>>2]<<3)>>2]|0)>>>0<(c[h>>2]|0)>>>0)c[(c[f>>2]|0)+(c[i>>2]<<3)>>2]=0;else{d=(c[f>>2]|0)+(c[i>>2]<<3)|0;c[d>>2]=(c[d>>2]|0)-(c[h>>2]|0);}c[i>>2]=(c[i>>2]|0)+1;}l=e;return;}function Rn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+32|0;g=f+24|0;h=f+20|0;i=f+16|0;j=f+12|0;k=f+8|0;m=f+4|0;n=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=(c[h>>2]|0)-(c[(c[g>>2]|0)+4>>2]|0);if(c[j>>2]|0)o=c[c[j>>2]>>2]|0;else o=0;c[m>>2]=o;if((c[k>>2]|0)>>>0<=((c[i>>2]|0)+(c[m>>2]|0)|0)>>>0){l=f;return;}c[n>>2]=(c[k>>2]|0)-(c[i>>2]|0);if((c[(c[g>>2]|0)+16>>2]|0)>>>0<(c[n>>2]|0)>>>0)c[(c[g>>2]|0)+16>>2]=c[n>>2];if((c[(c[g>>2]|0)+12>>2]|0)>>>0<(c[(c[g>>2]|0)+16>>2]|0)>>>0)c[(c[g>>2]|0)+12>>2]=c[(c[g>>2]|0)+16>>2];if(!(c[j>>2]|0)){l=f;return;}c[c[j>>2]>>2]=0;l=f;return;}function Sn(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0;h=l;l=l+224|0;i=h+200|0;j=h+192|0;k=h+188|0;m=h+184|0;n=h+180|0;o=h+176|0;p=h+172|0;q=h+168|0;r=h+164|0;s=h+8|0;t=h+160|0;u=h+156|0;v=h+152|0;w=h+148|0;x=h+144|0;z=h+140|0;A=h+136|0;B=h+132|0;C=h+128|0;D=h+124|0;E=h+120|0;F=h+116|0;G=h+112|0;H=h+108|0;I=h+104|0;J=h+100|0;K=h+96|0;L=h;M=h+92|0;N=h+88|0;O=h+84|0;P=h+80|0;Q=h+76|0;R=h+72|0;S=h+68|0;T=h+64|0;U=h+60|0;V=h+56|0;W=h+52|0;X=h+48|0;Y=h+44|0;Z=h+40|0;_=h+36|0;$=h+32|0;aa=h+28|0;ba=h+24|0;ca=h+20|0;da=h+16|0;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;g=c[k>>2]|0;c[i>>2]=c[g>>2];c[i+4>>2]=c[g+4>>2];c[i+8>>2]=c[g+8>>2];c[i+12>>2]=c[g+12>>2];c[i+16>>2]=c[g+16>>2];c[q>>2]=Tn(i)|0;c[r>>2]=c[(c[n>>2]|0)+12>>2];g=(c[k>>2]|0)+32|0;f=c[g+4>>2]|0;e=s;c[e>>2]=c[g>>2];c[e+4>>2]=f;c[t>>2]=(c[(c[n>>2]|0)+4>>2]|0)-(c[(c[n>>2]|0)+8>>2]|0);c[u>>2]=1<<c[(c[n>>2]|0)+8>>2];c[v>>2]=c[(c[n>>2]|0)+16>>2];c[w>>2]=(1<<c[(c[n>>2]|0)+16>>2])-1;c[x>>2]=c[(c[k>>2]|0)+12>>2];if(c[q>>2]|0)ea=c[(c[k>>2]|0)+16>>2]|0;else ea=c[x>>2]|0;c[z>>2]=ea;c[A>>2]=c[(c[k>>2]|0)+4>>2];if(c[q>>2]|0)fa=c[(c[k>>2]|0)+8>>2]|0;else fa=0;c[B>>2]=fa;c[C>>2]=c[q>>2]|0?(c[B>>2]|0)+(c[z>>2]|0)|0:0;c[D>>2]=c[q>>2]|0?(c[B>>2]|0)+(c[x>>2]|0)|0:0;c[E>>2]=(c[A>>2]|0)+(c[x>>2]|0);c[F>>2]=c[o>>2];c[G>>2]=(c[F>>2]|0)+(c[p>>2]|0);c[H>>2]=(c[G>>2]|0)+(0-((c[r>>2]|0)>>>0>8?c[r>>2]|0:8));c[I>>2]=c[F>>2];c[J>>2]=c[F>>2];c[K>>2]=0;p=L;c[p>>2]=0;c[p+4>>2]=0;while(1){if((c[J>>2]|0)>>>0>(c[H>>2]|0)>>>0){ga=32;break;}c[N>>2]=(c[J>>2]|0)-(c[A>>2]|0);c[O>>2]=0;c[P>>2]=0;c[Q>>2]=0;if((c[J>>2]|0)!=(c[F>>2]|0)){p=L;o=s;fa=Un(c[p>>2]|0,c[p+4>>2]|0,a[c[K>>2]>>0]|0,a[(c[K>>2]|0)+(c[r>>2]|0)>>0]|0,c[o>>2]|0,c[o+4>>2]|0)|0;o=L;c[o>>2]=fa;c[o+4>>2]=y;}else{o=Vn(c[J>>2]|0,c[r>>2]|0)|0;fa=L;c[fa>>2]=o;c[fa+4>>2]=y;}c[K>>2]=c[J>>2];fa=L;o=Wn(c[fa>>2]|0,c[fa+4>>2]|0,c[t>>2]|0,c[v>>2]|0)|0;if((o|0)!=(c[w>>2]|0)){c[J>>2]=(c[J>>2]|0)+1;continue;}o=c[k>>2]|0;fa=L;p=Xn(c[fa>>2]|0,c[fa+4>>2]|0,c[t>>2]|0)|0;fa=c[n>>2]|0;c[i>>2]=c[fa>>2];c[i+4>>2]=c[fa+4>>2];c[i+8>>2]=c[fa+8>>2];c[i+12>>2]=c[fa+12>>2];c[i+16>>2]=c[fa+16>>2];c[i+20>>2]=c[fa+20>>2];c[R>>2]=Yn(o,p,i)|0;c[T>>2]=0;p=L;c[U>>2]=Zn(c[p>>2]|0,c[p+4>>2]|0,c[t>>2]|0)|0;c[S>>2]=c[R>>2];while(1){if((c[S>>2]|0)>>>0>=((c[R>>2]|0)+(c[u>>2]<<3)|0)>>>0)break;do{if((c[(c[S>>2]|0)+4>>2]|0)==(c[U>>2]|0)?(c[c[S>>2]>>2]|0)>>>0>(c[z>>2]|0)>>>0:0){if(c[q>>2]|0){c[Y>>2]=(c[c[S>>2]>>2]|0)>>>0<(c[x>>2]|0)>>>0?c[B>>2]|0:c[A>>2]|0;c[Z>>2]=(c[Y>>2]|0)+(c[c[S>>2]>>2]|0);c[_>>2]=(c[c[S>>2]>>2]|0)>>>0<(c[x>>2]|0)>>>0?c[D>>2]|0:c[G>>2]|0;c[$>>2]=(c[c[S>>2]>>2]|0)>>>0<(c[x>>2]|0)>>>0?c[C>>2]|0:c[E>>2]|0;c[V>>2]=_n(c[J>>2]|0,c[Z>>2]|0,c[G>>2]|0,c[_>>2]|0,c[E>>2]|0)|0;if((c[V>>2]|0)>>>0<(c[r>>2]|0)>>>0)break;c[W>>2]=$n(c[J>>2]|0,c[I>>2]|0,c[Z>>2]|0,c[$>>2]|0)|0;c[X>>2]=(c[V>>2]|0)+(c[W>>2]|0);}else{c[aa>>2]=(c[A>>2]|0)+(c[c[S>>2]>>2]|0);c[V>>2]=ao(c[J>>2]|0,c[aa>>2]|0,c[G>>2]|0)|0;if((c[V>>2]|0)>>>0<(c[r>>2]|0)>>>0)break;c[W>>2]=$n(c[J>>2]|0,c[I>>2]|0,c[aa>>2]|0,c[E>>2]|0)|0;c[X>>2]=(c[V>>2]|0)+(c[W>>2]|0);}if((c[X>>2]|0)>>>0>(c[T>>2]|0)>>>0){c[T>>2]=c[X>>2];c[O>>2]=c[V>>2];c[P>>2]=c[W>>2];c[Q>>2]=c[S>>2];}}}while(0);c[S>>2]=(c[S>>2]|0)+8;}if(!(c[Q>>2]|0)){p=c[k>>2]|0;o=L;fa=c[o>>2]|0;ea=c[o+4>>2]|0;o=c[t>>2]|0;f=c[N>>2]|0;e=c[n>>2]|0;c[i>>2]=c[e>>2];c[i+4>>2]=c[e+4>>2];c[i+8>>2]=c[e+8>>2];c[i+12>>2]=c[e+12>>2];c[i+16>>2]=c[e+16>>2];c[i+20>>2]=c[e+20>>2];bo(p,fa,ea,o,f,i);c[J>>2]=(c[J>>2]|0)+1;continue;}c[M>>2]=(c[O>>2]|0)+(c[P>>2]|0);c[J>>2]=(c[J>>2]|0)+(0-(c[P>>2]|0));c[ba>>2]=c[c[Q>>2]>>2];c[ca>>2]=(c[N>>2]|0)-(c[ba>>2]|0);c[da>>2]=(c[c[m>>2]>>2]|0)+((c[(c[m>>2]|0)+8>>2]|0)*12|0);if((c[(c[m>>2]|0)+8>>2]|0)==(c[(c[m>>2]|0)+12>>2]|0)){ga=28;break;}c[(c[da>>2]|0)+4>>2]=(c[J>>2]|0)-(c[I>>2]|0);c[(c[da>>2]|0)+8>>2]=c[M>>2];c[c[da>>2]>>2]=c[ca>>2];f=(c[m>>2]|0)+8|0;c[f>>2]=(c[f>>2]|0)+1;f=c[k>>2]|0;o=L;ea=c[o>>2]|0;fa=c[o+4>>2]|0;o=c[t>>2]|0;p=(c[K>>2]|0)-(c[A>>2]|0)|0;e=c[n>>2]|0;c[i>>2]=c[e>>2];c[i+4>>2]=c[e+4>>2];c[i+8>>2]=c[e+8>>2];c[i+12>>2]=c[e+12>>2];c[i+16>>2]=c[e+16>>2];c[i+20>>2]=c[e+20>>2];bo(f,ea,fa,o,p,i);if(((c[J>>2]|0)+(c[M>>2]|0)|0)>>>0<=(c[H>>2]|0)>>>0){p=c[k>>2]|0;o=L;fa=c[o>>2]|0;ea=c[o+4>>2]|0;o=c[K>>2]|0;f=(c[J>>2]|0)+(c[M>>2]|0)|0;e=c[A>>2]|0;g=c[t>>2]|0;d=c[n>>2]|0;c[i>>2]=c[d>>2];c[i+4>>2]=c[d+4>>2];c[i+8>>2]=c[d+8>>2];c[i+12>>2]=c[d+12>>2];c[i+16>>2]=c[d+16>>2];c[i+20>>2]=c[d+20>>2];d=co(p,fa,ea,o,f,e,g,i)|0;g=L;c[g>>2]=d;c[g+4>>2]=y;c[K>>2]=(c[J>>2]|0)+(c[M>>2]|0)+-1;}c[J>>2]=(c[J>>2]|0)+(c[M>>2]|0);c[I>>2]=c[J>>2];}if((ga|0)==28){c[j>>2]=-70;ha=c[j>>2]|0;l=h;return ha|0;}else if((ga|0)==32){c[j>>2]=(c[G>>2]|0)-(c[I>>2]|0);ha=c[j>>2]|0;l=h;return ha|0;}return 0;}function Tn(a){a=a|0;return(c[a+16>>2]|0)>>>0<(c[a+12>>2]|0)>>>0|0;}function Un(b,e,f,g,h,i){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0;j=l;l=l+32|0;k=j+8|0;m=j+17|0;n=j+16|0;o=j;p=k;c[p>>2]=b;c[p+4>>2]=e;a[m>>0]=f;a[n>>0]=g;g=o;c[g>>2]=h;c[g+4>>2]=i;i=(d[m>>0]|0)+10|0;m=o;o=cE(i|0,((i|0)<0)<<31>>31|0,c[m>>2]|0,c[m+4>>2]|0)|0;m=k;i=eE(c[m>>2]|0,c[m+4>>2]|0,o|0,y|0)|0;o=k;c[o>>2]=i;c[o+4>>2]=y;o=k;i=cE(c[o>>2]|0,c[o+4>>2]|0,-1213897629,-820265764)|0;o=k;c[o>>2]=i;c[o+4>>2]=y;o=(d[n>>0]|0)+10|0;n=k;i=dE(c[n>>2]|0,c[n+4>>2]|0,o|0,((o|0)<0)<<31>>31|0)|0;o=k;c[o>>2]=i;c[o+4>>2]=y;o=k;y=c[o+4>>2]|0;l=j;return c[o>>2]|0;}function Vn(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;e=l;l=l+32|0;f=e+16|0;g=e+12|0;h=e;i=e+8|0;c[f>>2]=a;c[g>>2]=b;b=h;c[b>>2]=0;c[b+4>>2]=0;c[i>>2]=0;while(1){b=h;j=c[b>>2]|0;k=c[b+4>>2]|0;if((c[i>>2]|0)>>>0>=(c[g>>2]|0)>>>0)break;b=cE(j|0,k|0,-1213897629,-820265764)|0;a=h;c[a>>2]=b;c[a+4>>2]=y;a=(d[(c[f>>2]|0)+(c[i>>2]|0)>>0]|0)+10|0;b=h;m=dE(c[b>>2]|0,c[b+4>>2]|0,a|0,((a|0)<0)<<31>>31|0)|0;a=h;c[a>>2]=m;c[a+4>>2]=y;c[i>>2]=(c[i>>2]|0)+1;}y=k;l=e;return j|0;}function Wn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+16|0;h=f;i=f+12|0;j=f+8|0;k=h;c[k>>2]=a;c[k+4>>2]=b;c[i>>2]=d;c[j>>2]=e;e=h;h=c[e>>2]|0;d=c[e+4>>2]|0;if((32-(c[i>>2]|0)|0)>>>0<(c[j>>2]|0)>>>0){c[g>>2]=h&(1<<c[j>>2])-1;m=c[g>>2]|0;l=f;return m|0;}else{e=iE(h|0,d|0,32-(c[i>>2]|0)-(c[j>>2]|0)|0)|0;c[g>>2]=e&(1<<c[j>>2])-1;m=c[g>>2]|0;l=f;return m|0;}return 0;}function Xn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;if(!(c[g>>2]|0)){i=0;l=e;return i|0;}d=f;f=iE(c[d>>2]|0,c[d+4>>2]|0,64-(c[g>>2]|0)|0)|0;i=f;l=e;return i|0;}function Yn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=a;c[g>>2]=b;l=e;return(c[(c[f>>2]|0)+20>>2]|0)+(c[g>>2]<<c[d+8>>2]<<3)|0;}function Zn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;d=f;f=iE(c[d>>2]|0,c[d+4>>2]|0,32-(c[g>>2]|0)|0)|0;l=e;return f|0;}function _n(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;g=l;l=l+32|0;h=g+28|0;i=g+24|0;j=g+20|0;k=g+16|0;m=g+12|0;n=g+8|0;o=g+4|0;p=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;if(((c[i>>2]|0)+((c[m>>2]|0)-(c[j>>2]|0))|0)>>>0<(c[k>>2]|0)>>>0)q=(c[i>>2]|0)+((c[m>>2]|0)-(c[j>>2]|0))|0;else q=c[k>>2]|0;c[o>>2]=q;c[p>>2]=ao(c[i>>2]|0,c[j>>2]|0,c[o>>2]|0)|0;o=c[p>>2]|0;if(((c[j>>2]|0)+(c[p>>2]|0)|0)!=(c[m>>2]|0)){c[h>>2]=o;r=c[h>>2]|0;l=g;return r|0;}else{c[h>>2]=o+(ao((c[i>>2]|0)+(c[p>>2]|0)|0,c[n>>2]|0,c[k>>2]|0)|0);r=c[h>>2]|0;l=g;return r|0;}return 0;}function $n(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0;g=l;l=l+32|0;h=g+16|0;i=g+12|0;j=g+8|0;k=g+4|0;m=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=0;while(1){if((c[h>>2]|0)>>>0<=(c[i>>2]|0)>>>0){n=6;break;}if((c[j>>2]|0)>>>0<=(c[k>>2]|0)>>>0){n=6;break;}if((d[(c[h>>2]|0)+-1>>0]|0|0)!=(d[(c[j>>2]|0)+-1>>0]|0|0)){n=6;break;}c[h>>2]=(c[h>>2]|0)+-1;c[j>>2]=(c[j>>2]|0)+-1;c[m>>2]=(c[m>>2]|0)+1;}if((n|0)==6){l=g;return c[m>>2]|0;}return 0;}function ao(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;f=l;l=l+32|0;g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f+12|0;m=f+8|0;n=f+4|0;o=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=e;c[k>>2]=c[h>>2];c[m>>2]=(c[j>>2]|0)+-3;a:do{if((c[h>>2]|0)>>>0<(c[m>>2]|0)>>>0){e=fo(c[i>>2]|0)|0;c[n>>2]=e^(fo(c[h>>2]|0)|0);if(c[n>>2]|0){c[g>>2]=go(c[n>>2]|0)|0;p=c[g>>2]|0;l=f;return p|0;}c[h>>2]=(c[h>>2]|0)+4;c[i>>2]=(c[i>>2]|0)+4;while(1){if((c[h>>2]|0)>>>0>=(c[m>>2]|0)>>>0)break a;e=fo(c[i>>2]|0)|0;c[o>>2]=e^(fo(c[h>>2]|0)|0);if(c[o>>2]|0)break;c[h>>2]=(c[h>>2]|0)+4;c[i>>2]=(c[i>>2]|0)+4;}e=go(c[o>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+e;c[g>>2]=(c[h>>2]|0)-(c[k>>2]|0);p=c[g>>2]|0;l=f;return p|0;}}while(0);if((ho()|0?(c[h>>2]|0)>>>0<((c[j>>2]|0)+-3|0)>>>0:0)?(o=io(c[i>>2]|0)|0,(o|0)==(io(c[h>>2]|0)|0)):0){c[h>>2]=(c[h>>2]|0)+4;c[i>>2]=(c[i>>2]|0)+4;}if((c[h>>2]|0)>>>0<((c[j>>2]|0)+-1|0)>>>0?(o=(jo(c[i>>2]|0)|0)&65535,(o|0)==((jo(c[h>>2]|0)|0)&65535|0)):0){c[h>>2]=(c[h>>2]|0)+2;c[i>>2]=(c[i>>2]|0)+2;}if((c[h>>2]|0)>>>0<(c[j>>2]|0)>>>0?(d[c[i>>2]>>0]|0|0)==(d[c[h>>2]>>0]|0|0):0)c[h>>2]=(c[h>>2]|0)+1;c[g>>2]=(c[h>>2]|0)-(c[k>>2]|0);p=c[g>>2]|0;l=f;return p|0;}function bo(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=l;l=l+80|0;i=h+56|0;j=h+48|0;k=h+40|0;m=h;n=h+36|0;o=h+32|0;p=h+28|0;q=h+24|0;r=h+20|0;s=h+16|0;t=h+8|0;c[k>>2]=a;a=m;c[a>>2]=b;c[a+4>>2]=d;c[n>>2]=e;c[o>>2]=f;f=m;c[p>>2]=Wn(c[f>>2]|0,c[f+4>>2]|0,c[n>>2]|0,c[g+16>>2]|0)|0;c[q>>2]=(1<<c[g+16>>2])-1;if((c[p>>2]|0)!=(c[q>>2]|0)){l=h;return;}q=m;c[r>>2]=Xn(c[q>>2]|0,c[q+4>>2]|0,c[n>>2]|0)|0;q=m;c[s>>2]=Zn(c[q>>2]|0,c[q+4>>2]|0,c[n>>2]|0)|0;c[t>>2]=c[o>>2];c[t+4>>2]=c[s>>2];s=c[k>>2]|0;k=c[r>>2]|0;c[j>>2]=c[t>>2];c[j+4>>2]=c[t+4>>2];c[i>>2]=c[g>>2];c[i+4>>2]=c[g+4>>2];c[i+8>>2]=c[g+8>>2];c[i+12>>2]=c[g+12>>2];c[i+16>>2]=c[g+16>>2];c[i+20>>2]=c[g+20>>2];eo(s,k,j,i);l=h;return;}function co(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;k=l;l=l+64|0;m=k+40|0;n=k+36|0;o=k+8|0;p=k+32|0;q=k+28|0;r=k+24|0;s=k+20|0;t=k;u=k+16|0;c[n>>2]=b;b=o;c[b>>2]=d;c[b+4>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;i=o;o=c[i+4>>2]|0;h=t;c[h>>2]=c[i>>2];c[h+4>>2]=o;c[u>>2]=(c[p>>2]|0)+1;while(1){p=t;v=c[p>>2]|0;w=c[p+4>>2]|0;if((c[u>>2]|0)>>>0>=(c[q>>2]|0)>>>0)break;p=(c[n>>2]|0)+32|0;o=Un(v,w,a[(c[u>>2]|0)+-1>>0]|0,a[(c[u>>2]|0)+((c[j+12>>2]|0)-1)>>0]|0,c[p>>2]|0,c[p+4>>2]|0)|0;p=t;c[p>>2]=o;c[p+4>>2]=y;p=c[n>>2]|0;o=t;h=c[o>>2]|0;i=c[o+4>>2]|0;o=c[s>>2]|0;g=(c[u>>2]|0)-(c[r>>2]|0)|0;c[m>>2]=c[j>>2];c[m+4>>2]=c[j+4>>2];c[m+8>>2]=c[j+8>>2];c[m+12>>2]=c[j+12>>2];c[m+16>>2]=c[j+16>>2];c[m+20>>2]=c[j+20>>2];bo(p,h,i,o,g,m);c[u>>2]=(c[u>>2]|0)+1;}y=w;l=k;return v|0;}function eo(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0;h=l;l=l+48|0;i=h+16|0;j=h+8|0;k=h+4|0;m=h;c[j>>2]=b;c[k>>2]=e;c[m>>2]=c[(c[j>>2]|0)+24>>2];e=c[j>>2]|0;j=c[k>>2]|0;c[i>>2]=c[g>>2];c[i+4>>2]=c[g+4>>2];c[i+8>>2]=c[g+8>>2];c[i+12>>2]=c[g+12>>2];c[i+16>>2]=c[g+16>>2];c[i+20>>2]=c[g+20>>2];b=Yn(e,j,i)|0;i=b+((d[(c[m>>2]|0)+(c[k>>2]|0)>>0]|0)<<3)|0;c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];f=(c[m>>2]|0)+(c[k>>2]|0)|0;a[f>>0]=(a[f>>0]|0)+1<<24>>24;f=(c[m>>2]|0)+(c[k>>2]|0)|0;a[f>>0]=(d[f>>0]|0)&(1<<c[g+8>>2])-1;l=h;return;}function fo(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0;}function go(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(ko()|0)!=0;f=(ho()|0)!=0;g=c[e>>2]|0;do{if(a){if(f){e=ob(g|0,0,0)|0;c[d>>2]=e>>3;break;}else{c[d>>2]=(fE(g|0)|0)>>3;break;}}else if(f){e=lE(g|0,0,0)|0;c[d>>2]=e>>3;break;}else{c[d>>2]=(Q(g|0)|0)>>3;break;}}while(0);l=b;return c[d>>2]|0;}function ho(){return 0;}function io(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0;}function jo(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|0;}function ko(){return d[11936]|0|0;}function lo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+32|0;g=f+20|0;h=f+16|0;i=f+12|0;j=f;c[g>>2]=b;c[h>>2]=d;c[i>>2]=e;e=(c[c[g>>2]>>2]|0)+((c[(c[g>>2]|0)+4>>2]|0)*12|0)|0;c[j>>2]=c[e>>2];c[j+4>>2]=c[e+4>>2];c[j+8>>2]=c[e+8>>2];if((c[h>>2]|0)>>>0>=((c[j+4>>2]|0)+(c[j+8>>2]|0)|0)>>>0){e=(c[g>>2]|0)+4|0;c[e>>2]=(c[e>>2]|0)+1;c[a>>2]=c[j>>2];c[a+4>>2]=c[j+4>>2];c[a+8>>2]=c[j+8>>2];l=f;return;}if((c[h>>2]|0)>>>0>(c[j+4>>2]|0)>>>0){if((c[h>>2]|0)>>>0<((c[j+4>>2]|0)+(c[j+8>>2]|0)|0)>>>0?(c[j+8>>2]=(c[h>>2]|0)-(c[j+4>>2]|0),(c[j+8>>2]|0)>>>0<(c[i>>2]|0)>>>0):0)c[j>>2]=0;}else c[j>>2]=0;An(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0);c[a>>2]=c[j>>2];c[a+4>>2]=c[j+4>>2];c[a+8>>2]=c[j+8>>2];l=f;return;}function mo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=(c[f>>2]|0)-(c[(c[e>>2]|0)+4>>2]|0);if((c[g>>2]|0)>>>0<=((c[(c[e>>2]|0)+24>>2]|0)+1024|0)>>>0){l=d;return;}if(512<((c[g>>2]|0)-(c[(c[e>>2]|0)+24>>2]|0)-1024|0)>>>0)h=512;else h=(c[g>>2]|0)-(c[(c[e>>2]|0)+24>>2]|0)-1024|0;c[(c[e>>2]|0)+24>>2]=(c[g>>2]|0)-h;l=d;return;}function no(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[h>>2];switch(c[(c[g>>2]|0)+24>>2]|0){case 1:{Nj(c[f>>2]|0,c[g>>2]|0,c[i>>2]|0);c[(c[f>>2]|0)+24>>2]=(c[i>>2]|0)-(c[(c[f>>2]|0)+4>>2]|0);l=e;return 0;}case 2:{Oj(c[f>>2]|0,c[g>>2]|0,c[i>>2]|0);c[(c[f>>2]|0)+24>>2]=(c[i>>2]|0)-(c[(c[f>>2]|0)+4>>2]|0);l=e;return 0;}default:{l=e;return 0;}}return 0;}function oo(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;h=l;l=l+32|0;i=h+16|0;j=h+12|0;k=h+8|0;m=h+4|0;n=h;c[i>>2]=a;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=g;po(c[(c[i>>2]|0)+12>>2]|0,c[k>>2]|0,c[j>>2]|0);k=(c[i>>2]|0)+12|0;c[k>>2]=(c[k>>2]|0)+(c[j>>2]|0);if((c[j>>2]|0)>>>0>65535){c[(c[i>>2]|0)+28>>2]=1;c[(c[i>>2]|0)+32>>2]=((c[(c[i>>2]|0)+4>>2]|0)-(c[c[i>>2]>>2]|0)|0)/8|0;}b[(c[(c[i>>2]|0)+4>>2]|0)+4>>1]=c[j>>2];c[c[(c[i>>2]|0)+4>>2]>>2]=(c[m>>2]|0)+1;if((c[n>>2]|0)>>>0<=65535){o=c[n>>2]|0;p=o&65535;q=c[i>>2]|0;r=q+4|0;s=c[r>>2]|0;t=s+6|0;b[t>>1]=p;u=c[i>>2]|0;v=u+4|0;w=c[v>>2]|0;x=w+8|0;c[v>>2]=x;l=h;return;}c[(c[i>>2]|0)+28>>2]=2;c[(c[i>>2]|0)+32>>2]=((c[(c[i>>2]|0)+4>>2]|0)-(c[c[i>>2]>>2]|0)|0)/8|0;o=c[n>>2]|0;p=o&65535;q=c[i>>2]|0;r=q+4|0;s=c[r>>2]|0;t=s+6|0;b[t>>1]=p;u=c[i>>2]|0;v=u+4|0;w=c[v>>2]|0;x=w+8|0;c[v>>2]=x;l=h;return;}function po(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[g>>2];c[j>>2]=c[f>>2];c[k>>2]=(c[j>>2]|0)+(c[h>>2]|0);do{qo(c[j>>2]|0,c[i>>2]|0);c[j>>2]=(c[j>>2]|0)+8;c[i>>2]=(c[i>>2]|0)+8;}while((c[j>>2]|0)>>>0<(c[k>>2]|0)>>>0);l=e;return;}function qo(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[f>>2]|0;f=c[g>>2]|0;a[d>>0]=a[f>>0]|0;a[d+1>>0]=a[f+1>>0]|0;a[d+2>>0]=a[f+2>>0]|0;a[d+3>>0]=a[f+3>>0]|0;a[d+4>>0]=a[f+4>>0]|0;a[d+5>>0]=a[f+5>>0]|0;a[d+6>>0]=a[f+6>>0]|0;a[d+7>>0]=a[f+7>>0]|0;l=e;return;}function ro(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=b;c[f>>2]=(c[e>>2]|0)-(c[a+4>>2]|0);l=d;return(c[f>>2]|0)>>>0>2684354560|0;}function so(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+32|0;g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f+12|0;m=f+8|0;n=f+4|0;o=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=(1<<c[h>>2])-1;c[m>>2]=(c[j>>2]|0)-(c[(c[g>>2]|0)+4>>2]|0);c[n>>2]=(c[m>>2]&c[k>>2])+(c[i>>2]|0);c[o>>2]=(c[m>>2]|0)-(c[n>>2]|0);n=(c[g>>2]|0)+4|0;c[n>>2]=(c[n>>2]|0)+(c[o>>2]|0);n=(c[g>>2]|0)+8|0;c[n>>2]=(c[n>>2]|0)+(c[o>>2]|0);n=(c[g>>2]|0)+16|0;c[n>>2]=(c[n>>2]|0)-(c[o>>2]|0);n=(c[g>>2]|0)+12|0;c[n>>2]=(c[n>>2]|0)-(c[o>>2]|0);l=f;return c[o>>2]|0;}function to(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=l;l=l+32|0;e=d+20|0;f=d+16|0;g=d+12|0;h=d+8|0;i=d+4|0;j=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=(c[e>>2]|0)+472+8;c[h>>2]=1<<c[(c[e>>2]|0)+116+4+8>>2];vo(c[(c[g>>2]|0)+36>>2]|0,c[h>>2]|0,c[f>>2]|0);do{if((c[(c[e>>2]|0)+116+4+24>>2]|0)!=1){c[i>>2]=1<<c[(c[e>>2]|0)+116+4+4>>2];h=c[(c[g>>2]|0)+44>>2]|0;b=c[i>>2]|0;a=c[f>>2]|0;if((c[(c[e>>2]|0)+116+4+24>>2]|0)==6){wo(h,b,a);break;}else{vo(h,b,a);break;}}}while(0);if(!(c[(c[g>>2]|0)+32>>2]|0)){l=d;return;}c[j>>2]=1<<c[(c[g>>2]|0)+32>>2];vo(c[(c[g>>2]|0)+40>>2]|0,c[j>>2]|0,c[f>>2]|0);l=d;return;}function uo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+32|0;g=f+24|0;h=f+20|0;i=f+16|0;j=f+12|0;k=f+8|0;m=f+4|0;n=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=(c[h>>2]|0)-(c[(c[g>>2]|0)+4>>2]|0);if(c[j>>2]|0)o=c[c[j>>2]>>2]|0;else o=0;c[m>>2]=o;if((c[k>>2]|0)>>>0<=((c[i>>2]|0)+(c[m>>2]|0)|0)>>>0){l=f;return;}c[n>>2]=(c[k>>2]|0)-(c[i>>2]|0);if((c[(c[g>>2]|0)+16>>2]|0)>>>0<(c[n>>2]|0)>>>0)c[(c[g>>2]|0)+16>>2]=c[n>>2];if((c[(c[g>>2]|0)+12>>2]|0)>>>0<(c[(c[g>>2]|0)+16>>2]|0)>>>0)c[(c[g>>2]|0)+12>>2]=c[(c[g>>2]|0)+16>>2];if(!(c[j>>2]|0)){l=f;return;}c[c[j>>2]>>2]=0;l=f;return;}function vo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;e=l;l=l+48|0;f=e+44|0;g=e+40|0;h=e+36|0;i=e+32|0;j=e+28|0;k=e+24|0;m=e+20|0;n=e+16|0;o=e+12|0;p=e+8|0;q=e+4|0;r=e;c[p>>2]=a;c[q>>2]=b;c[r>>2]=d;d=c[q>>2]|0;q=c[r>>2]|0;c[f>>2]=c[p>>2];c[g>>2]=d;c[h>>2]=q;c[i>>2]=0;c[j>>2]=(c[g>>2]|0)/16|0;c[k>>2]=0;c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[j>>2]|0))break;c[n>>2]=0;while(1){if((c[n>>2]|0)>=16)break;if(c[i>>2]|0){c[o>>2]=(c[(c[f>>2]|0)+(c[k>>2]<<2)>>2]|0)==1?c[h>>2]|0:0;g=(c[f>>2]|0)+(c[k>>2]<<2)|0;c[g>>2]=(c[g>>2]|0)+(c[o>>2]|0);}if((c[(c[f>>2]|0)+(c[k>>2]<<2)>>2]|0)>>>0<(c[h>>2]|0)>>>0)c[(c[f>>2]|0)+(c[k>>2]<<2)>>2]=0;else{g=(c[f>>2]|0)+(c[k>>2]<<2)|0;c[g>>2]=(c[g>>2]|0)-(c[h>>2]|0);}c[k>>2]=(c[k>>2]|0)+1;c[n>>2]=(c[n>>2]|0)+1;}c[m>>2]=(c[m>>2]|0)+1;}l=e;return;}function wo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;e=l;l=l+48|0;f=e+44|0;g=e+40|0;h=e+36|0;i=e+32|0;j=e+28|0;k=e+24|0;m=e+20|0;n=e+16|0;o=e+12|0;p=e+8|0;q=e+4|0;r=e;c[p>>2]=a;c[q>>2]=b;c[r>>2]=d;d=c[q>>2]|0;q=c[r>>2]|0;c[f>>2]=c[p>>2];c[g>>2]=d;c[h>>2]=q;c[i>>2]=1;c[j>>2]=(c[g>>2]|0)/16|0;c[k>>2]=0;c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[j>>2]|0))break;c[n>>2]=0;while(1){if((c[n>>2]|0)>=16)break;if(c[i>>2]|0){c[o>>2]=(c[(c[f>>2]|0)+(c[k>>2]<<2)>>2]|0)==1?c[h>>2]|0:0;g=(c[f>>2]|0)+(c[k>>2]<<2)|0;c[g>>2]=(c[g>>2]|0)+(c[o>>2]|0);}if((c[(c[f>>2]|0)+(c[k>>2]<<2)>>2]|0)>>>0<(c[h>>2]|0)>>>0)c[(c[f>>2]|0)+(c[k>>2]<<2)>>2]=0;else{g=(c[f>>2]|0)+(c[k>>2]<<2)|0;c[g>>2]=(c[g>>2]|0)-(c[h>>2]|0);}c[k>>2]=(c[k>>2]|0)+1;c[n>>2]=(c[n>>2]|0)+1;}c[m>>2]=(c[m>>2]|0)+1;}l=e;return;}function xo(a,b,d,e,f,g,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;k=l;l=l+160|0;m=k+48|0;n=k+40|0;o=k+36|0;p=k+32|0;q=k+28|0;r=k+24|0;s=k+20|0;t=k;u=k+16|0;v=k+12|0;w=k+8|0;c[o>>2]=a;c[p>>2]=b;c[q>>2]=d;c[r>>2]=e;c[s>>2]=f;f=t;c[f>>2]=h;c[f+4>>2]=i;c[u>>2]=j;if(c[s>>2]|0?(c[(c[s>>2]|0)+8>>2]|0)>>>0>0:0){x=(c[o>>2]|0)+12|0;y=g;z=x+104|0;do{c[x>>2]=c[y>>2];x=x+4|0;y=y+4|0;}while((x|0)<(z|0));j=c[o>>2]|0;i=c[s>>2]|0;s=c[g+4>>2]|0;f=g+32|0;h=t;e=c[h>>2]|0;d=c[h+4>>2]|0;h=c[u>>2]|0;c[m>>2]=c[f>>2];c[m+4>>2]=c[f+4>>2];c[m+8>>2]=c[f+8>>2];c[n>>2]=yo(j,i,s,m,e,d,h)|0;A=c[n>>2]|0;l=k;return A|0;}h=c[o>>2]|0;d=t;t=c[d>>2]|0;e=c[d+4>>2]|0;d=c[u>>2]|0;x=m;y=g;z=x+104|0;do{c[x>>2]=c[y>>2];x=x+4|0;y=y+4|0;}while((x|0)<(z|0));c[v>>2]=ml(h,m,t,e,0,d)|0;if(wj(c[v>>2]|0)|0){c[n>>2]=c[v>>2];A=c[n>>2]|0;l=k;return A|0;}c[w>>2]=Ej(c[(c[o>>2]|0)+472>>2]|0,(c[o>>2]|0)+472+8|0,g,c[p>>2]|0,c[q>>2]|0,c[r>>2]|0,c[(c[o>>2]|0)+588>>2]|0)|0;r=(Ph(c[w>>2]|0)|0)!=0;q=c[w>>2]|0;if(r){c[n>>2]=q;A=c[n>>2]|0;l=k;return A|0;}else{c[(c[o>>2]|0)+220>>2]=q;c[n>>2]=0;A=c[n>>2]|0;l=k;return A|0;}return 0;}function yo(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;i=l;l=l+256|0;j=i+152|0;k=i+148|0;m=i+144|0;n=i+140|0;o=i;p=i+136|0;q=i+32|0;r=i+28|0;s=i+24|0;t=i+20|0;u=i+16|0;v=i+12|0;w=i+8|0;c[k>>2]=a;c[m>>2]=b;c[n>>2]=d;d=o;c[d>>2]=f;c[d+4>>2]=g;c[p>>2]=h;h=q;g=(c[k>>2]|0)+12|0;d=h+104|0;do{c[h>>2]=c[g>>2];h=h+4|0;g=g+4|0;}while((h|0)<(d|0));f=q+4|0;b=(c[m>>2]|0)+4720|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];c[f+16>>2]=c[b+16>>2];c[f+20>>2]=c[b+20>>2];c[f+24>>2]=c[b+24>>2];if(c[n>>2]|0)c[q+4>>2]=c[n>>2];n=q+32|0;c[n>>2]=c[e>>2];c[n+4>>2]=c[e+4>>2];c[n+8>>2]=c[e+8>>2];e=c[k>>2]|0;n=o;o=c[n>>2]|0;b=c[n+4>>2]|0;n=c[p>>2]|0;h=j;g=q;d=h+104|0;do{c[h>>2]=c[g>>2];h=h+4|0;g=g+4|0;}while((h|0)<(d|0));ml(e,j,o,b,1,n)|0;if((c[(c[m>>2]|0)+4720+24>>2]|0)==1)x=0;else x=1<<c[(c[m>>2]|0)+4720+4>>2];c[r>>2]=x;c[s>>2]=1<<c[(c[m>>2]|0)+4720+8>>2];c[t>>2]=(c[r>>2]|0)+(c[s>>2]|0)<<2;mE(c[(c[k>>2]|0)+472+8+36>>2]|0,c[(c[m>>2]|0)+20+36>>2]|0,c[t>>2]|0)|0;c[u>>2]=1<<c[(c[k>>2]|0)+472+8+32>>2];oE(c[(c[k>>2]|0)+472+8+40>>2]|0,0,c[u>>2]<<2|0)|0;c[v>>2]=(c[m>>2]|0)+20;c[w>>2]=(c[k>>2]|0)+472+8;u=c[w>>2]|0;t=c[v>>2]|0;c[u>>2]=c[t>>2];c[u+4>>2]=c[t+4>>2];c[u+8>>2]=c[t+8>>2];c[u+12>>2]=c[t+12>>2];c[u+16>>2]=c[t+16>>2];c[(c[w>>2]|0)+24>>2]=c[(c[v>>2]|0)+24>>2];c[(c[w>>2]|0)+28>>2]=c[(c[v>>2]|0)+28>>2];c[(c[w>>2]|0)+20>>2]=c[(c[v>>2]|0)+20>>2];c[(c[k>>2]|0)+220>>2]=c[(c[m>>2]|0)+4760>>2];mE(c[(c[k>>2]|0)+472>>2]|0,(c[m>>2]|0)+128|0,4592)|0;l=i;return 0;}function zo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+112|0;f=e;g=f;h=b;b=g+104|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0;}while((g|0)<(b|0));i=f+4|0;c[i>>2]=c[d>>2];c[i+4>>2]=c[d+4>>2];c[i+8>>2]=c[d+8>>2];c[i+12>>2]=c[d+12>>2];c[i+16>>2]=c[d+16>>2];c[i+20>>2]=c[d+20>>2];c[i+24>>2]=c[d+24>>2];i=f+32|0;j=d+28|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];c[f+44>>2]=3;g=a;h=f;b=g+104|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0;}while((g|0)<(b|0));l=e;return;}function Ao(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0;g=l;l=l+96|0;h=g+84|0;i=g;j=g+80|0;k=g+40|0;m=g+8|0;c[h>>2]=b;b=i;c[b>>2]=d;c[b+4>>2]=e;c[j>>2]=f;f=i;sj(m,c[h>>2]|0,c[f>>2]|0,c[f+4>>2]|0,c[j>>2]|0);j=k;f=j+40|0;do{c[j>>2]=0;j=j+4|0;}while((j|0)<(f|0));c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];c[k+12>>2]=c[m+12>>2];c[k+16>>2]=c[m+16>>2];c[k+20>>2]=c[m+20>>2];c[k+24>>2]=c[m+24>>2];c[k+28>>2]=1;j=a;a=k;f=j+40|0;do{c[j>>2]=c[a>>2];j=j+4|0;a=a+4|0;}while((j|0)<(f|0));l=g;return;}function Bo(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;g=l;l=l+32|0;h=g+28|0;i=g+24|0;j=g+20|0;k=g+16|0;m=g+12|0;n=g+8|0;o=g+4|0;p=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[p>>2]=wn(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,1,1)|0;if(Ph(c[p>>2]|0)|0){c[h>>2]=c[p>>2];q=c[h>>2]|0;l=g;return q|0;}c[o>>2]=Co(c[i>>2]|0,(c[j>>2]|0)+(c[p>>2]|0)|0,(c[k>>2]|0)-(c[p>>2]|0)|0)|0;if(Ph(c[o>>2]|0)|0){c[h>>2]=c[o>>2];q=c[h>>2]|0;l=g;return q|0;}if(c[(c[i>>2]|0)+116+32>>2]|0?(k=(c[i>>2]|0)+240|0,j=c[k>>2]|0,n=c[k+4>>2]|0,k=(c[i>>2]|0)+248|0,i=dE(c[k>>2]|0,c[k+4>>2]|0,1,0)|0,(j|0)!=(i|0)|(n|0)!=(y|0)):0){c[h>>2]=-72;q=c[h>>2]|0;l=g;return q|0;}c[h>>2]=(c[p>>2]|0)+(c[o>>2]|0);q=c[h>>2]|0;l=g;return q|0;}function Co(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;e=l;l=l+144|0;f=e+40|0;g=e+32|0;h=e+28|0;i=e+24|0;j=e+20|0;k=e+16|0;m=e+12|0;n=e+8|0;o=e+4|0;p=e;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=c[i>>2];c[m>>2]=c[k>>2];c[n>>2]=0;if(!(c[c[h>>2]>>2]|0)){c[g>>2]=-60;q=c[g>>2]|0;l=e;return q|0;}do{if((c[c[h>>2]>>2]|0)==1){d=c[i>>2]|0;b=c[j>>2]|0;a=f;r=(c[h>>2]|0)+116|0;s=a+104|0;do{c[a>>2]=c[r>>2];a=a+4|0;r=r+4|0;}while((a|0)<(s|0));c[n>>2]=xn(d,b,f,0,0,0)|0;r=(Ph(c[n>>2]|0)|0)!=0;a=c[n>>2]|0;if(!r){c[j>>2]=(c[j>>2]|0)-a;c[m>>2]=(c[m>>2]|0)+(c[n>>2]|0);c[c[h>>2]>>2]=2;break;}c[g>>2]=a;q=c[g>>2]|0;l=e;return q|0;}}while(0);do{if((c[c[h>>2]>>2]|0)!=3){c[o>>2]=1;if((c[j>>2]|0)>>>0>=4){Pl(c[m>>2]|0,1);c[m>>2]=(c[m>>2]|0)+3;c[j>>2]=(c[j>>2]|0)-3;break;}c[g>>2]=-70;q=c[g>>2]|0;l=e;return q|0;}}while(0);do{if(c[(c[h>>2]|0)+116+32+4>>2]|0){o=Oh((c[h>>2]|0)+264|0)|0;c[p>>2]=o;if((c[j>>2]|0)>>>0>=4){Pl(c[m>>2]|0,c[p>>2]|0);c[m>>2]=(c[m>>2]|0)+4;break;}c[g>>2]=-70;q=c[g>>2]|0;l=e;return q|0;}}while(0);c[c[h>>2]>>2]=0;c[g>>2]=(c[m>>2]|0)-(c[k>>2]|0);q=c[g>>2]|0;l=e;return q|0;}function Do(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;j=l;l=l+144|0;k=j+40|0;m=j+32|0;n=j+28|0;o=j+24|0;p=j+20|0;q=j+16|0;r=j+12|0;s=j+8|0;t=j+4|0;u=j;c[n>>2]=a;c[o>>2]=b;c[p>>2]=d;c[q>>2]=e;c[r>>2]=f;c[s>>2]=g;c[t>>2]=h;h=c[n>>2]|0;g=c[s>>2]|0;s=c[t>>2]|0;t=c[r>>2]|0;f=k;e=i;i=f+104|0;do{c[f>>2]=c[e>>2];f=f+4|0;e=e+4|0;}while((f|0)<(i|0));c[u>>2]=xo(h,g,s,0,0,k,t,0,0)|0;if(wj(c[u>>2]|0)|0){c[m>>2]=c[u>>2];v=c[m>>2]|0;l=j;return v|0;}else{c[m>>2]=Bo(c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0,c[r>>2]|0)|0;v=c[m>>2]|0;l=j;return v|0;}return 0;}function Eo(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;j=l;l=l+400|0;k=j+288|0;m=j+176|0;n=j+280|0;o=j+168|0;p=j+164|0;q=j+160|0;r=j+156|0;s=j+152|0;t=j+148|0;u=j+144|0;v=j+104|0;w=j;c[n>>2]=a;c[o>>2]=b;c[p>>2]=d;c[q>>2]=e;c[r>>2]=f;c[s>>2]=g;c[t>>2]=h;c[u>>2]=i;Ao(v,c[u>>2]|0,c[r>>2]|0?c[r>>2]|0:1,0,c[s>>2]|0?c[t>>2]|0:0);i=m;h=(c[n>>2]|0)+12|0;g=i+104|0;do{c[i>>2]=c[h>>2];i=i+4|0;h=h+4|0;}while((i|0)<(g|0));i=k;h=v;g=i+40|0;do{c[i>>2]=c[h>>2];i=i+4|0;h=h+4|0;}while((i|0)<(g|0));zo(w,m,k);xj(w,1e3,(c[u>>2]|0)>=0&1)|0;u=c[n>>2]|0;n=c[o>>2]|0;o=c[p>>2]|0;p=c[q>>2]|0;q=c[r>>2]|0;r=c[s>>2]|0;s=c[t>>2]|0;i=k;h=w;g=i+104|0;do{c[i>>2]=c[h>>2];i=i+4|0;h=h+4|0;}while((i|0)<(g|0));h=Do(u,n,o,p,q,r,s,k)|0;l=j;return h|0;}function Fo(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+20|0;j=h+16|0;k=h+12|0;m=h+8|0;n=h+4|0;o=h;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;g=Eo(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,0,0,c[o>>2]|0)|0;l=h;return g|0;}function Go(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;g=l;l=l+704|0;h=g+680|0;i=g+676|0;j=g+672|0;k=g+668|0;m=g+664|0;n=g+660|0;o=g+656|0;p=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;oE(p|0,0,656)|0;f=p+352|0;c[f>>2]=c[5406];c[f+4>>2]=c[5407];c[f+8>>2]=c[5408];c[o>>2]=Fo(p,c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;n=c[p+224>>2]|0;c[h>>2]=c[5406];c[h+4>>2]=c[5407];c[h+8>>2]=c[5408];Th(n,h);l=g;return c[o>>2]|0;}function Ho(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+80|0;f=e+68|0;g=e+40|0;h=e+36|0;i=e+32|0;j=e+28|0;k=e;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;sj(k,c[j>>2]|0,0,0,c[i>>2]|0);j=c[h>>2]|0;h=c[i>>2]|0;c[g>>2]=c[k>>2];c[g+4>>2]=c[k+4>>2];c[g+8>>2]=c[k+8>>2];c[g+12>>2]=c[k+12>>2];c[g+16>>2]=c[k+16>>2];c[g+20>>2]=c[k+20>>2];c[g+24>>2]=c[k+24>>2];c[f>>2]=c[5406];c[f+4>>2]=c[5407];c[f+8>>2]=c[5408];k=zj(j,h,0,0,g,f)|0;l=e;return k|0;}function Io(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=b;b=(c[e>>2]|0)+4720|0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];c[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];l=d;return;}function Jo(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=l;l=l+272|0;h=g+168|0;i=g+160|0;j=g+156|0;k=g+152|0;m=g;n=g+48|0;o=g+16|0;p=g+12|0;q=g+8|0;c[j>>2]=a;c[k>>2]=b;b=m;c[b>>2]=e;c[b+4>>2]=f;if(!(c[k>>2]|0)){c[i>>2]=-32;r=c[i>>2]|0;l=g;return r|0;}f=n;b=(c[j>>2]|0)+12|0;e=f+104|0;do{c[f>>2]=c[b>>2];f=f+4|0;b=b+4|0;}while((f|0)<(e|0));a=n+4|0;Io(o,c[k>>2]|0);c[a>>2]=c[o>>2];c[a+4>>2]=c[o+4>>2];c[a+8>>2]=c[o+8>>2];c[a+12>>2]=c[o+12>>2];c[a+16>>2]=c[o+16>>2];c[a+20>>2]=c[o+20>>2];c[a+24>>2]=c[o+24>>2];o=m;if((c[o>>2]|0)!=-1?1:(c[o+4>>2]|0)!=-1){o=m;a=c[o+4>>2]|0;s=a>>>0<0|(a|0)==0&(c[o>>2]|0)>>>0<524288;o=m;a=c[o+4>>2]|0;a=s?c[o>>2]|0:524288;c[p>>2]=a;if((c[p>>2]|0)>>>0>1)t=(uj((c[p>>2]|0)-1|0)|0)+1|0;else t=1;c[q>>2]=t;c[n+4>>2]=(c[n+4>>2]|0)>>>0>(c[q>>2]|0)>>>0?c[n+4>>2]|0:c[q>>2]|0;}q=n+32|0;c[q>>2]=c[d>>2];c[q+4>>2]=c[d+4>>2];c[q+8>>2]=c[d+8>>2];d=c[j>>2]|0;j=c[k>>2]|0;k=m;m=c[k>>2]|0;q=c[k+4>>2]|0;f=h;b=n;e=f+104|0;do{c[f>>2]=c[b>>2];f=f+4|0;b=b+4|0;}while((f|0)<(e|0));c[i>>2]=xo(d,0,0,0,j,h,m,q,0)|0;r=c[i>>2]|0;l=g;return r|0;}function hy(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;g=l;l=l+112|0;h=g+100|0;i=g+96|0;j=g+92|0;k=g+88|0;m=g+84|0;n=g+80|0;o=g+76|0;p=g+72|0;q=g+68|0;r=g+64|0;s=g+60|0;t=g+56|0;u=g+52|0;v=g+48|0;w=g+44|0;x=g+40|0;y=g+36|0;z=g+32|0;A=g+28|0;B=g+24|0;C=g+20|0;D=g+16|0;E=g+12|0;F=g+8|0;G=g+4|0;H=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=c[m>>2];c[p>>2]=c[o>>2];c[q>>2]=(c[o>>2]|0)+(c[c[n>>2]>>2]|0);c[r>>2]=c[j>>2];c[s>>2]=c[r>>2];c[t>>2]=(c[r>>2]|0)+(c[c[k>>2]>>2]|0);c[u>>2]=1;a:while(1){if(!(c[u>>2]|0)){I=48;break;}switch(c[(c[i>>2]|0)+80>>2]|0){case 0:{I=4;break a;break;}case 1:{c[v>>2]=yq((c[i>>2]|0)+8|0,c[m>>2]|0,c[c[n>>2]>>2]|0)|0;j=(mr(c[v>>2]|0)|0)!=0;J=c[v>>2]|0;if(j){I=6;break a;}K=c[i>>2]|0;if(J|0){I=8;break a;}c[K+80>>2]=3;break;}case 2:{c[w>>2]=ry((c[i>>2]|0)+84+(c[(c[i>>2]|0)+76>>2]|0)|0,5-(c[(c[i>>2]|0)+76>>2]|0)|0,c[m>>2]|0,c[c[n>>2]>>2]|0)|0;j=(c[i>>2]|0)+76|0;c[j>>2]=(c[j>>2]|0)+(c[w>>2]|0);c[p>>2]=(c[p>>2]|0)+(c[w>>2]|0);c[w>>2]=yq((c[i>>2]|0)+8|0,(c[i>>2]|0)+84|0,c[(c[i>>2]|0)+76>>2]|0)|0;j=(mr(c[w>>2]|0)|0)!=0;L=c[w>>2]|0;if(j){I=11;break a;}if(L|0){I=13;break a;}else I=14;break;}case 3:{I=14;break;}case 4:{I=23;break;}case 5:{I=33;break;}case 6:{I=42;break;}default:{I=46;break a;}}do{if((I|0)==14){I=0;c[x>>2]=1<<c[(c[i>>2]|0)+8+8>>2];c[y>>2]=131072;if((c[(c[i>>2]|0)+52>>2]|0)>>>0<(c[y>>2]|0)>>>0?(Dy(c[(c[i>>2]|0)+48>>2]|0),c[(c[i>>2]|0)+52>>2]=c[y>>2],j=Cy(c[y>>2]|0)|0,c[(c[i>>2]|0)+48>>2]=j,(c[(c[i>>2]|0)+48>>2]|0)==0):0){I=16;break a;}if((c[(c[i>>2]|0)+64>>2]|0)>>>0<(c[x>>2]|0)>>>0?(Dy(c[(c[i>>2]|0)+60>>2]|0),c[(c[i>>2]|0)+64>>2]=c[x>>2],j=Cy(c[x>>2]|0)|0,c[(c[i>>2]|0)+60>>2]=j,(c[(c[i>>2]|0)+60>>2]|0)==0):0){I=19;break a;}j=c[i>>2]|0;if(c[(c[i>>2]|0)+76>>2]|0){mE(c[j+48>>2]|0,(c[i>>2]|0)+84|0,c[(c[i>>2]|0)+76>>2]|0)|0;c[(c[i>>2]|0)+56>>2]=c[(c[i>>2]|0)+76>>2];c[(c[i>>2]|0)+76>>2]=0;c[(c[i>>2]|0)+80>>2]=5;break;}else{c[j+80>>2]=4;I=23;break;}}}while(0);do{if((I|0)==23){I=0;c[z>>2]=sy(c[c[i>>2]>>2]|0)|0;if(!(c[z>>2]|0)){c[(c[i>>2]|0)+80>>2]=0;c[u>>2]=0;break;}if(((c[q>>2]|0)-(c[p>>2]|0)|0)>>>0<(c[z>>2]|0)>>>0){if((c[p>>2]|0)==(c[q>>2]|0)){c[u>>2]=0;break;}else{c[(c[i>>2]|0)+80>>2]=5;I=33;break;}}else{c[A>>2]=ty(c[c[i>>2]>>2]|0,(c[(c[i>>2]|0)+60>>2]|0)+(c[(c[i>>2]|0)+68>>2]|0)|0,(c[(c[i>>2]|0)+64>>2]|0)-(c[(c[i>>2]|0)+68>>2]|0)|0,c[p>>2]|0,c[z>>2]|0)|0;if(mr(c[A>>2]|0)|0){I=27;break a;}c[p>>2]=(c[p>>2]|0)+(c[z>>2]|0);if(!(c[A>>2]|0))break;c[(c[i>>2]|0)+72>>2]=(c[(c[i>>2]|0)+68>>2]|0)+(c[A>>2]|0);c[(c[i>>2]|0)+80>>2]=6;break;}}}while(0);do{if((I|0)==33){I=0;c[B>>2]=sy(c[c[i>>2]>>2]|0)|0;c[C>>2]=(c[B>>2]|0)-(c[(c[i>>2]|0)+56>>2]|0);if((c[C>>2]|0)>>>0>((c[(c[i>>2]|0)+52>>2]|0)-(c[(c[i>>2]|0)+56>>2]|0)|0)>>>0){I=34;break a;}c[D>>2]=ry((c[(c[i>>2]|0)+48>>2]|0)+(c[(c[i>>2]|0)+56>>2]|0)|0,c[C>>2]|0,c[p>>2]|0,(c[q>>2]|0)-(c[p>>2]|0)|0)|0;c[p>>2]=(c[p>>2]|0)+(c[D>>2]|0);j=(c[i>>2]|0)+56|0;c[j>>2]=(c[j>>2]|0)+(c[D>>2]|0);if((c[D>>2]|0)>>>0<(c[C>>2]|0)>>>0){c[u>>2]=0;break;}c[E>>2]=ty(c[c[i>>2]>>2]|0,(c[(c[i>>2]|0)+60>>2]|0)+(c[(c[i>>2]|0)+68>>2]|0)|0,(c[(c[i>>2]|0)+64>>2]|0)-(c[(c[i>>2]|0)+68>>2]|0)|0,c[(c[i>>2]|0)+48>>2]|0,c[B>>2]|0)|0;if(mr(c[E>>2]|0)|0){I=38;break a;}c[(c[i>>2]|0)+56>>2]=0;j=c[i>>2]|0;if(c[E>>2]|0){c[(c[i>>2]|0)+72>>2]=(c[j+68>>2]|0)+(c[E>>2]|0);c[(c[i>>2]|0)+80>>2]=6;I=42;break;}else{c[j+80>>2]=4;break;}}}while(0);do{if((I|0)==42){I=0;c[F>>2]=(c[(c[i>>2]|0)+72>>2]|0)-(c[(c[i>>2]|0)+68>>2]|0);c[G>>2]=ry(c[s>>2]|0,(c[t>>2]|0)-(c[s>>2]|0)|0,(c[(c[i>>2]|0)+60>>2]|0)+(c[(c[i>>2]|0)+68>>2]|0)|0,c[F>>2]|0)|0;c[s>>2]=(c[s>>2]|0)+(c[G>>2]|0);j=(c[i>>2]|0)+68|0;c[j>>2]=(c[j>>2]|0)+(c[G>>2]|0);if((c[G>>2]|0)!=(c[F>>2]|0)){c[u>>2]=0;break;}c[(c[i>>2]|0)+80>>2]=4;if(((c[(c[i>>2]|0)+68>>2]|0)+131072|0)>>>0>(c[(c[i>>2]|0)+64>>2]|0)>>>0){c[(c[i>>2]|0)+72>>2]=0;c[(c[i>>2]|0)+68>>2]=0;}}}while(0);}switch(I|0){case 4:{c[h>>2]=-62;M=c[h>>2]|0;l=g;return M|0;}case 6:{c[h>>2]=J;M=c[h>>2]|0;l=g;return M|0;}case 8:{mE(K+84+(c[(c[i>>2]|0)+76>>2]|0)|0,c[m>>2]|0,c[c[n>>2]>>2]|0)|0;m=(c[i>>2]|0)+76|0;c[m>>2]=(c[m>>2]|0)+(c[c[n>>2]>>2]|0);c[c[k>>2]>>2]=0;c[(c[i>>2]|0)+80>>2]=2;c[h>>2]=(c[v>>2]|0)-(c[(c[i>>2]|0)+76>>2]|0);M=c[h>>2]|0;l=g;return M|0;}case 11:{c[h>>2]=L;M=c[h>>2]|0;l=g;return M|0;}case 13:{c[c[k>>2]>>2]=0;c[h>>2]=(c[w>>2]|0)-(c[(c[i>>2]|0)+76>>2]|0);M=c[h>>2]|0;l=g;return M|0;}case 16:{c[h>>2]=-64;M=c[h>>2]|0;l=g;return M|0;}case 19:{c[h>>2]=-64;M=c[h>>2]|0;l=g;return M|0;}case 27:{c[h>>2]=c[A>>2];M=c[h>>2]|0;l=g;return M|0;}case 34:{c[h>>2]=-20;M=c[h>>2]|0;l=g;return M|0;}case 38:{c[h>>2]=c[E>>2];M=c[h>>2]|0;l=g;return M|0;}case 46:{c[h>>2]=-1;M=c[h>>2]|0;l=g;return M|0;}case 48:{c[c[n>>2]>>2]=(c[p>>2]|0)-(c[o>>2]|0);c[c[k>>2]>>2]=(c[s>>2]|0)-(c[r>>2]|0);c[H>>2]=sy(c[c[i>>2]>>2]|0)|0;if((c[H>>2]|0)>>>0>3)c[H>>2]=(c[H>>2]|0)+3;c[H>>2]=(c[H>>2]|0)-(c[(c[i>>2]|0)+56>>2]|0);c[h>>2]=c[H>>2];M=c[h>>2]|0;l=g;return M|0;}}return 0;}function iy(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;g=l;l=l+128|0;h=g+116|0;i=g+112|0;j=g+108|0;k=g+104|0;m=g+100|0;n=g+96|0;o=g+92|0;p=g+88|0;q=g+84|0;r=g+80|0;s=g+76|0;t=g+72|0;u=g+68|0;v=g+64|0;w=g+60|0;x=g+56|0;y=g+52|0;z=g+48|0;A=g+44|0;B=g+40|0;C=g+36|0;D=g+32|0;E=g+28|0;F=g+24|0;G=g+20|0;H=g+16|0;I=g+12|0;J=g+8|0;K=g+4|0;L=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=c[m>>2];c[p>>2]=(c[o>>2]|0)+(c[c[n>>2]>>2]|0);c[q>>2]=c[o>>2];c[r>>2]=c[j>>2];c[s>>2]=(c[r>>2]|0)+(c[c[k>>2]>>2]|0);c[t>>2]=c[r>>2];c[u>>2]=1;a:while(1){if(!(c[u>>2]|0)){M=50;break;}b:do{switch(c[(c[i>>2]|0)+24>>2]|0){case 0:{M=4;break a;break;}case 1:{c[v>>2]=zq((c[i>>2]|0)+8|0,(c[i>>2]|0)+60|0,c[(c[i>>2]|0)+76>>2]|0)|0;if(c[v>>2]|0){c[w>>2]=(c[v>>2]|0)-(c[(c[i>>2]|0)+76>>2]|0);if(jr(c[v>>2]|0)|0){M=7;break a;}N=(c[i>>2]|0)+60+(c[(c[i>>2]|0)+76>>2]|0)|0;O=c[q>>2]|0;if((c[w>>2]|0)>>>0>((c[p>>2]|0)-(c[q>>2]|0)|0)>>>0){M=9;break a;}mE(N|0,O|0,c[w>>2]|0)|0;c[(c[i>>2]|0)+76>>2]=c[v>>2];c[q>>2]=(c[q>>2]|0)+(c[w>>2]|0);break b;}c[x>>2]=oy(c[c[i>>2]>>2]|0)|0;c[y>>2]=py(c[c[i>>2]>>2]|0,0,0,(c[i>>2]|0)+60|0,c[x>>2]|0)|0;if(jr(c[y>>2]|0)|0){M=12;break a;}if((c[x>>2]|0)>>>0<(c[(c[i>>2]|0)+76>>2]|0)>>>0?(c[z>>2]=oy(c[c[i>>2]>>2]|0)|0,c[A>>2]=py(c[c[i>>2]>>2]|0,0,0,(c[i>>2]|0)+60+(c[x>>2]|0)|0,c[z>>2]|0)|0,jr(c[A>>2]|0)|0):0){M=15;break a;}if((1<<c[(c[i>>2]|0)+8+8>>2]|0)<131072)P=1<<c[(c[i>>2]|0)+8+8>>2];else P=131072;c[B>>2]=P;c[(c[i>>2]|0)+56>>2]=c[B>>2];if((c[(c[i>>2]|0)+32>>2]|0)>>>0<(c[B>>2]|0)>>>0?(Dy(c[(c[i>>2]|0)+28>>2]|0),c[(c[i>>2]|0)+32>>2]=c[B>>2],j=Cy(c[B>>2]|0)|0,c[(c[i>>2]|0)+28>>2]=j,(c[(c[i>>2]|0)+28>>2]|0)==0):0){M=20;break a;}c[C>>2]=(1<<c[(c[i>>2]|0)+8+8>>2])+(c[B>>2]|0)+16;if((c[(c[i>>2]|0)+44>>2]|0)>>>0<(c[C>>2]|0)>>>0?(Dy(c[(c[i>>2]|0)+40>>2]|0),c[(c[i>>2]|0)+44>>2]=c[C>>2],j=Cy(c[C>>2]|0)|0,c[(c[i>>2]|0)+40>>2]=j,(c[(c[i>>2]|0)+40>>2]|0)==0):0){M=23;break a;}c[(c[i>>2]|0)+24>>2]=2;M=25;break;}case 2:{M=25;break;}case 3:{M=35;break;}case 4:{M=44;break;}default:{M=48;break a;}}}while(0);do{if((M|0)==25){M=0;c[D>>2]=oy(c[c[i>>2]>>2]|0)|0;if(!(c[D>>2]|0)){c[(c[i>>2]|0)+24>>2]=0;c[u>>2]=0;break;}if(((c[p>>2]|0)-(c[q>>2]|0)|0)>>>0<(c[D>>2]|0)>>>0){if((c[q>>2]|0)==(c[p>>2]|0)){c[u>>2]=0;break;}else{c[(c[i>>2]|0)+24>>2]=3;M=35;break;}}else{c[E>>2]=py(c[c[i>>2]>>2]|0,(c[(c[i>>2]|0)+40>>2]|0)+(c[(c[i>>2]|0)+48>>2]|0)|0,(c[(c[i>>2]|0)+44>>2]|0)-(c[(c[i>>2]|0)+48>>2]|0)|0,c[q>>2]|0,c[D>>2]|0)|0;if(jr(c[E>>2]|0)|0){M=29;break a;}c[q>>2]=(c[q>>2]|0)+(c[D>>2]|0);if(!(c[E>>2]|0))break;c[(c[i>>2]|0)+52>>2]=(c[(c[i>>2]|0)+48>>2]|0)+(c[E>>2]|0);c[(c[i>>2]|0)+24>>2]=4;break;}}}while(0);do{if((M|0)==35){M=0;c[F>>2]=oy(c[c[i>>2]>>2]|0)|0;c[G>>2]=(c[F>>2]|0)-(c[(c[i>>2]|0)+36>>2]|0);if((c[G>>2]|0)>>>0>((c[(c[i>>2]|0)+32>>2]|0)-(c[(c[i>>2]|0)+36>>2]|0)|0)>>>0){M=36;break a;}c[H>>2]=qy((c[(c[i>>2]|0)+28>>2]|0)+(c[(c[i>>2]|0)+36>>2]|0)|0,c[G>>2]|0,c[q>>2]|0,(c[p>>2]|0)-(c[q>>2]|0)|0)|0;c[q>>2]=(c[q>>2]|0)+(c[H>>2]|0);j=(c[i>>2]|0)+36|0;c[j>>2]=(c[j>>2]|0)+(c[H>>2]|0);if((c[H>>2]|0)>>>0<(c[G>>2]|0)>>>0){c[u>>2]=0;break;}c[I>>2]=py(c[c[i>>2]>>2]|0,(c[(c[i>>2]|0)+40>>2]|0)+(c[(c[i>>2]|0)+48>>2]|0)|0,(c[(c[i>>2]|0)+44>>2]|0)-(c[(c[i>>2]|0)+48>>2]|0)|0,c[(c[i>>2]|0)+28>>2]|0,c[F>>2]|0)|0;if(jr(c[I>>2]|0)|0){M=40;break a;}c[(c[i>>2]|0)+36>>2]=0;j=c[i>>2]|0;if(c[I>>2]|0){c[(c[i>>2]|0)+52>>2]=(c[j+48>>2]|0)+(c[I>>2]|0);c[(c[i>>2]|0)+24>>2]=4;M=44;break;}else{c[j+24>>2]=2;break;}}}while(0);do{if((M|0)==44){M=0;c[J>>2]=(c[(c[i>>2]|0)+52>>2]|0)-(c[(c[i>>2]|0)+48>>2]|0);c[K>>2]=qy(c[t>>2]|0,(c[s>>2]|0)-(c[t>>2]|0)|0,(c[(c[i>>2]|0)+40>>2]|0)+(c[(c[i>>2]|0)+48>>2]|0)|0,c[J>>2]|0)|0;c[t>>2]=(c[t>>2]|0)+(c[K>>2]|0);j=(c[i>>2]|0)+48|0;c[j>>2]=(c[j>>2]|0)+(c[K>>2]|0);if((c[K>>2]|0)!=(c[J>>2]|0)){c[u>>2]=0;break;}c[(c[i>>2]|0)+24>>2]=2;if(((c[(c[i>>2]|0)+48>>2]|0)+(c[(c[i>>2]|0)+56>>2]|0)|0)>>>0>(c[(c[i>>2]|0)+44>>2]|0)>>>0){c[(c[i>>2]|0)+52>>2]=0;c[(c[i>>2]|0)+48>>2]=0;}}}while(0);}switch(M|0){case 4:{c[h>>2]=-62;Q=c[h>>2]|0;l=g;return Q|0;}case 7:{c[h>>2]=c[v>>2];Q=c[h>>2]|0;l=g;return Q|0;}case 9:{mE(N|0,O|0,(c[p>>2]|0)-(c[q>>2]|0)|0)|0;O=(c[i>>2]|0)+76|0;c[O>>2]=(c[O>>2]|0)+((c[p>>2]|0)-(c[q>>2]|0));c[q>>2]=c[p>>2];c[u>>2]=0;c[c[k>>2]>>2]=0;c[h>>2]=(c[v>>2]|0)-(c[(c[i>>2]|0)+76>>2]|0)+3;Q=c[h>>2]|0;l=g;return Q|0;}case 12:{c[h>>2]=c[y>>2];Q=c[h>>2]|0;l=g;return Q|0;}case 15:{c[h>>2]=c[A>>2];Q=c[h>>2]|0;l=g;return Q|0;}case 20:{c[h>>2]=-64;Q=c[h>>2]|0;l=g;return Q|0;}case 23:{c[h>>2]=-64;Q=c[h>>2]|0;l=g;return Q|0;}case 29:{c[h>>2]=c[E>>2];Q=c[h>>2]|0;l=g;return Q|0;}case 36:{c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}case 40:{c[h>>2]=c[I>>2];Q=c[h>>2]|0;l=g;return Q|0;}case 48:{c[h>>2]=-1;Q=c[h>>2]|0;l=g;return Q|0;}case 50:{c[c[n>>2]>>2]=(c[q>>2]|0)-(c[o>>2]|0);c[c[k>>2]>>2]=(c[t>>2]|0)-(c[r>>2]|0);c[L>>2]=oy(c[c[i>>2]>>2]|0)|0;if((c[L>>2]|0)>>>0>3)c[L>>2]=(c[L>>2]|0)+3;c[L>>2]=(c[L>>2]|0)-(c[(c[i>>2]|0)+36>>2]|0);c[h>>2]=c[L>>2];Q=c[h>>2]|0;l=g;return Q|0;}}return 0;}function jy(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0;g=l;l=l+128|0;h=g+124|0;i=g+120|0;j=g+116|0;k=g+112|0;m=g+108|0;n=g+104|0;o=g+100|0;p=g+96|0;q=g+92|0;r=g+88|0;s=g+84|0;t=g+80|0;u=g+76|0;v=g+72|0;w=g+68|0;x=g+64|0;y=g+60|0;z=g+56|0;A=g+52|0;B=g+48|0;C=g+44|0;D=g+40|0;E=g+36|0;F=g+32|0;G=g+28|0;H=g+24|0;I=g+20|0;J=g+16|0;K=g+12|0;L=g+8|0;M=g+4|0;N=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=c[m>>2];c[p>>2]=(c[o>>2]|0)+(c[c[n>>2]>>2]|0);c[q>>2]=c[o>>2];c[r>>2]=c[j>>2];c[s>>2]=(c[r>>2]|0)+(c[c[k>>2]>>2]|0);c[t>>2]=c[r>>2];c[u>>2]=1;a:while(1){if(!(c[u>>2]|0)){O=54;break;}b:do{switch(c[(c[i>>2]|0)+32>>2]|0){case 0:{O=4;break a;break;}case 1:{c[v>>2]=Aq((c[i>>2]|0)+8|0,(c[i>>2]|0)+68|0,c[(c[i>>2]|0)+88>>2]|0)|0;j=(hr(c[v>>2]|0)|0)!=0;P=c[v>>2]|0;if(j){O=6;break a;}if(P|0){c[w>>2]=(c[v>>2]|0)-(c[(c[i>>2]|0)+88>>2]|0);Q=(c[i>>2]|0)+68+(c[(c[i>>2]|0)+88>>2]|0)|0;R=c[q>>2]|0;if((c[w>>2]|0)>>>0>((c[p>>2]|0)-(c[q>>2]|0)|0)>>>0){O=9;break a;}mE(Q|0,R|0,c[w>>2]|0)|0;c[(c[i>>2]|0)+88>>2]=c[v>>2];c[q>>2]=(c[q>>2]|0)+(c[w>>2]|0);break b;}c[x>>2]=ky(c[c[i>>2]>>2]|0)|0;c[y>>2]=ly(c[c[i>>2]>>2]|0,0,0,(c[i>>2]|0)+68|0,c[x>>2]|0)|0;if(hr(c[y>>2]|0)|0){O=12;break a;}if((c[x>>2]|0)>>>0<(c[(c[i>>2]|0)+88>>2]|0)>>>0?(c[z>>2]=ky(c[c[i>>2]>>2]|0)|0,c[A>>2]=ly(c[c[i>>2]>>2]|0,0,0,(c[i>>2]|0)+68+(c[x>>2]|0)|0,c[z>>2]|0)|0,hr(c[A>>2]|0)|0):0){O=15;break a;}if((c[(c[i>>2]|0)+8+8>>2]|0)>>>0>1024)S=c[(c[i>>2]|0)+8+8>>2]|0;else S=1024;c[(c[i>>2]|0)+8+8>>2]=S;if((c[(c[i>>2]|0)+8+8>>2]|0)>>>0<131072)T=c[(c[i>>2]|0)+8+8>>2]|0;else T=131072;c[B>>2]=T;c[(c[i>>2]|0)+64>>2]=c[B>>2];if((c[(c[i>>2]|0)+40>>2]|0)>>>0<(c[B>>2]|0)>>>0?(xc[c[(c[i>>2]|0)+92+4>>2]&31](c[(c[i>>2]|0)+92+8>>2]|0,c[(c[i>>2]|0)+36>>2]|0),c[(c[i>>2]|0)+40>>2]=c[B>>2],j=qc[c[(c[i>>2]|0)+92>>2]&63](c[(c[i>>2]|0)+92+8>>2]|0,c[B>>2]|0)|0,c[(c[i>>2]|0)+36>>2]=j,(c[(c[i>>2]|0)+36>>2]|0)==0):0){O=22;break a;}c[C>>2]=(c[(c[i>>2]|0)+8+8>>2]|0)+(c[B>>2]|0)+16;if((c[(c[i>>2]|0)+52>>2]|0)>>>0<(c[C>>2]|0)>>>0?(xc[c[(c[i>>2]|0)+92+4>>2]&31](c[(c[i>>2]|0)+92+8>>2]|0,c[(c[i>>2]|0)+48>>2]|0),c[(c[i>>2]|0)+52>>2]=c[C>>2],j=qc[c[(c[i>>2]|0)+92>>2]&63](c[(c[i>>2]|0)+92+8>>2]|0,c[C>>2]|0)|0,c[(c[i>>2]|0)+48>>2]=j,(c[(c[i>>2]|0)+48>>2]|0)==0):0){O=25;break a;}c[(c[i>>2]|0)+32>>2]=2;O=27;break;}case 2:{O=27;break;}case 3:{O=39;break;}case 4:{O=48;break;}default:{O=52;break a;}}}while(0);do{if((O|0)==27){O=0;c[D>>2]=ky(c[c[i>>2]>>2]|0)|0;if(!(c[D>>2]|0)){c[(c[i>>2]|0)+32>>2]=0;c[u>>2]=0;break;}if(((c[p>>2]|0)-(c[q>>2]|0)|0)>>>0<(c[D>>2]|0)>>>0)if((c[q>>2]|0)==(c[p>>2]|0)){c[u>>2]=0;break;}else{c[(c[i>>2]|0)+32>>2]=3;O=39;break;}c[E>>2]=my(c[c[i>>2]>>2]|0)|0;if(c[E>>2]|0)U=0;else U=(c[(c[i>>2]|0)+52>>2]|0)-(c[(c[i>>2]|0)+56>>2]|0)|0;c[F>>2]=ly(c[c[i>>2]>>2]|0,(c[(c[i>>2]|0)+48>>2]|0)+(c[(c[i>>2]|0)+56>>2]|0)|0,U,c[q>>2]|0,c[D>>2]|0)|0;if(hr(c[F>>2]|0)|0){O=33;break a;}c[q>>2]=(c[q>>2]|0)+(c[D>>2]|0);if((c[F>>2]|0)!=0|(c[E>>2]|0)!=0){c[(c[i>>2]|0)+60>>2]=(c[(c[i>>2]|0)+56>>2]|0)+(c[F>>2]|0);c[(c[i>>2]|0)+32>>2]=4;}}}while(0);do{if((O|0)==39){O=0;c[G>>2]=ky(c[c[i>>2]>>2]|0)|0;c[H>>2]=(c[G>>2]|0)-(c[(c[i>>2]|0)+44>>2]|0);if((c[H>>2]|0)>>>0>((c[(c[i>>2]|0)+40>>2]|0)-(c[(c[i>>2]|0)+44>>2]|0)|0)>>>0){O=40;break a;}c[I>>2]=ny((c[(c[i>>2]|0)+36>>2]|0)+(c[(c[i>>2]|0)+44>>2]|0)|0,c[H>>2]|0,c[q>>2]|0,(c[p>>2]|0)-(c[q>>2]|0)|0)|0;c[q>>2]=(c[q>>2]|0)+(c[I>>2]|0);j=(c[i>>2]|0)+44|0;c[j>>2]=(c[j>>2]|0)+(c[I>>2]|0);if((c[I>>2]|0)>>>0<(c[H>>2]|0)>>>0){c[u>>2]=0;break;}c[J>>2]=my(c[c[i>>2]>>2]|0)|0;c[K>>2]=ly(c[c[i>>2]>>2]|0,(c[(c[i>>2]|0)+48>>2]|0)+(c[(c[i>>2]|0)+56>>2]|0)|0,(c[(c[i>>2]|0)+52>>2]|0)-(c[(c[i>>2]|0)+56>>2]|0)|0,c[(c[i>>2]|0)+36>>2]|0,c[G>>2]|0)|0;if(hr(c[K>>2]|0)|0){O=44;break a;}c[(c[i>>2]|0)+44>>2]=0;j=c[i>>2]|0;if((c[K>>2]|0)!=0|(c[J>>2]|0)!=0){c[(c[i>>2]|0)+60>>2]=(c[j+56>>2]|0)+(c[K>>2]|0);c[(c[i>>2]|0)+32>>2]=4;O=48;break;}else{c[j+32>>2]=2;break;}}}while(0);do{if((O|0)==48){O=0;c[L>>2]=(c[(c[i>>2]|0)+60>>2]|0)-(c[(c[i>>2]|0)+56>>2]|0);c[M>>2]=ny(c[t>>2]|0,(c[s>>2]|0)-(c[t>>2]|0)|0,(c[(c[i>>2]|0)+48>>2]|0)+(c[(c[i>>2]|0)+56>>2]|0)|0,c[L>>2]|0)|0;c[t>>2]=(c[t>>2]|0)+(c[M>>2]|0);j=(c[i>>2]|0)+56|0;c[j>>2]=(c[j>>2]|0)+(c[M>>2]|0);if((c[M>>2]|0)!=(c[L>>2]|0)){c[u>>2]=0;break;}c[(c[i>>2]|0)+32>>2]=2;if(((c[(c[i>>2]|0)+56>>2]|0)+(c[(c[i>>2]|0)+64>>2]|0)|0)>>>0>(c[(c[i>>2]|0)+52>>2]|0)>>>0){c[(c[i>>2]|0)+60>>2]=0;c[(c[i>>2]|0)+56>>2]=0;}}}while(0);}switch(O|0){case 4:{c[h>>2]=-62;V=c[h>>2]|0;l=g;return V|0;}case 6:{c[h>>2]=P;V=c[h>>2]|0;l=g;return V|0;}case 9:{mE(Q|0,R|0,(c[p>>2]|0)-(c[q>>2]|0)|0)|0;R=(c[i>>2]|0)+88|0;c[R>>2]=(c[R>>2]|0)+((c[p>>2]|0)-(c[q>>2]|0));c[c[k>>2]>>2]=0;c[h>>2]=(c[v>>2]|0)-(c[(c[i>>2]|0)+88>>2]|0)+3;V=c[h>>2]|0;l=g;return V|0;}case 12:{c[h>>2]=c[y>>2];V=c[h>>2]|0;l=g;return V|0;}case 15:{c[h>>2]=c[A>>2];V=c[h>>2]|0;l=g;return V|0;}case 22:{c[h>>2]=-64;V=c[h>>2]|0;l=g;return V|0;}case 25:{c[h>>2]=-64;V=c[h>>2]|0;l=g;return V|0;}case 33:{c[h>>2]=c[F>>2];V=c[h>>2]|0;l=g;return V|0;}case 40:{c[h>>2]=-20;V=c[h>>2]|0;l=g;return V|0;}case 44:{c[h>>2]=c[K>>2];V=c[h>>2]|0;l=g;return V|0;}case 52:{c[h>>2]=-1;V=c[h>>2]|0;l=g;return V|0;}case 54:{c[c[n>>2]>>2]=(c[q>>2]|0)-(c[o>>2]|0);c[c[k>>2]>>2]=(c[t>>2]|0)-(c[r>>2]|0);c[N>>2]=ky(c[c[i>>2]>>2]|0)|0;c[N>>2]=(c[N>>2]|0)-(c[(c[i>>2]|0)+44>>2]|0);c[h>>2]=c[N>>2];V=c[h>>2]|0;l=g;return V|0;}}return 0;}function ky(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[(c[d>>2]|0)+21536>>2]|0;}function ly(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0;i=l;l=l+80|0;j=i+64|0;k=i+60|0;m=i+56|0;n=i+52|0;o=i+48|0;p=i+44|0;q=i+40|0;r=i+32|0;s=i+24|0;t=i;u=i+20|0;v=i+16|0;w=i+12|0;x=i+8|0;c[k>>2]=b;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;if((c[p>>2]|0)!=(c[(c[k>>2]|0)+21536>>2]|0)){c[j>>2]=-72;z=c[j>>2]|0;l=i;return z|0;}if(c[n>>2]|0)us(c[k>>2]|0,c[m>>2]|0);a:do{switch(c[(c[k>>2]|0)+21580>>2]|0){case 0:{if((c[p>>2]|0)!=5){c[j>>2]=-72;z=c[j>>2]|0;l=i;return z|0;}if(((Bq(c[o>>2]|0)|0)&-16|0)==407710288){h=(c[k>>2]|0)+152788|0;g=c[o>>2]|0;a[h>>0]=a[g>>0]|0;a[h+1>>0]=a[g+1>>0]|0;a[h+2>>0]=a[g+2>>0]|0;a[h+3>>0]=a[g+3>>0]|0;a[h+4>>0]=a[g+4>>0]|0;c[(c[k>>2]|0)+21536>>2]=3;c[(c[k>>2]|0)+21580>>2]=4;c[j>>2]=0;z=c[j>>2]|0;l=i;return z|0;}g=Cq(c[o>>2]|0,5)|0;c[(c[k>>2]|0)+21680>>2]=g;g=(hr(c[(c[k>>2]|0)+21680>>2]|0)|0)!=0;h=c[k>>2]|0;if(g){c[j>>2]=c[h+21680>>2];z=c[j>>2]|0;l=i;return z|0;}g=h+152788|0;h=c[o>>2]|0;a[g>>0]=a[h>>0]|0;a[g+1>>0]=a[h+1>>0]|0;a[g+2>>0]=a[h+2>>0]|0;a[g+3>>0]=a[h+3>>0]|0;a[g+4>>0]=a[h+4>>0]|0;h=c[k>>2]|0;if((c[(c[k>>2]|0)+21680>>2]|0)>>>0<=5){c[h+21536>>2]=0;break a;}c[(c[k>>2]|0)+21536>>2]=(c[h+21680>>2]|0)-5;c[(c[k>>2]|0)+21580>>2]=1;c[j>>2]=0;z=c[j>>2]|0;l=i;return z|0;}case 1:break;case 2:{c[s>>2]=ir(c[o>>2]|0,3,r)|0;if(hr(c[s>>2]|0)|0){c[j>>2]=c[s>>2];z=c[j>>2]|0;l=i;return z|0;}if((c[r>>2]|0)==3){if(c[(c[k>>2]|0)+21552+16>>2]|0?(h=Oh((c[k>>2]|0)+21592|0)|0,g=t,c[g>>2]=h,c[g+4>>2]=y,g=t,h=iE(c[g>>2]|0,c[g+4>>2]|0,11)|0,c[u>>2]=h&4194303,c[v>>2]=c[o>>2],c[w>>2]=(d[(c[v>>2]|0)+2>>0]|0)+((d[(c[v>>2]|0)+1>>0]|0)<<8)+(((d[c[v>>2]>>0]|0)&63)<<16),(c[w>>2]|0)!=(c[u>>2]|0)):0){c[j>>2]=-22;z=c[j>>2]|0;l=i;return z|0;}c[(c[k>>2]|0)+21536>>2]=0;c[(c[k>>2]|0)+21580>>2]=0;}else{c[(c[k>>2]|0)+21536>>2]=c[s>>2];c[(c[k>>2]|0)+21576>>2]=c[r>>2];c[(c[k>>2]|0)+21580>>2]=3;}c[j>>2]=0;z=c[j>>2]|0;l=i;return z|0;}case 3:{switch(c[(c[k>>2]|0)+21576>>2]|0){case 0:{c[x>>2]=xs(c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0)|0;break;}case 1:{c[x>>2]=ys(c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0)|0;break;}case 2:{c[j>>2]=-1;z=c[j>>2]|0;l=i;return z|0;}case 3:{c[x>>2]=0;break;}default:{c[j>>2]=-1;z=c[j>>2]|0;l=i;return z|0;}}c[(c[k>>2]|0)+21580>>2]=2;c[(c[k>>2]|0)+21536>>2]=3;c[(c[k>>2]|0)+21520>>2]=(c[m>>2]|0)+(c[x>>2]|0);if(hr(c[x>>2]|0)|0){c[j>>2]=c[x>>2];z=c[j>>2]|0;l=i;return z|0;}if(c[(c[k>>2]|0)+21552+16>>2]|0)Nh((c[k>>2]|0)+21592|0,c[m>>2]|0,c[x>>2]|0)|0;c[j>>2]=c[x>>2];z=c[j>>2]|0;l=i;return z|0;}case 4:{mE((c[k>>2]|0)+152788+5|0,c[o>>2]|0,c[(c[k>>2]|0)+21536>>2]|0)|0;h=Bq((c[k>>2]|0)+152788+4|0)|0;c[(c[k>>2]|0)+21536>>2]=h;c[(c[k>>2]|0)+21580>>2]=5;c[j>>2]=0;z=c[j>>2]|0;l=i;return z|0;}case 5:{c[(c[k>>2]|0)+21536>>2]=0;c[(c[k>>2]|0)+21580>>2]=0;c[j>>2]=0;z=c[j>>2]|0;l=i;return z|0;}default:{c[j>>2]=-1;z=c[j>>2]|0;l=i;return z|0;}}}while(0);mE((c[k>>2]|0)+152788+5|0,c[o>>2]|0,c[(c[k>>2]|0)+21536>>2]|0)|0;c[q>>2]=ws(c[k>>2]|0,(c[k>>2]|0)+152788|0,c[(c[k>>2]|0)+21680>>2]|0)|0;if(hr(c[q>>2]|0)|0){c[j>>2]=c[q>>2];z=c[j>>2]|0;l=i;return z|0;}else{c[(c[k>>2]|0)+21536>>2]=3;c[(c[k>>2]|0)+21580>>2]=2;c[j>>2]=0;z=c[j>>2]|0;l=i;return z|0;}return 0;}function my(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return(c[(c[d>>2]|0)+21580>>2]|0)==5|0;}function ny(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=(c[h>>2]|0)>>>0<(c[j>>2]|0)>>>0?c[h>>2]|0:c[j>>2]|0;mE(c[g>>2]|0,c[i>>2]|0,c[k>>2]|0)|0;l=f;return c[k>>2]|0;}function oy(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[(c[d>>2]|0)+21536>>2]|0;}function py(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=l;l=l+48|0;i=h+40|0;j=h+36|0;k=h+32|0;m=h+28|0;n=h+24|0;o=h+20|0;p=h+16|0;q=h+8|0;r=h+4|0;s=h;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;if((c[o>>2]|0)!=(c[(c[j>>2]|0)+21536>>2]|0)){c[i>>2]=-72;t=c[i>>2]|0;l=h;return t|0;}if(c[m>>2]|0)Kt(c[j>>2]|0,c[k>>2]|0);a:do{switch(c[(c[j>>2]|0)+21564>>2]|0){case 0:{if((c[o>>2]|0)!=5){c[i>>2]=-72;t=c[i>>2]|0;l=h;return t|0;}g=Nq(c[n>>2]|0,5)|0;c[(c[j>>2]|0)+21540>>2]=g;g=(jr(c[(c[j>>2]|0)+21540>>2]|0)|0)!=0;f=c[j>>2]|0;if(g){c[i>>2]=c[f+21540>>2];t=c[i>>2]|0;l=h;return t|0;}g=f+152660|0;f=c[n>>2]|0;a[g>>0]=a[f>>0]|0;a[g+1>>0]=a[f+1>>0]|0;a[g+2>>0]=a[f+2>>0]|0;a[g+3>>0]=a[f+3>>0]|0;a[g+4>>0]=a[f+4>>0]|0;f=c[j>>2]|0;if((c[(c[j>>2]|0)+21540>>2]|0)>>>0<=5){c[f+21536>>2]=0;break a;}c[(c[j>>2]|0)+21536>>2]=(c[f+21540>>2]|0)-5;c[(c[j>>2]|0)+21564>>2]=1;c[i>>2]=0;t=c[i>>2]|0;l=h;return t|0;}case 1:break;case 2:{c[r>>2]=kr(c[n>>2]|0,3,q)|0;if(jr(c[r>>2]|0)|0){c[i>>2]=c[r>>2];t=c[i>>2]|0;l=h;return t|0;}if((c[q>>2]|0)==3){c[(c[j>>2]|0)+21536>>2]=0;c[(c[j>>2]|0)+21564>>2]=0;}else{c[(c[j>>2]|0)+21536>>2]=c[r>>2];c[(c[j>>2]|0)+21560>>2]=c[q>>2];c[(c[j>>2]|0)+21564>>2]=3;}c[i>>2]=0;t=c[i>>2]|0;l=h;return t|0;}case 3:{switch(c[(c[j>>2]|0)+21560>>2]|0){case 0:{c[s>>2]=Nt(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;break;}case 1:{c[s>>2]=Ot(c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;break;}case 2:{c[i>>2]=-1;t=c[i>>2]|0;l=h;return t|0;}case 3:{c[s>>2]=0;break;}default:{c[i>>2]=-1;t=c[i>>2]|0;l=h;return t|0;}}c[(c[j>>2]|0)+21564>>2]=2;c[(c[j>>2]|0)+21536>>2]=3;c[(c[j>>2]|0)+21520>>2]=(c[k>>2]|0)+(c[s>>2]|0);c[i>>2]=c[s>>2];t=c[i>>2]|0;l=h;return t|0;}default:{c[i>>2]=-1;t=c[i>>2]|0;l=h;return t|0;}}}while(0);mE((c[j>>2]|0)+152660+5|0,c[n>>2]|0,c[(c[j>>2]|0)+21536>>2]|0)|0;c[p>>2]=Mt(c[j>>2]|0,(c[j>>2]|0)+152660|0,c[(c[j>>2]|0)+21540>>2]|0)|0;if(jr(c[p>>2]|0)|0){c[i>>2]=c[p>>2];t=c[i>>2]|0;l=h;return t|0;}else{c[(c[j>>2]|0)+21536>>2]=3;c[(c[j>>2]|0)+21564>>2]=2;c[i>>2]=0;t=c[i>>2]|0;l=h;return t|0;}return 0;}function qy(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=(c[h>>2]|0)>>>0<(c[j>>2]|0)>>>0?c[h>>2]|0:c[j>>2]|0;mE(c[g>>2]|0,c[i>>2]|0,c[k>>2]|0)|0;l=f;return c[k>>2]|0;}function ry(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=(c[h>>2]|0)>>>0<(c[j>>2]|0)>>>0?c[h>>2]|0:c[j>>2]|0;mE(c[g>>2]|0,c[i>>2]|0,c[k>>2]|0)|0;l=f;return c[k>>2]|0;}function sy(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[(c[d>>2]|0)+26656>>2]|0;}function ty(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=l;l=l+48|0;i=h+40|0;j=h+36|0;k=h+32|0;m=h+28|0;n=h+24|0;o=h+20|0;p=h+16|0;q=h+8|0;r=h+4|0;s=h;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;if((c[o>>2]|0)!=(c[(c[j>>2]|0)+26656>>2]|0)){c[i>>2]=-72;t=c[i>>2]|0;l=h;return t|0;}Tu(c[j>>2]|0,c[k>>2]|0);a:do{switch(c[(c[j>>2]|0)+26708>>2]|0){case 0:{if((c[o>>2]|0)!=5){c[i>>2]=-72;t=c[i>>2]|0;l=h;return t|0;}g=Vu(c[j>>2]|0,c[n>>2]|0,5)|0;c[(c[j>>2]|0)+26660>>2]=g;g=(mr(c[(c[j>>2]|0)+26660>>2]|0)|0)!=0;f=c[j>>2]|0;if(g){c[i>>2]=c[f+26660>>2];t=c[i>>2]|0;l=h;return t|0;}g=f+157804|0;f=c[n>>2]|0;a[g>>0]=a[f>>0]|0;a[g+1>>0]=a[f+1>>0]|0;a[g+2>>0]=a[f+2>>0]|0;a[g+3>>0]=a[f+3>>0]|0;a[g+4>>0]=a[f+4>>0]|0;if((c[(c[j>>2]|0)+26660>>2]|0)>>>0<=5){c[(c[j>>2]|0)+26656>>2]=0;break a;}c[i>>2]=-1;t=c[i>>2]|0;l=h;return t|0;}case 1:break;case 2:{c[r>>2]=lr(c[n>>2]|0,3,q)|0;if(mr(c[r>>2]|0)|0){c[i>>2]=c[r>>2];t=c[i>>2]|0;l=h;return t|0;}if((c[q>>2]|0)==3){c[(c[j>>2]|0)+26656>>2]=0;c[(c[j>>2]|0)+26708>>2]=0;}else{c[(c[j>>2]|0)+26656>>2]=c[r>>2];c[(c[j>>2]|0)+26704>>2]=c[q>>2];c[(c[j>>2]|0)+26708>>2]=3;}c[i>>2]=0;t=c[i>>2]|0;l=h;return t|0;}case 3:{switch(c[(c[j>>2]|0)+26704>>2]|0){case 0:{c[s>>2]=Xu(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;break;}case 1:{c[s>>2]=Yu(c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;break;}case 2:{c[i>>2]=-1;t=c[i>>2]|0;l=h;return t|0;}case 3:{c[s>>2]=0;break;}default:{c[i>>2]=-1;t=c[i>>2]|0;l=h;return t|0;}}c[(c[j>>2]|0)+26708>>2]=2;c[(c[j>>2]|0)+26656>>2]=3;c[(c[j>>2]|0)+26640>>2]=(c[k>>2]|0)+(c[s>>2]|0);c[i>>2]=c[s>>2];t=c[i>>2]|0;l=h;return t|0;}default:{c[i>>2]=-1;t=c[i>>2]|0;l=h;return t|0;}}}while(0);c[p>>2]=Wu(c[j>>2]|0,(c[j>>2]|0)+157804|0,c[(c[j>>2]|0)+26660>>2]|0)|0;if(mr(c[p>>2]|0)|0){c[i>>2]=c[p>>2];t=c[i>>2]|0;l=h;return t|0;}else{c[(c[j>>2]|0)+26656>>2]=3;c[(c[j>>2]|0)+26708>>2]=2;c[i>>2]=0;t=c[i>>2]|0;l=h;return t|0;}return 0;}function uy(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;g=l;l=l+112|0;h=g+100|0;i=g+96|0;j=g+92|0;k=g+88|0;m=g+84|0;n=g+80|0;o=g+76|0;p=g+72|0;q=g+68|0;r=g+64|0;s=g+60|0;t=g+56|0;u=g+52|0;v=g+48|0;w=g+44|0;x=g+40|0;y=g+36|0;z=g+32|0;A=g+28|0;B=g+24|0;C=g+20|0;D=g+16|0;E=g+12|0;F=g+8|0;G=g+4|0;H=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=c[m>>2];c[p>>2]=c[o>>2];c[q>>2]=(c[o>>2]|0)+(c[c[n>>2]>>2]|0);c[r>>2]=c[j>>2];c[s>>2]=c[r>>2];c[t>>2]=(c[r>>2]|0)+(c[c[k>>2]>>2]|0);c[u>>2]=1;a:while(1){if(!(c[u>>2]|0)){I=50;break;}switch(c[(c[i>>2]|0)+80>>2]|0){case 0:{I=4;break a;break;}case 1:{c[v>>2]=sx((c[i>>2]|0)+8|0,c[m>>2]|0,c[c[n>>2]>>2]|0)|0;j=(rr(c[v>>2]|0)|0)!=0;J=c[v>>2]|0;if(j){I=6;break a;}K=c[i>>2]|0;if(J|0){I=8;break a;}c[K+80>>2]=3;break;}case 2:{c[w>>2]=vy((c[i>>2]|0)+84+(c[(c[i>>2]|0)+68>>2]|0)|0,5-(c[(c[i>>2]|0)+68>>2]|0)|0,c[m>>2]|0,c[c[n>>2]>>2]|0)|0;j=(c[i>>2]|0)+68|0;c[j>>2]=(c[j>>2]|0)+(c[w>>2]|0);c[p>>2]=(c[p>>2]|0)+(c[w>>2]|0);c[w>>2]=sx((c[i>>2]|0)+8|0,(c[i>>2]|0)+84|0,c[(c[i>>2]|0)+68>>2]|0)|0;j=(rr(c[w>>2]|0)|0)!=0;L=c[w>>2]|0;if(j){I=11;break a;}if(L|0){I=13;break a;}else I=14;break;}case 3:{I=14;break;}case 4:{I=25;break;}case 5:{I=35;break;}case 6:{I=44;break;}default:{I=48;break a;}}do{if((I|0)==14){I=0;c[x>>2]=1<<c[(c[i>>2]|0)+8+8>>2];c[y>>2]=131072;if((c[(c[i>>2]|0)+44>>2]|0)>>>0<131072?(Dy(c[(c[i>>2]|0)+40>>2]|0),c[(c[i>>2]|0)+44>>2]=131072,j=Cy(131072)|0,c[(c[i>>2]|0)+40>>2]=j,(c[(c[i>>2]|0)+40>>2]|0)==0):0){I=16;break a;}if((c[(c[i>>2]|0)+56>>2]|0)>>>0<(c[x>>2]|0)>>>0?(Dy(c[(c[i>>2]|0)+52>>2]|0),c[(c[i>>2]|0)+56>>2]=c[x>>2],j=Cy(c[x>>2]|0)|0,c[(c[i>>2]|0)+52>>2]=j,(c[(c[i>>2]|0)+52>>2]|0)==0):0){I=19;break a;}if(c[(c[i>>2]|0)+76>>2]|0)lw(c[c[i>>2]>>2]|0,c[(c[i>>2]|0)+72>>2]|0,c[(c[i>>2]|0)+76>>2]|0);j=c[i>>2]|0;if(c[(c[i>>2]|0)+68>>2]|0){mE(c[j+40>>2]|0,(c[i>>2]|0)+84|0,c[(c[i>>2]|0)+68>>2]|0)|0;c[(c[i>>2]|0)+48>>2]=c[(c[i>>2]|0)+68>>2];c[(c[i>>2]|0)+68>>2]=0;c[(c[i>>2]|0)+80>>2]=5;break;}else{c[j+80>>2]=4;I=25;break;}}}while(0);do{if((I|0)==25){I=0;c[z>>2]=wy(c[c[i>>2]>>2]|0)|0;if(!(c[z>>2]|0)){c[(c[i>>2]|0)+80>>2]=0;c[u>>2]=0;break;}if(((c[q>>2]|0)-(c[p>>2]|0)|0)>>>0<(c[z>>2]|0)>>>0){if((c[p>>2]|0)==(c[q>>2]|0)){c[u>>2]=0;break;}else{c[(c[i>>2]|0)+80>>2]=5;I=35;break;}}else{c[A>>2]=xy(c[c[i>>2]>>2]|0,(c[(c[i>>2]|0)+52>>2]|0)+(c[(c[i>>2]|0)+60>>2]|0)|0,(c[(c[i>>2]|0)+56>>2]|0)-(c[(c[i>>2]|0)+60>>2]|0)|0,c[p>>2]|0,c[z>>2]|0)|0;if(rr(c[A>>2]|0)|0){I=29;break a;}c[p>>2]=(c[p>>2]|0)+(c[z>>2]|0);if(!(c[A>>2]|0))break;c[(c[i>>2]|0)+64>>2]=(c[(c[i>>2]|0)+60>>2]|0)+(c[A>>2]|0);c[(c[i>>2]|0)+80>>2]=6;break;}}}while(0);do{if((I|0)==35){I=0;c[B>>2]=wy(c[c[i>>2]>>2]|0)|0;c[C>>2]=(c[B>>2]|0)-(c[(c[i>>2]|0)+48>>2]|0);if((c[C>>2]|0)>>>0>((c[(c[i>>2]|0)+44>>2]|0)-(c[(c[i>>2]|0)+48>>2]|0)|0)>>>0){I=36;break a;}c[D>>2]=vy((c[(c[i>>2]|0)+40>>2]|0)+(c[(c[i>>2]|0)+48>>2]|0)|0,c[C>>2]|0,c[p>>2]|0,(c[q>>2]|0)-(c[p>>2]|0)|0)|0;c[p>>2]=(c[p>>2]|0)+(c[D>>2]|0);j=(c[i>>2]|0)+48|0;c[j>>2]=(c[j>>2]|0)+(c[D>>2]|0);if((c[D>>2]|0)>>>0<(c[C>>2]|0)>>>0){c[u>>2]=0;break;}c[E>>2]=xy(c[c[i>>2]>>2]|0,(c[(c[i>>2]|0)+52>>2]|0)+(c[(c[i>>2]|0)+60>>2]|0)|0,(c[(c[i>>2]|0)+56>>2]|0)-(c[(c[i>>2]|0)+60>>2]|0)|0,c[(c[i>>2]|0)+40>>2]|0,c[B>>2]|0)|0;if(rr(c[E>>2]|0)|0){I=40;break a;}c[(c[i>>2]|0)+48>>2]=0;j=c[i>>2]|0;if(c[E>>2]|0){c[(c[i>>2]|0)+64>>2]=(c[j+60>>2]|0)+(c[E>>2]|0);c[(c[i>>2]|0)+80>>2]=6;I=44;break;}else{c[j+80>>2]=4;break;}}}while(0);do{if((I|0)==44){I=0;c[F>>2]=(c[(c[i>>2]|0)+64>>2]|0)-(c[(c[i>>2]|0)+60>>2]|0);c[G>>2]=vy(c[s>>2]|0,(c[t>>2]|0)-(c[s>>2]|0)|0,(c[(c[i>>2]|0)+52>>2]|0)+(c[(c[i>>2]|0)+60>>2]|0)|0,c[F>>2]|0)|0;c[s>>2]=(c[s>>2]|0)+(c[G>>2]|0);j=(c[i>>2]|0)+60|0;c[j>>2]=(c[j>>2]|0)+(c[G>>2]|0);if((c[G>>2]|0)!=(c[F>>2]|0)){c[u>>2]=0;break;}c[(c[i>>2]|0)+80>>2]=4;if(((c[(c[i>>2]|0)+60>>2]|0)+131072|0)>>>0>(c[(c[i>>2]|0)+56>>2]|0)>>>0){c[(c[i>>2]|0)+64>>2]=0;c[(c[i>>2]|0)+60>>2]=0;}}}while(0);}switch(I|0){case 4:{c[h>>2]=-62;M=c[h>>2]|0;l=g;return M|0;}case 6:{c[h>>2]=J;M=c[h>>2]|0;l=g;return M|0;}case 8:{mE(K+84+(c[(c[i>>2]|0)+68>>2]|0)|0,c[m>>2]|0,c[c[n>>2]>>2]|0)|0;m=(c[i>>2]|0)+68|0;c[m>>2]=(c[m>>2]|0)+(c[c[n>>2]>>2]|0);c[c[k>>2]>>2]=0;c[(c[i>>2]|0)+80>>2]=2;c[h>>2]=(c[v>>2]|0)-(c[(c[i>>2]|0)+68>>2]|0);M=c[h>>2]|0;l=g;return M|0;}case 11:{c[h>>2]=L;M=c[h>>2]|0;l=g;return M|0;}case 13:{c[c[k>>2]>>2]=0;c[h>>2]=(c[w>>2]|0)-(c[(c[i>>2]|0)+68>>2]|0);M=c[h>>2]|0;l=g;return M|0;}case 16:{c[h>>2]=-64;M=c[h>>2]|0;l=g;return M|0;}case 19:{c[h>>2]=-64;M=c[h>>2]|0;l=g;return M|0;}case 29:{c[h>>2]=c[A>>2];M=c[h>>2]|0;l=g;return M|0;}case 36:{c[h>>2]=-20;M=c[h>>2]|0;l=g;return M|0;}case 40:{c[h>>2]=c[E>>2];M=c[h>>2]|0;l=g;return M|0;}case 48:{c[h>>2]=-1;M=c[h>>2]|0;l=g;return M|0;}case 50:{c[c[n>>2]>>2]=(c[p>>2]|0)-(c[o>>2]|0);c[c[k>>2]>>2]=(c[s>>2]|0)-(c[r>>2]|0);c[H>>2]=wy(c[c[i>>2]>>2]|0)|0;if((c[H>>2]|0)>>>0>3)c[H>>2]=(c[H>>2]|0)+3;c[H>>2]=(c[H>>2]|0)-(c[(c[i>>2]|0)+48>>2]|0);c[h>>2]=c[H>>2];M=c[h>>2]|0;l=g;return M|0;}}return 0;}function vy(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=(c[h>>2]|0)>>>0<(c[j>>2]|0)>>>0?c[h>>2]|0:c[j>>2]|0;mE(c[g>>2]|0,c[i>>2]|0,c[k>>2]|0)|0;l=f;return c[k>>2]|0;}function wy(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[(c[d>>2]|0)+10268>>2]|0;}function xy(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=l;l=l+48|0;i=h+40|0;j=h+36|0;k=h+32|0;m=h+28|0;n=h+24|0;o=h+20|0;p=h+16|0;q=h+8|0;r=h+4|0;s=h;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;if((c[o>>2]|0)!=(c[(c[j>>2]|0)+10268>>2]|0)){c[i>>2]=-72;t=c[i>>2]|0;l=h;return t|0;}yy(c[j>>2]|0,c[k>>2]|0);a:do{switch(c[(c[j>>2]|0)+10316>>2]|0){case 0:{if((c[o>>2]|0)!=5){c[i>>2]=-72;t=c[i>>2]|0;l=h;return t|0;}g=mw(c[j>>2]|0,c[n>>2]|0,5)|0;c[(c[j>>2]|0)+10272>>2]=g;g=(rr(c[(c[j>>2]|0)+10272>>2]|0)|0)!=0;f=c[j>>2]|0;if(g){c[i>>2]=c[f+10272>>2];t=c[i>>2]|0;l=h;return t|0;}g=f+141408|0;f=c[n>>2]|0;a[g>>0]=a[f>>0]|0;a[g+1>>0]=a[f+1>>0]|0;a[g+2>>0]=a[f+2>>0]|0;a[g+3>>0]=a[f+3>>0]|0;a[g+4>>0]=a[f+4>>0]|0;if((c[(c[j>>2]|0)+10272>>2]|0)>>>0<=5){c[(c[j>>2]|0)+10268>>2]=0;break a;}c[i>>2]=-1;t=c[i>>2]|0;l=h;return t|0;}case 1:break;case 2:{c[r>>2]=qr(c[n>>2]|0,3,q)|0;if(rr(c[r>>2]|0)|0){c[i>>2]=c[r>>2];t=c[i>>2]|0;l=h;return t|0;}if((c[q>>2]|0)==3){c[(c[j>>2]|0)+10268>>2]=0;c[(c[j>>2]|0)+10316>>2]=0;}else{c[(c[j>>2]|0)+10268>>2]=c[r>>2];c[(c[j>>2]|0)+10312>>2]=c[q>>2];c[(c[j>>2]|0)+10316>>2]=3;}c[i>>2]=0;t=c[i>>2]|0;l=h;return t|0;}case 3:{switch(c[(c[j>>2]|0)+10312>>2]|0){case 0:{c[s>>2]=ow(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;break;}case 1:{c[s>>2]=pw(c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;break;}case 2:{c[i>>2]=-1;t=c[i>>2]|0;l=h;return t|0;}case 3:{c[s>>2]=0;break;}default:{c[i>>2]=-1;t=c[i>>2]|0;l=h;return t|0;}}c[(c[j>>2]|0)+10316>>2]=2;c[(c[j>>2]|0)+10268>>2]=3;c[(c[j>>2]|0)+10252>>2]=(c[k>>2]|0)+(c[s>>2]|0);c[i>>2]=c[s>>2];t=c[i>>2]|0;l=h;return t|0;}default:{c[i>>2]=-1;t=c[i>>2]|0;l=h;return t|0;}}}while(0);c[p>>2]=nw(c[j>>2]|0,(c[j>>2]|0)+141408|0,c[(c[j>>2]|0)+10272>>2]|0)|0;if(rr(c[p>>2]|0)|0){c[i>>2]=c[p>>2];t=c[i>>2]|0;l=h;return t|0;}else{c[(c[j>>2]|0)+10268>>2]=3;c[(c[j>>2]|0)+10316>>2]=2;c[i>>2]=0;t=c[i>>2]|0;l=h;return t|0;}return 0;}function yy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;if((c[f>>2]|0)==(c[(c[e>>2]|0)+10252>>2]|0)){l=d;return;}c[(c[e>>2]|0)+10264>>2]=c[(c[e>>2]|0)+10252>>2];c[(c[e>>2]|0)+10260>>2]=(c[f>>2]|0)+(0-((c[(c[e>>2]|0)+10252>>2]|0)-(c[(c[e>>2]|0)+10256>>2]|0)));c[(c[e>>2]|0)+10256>>2]=c[f>>2];c[(c[e>>2]|0)+10252>>2]=c[f>>2];l=d;return;}function zy(){Ay(0);return;}function Ay(a){a=a|0;Wa(10928,20112);La(10944,20117,1,1,0);Sa(10952,19886,1,-128,127);Sa(10968,19891,1,-128,127);Sa(10960,19903,1,0,255);Sa(10976,19917,2,-32768,32767);Sa(10984,19923,2,0,65535);Sa(10992,20122,4,-2147483648,2147483647);Sa(11e3,20126,4,0,-1);Sa(11008,20139,4,-2147483648,2147483647);Sa(11016,20144,4,0,-1);Qa(11024,20168,4);Qa(11032,20280,8);Ua(10624,19495);Ua(10648,16561);Va(10672,4,16594);Pa(9840,16607);Ta(10696,0,16623);Ta(10704,0,16653);Ta(10712,1,16690);Ta(10720,2,16729);Ta(10728,3,16760);Ta(10736,4,16800);Ta(10744,5,16829);Ta(10752,4,16867);Ta(10760,5,16897);Ta(10704,0,16936);Ta(10712,1,16968);Ta(10720,2,17001);Ta(10728,3,17034);Ta(10736,4,17068);Ta(10744,5,17101);Ta(10768,6,17135);Ta(10776,7,17166);Ta(10784,7,17198);return;}function By(a){a=a|0;return Oz(c[a+4>>2]|0)|0;}function Cy(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0;b=l;l=l+16|0;d=b;do{if(a>>>0<245){e=a>>>0<11?16:a+11&-8;f=e>>>3;g=c[5418]|0;h=g>>>f;if(h&3|0){i=(h&1^1)+f|0;j=21712+(i<<1<<2)|0;k=j+8|0;m=c[k>>2]|0;n=m+8|0;o=c[n>>2]|0;if((o|0)==(j|0))c[5418]=g&~(1<<i);else{c[o+12>>2]=j;c[k>>2]=o;}o=i<<3;c[m+4>>2]=o|3;i=m+o+4|0;c[i>>2]=c[i>>2]|1;p=n;l=b;return p|0;}n=c[5420]|0;if(e>>>0>n>>>0){if(h|0){i=2<<f;o=h<<f&(i|0-i);i=(o&0-o)+-1|0;o=i>>>12&16;f=i>>>o;i=f>>>5&8;h=f>>>i;f=h>>>2&4;m=h>>>f;h=m>>>1&2;k=m>>>h;m=k>>>1&1;j=(i|o|f|h|m)+(k>>>m)|0;m=21712+(j<<1<<2)|0;k=m+8|0;h=c[k>>2]|0;f=h+8|0;o=c[f>>2]|0;if((o|0)==(m|0)){i=g&~(1<<j);c[5418]=i;q=i;}else{c[o+12>>2]=m;c[k>>2]=o;q=g;}o=j<<3;j=o-e|0;c[h+4>>2]=e|3;k=h+e|0;c[k+4>>2]=j|1;c[h+o>>2]=j;if(n|0){o=c[5423]|0;h=n>>>3;m=21712+(h<<1<<2)|0;i=1<<h;if(!(q&i)){c[5418]=q|i;r=m;s=m+8|0;}else{i=m+8|0;r=c[i>>2]|0;s=i;}c[s>>2]=o;c[r+12>>2]=o;c[o+8>>2]=r;c[o+12>>2]=m;}c[5420]=j;c[5423]=k;p=f;l=b;return p|0;}f=c[5419]|0;if(f){k=(f&0-f)+-1|0;j=k>>>12&16;m=k>>>j;k=m>>>5&8;o=m>>>k;m=o>>>2&4;i=o>>>m;o=i>>>1&2;h=i>>>o;i=h>>>1&1;t=c[21976+((k|j|m|o|i)+(h>>>i)<<2)>>2]|0;i=t;h=t;o=(c[t+4>>2]&-8)-e|0;while(1){t=c[i+16>>2]|0;if(!t){m=c[i+20>>2]|0;if(!m)break;else u=m;}else u=t;t=(c[u+4>>2]&-8)-e|0;m=t>>>0<o>>>0;i=u;h=m?u:h;o=m?t:o;}i=h+e|0;if(i>>>0>h>>>0){t=c[h+24>>2]|0;m=c[h+12>>2]|0;do{if((m|0)==(h|0)){j=h+20|0;k=c[j>>2]|0;if(!k){v=h+16|0;w=c[v>>2]|0;if(!w){x=0;break;}else{y=w;z=v;}}else{y=k;z=j;}j=y;k=z;while(1){v=j+20|0;w=c[v>>2]|0;if(!w){A=j+16|0;B=c[A>>2]|0;if(!B)break;else{C=B;D=A;}}else{C=w;D=v;}j=C;k=D;}c[k>>2]=0;x=j;}else{v=c[h+8>>2]|0;c[v+12>>2]=m;c[m+8>>2]=v;x=m;}}while(0);do{if(t|0){m=c[h+28>>2]|0;v=21976+(m<<2)|0;if((h|0)==(c[v>>2]|0)){c[v>>2]=x;if(!x){c[5419]=f&~(1<<m);break;}}else{m=t+16|0;c[((c[m>>2]|0)==(h|0)?m:t+20|0)>>2]=x;if(!x)break;}c[x+24>>2]=t;m=c[h+16>>2]|0;if(m|0){c[x+16>>2]=m;c[m+24>>2]=x;}m=c[h+20>>2]|0;if(m|0){c[x+20>>2]=m;c[m+24>>2]=x;}}}while(0);if(o>>>0<16){t=o+e|0;c[h+4>>2]=t|3;f=h+t+4|0;c[f>>2]=c[f>>2]|1;}else{c[h+4>>2]=e|3;c[i+4>>2]=o|1;c[i+o>>2]=o;if(n|0){f=c[5423]|0;t=n>>>3;m=21712+(t<<1<<2)|0;v=1<<t;if(!(v&g)){c[5418]=v|g;E=m;F=m+8|0;}else{v=m+8|0;E=c[v>>2]|0;F=v;}c[F>>2]=f;c[E+12>>2]=f;c[f+8>>2]=E;c[f+12>>2]=m;}c[5420]=o;c[5423]=i;}p=h+8|0;l=b;return p|0;}else G=e;}else G=e;}else G=e;}else if(a>>>0<=4294967231){m=a+11|0;f=m&-8;v=c[5419]|0;if(v){t=0-f|0;w=m>>>8;if(w){if(f>>>0>16777215)H=31;else{m=(w+1048320|0)>>>16&8;A=w<<m;w=(A+520192|0)>>>16&4;B=A<<w;A=(B+245760|0)>>>16&2;I=14-(w|m|A)+(B<<A>>>15)|0;H=f>>>(I+7|0)&1|I<<1;}}else H=0;I=c[21976+(H<<2)>>2]|0;a:do{if(!I){J=0;K=0;L=t;M=61;}else{A=0;B=t;m=I;w=f<<((H|0)==31?0:25-(H>>>1)|0);N=0;while(1){O=(c[m+4>>2]&-8)-f|0;if(O>>>0<B>>>0){if(!O){P=m;Q=0;R=m;M=65;break a;}else{S=m;T=O;}}else{S=A;T=B;}O=c[m+20>>2]|0;m=c[m+16+(w>>>31<<2)>>2]|0;U=(O|0)==0|(O|0)==(m|0)?N:O;if(!m){J=U;K=S;L=T;M=61;break;}else{A=S;B=T;w=w<<1;N=U;}}}}while(0);if((M|0)==61){if((J|0)==0&(K|0)==0){I=2<<H;t=(I|0-I)&v;if(!t){G=f;break;}I=(t&0-t)+-1|0;t=I>>>12&16;e=I>>>t;I=e>>>5&8;h=e>>>I;e=h>>>2&4;i=h>>>e;h=i>>>1&2;o=i>>>h;i=o>>>1&1;V=0;W=c[21976+((I|t|e|h|i)+(o>>>i)<<2)>>2]|0;}else{V=K;W=J;}if(!W){X=V;Y=L;}else{P=V;Q=L;R=W;M=65;}}if((M|0)==65){i=P;o=Q;h=R;while(1){e=(c[h+4>>2]&-8)-f|0;t=e>>>0<o>>>0;I=t?e:o;e=t?h:i;t=c[h+16>>2]|0;if(!t)Z=c[h+20>>2]|0;else Z=t;if(!Z){X=e;Y=I;break;}else{i=e;o=I;h=Z;}}}if(((X|0)!=0?Y>>>0<((c[5420]|0)-f|0)>>>0:0)?(h=X+f|0,h>>>0>X>>>0):0){o=c[X+24>>2]|0;i=c[X+12>>2]|0;do{if((i|0)==(X|0)){I=X+20|0;e=c[I>>2]|0;if(!e){t=X+16|0;g=c[t>>2]|0;if(!g){_=0;break;}else{$=g;aa=t;}}else{$=e;aa=I;}I=$;e=aa;while(1){t=I+20|0;g=c[t>>2]|0;if(!g){n=I+16|0;N=c[n>>2]|0;if(!N)break;else{ba=N;ca=n;}}else{ba=g;ca=t;}I=ba;e=ca;}c[e>>2]=0;_=I;}else{t=c[X+8>>2]|0;c[t+12>>2]=i;c[i+8>>2]=t;_=i;}}while(0);do{if(o){i=c[X+28>>2]|0;t=21976+(i<<2)|0;if((X|0)==(c[t>>2]|0)){c[t>>2]=_;if(!_){t=v&~(1<<i);c[5419]=t;da=t;break;}}else{t=o+16|0;c[((c[t>>2]|0)==(X|0)?t:o+20|0)>>2]=_;if(!_){da=v;break;}}c[_+24>>2]=o;t=c[X+16>>2]|0;if(t|0){c[_+16>>2]=t;c[t+24>>2]=_;}t=c[X+20>>2]|0;if(t){c[_+20>>2]=t;c[t+24>>2]=_;da=v;}else da=v;}else da=v;}while(0);b:do{if(Y>>>0<16){v=Y+f|0;c[X+4>>2]=v|3;o=X+v+4|0;c[o>>2]=c[o>>2]|1;}else{c[X+4>>2]=f|3;c[h+4>>2]=Y|1;c[h+Y>>2]=Y;o=Y>>>3;if(Y>>>0<256){v=21712+(o<<1<<2)|0;t=c[5418]|0;i=1<<o;if(!(t&i)){c[5418]=t|i;ea=v;fa=v+8|0;}else{i=v+8|0;ea=c[i>>2]|0;fa=i;}c[fa>>2]=h;c[ea+12>>2]=h;c[h+8>>2]=ea;c[h+12>>2]=v;break;}v=Y>>>8;if(v){if(Y>>>0>16777215)ga=31;else{i=(v+1048320|0)>>>16&8;t=v<<i;v=(t+520192|0)>>>16&4;o=t<<v;t=(o+245760|0)>>>16&2;g=14-(v|i|t)+(o<<t>>>15)|0;ga=Y>>>(g+7|0)&1|g<<1;}}else ga=0;g=21976+(ga<<2)|0;c[h+28>>2]=ga;t=h+16|0;c[t+4>>2]=0;c[t>>2]=0;t=1<<ga;if(!(da&t)){c[5419]=da|t;c[g>>2]=h;c[h+24>>2]=g;c[h+12>>2]=h;c[h+8>>2]=h;break;}t=c[g>>2]|0;c:do{if((c[t+4>>2]&-8|0)==(Y|0))ha=t;else{g=Y<<((ga|0)==31?0:25-(ga>>>1)|0);o=t;while(1){ia=o+16+(g>>>31<<2)|0;i=c[ia>>2]|0;if(!i)break;if((c[i+4>>2]&-8|0)==(Y|0)){ha=i;break c;}else{g=g<<1;o=i;}}c[ia>>2]=h;c[h+24>>2]=o;c[h+12>>2]=h;c[h+8>>2]=h;break b;}}while(0);t=ha+8|0;I=c[t>>2]|0;c[I+12>>2]=h;c[t>>2]=h;c[h+8>>2]=I;c[h+12>>2]=ha;c[h+24>>2]=0;}}while(0);p=X+8|0;l=b;return p|0;}else G=f;}else G=f;}else G=-1;}while(0);X=c[5420]|0;if(X>>>0>=G>>>0){ha=X-G|0;ia=c[5423]|0;if(ha>>>0>15){Y=ia+G|0;c[5423]=Y;c[5420]=ha;c[Y+4>>2]=ha|1;c[ia+X>>2]=ha;c[ia+4>>2]=G|3;}else{c[5420]=0;c[5423]=0;c[ia+4>>2]=X|3;ha=ia+X+4|0;c[ha>>2]=c[ha>>2]|1;}p=ia+8|0;l=b;return p|0;}ia=c[5421]|0;if(ia>>>0>G>>>0){ha=ia-G|0;c[5421]=ha;X=c[5424]|0;Y=X+G|0;c[5424]=Y;c[Y+4>>2]=ha|1;c[X+4>>2]=G|3;p=X+8|0;l=b;return p|0;}if(!(c[5536]|0)){c[5538]=4096;c[5537]=4096;c[5539]=-1;c[5540]=-1;c[5541]=0;c[5529]=0;c[5536]=d&-16^1431655768;ja=4096;}else ja=c[5538]|0;d=G+48|0;X=G+47|0;ha=ja+X|0;Y=0-ja|0;ja=ha&Y;if(ja>>>0<=G>>>0){p=0;l=b;return p|0;}ga=c[5528]|0;if(ga|0?(da=c[5526]|0,ea=da+ja|0,ea>>>0<=da>>>0|ea>>>0>ga>>>0):0){p=0;l=b;return p|0;}d:do{if(!(c[5529]&4)){ga=c[5424]|0;e:do{if(ga){ea=22120;while(1){da=c[ea>>2]|0;if(da>>>0<=ga>>>0?(da+(c[ea+4>>2]|0)|0)>>>0>ga>>>0:0)break;da=c[ea+8>>2]|0;if(!da){M=128;break e;}else ea=da;}da=ha-ia&Y;if(da>>>0<2147483647){fa=pE(da|0)|0;if((fa|0)==((c[ea>>2]|0)+(c[ea+4>>2]|0)|0)){if((fa|0)==(-1|0))ka=da;else{la=da;ma=fa;M=145;break d;}}else{na=fa;oa=da;M=136;}}else ka=0;}else M=128;}while(0);do{if((M|0)==128){ga=pE(0)|0;if((ga|0)!=(-1|0)?(f=ga,da=c[5537]|0,fa=da+-1|0,_=((fa&f|0)==0?0:(fa+f&0-da)-f|0)+ja|0,f=c[5526]|0,da=_+f|0,_>>>0>G>>>0&_>>>0<2147483647):0){fa=c[5528]|0;if(fa|0?da>>>0<=f>>>0|da>>>0>fa>>>0:0){ka=0;break;}fa=pE(_|0)|0;if((fa|0)==(ga|0)){la=_;ma=ga;M=145;break d;}else{na=fa;oa=_;M=136;}}else ka=0;}}while(0);do{if((M|0)==136){_=0-oa|0;if(!(d>>>0>oa>>>0&(oa>>>0<2147483647&(na|0)!=(-1|0))))if((na|0)==(-1|0)){ka=0;break;}else{la=oa;ma=na;M=145;break d;}fa=c[5538]|0;ga=X-oa+fa&0-fa;if(ga>>>0>=2147483647){la=oa;ma=na;M=145;break d;}if((pE(ga|0)|0)==(-1|0)){pE(_|0)|0;ka=0;break;}else{la=ga+oa|0;ma=na;M=145;break d;}}}while(0);c[5529]=c[5529]|4;pa=ka;M=143;}else{pa=0;M=143;}}while(0);if(((M|0)==143?ja>>>0<2147483647:0)?(ka=pE(ja|0)|0,ja=pE(0)|0,na=ja-ka|0,oa=na>>>0>(G+40|0)>>>0,!((ka|0)==(-1|0)|oa^1|ka>>>0<ja>>>0&((ka|0)!=(-1|0)&(ja|0)!=(-1|0))^1)):0){la=oa?na:pa;ma=ka;M=145;}if((M|0)==145){ka=(c[5526]|0)+la|0;c[5526]=ka;if(ka>>>0>(c[5527]|0)>>>0)c[5527]=ka;ka=c[5424]|0;f:do{if(ka){pa=22120;while(1){qa=c[pa>>2]|0;ra=c[pa+4>>2]|0;if((ma|0)==(qa+ra|0)){M=154;break;}na=c[pa+8>>2]|0;if(!na)break;else pa=na;}if(((M|0)==154?(na=pa+4|0,(c[pa+12>>2]&8|0)==0):0)?ma>>>0>ka>>>0&qa>>>0<=ka>>>0:0){c[na>>2]=ra+la;na=(c[5421]|0)+la|0;oa=ka+8|0;ja=(oa&7|0)==0?0:0-oa&7;oa=ka+ja|0;X=na-ja|0;c[5424]=oa;c[5421]=X;c[oa+4>>2]=X|1;c[ka+na+4>>2]=40;c[5425]=c[5540];break;}if(ma>>>0<(c[5422]|0)>>>0)c[5422]=ma;na=ma+la|0;X=22120;while(1){if((c[X>>2]|0)==(na|0)){M=162;break;}oa=c[X+8>>2]|0;if(!oa)break;else X=oa;}if((M|0)==162?(c[X+12>>2]&8|0)==0:0){c[X>>2]=ma;pa=X+4|0;c[pa>>2]=(c[pa>>2]|0)+la;pa=ma+8|0;oa=ma+((pa&7|0)==0?0:0-pa&7)|0;pa=na+8|0;ja=na+((pa&7|0)==0?0:0-pa&7)|0;pa=oa+G|0;d=ja-oa-G|0;c[oa+4>>2]=G|3;g:do{if((ka|0)==(ja|0)){Y=(c[5421]|0)+d|0;c[5421]=Y;c[5424]=pa;c[pa+4>>2]=Y|1;}else{if((c[5423]|0)==(ja|0)){Y=(c[5420]|0)+d|0;c[5420]=Y;c[5423]=pa;c[pa+4>>2]=Y|1;c[pa+Y>>2]=Y;break;}Y=c[ja+4>>2]|0;if((Y&3|0)==1){ia=Y&-8;ha=Y>>>3;h:do{if(Y>>>0<256){ga=c[ja+8>>2]|0;_=c[ja+12>>2]|0;if((_|0)==(ga|0)){c[5418]=c[5418]&~(1<<ha);break;}else{c[ga+12>>2]=_;c[_+8>>2]=ga;break;}}else{ga=c[ja+24>>2]|0;_=c[ja+12>>2]|0;do{if((_|0)==(ja|0)){fa=ja+16|0;da=fa+4|0;f=c[da>>2]|0;if(!f){ca=c[fa>>2]|0;if(!ca){sa=0;break;}else{ta=ca;ua=fa;}}else{ta=f;ua=da;}da=ta;f=ua;while(1){fa=da+20|0;ca=c[fa>>2]|0;if(!ca){ba=da+16|0;aa=c[ba>>2]|0;if(!aa)break;else{va=aa;wa=ba;}}else{va=ca;wa=fa;}da=va;f=wa;}c[f>>2]=0;sa=da;}else{fa=c[ja+8>>2]|0;c[fa+12>>2]=_;c[_+8>>2]=fa;sa=_;}}while(0);if(!ga)break;_=c[ja+28>>2]|0;o=21976+(_<<2)|0;do{if((c[o>>2]|0)!=(ja|0)){fa=ga+16|0;c[((c[fa>>2]|0)==(ja|0)?fa:ga+20|0)>>2]=sa;if(!sa)break h;}else{c[o>>2]=sa;if(sa|0)break;c[5419]=c[5419]&~(1<<_);break h;}}while(0);c[sa+24>>2]=ga;_=ja+16|0;o=c[_>>2]|0;if(o|0){c[sa+16>>2]=o;c[o+24>>2]=sa;}o=c[_+4>>2]|0;if(!o)break;c[sa+20>>2]=o;c[o+24>>2]=sa;}}while(0);xa=ja+ia|0;ya=ia+d|0;}else{xa=ja;ya=d;}ha=xa+4|0;c[ha>>2]=c[ha>>2]&-2;c[pa+4>>2]=ya|1;c[pa+ya>>2]=ya;ha=ya>>>3;if(ya>>>0<256){Y=21712+(ha<<1<<2)|0;ea=c[5418]|0;o=1<<ha;if(!(ea&o)){c[5418]=ea|o;za=Y;Aa=Y+8|0;}else{o=Y+8|0;za=c[o>>2]|0;Aa=o;}c[Aa>>2]=pa;c[za+12>>2]=pa;c[pa+8>>2]=za;c[pa+12>>2]=Y;break;}Y=ya>>>8;do{if(!Y)Ba=0;else{if(ya>>>0>16777215){Ba=31;break;}o=(Y+1048320|0)>>>16&8;ea=Y<<o;ha=(ea+520192|0)>>>16&4;_=ea<<ha;ea=(_+245760|0)>>>16&2;fa=14-(ha|o|ea)+(_<<ea>>>15)|0;Ba=ya>>>(fa+7|0)&1|fa<<1;}}while(0);Y=21976+(Ba<<2)|0;c[pa+28>>2]=Ba;ia=pa+16|0;c[ia+4>>2]=0;c[ia>>2]=0;ia=c[5419]|0;fa=1<<Ba;if(!(ia&fa)){c[5419]=ia|fa;c[Y>>2]=pa;c[pa+24>>2]=Y;c[pa+12>>2]=pa;c[pa+8>>2]=pa;break;}fa=c[Y>>2]|0;i:do{if((c[fa+4>>2]&-8|0)==(ya|0))Ca=fa;else{Y=ya<<((Ba|0)==31?0:25-(Ba>>>1)|0);ia=fa;while(1){Da=ia+16+(Y>>>31<<2)|0;ea=c[Da>>2]|0;if(!ea)break;if((c[ea+4>>2]&-8|0)==(ya|0)){Ca=ea;break i;}else{Y=Y<<1;ia=ea;}}c[Da>>2]=pa;c[pa+24>>2]=ia;c[pa+12>>2]=pa;c[pa+8>>2]=pa;break g;}}while(0);fa=Ca+8|0;Y=c[fa>>2]|0;c[Y+12>>2]=pa;c[fa>>2]=pa;c[pa+8>>2]=Y;c[pa+12>>2]=Ca;c[pa+24>>2]=0;}}while(0);p=oa+8|0;l=b;return p|0;}pa=22120;while(1){d=c[pa>>2]|0;if(d>>>0<=ka>>>0?(Ea=d+(c[pa+4>>2]|0)|0,Ea>>>0>ka>>>0):0)break;pa=c[pa+8>>2]|0;}pa=Ea+-47|0;oa=pa+8|0;d=pa+((oa&7|0)==0?0:0-oa&7)|0;oa=ka+16|0;pa=d>>>0<oa>>>0?ka:d;d=pa+8|0;ja=la+-40|0;na=ma+8|0;X=(na&7|0)==0?0:0-na&7;na=ma+X|0;Y=ja-X|0;c[5424]=na;c[5421]=Y;c[na+4>>2]=Y|1;c[ma+ja+4>>2]=40;c[5425]=c[5540];ja=pa+4|0;c[ja>>2]=27;c[d>>2]=c[5530];c[d+4>>2]=c[5531];c[d+8>>2]=c[5532];c[d+12>>2]=c[5533];c[5530]=ma;c[5531]=la;c[5533]=0;c[5532]=d;d=pa+24|0;do{Y=d;d=d+4|0;c[d>>2]=7;}while((Y+8|0)>>>0<Ea>>>0);if((pa|0)!=(ka|0)){d=pa-ka|0;c[ja>>2]=c[ja>>2]&-2;c[ka+4>>2]=d|1;c[pa>>2]=d;Y=d>>>3;if(d>>>0<256){na=21712+(Y<<1<<2)|0;X=c[5418]|0;fa=1<<Y;if(!(X&fa)){c[5418]=X|fa;Fa=na;Ga=na+8|0;}else{fa=na+8|0;Fa=c[fa>>2]|0;Ga=fa;}c[Ga>>2]=ka;c[Fa+12>>2]=ka;c[ka+8>>2]=Fa;c[ka+12>>2]=na;break;}na=d>>>8;if(na){if(d>>>0>16777215)Ha=31;else{fa=(na+1048320|0)>>>16&8;X=na<<fa;na=(X+520192|0)>>>16&4;Y=X<<na;X=(Y+245760|0)>>>16&2;ga=14-(na|fa|X)+(Y<<X>>>15)|0;Ha=d>>>(ga+7|0)&1|ga<<1;}}else Ha=0;ga=21976+(Ha<<2)|0;c[ka+28>>2]=Ha;c[ka+20>>2]=0;c[oa>>2]=0;X=c[5419]|0;Y=1<<Ha;if(!(X&Y)){c[5419]=X|Y;c[ga>>2]=ka;c[ka+24>>2]=ga;c[ka+12>>2]=ka;c[ka+8>>2]=ka;break;}Y=c[ga>>2]|0;j:do{if((c[Y+4>>2]&-8|0)==(d|0))Ia=Y;else{ga=d<<((Ha|0)==31?0:25-(Ha>>>1)|0);X=Y;while(1){Ja=X+16+(ga>>>31<<2)|0;fa=c[Ja>>2]|0;if(!fa)break;if((c[fa+4>>2]&-8|0)==(d|0)){Ia=fa;break j;}else{ga=ga<<1;X=fa;}}c[Ja>>2]=ka;c[ka+24>>2]=X;c[ka+12>>2]=ka;c[ka+8>>2]=ka;break f;}}while(0);d=Ia+8|0;Y=c[d>>2]|0;c[Y+12>>2]=ka;c[d>>2]=ka;c[ka+8>>2]=Y;c[ka+12>>2]=Ia;c[ka+24>>2]=0;}}else{Y=c[5422]|0;if((Y|0)==0|ma>>>0<Y>>>0)c[5422]=ma;c[5530]=ma;c[5531]=la;c[5533]=0;c[5427]=c[5536];c[5426]=-1;c[5431]=21712;c[5430]=21712;c[5433]=21720;c[5432]=21720;c[5435]=21728;c[5434]=21728;c[5437]=21736;c[5436]=21736;c[5439]=21744;c[5438]=21744;c[5441]=21752;c[5440]=21752;c[5443]=21760;c[5442]=21760;c[5445]=21768;c[5444]=21768;c[5447]=21776;c[5446]=21776;c[5449]=21784;c[5448]=21784;c[5451]=21792;c[5450]=21792;c[5453]=21800;c[5452]=21800;c[5455]=21808;c[5454]=21808;c[5457]=21816;c[5456]=21816;c[5459]=21824;c[5458]=21824;c[5461]=21832;c[5460]=21832;c[5463]=21840;c[5462]=21840;c[5465]=21848;c[5464]=21848;c[5467]=21856;c[5466]=21856;c[5469]=21864;c[5468]=21864;c[5471]=21872;c[5470]=21872;c[5473]=21880;c[5472]=21880;c[5475]=21888;c[5474]=21888;c[5477]=21896;c[5476]=21896;c[5479]=21904;c[5478]=21904;c[5481]=21912;c[5480]=21912;c[5483]=21920;c[5482]=21920;c[5485]=21928;c[5484]=21928;c[5487]=21936;c[5486]=21936;c[5489]=21944;c[5488]=21944;c[5491]=21952;c[5490]=21952;c[5493]=21960;c[5492]=21960;Y=la+-40|0;d=ma+8|0;oa=(d&7|0)==0?0:0-d&7;d=ma+oa|0;pa=Y-oa|0;c[5424]=d;c[5421]=pa;c[d+4>>2]=pa|1;c[ma+Y+4>>2]=40;c[5425]=c[5540];}}while(0);ma=c[5421]|0;if(ma>>>0>G>>>0){la=ma-G|0;c[5421]=la;ma=c[5424]|0;ka=ma+G|0;c[5424]=ka;c[ka+4>>2]=la|1;c[ma+4>>2]=G|3;p=ma+8|0;l=b;return p|0;}}c[(My()|0)>>2]=12;p=0;l=b;return p|0;}function Dy(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;if(!a)return;b=a+-8|0;d=c[5422]|0;e=c[a+-4>>2]|0;a=e&-8;f=b+a|0;do{if(!(e&1)){g=c[b>>2]|0;if(!(e&3))return;h=b+(0-g)|0;i=g+a|0;if(h>>>0<d>>>0)return;if((c[5423]|0)==(h|0)){j=f+4|0;k=c[j>>2]|0;if((k&3|0)!=3){l=h;m=i;n=h;break;}c[5420]=i;c[j>>2]=k&-2;c[h+4>>2]=i|1;c[h+i>>2]=i;return;}k=g>>>3;if(g>>>0<256){g=c[h+8>>2]|0;j=c[h+12>>2]|0;if((j|0)==(g|0)){c[5418]=c[5418]&~(1<<k);l=h;m=i;n=h;break;}else{c[g+12>>2]=j;c[j+8>>2]=g;l=h;m=i;n=h;break;}}g=c[h+24>>2]|0;j=c[h+12>>2]|0;do{if((j|0)==(h|0)){k=h+16|0;o=k+4|0;p=c[o>>2]|0;if(!p){q=c[k>>2]|0;if(!q){r=0;break;}else{s=q;t=k;}}else{s=p;t=o;}o=s;p=t;while(1){k=o+20|0;q=c[k>>2]|0;if(!q){u=o+16|0;v=c[u>>2]|0;if(!v)break;else{w=v;x=u;}}else{w=q;x=k;}o=w;p=x;}c[p>>2]=0;r=o;}else{k=c[h+8>>2]|0;c[k+12>>2]=j;c[j+8>>2]=k;r=j;}}while(0);if(g){j=c[h+28>>2]|0;k=21976+(j<<2)|0;if((c[k>>2]|0)==(h|0)){c[k>>2]=r;if(!r){c[5419]=c[5419]&~(1<<j);l=h;m=i;n=h;break;}}else{j=g+16|0;c[((c[j>>2]|0)==(h|0)?j:g+20|0)>>2]=r;if(!r){l=h;m=i;n=h;break;}}c[r+24>>2]=g;j=h+16|0;k=c[j>>2]|0;if(k|0){c[r+16>>2]=k;c[k+24>>2]=r;}k=c[j+4>>2]|0;if(k){c[r+20>>2]=k;c[k+24>>2]=r;l=h;m=i;n=h;}else{l=h;m=i;n=h;}}else{l=h;m=i;n=h;}}else{l=b;m=a;n=b;}}while(0);if(n>>>0>=f>>>0)return;b=f+4|0;a=c[b>>2]|0;if(!(a&1))return;if(!(a&2)){if((c[5424]|0)==(f|0)){r=(c[5421]|0)+m|0;c[5421]=r;c[5424]=l;c[l+4>>2]=r|1;if((l|0)!=(c[5423]|0))return;c[5423]=0;c[5420]=0;return;}if((c[5423]|0)==(f|0)){r=(c[5420]|0)+m|0;c[5420]=r;c[5423]=n;c[l+4>>2]=r|1;c[n+r>>2]=r;return;}r=(a&-8)+m|0;x=a>>>3;do{if(a>>>0<256){w=c[f+8>>2]|0;t=c[f+12>>2]|0;if((t|0)==(w|0)){c[5418]=c[5418]&~(1<<x);break;}else{c[w+12>>2]=t;c[t+8>>2]=w;break;}}else{w=c[f+24>>2]|0;t=c[f+12>>2]|0;do{if((t|0)==(f|0)){s=f+16|0;d=s+4|0;e=c[d>>2]|0;if(!e){k=c[s>>2]|0;if(!k){y=0;break;}else{z=k;A=s;}}else{z=e;A=d;}d=z;e=A;while(1){s=d+20|0;k=c[s>>2]|0;if(!k){j=d+16|0;q=c[j>>2]|0;if(!q)break;else{B=q;C=j;}}else{B=k;C=s;}d=B;e=C;}c[e>>2]=0;y=d;}else{o=c[f+8>>2]|0;c[o+12>>2]=t;c[t+8>>2]=o;y=t;}}while(0);if(w|0){t=c[f+28>>2]|0;h=21976+(t<<2)|0;if((c[h>>2]|0)==(f|0)){c[h>>2]=y;if(!y){c[5419]=c[5419]&~(1<<t);break;}}else{t=w+16|0;c[((c[t>>2]|0)==(f|0)?t:w+20|0)>>2]=y;if(!y)break;}c[y+24>>2]=w;t=f+16|0;h=c[t>>2]|0;if(h|0){c[y+16>>2]=h;c[h+24>>2]=y;}h=c[t+4>>2]|0;if(h|0){c[y+20>>2]=h;c[h+24>>2]=y;}}}}while(0);c[l+4>>2]=r|1;c[n+r>>2]=r;if((l|0)==(c[5423]|0)){c[5420]=r;return;}else D=r;}else{c[b>>2]=a&-2;c[l+4>>2]=m|1;c[n+m>>2]=m;D=m;}m=D>>>3;if(D>>>0<256){n=21712+(m<<1<<2)|0;a=c[5418]|0;b=1<<m;if(!(a&b)){c[5418]=a|b;E=n;F=n+8|0;}else{b=n+8|0;E=c[b>>2]|0;F=b;}c[F>>2]=l;c[E+12>>2]=l;c[l+8>>2]=E;c[l+12>>2]=n;return;}n=D>>>8;if(n){if(D>>>0>16777215)G=31;else{E=(n+1048320|0)>>>16&8;F=n<<E;n=(F+520192|0)>>>16&4;b=F<<n;F=(b+245760|0)>>>16&2;a=14-(n|E|F)+(b<<F>>>15)|0;G=D>>>(a+7|0)&1|a<<1;}}else G=0;a=21976+(G<<2)|0;c[l+28>>2]=G;c[l+20>>2]=0;c[l+16>>2]=0;F=c[5419]|0;b=1<<G;a:do{if(!(F&b)){c[5419]=F|b;c[a>>2]=l;c[l+24>>2]=a;c[l+12>>2]=l;c[l+8>>2]=l;}else{E=c[a>>2]|0;b:do{if((c[E+4>>2]&-8|0)==(D|0))H=E;else{n=D<<((G|0)==31?0:25-(G>>>1)|0);m=E;while(1){I=m+16+(n>>>31<<2)|0;r=c[I>>2]|0;if(!r)break;if((c[r+4>>2]&-8|0)==(D|0)){H=r;break b;}else{n=n<<1;m=r;}}c[I>>2]=l;c[l+24>>2]=m;c[l+12>>2]=l;c[l+8>>2]=l;break a;}}while(0);E=H+8|0;w=c[E>>2]|0;c[w+12>>2]=l;c[E>>2]=l;c[l+8>>2]=w;c[l+12>>2]=H;c[l+24>>2]=0;}}while(0);l=(c[5426]|0)+-1|0;c[5426]=l;if(l|0)return;l=22128;while(1){H=c[l>>2]|0;if(!H)break;else l=H+8|0;}c[5426]=-1;return;}function Ey(a,b){a=a|0;b=b|0;var d=0,e=0;if(a){d=N(b,a)|0;if((b|a)>>>0>65535)e=((d>>>0)/(a>>>0)|0|0)==(b|0)?d:-1;else e=d;}else e=0;d=Cy(e)|0;if(!d)return d|0;if(!(c[d+-4>>2]&3))return d|0;oE(d|0,0,e|0)|0;return d|0;}function Fy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;if(!a){d=Cy(b)|0;return d|0;}if(b>>>0>4294967231){c[(My()|0)>>2]=12;d=0;return d|0;}e=Gy(a+-8|0,b>>>0<11?16:b+11&-8)|0;if(e|0){d=e+8|0;return d|0;}e=Cy(b)|0;if(!e){d=0;return d|0;}f=c[a+-4>>2]|0;g=(f&-8)-((f&3|0)==0?8:4)|0;mE(e|0,a|0,(g>>>0<b>>>0?g:b)|0)|0;Dy(a);d=e;return d|0;}function Gy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;d=a+4|0;e=c[d>>2]|0;f=e&-8;g=a+f|0;if(!(e&3)){if(b>>>0<256){h=0;return h|0;}if(f>>>0>=(b+4|0)>>>0?(f-b|0)>>>0<=c[5538]<<1>>>0:0){h=a;return h|0;}h=0;return h|0;}if(f>>>0>=b>>>0){i=f-b|0;if(i>>>0<=15){h=a;return h|0;}j=a+b|0;c[d>>2]=e&1|b|2;c[j+4>>2]=i|3;k=g+4|0;c[k>>2]=c[k>>2]|1;Hy(j,i);h=a;return h|0;}if((c[5424]|0)==(g|0)){i=(c[5421]|0)+f|0;j=i-b|0;k=a+b|0;if(i>>>0<=b>>>0){h=0;return h|0;}c[d>>2]=e&1|b|2;c[k+4>>2]=j|1;c[5424]=k;c[5421]=j;h=a;return h|0;}if((c[5423]|0)==(g|0)){j=(c[5420]|0)+f|0;if(j>>>0<b>>>0){h=0;return h|0;}k=j-b|0;if(k>>>0>15){i=a+b|0;l=a+j|0;c[d>>2]=e&1|b|2;c[i+4>>2]=k|1;c[l>>2]=k;m=l+4|0;c[m>>2]=c[m>>2]&-2;n=i;o=k;}else{c[d>>2]=e&1|j|2;k=a+j+4|0;c[k>>2]=c[k>>2]|1;n=0;o=0;}c[5420]=o;c[5423]=n;h=a;return h|0;}n=c[g+4>>2]|0;if(n&2|0){h=0;return h|0;}o=(n&-8)+f|0;if(o>>>0<b>>>0){h=0;return h|0;}f=o-b|0;k=n>>>3;do{if(n>>>0<256){j=c[g+8>>2]|0;i=c[g+12>>2]|0;if((i|0)==(j|0)){c[5418]=c[5418]&~(1<<k);break;}else{c[j+12>>2]=i;c[i+8>>2]=j;break;}}else{j=c[g+24>>2]|0;i=c[g+12>>2]|0;do{if((i|0)==(g|0)){m=g+16|0;l=m+4|0;p=c[l>>2]|0;if(!p){q=c[m>>2]|0;if(!q){r=0;break;}else{s=q;t=m;}}else{s=p;t=l;}l=s;p=t;while(1){m=l+20|0;q=c[m>>2]|0;if(!q){u=l+16|0;v=c[u>>2]|0;if(!v)break;else{w=v;x=u;}}else{w=q;x=m;}l=w;p=x;}c[p>>2]=0;r=l;}else{m=c[g+8>>2]|0;c[m+12>>2]=i;c[i+8>>2]=m;r=i;}}while(0);if(j|0){i=c[g+28>>2]|0;m=21976+(i<<2)|0;if((c[m>>2]|0)==(g|0)){c[m>>2]=r;if(!r){c[5419]=c[5419]&~(1<<i);break;}}else{i=j+16|0;c[((c[i>>2]|0)==(g|0)?i:j+20|0)>>2]=r;if(!r)break;}c[r+24>>2]=j;i=g+16|0;m=c[i>>2]|0;if(m|0){c[r+16>>2]=m;c[m+24>>2]=r;}m=c[i+4>>2]|0;if(m|0){c[r+20>>2]=m;c[m+24>>2]=r;}}}}while(0);if(f>>>0<16){c[d>>2]=e&1|o|2;r=a+o+4|0;c[r>>2]=c[r>>2]|1;h=a;return h|0;}else{r=a+b|0;c[d>>2]=e&1|b|2;c[r+4>>2]=f|3;b=a+o+4|0;c[b>>2]=c[b>>2]|1;Hy(r,f);h=a;return h|0;}return 0;}function Hy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;d=a+b|0;e=c[a+4>>2]|0;do{if(!(e&1)){f=c[a>>2]|0;if(!(e&3))return;g=a+(0-f)|0;h=f+b|0;if((c[5423]|0)==(g|0)){i=d+4|0;j=c[i>>2]|0;if((j&3|0)!=3){k=g;l=h;break;}c[5420]=h;c[i>>2]=j&-2;c[g+4>>2]=h|1;c[d>>2]=h;return;}j=f>>>3;if(f>>>0<256){f=c[g+8>>2]|0;i=c[g+12>>2]|0;if((i|0)==(f|0)){c[5418]=c[5418]&~(1<<j);k=g;l=h;break;}else{c[f+12>>2]=i;c[i+8>>2]=f;k=g;l=h;break;}}f=c[g+24>>2]|0;i=c[g+12>>2]|0;do{if((i|0)==(g|0)){j=g+16|0;m=j+4|0;n=c[m>>2]|0;if(!n){o=c[j>>2]|0;if(!o){p=0;break;}else{q=o;r=j;}}else{q=n;r=m;}m=q;n=r;while(1){j=m+20|0;o=c[j>>2]|0;if(!o){s=m+16|0;t=c[s>>2]|0;if(!t)break;else{u=t;v=s;}}else{u=o;v=j;}m=u;n=v;}c[n>>2]=0;p=m;}else{j=c[g+8>>2]|0;c[j+12>>2]=i;c[i+8>>2]=j;p=i;}}while(0);if(f){i=c[g+28>>2]|0;j=21976+(i<<2)|0;if((c[j>>2]|0)==(g|0)){c[j>>2]=p;if(!p){c[5419]=c[5419]&~(1<<i);k=g;l=h;break;}}else{i=f+16|0;c[((c[i>>2]|0)==(g|0)?i:f+20|0)>>2]=p;if(!p){k=g;l=h;break;}}c[p+24>>2]=f;i=g+16|0;j=c[i>>2]|0;if(j|0){c[p+16>>2]=j;c[j+24>>2]=p;}j=c[i+4>>2]|0;if(j){c[p+20>>2]=j;c[j+24>>2]=p;k=g;l=h;}else{k=g;l=h;}}else{k=g;l=h;}}else{k=a;l=b;}}while(0);b=d+4|0;a=c[b>>2]|0;if(!(a&2)){if((c[5424]|0)==(d|0)){p=(c[5421]|0)+l|0;c[5421]=p;c[5424]=k;c[k+4>>2]=p|1;if((k|0)!=(c[5423]|0))return;c[5423]=0;c[5420]=0;return;}if((c[5423]|0)==(d|0)){p=(c[5420]|0)+l|0;c[5420]=p;c[5423]=k;c[k+4>>2]=p|1;c[k+p>>2]=p;return;}p=(a&-8)+l|0;v=a>>>3;do{if(a>>>0<256){u=c[d+8>>2]|0;r=c[d+12>>2]|0;if((r|0)==(u|0)){c[5418]=c[5418]&~(1<<v);break;}else{c[u+12>>2]=r;c[r+8>>2]=u;break;}}else{u=c[d+24>>2]|0;r=c[d+12>>2]|0;do{if((r|0)==(d|0)){q=d+16|0;e=q+4|0;j=c[e>>2]|0;if(!j){i=c[q>>2]|0;if(!i){w=0;break;}else{x=i;y=q;}}else{x=j;y=e;}e=x;j=y;while(1){q=e+20|0;i=c[q>>2]|0;if(!i){o=e+16|0;s=c[o>>2]|0;if(!s)break;else{z=s;A=o;}}else{z=i;A=q;}e=z;j=A;}c[j>>2]=0;w=e;}else{m=c[d+8>>2]|0;c[m+12>>2]=r;c[r+8>>2]=m;w=r;}}while(0);if(u|0){r=c[d+28>>2]|0;h=21976+(r<<2)|0;if((c[h>>2]|0)==(d|0)){c[h>>2]=w;if(!w){c[5419]=c[5419]&~(1<<r);break;}}else{r=u+16|0;c[((c[r>>2]|0)==(d|0)?r:u+20|0)>>2]=w;if(!w)break;}c[w+24>>2]=u;r=d+16|0;h=c[r>>2]|0;if(h|0){c[w+16>>2]=h;c[h+24>>2]=w;}h=c[r+4>>2]|0;if(h|0){c[w+20>>2]=h;c[h+24>>2]=w;}}}}while(0);c[k+4>>2]=p|1;c[k+p>>2]=p;if((k|0)==(c[5423]|0)){c[5420]=p;return;}else B=p;}else{c[b>>2]=a&-2;c[k+4>>2]=l|1;c[k+l>>2]=l;B=l;}l=B>>>3;if(B>>>0<256){a=21712+(l<<1<<2)|0;b=c[5418]|0;p=1<<l;if(!(b&p)){c[5418]=b|p;C=a;D=a+8|0;}else{p=a+8|0;C=c[p>>2]|0;D=p;}c[D>>2]=k;c[C+12>>2]=k;c[k+8>>2]=C;c[k+12>>2]=a;return;}a=B>>>8;if(a){if(B>>>0>16777215)E=31;else{C=(a+1048320|0)>>>16&8;D=a<<C;a=(D+520192|0)>>>16&4;p=D<<a;D=(p+245760|0)>>>16&2;b=14-(a|C|D)+(p<<D>>>15)|0;E=B>>>(b+7|0)&1|b<<1;}}else E=0;b=21976+(E<<2)|0;c[k+28>>2]=E;c[k+20>>2]=0;c[k+16>>2]=0;D=c[5419]|0;p=1<<E;if(!(D&p)){c[5419]=D|p;c[b>>2]=k;c[k+24>>2]=b;c[k+12>>2]=k;c[k+8>>2]=k;return;}p=c[b>>2]|0;a:do{if((c[p+4>>2]&-8|0)==(B|0))F=p;else{b=B<<((E|0)==31?0:25-(E>>>1)|0);D=p;while(1){G=D+16+(b>>>31<<2)|0;C=c[G>>2]|0;if(!C)break;if((c[C+4>>2]&-8|0)==(B|0)){F=C;break a;}else{b=b<<1;D=C;}}c[G>>2]=k;c[k+24>>2]=D;c[k+12>>2]=k;c[k+8>>2]=k;return;}}while(0);G=F+8|0;B=c[G>>2]|0;c[B+12>>2]=k;c[G>>2]=k;c[k+8>>2]=B;c[k+12>>2]=F;c[k+24>>2]=0;return;}function Iy(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=Oy(c[a+60>>2]|0)|0;a=Ly(Ja(6,d|0)|0)|0;l=b;return a|0;}function Jy(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=l;l=l+32|0;g=f;c[b+36>>2]=3;if((c[b>>2]&64|0)==0?(c[g>>2]=c[b+60>>2],c[g+4>>2]=21523,c[g+8>>2]=f+16,Ia(54,g|0)|0):0)a[b+75>>0]=-1;g=Ny(b,d,e)|0;l=f;return g|0;}function Ky(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+32|0;f=e;g=e+20|0;c[f>>2]=c[a+60>>2];c[f+4>>2]=0;c[f+8>>2]=b;c[f+12>>2]=g;c[f+16>>2]=d;if((Ly(Da(140,f|0)|0)|0)<0){c[g>>2]=-1;h=-1;}else h=c[g>>2]|0;l=e;return h|0;}function Ly(a){a=a|0;var b=0;if(a>>>0>4294963200){c[(My()|0)>>2]=0-a;b=-1;}else b=a;return b|0;}function My(){return 22232;}function Ny(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;e=l;l=l+48|0;f=e+32|0;g=e+16|0;h=e;i=a+28|0;j=c[i>>2]|0;c[h>>2]=j;k=a+20|0;m=(c[k>>2]|0)-j|0;c[h+4>>2]=m;c[h+8>>2]=b;c[h+12>>2]=d;b=m+d|0;m=a+60|0;c[g>>2]=c[m>>2];c[g+4>>2]=h;c[g+8>>2]=2;j=Ly(Fa(146,g|0)|0)|0;a:do{if((b|0)!=(j|0)){g=2;n=b;o=h;p=j;while(1){if((p|0)<0)break;n=n-p|0;q=c[o+4>>2]|0;r=p>>>0>q>>>0;s=r?o+8|0:o;t=g+(r<<31>>31)|0;u=p-(r?q:0)|0;c[s>>2]=(c[s>>2]|0)+u;q=s+4|0;c[q>>2]=(c[q>>2]|0)-u;c[f>>2]=c[m>>2];c[f+4>>2]=s;c[f+8>>2]=t;p=Ly(Fa(146,f|0)|0)|0;if((n|0)==(p|0)){v=3;break a;}else{g=t;o=s;}}c[a+16>>2]=0;c[i>>2]=0;c[k>>2]=0;c[a>>2]=c[a>>2]|32;if((g|0)==2)w=0;else w=d-(c[o+4>>2]|0)|0;}else v=3;}while(0);if((v|0)==3){v=c[a+44>>2]|0;c[a+16>>2]=v+(c[a+48>>2]|0);a=v;c[i>>2]=a;c[k>>2]=a;w=d;}l=e;return w|0;}function Oy(a){a=a|0;return a|0;}function Py(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;f=l;l=l+32|0;g=f+16|0;h=f;c[h>>2]=d;i=h+4|0;j=b+48|0;k=c[j>>2]|0;c[i>>2]=e-((k|0)!=0&1);m=b+44|0;c[h+8>>2]=c[m>>2];c[h+12>>2]=k;c[g>>2]=c[b+60>>2];c[g+4>>2]=h;c[g+8>>2]=2;h=Ly(Ea(145,g|0)|0)|0;if((h|0)>=1){g=c[i>>2]|0;if(h>>>0>g>>>0){i=c[m>>2]|0;m=b+4|0;c[m>>2]=i;k=i;c[b+8>>2]=k+(h-g);if(!(c[j>>2]|0))n=e;else{c[m>>2]=k+1;a[d+(e+-1)>>0]=a[k>>0]|0;n=e;}}else n=h;}else{c[b>>2]=c[b>>2]|h&48^16;n=h;}l=f;return n|0;}function Qy(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;a:do{if(!d)e=0;else{f=b;g=d;h=c;while(1){i=a[f>>0]|0;j=a[h>>0]|0;if(i<<24>>24!=j<<24>>24)break;g=g+-1|0;if(!g){e=0;break a;}else{f=f+1|0;h=h+1|0;}}e=(i&255)-(j&255)|0;}}while(0);return e|0;}function Ry(b,c){b=b|0;c=c|0;var d=0;d=Xy(b,c)|0;return((a[d>>0]|0)==(c&255)<<24>>24?d:0)|0;}function Sy(a){a=a|0;return(a+-48|0)>>>0<10|0;}function Ty(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=b;a:do{if(!(d&3)){e=b;f=5;}else{g=b;h=d;while(1){if(!(a[g>>0]|0)){i=h;break a;}j=g+1|0;h=j;if(!(h&3)){e=j;f=5;break;}else g=j;}}}while(0);if((f|0)==5){f=e;while(1){k=c[f>>2]|0;if(!((k&-2139062144^-2139062144)&k+-16843009))f=f+4|0;else break;}if(!((k&255)<<24>>24))l=f;else{k=f;while(1){f=k+1|0;if(!(a[f>>0]|0)){l=f;break;}else k=f;}}i=l;}return i-d|0;}function Uy(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;f=d&255;g=(e|0)!=0;a:do{if(g&(b&3|0)!=0){h=d&255;i=b;j=e;while(1){if((a[i>>0]|0)==h<<24>>24){k=i;l=j;m=6;break a;}n=i+1|0;o=j+-1|0;p=(o|0)!=0;if(p&(n&3|0)!=0){i=n;j=o;}else{q=n;r=o;s=p;m=5;break;}}}else{q=b;r=e;s=g;m=5;}}while(0);if((m|0)==5)if(s){k=q;l=r;m=6;}else m=16;b:do{if((m|0)==6){r=d&255;if((a[k>>0]|0)==r<<24>>24)if(!l){m=16;break;}else{t=k;break;}q=N(f,16843009)|0;c:do{if(l>>>0>3){s=k;g=l;while(1){e=c[s>>2]^q;if((e&-2139062144^-2139062144)&e+-16843009|0){u=g;v=s;break c;}e=s+4|0;b=g+-4|0;if(b>>>0>3){s=e;g=b;}else{w=e;x=b;m=11;break;}}}else{w=k;x=l;m=11;}}while(0);if((m|0)==11)if(!x){m=16;break;}else{u=x;v=w;}q=v;g=u;while(1){if((a[q>>0]|0)==r<<24>>24){t=q;break b;}g=g+-1|0;if(!g){m=16;break;}else q=q+1|0;}}}while(0);if((m|0)==16)t=0;return t|0;}function Vy(a){a=a|0;return 0;}function Wy(a){a=a|0;return;}function Xy(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=d&255;a:do{if(!e)f=b+(Ty(b)|0)|0;else{if(!(b&3))g=b;else{h=d&255;i=b;while(1){j=a[i>>0]|0;if(j<<24>>24==0?1:j<<24>>24==h<<24>>24){f=i;break a;}j=i+1|0;if(!(j&3)){g=j;break;}else i=j;}}i=N(e,16843009)|0;h=c[g>>2]|0;b:do{if(!((h&-2139062144^-2139062144)&h+-16843009)){j=g;k=h;while(1){l=k^i;if((l&-2139062144^-2139062144)&l+-16843009|0){m=j;break b;}l=j+4|0;k=c[l>>2]|0;if((k&-2139062144^-2139062144)&k+-16843009|0){m=l;break;}else j=l;}}else m=g;}while(0);i=d&255;h=m;while(1){j=a[h>>0]|0;if(j<<24>>24==0?1:j<<24>>24==i<<24>>24){f=h;break;}else h=h+1|0;}}}while(0);return f|0;}function Yy(a,b){a=a|0;b=b|0;var d=0;if(!b)d=0;else d=Zy(c[b>>2]|0,c[b+4>>2]|0,a)|0;return((d|0)==0?a:d)|0;}function Zy(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;f=(c[b>>2]|0)+1794895138|0;g=_y(c[b+8>>2]|0,f)|0;h=_y(c[b+12>>2]|0,f)|0;i=_y(c[b+16>>2]|0,f)|0;a:do{if((g>>>0<d>>>2>>>0?(j=d-(g<<2)|0,h>>>0<j>>>0&i>>>0<j>>>0):0)?((i|h)&3|0)==0:0){j=h>>>2;k=i>>>2;l=0;m=g;while(1){n=m>>>1;o=l+n|0;p=o<<1;q=p+j|0;r=_y(c[b+(q<<2)>>2]|0,f)|0;s=_y(c[b+(q+1<<2)>>2]|0,f)|0;if(!(s>>>0<d>>>0&r>>>0<(d-s|0)>>>0)){t=0;break a;}if(a[b+(s+r)>>0]|0){t=0;break a;}r=$y(e,b+s|0)|0;if(!r)break;s=(r|0)<0;if((m|0)==1){t=0;break a;}l=s?l:o;m=s?n:m-n|0;}m=p+k|0;l=_y(c[b+(m<<2)>>2]|0,f)|0;j=_y(c[b+(m+1<<2)>>2]|0,f)|0;if(j>>>0<d>>>0&l>>>0<(d-j|0)>>>0)t=(a[b+(j+l)>>0]|0)==0?b+j|0:0;else t=0;}else t=0;}while(0);return t|0;}function _y(a,b){a=a|0;b=b|0;var c=0;c=kE(a|0)|0;return((b|0)==0?a:c)|0;}function $y(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=a[b>>0]|0;e=a[c>>0]|0;if(d<<24>>24==0?1:d<<24>>24!=e<<24>>24){f=e;g=d;}else{d=c;c=b;do{c=c+1|0;d=d+1|0;b=a[c>>0]|0;e=a[d>>0]|0;}while(!(b<<24>>24==0?1:b<<24>>24!=e<<24>>24));f=e;g=b;}return(g&255)-(f&255)|0;}function az(){return 12260;}function bz(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=l;l=l+16|0;g=f;c[g>>2]=e;e=cz(a,b,d,g)|0;l=f;return e|0;}function cz(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;g=l;l=l+128|0;h=g+124|0;i=g;j=i;k=12504;m=j+124|0;do{c[j>>2]=c[k>>2];j=j+4|0;k=k+4|0;}while((j|0)<(m|0));if((d+-1|0)>>>0>2147483646){if(!d){n=h;o=1;p=4;}else{c[(My()|0)>>2]=75;q=-1;}}else{n=b;o=d;p=4;}if((p|0)==4){p=-2-n|0;d=o>>>0>p>>>0?p:o;c[i+48>>2]=d;o=i+20|0;c[o>>2]=n;c[i+44>>2]=n;p=n+d|0;n=i+16|0;c[n>>2]=p;c[i+28>>2]=p;p=dz(i,e,f)|0;if(!d)q=p;else{d=c[o>>2]|0;a[d+(((d|0)==(c[n>>2]|0))<<31>>31)>>0]=0;q=p;}}l=g;return q|0;}function dz(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;f=l;l=l+224|0;g=f+208|0;h=f+160|0;i=f+80|0;j=f;k=h;m=k+40|0;do{c[k>>2]=0;k=k+4|0;}while((k|0)<(m|0));c[g>>2]=c[e>>2];if((ez(0,d,g,i,h)|0)<0)n=-1;else{if((c[b+76>>2]|0)>-1)o=Vy(b)|0;else o=0;e=c[b>>2]|0;k=e&32;if((a[b+74>>0]|0)<1)c[b>>2]=e&-33;e=b+48|0;if(!(c[e>>2]|0)){m=b+44|0;p=c[m>>2]|0;c[m>>2]=j;q=b+28|0;c[q>>2]=j;r=b+20|0;c[r>>2]=j;c[e>>2]=80;s=b+16|0;c[s>>2]=j+80;j=ez(b,d,g,i,h)|0;if(!p)t=j;else{rc[c[b+36>>2]&31](b,0,0)|0;u=(c[r>>2]|0)==0?-1:j;c[m>>2]=p;c[e>>2]=0;c[s>>2]=0;c[q>>2]=0;c[r>>2]=0;t=u;}}else t=ez(b,d,g,i,h)|0;h=c[b>>2]|0;c[b>>2]=h|k;if(o|0)Wy(b);n=(h&32|0)==0?t:-1;}l=f;return n|0;}function ez(d,e,f,g,i){d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0;j=l;l=l+64|0;k=j+56|0;m=j+40|0;n=j;o=j+48|0;p=j+60|0;c[k>>2]=e;e=(d|0)!=0;q=n+40|0;r=q;s=n+39|0;n=o+4|0;t=0;u=0;v=0;a:while(1){w=t;x=u;while(1){do{if((x|0)>-1){if((w|0)>(2147483647-x|0)){c[(My()|0)>>2]=75;z=-1;break;}else{z=w+x|0;break;}}else z=x;}while(0);A=c[k>>2]|0;B=a[A>>0]|0;if(!(B<<24>>24)){C=94;break a;}D=B;B=A;b:while(1){switch(D<<24>>24){case 37:{C=10;break b;break;}case 0:{E=B;break b;break;}default:{}}F=B+1|0;c[k>>2]=F;D=a[F>>0]|0;B=F;}c:do{if((C|0)==10){C=0;D=B;F=B;while(1){if((a[F+1>>0]|0)!=37){E=D;break c;}G=D+1|0;F=F+2|0;c[k>>2]=F;if((a[F>>0]|0)!=37){E=G;break;}else D=G;}}}while(0);w=E-A|0;if(e)fz(d,A,w);if(!w)break;else x=z;}x=(Sy(a[(c[k>>2]|0)+1>>0]|0)|0)==0;w=c[k>>2]|0;if(!x?(a[w+2>>0]|0)==36:0){H=(a[w+1>>0]|0)+-48|0;I=1;J=3;}else{H=-1;I=v;J=1;}x=w+J|0;c[k>>2]=x;w=a[x>>0]|0;B=(w<<24>>24)+-32|0;if(B>>>0>31|(1<<B&75913|0)==0){K=0;L=w;M=x;}else{w=0;D=B;B=x;while(1){x=1<<D|w;F=B+1|0;c[k>>2]=F;G=a[F>>0]|0;D=(G<<24>>24)+-32|0;if(D>>>0>31|(1<<D&75913|0)==0){K=x;L=G;M=F;break;}else{w=x;B=F;}}}if(L<<24>>24==42){if((Sy(a[M+1>>0]|0)|0)!=0?(B=c[k>>2]|0,(a[B+2>>0]|0)==36):0){w=B+1|0;c[i+((a[w>>0]|0)+-48<<2)>>2]=10;N=c[g+((a[w>>0]|0)+-48<<3)>>2]|0;O=1;P=B+3|0;}else{if(I|0){Q=-1;break;}if(e){B=(c[f>>2]|0)+(4-1)&~(4-1);w=c[B>>2]|0;c[f>>2]=B+4;R=w;}else R=0;N=R;O=0;P=(c[k>>2]|0)+1|0;}c[k>>2]=P;w=(N|0)<0;S=w?0-N|0:N;T=w?K|8192:K;U=O;V=P;}else{w=gz(k)|0;if((w|0)<0){Q=-1;break;}S=w;T=K;U=I;V=c[k>>2]|0;}do{if((a[V>>0]|0)==46){w=V+1|0;if((a[w>>0]|0)!=42){c[k>>2]=w;w=gz(k)|0;W=w;X=c[k>>2]|0;break;}if(Sy(a[V+2>>0]|0)|0?(w=c[k>>2]|0,(a[w+3>>0]|0)==36):0){B=w+2|0;c[i+((a[B>>0]|0)+-48<<2)>>2]=10;D=c[g+((a[B>>0]|0)+-48<<3)>>2]|0;B=w+4|0;c[k>>2]=B;W=D;X=B;break;}if(U|0){Q=-1;break a;}if(e){B=(c[f>>2]|0)+(4-1)&~(4-1);D=c[B>>2]|0;c[f>>2]=B+4;Y=D;}else Y=0;D=(c[k>>2]|0)+2|0;c[k>>2]=D;W=Y;X=D;}else{W=-1;X=V;}}while(0);D=0;B=X;while(1){if(((a[B>>0]|0)+-65|0)>>>0>57){Q=-1;break a;}w=B;B=B+1|0;c[k>>2]=B;Z=a[(a[w>>0]|0)+-65+(7456+(D*58|0))>>0]|0;_=Z&255;if((_+-1|0)>>>0>=8)break;else D=_;}if(!(Z<<24>>24)){Q=-1;break;}w=(H|0)>-1;do{if(Z<<24>>24==19){if(w){Q=-1;break a;}else C=54;}else{if(w){c[i+(H<<2)>>2]=_;F=g+(H<<3)|0;x=c[F+4>>2]|0;G=m;c[G>>2]=c[F>>2];c[G+4>>2]=x;C=54;break;}if(!e){Q=0;break a;}hz(m,_,f);$=c[k>>2]|0;C=55;}}while(0);if((C|0)==54){C=0;if(e){$=B;C=55;}else aa=0;}d:do{if((C|0)==55){C=0;w=a[$+-1>>0]|0;x=(D|0)!=0&(w&15|0)==3?w&-33:w;w=T&-65537;G=(T&8192|0)==0?T:w;e:do{switch(x|0){case 110:{switch((D&255)<<24>>24){case 0:{c[c[m>>2]>>2]=z;aa=0;break d;break;}case 1:{c[c[m>>2]>>2]=z;aa=0;break d;break;}case 2:{F=c[m>>2]|0;c[F>>2]=z;c[F+4>>2]=((z|0)<0)<<31>>31;aa=0;break d;break;}case 3:{b[c[m>>2]>>1]=z;aa=0;break d;break;}case 4:{a[c[m>>2]>>0]=z;aa=0;break d;break;}case 6:{c[c[m>>2]>>2]=z;aa=0;break d;break;}case 7:{F=c[m>>2]|0;c[F>>2]=z;c[F+4>>2]=((z|0)<0)<<31>>31;aa=0;break d;break;}default:{aa=0;break d;}}break;}case 112:{ba=120;ca=W>>>0>8?W:8;da=G|8;C=67;break;}case 88:case 120:{ba=x;ca=W;da=G;C=67;break;}case 111:{F=m;ea=c[F>>2]|0;fa=c[F+4>>2]|0;F=jz(ea,fa,q)|0;ga=r-F|0;ha=F;ia=0;ja=17834;ka=(G&8|0)==0|(W|0)>(ga|0)?W:ga+1|0;la=G;ma=ea;na=fa;C=73;break;}case 105:case 100:{fa=m;ea=c[fa>>2]|0;ga=c[fa+4>>2]|0;if((ga|0)<0){fa=eE(0,0,ea|0,ga|0)|0;F=y;oa=m;c[oa>>2]=fa;c[oa+4>>2]=F;pa=1;qa=17834;ra=fa;sa=F;C=72;break e;}else{pa=(G&2049|0)!=0&1;qa=(G&2048|0)==0?(G&1|0)==0?17834:17836:17835;ra=ea;sa=ga;C=72;break e;}break;}case 117:{ga=m;pa=0;qa=17834;ra=c[ga>>2]|0;sa=c[ga+4>>2]|0;C=72;break;}case 99:{a[s>>0]=c[m>>2];ta=s;ua=0;va=17834;wa=1;xa=w;ya=r;break;}case 109:{za=lz(c[(My()|0)>>2]|0)|0;C=77;break;}case 115:{ga=c[m>>2]|0;za=(ga|0)==0?17844:ga;C=77;break;}case 67:{c[o>>2]=c[m>>2];c[n>>2]=0;c[m>>2]=o;Aa=-1;C=81;break;}case 83:{if(!W){mz(d,32,S,0,G);Ba=0;C=91;}else{Aa=W;C=81;}break;}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{aa=oz(d,+h[m>>3],S,W,G,x)|0;break d;break;}default:{ta=A;ua=0;va=17834;wa=W;xa=G;ya=r;}}}while(0);f:do{if((C|0)==67){C=0;x=m;ga=c[x>>2]|0;ea=c[x+4>>2]|0;x=iz(ga,ea,q,ba&32)|0;F=(da&8|0)==0|(ga|0)==0&(ea|0)==0;ha=x;ia=F?0:2;ja=F?17834:17834+(ba>>>4)|0;ka=ca;la=da;ma=ga;na=ea;C=73;}else if((C|0)==72){C=0;ha=kz(ra,sa,q)|0;ia=pa;ja=qa;ka=W;la=G;ma=ra;na=sa;C=73;}else if((C|0)==77){C=0;ea=Uy(za,0,W)|0;ga=(ea|0)==0;ta=za;ua=0;va=17834;wa=ga?W:ea-za|0;xa=w;ya=ga?za+W|0:ea;}else if((C|0)==81){C=0;ea=c[m>>2]|0;ga=0;while(1){F=c[ea>>2]|0;if(!F){Ca=ga;break;}x=nz(p,F)|0;Da=(x|0)<0;if(Da|x>>>0>(Aa-ga|0)>>>0){C=85;break;}F=x+ga|0;if(Aa>>>0>F>>>0){ea=ea+4|0;ga=F;}else{Ca=F;break;}}if((C|0)==85){C=0;if(Da){Q=-1;break a;}else Ca=ga;}mz(d,32,S,Ca,G);if(!Ca){Ba=0;C=91;}else{ea=c[m>>2]|0;F=0;while(1){x=c[ea>>2]|0;if(!x){Ba=Ca;C=91;break f;}fa=nz(p,x)|0;F=fa+F|0;if((F|0)>(Ca|0)){Ba=Ca;C=91;break f;}fz(d,p,fa);if(F>>>0>=Ca>>>0){Ba=Ca;C=91;break;}else ea=ea+4|0;}}}}while(0);if((C|0)==73){C=0;w=(ma|0)!=0|(na|0)!=0;ea=(ka|0)!=0|w;F=r-ha+((w^1)&1)|0;ta=ea?ha:q;ua=ia;va=ja;wa=ea?(ka|0)>(F|0)?ka:F:0;xa=(ka|0)>-1?la&-65537:la;ya=r;}else if((C|0)==91){C=0;mz(d,32,S,Ba,G^8192);aa=(S|0)>(Ba|0)?S:Ba;break;}F=ya-ta|0;ea=(wa|0)<(F|0)?F:wa;w=ea+ua|0;ga=(S|0)<(w|0)?w:S;mz(d,32,ga,w,xa);fz(d,va,ua);mz(d,48,ga,w,xa^65536);mz(d,48,ea,F,0);fz(d,ta,F);mz(d,32,ga,w,xa^8192);aa=ga;}}while(0);t=aa;u=z;v=U;}g:do{if((C|0)==94)if(!d){if(!v)Q=0;else{U=1;while(1){u=c[i+(U<<2)>>2]|0;if(!u)break;hz(g+(U<<3)|0,u,f);u=U+1|0;if(u>>>0<10)U=u;else{Q=1;break g;}}u=U;while(1){if(c[i+(u<<2)>>2]|0){Q=-1;break g;}u=u+1|0;if(u>>>0>=10){Q=1;break;}}}}else Q=z;}while(0);l=j;return Q|0;}function fz(a,b,d){a=a|0;b=b|0;d=d|0;if(!(c[a>>2]&32))xz(b,d,a)|0;return;}function gz(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;if(!(Sy(a[c[b>>2]>>0]|0)|0))d=0;else{e=0;while(1){f=c[b>>2]|0;g=(e*10|0)+-48+(a[f>>0]|0)|0;h=f+1|0;c[b>>2]=h;if(!(Sy(a[h>>0]|0)|0)){d=g;break;}else e=g;}}return d|0;}function hz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0.0;a:do{if(b>>>0<=20)do{switch(b|0){case 9:{e=(c[d>>2]|0)+(4-1)&~(4-1);f=c[e>>2]|0;c[d>>2]=e+4;c[a>>2]=f;break a;break;}case 10:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a;break;}case 11:{e=(c[d>>2]|0)+(4-1)&~(4-1);f=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=f;c[e+4>>2]=0;break a;break;}case 12:{e=(c[d>>2]|0)+(8-1)&~(8-1);f=e;g=c[f>>2]|0;i=c[f+4>>2]|0;c[d>>2]=e+8;e=a;c[e>>2]=g;c[e+4>>2]=i;break a;break;}case 13:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=(e&65535)<<16>>16;e=a;c[e>>2]=i;c[e+4>>2]=((i|0)<0)<<31>>31;break a;break;}case 14:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=a;c[i>>2]=e&65535;c[i+4>>2]=0;break a;break;}case 15:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=(e&255)<<24>>24;e=a;c[e>>2]=i;c[e+4>>2]=((i|0)<0)<<31>>31;break a;break;}case 16:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=a;c[i>>2]=e&255;c[i+4>>2]=0;break a;break;}case 17:{i=(c[d>>2]|0)+(8-1)&~(8-1);j=+h[i>>3];c[d>>2]=i+8;h[a>>3]=j;break a;break;}case 18:{i=(c[d>>2]|0)+(8-1)&~(8-1);j=+h[i>>3];c[d>>2]=i+8;h[a>>3]=j;break a;break;}default:break a;}}while(0);}while(0);return;}function iz(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;var g=0,h=0;if((b|0)==0&(c|0)==0)g=e;else{h=e;e=c;c=b;while(1){b=h+-1|0;a[b>>0]=d[7920+(c&15)>>0]|0|f;c=iE(c|0,e|0,4)|0;e=y;if((c|0)==0&(e|0)==0){g=b;break;}else h=b;}}return g|0;}function jz(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;if((b|0)==0&(c|0)==0)e=d;else{f=d;d=c;c=b;while(1){b=f+-1|0;a[b>>0]=c&7|48;c=iE(c|0,d|0,3)|0;d=y;if((c|0)==0&(d|0)==0){e=b;break;}else f=b;}}return e|0;}function kz(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;if(c>>>0>0|(c|0)==0&b>>>0>4294967295){e=d;f=b;g=c;do{c=f;f=hE(f|0,g|0,10,0)|0;h=g;g=y;i=cE(f|0,g|0,10,0)|0;j=eE(c|0,h|0,i|0,y|0)|0;e=e+-1|0;a[e>>0]=j&255|48;}while(h>>>0>9|(h|0)==9&c>>>0>4294967295);k=f;l=e;}else{k=b;l=d;}if(!k)m=l;else{d=k;k=l;while(1){l=d;d=(d>>>0)/10|0;b=k+-1|0;a[b>>0]=l-(d*10|0)|48;if(l>>>0<10){m=b;break;}else k=b;}}return m|0;}function lz(a){a=a|0;return vz(a,c[(uz()|0)+188>>2]|0)|0;}function mz(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=l;l=l+256|0;g=f;if((c|0)>(d|0)&(e&73728|0)==0){e=c-d|0;oE(g|0,b<<24>>24|0,(e>>>0<256?e:256)|0)|0;if(e>>>0>255){b=c-d|0;d=e;do{fz(a,g,256);d=d+-256|0;}while(d>>>0>255);h=b&255;}else h=e;fz(a,g,h);}l=f;return;}function nz(a,b){a=a|0;b=b|0;var c=0;if(!a)c=0;else c=sz(a,b,0)|0;return c|0;}function oz(b,e,f,g,h,i){b=b|0;e=+e;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0,v=0.0,w=0,x=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0,G=0,H=0,I=0,J=0.0,K=0,L=0,M=0,O=0,P=0,Q=0,R=0.0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0.0,ja=0.0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0;j=l;l=l+560|0;k=j+32|0;m=j+536|0;n=j;o=n;p=j+540|0;c[m>>2]=0;q=p+12|0;r=pz(e)|0;s=y;if((s|0)<0){t=-e;u=pz(t)|0;v=t;w=1;x=17851;z=y;A=u;}else{v=e;w=(h&2049|0)!=0&1;x=(h&2048|0)==0?(h&1|0)==0?17852:17857:17854;z=s;A=r;}do{if(0==0&(z&2146435072|0)==2146435072){r=(i&32|0)!=0;A=w+3|0;mz(b,32,f,A,h&-65537);fz(b,x,w);fz(b,v!=v|0.0!=0.0?r?17878:17882:r?17870:17874,3);mz(b,32,f,A,h^8192);B=A;}else{e=+qz(v,m)*2.0;A=e!=0.0;if(A)c[m>>2]=(c[m>>2]|0)+-1;r=i|32;if((r|0)==97){s=i&32;u=(s|0)==0?x:x+9|0;C=w|2;D=12-g|0;do{if(!(g>>>0>11|(D|0)==0)){t=8.0;E=D;do{E=E+-1|0;t=t*16.0;}while((E|0)!=0);if((a[u>>0]|0)==45){F=-(t+(-e-t));break;}else{F=e+t-t;break;}}else F=e;}while(0);D=c[m>>2]|0;E=(D|0)<0?0-D|0:D;G=kz(E,((E|0)<0)<<31>>31,q)|0;if((G|0)==(q|0)){E=p+11|0;a[E>>0]=48;H=E;}else H=G;a[H+-1>>0]=(D>>31&2)+43;D=H+-2|0;a[D>>0]=i+15;G=(g|0)<1;E=(h&8|0)==0;I=n;J=F;while(1){K=~~J;L=I+1|0;a[I>>0]=s|d[7920+K>>0];J=(J-+(K|0))*16.0;if((L-o|0)==1?!(E&(G&J==0.0)):0){a[L>>0]=46;M=I+2|0;}else M=L;if(!(J!=0.0))break;else I=M;}I=M;if((g|0)!=0?(-2-o+I|0)<(g|0):0){G=q;E=D;O=g+2+G-E|0;P=G;Q=E;}else{E=q;G=D;O=E-o-G+I|0;P=E;Q=G;}G=O+C|0;mz(b,32,f,G,h);fz(b,u,C);mz(b,48,f,G,h^65536);E=I-o|0;fz(b,n,E);I=P-Q|0;mz(b,48,O-(E+I)|0,0,0);fz(b,D,I);mz(b,32,f,G,h^8192);B=G;break;}G=(g|0)<0?6:g;if(A){I=(c[m>>2]|0)+-28|0;c[m>>2]=I;R=e*268435456.0;S=I;}else{R=e;S=c[m>>2]|0;}I=(S|0)<0?k:k+288|0;E=I;J=R;do{s=~~J>>>0;c[E>>2]=s;E=E+4|0;J=(J-+(s>>>0))*1.0e9;}while(J!=0.0);A=I;if((S|0)>0){D=I;C=E;u=S;while(1){s=(u|0)<29?u:29;L=C+-4|0;if(L>>>0>=D>>>0){K=L;L=0;do{T=jE(c[K>>2]|0,0,s|0)|0;U=dE(T|0,y|0,L|0,0)|0;T=y;L=hE(U|0,T|0,1e9,0)|0;V=cE(L|0,y|0,1e9,0)|0;W=eE(U|0,T|0,V|0,y|0)|0;c[K>>2]=W;K=K+-4|0;}while(K>>>0>=D>>>0);if(L){K=D+-4|0;c[K>>2]=L;X=K;}else X=D;}else X=D;a:do{if(C>>>0>X>>>0){K=C;while(1){W=K+-4|0;if(c[W>>2]|0){Y=K;break a;}if(W>>>0>X>>>0)K=W;else{Y=W;break;}}}else Y=C;}while(0);L=(c[m>>2]|0)-s|0;c[m>>2]=L;if((L|0)>0){D=X;C=Y;u=L;}else{Z=X;_=Y;$=L;break;}}}else{Z=I;_=E;$=S;}if(($|0)<0){u=((G+25|0)/9|0)+1|0;C=(r|0)==102;D=Z;L=_;K=$;while(1){W=0-K|0;V=(W|0)<9?W:9;if(D>>>0<L>>>0){W=(1<<V)+-1|0;T=1e9>>>V;U=0;aa=D;do{ba=c[aa>>2]|0;c[aa>>2]=(ba>>>V)+U;U=N(ba&W,T)|0;aa=aa+4|0;}while(aa>>>0<L>>>0);aa=(c[D>>2]|0)==0?D+4|0:D;if(!U){ca=L;da=aa;}else{c[L>>2]=U;ca=L+4|0;da=aa;}}else{ca=L;da=(c[D>>2]|0)==0?D+4|0:D;}aa=C?I:da;T=(ca-aa>>2|0)>(u|0)?aa+(u<<2)|0:ca;K=(c[m>>2]|0)+V|0;c[m>>2]=K;if((K|0)>=0){ea=da;fa=T;break;}else{D=da;L=T;}}}else{ea=Z;fa=_;}if(ea>>>0<fa>>>0){L=(A-ea>>2)*9|0;D=c[ea>>2]|0;if(D>>>0<10)ga=L;else{K=L;L=10;while(1){L=L*10|0;u=K+1|0;if(D>>>0<L>>>0){ga=u;break;}else K=u;}}}else ga=0;K=(r|0)==103;L=(G|0)!=0;D=G-((r|0)==102?0:ga)+((L&K)<<31>>31)|0;if((D|0)<(((fa-A>>2)*9|0)+-9|0)){u=D+9216|0;D=(u|0)/9|0;C=I+4+(D+-1024<<2)|0;E=u-(D*9|0)|0;if((E|0)<8){D=E;E=10;while(1){u=E*10|0;if((D|0)<7){D=D+1|0;E=u;}else{ha=u;break;}}}else ha=10;E=c[C>>2]|0;D=(E>>>0)/(ha>>>0)|0;r=E-(N(D,ha)|0)|0;u=(C+4|0)==(fa|0);if(!(u&(r|0)==0)){t=(D&1|0)==0?9007199254740992.0:9007199254740994.0;D=ha>>>1;J=r>>>0<D>>>0?.5:u&(r|0)==(D|0)?1.0:1.5;if(!w){ia=J;ja=t;}else{D=(a[x>>0]|0)==45;ia=D?-J:J;ja=D?-t:t;}D=E-r|0;c[C>>2]=D;if(ja+ia!=ja){r=D+ha|0;c[C>>2]=r;if(r>>>0>999999999){r=C;D=ea;while(1){E=r+-4|0;c[r>>2]=0;if(E>>>0<D>>>0){u=D+-4|0;c[u>>2]=0;ka=u;}else ka=D;u=(c[E>>2]|0)+1|0;c[E>>2]=u;if(u>>>0>999999999){r=E;D=ka;}else{la=E;ma=ka;break;}}}else{la=C;ma=ea;}D=(A-ma>>2)*9|0;r=c[ma>>2]|0;if(r>>>0<10){na=la;oa=D;pa=ma;}else{E=D;D=10;while(1){D=D*10|0;u=E+1|0;if(r>>>0<D>>>0){na=la;oa=u;pa=ma;break;}else E=u;}}}else{na=C;oa=ga;pa=ea;}}else{na=C;oa=ga;pa=ea;}E=na+4|0;qa=oa;ra=fa>>>0>E>>>0?E:fa;sa=pa;}else{qa=ga;ra=fa;sa=ea;}E=0-qa|0;b:do{if(ra>>>0>sa>>>0){D=ra;while(1){r=D+-4|0;if(c[r>>2]|0){ta=D;ua=1;break b;}if(r>>>0>sa>>>0)D=r;else{ta=r;ua=0;break;}}}else{ta=ra;ua=0;}}while(0);do{if(K){C=G+((L^1)&1)|0;if((C|0)>(qa|0)&(qa|0)>-5){va=i+-1|0;wa=C+-1-qa|0;}else{va=i+-2|0;wa=C+-1|0;}if(!(h&8)){if(ua?(C=c[ta+-4>>2]|0,(C|0)!=0):0){if(!((C>>>0)%10|0)){D=0;V=10;while(1){V=V*10|0;U=D+1|0;if((C>>>0)%(V>>>0)|0|0){xa=U;break;}else D=U;}}else xa=0;}else xa=9;D=((ta-A>>2)*9|0)+-9|0;if((va|32|0)==102){V=D-xa|0;C=(V|0)>0?V:0;ya=va;za=(wa|0)<(C|0)?wa:C;break;}else{C=D+qa-xa|0;D=(C|0)>0?C:0;ya=va;za=(wa|0)<(D|0)?wa:D;break;}}else{ya=va;za=wa;}}else{ya=i;za=G;}}while(0);G=(za|0)!=0;A=G?1:h>>>3&1;L=(ya|32|0)==102;if(L){Aa=0;Ba=(qa|0)>0?qa:0;}else{K=(qa|0)<0?E:qa;D=kz(K,((K|0)<0)<<31>>31,q)|0;K=q;if((K-D|0)<2){C=D;while(1){V=C+-1|0;a[V>>0]=48;if((K-V|0)<2)C=V;else{Ca=V;break;}}}else Ca=D;a[Ca+-1>>0]=(qa>>31&2)+43;C=Ca+-2|0;a[C>>0]=ya;Aa=C;Ba=K-C|0;}C=w+1+za+A+Ba|0;mz(b,32,f,C,h);fz(b,x,w);mz(b,48,f,C,h^65536);if(L){E=sa>>>0>I>>>0?I:sa;V=n+9|0;U=V;r=n+8|0;u=E;do{T=kz(c[u>>2]|0,0,V)|0;if((u|0)==(E|0)){if((T|0)==(V|0)){a[r>>0]=48;Da=r;}else Da=T;}else if(T>>>0>n>>>0){oE(n|0,48,T-o|0)|0;aa=T;while(1){W=aa+-1|0;if(W>>>0>n>>>0)aa=W;else{Da=W;break;}}}else Da=T;fz(b,Da,U-Da|0);u=u+4|0;}while(u>>>0<=I>>>0);if(!((h&8|0)==0&(G^1)))fz(b,18964,1);if(u>>>0<ta>>>0&(za|0)>0){I=za;U=u;while(1){r=kz(c[U>>2]|0,0,V)|0;if(r>>>0>n>>>0){oE(n|0,48,r-o|0)|0;E=r;while(1){L=E+-1|0;if(L>>>0>n>>>0)E=L;else{Ea=L;break;}}}else Ea=r;fz(b,Ea,(I|0)<9?I:9);U=U+4|0;E=I+-9|0;if(!(U>>>0<ta>>>0&(I|0)>9)){Fa=E;break;}else I=E;}}else Fa=za;mz(b,48,Fa+9|0,9,0);}else{I=ua?ta:sa+4|0;if(sa>>>0<I>>>0&(za|0)>-1){U=n+9|0;V=(h&8|0)==0;u=U;G=0-o|0;E=n+8|0;T=za;L=sa;while(1){A=kz(c[L>>2]|0,0,U)|0;if((A|0)==(U|0)){a[E>>0]=48;Ga=E;}else Ga=A;do{if((L|0)==(sa|0)){A=Ga+1|0;fz(b,Ga,1);if(V&(T|0)<1){Ha=A;break;}fz(b,18964,1);Ha=A;}else{if(Ga>>>0<=n>>>0){Ha=Ga;break;}oE(n|0,48,Ga+G|0)|0;A=Ga;while(1){K=A+-1|0;if(K>>>0>n>>>0)A=K;else{Ha=K;break;}}}}while(0);r=u-Ha|0;fz(b,Ha,(T|0)>(r|0)?r:T);A=T-r|0;L=L+4|0;if(!(L>>>0<I>>>0&(A|0)>-1)){Ia=A;break;}else T=A;}}else Ia=za;mz(b,48,Ia+18|0,18,0);fz(b,Aa,q-Aa|0);}mz(b,32,f,C,h^8192);B=C;}}while(0);l=j;return((B|0)<(f|0)?f:B)|0;}function pz(a){a=+a;var b=0;h[j>>3]=a;b=c[j>>2]|0;y=c[j+4>>2]|0;return b|0;}function qz(a,b){a=+a;b=b|0;return+ +rz(a,b);}function rz(a,b){a=+a;b=b|0;var d=0,e=0,f=0,g=0.0,i=0.0,k=0,l=0.0;h[j>>3]=a;d=c[j>>2]|0;e=c[j+4>>2]|0;f=iE(d|0,e|0,52)|0;switch(f&2047){case 0:{if(a!=0.0){g=+rz(a*18446744073709551616.0,b);i=g;k=(c[b>>2]|0)+-64|0;}else{i=a;k=0;}c[b>>2]=k;l=i;break;}case 2047:{l=a;break;}default:{c[b>>2]=(f&2047)+-1022;c[j>>2]=d;c[j+4>>2]=e&-2146435073|1071644672;l=+h[j>>3];}}return+l;}function sz(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;do{if(b){if(d>>>0<128){a[b>>0]=d;f=1;break;}if(!(c[c[(tz()|0)+188>>2]>>2]|0))if((d&-128|0)==57216){a[b>>0]=d;f=1;break;}else{c[(My()|0)>>2]=84;f=-1;break;}if(d>>>0<2048){a[b>>0]=d>>>6|192;a[b+1>>0]=d&63|128;f=2;break;}if(d>>>0<55296|(d&-8192|0)==57344){a[b>>0]=d>>>12|224;a[b+1>>0]=d>>>6&63|128;a[b+2>>0]=d&63|128;f=3;break;}if((d+-65536|0)>>>0<1048576){a[b>>0]=d>>>18|240;a[b+1>>0]=d>>>12&63|128;a[b+2>>0]=d>>>6&63|128;a[b+3>>0]=d&63|128;f=4;break;}else{c[(My()|0)>>2]=84;f=-1;break;}}else f=1;}while(0);return f|0;}function tz(){return az()|0;}function uz(){return az()|0;}function vz(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=0;while(1){if((d[7936+f>>0]|0)==(b|0)){g=4;break;}h=f+1|0;if((h|0)==87){i=87;g=5;break;}else f=h;}if((g|0)==4)if(!f)j=8032;else{i=f;g=5;}if((g|0)==5){g=8032;f=i;while(1){i=g;do{b=i;i=i+1|0;}while((a[b>>0]|0)!=0);f=f+-1|0;if(!f){j=i;break;}else g=i;}}return wz(j,c[e+20>>2]|0)|0;}function wz(a,b){a=a|0;b=b|0;return Yy(a,b)|0;}function xz(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;f=e+16|0;g=c[f>>2]|0;if(!g){if(!(yz(e)|0)){h=c[f>>2]|0;i=5;}else j=0;}else{h=g;i=5;}a:do{if((i|0)==5){g=e+20|0;f=c[g>>2]|0;k=f;if((h-f|0)>>>0<d>>>0){j=rc[c[e+36>>2]&31](e,b,d)|0;break;}b:do{if((a[e+75>>0]|0)<0|(d|0)==0){l=0;m=b;n=d;o=k;}else{f=d;while(1){p=f+-1|0;if((a[b+p>>0]|0)==10)break;if(!p){l=0;m=b;n=d;o=k;break b;}else f=p;}p=rc[c[e+36>>2]&31](e,b,f)|0;if(p>>>0<f>>>0){j=p;break a;}l=f;m=b+f|0;n=d-f|0;o=c[g>>2]|0;}}while(0);mE(o|0,m|0,n|0)|0;c[g>>2]=(c[g>>2]|0)+n;j=l+n|0;}}while(0);return j|0;}function yz(b){b=b|0;var d=0,e=0,f=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;e=c[b>>2]|0;if(!(e&8)){c[b+8>>2]=0;c[b+4>>2]=0;d=c[b+44>>2]|0;c[b+28>>2]=d;c[b+20>>2]=d;c[b+16>>2]=d+(c[b+48>>2]|0);f=0;}else{c[b>>2]=e|32;f=-1;}return f|0;}function zz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=a+20|0;f=c[e>>2]|0;g=(c[a+16>>2]|0)-f|0;a=g>>>0>d>>>0?d:g;mE(f|0,b|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return d|0;}function Az(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=b;b=dz(c[3e3]|0,a,e)|0;l=d;return b|0;}function Bz(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+16|0;g=f;h=e&255;a[g>>0]=h;i=b+16|0;j=c[i>>2]|0;if(!j){if(!(yz(b)|0)){k=c[i>>2]|0;m=4;}else n=-1;}else{k=j;m=4;}do{if((m|0)==4){j=b+20|0;i=c[j>>2]|0;if(i>>>0<k>>>0?(o=e&255,(o|0)!=(a[b+75>>0]|0)):0){c[j>>2]=i+1;a[i>>0]=h;n=o;break;}if((rc[c[b+36>>2]&31](b,g,1)|0)==1)n=d[g>>0]|0;else n=-1;}}while(0);l=f;return n|0;}function Cz(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+48|0;f=e+32|0;g=e+16|0;h=e;if(Ry(17886,a[d>>0]|0)|0){i=Dz(d)|0;c[h>>2]=b;c[h+4>>2]=i|32768;c[h+8>>2]=438;b=Ly(Ha(5,h|0)|0)|0;if((b|0)>=0){if(i&524288|0){c[g>>2]=b;c[g+4>>2]=2;c[g+8>>2]=1;Ga(221,g|0)|0;}g=Ez(b,d)|0;if(!g){c[f>>2]=b;Ja(6,f|0)|0;j=0;}else j=g;}else j=0;}else{c[(My()|0)>>2]=22;j=0;}l=e;return j|0;}function Dz(b){b=b|0;var c=0,d=0,e=0,f=0;c=(Ry(b,43)|0)==0;d=a[b>>0]|0;e=c?d<<24>>24!=114&1:2;c=(Ry(b,120)|0)==0;f=c?e:e|128;e=(Ry(b,101)|0)==0;b=e?f:f|524288;f=d<<24>>24==114?b:b|64;b=d<<24>>24==119?f|512:f;return(d<<24>>24==97?b|1024:b)|0;}function Ez(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;e=l;l=l+64|0;f=e+40|0;g=e+24|0;h=e+16|0;i=e;j=e+56|0;if(Ry(17886,a[d>>0]|0)|0){k=Cy(1156)|0;if(!k)m=0;else{oE(k|0,0,124)|0;if(!(Ry(d,43)|0))c[k>>2]=(a[d>>0]|0)==114?8:4;if(Ry(d,101)|0){c[i>>2]=b;c[i+4>>2]=2;c[i+8>>2]=1;Ga(221,i|0)|0;}if((a[d>>0]|0)==97){c[h>>2]=b;c[h+4>>2]=3;d=Ga(221,h|0)|0;if(!(d&1024)){c[g>>2]=b;c[g+4>>2]=4;c[g+8>>2]=d|1024;Ga(221,g|0)|0;}g=c[k>>2]|128;c[k>>2]=g;n=g;}else n=c[k>>2]|0;c[k+60>>2]=b;c[k+44>>2]=k+132;c[k+48>>2]=1024;g=k+75|0;a[g>>0]=-1;if((n&8|0)==0?(c[f>>2]=b,c[f+4>>2]=21523,c[f+8>>2]=j,(Ia(54,f|0)|0)==0):0)a[g>>0]=10;c[k+32>>2]=22;c[k+36>>2]=3;c[k+40>>2]=2;c[k+12>>2]=29;if(!(c[5543]|0))c[k+76>>2]=-1;Fz(k)|0;m=k;}}else{c[(My()|0)>>2]=22;m=0;}l=e;return m|0;}function Fz(a){a=a|0;var b=0,d=0;b=Gz()|0;c[a+56>>2]=c[b>>2];d=c[b>>2]|0;if(d|0)c[d+52>>2]=a;c[b>>2]=a;Hz();return a|0;}function Gz(){Aa(22236);return 22244;}function Hz(){Ka(22236);return;}function Iz(){return az()|0;}function Jz(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;do{if(a){if((c[a+76>>2]|0)<=-1){b=Mz(a)|0;break;}d=(Vy(a)|0)==0;e=Mz(a)|0;if(d)b=e;else{Wy(a);b=e;}}else{if(!(c[3032]|0))f=0;else f=Jz(c[3032]|0)|0;e=c[(Gz()|0)>>2]|0;if(!e)g=f;else{d=e;e=f;while(1){if((c[d+76>>2]|0)>-1)h=Vy(d)|0;else h=0;if((c[d+20>>2]|0)>>>0>(c[d+28>>2]|0)>>>0)i=Mz(d)|0|e;else i=e;if(h|0)Wy(d);d=c[d+56>>2]|0;if(!d){g=i;break;}else e=i;}}Hz();b=g;}}while(0);return b|0;}function Kz(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;if((c[a+76>>2]|0)>-1)b=Vy(a)|0;else b=0;Lz(a);d=(c[a>>2]&1|0)!=0;if(!d){e=Gz()|0;f=c[a+52>>2]|0;g=a+56|0;if(f|0)c[f+56>>2]=c[g>>2];h=c[g>>2]|0;if(h|0)c[h+52>>2]=f;if((c[e>>2]|0)==(a|0))c[e>>2]=h;Hz();}h=Jz(a)|0;e=pc[c[a+12>>2]&63](a)|0|h;h=c[a+92>>2]|0;if(h|0)Dy(h);if(d){if(b|0)Wy(a);}else Dy(a);return e|0;}function Lz(a){a=a|0;var b=0,d=0,e=0;if(c[a+68>>2]|0){b=c[a+116>>2]|0;d=a+112|0;if(b|0)c[b+112>>2]=c[d>>2];a=c[d>>2]|0;if(!a)e=(Iz()|0)+232|0;else e=a+116|0;c[e>>2]=b;}return;}function Mz(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=a+20|0;d=a+28|0;if((c[b>>2]|0)>>>0>(c[d>>2]|0)>>>0?(rc[c[a+36>>2]&31](a,0,0)|0,(c[b>>2]|0)==0):0)e=-1;else{f=a+4|0;g=c[f>>2]|0;h=a+8|0;i=c[h>>2]|0;if(g>>>0<i>>>0)rc[c[a+40>>2]&31](a,g-i|0,1)|0;c[a+16>>2]=0;c[d>>2]=0;c[b>>2]=0;c[h>>2]=0;c[f>>2]=0;e=0;}return e|0;}function Nz(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((c[d+76>>2]|0)>=0?(Vy(d)|0)!=0:0){e=b&255;f=b&255;if((f|0)!=(a[d+75>>0]|0)?(g=d+20|0,h=c[g>>2]|0,h>>>0<(c[d+16>>2]|0)>>>0):0){c[g>>2]=h+1;a[h>>0]=e;i=f;}else i=Bz(d,b)|0;Wy(d);j=i;}else k=3;do{if((k|0)==3){i=b&255;f=b&255;if((f|0)!=(a[d+75>>0]|0)?(e=d+20|0,h=c[e>>2]|0,h>>>0<(c[d+16>>2]|0)>>>0):0){c[e>>2]=h+1;a[h>>0]=i;j=f;break;}j=Bz(d,b)|0;}}while(0);return j|0;}function Oz(a){a=a|0;var b=0,c=0,d=0;b=(Ty(a)|0)+1|0;c=Cy(b)|0;if(!c)d=0;else d=mE(c|0,a|0,b|0)|0;return d|0;}function Pz(a){a=a|0;return(a+-65|0)>>>0<26|0;}function Qz(a){a=a|0;return(((a|32)+-97|0)>>>0<6|(Sy(a)|0)!=0)&1|0;}function Rz(a){a=a|0;return;}function Sz(a){a=a|0;Rz(a);Vz(a);return;}function Tz(a){a=a|0;return 17890;}function Uz(a){a=a|0;var b=0,c=0;b=(a|0)==0?1:a;while(1){a=Cy(b)|0;if(a|0){c=a;break;}a=ZD()|0;if(!a){c=0;break;}vc[a&3]();}return c|0;}function Vz(a){a=a|0;Dy(a);return;}function Wz(a){a=a|0;lb();}function Xz(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a=l;l=l+48|0;b=a+32|0;d=a+24|0;e=a+16|0;f=a;g=a+36|0;a=Yz()|0;if(a|0?(h=c[a>>2]|0,h|0):0){a=h+48|0;i=c[a>>2]|0;j=c[a+4>>2]|0;if(!((i&-256|0)==1126902528&(j|0)==1129074247)){c[d>>2]=18077;Zz(18027,d);}if((i|0)==1126902529&(j|0)==1129074247)k=c[h+44>>2]|0;else k=h+80|0;c[g>>2]=k;k=c[h>>2]|0;h=c[k+4>>2]|0;if(rc[c[(c[2704]|0)+16>>2]&31](10816,k,g)|0){k=c[g>>2]|0;g=pc[c[(c[k>>2]|0)+8>>2]&63](k)|0;c[f>>2]=18077;c[f+4>>2]=h;c[f+8>>2]=g;Zz(17941,f);}else{c[e>>2]=18077;c[e+4>>2]=h;Zz(17986,e);}}Zz(18065,b);}function Yz(){var a=0,b=0;a=l;l=l+16|0;if(!(rb(22248,3)|0)){b=pb(c[5563]|0)|0;l=a;return b|0;}else Zz(18216,a);return 0;}function Zz(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=b;b=c[3033]|0;dz(b,a,e)|0;Nz(10,b)|0;lb();}function _z(a){a=a|0;return;}function $z(a){a=a|0;_z(a);Vz(a);return;}function aA(a){a=a|0;return;}function bA(a){a=a|0;return;}function cA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+64|0;f=e;if(!(gA(a,b,0)|0)){if((b|0)!=0?(g=kA(b,10840,10824,0)|0,(g|0)!=0):0){b=f+4|0;h=b+52|0;do{c[b>>2]=0;b=b+4|0;}while((b|0)<(h|0));c[f>>2]=g;c[f+8>>2]=a;c[f+12>>2]=-1;c[f+48>>2]=1;zc[c[(c[g>>2]|0)+28>>2]&7](g,f,c[d>>2]|0,1);if((c[f+24>>2]|0)==1){c[d>>2]=c[f+16>>2];i=1;}else i=0;j=i;}else j=0;}else j=1;l=e;return j|0;}function dA(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;if(gA(a,c[b+8>>2]|0,g)|0)jA(0,b,d,e,f);return;}function eA(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;do{if(!(gA(b,c[d+8>>2]|0,g)|0)){if(gA(b,c[d>>2]|0,g)|0){if((c[d+16>>2]|0)!=(e|0)?(h=d+20|0,(c[h>>2]|0)!=(e|0)):0){c[d+32>>2]=f;c[h>>2]=e;h=d+40|0;c[h>>2]=(c[h>>2]|0)+1;if((c[d+36>>2]|0)==1?(c[d+24>>2]|0)==2:0)a[d+54>>0]=1;c[d+44>>2]=4;break;}if((f|0)==1)c[d+32>>2]=1;}}else iA(0,d,e,f);}while(0);return;}function fA(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if(gA(a,c[b+8>>2]|0,0)|0)hA(0,b,d,e);return;}function gA(a,b,c){a=a|0;b=b|0;c=c|0;return(a|0)==(b|0)|0;}function hA(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;b=d+16|0;g=c[b>>2]|0;do{if(g){if((g|0)!=(e|0)){h=d+36|0;c[h>>2]=(c[h>>2]|0)+1;c[d+24>>2]=2;a[d+54>>0]=1;break;}h=d+24|0;if((c[h>>2]|0)==2)c[h>>2]=f;}else{c[b>>2]=e;c[d+24>>2]=f;c[d+36>>2]=1;}}while(0);return;}function iA(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if((c[b+4>>2]|0)==(d|0)?(d=b+28|0,(c[d>>2]|0)!=1):0)c[d>>2]=e;return;}function jA(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;a[d+53>>0]=1;do{if((c[d+4>>2]|0)==(f|0)){a[d+52>>0]=1;b=d+16|0;h=c[b>>2]|0;if(!h){c[b>>2]=e;c[d+24>>2]=g;c[d+36>>2]=1;if(!((g|0)==1?(c[d+48>>2]|0)==1:0))break;a[d+54>>0]=1;break;}if((h|0)!=(e|0)){h=d+36|0;c[h>>2]=(c[h>>2]|0)+1;a[d+54>>0]=1;break;}h=d+24|0;b=c[h>>2]|0;if((b|0)==2){c[h>>2]=g;i=g;}else i=b;if((i|0)==1?(c[d+48>>2]|0)==1:0)a[d+54>>0]=1;}}while(0);return;}function kA(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;h=l;l=l+64|0;i=h;j=c[d>>2]|0;k=d+(c[j+-8>>2]|0)|0;m=c[j+-4>>2]|0;c[i>>2]=f;c[i+4>>2]=d;c[i+8>>2]=e;c[i+12>>2]=g;g=i+16|0;e=i+20|0;d=i+24|0;j=i+28|0;n=i+32|0;o=i+40|0;p=g;q=p+36|0;do{c[p>>2]=0;p=p+4|0;}while((p|0)<(q|0));b[g+36>>1]=0;a[g+38>>0]=0;a:do{if(gA(m,f,0)|0){c[i+48>>2]=1;Bc[c[(c[m>>2]|0)+20>>2]&3](m,i,k,k,1,0);r=(c[d>>2]|0)==1?k:0;}else{Ac[c[(c[m>>2]|0)+24>>2]&3](m,i,k,1,0);switch(c[i+36>>2]|0){case 0:{r=(c[o>>2]|0)==1&(c[j>>2]|0)==1&(c[n>>2]|0)==1?c[e>>2]|0:0;break a;break;}case 1:break;default:{r=0;break a;}}if((c[d>>2]|0)!=1?!((c[o>>2]|0)==0&(c[j>>2]|0)==1&(c[n>>2]|0)==1):0){r=0;break;}r=c[g>>2]|0;}}while(0);l=h;return r|0;}function lA(a){a=a|0;_z(a);Vz(a);return;}function mA(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;if(gA(a,c[b+8>>2]|0,g)|0)jA(0,b,d,e,f);else{h=c[a+8>>2]|0;Bc[c[(c[h>>2]|0)+20>>2]&3](h,b,d,e,f,g);}return;}function nA(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;do{if(!(gA(b,c[d+8>>2]|0,g)|0)){if(!(gA(b,c[d>>2]|0,g)|0)){h=c[b+8>>2]|0;Ac[c[(c[h>>2]|0)+24>>2]&3](h,d,e,f,g);break;}if((c[d+16>>2]|0)!=(e|0)?(h=d+20|0,(c[h>>2]|0)!=(e|0)):0){c[d+32>>2]=f;i=d+44|0;if((c[i>>2]|0)==4)break;j=d+52|0;a[j>>0]=0;k=d+53|0;a[k>>0]=0;l=c[b+8>>2]|0;Bc[c[(c[l>>2]|0)+20>>2]&3](l,d,e,e,1,g);if(a[k>>0]|0){if(!(a[j>>0]|0)){m=1;n=11;}else n=15;}else{m=0;n=11;}do{if((n|0)==11){c[h>>2]=e;j=d+40|0;c[j>>2]=(c[j>>2]|0)+1;if((c[d+36>>2]|0)==1?(c[d+24>>2]|0)==2:0){a[d+54>>0]=1;if(m){n=15;break;}else{o=4;break;}}if(m)n=15;else o=4;}}while(0);if((n|0)==15)o=3;c[i>>2]=o;break;}if((f|0)==1)c[d+32>>2]=1;}else iA(0,d,e,f);}while(0);return;}function oA(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;if(gA(a,c[b+8>>2]|0,0)|0)hA(0,b,d,e);else{f=c[a+8>>2]|0;zc[c[(c[f>>2]|0)+28>>2]&7](f,b,d,e);}return;}function pA(a){a=a|0;return;}function qA(){var a=0;a=l;l=l+16|0;if(!(qb(22252,72)|0)){l=a;return;}else Zz(18265,a);}function rA(a){a=a|0;var b=0;b=l;l=l+16|0;Dy(a);if(!(sb(c[5563]|0,0)|0)){l=b;return;}else Zz(18315,b);}function sA(){var a=0,b=0;a=Yz()|0;if((a|0?(b=c[a>>2]|0,b|0):0)?(a=b+48|0,(c[a>>2]&-256|0)==1126902528?(c[a+4>>2]|0)==1129074247:0):0)tA(c[b+12>>2]|0);tA(uA()|0);}function tA(a){a=a|0;var b=0;b=l;l=l+16|0;vc[a&3]();Zz(18368,b);}function uA(){var a=0;a=c[3162]|0;c[3162]=a+0;return a|0;}function vA(a){a=a|0;return;}function wA(a){a=a|0;_z(a);Vz(a);return;}function xA(a,b,c){a=a|0;b=b|0;c=c|0;return gA(a,b,0)|0;}function yA(a){a=a|0;_z(a);Vz(a);return;}function zA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+64|0;f=e;c[d>>2]=c[c[d>>2]>>2];if(!(AA(a,b,0)|0)){if(((b|0)!=0?(g=kA(b,10840,10896,0)|0,(g|0)!=0):0)?(c[g+8>>2]&~c[a+8>>2]|0)==0:0){b=a+12|0;a=g+12|0;if(!(gA(c[b>>2]|0,c[a>>2]|0,0)|0)?!(gA(c[b>>2]|0,10928,0)|0):0){g=c[b>>2]|0;if((((g|0)!=0?(b=kA(g,10840,10824,0)|0,(b|0)!=0):0)?(g=c[a>>2]|0,(g|0)!=0):0)?(a=kA(g,10840,10824,0)|0,(a|0)!=0):0){g=f+4|0;h=g+52|0;do{c[g>>2]=0;g=g+4|0;}while((g|0)<(h|0));c[f>>2]=a;c[f+8>>2]=b;c[f+12>>2]=-1;c[f+48>>2]=1;zc[c[(c[a>>2]|0)+28>>2]&7](a,f,c[d>>2]|0,1);if((c[f+24>>2]|0)==1){c[d>>2]=c[f+16>>2];i=1;}else i=0;j=i;}else j=0;}else j=1;}else j=0;}else j=1;l=e;return j|0;}function AA(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if(gA(a,b,0)|0)d=1;else d=gA(b,10936,0)|0;return d|0;}function BA(a){a=a|0;_z(a);Vz(a);return;}function CA(a,b,c){a=a|0;b=b|0;c=c|0;return 0;}function DA(a){a=a|0;_z(a);Vz(a);return;}function EA(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;if(gA(b,c[d+8>>2]|0,h)|0)jA(0,d,e,f,g);else{i=d+52|0;j=a[i>>0]|0;k=d+53|0;l=a[k>>0]|0;m=c[b+12>>2]|0;n=b+16+(m<<3)|0;a[i>>0]=0;a[k>>0]=0;IA(b+16|0,d,e,f,g,h);a:do{if((m|0)>1){o=d+24|0;p=b+8|0;q=d+54|0;r=b+24|0;do{if(a[q>>0]|0)break a;if(!(a[i>>0]|0)){if(a[k>>0]|0?(c[p>>2]&1|0)==0:0)break a;}else{if((c[o>>2]|0)==1)break a;if(!(c[p>>2]&2))break a;}a[i>>0]=0;a[k>>0]=0;IA(r,d,e,f,g,h);r=r+8|0;}while(r>>>0<n>>>0);}}while(0);a[i>>0]=j;a[k>>0]=l;}return;}function FA(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;a:do{if(!(gA(b,c[d+8>>2]|0,g)|0)){if(!(gA(b,c[d>>2]|0,g)|0)){h=c[b+12>>2]|0;i=b+16+(h<<3)|0;JA(b+16|0,d,e,f,g);j=b+24|0;if((h|0)<=1)break;h=c[b+8>>2]|0;if((h&2|0)==0?(k=d+36|0,(c[k>>2]|0)!=1):0){if(!(h&1)){h=d+54|0;l=j;while(1){if(a[h>>0]|0)break a;if((c[k>>2]|0)==1)break a;JA(l,d,e,f,g);l=l+8|0;if(l>>>0>=i>>>0)break a;}}l=d+24|0;h=d+54|0;m=j;while(1){if(a[h>>0]|0)break a;if((c[k>>2]|0)==1?(c[l>>2]|0)==1:0)break a;JA(m,d,e,f,g);m=m+8|0;if(m>>>0>=i>>>0)break a;}}m=d+54|0;l=j;while(1){if(a[m>>0]|0)break a;JA(l,d,e,f,g);l=l+8|0;if(l>>>0>=i>>>0)break a;}}if((c[d+16>>2]|0)!=(e|0)?(i=d+20|0,(c[i>>2]|0)!=(e|0)):0){c[d+32>>2]=f;l=d+44|0;if((c[l>>2]|0)==4)break;m=b+16+(c[b+12>>2]<<3)|0;j=d+52|0;k=d+53|0;h=d+54|0;n=b+8|0;o=d+24|0;p=0;q=b+16|0;r=0;b:while(1){if(q>>>0>=m>>>0){s=p;t=18;break;}a[j>>0]=0;a[k>>0]=0;IA(q,d,e,e,1,g);if(a[h>>0]|0){s=p;t=18;break;}do{if(a[k>>0]|0){if(!(a[j>>0]|0))if(!(c[n>>2]&1)){s=1;t=18;break b;}else{u=1;v=r;break;}if((c[o>>2]|0)==1){t=23;break b;}if(!(c[n>>2]&2)){t=23;break b;}else{u=1;v=1;}}else{u=p;v=r;}}while(0);p=u;q=q+8|0;r=v;}do{if((t|0)==18){if((!r?(c[i>>2]=e,q=d+40|0,c[q>>2]=(c[q>>2]|0)+1,(c[d+36>>2]|0)==1):0)?(c[o>>2]|0)==2:0){a[h>>0]=1;if(s){t=23;break;}else{w=4;break;}}if(s)t=23;else w=4;}}while(0);if((t|0)==23)w=3;c[l>>2]=w;break;}if((f|0)==1)c[d+32>>2]=1;}else iA(0,d,e,f);}while(0);return;}function GA(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;a:do{if(!(gA(b,c[d+8>>2]|0,0)|0)){g=c[b+12>>2]|0;h=b+16+(g<<3)|0;HA(b+16|0,d,e,f);if((g|0)>1){g=d+54|0;i=b+24|0;do{HA(i,d,e,f);if(a[g>>0]|0)break a;i=i+8|0;}while(i>>>0<h>>>0);}}else hA(0,d,e,f);}while(0);return;}function HA(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=c[a+4>>2]|0;g=f>>8;if(!(f&1))h=g;else h=c[(c[d>>2]|0)+g>>2]|0;g=c[a>>2]|0;zc[c[(c[g>>2]|0)+28>>2]&7](g,b,d+h|0,(f&2|0)==0?2:e);return;}function IA(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=c[a+4>>2]|0;i=h>>8;if(!(h&1))j=i;else j=c[(c[e>>2]|0)+i>>2]|0;i=c[a>>2]|0;Bc[c[(c[i>>2]|0)+20>>2]&3](i,b,d,e+j|0,(h&2|0)==0?2:f,g);return;}function JA(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;g=c[a+4>>2]|0;h=g>>8;if(!(g&1))i=h;else i=c[(c[d>>2]|0)+h>>2]|0;h=c[a>>2]|0;Ac[c[(c[h>>2]|0)+24>>2]&3](h,b,d+i|0,(g&2|0)==0?2:e,f);return;}function KA(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;g=l;l=l+4192|0;h=g+4176|0;i=g;j=g+4112|0;if((b|0)!=0?(k=(d|0)!=0,m=(e|0)==0,!(k&m)):0){if(k)n=c[e>>2]|0;else n=0;LA(i);MA(j,i);k=j+48|0;o=j+61|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;a[k+12>>0]=0;a[o>>0]=1;k=j+32|0;p=j+36|0;q=c[p>>2]|0;if(q>>>0<(c[j+40>>2]|0)>>>0){NA(h,i);c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=c[h>>2];c[p>>2]=(c[p>>2]|0)+16;}else OA(k,i);q=j+62|0;a[q>>0]=0;a[j+63>>0]=1;c[h>>2]=0;r=b+(Ty(b)|0)|0;PA(b,r,j,h);s=c[h>>2]|0;do{if(!((s|0)!=0|(a[q>>0]|0)==0)){t=c[k>>2]|0;if((t|0)!=(c[p>>2]|0)?(c[t>>2]|0)!=(c[t+4>>2]|0):0){a[q>>0]=0;a[o>>0]=0;t=c[j>>2]|0;u=j+4|0;v=c[u>>2]|0;while(1){if((v|0)==(t|0))break;w=v+-24|0;QA(w);v=w;}c[u>>2]=t;v=c[j+16>>2]|0;w=j+20|0;x=c[w>>2]|0;while(1){if((x|0)==(v|0))break;y=x+-16|0;RA(y);x=y;}c[w>>2]=v;PA(b,r,j,h);if(!(a[q>>0]|0)){z=c[h>>2]|0;A=22;break;}else{c[h>>2]=-2;B=0;C=-2;break;}}else A=23;}else{z=s;A=22;}}while(0);if((A|0)==22)if(!z)A=23;else{B=0;C=z;}do{if((A|0)==23){z=j+4|0;s=SA((c[z>>2]|0)+-24|0)|0;q=s+1|0;if(q>>>0>n>>>0){r=Fy(d,q)|0;if(!r){c[h>>2]=-1;B=0;C=-1;break;}if(m)D=r;else{c[e>>2]=q;D=r;}}else if(!d){B=0;C=0;break;}else D=d;r=c[z>>2]|0;q=r+-12|0;b=a[q+11>>0]|0;o=b<<24>>24<0;TA(r+-24|0,o?c[q>>2]|0:q,o?c[r+-8>>2]|0:b&255)|0;b=(c[z>>2]|0)+-24|0;if((a[b+11>>0]|0)<0)E=c[b>>2]|0;else E=b;mE(D|0,E|0,s|0)|0;a[D+s>>0]=0;B=D;C=0;}}while(0);if(f|0)c[f>>2]=C;UA(j);VA(i);F=B;}else if(!f)F=0;else{c[f>>2]=-3;F=0;}l=g;return F|0;}function LA(a){a=a|0;c[a+4096>>2]=a;return;}function MA(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;SD(e,b);c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=c[e>>2];NA(e,b);TD(a+16|0,e);UD(e,b);VD(a+32|0,e);l=d;return;}function NA(a,b){a=a|0;b=b|0;c[a>>2]=b;return;}function OA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;d=l;l=l+32|0;e=d+20|0;f=d;g=a+4|0;h=((c[g>>2]|0)-(c[a>>2]|0)>>4)+1|0;i=qD(a)|0;if(i>>>0<h>>>0)Wz(a);else{j=c[a>>2]|0;k=(c[a+8>>2]|0)-j|0;m=k>>3;rD(f,k>>4>>>0<i>>>1>>>0?m>>>0<h>>>0?h:m:i,(c[g>>2]|0)-j>>4,a+12|0);j=f+8|0;g=c[j>>2]|0;NA(e,b);c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=c[e>>2];c[j>>2]=g+16;sD(a,f);tD(f);l=d;return;}}function PA(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;a:do{if(b>>>0<d>>>0){b:do{if((a[b>>0]|0)!=95){if((mB(b,d,e)|0)!=(d|0)){c[f>>2]=-2;break a;}}else{if((d-b|0)<=3){c[f>>2]=-2;break a;}switch(a[b+1>>0]|0){case 90:{g=b+2|0;h=jB(g,d,e)|0;if(!((h|0)==(g|0)|(h|0)==(d|0))?(a[h>>0]|0)==46:0)i=kB(h,d,e)|0;else i=h;if((i|0)==(d|0))break b;c[f>>2]=-2;break a;break;}case 95:{j=11;break;}default:{}}if(((j|0)==11?(a[b+2>>0]|0)==95:0)?(a[b+3>>0]|0)==90:0){h=b+4|0;g=jB(h,d,e)|0;if((g|0)==(h|0)|(g|0)==(d|0)){c[f>>2]=-2;break a;}if((lB(g,d,e)|0)==(d|0))break;c[f>>2]=-2;break a;}c[f>>2]=-2;break a;}}while(0);if((c[f>>2]|0)==0?(c[e>>2]|0)==(c[e+4>>2]|0):0)c[f>>2]=-2;}else c[f>>2]=-2;}while(0);return;}function QA(a){a=a|0;iB(a+12|0);iB(a);return;}function RA(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a>>2]|0;if(b|0){d=a+4|0;e=c[d>>2]|0;while(1){if((e|0)==(b|0))break;f=e+-24|0;QA(f);e=f;}c[d>>2]=b;b=c[a>>2]|0;hB(a+12|0,b,((c[a+8>>2]|0)-b|0)/24|0);}return;}function SA(b){b=b|0;var d=0,e=0,f=0;d=a[b+11>>0]|0;if(d<<24>>24<0)e=c[b+4>>2]|0;else e=d&255;d=a[b+12+11>>0]|0;if(d<<24>>24<0)f=c[b+16>>2]|0;else f=d&255;return f+e|0;}function TA(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;f=l;l=l+16|0;g=f;h=b+11|0;i=a[h>>0]|0;j=i<<24>>24<0;if(j){k=c[b+4>>2]|0;m=(c[b+8>>2]&2147483647)+-1|0;}else{k=i&255;m=10;}if((m-k|0)>>>0>=e>>>0){if(e|0){if(j)n=c[b>>2]|0;else n=b;bB(n+k|0,d,e)|0;j=k+e|0;if((a[h>>0]|0)<0)c[b+4>>2]=j;else a[h>>0]=j;a[g>>0]=0;cB(n+j|0,g);}}else dB(b,m,k+e-m|0,k,k,0,e,d);l=f;return b|0;}function UA(a){a=a|0;WA(a+32|0);XA(a+16|0);RA(a);return;}function VA(a){a=a|0;c[a+4096>>2]=0;return;}function WA(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a>>2]|0;if(b|0){d=a+4|0;e=c[d>>2]|0;while(1){if((e|0)==(b|0))break;f=e+-16|0;XA(f);e=f;}c[d>>2]=b;b=c[a>>2]|0;aB(a+12|0,b,(c[a+8>>2]|0)-b>>4);}return;}function XA(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a>>2]|0;if(b|0){d=a+4|0;e=c[d>>2]|0;while(1){if((e|0)==(b|0))break;f=e+-16|0;RA(f);e=f;}c[d>>2]=b;b=c[a>>2]|0;YA(a+12|0,b,(c[a+8>>2]|0)-b>>4);}return;}function YA(a,b,d){a=a|0;b=b|0;d=d|0;ZA(c[a>>2]|0,b,d<<4);return;}function ZA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if(_A(a,b)|0){e=b+($A(d)|0)|0;d=a+4096|0;if((e|0)==(c[d>>2]|0))c[d>>2]=b;}else Dy(b);return;}function _A(a,b){a=a|0;b=b|0;return(a+4096|0)>>>0>=b>>>0&a>>>0<=b>>>0|0;}function $A(a){a=a|0;return a+15&-16|0;}function aB(a,b,d){a=a|0;b=b|0;d=d|0;ZA(c[a>>2]|0,b,d<<4);return;}function bB(a,b,c){a=a|0;b=b|0;c=c|0;if(c|0)mE(a|0,b|0,c|0)|0;return a|0;}function cB(b,c){b=b|0;c=c|0;a[b>>0]=a[c>>0]|0;return;}function dB(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0;k=l;l=l+16|0;m=k;if((-18-d|0)>>>0<e>>>0)eB(b);if((a[b+11>>0]|0)<0)n=c[b>>2]|0;else n=b;if(d>>>0<2147483623){o=e+d|0;e=d<<1;p=o>>>0<e>>>0?e:o;q=p>>>0<11?11:p+16&-16;}else q=-17;p=fB(q)|0;if(g|0)bB(p,n,g)|0;if(i|0)bB(p+g|0,j,i)|0;j=f-h|0;f=j-g|0;if(f|0)bB(p+g+i|0,n+g+h|0,f)|0;if((d|0)!=10)gB(n);c[b>>2]=p;c[b+8>>2]=q|-2147483648;q=j+i|0;c[b+4>>2]=q;a[m>>0]=0;cB(p+q|0,m);l=k;return;}function eB(a){a=a|0;lb();}function fB(a){a=a|0;return Cy(a)|0;}function gB(a){a=a|0;Dy(a);return;}function hB(a,b,d){a=a|0;b=b|0;d=d|0;ZA(c[a>>2]|0,b,d*24|0);return;}function iB(b){b=b|0;if((a[b+11>>0]|0)<0)gB(c[b>>2]|0);return;}function jB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0;f=l;l=l+64|0;g=f+48|0;h=f+40|0;i=f+32|0;j=f+24|0;k=f+12|0;m=f;if((b|0)!=(d|0)){n=e+56|0;MD(h,n);c[n>>2]=(c[n>>2]|0)+1;o=e+61|0;ND(i,o);if((c[n>>2]|0)>>>0>1)a[o>>0]=1;a:do{switch(a[b>>0]|0){case 84:case 71:{p=OD(b,d,e)|0;q=1;break;}default:{n=MB(b,d,e)|0;r=c[e+48>>2]|0;s=c[e+52>>2]|0;b:do{if((n|0)!=(b|0)){if((n|0)!=(d|0)){switch(a[n>>0]|0){case 46:case 69:{t=n;break b;break;}default:{}}ND(j,o);a[o>>0]=0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;u=0;while(1){if((u|0)==3)break;c[k+(u<<2)>>2]=0;u=u+1|0;}u=e+4|0;v=c[u>>2]|0;c:do{if((c[e>>2]|0)!=(v|0)){w=v+-24|0;x=a[w+11>>0]|0;y=x<<24>>24<0;if(y)z=c[v+-20>>2]|0;else z=x&255;if(z){if(!(a[e+60>>0]|0)){if(y){A=c[w>>2]|0;B=c[v+-20>>2]|0;}else{A=w;B=x&255;}if((a[A+B+-1>>0]|0)==62){if(y){C=c[v+-20>>2]|0;D=c[w>>2]|0;}else{C=x&255;D=w;}if((a[D+(C+-2)>>0]|0)!=45){if(y){E=c[v+-20>>2]|0;F=c[w>>2]|0;}else{E=x&255;F=w;}if((a[F+(E+-2)>>0]|0)!=62){x=mB(n,d,e)|0;if((x|0)==(n|0)){G=b;H=0;break;}y=c[u>>2]|0;I=y;if(((y-(c[e>>2]|0)|0)/24|0)>>>0<2){G=b;H=0;break;}y=I+-24|0;c[m>>2]=c[y>>2];c[m+4>>2]=c[y+4>>2];c[m+8>>2]=c[y+8>>2];J=0;while(1){if((J|0)==3)break;c[y+(J<<2)>>2]=0;J=J+1|0;}J=I+-12|0;y=k+11|0;if((a[y>>0]|0)<0){K=c[k>>2]|0;a[g>>0]=0;cB(K,g);c[k+4>>2]=0;}else{a[g>>0]=0;cB(k,g);a[y>>0]=0;}TB(k);c[k>>2]=c[J>>2];c[k+4>>2]=c[J+4>>2];c[k+8>>2]=c[J+8>>2];K=0;while(1){if((K|0)==3)break;c[J+(K<<2)>>2]=0;K=K+1|0;}K=a[y>>0]|0;if(!((K<<24>>24<0?c[k+4>>2]|0:K&255)|0))NC(m,32);K=c[u>>2]|0;J=0;while(1){if((J|0)==-1)break;I=J+-1|0;QA(K+(I*24|0)|0);J=I;}c[u>>2]=K+-24;J=a[m+11>>0]|0;y=J<<24>>24<0;zD(K+-48|0,0,y?c[m>>2]|0:m,y?c[m+4>>2]|0:J&255)|0;iB(m);L=x;M=(c[u>>2]|0)+-24|0;}else{L=n;M=w;}}else{L=n;M=w;}}else{L=n;M=w;}}else{L=n;M=w;}NC(M,40);if((L|0)!=(d|0)?(a[L>>0]|0)==118:0){N=L+1|0;O=c[e>>2]|0;P=c[u>>2]|0;}else Q=50;do{if((Q|0)==50){J=g+11|0;y=g+4|0;I=m+11|0;R=m+4|0;S=1;T=L;d:while(1){U=T;while(1){V=((c[u>>2]|0)-(c[e>>2]|0)|0)/24|0;W=mB(U,d,e)|0;X=c[u>>2]|0;Y=c[e>>2]|0;Z=(X-Y|0)/24|0;if((W|0)==(U|0)){Q=74;break d;}if(Z>>>0>V>>>0)break;else U=W;}c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;_=0;while(1){if((_|0)==3)break;c[g+(_<<2)>>2]=0;_=_+1|0;}_=V;while(1){if(_>>>0>=Z>>>0)break;$=a[J>>0]|0;if(($<<24>>24<0?c[y>>2]|0:$&255)|0)qB(g,18897)|0;FB(m,(c[e>>2]|0)+(_*24|0)|0);$=a[I>>0]|0;aa=$<<24>>24<0;TA(g,aa?c[m>>2]|0:m,aa?c[R>>2]|0:$&255)|0;iB(m);_=_+1|0;}_=V;while(1){if(_>>>0>=Z>>>0)break;$=c[u>>2]|0;aa=0;while(1){if((aa|0)==-1)break;ba=aa+-1|0;QA($+(ba*24|0)|0);aa=ba;}c[u>>2]=$+-24;_=_+1|0;}_=a[J>>0]|0;aa=c[y>>2]|0;ba=_&255;if(!((_<<24>>24<0?aa:ba)|0))ca=S;else{da=c[u>>2]|0;if((c[e>>2]|0)==(da|0)){Q=86;break;}if(S){ea=ba;fa=da;ga=_;ha=aa;}else{qB(da+-24|0,18897)|0;da=a[J>>0]|0;ea=da&255;fa=c[u>>2]|0;ga=da;ha=c[y>>2]|0;}da=ga<<24>>24<0;TA(fa+-24|0,da?c[g>>2]|0:g,da?ha:ea)|0;ca=0;}iB(g);S=ca;T=W;}if((Q|0)==74){N=U;O=Y;P=X;break;}else if((Q|0)==86){iB(g);G=b;H=0;break c;}}}while(0);if((O|0)!=(P|0)){NC(P+-24|0,41);if(r&1|0)qB((c[u>>2]|0)+-24|0,18620)|0;if(r&2|0)qB((c[u>>2]|0)+-24|0,18627)|0;if(r&4|0)qB((c[u>>2]|0)+-24|0,18637)|0;switch(s|0){case 1:{qB((c[u>>2]|0)+-24|0,20101)|0;break;}case 2:{qB((c[u>>2]|0)+-24|0,20104)|0;break;}default:{}}w=a[k+11>>0]|0;x=w<<24>>24<0;TA((c[u>>2]|0)+-24|0,x?c[k>>2]|0:k,x?c[k+4>>2]|0:w&255)|0;G=N;H=1;}else{G=b;H=0;}}else{G=b;H=0;}}else{G=b;H=0;}}while(0);iB(k);PD(j);if(H)t=G;else{p=G;q=0;break a;}}else t=d;}else t=b;}while(0);p=t;q=1;}}}while(0);PD(i);QD(h);if(q){ia=p;Q=90;}else ja=b;}else{ia=b;Q=90;}if((Q|0)==90)ja=ia;l=f;return ja|0;}function kB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+48|0;g=f+24|0;h=f+12|0;i=f;if(((b|0)!=(d|0)?(a[b>>0]|0)==46:0)?(j=e+4|0,(c[e>>2]|0)!=(c[j>>2]|0)):0){c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;QC(i,b,d);pB(i,0,18670)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];e=0;while(1){if((e|0)==3)break;c[i+(e<<2)>>2]=0;e=e+1|0;}qB(h,18673)|0;c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];e=0;while(1){if((e|0)==3)break;c[h+(e<<2)>>2]=0;e=e+1|0;}e=a[g+11>>0]|0;k=e<<24>>24<0;TA((c[j>>2]|0)+-24|0,k?c[g>>2]|0:g,k?c[g+4>>2]|0:e&255)|0;iB(g);iB(h);iB(i);m=d;}else m=b;l=f;return m|0;}function lB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;a:do{if((d-b|0)>12){f=0;g=b;while(1){if(f>>>0>=13)break;if((a[g>>0]|0)!=(a[20306+f>>0]|0)){h=b;break a;}f=f+1|0;g=g+1|0;}b:do{if((g|0)==(d|0))i=d;else{if((a[g>>0]|0)==95){f=g+1|0;if((f|0)==(d|0)){h=b;break a;}if(((a[f>>0]|0)+-48|0)>>>0>=10){h=b;break a;}j=g+2|0;}else j=g;f=j;while(1){if((f|0)==(d|0)){i=d;break b;}if(((a[f>>0]|0)+-48|0)>>>0>=10){i=f;break b;}f=f+1|0;}}}while(0);g=c[e+4>>2]|0;if((c[e>>2]|0)!=(g|0)){pB(g+-24|0,0,20320)|0;h=i;}else h=b;}else h=b;}while(0);return h|0;}function mB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0;f=l;l=l+144|0;g=f+128|0;h=f+104|0;i=f+40|0;j=f+88|0;k=f+24|0;m=f+76|0;n=f+12|0;o=f;p=f+64|0;a:do{if((b|0)!=(d|0)){switch(a[b>>0]|0){case 75:case 86:case 114:{c[g>>2]=0;q=nB(b,d,g)|0;b:do{if((q|0)!=(b|0)?(r=(a[q>>0]|0)==70,s=e+4|0,t=((c[s>>2]|0)-(c[e>>2]|0)|0)/24|0,u=mB(q,d,e)|0,v=((c[s>>2]|0)-(c[e>>2]|0)|0)/24|0,(u|0)!=(q|0)):0){s=e+20|0;w=c[s>>2]|0;if(r){x=0;while(1){if((x|0)==-1)break;y=x+-1|0;RA(w+(y<<4)|0);x=y;}x=w+-16|0;c[s>>2]=x;z=x;}else z=w;x=c[e+12>>2]|0;c[h>>2]=x;if(z>>>0<(c[e+24>>2]|0)>>>0){c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;c[z+12>>2]=x;c[s>>2]=(c[s>>2]|0)+16;}else oB(e+16|0,h);x=c[g>>2]|0;y=(x&1|0)==0;A=(x&2|0)==0;B=(x&4|0)==0;x=t;while(1){if(x>>>0>=v>>>0){C=u;break b;}if(r){D=c[e>>2]|0;E=D+(x*24|0)+12|0;F=a[E+11>>0]|0;G=F<<24>>24<0;if(G){H=c[D+(x*24|0)+16>>2]|0;I=c[E>>2]|0;}else{H=F&255;I=E;}J=H+-2|0;if((a[I+J>>0]|0)==38)K=H+-3|0;else{if(G){L=c[E>>2]|0;M=c[D+(x*24|0)+16>>2]|0;}else{L=E;M=F&255;}K=(a[L+M+-1>>0]|0)==38?J:H;}if(y)N=K;else{pB(E,K,18620)|0;N=K+6|0;}if(A)O=N;else{pB((c[e>>2]|0)+(x*24|0)+12|0,N,18627)|0;O=N+9|0;}if(!B)pB((c[e>>2]|0)+(x*24|0)+12|0,O,18637)|0;}else{if(!y)qB((c[e>>2]|0)+(x*24|0)|0,18620)|0;if(!A)qB((c[e>>2]|0)+(x*24|0)|0,18627)|0;if(!B)qB((c[e>>2]|0)+(x*24|0)|0,18637)|0;}E=c[s>>2]|0;J=(c[e>>2]|0)+(x*24|0)|0;F=E+-12|0;D=c[F>>2]|0;if((D|0)==(c[E+-8>>2]|0))sB(E+-16|0,J);else{rB(D,J);c[F>>2]=(c[F>>2]|0)+24;}x=x+1|0;}}else C=b;}while(0);P=C;break a;break;}default:{}}q=tB(b,d,e)|0;if((q|0)==(b|0)){c:do{switch(a[b>>0]|0){case 65:{x=uB(b,d,e)|0;if((x|0)==(b|0)){P=b;break a;}s=c[e+4>>2]|0;if((c[e>>2]|0)==(s|0)){P=b;break a;}c[h>>2]=c[e+12>>2];vB(g,s+-24|0,h);s=e+20|0;B=c[s>>2]|0;if(B>>>0<(c[e+24>>2]|0)>>>0){c[B>>2]=0;A=B+4|0;c[A>>2]=0;y=B+8|0;c[y>>2]=0;c[B+12>>2]=c[g+12>>2];c[B>>2]=c[g>>2];B=g+4|0;c[A>>2]=c[B>>2];A=g+8|0;c[y>>2]=c[A>>2];c[A>>2]=0;c[B>>2]=0;c[g>>2]=0;c[s>>2]=(c[s>>2]|0)+16;}else wB(e+16|0,g);RA(g);P=x;break a;break;}case 67:{x=b+1|0;s=mB(x,d,e)|0;if((s|0)==(x|0)){P=b;break a;}x=e+4|0;B=c[x>>2]|0;if((c[e>>2]|0)==(B|0)){P=b;break a;}qB(B+-24|0,18647)|0;B=(c[x>>2]|0)+-24|0;c[h>>2]=c[e+12>>2];vB(g,B,h);B=e+20|0;x=c[B>>2]|0;if(x>>>0<(c[e+24>>2]|0)>>>0){c[x>>2]=0;A=x+4|0;c[A>>2]=0;y=x+8|0;c[y>>2]=0;c[x+12>>2]=c[g+12>>2];c[x>>2]=c[g>>2];x=g+4|0;c[A>>2]=c[x>>2];A=g+8|0;c[y>>2]=c[A>>2];c[A>>2]=0;c[x>>2]=0;c[g>>2]=0;c[B>>2]=(c[B>>2]|0)+16;}else wB(e+16|0,g);RA(g);P=s;break a;break;}case 70:{s=xB(b,d,e)|0;if((s|0)==(b|0)){P=b;break a;}B=c[e+4>>2]|0;if((c[e>>2]|0)==(B|0)){P=b;break a;}c[h>>2]=c[e+12>>2];vB(g,B+-24|0,h);B=e+20|0;x=c[B>>2]|0;if(x>>>0<(c[e+24>>2]|0)>>>0){c[x>>2]=0;A=x+4|0;c[A>>2]=0;y=x+8|0;c[y>>2]=0;c[x+12>>2]=c[g+12>>2];c[x>>2]=c[g>>2];x=g+4|0;c[A>>2]=c[x>>2];A=g+8|0;c[y>>2]=c[A>>2];c[A>>2]=0;c[x>>2]=0;c[g>>2]=0;c[B>>2]=(c[B>>2]|0)+16;}else wB(e+16|0,g);RA(g);P=s;break a;break;}case 71:{s=b+1|0;B=mB(s,d,e)|0;if((B|0)==(s|0)){P=b;break a;}s=e+4|0;x=c[s>>2]|0;if((c[e>>2]|0)==(x|0)){P=b;break a;}qB(x+-24|0,18656)|0;x=(c[s>>2]|0)+-24|0;c[h>>2]=c[e+12>>2];vB(g,x,h);x=e+20|0;s=c[x>>2]|0;if(s>>>0<(c[e+24>>2]|0)>>>0){c[s>>2]=0;A=s+4|0;c[A>>2]=0;y=s+8|0;c[y>>2]=0;c[s+12>>2]=c[g+12>>2];c[s>>2]=c[g>>2];s=g+4|0;c[A>>2]=c[s>>2];A=g+8|0;c[y>>2]=c[A>>2];c[A>>2]=0;c[s>>2]=0;c[g>>2]=0;c[x>>2]=(c[x>>2]|0)+16;}else wB(e+16|0,g);RA(g);P=B;break a;break;}case 77:{B=yB(b,d,e)|0;if((B|0)==(b|0)){P=b;break a;}x=c[e+4>>2]|0;if((c[e>>2]|0)==(x|0)){P=b;break a;}c[h>>2]=c[e+12>>2];vB(g,x+-24|0,h);x=e+20|0;s=c[x>>2]|0;if(s>>>0<(c[e+24>>2]|0)>>>0){c[s>>2]=0;A=s+4|0;c[A>>2]=0;y=s+8|0;c[y>>2]=0;c[s+12>>2]=c[g+12>>2];c[s>>2]=c[g>>2];s=g+4|0;c[A>>2]=c[s>>2];A=g+8|0;c[y>>2]=c[A>>2];c[A>>2]=0;c[s>>2]=0;c[g>>2]=0;c[x>>2]=(c[x>>2]|0)+16;}else wB(e+16|0,g);RA(g);P=B;break a;break;}case 79:{B=e+4|0;x=((c[B>>2]|0)-(c[e>>2]|0)|0)/24|0;s=b+1|0;A=mB(s,d,e)|0;y=((c[B>>2]|0)-(c[e>>2]|0)|0)/24|0;if((A|0)==(s|0)){P=b;break a;}s=c[e+12>>2]|0;c[g>>2]=s;B=e+20|0;r=c[B>>2]|0;if(r>>>0<(c[e+24>>2]|0)>>>0){c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=s;c[B>>2]=(c[B>>2]|0)+16;}else oB(e+16|0,g);s=g+11|0;r=g+4|0;u=x;while(1){if(u>>>0>=y>>>0){P=A;break a;}zB(g,(c[e>>2]|0)+(u*24|0)+12|0,2);x=AB(18667)|0;v=a[s>>0]|0;if((x|0)==((v<<24>>24<0?c[r>>2]|0:v&255)|0))Q=(BB(g,18667,x)|0)==0;else Q=0;iB(g);x=c[e>>2]|0;v=x+(u*24|0)|0;if(!Q){t=x+(u*24|0)+12|0;if((a[t+11>>0]|0)<0)R=c[t>>2]|0;else R=t;if((a[R>>0]|0)==40){qB(v,18675)|0;pB((c[e>>2]|0)+(u*24|0)+12|0,0,18673)|0;}}else{qB(v,18670)|0;pB((c[e>>2]|0)+(u*24|0)+12|0,0,18673)|0;}qB((c[e>>2]|0)+(u*24|0)|0,18677)|0;v=c[B>>2]|0;t=(c[e>>2]|0)+(u*24|0)|0;x=v+-12|0;w=c[x>>2]|0;if((w|0)==(c[v+-8>>2]|0))sB(v+-16|0,t);else{rB(w,t);c[x>>2]=(c[x>>2]|0)+24;}u=u+1|0;}break;}case 80:{u=e+4|0;B=((c[u>>2]|0)-(c[e>>2]|0)|0)/24|0;r=b+1|0;s=mB(r,d,e)|0;A=((c[u>>2]|0)-(c[e>>2]|0)|0)/24|0;if((s|0)==(r|0)){P=b;break a;}u=c[e+12>>2]|0;c[g>>2]=u;y=e+20|0;x=c[y>>2]|0;if(x>>>0<(c[e+24>>2]|0)>>>0){c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;c[x+12>>2]=u;c[y>>2]=(c[y>>2]|0)+16;}else oB(e+16|0,g);u=g+11|0;x=g+4|0;t=g+11|0;w=g+4|0;v=B;while(1){if(v>>>0>=A>>>0){P=s;break a;}zB(g,(c[e>>2]|0)+(v*24|0)+12|0,2);B=AB(18667)|0;F=a[u>>0]|0;if((B|0)==((F<<24>>24<0?c[x>>2]|0:F&255)|0))S=(BB(g,18667,B)|0)==0;else S=0;iB(g);B=c[e>>2]|0;F=B+(v*24|0)|0;if(!S){J=B+(v*24|0)+12|0;if((a[J+11>>0]|0)<0)T=c[J>>2]|0;else T=J;if((a[T>>0]|0)==40){qB(F,18675)|0;pB((c[e>>2]|0)+(v*24|0)+12|0,0,18673)|0;}}else{qB(F,18670)|0;pB((c[e>>2]|0)+(v*24|0)+12|0,0,18673)|0;}if((a[r>>0]|0)==85){zB(g,(c[e>>2]|0)+(v*24|0)|0,12);F=AB(18680)|0;J=a[t>>0]|0;if((F|0)==((J<<24>>24<0?c[w>>2]|0:J&255)|0))U=(BB(g,18680,F)|0)!=0;else U=1;iB(g);F=(c[e>>2]|0)+(v*24|0)|0;if(U){V=F;W=113;}else CB(F);}else{V=(c[e>>2]|0)+(v*24|0)|0;W=113;}if((W|0)==113){W=0;qB(V,18693)|0;}F=c[y>>2]|0;J=(c[e>>2]|0)+(v*24|0)|0;B=F+-12|0;D=c[B>>2]|0;if((D|0)==(c[F+-8>>2]|0))sB(F+-16|0,J);else{rB(D,J);c[B>>2]=(c[B>>2]|0)+24;}v=v+1|0;}break;}case 82:{v=e+4|0;y=((c[v>>2]|0)-(c[e>>2]|0)|0)/24|0;w=b+1|0;t=mB(w,d,e)|0;r=((c[v>>2]|0)-(c[e>>2]|0)|0)/24|0;if((t|0)==(w|0)){P=b;break a;}w=c[e+12>>2]|0;c[g>>2]=w;v=e+20|0;x=c[v>>2]|0;if(x>>>0<(c[e+24>>2]|0)>>>0){c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;c[x+12>>2]=w;c[v>>2]=(c[v>>2]|0)+16;}else oB(e+16|0,g);w=g+11|0;x=g+4|0;u=y;while(1){if(u>>>0>=r>>>0){P=t;break a;}zB(g,(c[e>>2]|0)+(u*24|0)+12|0,2);y=AB(18667)|0;s=a[w>>0]|0;if((y|0)==((s<<24>>24<0?c[x>>2]|0:s&255)|0))X=(BB(g,18667,y)|0)==0;else X=0;iB(g);y=c[e>>2]|0;s=y+(u*24|0)|0;if(!X){A=y+(u*24|0)+12|0;if((a[A+11>>0]|0)<0)Y=c[A>>2]|0;else Y=A;if((a[Y>>0]|0)==40){qB(s,18675)|0;pB((c[e>>2]|0)+(u*24|0)+12|0,0,18673)|0;}}else{qB(s,18670)|0;pB((c[e>>2]|0)+(u*24|0)+12|0,0,18673)|0;}qB((c[e>>2]|0)+(u*24|0)|0,18695)|0;s=c[v>>2]|0;A=(c[e>>2]|0)+(u*24|0)|0;y=s+-12|0;B=c[y>>2]|0;if((B|0)==(c[s+-8>>2]|0))sB(s+-16|0,A);else{rB(B,A);c[y>>2]=(c[y>>2]|0)+24;}u=u+1|0;}break;}case 84:{u=e+4|0;v=((c[u>>2]|0)-(c[e>>2]|0)|0)/24|0;x=DB(b,d,e)|0;w=((c[u>>2]|0)-(c[e>>2]|0)|0)/24|0;if((x|0)==(b|0)){P=b;break a;}t=e+16|0;r=e+12|0;y=c[r>>2]|0;c[g>>2]=y;A=e+20|0;B=c[A>>2]|0;s=e+24|0;if(B>>>0<(c[s>>2]|0)>>>0){c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;c[B+12>>2]=y;c[A>>2]=(c[A>>2]|0)+16;}else oB(t,g);y=v;while(1){if(y>>>0>=w>>>0)break;B=c[A>>2]|0;J=(c[e>>2]|0)+(y*24|0)|0;D=B+-12|0;F=c[D>>2]|0;if((F|0)==(c[B+-8>>2]|0))sB(B+-16|0,J);else{rB(F,J);c[D>>2]=(c[D>>2]|0)+24;}y=y+1|0;}if(!((w|0)==(v+1|0)&(a[e+63>>0]|0)!=0)){P=x;break a;}y=EB(x,d,e)|0;if((y|0)==(x|0)){P=x;break a;}FB(g,(c[u>>2]|0)+-24|0);D=c[u>>2]|0;J=0;while(1){if((J|0)==-1)break;F=J+-1|0;QA(D+(F*24|0)|0);J=F;}c[u>>2]=D+-24;J=a[g+11>>0]|0;x=J<<24>>24<0;TA(D+-48|0,x?c[g>>2]|0:g,x?c[g+4>>2]|0:J&255)|0;J=(c[u>>2]|0)+-24|0;c[i>>2]=c[r>>2];vB(h,J,i);J=c[A>>2]|0;if(J>>>0<(c[s>>2]|0)>>>0){c[J>>2]=0;x=J+4|0;c[x>>2]=0;v=J+8|0;c[v>>2]=0;c[J+12>>2]=c[h+12>>2];c[J>>2]=c[h>>2];J=h+4|0;c[x>>2]=c[J>>2];x=h+8|0;c[v>>2]=c[x>>2];c[x>>2]=0;c[J>>2]=0;c[h>>2]=0;c[A>>2]=(c[A>>2]|0)+16;}else wB(t,h);RA(h);iB(g);P=y;break a;break;}case 85:{J=b+1|0;if((J|0)==(d|0)){P=b;break a;}x=GB(J,d,e)|0;if((x|0)==(J|0)){P=b;break a;}J=mB(x,d,e)|0;if((J|0)==(x|0)){P=b;break a;}x=e+4|0;v=c[x>>2]|0;if(((v-(c[e>>2]|0)|0)/24|0)>>>0<2){P=b;break a;}FB(g,v+-24|0);v=c[x>>2]|0;w=0;while(1){if((w|0)==-1)break;F=w+-1|0;QA(v+(F*24|0)|0);w=F;}c[x>>2]=v+-24;zB(h,v+-48|0,9);w=AB(18697)|0;y=a[h+11>>0]|0;if((w|0)==((y<<24>>24<0?c[h+4>>2]|0:y&255)|0)){y=(BB(h,18697,w)|0)==0;iB(h);if(y){FB(h,(c[x>>2]|0)+-24|0);y=c[x>>2]|0;w=0;while(1){if((w|0)==-1)break;t=w+-1|0;QA(y+(t*24|0)|0);w=t;}c[x>>2]=y+-24;w=h+11|0;v=a[w>>0]|0;t=v<<24>>24<0;A=h+4|0;s=t?c[h>>2]|0:h;r=GB(s+9|0,s+(t?c[A>>2]|0:v&255)|0,e)|0;if((r|0)==(((a[w>>0]|0)<0?c[h>>2]|0:h)+9|0)){HB(k,g,18707);r=a[w>>0]|0;w=r<<24>>24<0;TA(k,w?c[h>>2]|0:h,w?c[A>>2]|0:r&255)|0;c[p>>2]=c[k>>2];c[p+4>>2]=c[k+4>>2];c[p+8>>2]=c[k+8>>2];r=0;while(1){if((r|0)==3)break;c[k+(r<<2)>>2]=0;r=r+1|0;}IB(i,p);r=c[x>>2]|0;if(r>>>0<(c[e+8>>2]|0)>>>0){KB(r,i);c[x>>2]=(c[x>>2]|0)+24;}else LB(e,i);QA(i);iB(p);iB(k);}else{HB(n,g,18709);FB(o,(c[x>>2]|0)+-24|0);r=a[o+11>>0]|0;y=r<<24>>24<0;TA(n,y?c[o>>2]|0:o,y?c[o+4>>2]|0:r&255)|0;c[k>>2]=c[n>>2];c[k+4>>2]=c[n+4>>2];c[k+8>>2]=c[n+8>>2];r=0;while(1){if((r|0)==3)break;c[n+(r<<2)>>2]=0;r=r+1|0;}qB(k,18711)|0;c[m>>2]=c[k>>2];c[m+4>>2]=c[k+4>>2];c[m+8>>2]=c[k+8>>2];r=0;while(1){if((r|0)==3)break;c[k+(r<<2)>>2]=0;r=r+1|0;}IB(i,m);JB((c[x>>2]|0)+-24|0,i);QA(i);iB(m);iB(k);iB(o);iB(n);}iB(h);}else W=167;}else{iB(h);W=167;}if((W|0)==167){HB(i,g,18707);FB(k,(c[x>>2]|0)+-24|0);r=a[k+11>>0]|0;y=r<<24>>24<0;TA(i,y?c[k>>2]|0:k,y?c[k+4>>2]|0:r&255)|0;c[j>>2]=c[i>>2];c[j+4>>2]=c[i+4>>2];c[j+8>>2]=c[i+8>>2];r=0;while(1){if((r|0)==3)break;c[i+(r<<2)>>2]=0;r=r+1|0;}IB(h,j);JB((c[x>>2]|0)+-24|0,h);QA(h);iB(j);iB(k);iB(i);}r=(c[x>>2]|0)+-24|0;c[i>>2]=c[e+12>>2];vB(h,r,i);r=e+20|0;y=c[r>>2]|0;if(y>>>0<(c[e+24>>2]|0)>>>0){c[y>>2]=0;A=y+4|0;c[A>>2]=0;w=y+8|0;c[w>>2]=0;c[y+12>>2]=c[h+12>>2];c[y>>2]=c[h>>2];y=h+4|0;c[A>>2]=c[y>>2];A=h+8|0;c[w>>2]=c[A>>2];c[A>>2]=0;c[y>>2]=0;c[h>>2]=0;c[r>>2]=(c[r>>2]|0)+16;}else wB(e+16|0,h);RA(h);iB(g);P=J;break a;break;}case 83:{r=b+1|0;if((r|0)!=(d|0)?(a[r>>0]|0)==116:0){r=MB(b,d,e)|0;if((r|0)==(b|0)){P=b;break a;}y=c[e+4>>2]|0;if((c[e>>2]|0)==(y|0)){P=b;break a;}c[h>>2]=c[e+12>>2];vB(g,y+-24|0,h);y=e+20|0;A=c[y>>2]|0;if(A>>>0<(c[e+24>>2]|0)>>>0){c[A>>2]=0;w=A+4|0;c[w>>2]=0;v=A+8|0;c[v>>2]=0;c[A+12>>2]=c[g+12>>2];c[A>>2]=c[g>>2];A=g+4|0;c[w>>2]=c[A>>2];w=g+8|0;c[v>>2]=c[w>>2];c[w>>2]=0;c[A>>2]=0;c[g>>2]=0;c[y>>2]=(c[y>>2]|0)+16;}else wB(e+16|0,g);RA(g);P=r;break a;}r=NB(b,d,e)|0;if((r|0)==(b|0)){P=b;break a;}y=EB(r,d,e)|0;if((y|0)==(r|0)){P=r;break a;}A=e+4|0;w=c[A>>2]|0;if(((w-(c[e>>2]|0)|0)/24|0)>>>0<2){P=r;break a;}FB(g,w+-24|0);w=c[A>>2]|0;r=0;while(1){if((r|0)==-1)break;v=r+-1|0;QA(w+(v*24|0)|0);r=v;}c[A>>2]=w+-24;r=a[g+11>>0]|0;J=r<<24>>24<0;TA(w+-48|0,J?c[g>>2]|0:g,J?c[g+4>>2]|0:r&255)|0;r=(c[A>>2]|0)+-24|0;c[i>>2]=c[e+12>>2];vB(h,r,i);r=e+20|0;J=c[r>>2]|0;if(J>>>0<(c[e+24>>2]|0)>>>0){c[J>>2]=0;x=J+4|0;c[x>>2]=0;v=J+8|0;c[v>>2]=0;c[J+12>>2]=c[h+12>>2];c[J>>2]=c[h>>2];J=h+4|0;c[x>>2]=c[J>>2];x=h+8|0;c[v>>2]=c[x>>2];c[x>>2]=0;c[J>>2]=0;c[h>>2]=0;c[r>>2]=(c[r>>2]|0)+16;}else wB(e+16|0,h);RA(h);iB(g);P=y;break a;break;}case 68:{r=b+1|0;if((r|0)!=(d|0))switch(a[r>>0]|0){case 112:{r=e+4|0;J=((c[r>>2]|0)-(c[e>>2]|0)|0)/24|0;x=b+2|0;v=mB(x,d,e)|0;t=((c[r>>2]|0)-(c[e>>2]|0)|0)/24|0;if((v|0)==(x|0))break c;x=c[e+12>>2]|0;c[g>>2]=x;r=e+20|0;s=c[r>>2]|0;if(s>>>0<(c[e+24>>2]|0)>>>0){c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=x;c[r>>2]=(c[r>>2]|0)+16;}else oB(e+16|0,g);x=J;while(1){if(x>>>0>=t>>>0){P=v;break a;}J=c[r>>2]|0;s=(c[e>>2]|0)+(x*24|0)|0;u=J+-12|0;D=c[u>>2]|0;if((D|0)==(c[J+-8>>2]|0))sB(J+-16|0,s);else{rB(D,s);c[u>>2]=(c[u>>2]|0)+24;}x=x+1|0;}break;}case 84:case 116:{x=OB(b,d,e)|0;if((x|0)==(b|0))break c;r=c[e+4>>2]|0;if((c[e>>2]|0)==(r|0)){P=b;break a;}c[h>>2]=c[e+12>>2];vB(g,r+-24|0,h);r=e+20|0;v=c[r>>2]|0;if(v>>>0<(c[e+24>>2]|0)>>>0){c[v>>2]=0;t=v+4|0;c[t>>2]=0;y=v+8|0;c[y>>2]=0;c[v+12>>2]=c[g+12>>2];c[v>>2]=c[g>>2];v=g+4|0;c[t>>2]=c[v>>2];t=g+8|0;c[y>>2]=c[t>>2];c[t>>2]=0;c[v>>2]=0;c[g>>2]=0;c[r>>2]=(c[r>>2]|0)+16;}else wB(e+16|0,g);RA(g);P=x;break a;break;}case 118:{x=PB(b,d,e)|0;if((x|0)==(b|0))break c;r=c[e+4>>2]|0;if((c[e>>2]|0)==(r|0)){P=b;break a;}c[h>>2]=c[e+12>>2];vB(g,r+-24|0,h);r=e+20|0;v=c[r>>2]|0;if(v>>>0<(c[e+24>>2]|0)>>>0){c[v>>2]=0;t=v+4|0;c[t>>2]=0;y=v+8|0;c[y>>2]=0;c[v+12>>2]=c[g+12>>2];c[v>>2]=c[g>>2];v=g+4|0;c[t>>2]=c[v>>2];t=g+8|0;c[y>>2]=c[t>>2];c[t>>2]=0;c[v>>2]=0;c[g>>2]=0;c[r>>2]=(c[r>>2]|0)+16;}else wB(e+16|0,g);RA(g);P=x;break a;break;}default:break c;}break;}default:{}}}while(0);x=tB(b,d,e)|0;if((x|0)==(b|0)){r=MB(b,d,e)|0;if((r|0)!=(b|0)?(v=c[e+4>>2]|0,(c[e>>2]|0)!=(v|0)):0){c[h>>2]=c[e+12>>2];vB(g,v+-24|0,h);v=e+20|0;t=c[v>>2]|0;if(t>>>0<(c[e+24>>2]|0)>>>0){c[t>>2]=0;y=t+4|0;c[y>>2]=0;A=t+8|0;c[A>>2]=0;c[t+12>>2]=c[g+12>>2];c[t>>2]=c[g>>2];t=g+4|0;c[y>>2]=c[t>>2];y=g+8|0;c[A>>2]=c[y>>2];c[y>>2]=0;c[t>>2]=0;c[g>>2]=0;c[v>>2]=(c[v>>2]|0)+16;}else wB(e+16|0,g);RA(g);P=r;}else P=b;}else P=x;}else P=q;}else P=b;}while(0);l=f;return P|0;}function nB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;c[e>>2]=0;if((b|0)!=(d|0)){d=a[b>>0]|0;if(d<<24>>24==114){c[e>>2]=4;f=b+1|0;g=f;h=4;i=a[f>>0]|0;}else{g=b;h=0;i=d;}if(i<<24>>24==86){d=h|2;c[e>>2]=d;f=g+1|0;j=f;k=a[f>>0]|0;l=d;}else{j=g;k=i;l=h;}if(k<<24>>24==75){c[e>>2]=l|1;m=j+1|0;}else m=j;}else m=b;return m|0;}function oB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=l;l=l+32|0;e=d;f=a+4|0;g=((c[f>>2]|0)-(c[a>>2]|0)>>4)+1|0;h=AD(a)|0;if(h>>>0<g>>>0)Wz(a);else{i=c[a>>2]|0;j=(c[a+8>>2]|0)-i|0;k=j>>3;BD(e,j>>4>>>0<h>>>1>>>0?k>>>0<g>>>0?g:k:h,(c[f>>2]|0)-i>>4,a+12|0);i=e+8|0;f=c[i>>2]|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=c[b>>2];c[i>>2]=f+16;CD(a,e);DD(e);l=d;return;}}function pB(a,b,c){a=a|0;b=b|0;c=c|0;return zD(a,b,c,AB(c)|0)|0;}function qB(a,b){a=a|0;b=b|0;return TA(a,b,AB(b)|0)|0;}function rB(a,b){a=a|0;b=b|0;TC(a,b);TC(a+12|0,b+12|0);return;}function sB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=l;l=l+32|0;e=d;f=a+4|0;g=(((c[f>>2]|0)-(c[a>>2]|0)|0)/24|0)+1|0;h=XC(a)|0;if(h>>>0<g>>>0)Wz(a);else{i=c[a>>2]|0;j=((c[a+8>>2]|0)-i|0)/24|0;k=j<<1;YC(e,j>>>0<h>>>1>>>0?k>>>0<g>>>0?g:k:h,((c[f>>2]|0)-i|0)/24|0,a+12|0);i=e+8|0;f=c[i>>2]|0;rB(f,b);c[i>>2]=f+24;ZC(a,e);_C(e);l=d;return;}}function tB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+32|0;g=f;a:do{if((b|0)==(d|0))h=b;else do{switch(a[b>>0]|0){case 118:{cD(g,20112);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 119:{HD(g);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 98:{cD(g,20117);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 99:{cD(g,19886);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 97:{JC(g,19891);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 104:{gD(g,19903);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 115:{sC(g,19917);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 116:{KC(g,19923);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 105:{ID(g,20122);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 106:{LC(g,20126);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 108:{cD(g,20139);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 109:{gD(g,20144);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 120:{GC(g,20158);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 121:{JD(g);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 110:{KD(g,19952);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 111:{HC(g,19961);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 102:{sC(g,20168);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 100:{LD(g);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 101:{JC(g,20174);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 103:{FC(g,20186);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 122:{ID(g,20197);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 117:{i=b+1|0;j=GB(i,d,e)|0;h=(j|0)==(i|0)?b:j;break a;break;}case 68:{j=b+1|0;if((j|0)==(d|0)){h=b;break a;}switch(a[j>>0]|0){case 100:{GC(g,20201);j=e+4|0;i=c[j>>2]|0;if(i>>>0<(c[e+8>>2]|0)>>>0){KB(i,g);c[j>>2]=(c[j>>2]|0)+24;}else LB(e,g);QA(g);h=b+2|0;break a;break;}case 101:{FC(g,20211);j=e+4|0;i=c[j>>2]|0;if(i>>>0<(c[e+8>>2]|0)>>>0){KB(i,g);c[j>>2]=(c[j>>2]|0)+24;}else LB(e,g);QA(g);h=b+2|0;break a;break;}case 102:{GC(g,20222);j=e+4|0;i=c[j>>2]|0;if(i>>>0<(c[e+8>>2]|0)>>>0){KB(i,g);c[j>>2]=(c[j>>2]|0)+24;}else LB(e,g);QA(g);h=b+2|0;break a;break;}case 104:{GC(g,20232);j=e+4|0;i=c[j>>2]|0;if(i>>>0<(c[e+8>>2]|0)>>>0){KB(i,g);c[j>>2]=(c[j>>2]|0)+24;}else LB(e,g);QA(g);h=b+2|0;break a;break;}case 105:{KD(g,20242);j=e+4|0;i=c[j>>2]|0;if(i>>>0<(c[e+8>>2]|0)>>>0){KB(i,g);c[j>>2]=(c[j>>2]|0)+24;}else LB(e,g);QA(g);h=b+2|0;break a;break;}case 115:{KD(g,20251);j=e+4|0;i=c[j>>2]|0;if(i>>>0<(c[e+8>>2]|0)>>>0){KB(i,g);c[j>>2]=(c[j>>2]|0)+24;}else LB(e,g);QA(g);h=b+2|0;break a;break;}case 97:{cD(g,20260);j=e+4|0;i=c[j>>2]|0;if(i>>>0<(c[e+8>>2]|0)>>>0){KB(i,g);c[j>>2]=(c[j>>2]|0)+24;}else LB(e,g);QA(g);h=b+2|0;break a;break;}case 110:{KC(g,20265);j=e+4|0;i=c[j>>2]|0;if(i>>>0<(c[e+8>>2]|0)>>>0){KB(i,g);c[j>>2]=(c[j>>2]|0)+24;}else LB(e,g);QA(g);h=b+2|0;break a;break;}default:{h=b;break a;}}break;}default:{h=b;break a;}}}while(0);}while(0);l=f;return h|0;}function uB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;f=l;l=l+112|0;g=f+96|0;h=f+72|0;i=f+48|0;j=f+36|0;k=f+24|0;m=f+12|0;n=f;do{if(((b|0)!=(d|0)?(a[b>>0]|0)==65:0)?(o=b+1|0,(o|0)!=(d|0)):0){p=a[o>>0]|0;if(p<<24>>24==95){q=b+2|0;r=mB(q,d,e)|0;if((r|0)==(q|0)){s=b;break;}q=e+4|0;t=c[q>>2]|0;if((c[e>>2]|0)==(t|0)){s=b;break;}zB(g,t+-12|0,2);t=AB(18667)|0;u=a[g+11>>0]|0;if((t|0)==((u<<24>>24<0?c[g+4>>2]|0:u&255)|0)){u=(BB(g,18667,t)|0)==0;iB(g);if(u)GD((c[q>>2]|0)+-12|0);}else iB(g);pB((c[q>>2]|0)+-12|0,0,20108)|0;s=r;break;}if((p+-49&255)<9){p=QB(o,d)|0;if((p|0)==(d|0)){s=b;break;}if((a[p>>0]|0)!=95){s=b;break;}r=p+1|0;q=mB(r,d,e)|0;if((q|0)==(r|0)){s=b;break;}r=e+4|0;u=c[r>>2]|0;if((c[e>>2]|0)==(u|0)){s=b;break;}zB(g,u+-12|0,2);u=AB(18667)|0;t=a[g+11>>0]|0;if((u|0)==((t<<24>>24<0?c[g+4>>2]|0:t&255)|0)){t=(BB(g,18667,u)|0)==0;iB(g);if(t)GD((c[r>>2]|0)+-12|0);}else iB(g);t=(c[r>>2]|0)+-12|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;QC(i,o,p);pB(i,0,18667)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];p=0;while(1){if((p|0)==3)break;c[i+(p<<2)>>2]=0;p=p+1|0;}qB(h,18722)|0;c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];p=0;while(1){if((p|0)==3)break;c[h+(p<<2)>>2]=0;p=p+1|0;}p=a[g+11>>0]|0;r=p<<24>>24<0;zD(t,0,r?c[g>>2]|0:g,r?c[g+4>>2]|0:p&255)|0;iB(g);iB(h);iB(i);s=q;break;}p=SB(o,d,e)|0;if(((!((p|0)==(o|0)|(p|0)==(d|0))?(a[p>>0]|0)==95:0)?(r=p+1|0,p=mB(r,d,e)|0,(p|0)!=(r|0)):0)?(r=e+4|0,u=c[r>>2]|0,((u-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){KB(h,u+-24|0);u=c[r>>2]|0;v=0;while(1){if((v|0)==-1)break;w=v+-1|0;QA(u+(w*24|0)|0);v=w;}c[r>>2]=u+-24;KB(i,u+-48|0);v=c[r>>2]|0;o=v+-24|0;q=o+11|0;if((a[q>>0]|0)<0){t=c[o>>2]|0;a[g>>0]=0;cB(t,g);c[v+-20>>2]=0;}else{a[g>>0]=0;cB(o,g);a[q>>0]=0;}TB(o);c[o>>2]=c[h>>2];c[o+4>>2]=c[h+4>>2];c[o+8>>2]=c[h+8>>2];o=0;while(1){if((o|0)==3)break;c[h+(o<<2)>>2]=0;o=o+1|0;}o=h+12|0;zB(g,o,2);u=AB(18667)|0;q=a[g+11>>0]|0;if((u|0)==((q<<24>>24<0?c[g+4>>2]|0:q&255)|0)){q=(BB(g,18667,u)|0)==0;iB(g);if(q)GD(o);}else iB(g);FB(n,i);pB(n,0,18667)|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];q=0;while(1){if((q|0)==3)break;c[n+(q<<2)>>2]=0;q=q+1|0;}qB(m,18722)|0;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];q=0;while(1){if((q|0)==3)break;c[m+(q<<2)>>2]=0;q=q+1|0;}q=a[o+11>>0]|0;u=q<<24>>24<0;TA(k,u?c[o>>2]|0:o,u?c[h+16>>2]|0:q&255)|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];q=0;while(1){if((q|0)==3)break;c[k+(q<<2)>>2]=0;q=q+1|0;}q=c[r>>2]|0;o=q+-12|0;u=o+11|0;if((a[u>>0]|0)<0){v=c[o>>2]|0;a[g>>0]=0;cB(v,g);c[q+-8>>2]=0;}else{a[g>>0]=0;cB(o,g);a[u>>0]=0;}TB(o);c[o>>2]=c[j>>2];c[o+4>>2]=c[j+4>>2];c[o+8>>2]=c[j+8>>2];o=0;while(1){if((o|0)==3)break;c[j+(o<<2)>>2]=0;o=o+1|0;}iB(j);iB(k);iB(m);iB(n);QA(i);QA(h);s=p;}else s=b;}else s=b;}while(0);l=f;return s|0;}function vB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;c[a>>2]=0;e=a+4|0;c[e>>2]=0;c[a+8>>2]=0;c[a+12>>2]=c[d>>2];FD(a);rB(c[e>>2]|0,b);c[e>>2]=(c[e>>2]|0)+24;return;}function wB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=l;l=l+32|0;e=d;f=a+4|0;g=((c[f>>2]|0)-(c[a>>2]|0)>>4)+1|0;h=AD(a)|0;if(h>>>0<g>>>0)Wz(a);else{i=c[a>>2]|0;j=(c[a+8>>2]|0)-i|0;k=j>>3;BD(e,j>>4>>>0<h>>>1>>>0?k>>>0<g>>>0?g:k:h,(c[f>>2]|0)-i>>4,a+12|0);i=e+8|0;f=c[i>>2]|0;c[f>>2]=0;h=f+4|0;c[h>>2]=0;k=f+8|0;c[k>>2]=0;c[f+12>>2]=c[b+12>>2];c[f>>2]=c[b>>2];g=b+4|0;c[h>>2]=c[g>>2];h=b+8|0;c[k>>2]=c[h>>2];c[h>>2]=0;c[g>>2]=0;c[b>>2]=0;c[i>>2]=f+16;CD(a,e);DD(e);l=d;return;}}function xB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;f=l;l=l+32|0;g=f+12|0;h=f;do{if(((b|0)!=(d|0)?(a[b>>0]|0)==70:0)?(i=b+1|0,(i|0)!=(d|0)):0){if((a[i>>0]|0)==89){j=b+2|0;if((j|0)==(d|0)){k=b;break;}else m=j;}else m=i;i=mB(m,d,e)|0;if((i|0)!=(m|0)){c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18675,AB(18675)|0);j=e+4|0;n=g+11|0;o=g+4|0;p=h+11|0;q=h+4|0;r=0;s=i;a:while(1){t=s;b:while(1){if((t|0)==(d|0)){u=11;break a;}switch(a[t>>0]|0){case 69:{u=16;break a;break;}case 118:{v=t+1|0;break;}case 82:{i=t+1|0;if((i|0)!=(d|0)?(a[i>>0]|0)==69:0){w=1;x=i;break b;}else u=23;break;}case 79:{i=t+1|0;if((i|0)!=(d|0)?(a[i>>0]|0)==69:0){w=2;x=i;break b;}else u=23;break;}default:u=23;}c:do{if((u|0)==23){u=0;i=((c[j>>2]|0)-(c[e>>2]|0)|0)/24|0;y=mB(t,d,e)|0;z=((c[j>>2]|0)-(c[e>>2]|0)|0)/24|0;if((y|0)==(t|0)|(y|0)==(d|0))break a;A=i;while(1){if(A>>>0>=z>>>0)break;B=a[n>>0]|0;if((B<<24>>24<0?c[o>>2]|0:B&255)>>>0>1)qB(g,18897)|0;FB(h,(c[e>>2]|0)+(A*24|0)|0);B=a[p>>0]|0;C=B<<24>>24<0;TA(g,C?c[h>>2]|0:h,C?c[q>>2]|0:B&255)|0;iB(h);A=A+1|0;}A=i;while(1){if(A>>>0>=z>>>0){v=y;break c;}B=c[j>>2]|0;C=0;while(1){if((C|0)==-1)break;D=C+-1|0;QA(B+(D*24|0)|0);C=D;}c[j>>2]=B+-24;A=A+1|0;}}}while(0);t=v;}r=w;s=x;}if((u|0)==11){s=c[j>>2]|0;q=0;while(1){if((q|0)==-1)break;p=q+-1|0;QA(s+(p*24|0)|0);q=p;}c[j>>2]=s+-24;}else if((u|0)==16){q=t+1|0;qB(g,18673)|0;switch(r&3){case 1:{qB(g,20101)|0;break;}case 2:{qB(g,20104)|0;break;}default:{}}p=c[j>>2]|0;if((c[e>>2]|0)!=(p|0)){qB(p+-24|0,18707)|0;p=a[n>>0]|0;A=p<<24>>24<0;zD((c[j>>2]|0)+-12|0,0,A?c[g>>2]|0:g,A?c[o>>2]|0:p&255)|0;iB(g);k=q;break;}}iB(g);k=b;}else k=b;}else k=b;}while(0);l=f;return k|0;}function yB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;f=l;l=l+112|0;g=f+96|0;h=f+72|0;i=f+48|0;j=f+36|0;k=f+24|0;m=f+12|0;n=f;if(((((b|0)!=(d|0)?(a[b>>0]|0)==77:0)?(o=b+1|0,p=mB(o,d,e)|0,(p|0)!=(o|0)):0)?(o=mB(p,d,e)|0,(o|0)!=(p|0)):0)?(p=e+4|0,d=c[p>>2]|0,((d-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){KB(h,d+-24|0);d=c[p>>2]|0;e=0;while(1){if((e|0)==-1)break;q=e+-1|0;QA(d+(q*24|0)|0);e=q;}c[p>>2]=d+-24;KB(i,d+-48|0);d=h+12|0;a:do{if((a[((a[d+11>>0]|0)<0?c[d>>2]|0:d)>>0]|0)==40){qB(h,18675)|0;c[m>>2]=c[h>>2];c[m+4>>2]=c[h+4>>2];c[m+8>>2]=c[h+8>>2];e=0;while(1){if((e|0)==3)break;c[h+(e<<2)>>2]=0;e=e+1|0;}FB(n,i);e=a[n+11>>0]|0;q=e<<24>>24<0;TA(m,q?c[n>>2]|0:n,q?c[n+4>>2]|0:e&255)|0;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];e=0;while(1){if((e|0)==3)break;c[m+(e<<2)>>2]=0;e=e+1|0;}qB(k,20097)|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];e=0;while(1){if((e|0)==3)break;c[k+(e<<2)>>2]=0;e=e+1|0;}e=c[p>>2]|0;q=e+-24|0;r=q+11|0;if((a[r>>0]|0)<0){s=c[q>>2]|0;a[g>>0]=0;cB(s,g);c[e+-20>>2]=0;}else{a[g>>0]=0;cB(q,g);a[r>>0]=0;}TB(q);c[q>>2]=c[j>>2];c[q+4>>2]=c[j+4>>2];c[q+8>>2]=c[j+8>>2];q=0;while(1){if((q|0)==3)break;c[j+(q<<2)>>2]=0;q=q+1|0;}iB(j);iB(k);iB(n);iB(m);pB(d,0,18673)|0;c[j>>2]=c[d>>2];c[j+4>>2]=c[d+4>>2];c[j+8>>2]=c[d+8>>2];q=0;while(1){if((q|0)==3)break;c[d+(q<<2)>>2]=0;q=q+1|0;}q=c[p>>2]|0;r=q+-12|0;e=r+11|0;if((a[e>>0]|0)<0){s=c[r>>2]|0;a[g>>0]=0;cB(s,g);c[q+-8>>2]=0;}else{a[g>>0]=0;cB(r,g);a[e>>0]=0;}TB(r);c[r>>2]=c[j>>2];c[r+4>>2]=c[j+4>>2];c[r+8>>2]=c[j+8>>2];r=0;while(1){if((r|0)==3)break;c[j+(r<<2)>>2]=0;r=r+1|0;}iB(j);}else{qB(h,18707)|0;c[m>>2]=c[h>>2];c[m+4>>2]=c[h+4>>2];c[m+8>>2]=c[h+8>>2];r=0;while(1){if((r|0)==3)break;c[h+(r<<2)>>2]=0;r=r+1|0;}FB(n,i);r=a[n+11>>0]|0;e=r<<24>>24<0;TA(m,e?c[n>>2]|0:n,e?c[n+4>>2]|0:r&255)|0;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];r=0;while(1){if((r|0)==3)break;c[m+(r<<2)>>2]=0;r=r+1|0;}qB(k,20097)|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];r=0;while(1){if((r|0)==3)break;c[k+(r<<2)>>2]=0;r=r+1|0;}r=c[p>>2]|0;e=r+-24|0;q=e+11|0;if((a[q>>0]|0)<0){s=c[e>>2]|0;a[g>>0]=0;cB(s,g);c[r+-20>>2]=0;}else{a[g>>0]=0;cB(e,g);a[q>>0]=0;}TB(e);c[e>>2]=c[j>>2];c[e+4>>2]=c[j+4>>2];c[e+8>>2]=c[j+8>>2];e=0;while(1){if((e|0)==3)break;c[j+(e<<2)>>2]=0;e=e+1|0;}iB(j);iB(k);iB(n);iB(m);e=c[p>>2]|0;q=e+-12|0;r=q+11|0;if((a[r>>0]|0)<0){s=c[q>>2]|0;a[g>>0]=0;cB(s,g);c[e+-8>>2]=0;}else{a[g>>0]=0;cB(q,g);a[r>>0]=0;}TB(q);c[q>>2]=c[d>>2];c[q+4>>2]=c[d+4>>2];c[q+8>>2]=c[d+8>>2];q=0;while(1){if((q|0)==3)break a;c[d+(q<<2)>>2]=0;q=q+1|0;}}}while(0);QA(i);QA(h);t=o;}else t=b;l=f;return t|0;}function zB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;f=a[d+11>>0]|0;g=f<<24>>24<0;h=g?c[d+4>>2]|0:f&255;RB(b,g?c[d>>2]|0:d,h>>>0<e>>>0?h:e);return;}function AB(a){a=a|0;return Ty(a)|0;}function BB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=a[b+11>>0]|0;g=f<<24>>24<0;if(g)h=c[b+4>>2]|0;else h=f&255;if((e|0)==-1)xD(b);if(g)i=c[b>>2]|0;else i=b;b=h>>>0>e>>>0;g=yD(i,d,b?e:h)|0;if(!g)return(h>>>0<e>>>0?-1:b&1)|0;else return g|0;return 0;}function CB(a){a=a|0;wD(a,AB(20094)|0);return;}function DB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;f=l;l=l+48|0;g=f+16|0;h=f;a:do{if((d-b|0)>1?(a[b>>0]|0)==84:0){i=a[b+1>>0]|0;if(i<<24>>24==95){j=c[e+36>>2]|0;if((c[e+32>>2]|0)==(j|0)){k=b;break;}m=c[j+-16>>2]|0;if((m|0)==(c[j+-12>>2]|0)){vD(g);j=e+4|0;n=c[j>>2]|0;if(n>>>0<(c[e+8>>2]|0)>>>0){KB(n,g);c[j>>2]=(c[j>>2]|0)+24;}else LB(e,g);QA(g);a[e+62>>0]=1;k=b+2|0;break;}j=c[m+4>>2]|0;n=e+4|0;o=e+8|0;p=c[m>>2]|0;while(1){if((p|0)==(j|0))break;m=c[n>>2]|0;if((m|0)==(c[o>>2]|0))sB(e,p);else{rB(m,p);c[n>>2]=(c[n>>2]|0)+24;}p=p+24|0;}k=b+2|0;break;}p=(i<<24>>24)+-48|0;if(p>>>0<10){n=p;p=b+2|0;while(1){if((p|0)==(d|0)){k=b;break a;}q=a[p>>0]|0;o=(q<<24>>24)+-48|0;if(o>>>0>=10)break;n=o+(n*10|0)|0;p=p+1|0;}if(q<<24>>24==95?(i=c[e+36>>2]|0,(c[e+32>>2]|0)!=(i|0)):0){o=n+1|0;j=c[i+-16>>2]|0;m=j;if(o>>>0>=(c[i+-12>>2]|0)-j>>4>>>0){j=p+1|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;QC(h,b,j);IB(g,h);i=e+4|0;r=c[i>>2]|0;if(r>>>0<(c[e+8>>2]|0)>>>0){KB(r,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);iB(h);a[e+62>>0]=1;k=j;break;}j=c[m+(o<<4)+4>>2]|0;i=e+4|0;r=e+8|0;s=c[m+(o<<4)>>2]|0;while(1){if((s|0)==(j|0))break;o=c[i>>2]|0;if((o|0)==(c[r>>2]|0))sB(e,s);else{rB(o,s);c[i>>2]=(c[i>>2]|0)+24;}s=s+24|0;}k=p+1|0;}else k=b;}else k=b;}else k=b;}while(0);l=f;return k|0;}function EB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;f=l;l=l+64|0;g=f+32|0;h=f+16|0;i=f+12|0;j=f;do{if((d-b|0)>1?(a[b>>0]|0)==73:0){k=e+61|0;m=e+36|0;if(a[k>>0]|0){n=c[m>>2]|0;o=c[n+-16>>2]|0;p=n+-12|0;n=c[p>>2]|0;while(1){if((n|0)==(o|0))break;q=n+-16|0;RA(q);n=q;}c[p>>2]=o;}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;RB(h,18709,AB(18709)|0);n=e+4|0;q=e+12|0;r=e+40|0;s=e+32|0;t=h+11|0;u=h+4|0;v=g+11|0;w=g+4|0;x=b+1|0;while(1){if((a[x>>0]|0)==69)break;if(a[k>>0]|0){c[i>>2]=c[q>>2];y=c[m>>2]|0;if(y>>>0<(c[r>>2]|0)>>>0){nD(g,i);c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;c[y+12>>2]=c[g>>2];c[m>>2]=(c[m>>2]|0)+16;}else oD(s,i);}y=((c[n>>2]|0)-(c[e>>2]|0)|0)/24|0;z=pD(x,d,e)|0;A=((c[n>>2]|0)-(c[e>>2]|0)|0)/24|0;if(a[k>>0]|0){B=c[m>>2]|0;C=0;while(1){if((C|0)==-1)break;D=C+-1|0;XA(B+(D<<4)|0);C=D;}c[m>>2]=B+-16;}if((z|0)==(x|0)|(z|0)==(d|0)){E=53;break;}a:do{if(a[k>>0]|0){C=c[m>>2]|0;D=c[q>>2]|0;c[g>>2]=D;F=C+-12|0;G=c[F>>2]|0;if(G>>>0<(c[C+-8>>2]|0)>>>0){c[G>>2]=0;c[G+4>>2]=0;c[G+8>>2]=0;c[G+12>>2]=D;c[F>>2]=(c[F>>2]|0)+16;}else oB(C+-16|0,g);C=y;while(1){if(C>>>0>=A>>>0)break a;F=c[(c[m>>2]|0)+-12>>2]|0;D=(c[e>>2]|0)+(C*24|0)|0;G=F+-12|0;H=c[G>>2]|0;if((H|0)==(c[F+-8>>2]|0))sB(F+-16|0,D);else{rB(H,D);c[G>>2]=(c[G>>2]|0)+24;}C=C+1|0;}}}while(0);B=y;while(1){if(B>>>0>=A>>>0)break;C=a[t>>0]|0;if((C<<24>>24<0?c[u>>2]|0:C&255)>>>0>1)qB(h,18897)|0;FB(g,(c[e>>2]|0)+(B*24|0)|0);C=a[v>>0]|0;G=C<<24>>24<0;TA(h,G?c[g>>2]|0:g,G?c[w>>2]|0:C&255)|0;iB(g);B=B+1|0;}B=A;while(1){if((B|0)==(y|0))break;C=c[n>>2]|0;G=0;while(1){if((G|0)==-1)break;D=G+-1|0;QA(C+(D*24|0)|0);G=D;}c[n>>2]=C+-24;B=B+-1|0;}x=z;}if((E|0)==53){iB(h);I=b;break;}w=x+1|0;v=a[t>>0]|0;m=v<<24>>24<0;if((a[(m?c[h>>2]|0:h)+(m?c[u>>2]|0:v&255)+-1>>0]|0)==62)qB(h,20088)|0;else qB(h,18711)|0;c[j>>2]=c[h>>2];c[j+4>>2]=c[h+4>>2];c[j+8>>2]=c[h+8>>2];v=0;while(1){if((v|0)==3)break;c[h+(v<<2)>>2]=0;v=v+1|0;}IB(g,j);v=c[n>>2]|0;if(v>>>0<(c[e+8>>2]|0)>>>0){KB(v,g);c[n>>2]=(c[n>>2]|0)+24;}else LB(e,g);QA(g);iB(j);iB(h);I=w;}else I=b;}while(0);l=f;return I|0;}function FB(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=d+12|0;f=a[e+11>>0]|0;g=f<<24>>24<0;TA(d,g?c[e>>2]|0:e,g?c[d+16>>2]|0:f&255)|0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0;}return;}function GB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;f=l;l=l+64|0;g=f+40|0;h=f+16|0;i=f;a:do{if(((b|0)!=(d|0)?(j=(a[b>>0]|0)+-48|0,j>>>0<10):0)?(k=b+1|0,(k|0)!=(d|0)):0){m=j;j=k;while(1){k=(a[j>>0]|0)+-48|0;if(k>>>0>=10)break;n=j+1|0;if((n|0)==(d|0)){o=b;break a;}m=k+(m*10|0)|0;j=n;}if((d-j|0)>>>0>=m>>>0){c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,j,m);zB(h,g,10);n=AB(20055)|0;k=a[h+11>>0]|0;if((n|0)==((k<<24>>24<0?c[h+4>>2]|0:k&255)|0))p=(BB(h,20055,n)|0)==0;else p=0;iB(h);if(p){mD(h);n=e+4|0;k=c[n>>2]|0;if(k>>>0<(c[e+8>>2]|0)>>>0){KB(k,h);c[n>>2]=(c[n>>2]|0)+24;}else LB(e,h);QA(h);}else{c[i>>2]=c[g>>2];c[i+4>>2]=c[g+4>>2];c[i+8>>2]=c[g+8>>2];n=0;while(1){if((n|0)==3)break;c[g+(n<<2)>>2]=0;n=n+1|0;}IB(h,i);n=e+4|0;k=c[n>>2]|0;if(k>>>0<(c[e+8>>2]|0)>>>0){KB(k,h);c[n>>2]=(c[n>>2]|0)+24;}else LB(e,h);QA(h);iB(i);}iB(g);o=j+m|0;}else o=b;}else o=b;}while(0);l=f;return o|0;}function HB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0;}f=d+11|0;g=a[f>>0]|0;h=g<<24>>24<0?c[d+4>>2]|0:g&255;g=AB(e)|0;VB(b,(a[f>>0]|0)<0?c[d>>2]|0:d,h,h+g|0);TA(b,e,g)|0;return;}function IB(a,b){a=a|0;b=b|0;var d=0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];d=0;while(1){if((d|0)==3)break;c[b+(d<<2)>>2]=0;d=d+1|0;}d=a+12|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[d+(a<<2)>>2]=0;a=a+1|0;}return;}function JB(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;f=e;g=b+11|0;if((a[g>>0]|0)<0){h=c[b>>2]|0;a[f>>0]=0;cB(h,f);c[b+4>>2]=0;}else{a[f>>0]=0;cB(b,f);a[g>>0]=0;}TB(b);c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];g=0;while(1){if((g|0)==3)break;c[d+(g<<2)>>2]=0;g=g+1|0;}g=b+12|0;h=d+12|0;d=g+11|0;if((a[d>>0]|0)<0){i=c[g>>2]|0;a[f>>0]=0;cB(i,f);c[b+16>>2]=0;}else{a[f>>0]=0;cB(g,f);a[d>>0]=0;}TB(g);c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0;}l=e;return;}function KB(a,b){a=a|0;b=b|0;var d=0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];d=0;while(1){if((d|0)==3)break;c[b+(d<<2)>>2]=0;d=d+1|0;}d=a+12|0;a=b+12|0;c[d>>2]=c[a>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];d=0;while(1){if((d|0)==3)break;c[a+(d<<2)>>2]=0;d=d+1|0;}return;}function LB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=l;l=l+32|0;e=d;f=a+4|0;g=(((c[f>>2]|0)-(c[a>>2]|0)|0)/24|0)+1|0;h=XC(a)|0;if(h>>>0<g>>>0)Wz(a);else{i=c[a>>2]|0;j=((c[a+8>>2]|0)-i|0)/24|0;k=j<<1;YC(e,j>>>0<h>>>1>>>0?k>>>0<g>>>0?g:k:h,((c[f>>2]|0)-i|0)/24|0,a+12|0);i=e+8|0;f=c[i>>2]|0;KB(f,b);c[i>>2]=f+24;ZC(a,e);_C(e);l=d;return;}}function MB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;f=l;l=l+32|0;g=f+8|0;h=f;a:do{if((d-b|0)>1){i=(a[b>>0]|0)==76?b+1|0:b;switch(a[i>>0]|0){case 78:{j=hD(i,d,e)|0;k=(j|0)==(i|0)?b:j;break a;break;}case 90:{j=iD(i,d,e)|0;k=(j|0)==(i|0)?b:j;break a;break;}default:{j=jD(i,d,e)|0;if((j|0)==(i|0)){m=NB(i,d,e)|0;if((m|0)==(i|0)|(m|0)==(d|0)){k=b;break a;}if((a[m>>0]|0)!=73){k=b;break a;}i=EB(m,d,e)|0;if((i|0)==(m|0)){k=b;break a;}m=e+4|0;n=c[m>>2]|0;if(((n-(c[e>>2]|0)|0)/24|0)>>>0<2){k=b;break a;}FB(g,n+-24|0);n=c[m>>2]|0;o=0;while(1){if((o|0)==-1)break;p=o+-1|0;QA(n+(p*24|0)|0);o=p;}c[m>>2]=n+-24;o=a[g+11>>0]|0;p=o<<24>>24<0;TA(n+-48|0,p?c[g>>2]|0:g,p?c[g+4>>2]|0:o&255)|0;iB(g);k=i;break a;}if((j|0)==(d|0)){k=d;break a;}if((a[j>>0]|0)!=73){k=j;break a;}o=e+4|0;p=c[o>>2]|0;if((c[e>>2]|0)==(p|0)){k=b;break a;}c[h>>2]=c[e+12>>2];vB(g,p+-24|0,h);p=e+20|0;q=c[p>>2]|0;if(q>>>0<(c[e+24>>2]|0)>>>0){c[q>>2]=0;r=q+4|0;c[r>>2]=0;s=q+8|0;c[s>>2]=0;c[q+12>>2]=c[g+12>>2];c[q>>2]=c[g>>2];q=g+4|0;c[r>>2]=c[q>>2];r=g+8|0;c[s>>2]=c[r>>2];c[r>>2]=0;c[q>>2]=0;c[g>>2]=0;c[p>>2]=(c[p>>2]|0)+16;}else wB(e+16|0,g);RA(g);p=EB(j,d,e)|0;if((p|0)==(j|0)){k=b;break a;}q=c[o>>2]|0;if(((q-(c[e>>2]|0)|0)/24|0)>>>0<2){k=b;break a;}FB(g,q+-24|0);q=c[o>>2]|0;r=0;while(1){if((r|0)==-1)break;s=r+-1|0;QA(q+(s*24|0)|0);r=s;}c[o>>2]=q+-24;r=a[g+11>>0]|0;j=r<<24>>24<0;TA(q+-48|0,j?c[g>>2]|0:g,j?c[g+4>>2]|0:r&255)|0;iB(g);k=p;break a;}}}else k=b;}while(0);l=f;return k|0;}function NB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;f=l;l=l+32|0;g=f;a:do{if((d-b|0)>1?(a[b>>0]|0)==83:0){h=a[b+1>>0]|0;switch(h|0){case 97:{KC(g,20001);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);k=b+2|0;break a;break;}case 98:{HC(g,20016);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);k=b+2|0;break a;break;}case 115:{JC(g,19495);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);k=b+2|0;break a;break;}case 105:{LC(g,19591);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);k=b+2|0;break a;break;}case 111:{LC(g,19668);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);k=b+2|0;break a;break;}case 100:{gD(g,19745);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);k=b+2|0;break a;break;}case 95:{i=c[e+16>>2]|0;if((i|0)==(c[e+20>>2]|0)){k=b;break a;}j=c[i+4>>2]|0;m=e+4|0;n=e+8|0;o=c[i>>2]|0;while(1){if((o|0)==(j|0))break;i=c[m>>2]|0;if((i|0)==(c[n>>2]|0))sB(e,o);else{rB(i,o);c[m>>2]=(c[m>>2]|0)+24;}o=o+24|0;}k=b+2|0;break a;break;}default:{o=h+-48|0;m=o>>>0<10;if(!m?(Pz(h)|0)==0:0){k=b;break a;}n=b+2|0;j=m?o:h+-55|0;while(1){if((n|0)==(d|0)){k=b;break a;}p=a[n>>0]|0;o=p<<24>>24;m=o+-48|0;i=m>>>0<10;if(!i?(Pz(o)|0)==0:0)break;n=n+1|0;j=(i?m:o+-55|0)+(j*36|0)|0;}if(p<<24>>24!=95){k=b;break a;}h=j+1|0;o=c[e+16>>2]|0;m=o;if(h>>>0>=(c[e+20>>2]|0)-o>>4>>>0){k=b;break a;}o=c[m+(h<<4)+4>>2]|0;i=e+4|0;q=e+8|0;r=c[m+(h<<4)>>2]|0;while(1){if((r|0)==(o|0))break;h=c[i>>2]|0;if((h|0)==(c[q>>2]|0))sB(e,r);else{rB(h,r);c[i>>2]=(c[i>>2]|0)+24;}r=r+24|0;}k=n+1|0;break a;}}}else k=b;}while(0);l=f;return k|0;}function OB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+64|0;g=f+40|0;h=f+12|0;i=f+24|0;j=f;a:do{if((d-b|0)>3?(a[b>>0]|0)==68:0){switch(a[b+1>>0]|0){case 84:case 116:break;default:{k=b;break a;}}m=b+2|0;n=SB(m,d,e)|0;if((!((n|0)==(m|0)|(n|0)==(d|0))?(a[n>>0]|0)==69:0)?(m=e+4|0,o=c[m>>2]|0,(c[e>>2]|0)!=(o|0)):0){FB(j,o+-24|0);pB(j,0,19991)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];o=0;while(1){if((o|0)==3)break;c[j+(o<<2)>>2]=0;o=o+1|0;}qB(i,18673)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];o=0;while(1){if((o|0)==3)break;c[i+(o<<2)>>2]=0;o=o+1|0;}IB(g,h);JB((c[m>>2]|0)+-24|0,g);QA(g);iB(h);iB(i);iB(j);k=n+1|0;}else k=b;}else k=b;}while(0);l=f;return k|0;}function PB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;f=l;l=l+64|0;g=f+40|0;h=f+12|0;i=f;j=f+24|0;a:do{if(((d-b|0)>3?(a[b>>0]|0)==68:0)?(a[b+1>>0]|0)==118:0){k=b+2|0;m=a[k>>0]|0;if((m+-49&255)<9){n=QB(k,d)|0;if((n|0)==(d|0)){o=b;break;}if((a[n>>0]|0)!=95){o=b;break;}p=n-k|0;q=n+1|0;if((q|0)==(d|0)){o=b;break;}if((a[q>>0]|0)!=112){r=mB(q,d,e)|0;if((r|0)==(q|0)){o=b;break;}q=e+4|0;if((c[e>>2]|0)==(c[q>>2]|0)){o=b;break;};c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;RB(i,k,p);pB(i,0,18713)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];s=0;while(1){if((s|0)==3)break;c[i+(s<<2)>>2]=0;s=s+1|0;}qB(h,18722)|0;c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];s=0;while(1){if((s|0)==3)break;c[h+(s<<2)>>2]=0;s=s+1|0;}s=a[g+11>>0]|0;t=s<<24>>24<0;TA((c[q>>2]|0)+-24|0,t?c[g>>2]|0:g,t?c[g+4>>2]|0:s&255)|0;iB(g);iB(h);iB(i);o=r;break;}s=n+2|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;RB(i,k,p);pB(i,0,18724)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];t=0;while(1){if((t|0)==3)break;c[i+(t<<2)>>2]=0;t=t+1|0;}qB(h,18722)|0;c[j>>2]=c[h>>2];c[j+4>>2]=c[h+4>>2];c[j+8>>2]=c[h+8>>2];t=0;while(1){if((t|0)==3)break;c[h+(t<<2)>>2]=0;t=t+1|0;}IB(g,j);t=e+4|0;p=c[t>>2]|0;if(p>>>0<(c[e+8>>2]|0)>>>0){KB(p,g);c[t>>2]=(c[t>>2]|0)+24;}else LB(e,g);QA(g);iB(j);iB(h);iB(i);o=s;break;};c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;t=0;while(1){if((t|0)==3)break;c[h+(t<<2)>>2]=0;t=t+1|0;}if(m<<24>>24!=95?(t=SB(k,d,e)|0,(t|0)!=(k|0)):0){s=e+4|0;p=c[s>>2]|0;if((c[e>>2]|0)!=(p|0)){FB(i,p+-24|0);p=h+11|0;if((a[p>>0]|0)<0){n=c[h>>2]|0;a[g>>0]=0;cB(n,g);c[h+4>>2]=0;}else{a[g>>0]=0;cB(h,g);a[p>>0]=0;}TB(h);c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];p=0;while(1){if((p|0)==3)break;c[i+(p<<2)>>2]=0;p=p+1|0;}iB(i);p=c[s>>2]|0;m=0;while(1){if((m|0)==-1)break;n=m+-1|0;QA(p+(n*24|0)|0);m=n;}c[s>>2]=p+-24;u=t;v=44;}}else{u=k;v=44;}do{if((v|0)==44){if((((u|0)!=(d|0)?(a[u>>0]|0)==95:0)?(m=u+1|0,(m|0)!=(d|0)):0)?(n=mB(m,d,e)|0,(n|0)!=(m|0)):0){m=e+4|0;if((c[e>>2]|0)==(c[m>>2]|0))break;UB(i,18713,h);qB(i,18722)|0;c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];c[g+8>>2]=c[i+8>>2];r=0;while(1){if((r|0)==3)break;c[i+(r<<2)>>2]=0;r=r+1|0;}r=a[g+11>>0]|0;q=r<<24>>24<0;TA((c[m>>2]|0)+-24|0,q?c[g>>2]|0:g,q?c[g+4>>2]|0:r&255)|0;iB(g);iB(i);w=n;}else w=b;iB(h);o=w;break a;}}while(0);iB(h);o=b;}else o=b;}while(0);l=f;return o|0;}function QB(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;a:do{if((b|0)!=(c|0)?(d=(a[b>>0]|0)==110?b+1|0:b,(d|0)!=(c|0)):0){e=a[d>>0]|0;if(e<<24>>24==48){f=d+1|0;break;}if((e+-49&255)<9){e=d;while(1){d=e+1|0;if((d|0)==(c|0)){f=c;break a;}if(((a[d>>0]|0)+-48|0)>>>0<10)e=d;else{f=d;break;}}}else f=b;}else f=b;}while(0);return f|0;}function RB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;g=f;if(e>>>0>4294967279)eB(b);if(e>>>0<11){a[b+11>>0]=e;h=b;}else{i=e+16&-16;j=fB(i)|0;c[b>>2]=j;c[b+8>>2]=i|-2147483648;c[b+4>>2]=e;h=j;}bB(h,d,e)|0;a[g>>0]=0;cB(h+e|0,g);l=f;return;}function SB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;f=l;l=l+208|0;g=f+176|0;h=f+112|0;i=f+88|0;j=f+64|0;k=f+48|0;m=f+160|0;n=f+36|0;o=f+148|0;p=f+136|0;q=f+124|0;r=f+24|0;s=f+12|0;t=f;u=d;v=u-b|0;a:do{if((v|0)>1){if((v|0)>3?(a[b>>0]|0)==103:0){w=(a[b+1>>0]|0)==115;x=w?b+2|0:b;y=w;}else{x=b;y=0;}do{switch(a[x>>0]|0){case 76:{z=WB(b,d,e)|0;break a;break;}case 84:{z=DB(b,d,e)|0;break a;break;}case 102:{z=XB(b,d,e)|0;break a;break;}case 97:{switch(a[x+1>>0]|0){case 97:{w=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18677,AB(18677)|0);A=YB(w,d,g,e)|0;iB(g);z=(A|0)==(w|0)?b:A;break a;break;}case 100:{A=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18695,AB(18695)|0);w=ZB(A,d,g,e)|0;iB(g);z=(w|0)==(A|0)?b:w;break a;break;}case 110:{w=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18695,AB(18695)|0);A=YB(w,d,g,e)|0;iB(g);z=(A|0)==(w|0)?b:A;break a;break;}case 78:{A=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18738,AB(18738)|0);w=YB(A,d,g,e)|0;iB(g);z=(w|0)==(A|0)?b:w;break a;break;}case 83:{w=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18741,AB(18741)|0);A=YB(w,d,g,e)|0;iB(g);z=(A|0)==(w|0)?b:A;break a;break;}case 116:{z=_B(b,d,e)|0;break a;break;}case 122:{z=$B(b,d,e)|0;break a;break;}default:{z=b;break a;}}break;}case 99:{switch(a[x+1>>0]|0){case 99:{z=aC(b,d,e)|0;break a;break;}case 108:{z=bC(b,d,e)|0;break a;break;}case 109:{A=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18743,AB(18743)|0);w=YB(A,d,g,e)|0;iB(g);z=(w|0)==(A|0)?b:w;break a;break;}case 111:{w=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18745,AB(18745)|0);A=ZB(w,d,g,e)|0;iB(g);z=(A|0)==(w|0)?b:A;break a;break;}case 118:{z=cC(b,d,e)|0;break a;break;}default:{z=b;break a;}}break;}case 100:{switch(a[x+1>>0]|0){case 97:{A=x+2|0;w=SB(A,d,e)|0;if((w|0)==(A|0)){z=b;break a;}A=e+4|0;if((c[e>>2]|0)==(c[A>>2]|0)){z=b;break a;};c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;b:do{if(y)RB(j,18747,AB(18747)|0);else{B=0;while(1){if((B|0)==3)break b;c[j+(B<<2)>>2]=0;B=B+1|0;}}}while(0);qB(j,18750)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];B=0;while(1){if((B|0)==3)break;c[j+(B<<2)>>2]=0;B=B+1|0;}FB(k,(c[A>>2]|0)+-24|0);B=a[k+11>>0]|0;C=B<<24>>24<0;TA(i,C?c[k>>2]|0:k,C?c[k+4>>2]|0:B&255)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];B=0;while(1){if((B|0)==3)break;c[i+(B<<2)>>2]=0;B=B+1|0;}B=c[A>>2]|0;C=B+-24|0;D=C+11|0;if((a[D>>0]|0)<0){E=c[C>>2]|0;a[g>>0]=0;cB(E,g);c[B+-20>>2]=0;}else{a[g>>0]=0;cB(C,g);a[D>>0]=0;}TB(C);c[C>>2]=c[h>>2];c[C+4>>2]=c[h+4>>2];c[C+8>>2]=c[h+8>>2];C=0;while(1){if((C|0)==3)break;c[h+(C<<2)>>2]=0;C=C+1|0;}iB(h);iB(k);iB(i);iB(j);z=w;break a;break;}case 99:{z=dC(b,d,e)|0;break a;break;}case 101:{C=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18693,AB(18693)|0);A=ZB(C,d,g,e)|0;iB(g);z=(A|0)==(C|0)?b:A;break a;break;}case 108:{A=x+2|0;C=SB(A,d,e)|0;if((C|0)==(A|0)){z=b;break a;}A=e+4|0;if((c[e>>2]|0)==(c[A>>2]|0)){z=b;break a;};c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c:do{if(y)RB(j,18747,AB(18747)|0);else{D=0;while(1){if((D|0)==3)break c;c[j+(D<<2)>>2]=0;D=D+1|0;}}}while(0);qB(j,18760)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];w=0;while(1){if((w|0)==3)break;c[j+(w<<2)>>2]=0;w=w+1|0;}FB(k,(c[A>>2]|0)+-24|0);w=a[k+11>>0]|0;D=w<<24>>24<0;TA(i,D?c[k>>2]|0:k,D?c[k+4>>2]|0:w&255)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];w=0;while(1){if((w|0)==3)break;c[i+(w<<2)>>2]=0;w=w+1|0;}w=c[A>>2]|0;D=w+-24|0;B=D+11|0;if((a[B>>0]|0)<0){E=c[D>>2]|0;a[g>>0]=0;cB(E,g);c[w+-20>>2]=0;}else{a[g>>0]=0;cB(D,g);a[B>>0]=0;}TB(D);c[D>>2]=c[h>>2];c[D+4>>2]=c[h+4>>2];c[D+8>>2]=c[h+8>>2];D=0;while(1){if((D|0)==3)break;c[h+(D<<2)>>2]=0;D=D+1|0;}iB(h);iB(k);iB(i);iB(j);z=C;break a;break;}case 110:{z=eC(b,d,e)|0;break a;break;}case 115:{z=fC(b,d,e)|0;break a;break;}case 116:{z=gC(b,d,e)|0;break a;break;}case 118:{D=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18768,AB(18768)|0);A=YB(D,d,g,e)|0;iB(g);z=(A|0)==(D|0)?b:A;break a;break;}case 86:{A=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18770,AB(18770)|0);D=YB(A,d,g,e)|0;iB(g);z=(D|0)==(A|0)?b:D;break a;break;}default:{z=b;break a;}}break;}case 101:{switch(a[x+1>>0]|0){case 111:{D=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18773,AB(18773)|0);A=YB(D,d,g,e)|0;iB(g);z=(A|0)==(D|0)?b:A;break a;break;}case 79:{A=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18775,AB(18775)|0);D=YB(A,d,g,e)|0;iB(g);z=(D|0)==(A|0)?b:D;break a;break;}case 113:{D=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18778,AB(18778)|0);A=YB(D,d,g,e)|0;iB(g);z=(A|0)==(D|0)?b:A;break a;break;}default:{z=b;break a;}}break;}case 103:{switch(a[x+1>>0]|0){case 101:{A=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18781,AB(18781)|0);D=YB(A,d,g,e)|0;iB(g);z=(D|0)==(A|0)?b:D;break a;break;}case 116:{D=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18711,AB(18711)|0);A=YB(D,d,g,e)|0;iB(g);z=(A|0)==(D|0)?b:A;break a;break;}default:{z=b;break a;}}break;}case 105:{if((a[x+1>>0]|0)!=120){z=b;break a;}A=b+2|0;D=SB(A,d,e)|0;if((D|0)==(A|0)){z=b;break a;}A=SB(D,d,e)|0;B=e+4|0;if((A|0)==(D|0)){D=c[B>>2]|0;w=0;while(1){if((w|0)==-1)break;E=w+-1|0;QA(D+(E*24|0)|0);w=E;}c[B>>2]=D+-24;z=b;break a;}w=c[B>>2]|0;if(((w-(c[e>>2]|0)|0)/24|0)>>>0<2){z=b;break a;}FB(g,w+-24|0);w=c[B>>2]|0;C=0;while(1){if((C|0)==-1)break;E=C+-1|0;QA(w+(E*24|0)|0);C=E;}c[B>>2]=w+-24;FB(h,w+-48|0);UB(n,18675,h);qB(n,18784)|0;c[k>>2]=c[n>>2];c[k+4>>2]=c[n+4>>2];c[k+8>>2]=c[n+8>>2];C=0;while(1){if((C|0)==3)break;c[n+(C<<2)>>2]=0;C=C+1|0;}C=a[g+11>>0]|0;w=C<<24>>24<0;TA(k,w?c[g>>2]|0:g,w?c[g+4>>2]|0:C&255)|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];C=0;while(1){if((C|0)==3)break;c[k+(C<<2)>>2]=0;C=C+1|0;}qB(j,18722)|0;c[m>>2]=c[j>>2];c[m+4>>2]=c[j+4>>2];c[m+8>>2]=c[j+8>>2];C=0;while(1){if((C|0)==3)break;c[j+(C<<2)>>2]=0;C=C+1|0;}IB(i,m);JB((c[B>>2]|0)+-24|0,i);QA(i);iB(m);iB(j);iB(k);iB(n);iB(h);iB(g);z=A;break a;break;}case 108:{switch(a[x+1>>0]|0){case 101:{C=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18787,AB(18787)|0);w=YB(C,d,g,e)|0;iB(g);z=(w|0)==(C|0)?b:w;break a;break;}case 115:{w=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18790,AB(18790)|0);C=YB(w,d,g,e)|0;iB(g);z=(C|0)==(w|0)?b:C;break a;break;}case 83:{C=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18793,AB(18793)|0);w=YB(C,d,g,e)|0;iB(g);z=(w|0)==(C|0)?b:w;break a;break;}case 116:{w=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18709,AB(18709)|0);C=YB(w,d,g,e)|0;iB(g);z=(C|0)==(w|0)?b:C;break a;break;}default:{z=b;break a;}}break;}case 109:{switch(a[x+1>>0]|0){case 105:{C=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18797,AB(18797)|0);w=YB(C,d,g,e)|0;iB(g);z=(w|0)==(C|0)?b:w;break a;break;}case 73:{w=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18799,AB(18799)|0);C=YB(w,d,g,e)|0;iB(g);z=(C|0)==(w|0)?b:C;break a;break;}case 108:{C=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18693,AB(18693)|0);w=YB(C,d,g,e)|0;iB(g);z=(w|0)==(C|0)?b:w;break a;break;}case 76:{w=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18802,AB(18802)|0);C=YB(w,d,g,e)|0;iB(g);z=(C|0)==(w|0)?b:C;break a;break;}case 109:{C=b+2|0;if((C|0)!=(d|0)?(a[C>>0]|0)==95:0){w=b+3|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18805,AB(18805)|0);D=ZB(w,d,g,e)|0;iB(g);z=(D|0)==(w|0)?b:D;break a;}D=SB(C,d,e)|0;if((D|0)==(C|0)){z=b;break a;}C=e+4|0;w=c[C>>2]|0;if((c[e>>2]|0)==(w|0)){z=b;break a;}FB(i,w+-24|0);pB(i,0,18675)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];w=0;while(1){if((w|0)==3)break;c[i+(w<<2)>>2]=0;w=w+1|0;}qB(h,18808)|0;c[o>>2]=c[h>>2];c[o+4>>2]=c[h+4>>2];c[o+8>>2]=c[h+8>>2];w=0;while(1){if((w|0)==3)break;c[h+(w<<2)>>2]=0;w=w+1|0;}IB(g,o);JB((c[C>>2]|0)+-24|0,g);QA(g);iB(o);iB(h);iB(i);z=D;break a;break;}default:{z=b;break a;}}break;}case 110:{switch(a[x+1>>0]|0){case 119:case 97:{z=hC(b,d,e)|0;break a;break;}case 101:{w=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18812,AB(18812)|0);A=YB(w,d,g,e)|0;iB(g);z=(A|0)==(w|0)?b:A;break a;break;}case 103:{A=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18797,AB(18797)|0);w=ZB(A,d,g,e)|0;iB(g);z=(w|0)==(A|0)?b:w;break a;break;}case 116:{w=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18815,AB(18815)|0);A=ZB(w,d,g,e)|0;iB(g);z=(A|0)==(w|0)?b:A;break a;break;}case 120:{A=b+2|0;w=iC(A,d,e)|0;z=(w|0)==(A|0)?b:w;break a;break;}default:{z=b;break a;}}break;}case 111:{switch(a[x+1>>0]|0){case 110:{z=eC(b,d,e)|0;break a;break;}case 111:{w=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18817,AB(18817)|0);A=YB(w,d,g,e)|0;iB(g);z=(A|0)==(w|0)?b:A;break a;break;}case 114:{A=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18820,AB(18820)|0);w=YB(A,d,g,e)|0;iB(g);z=(w|0)==(A|0)?b:w;break a;break;}case 82:{w=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18822,AB(18822)|0);A=YB(w,d,g,e)|0;iB(g);z=(A|0)==(w|0)?b:A;break a;break;}default:{z=b;break a;}}break;}case 112:{switch(a[x+1>>0]|0){case 109:{A=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18825,AB(18825)|0);w=YB(A,d,g,e)|0;iB(g);z=(w|0)==(A|0)?b:w;break a;break;}case 108:{w=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18829,AB(18829)|0);A=YB(w,d,g,e)|0;iB(g);z=(A|0)==(w|0)?b:A;break a;break;}case 76:{A=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18831,AB(18831)|0);w=YB(A,d,g,e)|0;iB(g);z=(w|0)==(A|0)?b:w;break a;break;}case 112:{w=b+2|0;if((w|0)!=(d|0)?(a[w>>0]|0)==95:0){A=b+3|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18834,AB(18834)|0);B=ZB(A,d,g,e)|0;iB(g);z=(B|0)==(A|0)?b:B;break a;}B=SB(w,d,e)|0;if((B|0)==(w|0)){z=b;break a;}w=e+4|0;A=c[w>>2]|0;if((c[e>>2]|0)==(A|0)){z=b;break a;}FB(i,A+-24|0);pB(i,0,18675)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];A=0;while(1){if((A|0)==3)break;c[i+(A<<2)>>2]=0;A=A+1|0;}qB(h,18837)|0;c[p>>2]=c[h>>2];c[p+4>>2]=c[h+4>>2];c[p+8>>2]=c[h+8>>2];A=0;while(1){if((A|0)==3)break;c[h+(A<<2)>>2]=0;A=A+1|0;}IB(g,p);JB((c[w>>2]|0)+-24|0,g);QA(g);iB(p);iB(h);iB(i);z=B;break a;break;}case 115:{A=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18829,AB(18829)|0);D=ZB(A,d,g,e)|0;iB(g);z=(D|0)==(A|0)?b:D;break a;break;}case 116:{z=jC(b,d,e)|0;break a;break;}default:{z=b;break a;}}break;}case 113:{if((a[x+1>>0]|0)!=117){z=b;break a;}D=b+2|0;A=SB(D,d,e)|0;if((A|0)==(D|0)){z=b;break a;}D=SB(A,d,e)|0;if((D|0)==(A|0)){A=e+4|0;C=c[A>>2]|0;E=0;while(1){if((E|0)==-1)break;F=E+-1|0;QA(C+(F*24|0)|0);E=F;}c[A>>2]=C+-24;z=b;break a;}E=SB(D,d,e)|0;B=e+4|0;if((E|0)==(D|0)){w=c[B>>2]|0;F=0;while(1){if((F|0)==-1)break;G=F+-1|0;QA(w+(G*24|0)|0);F=G;}F=w+-24|0;c[B>>2]=F;D=0;while(1){if((D|0)==-1)break;C=D+-1|0;QA(F+(C*24|0)|0);D=C;}c[B>>2]=w+-48;z=b;break a;}D=c[B>>2]|0;if(((D-(c[e>>2]|0)|0)/24|0)>>>0<3){z=b;break a;}FB(g,D+-24|0);D=c[B>>2]|0;F=0;while(1){if((F|0)==-1)break;C=F+-1|0;QA(D+(C*24|0)|0);F=C;}c[B>>2]=D+-24;FB(h,D+-48|0);F=c[B>>2]|0;w=0;while(1){if((w|0)==-1)break;C=w+-1|0;QA(F+(C*24|0)|0);w=C;}c[B>>2]=F+-24;FB(i,F+-48|0);UB(t,18675,i);qB(t,18841)|0;c[s>>2]=c[t>>2];c[s+4>>2]=c[t+4>>2];c[s+8>>2]=c[t+8>>2];w=0;while(1){if((w|0)==3)break;c[t+(w<<2)>>2]=0;w=w+1|0;}w=a[h+11>>0]|0;F=w<<24>>24<0;TA(s,F?c[h>>2]|0:h,F?c[h+4>>2]|0:w&255)|0;c[r>>2]=c[s>>2];c[r+4>>2]=c[s+4>>2];c[r+8>>2]=c[s+8>>2];w=0;while(1){if((w|0)==3)break;c[s+(w<<2)>>2]=0;w=w+1|0;}qB(r,18847)|0;c[n>>2]=c[r>>2];c[n+4>>2]=c[r+4>>2];c[n+8>>2]=c[r+8>>2];w=0;while(1){if((w|0)==3)break;c[r+(w<<2)>>2]=0;w=w+1|0;}w=a[g+11>>0]|0;F=w<<24>>24<0;TA(n,F?c[g>>2]|0:g,F?c[g+4>>2]|0:w&255)|0;c[k>>2]=c[n>>2];c[k+4>>2]=c[n+4>>2];c[k+8>>2]=c[n+8>>2];w=0;while(1){if((w|0)==3)break;c[n+(w<<2)>>2]=0;w=w+1|0;}qB(k,18673)|0;c[q>>2]=c[k>>2];c[q+4>>2]=c[k+4>>2];c[q+8>>2]=c[k+8>>2];w=0;while(1){if((w|0)==3)break;c[k+(w<<2)>>2]=0;w=w+1|0;}IB(j,q);JB((c[B>>2]|0)+-24|0,j);QA(j);iB(q);iB(k);iB(n);iB(r);iB(s);iB(t);iB(i);iB(h);iB(g);z=E;break a;break;}case 114:{switch(a[x+1>>0]|0){case 99:{z=kC(b,d,e)|0;break a;break;}case 109:{w=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18853,AB(18853)|0);F=YB(w,d,g,e)|0;iB(g);z=(F|0)==(w|0)?b:F;break a;break;}case 77:{F=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18855,AB(18855)|0);w=YB(F,d,g,e)|0;iB(g);z=(w|0)==(F|0)?b:w;break a;break;}case 115:{w=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18858,AB(18858)|0);F=YB(w,d,g,e)|0;iB(g);z=(F|0)==(w|0)?b:F;break a;break;}case 83:{F=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18861,AB(18861)|0);w=YB(F,d,g,e)|0;iB(g);z=(w|0)==(F|0)?b:w;break a;break;}default:{z=b;break a;}}break;}case 115:{switch(a[x+1>>0]|0){case 99:{z=lC(b,d,e)|0;break a;break;}case 112:{z=mC(b,d,e)|0;break a;break;}case 114:{z=eC(b,d,e)|0;break a;break;}case 116:{z=nC(b,d,e)|0;break a;break;}case 122:{z=oC(b,d,e)|0;break a;break;}case 90:{if((u-x|0)<=2){z=b;break a;}switch(a[x+2>>0]|0){case 84:{z=pC(b,d,e)|0;break a;break;}case 102:{z=qC(b,d,e)|0;break a;break;}default:{z=b;break a;}}break;}default:{z=b;break a;}}break;}case 116:{switch(a[x+1>>0]|0){case 105:case 101:{z=rC(b,d,e)|0;break a;break;}case 114:{sC(g,18865);w=e+4|0;F=c[w>>2]|0;if(F>>>0<(c[e+8>>2]|0)>>>0){KB(F,g);c[w>>2]=(c[w>>2]|0)+24;}else LB(e,g);QA(g);z=b+2|0;break a;break;}case 119:{z=tC(b,d,e)|0;break a;break;}default:{z=b;break a;}}break;}case 57:case 56:case 55:case 54:case 53:case 52:case 51:case 50:case 49:{z=eC(b,d,e)|0;break a;break;}default:{z=b;break a;}}}while(0);}else z=b;}while(0);l=f;return z|0;}function TB(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;d=b+11|0;e=a[d>>0]|0;f=e<<24>>24<0;if(f){g=c[b+4>>2]|0;h=(c[b+8>>2]&2147483647)+-1|0;}else{g=e&255;h=10;}i=g>>>0<11;j=i?10:(g+16&-16)+-1|0;a:do{if((j|0)!=(h|0)){do{if(i){k=c[b>>2]|0;if(f){l=0;m=k;n=b;o=12;}else{bB(b,k,(e&255)+1|0)|0;gB(k);o=15;}}else{k=j+1|0;p=fB(k)|0;if(j>>>0<=h>>>0&(p|0)==0)break a;q=a[d>>0]|0;if(q<<24>>24<0){l=1;m=c[b>>2]|0;n=p;o=12;break;}else{bB(p,b,(q&255)+1|0)|0;r=p;s=k;t=b+4|0;o=14;break;}}}while(0);if((o|0)==12){k=b+4|0;bB(n,m,(c[k>>2]|0)+1|0)|0;gB(m);if(l){r=n;s=j+1|0;t=k;o=14;}else o=15;}if((o|0)==14){c[b+8>>2]=s|-2147483648;c[t>>2]=g;c[b>>2]=r;break;}else if((o|0)==15){a[d>>0]=g;break;}}}while(0);return;}function UB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0;}f=AB(d)|0;g=e+11|0;h=a[g>>0]|0;i=h<<24>>24<0?c[e+4>>2]|0:h&255;VB(b,d,f,i+f|0);TA(b,(a[g>>0]|0)<0?c[e>>2]|0:e,i)|0;return;}function VB(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;g=l;l=l+16|0;h=g;if(f>>>0>4294967279)eB(b);if(f>>>0<11){a[b+11>>0]=e;i=b;}else{j=f+16&-16;f=fB(j)|0;c[b>>2]=f;c[b+8>>2]=j|-2147483648;c[b+4>>2]=e;i=f;}bB(i,d,e)|0;a[h>>0]=0;cB(i+e|0,h);l=g;return;}function WB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;f=l;l=l+96|0;g=f+64|0;h=f+48|0;i=f+36|0;j=f+24|0;k=f+12|0;m=f;a:do{if((d-b|0)>3?(a[b>>0]|0)==76:0){n=b+1|0;do{switch(a[n>>0]|0){case 84:{o=b;break a;break;}case 119:{p=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,19867,AB(19867)|0);q=bD(p,d,g,e)|0;iB(g);o=(q|0)==(p|0)?b:q;break a;break;}case 98:{if((a[b+3>>0]|0)!=69){o=b;break a;}switch(a[b+2>>0]|0){case 48:{sC(g,19875);q=e+4|0;p=c[q>>2]|0;if(p>>>0<(c[e+8>>2]|0)>>>0){KB(p,g);c[q>>2]=(c[q>>2]|0)+24;}else LB(e,g);QA(g);o=b+4|0;break a;break;}case 49:{cD(g,19881);q=e+4|0;p=c[q>>2]|0;if(p>>>0<(c[e+8>>2]|0)>>>0){KB(p,g);c[q>>2]=(c[q>>2]|0)+24;}else LB(e,g);QA(g);o=b+4|0;break a;break;}default:{o=b;break a;}}break;}case 99:{q=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,19886,AB(19886)|0);p=bD(q,d,g,e)|0;iB(g);o=(p|0)==(q|0)?b:p;break a;break;}case 97:{p=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,19891,AB(19891)|0);q=bD(p,d,g,e)|0;iB(g);o=(q|0)==(p|0)?b:q;break a;break;}case 104:{q=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,19903,AB(19903)|0);p=bD(q,d,g,e)|0;iB(g);o=(p|0)==(q|0)?b:p;break a;break;}case 115:{p=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,19917,AB(19917)|0);q=bD(p,d,g,e)|0;iB(g);o=(q|0)==(p|0)?b:q;break a;break;}case 116:{q=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,19923,AB(19923)|0);p=bD(q,d,g,e)|0;iB(g);o=(p|0)==(q|0)?b:p;break a;break;}case 105:{p=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,22268,AB(22268)|0);q=bD(p,d,g,e)|0;iB(g);o=(q|0)==(p|0)?b:q;break a;break;}case 106:{q=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,19938,AB(19938)|0);p=bD(q,d,g,e)|0;iB(g);o=(p|0)==(q|0)?b:p;break a;break;}case 108:{p=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,19940,AB(19940)|0);q=bD(p,d,g,e)|0;iB(g);o=(q|0)==(p|0)?b:q;break a;break;}case 109:{q=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,19942,AB(19942)|0);p=bD(q,d,g,e)|0;iB(g);o=(p|0)==(q|0)?b:p;break a;break;}case 120:{p=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,19945,AB(19945)|0);q=bD(p,d,g,e)|0;iB(g);o=(q|0)==(p|0)?b:q;break a;break;}case 121:{q=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,19948,AB(19948)|0);p=bD(q,d,g,e)|0;iB(g);o=(p|0)==(q|0)?b:p;break a;break;}case 110:{p=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,19952,AB(19952)|0);q=bD(p,d,g,e)|0;iB(g);o=(q|0)==(p|0)?b:q;break a;break;}case 111:{q=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,19961,AB(19961)|0);p=bD(q,d,g,e)|0;iB(g);o=(p|0)==(q|0)?b:p;break a;break;}case 102:{p=b+2|0;q=dD(p,d,e)|0;o=(q|0)==(p|0)?b:q;break a;break;}case 100:{q=b+2|0;p=eD(q,d,e)|0;o=(p|0)==(q|0)?b:p;break a;break;}case 101:{p=b+2|0;q=fD(p,d,e)|0;o=(q|0)==(p|0)?b:q;break a;break;}case 95:{if((a[b+2>>0]|0)!=90){o=b;break a;}q=b+3|0;p=jB(q,d,e)|0;if((p|0)==(q|0)|(p|0)==(d|0)){o=b;break a;}o=(a[p>>0]|0)==69?p+1|0:b;break a;break;}default:{p=mB(n,d,e)|0;if((p|0)==(n|0)|(p|0)==(d|0)){o=b;break a;}if((a[p>>0]|0)==69){o=p+1|0;break a;}q=p;while(1){if((q|0)==(d|0)){o=b;break a;}r=a[q>>0]|0;if(((r<<24>>24)+-48|0)>>>0>=10)break;q=q+1|0;}if(!((q|0)!=(p|0)&r<<24>>24==69)){o=b;break a;}s=e+4|0;t=c[s>>2]|0;if((c[e>>2]|0)==(t|0)){o=b;break a;}FB(k,t+-24|0);pB(k,0,18675)|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];t=0;while(1){if((t|0)==3)break;c[k+(t<<2)>>2]=0;t=t+1|0;}qB(j,18673)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];t=0;while(1){if((t|0)==3)break;c[j+(t<<2)>>2]=0;t=t+1|0;}c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;QC(m,p,q);t=a[m+11>>0]|0;u=t<<24>>24<0;TA(i,u?c[m>>2]|0:m,u?c[m+4>>2]|0:t&255)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];t=0;while(1){if((t|0)==3)break;c[i+(t<<2)>>2]=0;t=t+1|0;}IB(g,h);JB((c[s>>2]|0)+-24|0,g);QA(g);iB(h);iB(m);iB(i);iB(j);iB(k);o=q+1|0;break a;}}}while(0);}else o=b;}while(0);l=f;return o|0;}function XB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;f=l;l=l+80|0;g=f+64|0;h=f+40|0;i=f+12|0;j=f+24|0;k=f;a:do{if((d-b|0)>2?(a[b>>0]|0)==102:0){switch(a[b+1>>0]|0){case 112:{m=nB(b+2|0,d,g)|0;n=QB(m,d)|0;if((n|0)!=(d|0)?(a[n>>0]|0)==95:0){c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;QC(j,m,n);pB(j,0,19864)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];m=0;while(1){if((m|0)==3)break;c[j+(m<<2)>>2]=0;m=m+1|0;}IB(h,i);m=e+4|0;o=c[m>>2]|0;if(o>>>0<(c[e+8>>2]|0)>>>0){KB(o,h);c[m>>2]=(c[m>>2]|0)+24;}else LB(e,h);QA(h);iB(i);iB(j);p=n+1|0;}else p=b;q=p;break a;break;}case 76:break;default:{q=b;break a;}}m=QB(b+2|0,d)|0;if((((m|0)!=(d|0)?(a[m>>0]|0)==112:0)?(o=nB(m+1|0,d,g)|0,m=QB(o,d)|0,(m|0)!=(d|0)):0)?(a[m>>0]|0)==95:0){c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;QC(j,o,m);pB(j,0,19864)|0;c[k>>2]=c[j>>2];c[k+4>>2]=c[j+4>>2];c[k+8>>2]=c[j+8>>2];o=0;while(1){if((o|0)==3)break;c[j+(o<<2)>>2]=0;o=o+1|0;}IB(h,k);o=e+4|0;n=c[o>>2]|0;if(n>>>0<(c[e+8>>2]|0)>>>0){KB(n,h);c[o>>2]=(c[o>>2]|0)+24;}else LB(e,h);QA(h);iB(k);iB(j);r=m+1|0;}else r=b;q=r;}else q=b;}while(0);l=f;return q|0;}function YB(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;g=l;l=l+96|0;h=g+84|0;i=g+72|0;j=g+60|0;k=g+48|0;m=g+36|0;n=g+24|0;o=g+12|0;p=g;q=SB(b,d,f)|0;do{if((q|0)!=(b|0)){r=SB(q,d,f)|0;s=f+4|0;if((r|0)==(q|0)){t=c[s>>2]|0;u=0;while(1){if((u|0)==-1)break;v=u+-1|0;QA(t+(v*24|0)|0);u=v;}c[s>>2]=t+-24;w=b;break;}u=c[s>>2]|0;if(((u-(c[f>>2]|0)|0)/24|0)>>>0>=2){FB(i,u+-24|0);u=c[s>>2]|0;v=0;while(1){if((v|0)==-1)break;x=v+-1|0;QA(u+(x*24|0)|0);v=x;}c[s>>2]=u+-24;FB(j,u+-48|0);v=c[s>>2]|0;t=v+-24|0;x=t+11|0;if((a[x>>0]|0)<0){y=c[t>>2]|0;a[h>>0]=0;cB(y,h);c[v+-20>>2]=0;}else{a[h>>0]=0;cB(t,h);a[x>>0]=0;}x=AB(18711)|0;v=e+11|0;y=a[v>>0]|0;z=e+4|0;if((x|0)==((y<<24>>24<0?c[z>>2]|0:y&255)|0)?(BB(e,18711,x)|0)==0:0)NC(t,40);UB(p,18675,j);qB(p,18961)|0;c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];c[o+8>>2]=c[p+8>>2];x=0;while(1){if((x|0)==3)break;c[p+(x<<2)>>2]=0;x=x+1|0;}x=a[v>>0]|0;s=x<<24>>24<0;TA(o,s?c[e>>2]|0:e,s?c[z>>2]|0:x&255)|0;c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];c[n+8>>2]=c[o+8>>2];x=0;while(1){if((x|0)==3)break;c[o+(x<<2)>>2]=0;x=x+1|0;}qB(n,18670)|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];x=0;while(1){if((x|0)==3)break;c[n+(x<<2)>>2]=0;x=x+1|0;}x=a[i+11>>0]|0;s=x<<24>>24<0;TA(m,s?c[i>>2]|0:i,s?c[i+4>>2]|0:x&255)|0;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];x=0;while(1){if((x|0)==3)break;c[m+(x<<2)>>2]=0;x=x+1|0;}qB(k,18673)|0;c[h>>2]=c[k>>2];c[h+4>>2]=c[k+4>>2];c[h+8>>2]=c[k+8>>2];x=0;while(1){if((x|0)==3)break;c[k+(x<<2)>>2]=0;x=x+1|0;}x=a[h+11>>0]|0;s=x<<24>>24<0;TA(t,s?c[h>>2]|0:h,s?c[h+4>>2]|0:x&255)|0;iB(h);iB(k);iB(m);iB(n);iB(o);iB(p);x=AB(18711)|0;s=a[v>>0]|0;if((x|0)==((s<<24>>24<0?c[z>>2]|0:s&255)|0)?(BB(e,18711,x)|0)==0:0)NC(t,41);iB(j);iB(i);w=r;}else w=b;}else w=b;}while(0);l=g;return w|0;}function ZB(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;g=l;l=l+64|0;h=g+48|0;i=g+36|0;j=g+24|0;k=g+12|0;m=g;n=SB(b,d,f)|0;if((n|0)!=(b|0)?(d=f+4|0,(c[f>>2]|0)!=(c[d>>2]|0)):0){HB(k,e,18675);FB(m,(c[d>>2]|0)+-24|0);e=a[m+11>>0]|0;f=e<<24>>24<0;TA(k,f?c[m>>2]|0:m,f?c[m+4>>2]|0:e&255)|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];e=0;while(1){if((e|0)==3)break;c[k+(e<<2)>>2]=0;e=e+1|0;}qB(j,18673)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];e=0;while(1){if((e|0)==3)break;c[j+(e<<2)>>2]=0;e=e+1|0;}e=c[d>>2]|0;d=e+-24|0;f=d+11|0;if((a[f>>0]|0)<0){o=c[d>>2]|0;a[h>>0]=0;cB(o,h);c[e+-20>>2]=0;}else{a[h>>0]=0;cB(d,h);a[f>>0]=0;}TB(d);c[d>>2]=c[i>>2];c[d+4>>2]=c[i+4>>2];c[d+8>>2]=c[i+8>>2];d=0;while(1){if((d|0)==3)break;c[i+(d<<2)>>2]=0;d=d+1|0;}iB(i);iB(j);iB(m);iB(k);p=n;}else p=b;l=g;return p|0;}function _B(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+48|0;g=f+36|0;h=f+24|0;i=f+12|0;j=f;if(((((d-b|0)>2?(a[b>>0]|0)==97:0)?(a[b+1>>0]|0)==116:0)?(k=b+2|0,m=mB(k,d,e)|0,(m|0)!=(k|0)):0)?(k=e+4|0,d=c[k>>2]|0,(c[e>>2]|0)!=(d|0)):0){FB(j,d+-24|0);pB(j,0,19854)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];d=0;while(1){if((d|0)==3)break;c[j+(d<<2)>>2]=0;d=d+1|0;}qB(i,18673)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];d=0;while(1){if((d|0)==3)break;c[i+(d<<2)>>2]=0;d=d+1|0;}d=c[k>>2]|0;k=d+-24|0;e=k+11|0;if((a[e>>0]|0)<0){n=c[k>>2]|0;a[g>>0]=0;cB(n,g);c[d+-20>>2]=0;}else{a[g>>0]=0;cB(k,g);a[e>>0]=0;}TB(k);c[k>>2]=c[h>>2];c[k+4>>2]=c[h+4>>2];c[k+8>>2]=c[h+8>>2];k=0;while(1){if((k|0)==3)break;c[h+(k<<2)>>2]=0;k=k+1|0;}iB(h);iB(i);iB(j);o=m;}else o=b;l=f;return o|0;}function $B(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+48|0;g=f+36|0;h=f+24|0;i=f+12|0;j=f;if(((((d-b|0)>2?(a[b>>0]|0)==97:0)?(a[b+1>>0]|0)==122:0)?(k=b+2|0,m=SB(k,d,e)|0,(m|0)!=(k|0)):0)?(k=e+4|0,d=c[k>>2]|0,(c[e>>2]|0)!=(d|0)):0){FB(j,d+-24|0);pB(j,0,19854)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];d=0;while(1){if((d|0)==3)break;c[j+(d<<2)>>2]=0;d=d+1|0;}qB(i,18673)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];d=0;while(1){if((d|0)==3)break;c[i+(d<<2)>>2]=0;d=d+1|0;}d=c[k>>2]|0;k=d+-24|0;e=k+11|0;if((a[e>>0]|0)<0){n=c[k>>2]|0;a[g>>0]=0;cB(n,g);c[d+-20>>2]=0;}else{a[g>>0]=0;cB(k,g);a[e>>0]=0;}TB(k);c[k>>2]=c[h>>2];c[k+4>>2]=c[h+4>>2];c[k+8>>2]=c[h+8>>2];k=0;while(1){if((k|0)==3)break;c[h+(k<<2)>>2]=0;k=k+1|0;}iB(h);iB(i);iB(j);o=m;}else o=b;l=f;return o|0;}function aC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;f=l;l=l+112|0;g=f+88|0;h=f+64|0;i=f+36|0;j=f+48|0;k=f+24|0;m=f+12|0;n=f;if((((((d-b|0)>2?(a[b>>0]|0)==99:0)?(a[b+1>>0]|0)==99:0)?(o=b+2|0,p=mB(o,d,e)|0,(p|0)!=(o|0)):0)?(o=SB(p,d,e)|0,(o|0)!=(p|0)):0)?(p=e+4|0,d=c[p>>2]|0,((d-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){FB(g,d+-24|0);d=c[p>>2]|0;e=0;while(1){if((e|0)==-1)break;q=e+-1|0;QA(d+(q*24|0)|0);e=q;}c[p>>2]=d+-24;FB(n,d+-48|0);pB(n,0,19842)|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];d=0;while(1){if((d|0)==3)break;c[n+(d<<2)>>2]=0;d=d+1|0;}qB(m,18922)|0;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];d=0;while(1){if((d|0)==3)break;c[m+(d<<2)>>2]=0;d=d+1|0;}d=a[g+11>>0]|0;e=d<<24>>24<0;TA(k,e?c[g>>2]|0:g,e?c[g+4>>2]|0:d&255)|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];d=0;while(1){if((d|0)==3)break;c[k+(d<<2)>>2]=0;d=d+1|0;}qB(j,18673)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];d=0;while(1){if((d|0)==3)break;c[j+(d<<2)>>2]=0;d=d+1|0;}IB(h,i);JB((c[p>>2]|0)+-24|0,h);QA(h);iB(i);iB(j);iB(k);iB(m);iB(n);iB(g);r=o;}else r=b;l=f;return r|0;}function bC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;f=l;l=l+32|0;g=f+12|0;h=f;a:do{if(((((d-b|0)>3?(a[b>>0]|0)==99:0)?(a[b+1>>0]|0)==108:0)?(i=b+2|0,j=SB(i,d,e)|0,!((j|0)==(i|0)|(j|0)==(d|0))):0)?(i=e+4|0,k=c[i>>2]|0,(c[e>>2]|0)!=(k|0)):0){m=k+-12|0;n=a[m+11>>0]|0;o=n<<24>>24<0;TA(k+-24|0,o?c[m>>2]|0:m,o?c[k+-8>>2]|0:n&255)|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;n=0;while(1){if((n|0)==3)break;c[h+(n<<2)>>2]=0;n=n+1|0;}n=c[i>>2]|0;k=n+-12|0;o=k+11|0;if((a[o>>0]|0)<0){m=c[k>>2]|0;a[g>>0]=0;cB(m,g);c[n+-8>>2]=0;}else{a[g>>0]=0;cB(k,g);a[o>>0]=0;}TB(k);c[k>>2]=c[h>>2];c[k+4>>2]=c[h+4>>2];c[k+8>>2]=c[h+8>>2];k=0;while(1){if((k|0)==3)break;c[h+(k<<2)>>2]=0;k=k+1|0;}iB(h);qB((c[i>>2]|0)+-24|0,18675)|0;k=g+11|0;o=g+4|0;n=0;m=j;while(1){if((a[m>>0]|0)==69)break;p=SB(m,d,e)|0;if((p|0)==(m|0)|(p|0)==(d|0)){q=b;break a;}r=c[i>>2]|0;if((c[e>>2]|0)==(r|0)){q=b;break a;}FB(g,r+-24|0);r=c[i>>2]|0;s=0;while(1){if((s|0)==-1)break;t=s+-1|0;QA(r+(t*24|0)|0);s=t;}s=r+-24|0;c[i>>2]=s;t=a[k>>0]|0;u=t<<24>>24<0;v=u?c[o>>2]|0:t&255;if(v){if((c[e>>2]|0)==(s|0)){w=0;x=b;y=m;}else{TA(r+-48|0,u?c[g>>2]|0:g,v)|0;w=1;x=n;y=p;}}else{w=1;x=n;y=p;}iB(g);if(w){n=x;m=y;}else{q=x;break a;}}n=c[i>>2]|0;if((c[e>>2]|0)!=(n|0)){qB(n+-24|0,18673)|0;q=m+1|0;}else q=b;}else q=b;}while(0);l=f;return q|0;}function cC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;f=l;l=l+112|0;g=f+88|0;h=f+64|0;i=f+36|0;j=f+48|0;k=f+24|0;m=f+12|0;n=f;a:do{if((((d-b|0)>2?(a[b>>0]|0)==99:0)?(a[b+1>>0]|0)==118:0)?(o=e+63|0,p=a[o>>0]|0,a[o>>0]=0,q=b+2|0,r=mB(q,d,e)|0,a[o>>0]=p,!((r|0)==(q|0)|(r|0)==(d|0))):0){if((a[r>>0]|0)!=95){q=SB(r,d,e)|0;if((q|0)==(r|0)){s=b;break;}else t=q;}else{q=r+1|0;if((q|0)==(d|0)){s=b;break;}r=a[q>>0]|0;b:do{if(r<<24>>24==69){p=e+4|0;o=c[p>>2]|0;if(o>>>0<(c[e+8>>2]|0)>>>0){c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;c[o+16>>2]=0;c[o+20>>2]=0;VC(o);c[p>>2]=(c[p>>2]|0)+24;u=q;break;}else{WC(e);u=q;break;}}else{p=q;o=r;while(1){if(o<<24>>24==69){u=p;break b;}v=SB(p,d,e)|0;if((v|0)==(p|0)|(v|0)==(d|0)){s=b;break a;}p=v;o=a[v>>0]|0;}}}while(0);t=u+1|0;}r=e+4|0;q=c[r>>2]|0;if(((q-(c[e>>2]|0)|0)/24|0)>>>0>=2){FB(g,q+-24|0);q=c[r>>2]|0;o=0;while(1){if((o|0)==-1)break;p=o+-1|0;QA(q+(p*24|0)|0);o=p;}c[r>>2]=q+-24;FB(n,q+-48|0);pB(n,0,18675)|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];o=0;while(1){if((o|0)==3)break;c[n+(o<<2)>>2]=0;o=o+1|0;}qB(m,19839)|0;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];o=0;while(1){if((o|0)==3)break;c[m+(o<<2)>>2]=0;o=o+1|0;}o=a[g+11>>0]|0;q=o<<24>>24<0;TA(k,q?c[g>>2]|0:g,q?c[g+4>>2]|0:o&255)|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];o=0;while(1){if((o|0)==3)break;c[k+(o<<2)>>2]=0;o=o+1|0;}qB(j,18673)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];o=0;while(1){if((o|0)==3)break;c[j+(o<<2)>>2]=0;o=o+1|0;}IB(h,i);JB((c[r>>2]|0)+-24|0,h);QA(h);iB(i);iB(j);iB(k);iB(m);iB(n);iB(g);s=t;}else s=b;}else s=b;}while(0);l=f;return s|0;}function dC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;f=l;l=l+112|0;g=f+88|0;h=f+64|0;i=f+36|0;j=f+48|0;k=f+24|0;m=f+12|0;n=f;if((((((d-b|0)>2?(a[b>>0]|0)==100:0)?(a[b+1>>0]|0)==99:0)?(o=b+2|0,p=mB(o,d,e)|0,(p|0)!=(o|0)):0)?(o=SB(p,d,e)|0,(o|0)!=(p|0)):0)?(p=e+4|0,d=c[p>>2]|0,((d-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){FB(g,d+-24|0);d=c[p>>2]|0;e=0;while(1){if((e|0)==-1)break;q=e+-1|0;QA(d+(q*24|0)|0);e=q;}c[p>>2]=d+-24;FB(n,d+-48|0);pB(n,0,19825)|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];d=0;while(1){if((d|0)==3)break;c[n+(d<<2)>>2]=0;d=d+1|0;}qB(m,18922)|0;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];d=0;while(1){if((d|0)==3)break;c[m+(d<<2)>>2]=0;d=d+1|0;}d=a[g+11>>0]|0;e=d<<24>>24<0;TA(k,e?c[g>>2]|0:g,e?c[g+4>>2]|0:d&255)|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];d=0;while(1){if((d|0)==3)break;c[k+(d<<2)>>2]=0;d=d+1|0;}qB(j,18673)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];d=0;while(1){if((d|0)==3)break;c[j+(d<<2)>>2]=0;d=d+1|0;}IB(h,i);JB((c[p>>2]|0)+-24|0,h);QA(h);iB(i);iB(j);iB(k);iB(m);iB(n);iB(g);r=o;}else r=b;l=f;return r|0;}function eC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;f=l;l=l+32|0;g=f+12|0;h=f;i=d;a:do{if((i-b|0)>2){if((a[b>>0]|0)==103){j=(a[b+1>>0]|0)==115;k=j;m=j?b+2|0:b;}else{k=0;m=b;}j=xC(m,d,e)|0;if((j|0)!=(m|0)){if(!k){n=j;break;}o=c[e+4>>2]|0;if((c[e>>2]|0)==(o|0)){n=b;break;}pB(o+-24|0,0,18747)|0;n=j;break;}if(((i-m|0)>2?(a[m>>0]|0)==115:0)?(a[m+1>>0]|0)==114:0){j=m+2|0;if((a[j>>0]|0)==78){o=m+3|0;p=yC(o,d,e)|0;if((p|0)==(o|0)|(p|0)==(d|0)){n=b;break;}o=EB(p,d,e)|0;q=e+4|0;do{if((o|0)==(p|0)){r=p;s=e;}else{t=c[q>>2]|0;if(((t-(c[e>>2]|0)|0)/24|0)>>>0<2){n=b;break a;}FB(g,t+-24|0);t=c[q>>2]|0;u=0;while(1){if((u|0)==-1)break;v=u+-1|0;QA(t+(v*24|0)|0);u=v;}c[q>>2]=t+-24;u=a[g+11>>0]|0;v=u<<24>>24<0;TA(t+-48|0,v?c[g>>2]|0:g,v?c[g+4>>2]|0:u&255)|0;if((o|0)!=(d|0)){iB(g);r=o;s=e;break;}u=c[q>>2]|0;v=0;while(1){if((v|0)==-1)break;w=v+-1|0;QA(u+(w*24|0)|0);v=w;}c[q>>2]=u+-24;iB(g);n=b;break a;}}while(0);o=h+11|0;p=h+4|0;v=r;while(1){if((a[v>>0]|0)==69)break;t=zC(v,d,e)|0;if((t|0)==(v|0)|(t|0)==(d|0)){n=b;break a;}w=c[q>>2]|0;if(((w-(c[s>>2]|0)|0)/24|0)>>>0<2){n=b;break a;}FB(g,w+-24|0);w=c[q>>2]|0;x=0;while(1){if((x|0)==-1)break;y=x+-1|0;QA(w+(y*24|0)|0);x=y;}c[q>>2]=w+-24;pB(g,0,18747)|0;c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];x=0;while(1){if((x|0)==3)break;c[g+(x<<2)>>2]=0;x=x+1|0;}x=a[o>>0]|0;w=x<<24>>24<0;TA((c[q>>2]|0)+-24|0,w?c[h>>2]|0:h,w?c[p>>2]|0:x&255)|0;iB(h);iB(g);v=t;}p=v+1|0;o=xC(p,d,e)|0;if((o|0)==(p|0)){p=c[q>>2]|0;if((c[e>>2]|0)==(p|0)){n=b;break;}x=0;while(1){if((x|0)==-1)break;w=x+-1|0;QA(p+(w*24|0)|0);x=w;}c[q>>2]=p+-24;n=b;break;}x=c[q>>2]|0;if(((x-(c[s>>2]|0)|0)/24|0)>>>0<2){n=b;break;}FB(g,x+-24|0);x=c[q>>2]|0;v=0;while(1){if((v|0)==-1)break;w=v+-1|0;QA(x+(w*24|0)|0);v=w;}c[q>>2]=x+-24;pB(g,0,18747)|0;c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];v=0;while(1){if((v|0)==3)break;c[g+(v<<2)>>2]=0;v=v+1|0;}v=a[h+11>>0]|0;x=v<<24>>24<0;TA((c[q>>2]|0)+-24|0,x?c[h>>2]|0:h,x?c[h+4>>2]|0:v&255)|0;iB(h);iB(g);n=o;break;}v=yC(j,d,e)|0;if((v|0)!=(j|0)){x=EB(v,d,e)|0;if((x|0)==(v|0))z=v;else{v=e+4|0;p=c[v>>2]|0;if(((p-(c[e>>2]|0)|0)/24|0)>>>0<2){n=b;break;}FB(g,p+-24|0);p=c[v>>2]|0;w=0;while(1){if((w|0)==-1)break;u=w+-1|0;QA(p+(u*24|0)|0);w=u;}c[v>>2]=p+-24;w=a[g+11>>0]|0;o=w<<24>>24<0;TA(p+-48|0,o?c[g>>2]|0:g,o?c[g+4>>2]|0:w&255)|0;iB(g);z=x;}w=xC(z,d,e)|0;if((w|0)==(z|0)){o=e+4|0;q=c[o>>2]|0;if((c[e>>2]|0)==(q|0)){n=b;break;}u=0;while(1){if((u|0)==-1)break;y=u+-1|0;QA(q+(y*24|0)|0);u=y;}c[o>>2]=q+-24;n=b;break;}u=e+4|0;x=c[u>>2]|0;if(((x-(c[e>>2]|0)|0)/24|0)>>>0<2){n=b;break;}FB(g,x+-24|0);x=c[u>>2]|0;p=0;while(1){if((p|0)==-1)break;v=p+-1|0;QA(x+(v*24|0)|0);p=v;}c[u>>2]=x+-24;pB(g,0,18747)|0;c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];p=0;while(1){if((p|0)==3)break;c[g+(p<<2)>>2]=0;p=p+1|0;}p=a[h+11>>0]|0;x=p<<24>>24<0;TA((c[u>>2]|0)+-24|0,x?c[h>>2]|0:h,x?c[h+4>>2]|0:p&255)|0;iB(h);iB(g);n=w;break;}p=zC(j,d,e)|0;if(!((p|0)==(j|0)|(p|0)==(d|0))){if(k){x=e+4|0;q=c[x>>2]|0;if((c[e>>2]|0)==(q|0)){n=b;break;}pB(q+-24|0,0,18747)|0;A=x;}else A=e+4|0;x=h+11|0;q=h+4|0;o=p;while(1){if((a[o>>0]|0)==69)break;p=zC(o,d,e)|0;if((p|0)==(o|0)|(p|0)==(d|0)){n=b;break a;}v=c[A>>2]|0;if(((v-(c[e>>2]|0)|0)/24|0)>>>0<2){n=b;break a;}FB(g,v+-24|0);v=c[A>>2]|0;y=0;while(1){if((y|0)==-1)break;B=y+-1|0;QA(v+(B*24|0)|0);y=B;}c[A>>2]=v+-24;pB(g,0,18747)|0;c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];y=0;while(1){if((y|0)==3)break;c[g+(y<<2)>>2]=0;y=y+1|0;}y=a[x>>0]|0;v=y<<24>>24<0;TA((c[A>>2]|0)+-24|0,v?c[h>>2]|0:h,v?c[q>>2]|0:y&255)|0;iB(h);iB(g);o=p;}q=o+1|0;x=xC(q,d,e)|0;if((x|0)==(q|0)){q=c[A>>2]|0;if((c[e>>2]|0)==(q|0)){n=b;break;}j=0;while(1){if((j|0)==-1)break;w=j+-1|0;QA(q+(w*24|0)|0);j=w;}c[A>>2]=q+-24;n=b;break;}j=c[A>>2]|0;if(((j-(c[e>>2]|0)|0)/24|0)>>>0>=2){FB(g,j+-24|0);j=c[A>>2]|0;o=0;while(1){if((o|0)==-1)break;w=o+-1|0;QA(j+(w*24|0)|0);o=w;}c[A>>2]=j+-24;pB(g,0,18747)|0;c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];o=0;while(1){if((o|0)==3)break;c[g+(o<<2)>>2]=0;o=o+1|0;}o=a[h+11>>0]|0;j=o<<24>>24<0;TA((c[A>>2]|0)+-24|0,j?c[h>>2]|0:h,j?c[h+4>>2]|0:o&255)|0;iB(h);iB(g);n=x;}else n=b;}else n=b;}else n=b;}else n=b;}while(0);l=f;return n|0;}function fC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+12|0;h=f;if((((((d-b|0)>2?(a[b>>0]|0)==100:0)?(a[b+1>>0]|0)==115:0)?(i=b+2|0,j=SB(i,d,e)|0,(j|0)!=(i|0)):0)?(i=SB(j,d,e)|0,(i|0)!=(j|0)):0)?(j=e+4|0,d=c[j>>2]|0,((d-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){FB(g,d+-24|0);d=c[j>>2]|0;e=0;while(1){if((e|0)==-1)break;k=e+-1|0;QA(d+(k*24|0)|0);e=k;}c[j>>2]=d+-24;UB(h,18966,g);d=a[h+11>>0]|0;e=d<<24>>24<0;TA((c[j>>2]|0)+-24|0,e?c[h>>2]|0:h,e?c[h+4>>2]|0:d&255)|0;iB(h);iB(g);m=i;}else m=b;l=f;return m|0;}function gC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+12|0;h=f;if((((((d-b|0)>2?(a[b>>0]|0)==100:0)?(a[b+1>>0]|0)==116:0)?(i=b+2|0,j=SB(i,d,e)|0,(j|0)!=(i|0)):0)?(i=eC(j,d,e)|0,(i|0)!=(j|0)):0)?(j=e+4|0,d=c[j>>2]|0,((d-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){FB(g,d+-24|0);d=c[j>>2]|0;e=0;while(1){if((e|0)==-1)break;k=e+-1|0;QA(d+(k*24|0)|0);e=k;}c[j>>2]=d+-24;UB(h,18964,g);d=a[h+11>>0]|0;e=d<<24>>24<0;TA((c[j>>2]|0)+-24|0,e?c[h>>2]|0:h,e?c[h+4>>2]|0:d&255)|0;iB(h);iB(g);m=i;}else m=b;l=f;return m|0;}function hC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;f=l;l=l+112|0;g=f+88|0;h=f+76|0;i=f+64|0;j=f+40|0;k=f+16|0;m=f;n=f+52|0;o=d;a:do{if((o-b|0)>3){p=a[b>>0]|0;if(p<<24>>24==103){q=(a[b+1>>0]|0)==115;r=q?b+2|0:b;s=q;t=r;u=a[r>>0]|0;}else{s=0;t=b;u=p;}if(u<<24>>24==110){p=a[t+1>>0]|0;switch(p<<24>>24){case 97:case 119:break;default:{v=b;break a;}}r=p<<24>>24==97;p=t+2|0;b:do{if((p|0)!=(d|0)){q=0;w=p;while(1){if((a[w>>0]|0)==95)break;x=SB(w,d,e)|0;if((x|0)==(w|0)|(x|0)==(d|0))break b;else{q=1;w=x;}}x=w+1|0;y=mB(x,d,e)|0;if(!((y|0)==(x|0)|(y|0)==(d|0))){x=a[y>>0]|0;c:do{if(!((o-y|0)>2&x<<24>>24==112)){if(x<<24>>24==69){z=0;A=y;}else break b;}else{if((a[y+1>>0]|0)!=105)break b;B=y+2|0;while(1){if((a[B>>0]|0)==69){z=1;A=B;break c;}C=B;B=SB(B,d,e)|0;if((B|0)==(C|0)|(B|0)==(d|0))break b;}}}while(0);c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;y=0;while(1){if((y|0)==3)break;c[h+(y<<2)>>2]=0;y=y+1|0;}if(z){y=e+4|0;x=c[y>>2]|0;if((c[e>>2]|0)==(x|0)){D=b;E=1;}else{FB(i,x+-24|0);x=h+11|0;if((a[x>>0]|0)<0){w=c[h>>2]|0;a[g>>0]=0;cB(w,g);c[h+4>>2]=0;}else{a[g>>0]=0;cB(h,g);a[x>>0]=0;}TB(h);c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];x=0;while(1){if((x|0)==3)break;c[i+(x<<2)>>2]=0;x=x+1|0;}iB(i);x=c[y>>2]|0;w=0;while(1){if((w|0)==-1)break;B=w+-1|0;QA(x+(B*24|0)|0);w=B;}w=x+-24|0;c[y>>2]=w;F=y;G=e;H=w;I=33;}}else{w=e+4|0;F=w;G=e;H=c[w>>2]|0;I=33;}if((I|0)==33)if((c[G>>2]|0)==(H|0)){D=b;E=1;}else{FB(i,H+-24|0);w=c[F>>2]|0;B=0;while(1){if((B|0)==-1)break;C=B+-1|0;QA(w+(C*24|0)|0);B=C;}B=w+-24|0;c[F>>2]=B;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;y=0;while(1){if((y|0)==3)break;c[j+(y<<2)>>2]=0;y=y+1|0;}if(q){if((c[G>>2]|0)==(B|0)){J=b;K=1;}else{FB(k,w+-48|0);y=j+11|0;if((a[y>>0]|0)<0){x=c[j>>2]|0;a[g>>0]=0;cB(x,g);c[j+4>>2]=0;}else{a[g>>0]=0;cB(j,g);a[y>>0]=0;}TB(j);c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];y=0;while(1){if((y|0)==3)break;c[k+(y<<2)>>2]=0;y=y+1|0;}iB(k);y=c[F>>2]|0;w=0;while(1){if((w|0)==-1)break;B=w+-1|0;QA(y+(B*24|0)|0);w=B;}c[F>>2]=y+-24;I=52;}}else I=52;if((I|0)==52){c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;w=0;while(1){if((w|0)==3)break;c[g+(w<<2)>>2]=0;w=w+1|0;}if(s)uC(g,18747);if(r)qB(g,18957)|0;else qB(g,18707)|0;if(q){UB(m,18675,j);qB(m,18961)|0;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];w=0;while(1){if((w|0)==3)break;c[m+(w<<2)>>2]=0;w=w+1|0;}w=a[k+11>>0]|0;q=w<<24>>24<0;TA(g,q?c[k>>2]|0:k,q?c[k+4>>2]|0:w&255)|0;iB(k);iB(m);}w=a[i+11>>0]|0;q=w<<24>>24<0;TA(g,q?c[i>>2]|0:i,q?c[i+4>>2]|0:w&255)|0;if(z){UB(m,18670,h);qB(m,18673)|0;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];w=0;while(1){if((w|0)==3)break;c[m+(w<<2)>>2]=0;w=w+1|0;}w=a[k+11>>0]|0;q=w<<24>>24<0;TA(g,q?c[k>>2]|0:k,q?c[k+4>>2]|0:w&255)|0;iB(k);iB(m);};c[n>>2]=c[g>>2];c[n+4>>2]=c[g+4>>2];c[n+8>>2]=c[g+8>>2];w=0;while(1){if((w|0)==3)break;c[g+(w<<2)>>2]=0;w=w+1|0;}IB(k,n);w=c[F>>2]|0;if(w>>>0<(c[e+8>>2]|0)>>>0){KB(w,k);c[F>>2]=(c[F>>2]|0)+24;}else LB(e,k);QA(k);iB(n);iB(g);J=A+1|0;K=0;}iB(j);iB(i);D=J;E=K;}iB(h);if(!E){v=D;break a;}}}}while(0);v=b;}else v=b;}else v=b;}while(0);l=f;return v|0;}function iC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+48|0;g=f+36|0;h=f+24|0;i=f+12|0;j=f;k=SB(b,d,e)|0;if((k|0)!=(b|0)?(d=e+4|0,m=c[d>>2]|0,(c[e>>2]|0)!=(m|0)):0){FB(j,m+-24|0);pB(j,0,18946)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];m=0;while(1){if((m|0)==3)break;c[j+(m<<2)>>2]=0;m=m+1|0;}qB(i,18673)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];m=0;while(1){if((m|0)==3)break;c[i+(m<<2)>>2]=0;m=m+1|0;}m=c[d>>2]|0;d=m+-24|0;e=d+11|0;if((a[e>>0]|0)<0){n=c[d>>2]|0;a[g>>0]=0;cB(n,g);c[m+-20>>2]=0;}else{a[g>>0]=0;cB(d,g);a[e>>0]=0;}TB(d);c[d>>2]=c[h>>2];c[d+4>>2]=c[h+4>>2];c[d+8>>2]=c[h+8>>2];d=0;while(1){if((d|0)==3)break;c[h+(d<<2)>>2]=0;d=d+1|0;}iB(h);iB(i);iB(j);o=k;}else o=b;l=f;return o|0;}function jC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+16|0;g=f;if((((((d-b|0)>2?(a[b>>0]|0)==112:0)?(a[b+1>>0]|0)==116:0)?(h=b+2|0,i=SB(h,d,e)|0,(i|0)!=(h|0)):0)?(h=SB(i,d,e)|0,(h|0)!=(i|0)):0)?(i=e+4|0,d=c[i>>2]|0,((d-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){FB(g,d+-24|0);d=c[i>>2]|0;e=0;while(1){if((e|0)==-1)break;j=e+-1|0;QA(d+(j*24|0)|0);e=j;}c[i>>2]=d+-24;qB(d+-48|0,18943)|0;d=a[g+11>>0]|0;e=d<<24>>24<0;TA((c[i>>2]|0)+-24|0,e?c[g>>2]|0:g,e?c[g+4>>2]|0:d&255)|0;iB(g);k=h;}else k=b;l=f;return k|0;}function kC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;f=l;l=l+112|0;g=f+88|0;h=f+64|0;i=f+36|0;j=f+48|0;k=f+24|0;m=f+12|0;n=f;if((((((d-b|0)>2?(a[b>>0]|0)==114:0)?(a[b+1>>0]|0)==99:0)?(o=b+2|0,p=mB(o,d,e)|0,(p|0)!=(o|0)):0)?(o=SB(p,d,e)|0,(o|0)!=(p|0)):0)?(p=e+4|0,d=c[p>>2]|0,((d-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){FB(g,d+-24|0);d=c[p>>2]|0;e=0;while(1){if((e|0)==-1)break;q=e+-1|0;QA(d+(q*24|0)|0);e=q;}c[p>>2]=d+-24;FB(n,d+-48|0);pB(n,0,18925)|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];d=0;while(1){if((d|0)==3)break;c[n+(d<<2)>>2]=0;d=d+1|0;}qB(m,18922)|0;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];d=0;while(1){if((d|0)==3)break;c[m+(d<<2)>>2]=0;d=d+1|0;}d=a[g+11>>0]|0;e=d<<24>>24<0;TA(k,e?c[g>>2]|0:g,e?c[g+4>>2]|0:d&255)|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];d=0;while(1){if((d|0)==3)break;c[k+(d<<2)>>2]=0;d=d+1|0;}qB(j,18673)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];d=0;while(1){if((d|0)==3)break;c[j+(d<<2)>>2]=0;d=d+1|0;}IB(h,i);JB((c[p>>2]|0)+-24|0,h);QA(h);iB(i);iB(j);iB(k);iB(m);iB(n);iB(g);r=o;}else r=b;l=f;return r|0;}function lC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;f=l;l=l+112|0;g=f+88|0;h=f+64|0;i=f+36|0;j=f+48|0;k=f+24|0;m=f+12|0;n=f;if((((((d-b|0)>2?(a[b>>0]|0)==115:0)?(a[b+1>>0]|0)==99:0)?(o=b+2|0,p=mB(o,d,e)|0,(p|0)!=(o|0)):0)?(o=SB(p,d,e)|0,(o|0)!=(p|0)):0)?(p=e+4|0,d=c[p>>2]|0,((d-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){FB(g,d+-24|0);d=c[p>>2]|0;e=0;while(1){if((e|0)==-1)break;q=e+-1|0;QA(d+(q*24|0)|0);e=q;}c[p>>2]=d+-24;FB(n,d+-48|0);pB(n,0,18909)|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];d=0;while(1){if((d|0)==3)break;c[n+(d<<2)>>2]=0;d=d+1|0;}qB(m,18922)|0;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];d=0;while(1){if((d|0)==3)break;c[m+(d<<2)>>2]=0;d=d+1|0;}d=a[g+11>>0]|0;e=d<<24>>24<0;TA(k,e?c[g>>2]|0:g,e?c[g+4>>2]|0:d&255)|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];d=0;while(1){if((d|0)==3)break;c[k+(d<<2)>>2]=0;d=d+1|0;}qB(j,18673)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];d=0;while(1){if((d|0)==3)break;c[j+(d<<2)>>2]=0;d=d+1|0;}IB(h,i);JB((c[p>>2]|0)+-24|0,h);QA(h);iB(i);iB(j);iB(k);iB(m);iB(n);iB(g);r=o;}else r=b;l=f;return r|0;}function mC(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;if(((c-b|0)>2?(a[b>>0]|0)==115:0)?(a[b+1>>0]|0)==112:0){e=b+2|0;f=SB(e,c,d)|0;g=(f|0)==(e|0)?b:f;}else g=b;return g|0;}function nC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;f=l;l=l+64|0;g=f+40|0;h=f+12|0;i=f+24|0;j=f;if(((((d-b|0)>2?(a[b>>0]|0)==115:0)?(a[b+1>>0]|0)==116:0)?(k=b+2|0,m=mB(k,d,e)|0,(m|0)!=(k|0)):0)?(k=e+4|0,d=c[k>>2]|0,(c[e>>2]|0)!=(d|0)):0){FB(j,d+-24|0);pB(j,0,18900)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];d=0;while(1){if((d|0)==3)break;c[j+(d<<2)>>2]=0;d=d+1|0;}qB(i,18673)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];d=0;while(1){if((d|0)==3)break;c[i+(d<<2)>>2]=0;d=d+1|0;}IB(g,h);JB((c[k>>2]|0)+-24|0,g);QA(g);iB(h);iB(i);iB(j);n=m;}else n=b;l=f;return n|0;}function oC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;f=l;l=l+64|0;g=f+40|0;h=f+12|0;i=f+24|0;j=f;if(((((d-b|0)>2?(a[b>>0]|0)==115:0)?(a[b+1>>0]|0)==122:0)?(k=b+2|0,m=SB(k,d,e)|0,(m|0)!=(k|0)):0)?(k=e+4|0,d=c[k>>2]|0,(c[e>>2]|0)!=(d|0)):0){FB(j,d+-24|0);pB(j,0,18900)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];d=0;while(1){if((d|0)==3)break;c[j+(d<<2)>>2]=0;d=d+1|0;}qB(i,18673)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];d=0;while(1){if((d|0)==3)break;c[i+(d<<2)>>2]=0;d=d+1|0;}IB(g,h);JB((c[k>>2]|0)+-24|0,g);QA(g);iB(h);iB(i);iB(j);n=m;}else n=b;l=f;return n|0;}function pC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;f=l;l=l+64|0;g=f+48|0;h=f+24|0;i=f;j=f+12|0;if(((((d-b|0)>2?(a[b>>0]|0)==115:0)?(a[b+1>>0]|0)==90:0)?(k=b+2|0,(a[k>>0]|0)==84):0)?(m=e+4|0,n=((c[m>>2]|0)-(c[e>>2]|0)|0)/24|0,o=DB(k,d,e)|0,d=((c[m>>2]|0)-(c[e>>2]|0)|0)/24|0,(o|0)!=(k|0)):0){c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18886,AB(18886)|0);a:do{if((n|0)!=(d|0)){FB(h,(c[e>>2]|0)+(n*24|0)|0);k=a[h+11>>0]|0;p=k<<24>>24<0;TA(g,p?c[h>>2]|0:h,p?c[h+4>>2]|0:k&255)|0;iB(h);k=h+11|0;p=h+4|0;q=n;while(1){r=q+1|0;if((r|0)==(d|0))break a;FB(i,(c[e>>2]|0)+(r*24|0)|0);pB(i,0,18897)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];s=0;while(1){if((s|0)==3)break;c[i+(s<<2)>>2]=0;s=s+1|0;}s=a[k>>0]|0;t=s<<24>>24<0;TA(g,t?c[h>>2]|0:h,t?c[p>>2]|0:s&255)|0;iB(h);iB(i);q=r;}}}while(0);qB(g,18673)|0;i=d;while(1){if((i|0)==(n|0))break;d=c[m>>2]|0;q=0;while(1){if((q|0)==-1)break;p=q+-1|0;QA(d+(p*24|0)|0);q=p;}c[m>>2]=d+-24;i=i+-1|0;}c[j>>2]=c[g>>2];c[j+4>>2]=c[g+4>>2];c[j+8>>2]=c[g+8>>2];i=0;while(1){if((i|0)==3)break;c[g+(i<<2)>>2]=0;i=i+1|0;}IB(h,j);i=c[m>>2]|0;if(i>>>0<(c[e+8>>2]|0)>>>0){KB(i,h);c[m>>2]=(c[m>>2]|0)+24;}else LB(e,h);QA(h);iB(j);iB(g);u=o;}else u=b;l=f;return u|0;}function qC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;f=l;l=l+64|0;g=f+40|0;h=f+12|0;i=f+24|0;j=f;if((((((d-b|0)>2?(a[b>>0]|0)==115:0)?(a[b+1>>0]|0)==90:0)?(k=b+2|0,(a[k>>0]|0)==102):0)?(m=XB(k,d,e)|0,(m|0)!=(k|0)):0)?(k=e+4|0,d=c[k>>2]|0,(c[e>>2]|0)!=(d|0)):0){FB(j,d+-24|0);pB(j,0,18886)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];d=0;while(1){if((d|0)==3)break;c[j+(d<<2)>>2]=0;d=d+1|0;}qB(i,18673)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];d=0;while(1){if((d|0)==3)break;c[i+(d<<2)>>2]=0;d=d+1|0;}IB(g,h);JB((c[k>>2]|0)+-24|0,g);QA(g);iB(h);iB(i);iB(j);n=m;}else n=b;l=f;return n|0;}function rC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+64|0;g=f+40|0;h=f+12|0;i=f+24|0;j=f;a:do{if((d-b|0)>2?(a[b>>0]|0)==116:0){k=a[b+1>>0]|0;switch(k<<24>>24){case 105:case 101:break;default:{m=b;break a;}}n=b+2|0;if(k<<24>>24==101)o=SB(n,d,e)|0;else o=mB(n,d,e)|0;if((o|0)!=(n|0)?(n=e+4|0,k=c[n>>2]|0,(c[e>>2]|0)!=(k|0)):0){FB(j,k+-24|0);pB(j,0,18878)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];k=0;while(1){if((k|0)==3)break;c[j+(k<<2)>>2]=0;k=k+1|0;}qB(i,18673)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];k=0;while(1){if((k|0)==3)break;c[i+(k<<2)>>2]=0;k=k+1|0;}IB(g,h);JB((c[n>>2]|0)+-24|0,g);QA(g);iB(h);iB(i);iB(j);m=o;}else m=b;}else m=b;}while(0);l=f;return m|0;}function sC(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;RB(a,b,5);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function tC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+48|0;g=f+24|0;h=f;i=f+12|0;if(((((d-b|0)>2?(a[b>>0]|0)==116:0)?(a[b+1>>0]|0)==119:0)?(j=b+2|0,k=SB(j,d,e)|0,(k|0)!=(j|0)):0)?(j=e+4|0,d=c[j>>2]|0,(c[e>>2]|0)!=(d|0)):0){FB(i,d+-24|0);pB(i,0,18871)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];d=0;while(1){if((d|0)==3)break;c[i+(d<<2)>>2]=0;d=d+1|0;}IB(g,h);JB((c[j>>2]|0)+-24|0,g);QA(g);iB(h);iB(i);m=k;}else m=b;l=f;return m|0;}function uC(a,b){a=a|0;b=b|0;vC(a,b,AB(b)|0);return;}function vC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;f=l;l=l+16|0;g=f;h=b+11|0;i=a[h>>0]|0;j=i<<24>>24<0;if(j)k=(c[b+8>>2]&2147483647)+-1|0;else k=10;do{if(k>>>0>=e>>>0){if(j)m=c[b>>2]|0;else m=b;wC(m,d,e)|0;a[g>>0]=0;cB(m+e|0,g);if((a[h>>0]|0)<0){c[b+4>>2]=e;break;}else{a[h>>0]=e;break;}}else{if(j)n=c[b+4>>2]|0;else n=i&255;dB(b,k,e-k|0,n,0,n,e,d);}}while(0);l=f;return;}function wC(a,b,c){a=a|0;b=b|0;c=c|0;if(c|0)nE(a|0,b|0,c|0)|0;return a|0;}function xC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;f=l;l=l+16|0;g=f;a:do{if((d-b|0)>1){h=a[b>>0]|0;switch(h<<24>>24){case 100:case 111:{if((a[b+1>>0]|0)==110){i=b+2|0;if(h<<24>>24!=111){h=UC(i,d,e)|0;j=(h|0)==(i|0)?b:h;break a;}h=EC(i,d,e)|0;if((h|0)==(i|0)){j=b;break a;}i=EB(h,d,e)|0;if((i|0)==(h|0)){j=h;break a;}h=e+4|0;k=c[h>>2]|0;if(((k-(c[e>>2]|0)|0)/24|0)>>>0<2){j=i;break a;}FB(g,k+-24|0);k=c[h>>2]|0;m=0;while(1){if((m|0)==-1)break;n=m+-1|0;QA(k+(n*24|0)|0);m=n;}c[h>>2]=k+-24;m=a[g+11>>0]|0;n=m<<24>>24<0;TA(k+-48|0,n?c[g>>2]|0:g,n?c[g+4>>2]|0:m&255)|0;iB(g);j=i;break a;}break;}default:{}}m=AC(b,d,e)|0;if((m|0)==(b|0)){n=EC(b,d,e)|0;if((n|0)!=(b|0)){o=EB(n,d,e)|0;if((o|0)!=(n|0)){p=e+4|0;q=c[p>>2]|0;if(((q-(c[e>>2]|0)|0)/24|0)>>>0<2)j=o;else{FB(g,q+-24|0);q=c[p>>2]|0;r=0;while(1){if((r|0)==-1)break;s=r+-1|0;QA(q+(s*24|0)|0);r=s;}c[p>>2]=q+-24;r=a[g+11>>0]|0;i=r<<24>>24<0;TA(q+-48|0,i?c[g>>2]|0:g,i?c[g+4>>2]|0:r&255)|0;iB(g);j=o;}}else j=n;}else j=b;}else j=m;}else j=b;}while(0);l=f;return j|0;}function yC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;f=l;l=l+32|0;g=f+8|0;h=f;a:do{if((b|0)==(d|0))i=b;else switch(a[b>>0]|0){case 84:{j=e+4|0;k=((c[j>>2]|0)-(c[e>>2]|0)|0)/24|0;m=DB(b,d,e)|0;n=c[j>>2]|0;o=(n-(c[e>>2]|0)|0)/24|0;p=n;if((m|0)!=(b|0)&(o|0)==(k+1|0)){c[h>>2]=c[e+12>>2];vB(g,p+-24|0,h);n=e+20|0;q=c[n>>2]|0;if(q>>>0<(c[e+24>>2]|0)>>>0){c[q>>2]=0;r=q+4|0;c[r>>2]=0;s=q+8|0;c[s>>2]=0;c[q+12>>2]=c[g+12>>2];c[q>>2]=c[g>>2];q=g+4|0;c[r>>2]=c[q>>2];r=g+8|0;c[s>>2]=c[r>>2];c[r>>2]=0;c[q>>2]=0;c[g>>2]=0;c[n>>2]=(c[n>>2]|0)+16;}else wB(e+16|0,g);RA(g);i=m;break a;}m=o;o=p;while(1){if((m|0)==(k|0)){i=b;break a;}p=0;while(1){if((p|0)==-1)break;n=p+-1|0;QA(o+(n*24|0)|0);p=n;}p=o+-24|0;c[j>>2]=p;m=m+-1|0;o=p;}break;}case 68:{o=OB(b,d,e)|0;if((o|0)==(b|0)){i=b;break a;}m=c[e+4>>2]|0;if((c[e>>2]|0)==(m|0)){i=b;break a;}c[h>>2]=c[e+12>>2];vB(g,m+-24|0,h);m=e+20|0;j=c[m>>2]|0;if(j>>>0<(c[e+24>>2]|0)>>>0){c[j>>2]=0;k=j+4|0;c[k>>2]=0;p=j+8|0;c[p>>2]=0;c[j+12>>2]=c[g+12>>2];c[j>>2]=c[g>>2];j=g+4|0;c[k>>2]=c[j>>2];k=g+8|0;c[p>>2]=c[k>>2];c[k>>2]=0;c[j>>2]=0;c[g>>2]=0;c[m>>2]=(c[m>>2]|0)+16;}else wB(e+16|0,g);RA(g);i=o;break a;break;}case 83:{o=NB(b,d,e)|0;if((o|0)!=(b|0)){i=o;break a;}if((d-b|0)<=2){i=b;break a;}if((a[b+1>>0]|0)!=116){i=b;break a;}o=b+2|0;m=BC(o,d,e)|0;if((m|0)==(o|0)){i=b;break a;}o=e+4|0;j=c[o>>2]|0;if((c[e>>2]|0)==(j|0)){i=b;break a;}pB(j+-24|0,0,18969)|0;j=(c[o>>2]|0)+-24|0;c[h>>2]=c[e+12>>2];vB(g,j,h);j=e+20|0;o=c[j>>2]|0;if(o>>>0<(c[e+24>>2]|0)>>>0){c[o>>2]=0;k=o+4|0;c[k>>2]=0;p=o+8|0;c[p>>2]=0;c[o+12>>2]=c[g+12>>2];c[o>>2]=c[g>>2];o=g+4|0;c[k>>2]=c[o>>2];k=g+8|0;c[p>>2]=c[k>>2];c[k>>2]=0;c[o>>2]=0;c[g>>2]=0;c[j>>2]=(c[j>>2]|0)+16;}else wB(e+16|0,g);RA(g);i=m;break a;break;}default:{i=b;break a;}}}while(0);l=f;return i|0;}function zC(a,b,c){a=a|0;b=b|0;c=c|0;return AC(a,b,c)|0;}function AC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+16|0;g=f;if((b|0)!=(d|0)?(h=GB(b,d,e)|0,(h|0)!=(b|0)):0){i=EB(h,d,e)|0;if((i|0)!=(h|0)){d=e+4|0;j=c[d>>2]|0;if(((j-(c[e>>2]|0)|0)/24|0)>>>0<2)k=b;else{FB(g,j+-24|0);j=c[d>>2]|0;e=0;while(1){if((e|0)==-1)break;m=e+-1|0;QA(j+(m*24|0)|0);e=m;}c[d>>2]=j+-24;d=a[g+11>>0]|0;e=d<<24>>24<0;TA(j+-48|0,e?c[g>>2]|0:g,e?c[g+4>>2]|0:d&255)|0;iB(g);k=i;}}else k=h;}else k=b;l=f;return k|0;}function BC(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;a:do{if((b|0)==(c|0))e=b;else switch(a[b>>0]|0){case 68:case 67:{e=CC(b,c,d)|0;break a;break;}case 85:{e=DC(b,c,d)|0;break a;break;}case 57:case 56:case 55:case 54:case 53:case 52:case 51:case 50:case 49:{e=GB(b,c,d)|0;break a;break;}default:return EC(b,c,d)|0;}}while(0);return e|0;}function CC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+64|0;g=f+40|0;h=f+24|0;i=f;j=f+12|0;a:do{if((d-b|0)>1?(k=e+4|0,m=c[k>>2]|0,(c[e>>2]|0)!=(m|0)):0){switch(a[b>>0]|0){case 67:{switch(a[b+1>>0]|0){case 53:case 51:case 50:case 49:break;default:{n=b;break a;}}SC(h,m+-24|0);IB(g,h);o=c[k>>2]|0;if(o>>>0<(c[e+8>>2]|0)>>>0){KB(o,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);iB(h);a[e+60>>0]=1;n=b+2|0;break a;break;}case 68:break;default:{n=b;break a;}}switch(a[b+1>>0]|0){case 53:case 50:case 49:case 48:break;default:{n=b;break a;}}SC(j,m+-24|0);pB(j,0,18745)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];m=0;while(1){if((m|0)==3)break;c[j+(m<<2)>>2]=0;m=m+1|0;}IB(g,i);m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);iB(i);iB(j);a[e+60>>0]=1;n=b+2|0;}else n=b;}while(0);l=f;return n|0;}function Zl(a,b,e,f,g,h){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0;i=l;l=l+192|0;j=i+176|0;k=i+172|0;m=i+168|0;n=i+164|0;o=i+160|0;p=i+156|0;q=i+152|0;r=i+148|0;s=i+144|0;t=i+140|0;u=i+136|0;v=i+132|0;w=i+128|0;x=i+124|0;y=i+120|0;z=i+116|0;A=i+112|0;B=i+108|0;C=i+104|0;D=i+100|0;E=i+96|0;F=i+92|0;G=i+88|0;H=i+84|0;I=i+80|0;J=i+76|0;K=i+72|0;L=i+68|0;M=i+64|0;N=i+60|0;O=i+56|0;P=i+52|0;Q=i+48|0;R=i+44|0;S=i+40|0;T=i+36|0;U=i+32|0;V=i+28|0;W=i+24|0;X=i+20|0;Y=i+16|0;Z=i+12|0;_=i+8|0;$=i+4|0;aa=i;c[X>>2]=a;c[Y>>2]=b;c[Z>>2]=e;c[_>>2]=f;c[$>>2]=g;c[aa>>2]=h;h=c[Y>>2]|0;Y=c[Z>>2]|0;Z=c[_>>2]|0;_=c[$>>2]|0;$=c[aa>>2]|0;c[j>>2]=c[X>>2];c[k>>2]=h;c[m>>2]=Y;c[n>>2]=Z;c[o>>2]=_;c[p>>2]=$;c[q>>2]=0;c[r>>2]=0;c[s>>2]=c[o>>2];c[t>>2]=c[s>>2];c[u>>2]=c[s>>2];c[v>>2]=(c[s>>2]|0)+(c[p>>2]|0);c[w>>2]=(c[v>>2]|0)+-8;c[x>>2]=(c[(c[j>>2]|0)+4>>2]|0)+(c[(c[j>>2]|0)+12>>2]|0);c[y>>2]=c[q>>2]|0?5:4;c[z>>2]=c[c[m>>2]>>2];c[A>>2]=c[(c[m>>2]|0)+4>>2];c[B>>2]=0;c[t>>2]=(c[t>>2]|0)+((c[t>>2]|0)==(c[x>>2]|0)&1);c[(c[j>>2]|0)+28>>2]=c[(c[j>>2]|0)+24>>2];c[C>>2]=(c[t>>2]|0)-(c[x>>2]|0);if((c[A>>2]|0)>>>0>(c[C>>2]|0)>>>0){c[B>>2]=c[A>>2];c[A>>2]=0;}if((c[z>>2]|0)>>>0>(c[C>>2]|0)>>>0){c[B>>2]=c[z>>2];c[z>>2]=0;}while(1){if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;c[D>>2]=0;c[E>>2]=0;c[F>>2]=(c[t>>2]|0)+1;C=(c[z>>2]|0)>>>0>0&1;q=Bk((c[t>>2]|0)+1|0)|0;if(!(C&(q|0)==(Bk((c[t>>2]|0)+1+(0-(c[z>>2]|0))|0)|0)|0?(c[D>>2]=(Qm((c[t>>2]|0)+1+4|0,(c[t>>2]|0)+1+4+(0-(c[z>>2]|0))|0,c[v>>2]|0)|0)+4,!(c[r>>2]|0)):0)){c[G>>2]=99999999;c[H>>2]=tc[c[y>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,G)|0;if((c[H>>2]|0)>>>0>(c[D>>2]|0)>>>0){c[D>>2]=c[H>>2];c[F>>2]=c[t>>2];c[E>>2]=c[G>>2];}if((c[D>>2]|0)>>>0<4){c[t>>2]=(c[t>>2]|0)+(((c[t>>2]|0)-(c[u>>2]|0)>>8)+1);continue;}a:do{if((c[r>>2]|0)>>>0>=1)while(1){if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;c[t>>2]=(c[t>>2]|0)+1;if(((c[E>>2]|0?(q=(c[z>>2]|0)>>>0>0&1,C=Bk(c[t>>2]|0)|0,q&(C|0)==(Bk((c[t>>2]|0)+(0-(c[z>>2]|0))|0)|0)|0):0)?(c[I>>2]=(Qm((c[t>>2]|0)+4|0,(c[t>>2]|0)+4+(0-(c[z>>2]|0))|0,c[v>>2]|0)|0)+4,c[J>>2]=(c[I>>2]|0)*3,C=(c[D>>2]|0)*3|0,c[K>>2]=C-(Mm((c[E>>2]|0)+1|0)|0)+1,(c[I>>2]|0)>>>0>=4):0)?(c[J>>2]|0)>(c[K>>2]|0):0){c[D>>2]=c[I>>2];c[E>>2]=0;c[F>>2]=c[t>>2];}c[L>>2]=99999999;c[M>>2]=tc[c[y>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,L)|0;C=c[M>>2]<<2;c[N>>2]=C-(Mm((c[L>>2]|0)+1|0)|0);C=c[D>>2]<<2;c[O>>2]=C-(Mm((c[E>>2]|0)+1|0)|0)+4;if((c[M>>2]|0)>>>0>=4?(c[N>>2]|0)>(c[O>>2]|0):0){c[D>>2]=c[M>>2];c[E>>2]=c[L>>2];c[F>>2]=c[t>>2];continue;}if((c[r>>2]|0)!=2)break a;if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;c[t>>2]=(c[t>>2]|0)+1;do{if((c[E>>2]|0?(C=(c[z>>2]|0)>>>0>0&1,q=Bk(c[t>>2]|0)|0,C&(q|0)==(Bk((c[t>>2]|0)+(0-(c[z>>2]|0))|0)|0)|0):0)?(c[P>>2]=(Qm((c[t>>2]|0)+4|0,(c[t>>2]|0)+4+(0-(c[z>>2]|0))|0,c[v>>2]|0)|0)+4,c[Q>>2]=c[P>>2]<<2,q=c[D>>2]<<2,c[R>>2]=q-(Mm((c[E>>2]|0)+1|0)|0)+1,(c[P>>2]|0)>>>0>=4):0){if((c[Q>>2]|0)<=(c[R>>2]|0))break;c[D>>2]=c[P>>2];c[E>>2]=0;c[F>>2]=c[t>>2];}}while(0);c[S>>2]=99999999;c[T>>2]=tc[c[y>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,S)|0;q=c[T>>2]<<2;c[U>>2]=q-(Mm((c[S>>2]|0)+1|0)|0);q=c[D>>2]<<2;c[V>>2]=q-(Mm((c[E>>2]|0)+1|0)|0)+7;if((c[T>>2]|0)>>>0<4)break a;if((c[U>>2]|0)<=(c[V>>2]|0))break a;c[D>>2]=c[T>>2];c[E>>2]=c[S>>2];c[F>>2]=c[t>>2];}}while(0);if(c[E>>2]|0){while(1){if(!(((c[F>>2]|0)>>>0>(c[u>>2]|0)>>>0?((c[F>>2]|0)+(0-((c[E>>2]|0)-2))|0)>>>0>(c[x>>2]|0)>>>0:0)|0))break;if((d[(c[F>>2]|0)+-1>>0]|0|0)!=(d[(c[F>>2]|0)+(0-((c[E>>2]|0)-2))+-1>>0]|0|0))break;c[F>>2]=(c[F>>2]|0)+-1;c[D>>2]=(c[D>>2]|0)+1;}c[A>>2]=c[z>>2];c[z>>2]=(c[E>>2]|0)-2;}}c[W>>2]=(c[F>>2]|0)-(c[u>>2]|0);Nm(c[k>>2]|0,c[W>>2]|0,c[u>>2]|0,c[E>>2]|0,(c[D>>2]|0)-3|0);q=(c[F>>2]|0)+(c[D>>2]|0)|0;c[t>>2]=q;c[u>>2]=q;while(1){if(!(((c[A>>2]|0)>>>0>0?(c[t>>2]|0)>>>0<=(c[w>>2]|0)>>>0:0)|0))break;q=Bk(c[t>>2]|0)|0;if((q|0)!=(Bk((c[t>>2]|0)+(0-(c[A>>2]|0))|0)|0))break;c[D>>2]=(Qm((c[t>>2]|0)+4|0,(c[t>>2]|0)+4+(0-(c[A>>2]|0))|0,c[v>>2]|0)|0)+4;c[E>>2]=c[A>>2];c[A>>2]=c[z>>2];c[z>>2]=c[E>>2];Nm(c[k>>2]|0,0,c[u>>2]|0,0,(c[D>>2]|0)-3|0);c[t>>2]=(c[t>>2]|0)+(c[D>>2]|0);c[u>>2]=c[t>>2];}}c[c[m>>2]>>2]=c[z>>2]|0?c[z>>2]|0:c[B>>2]|0;c[(c[m>>2]|0)+4>>2]=c[A>>2]|0?c[A>>2]|0:c[B>>2]|0;l=i;return(c[v>>2]|0)-(c[u>>2]|0)|0;}function _l(a,b,e,f,g,h){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0;i=l;l=l+192|0;j=i+176|0;k=i+172|0;m=i+168|0;n=i+164|0;o=i+160|0;p=i+156|0;q=i+152|0;r=i+148|0;s=i+144|0;t=i+140|0;u=i+136|0;v=i+132|0;w=i+128|0;x=i+124|0;y=i+120|0;z=i+116|0;A=i+112|0;B=i+108|0;C=i+104|0;D=i+100|0;E=i+96|0;F=i+92|0;G=i+88|0;H=i+84|0;I=i+80|0;J=i+76|0;K=i+72|0;L=i+68|0;M=i+64|0;N=i+60|0;O=i+56|0;P=i+52|0;Q=i+48|0;R=i+44|0;S=i+40|0;T=i+36|0;U=i+32|0;V=i+28|0;W=i+24|0;X=i+20|0;Y=i+16|0;Z=i+12|0;_=i+8|0;$=i+4|0;aa=i;c[X>>2]=a;c[Y>>2]=b;c[Z>>2]=e;c[_>>2]=f;c[$>>2]=g;c[aa>>2]=h;h=c[Y>>2]|0;Y=c[Z>>2]|0;Z=c[_>>2]|0;_=c[$>>2]|0;$=c[aa>>2]|0;c[j>>2]=c[X>>2];c[k>>2]=h;c[m>>2]=Y;c[n>>2]=Z;c[o>>2]=_;c[p>>2]=$;c[q>>2]=0;c[r>>2]=1;c[s>>2]=c[o>>2];c[t>>2]=c[s>>2];c[u>>2]=c[s>>2];c[v>>2]=(c[s>>2]|0)+(c[p>>2]|0);c[w>>2]=(c[v>>2]|0)+-8;c[x>>2]=(c[(c[j>>2]|0)+4>>2]|0)+(c[(c[j>>2]|0)+12>>2]|0);c[y>>2]=c[q>>2]|0?5:4;c[z>>2]=c[c[m>>2]>>2];c[A>>2]=c[(c[m>>2]|0)+4>>2];c[B>>2]=0;c[t>>2]=(c[t>>2]|0)+((c[t>>2]|0)==(c[x>>2]|0)&1);c[(c[j>>2]|0)+28>>2]=c[(c[j>>2]|0)+24>>2];c[C>>2]=(c[t>>2]|0)-(c[x>>2]|0);if((c[A>>2]|0)>>>0>(c[C>>2]|0)>>>0){c[B>>2]=c[A>>2];c[A>>2]=0;}if((c[z>>2]|0)>>>0>(c[C>>2]|0)>>>0){c[B>>2]=c[z>>2];c[z>>2]=0;}while(1){if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;c[D>>2]=0;c[E>>2]=0;c[F>>2]=(c[t>>2]|0)+1;C=(c[z>>2]|0)>>>0>0&1;q=Bk((c[t>>2]|0)+1|0)|0;if(!(C&(q|0)==(Bk((c[t>>2]|0)+1+(0-(c[z>>2]|0))|0)|0)|0?(c[D>>2]=(Qm((c[t>>2]|0)+1+4|0,(c[t>>2]|0)+1+4+(0-(c[z>>2]|0))|0,c[v>>2]|0)|0)+4,!(c[r>>2]|0)):0)){c[G>>2]=99999999;c[H>>2]=tc[c[y>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,G)|0;if((c[H>>2]|0)>>>0>(c[D>>2]|0)>>>0){c[D>>2]=c[H>>2];c[F>>2]=c[t>>2];c[E>>2]=c[G>>2];}if((c[D>>2]|0)>>>0<4){c[t>>2]=(c[t>>2]|0)+(((c[t>>2]|0)-(c[u>>2]|0)>>8)+1);continue;}a:do{if((c[r>>2]|0)>>>0>=1)while(1){if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;c[t>>2]=(c[t>>2]|0)+1;if(((c[E>>2]|0?(q=(c[z>>2]|0)>>>0>0&1,C=Bk(c[t>>2]|0)|0,q&(C|0)==(Bk((c[t>>2]|0)+(0-(c[z>>2]|0))|0)|0)|0):0)?(c[I>>2]=(Qm((c[t>>2]|0)+4|0,(c[t>>2]|0)+4+(0-(c[z>>2]|0))|0,c[v>>2]|0)|0)+4,c[J>>2]=(c[I>>2]|0)*3,C=(c[D>>2]|0)*3|0,c[K>>2]=C-(Mm((c[E>>2]|0)+1|0)|0)+1,(c[I>>2]|0)>>>0>=4):0)?(c[J>>2]|0)>(c[K>>2]|0):0){c[D>>2]=c[I>>2];c[E>>2]=0;c[F>>2]=c[t>>2];}c[L>>2]=99999999;c[M>>2]=tc[c[y>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,L)|0;C=c[M>>2]<<2;c[N>>2]=C-(Mm((c[L>>2]|0)+1|0)|0);C=c[D>>2]<<2;c[O>>2]=C-(Mm((c[E>>2]|0)+1|0)|0)+4;if((c[M>>2]|0)>>>0>=4?(c[N>>2]|0)>(c[O>>2]|0):0){c[D>>2]=c[M>>2];c[E>>2]=c[L>>2];c[F>>2]=c[t>>2];continue;}if((c[r>>2]|0)!=2)break a;if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;c[t>>2]=(c[t>>2]|0)+1;do{if((c[E>>2]|0?(C=(c[z>>2]|0)>>>0>0&1,q=Bk(c[t>>2]|0)|0,C&(q|0)==(Bk((c[t>>2]|0)+(0-(c[z>>2]|0))|0)|0)|0):0)?(c[P>>2]=(Qm((c[t>>2]|0)+4|0,(c[t>>2]|0)+4+(0-(c[z>>2]|0))|0,c[v>>2]|0)|0)+4,c[Q>>2]=c[P>>2]<<2,q=c[D>>2]<<2,c[R>>2]=q-(Mm((c[E>>2]|0)+1|0)|0)+1,(c[P>>2]|0)>>>0>=4):0){if((c[Q>>2]|0)<=(c[R>>2]|0))break;c[D>>2]=c[P>>2];c[E>>2]=0;c[F>>2]=c[t>>2];}}while(0);c[S>>2]=99999999;c[T>>2]=tc[c[y>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,S)|0;q=c[T>>2]<<2;c[U>>2]=q-(Mm((c[S>>2]|0)+1|0)|0);q=c[D>>2]<<2;c[V>>2]=q-(Mm((c[E>>2]|0)+1|0)|0)+7;if((c[T>>2]|0)>>>0<4)break a;if((c[U>>2]|0)<=(c[V>>2]|0))break a;c[D>>2]=c[T>>2];c[E>>2]=c[S>>2];c[F>>2]=c[t>>2];}}while(0);if(c[E>>2]|0){while(1){if(!(((c[F>>2]|0)>>>0>(c[u>>2]|0)>>>0?((c[F>>2]|0)+(0-((c[E>>2]|0)-2))|0)>>>0>(c[x>>2]|0)>>>0:0)|0))break;if((d[(c[F>>2]|0)+-1>>0]|0|0)!=(d[(c[F>>2]|0)+(0-((c[E>>2]|0)-2))+-1>>0]|0|0))break;c[F>>2]=(c[F>>2]|0)+-1;c[D>>2]=(c[D>>2]|0)+1;}c[A>>2]=c[z>>2];c[z>>2]=(c[E>>2]|0)-2;}}c[W>>2]=(c[F>>2]|0)-(c[u>>2]|0);Nm(c[k>>2]|0,c[W>>2]|0,c[u>>2]|0,c[E>>2]|0,(c[D>>2]|0)-3|0);q=(c[F>>2]|0)+(c[D>>2]|0)|0;c[t>>2]=q;c[u>>2]=q;while(1){if(!(((c[A>>2]|0)>>>0>0?(c[t>>2]|0)>>>0<=(c[w>>2]|0)>>>0:0)|0))break;q=Bk(c[t>>2]|0)|0;if((q|0)!=(Bk((c[t>>2]|0)+(0-(c[A>>2]|0))|0)|0))break;c[D>>2]=(Qm((c[t>>2]|0)+4|0,(c[t>>2]|0)+4+(0-(c[A>>2]|0))|0,c[v>>2]|0)|0)+4;c[E>>2]=c[A>>2];c[A>>2]=c[z>>2];c[z>>2]=c[E>>2];Nm(c[k>>2]|0,0,c[u>>2]|0,0,(c[D>>2]|0)-3|0);c[t>>2]=(c[t>>2]|0)+(c[D>>2]|0);c[u>>2]=c[t>>2];}}c[c[m>>2]>>2]=c[z>>2]|0?c[z>>2]|0:c[B>>2]|0;c[(c[m>>2]|0)+4>>2]=c[A>>2]|0?c[A>>2]|0:c[B>>2]|0;l=i;return(c[v>>2]|0)-(c[u>>2]|0)|0;}function $l(a,b,e,f,g,h){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0;i=l;l=l+192|0;j=i+176|0;k=i+172|0;m=i+168|0;n=i+164|0;o=i+160|0;p=i+156|0;q=i+152|0;r=i+148|0;s=i+144|0;t=i+140|0;u=i+136|0;v=i+132|0;w=i+128|0;x=i+124|0;y=i+120|0;z=i+116|0;A=i+112|0;B=i+108|0;C=i+104|0;D=i+100|0;E=i+96|0;F=i+92|0;G=i+88|0;H=i+84|0;I=i+80|0;J=i+76|0;K=i+72|0;L=i+68|0;M=i+64|0;N=i+60|0;O=i+56|0;P=i+52|0;Q=i+48|0;R=i+44|0;S=i+40|0;T=i+36|0;U=i+32|0;V=i+28|0;W=i+24|0;X=i+20|0;Y=i+16|0;Z=i+12|0;_=i+8|0;$=i+4|0;aa=i;c[X>>2]=a;c[Y>>2]=b;c[Z>>2]=e;c[_>>2]=f;c[$>>2]=g;c[aa>>2]=h;h=c[Y>>2]|0;Y=c[Z>>2]|0;Z=c[_>>2]|0;_=c[$>>2]|0;$=c[aa>>2]|0;c[j>>2]=c[X>>2];c[k>>2]=h;c[m>>2]=Y;c[n>>2]=Z;c[o>>2]=_;c[p>>2]=$;c[q>>2]=0;c[r>>2]=2;c[s>>2]=c[o>>2];c[t>>2]=c[s>>2];c[u>>2]=c[s>>2];c[v>>2]=(c[s>>2]|0)+(c[p>>2]|0);c[w>>2]=(c[v>>2]|0)+-8;c[x>>2]=(c[(c[j>>2]|0)+4>>2]|0)+(c[(c[j>>2]|0)+12>>2]|0);c[y>>2]=c[q>>2]|0?5:4;c[z>>2]=c[c[m>>2]>>2];c[A>>2]=c[(c[m>>2]|0)+4>>2];c[B>>2]=0;c[t>>2]=(c[t>>2]|0)+((c[t>>2]|0)==(c[x>>2]|0)&1);c[(c[j>>2]|0)+28>>2]=c[(c[j>>2]|0)+24>>2];c[C>>2]=(c[t>>2]|0)-(c[x>>2]|0);if((c[A>>2]|0)>>>0>(c[C>>2]|0)>>>0){c[B>>2]=c[A>>2];c[A>>2]=0;}if((c[z>>2]|0)>>>0>(c[C>>2]|0)>>>0){c[B>>2]=c[z>>2];c[z>>2]=0;}while(1){if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;c[D>>2]=0;c[E>>2]=0;c[F>>2]=(c[t>>2]|0)+1;C=(c[z>>2]|0)>>>0>0&1;q=Bk((c[t>>2]|0)+1|0)|0;if(!(C&(q|0)==(Bk((c[t>>2]|0)+1+(0-(c[z>>2]|0))|0)|0)|0?(c[D>>2]=(Qm((c[t>>2]|0)+1+4|0,(c[t>>2]|0)+1+4+(0-(c[z>>2]|0))|0,c[v>>2]|0)|0)+4,!(c[r>>2]|0)):0)){c[G>>2]=99999999;c[H>>2]=tc[c[y>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,G)|0;if((c[H>>2]|0)>>>0>(c[D>>2]|0)>>>0){c[D>>2]=c[H>>2];c[F>>2]=c[t>>2];c[E>>2]=c[G>>2];}if((c[D>>2]|0)>>>0<4){c[t>>2]=(c[t>>2]|0)+(((c[t>>2]|0)-(c[u>>2]|0)>>8)+1);continue;}a:do{if((c[r>>2]|0)>>>0>=1)while(1){if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;c[t>>2]=(c[t>>2]|0)+1;if(((c[E>>2]|0?(q=(c[z>>2]|0)>>>0>0&1,C=Bk(c[t>>2]|0)|0,q&(C|0)==(Bk((c[t>>2]|0)+(0-(c[z>>2]|0))|0)|0)|0):0)?(c[I>>2]=(Qm((c[t>>2]|0)+4|0,(c[t>>2]|0)+4+(0-(c[z>>2]|0))|0,c[v>>2]|0)|0)+4,c[J>>2]=(c[I>>2]|0)*3,C=(c[D>>2]|0)*3|0,c[K>>2]=C-(Mm((c[E>>2]|0)+1|0)|0)+1,(c[I>>2]|0)>>>0>=4):0)?(c[J>>2]|0)>(c[K>>2]|0):0){c[D>>2]=c[I>>2];c[E>>2]=0;c[F>>2]=c[t>>2];}c[L>>2]=99999999;c[M>>2]=tc[c[y>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,L)|0;C=c[M>>2]<<2;c[N>>2]=C-(Mm((c[L>>2]|0)+1|0)|0);C=c[D>>2]<<2;c[O>>2]=C-(Mm((c[E>>2]|0)+1|0)|0)+4;if((c[M>>2]|0)>>>0>=4?(c[N>>2]|0)>(c[O>>2]|0):0){c[D>>2]=c[M>>2];c[E>>2]=c[L>>2];c[F>>2]=c[t>>2];continue;}if((c[r>>2]|0)!=2)break a;if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;c[t>>2]=(c[t>>2]|0)+1;do{if((c[E>>2]|0?(C=(c[z>>2]|0)>>>0>0&1,q=Bk(c[t>>2]|0)|0,C&(q|0)==(Bk((c[t>>2]|0)+(0-(c[z>>2]|0))|0)|0)|0):0)?(c[P>>2]=(Qm((c[t>>2]|0)+4|0,(c[t>>2]|0)+4+(0-(c[z>>2]|0))|0,c[v>>2]|0)|0)+4,c[Q>>2]=c[P>>2]<<2,q=c[D>>2]<<2,c[R>>2]=q-(Mm((c[E>>2]|0)+1|0)|0)+1,(c[P>>2]|0)>>>0>=4):0){if((c[Q>>2]|0)<=(c[R>>2]|0))break;c[D>>2]=c[P>>2];c[E>>2]=0;c[F>>2]=c[t>>2];}}while(0);c[S>>2]=99999999;c[T>>2]=tc[c[y>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,S)|0;q=c[T>>2]<<2;c[U>>2]=q-(Mm((c[S>>2]|0)+1|0)|0);q=c[D>>2]<<2;c[V>>2]=q-(Mm((c[E>>2]|0)+1|0)|0)+7;if((c[T>>2]|0)>>>0<4)break a;if((c[U>>2]|0)<=(c[V>>2]|0))break a;c[D>>2]=c[T>>2];c[E>>2]=c[S>>2];c[F>>2]=c[t>>2];}}while(0);if(c[E>>2]|0){while(1){if(!(((c[F>>2]|0)>>>0>(c[u>>2]|0)>>>0?((c[F>>2]|0)+(0-((c[E>>2]|0)-2))|0)>>>0>(c[x>>2]|0)>>>0:0)|0))break;if((d[(c[F>>2]|0)+-1>>0]|0|0)!=(d[(c[F>>2]|0)+(0-((c[E>>2]|0)-2))+-1>>0]|0|0))break;c[F>>2]=(c[F>>2]|0)+-1;c[D>>2]=(c[D>>2]|0)+1;}c[A>>2]=c[z>>2];c[z>>2]=(c[E>>2]|0)-2;}}c[W>>2]=(c[F>>2]|0)-(c[u>>2]|0);Nm(c[k>>2]|0,c[W>>2]|0,c[u>>2]|0,c[E>>2]|0,(c[D>>2]|0)-3|0);q=(c[F>>2]|0)+(c[D>>2]|0)|0;c[t>>2]=q;c[u>>2]=q;while(1){if(!(((c[A>>2]|0)>>>0>0?(c[t>>2]|0)>>>0<=(c[w>>2]|0)>>>0:0)|0))break;q=Bk(c[t>>2]|0)|0;if((q|0)!=(Bk((c[t>>2]|0)+(0-(c[A>>2]|0))|0)|0))break;c[D>>2]=(Qm((c[t>>2]|0)+4|0,(c[t>>2]|0)+4+(0-(c[A>>2]|0))|0,c[v>>2]|0)|0)+4;c[E>>2]=c[A>>2];c[A>>2]=c[z>>2];c[z>>2]=c[E>>2];Nm(c[k>>2]|0,0,c[u>>2]|0,0,(c[D>>2]|0)-3|0);c[t>>2]=(c[t>>2]|0)+(c[D>>2]|0);c[u>>2]=c[t>>2];}}c[c[m>>2]>>2]=c[z>>2]|0?c[z>>2]|0:c[B>>2]|0;c[(c[m>>2]|0)+4>>2]=c[A>>2]|0?c[A>>2]|0:c[B>>2]|0;l=i;return(c[v>>2]|0)-(c[u>>2]|0)|0;}function am(a,b,e,f,g,h){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0;i=l;l=l+192|0;j=i+176|0;k=i+172|0;m=i+168|0;n=i+164|0;o=i+160|0;p=i+156|0;q=i+152|0;r=i+148|0;s=i+144|0;t=i+140|0;u=i+136|0;v=i+132|0;w=i+128|0;x=i+124|0;y=i+120|0;z=i+116|0;A=i+112|0;B=i+108|0;C=i+104|0;D=i+100|0;E=i+96|0;F=i+92|0;G=i+88|0;H=i+84|0;I=i+80|0;J=i+76|0;K=i+72|0;L=i+68|0;M=i+64|0;N=i+60|0;O=i+56|0;P=i+52|0;Q=i+48|0;R=i+44|0;S=i+40|0;T=i+36|0;U=i+32|0;V=i+28|0;W=i+24|0;X=i+20|0;Y=i+16|0;Z=i+12|0;_=i+8|0;$=i+4|0;aa=i;c[X>>2]=a;c[Y>>2]=b;c[Z>>2]=e;c[_>>2]=f;c[$>>2]=g;c[aa>>2]=h;h=c[Y>>2]|0;Y=c[Z>>2]|0;Z=c[_>>2]|0;_=c[$>>2]|0;$=c[aa>>2]|0;c[j>>2]=c[X>>2];c[k>>2]=h;c[m>>2]=Y;c[n>>2]=Z;c[o>>2]=_;c[p>>2]=$;c[q>>2]=1;c[r>>2]=2;c[s>>2]=c[o>>2];c[t>>2]=c[s>>2];c[u>>2]=c[s>>2];c[v>>2]=(c[s>>2]|0)+(c[p>>2]|0);c[w>>2]=(c[v>>2]|0)+-8;c[x>>2]=(c[(c[j>>2]|0)+4>>2]|0)+(c[(c[j>>2]|0)+12>>2]|0);c[y>>2]=c[q>>2]|0?5:4;c[z>>2]=c[c[m>>2]>>2];c[A>>2]=c[(c[m>>2]|0)+4>>2];c[B>>2]=0;c[t>>2]=(c[t>>2]|0)+((c[t>>2]|0)==(c[x>>2]|0)&1);c[(c[j>>2]|0)+28>>2]=c[(c[j>>2]|0)+24>>2];c[C>>2]=(c[t>>2]|0)-(c[x>>2]|0);if((c[A>>2]|0)>>>0>(c[C>>2]|0)>>>0){c[B>>2]=c[A>>2];c[A>>2]=0;}if((c[z>>2]|0)>>>0>(c[C>>2]|0)>>>0){c[B>>2]=c[z>>2];c[z>>2]=0;}while(1){if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;c[D>>2]=0;c[E>>2]=0;c[F>>2]=(c[t>>2]|0)+1;C=(c[z>>2]|0)>>>0>0&1;q=Bk((c[t>>2]|0)+1|0)|0;if(!(C&(q|0)==(Bk((c[t>>2]|0)+1+(0-(c[z>>2]|0))|0)|0)|0?(c[D>>2]=(Qm((c[t>>2]|0)+1+4|0,(c[t>>2]|0)+1+4+(0-(c[z>>2]|0))|0,c[v>>2]|0)|0)+4,!(c[r>>2]|0)):0)){c[G>>2]=99999999;c[H>>2]=tc[c[y>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,G)|0;if((c[H>>2]|0)>>>0>(c[D>>2]|0)>>>0){c[D>>2]=c[H>>2];c[F>>2]=c[t>>2];c[E>>2]=c[G>>2];}if((c[D>>2]|0)>>>0<4){c[t>>2]=(c[t>>2]|0)+(((c[t>>2]|0)-(c[u>>2]|0)>>8)+1);continue;}a:do{if((c[r>>2]|0)>>>0>=1)while(1){if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;c[t>>2]=(c[t>>2]|0)+1;if(((c[E>>2]|0?(q=(c[z>>2]|0)>>>0>0&1,C=Bk(c[t>>2]|0)|0,q&(C|0)==(Bk((c[t>>2]|0)+(0-(c[z>>2]|0))|0)|0)|0):0)?(c[I>>2]=(Qm((c[t>>2]|0)+4|0,(c[t>>2]|0)+4+(0-(c[z>>2]|0))|0,c[v>>2]|0)|0)+4,c[J>>2]=(c[I>>2]|0)*3,C=(c[D>>2]|0)*3|0,c[K>>2]=C-(Mm((c[E>>2]|0)+1|0)|0)+1,(c[I>>2]|0)>>>0>=4):0)?(c[J>>2]|0)>(c[K>>2]|0):0){c[D>>2]=c[I>>2];c[E>>2]=0;c[F>>2]=c[t>>2];}c[L>>2]=99999999;c[M>>2]=tc[c[y>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,L)|0;C=c[M>>2]<<2;c[N>>2]=C-(Mm((c[L>>2]|0)+1|0)|0);C=c[D>>2]<<2;c[O>>2]=C-(Mm((c[E>>2]|0)+1|0)|0)+4;if((c[M>>2]|0)>>>0>=4?(c[N>>2]|0)>(c[O>>2]|0):0){c[D>>2]=c[M>>2];c[E>>2]=c[L>>2];c[F>>2]=c[t>>2];continue;}if((c[r>>2]|0)!=2)break a;if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;c[t>>2]=(c[t>>2]|0)+1;do{if((c[E>>2]|0?(C=(c[z>>2]|0)>>>0>0&1,q=Bk(c[t>>2]|0)|0,C&(q|0)==(Bk((c[t>>2]|0)+(0-(c[z>>2]|0))|0)|0)|0):0)?(c[P>>2]=(Qm((c[t>>2]|0)+4|0,(c[t>>2]|0)+4+(0-(c[z>>2]|0))|0,c[v>>2]|0)|0)+4,c[Q>>2]=c[P>>2]<<2,q=c[D>>2]<<2,c[R>>2]=q-(Mm((c[E>>2]|0)+1|0)|0)+1,(c[P>>2]|0)>>>0>=4):0){if((c[Q>>2]|0)<=(c[R>>2]|0))break;c[D>>2]=c[P>>2];c[E>>2]=0;c[F>>2]=c[t>>2];}}while(0);c[S>>2]=99999999;c[T>>2]=tc[c[y>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,S)|0;q=c[T>>2]<<2;c[U>>2]=q-(Mm((c[S>>2]|0)+1|0)|0);q=c[D>>2]<<2;c[V>>2]=q-(Mm((c[E>>2]|0)+1|0)|0)+7;if((c[T>>2]|0)>>>0<4)break a;if((c[U>>2]|0)<=(c[V>>2]|0))break a;c[D>>2]=c[T>>2];c[E>>2]=c[S>>2];c[F>>2]=c[t>>2];}}while(0);if(c[E>>2]|0){while(1){if(!(((c[F>>2]|0)>>>0>(c[u>>2]|0)>>>0?((c[F>>2]|0)+(0-((c[E>>2]|0)-2))|0)>>>0>(c[x>>2]|0)>>>0:0)|0))break;if((d[(c[F>>2]|0)+-1>>0]|0|0)!=(d[(c[F>>2]|0)+(0-((c[E>>2]|0)-2))+-1>>0]|0|0))break;c[F>>2]=(c[F>>2]|0)+-1;c[D>>2]=(c[D>>2]|0)+1;}c[A>>2]=c[z>>2];c[z>>2]=(c[E>>2]|0)-2;}}c[W>>2]=(c[F>>2]|0)-(c[u>>2]|0);Nm(c[k>>2]|0,c[W>>2]|0,c[u>>2]|0,c[E>>2]|0,(c[D>>2]|0)-3|0);q=(c[F>>2]|0)+(c[D>>2]|0)|0;c[t>>2]=q;c[u>>2]=q;while(1){if(!(((c[A>>2]|0)>>>0>0?(c[t>>2]|0)>>>0<=(c[w>>2]|0)>>>0:0)|0))break;q=Bk(c[t>>2]|0)|0;if((q|0)!=(Bk((c[t>>2]|0)+(0-(c[A>>2]|0))|0)|0))break;c[D>>2]=(Qm((c[t>>2]|0)+4|0,(c[t>>2]|0)+4+(0-(c[A>>2]|0))|0,c[v>>2]|0)|0)+4;c[E>>2]=c[A>>2];c[A>>2]=c[z>>2];c[z>>2]=c[E>>2];Nm(c[k>>2]|0,0,c[u>>2]|0,0,(c[D>>2]|0)-3|0);c[t>>2]=(c[t>>2]|0)+(c[D>>2]|0);c[u>>2]=c[t>>2];}}c[c[m>>2]>>2]=c[z>>2]|0?c[z>>2]|0:c[B>>2]|0;c[(c[m>>2]|0)+4>>2]=c[A>>2]|0?c[A>>2]|0:c[B>>2]|0;l=i;return(c[v>>2]|0)-(c[u>>2]|0)|0;}function bm(a,b,e,f,g,h){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,yc=0,zc=0,Ac=0,Bc=0,Cc=0,Dc=0,Ec=0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0,Kc=0,Lc=0,Mc=0,Nc=0,Oc=0,Pc=0,Qc=0,Rc=0,Sc=0,Tc=0,Uc=0,Vc=0,Wc=0,Xc=0,Yc=0,Zc=0,_c=0,$c=0,ad=0,bd=0,cd=0,dd=0,ed=0,fd=0,gd=0,hd=0,id=0,jd=0,kd=0,ld=0,md=0,nd=0,od=0,pd=0,qd=0,rd=0,sd=0,td=0,ud=0,vd=0,wd=0,xd=0,yd=0,zd=0,Ad=0,Bd=0,Cd=0,Dd=0,Ed=0,Fd=0,Gd=0,Hd=0,Id=0,Jd=0,Kd=0,Ld=0,Md=0,Nd=0,Od=0,Pd=0,Qd=0,Rd=0,Sd=0,Td=0,Ud=0,Vd=0,Wd=0,Xd=0,Yd=0,Zd=0,_d=0,$d=0,ae=0,be=0,ce=0,de=0,ee=0,fe=0,ge=0,he=0,ie=0,je=0,ke=0,le=0,me=0,ne=0,oe=0,pe=0,qe=0,re=0,se=0,te=0,ue=0,ve=0,we=0,xe=0,ye=0,ze=0,Ae=0,Be=0,Ce=0,De=0,Ee=0,Fe=0,Ge=0,He=0,Ie=0,Je=0,Ke=0,Le=0,Me=0,Ne=0,Oe=0,Pe=0,Qe=0,Re=0,Se=0,Te=0,Ue=0,Ve=0,We=0,Xe=0,Ye=0,Ze=0,_e=0,$e=0,af=0,bf=0,cf=0,df=0,ef=0,ff=0,gf=0,hf=0,jf=0,kf=0,lf=0,mf=0,nf=0,of=0,pf=0,qf=0,rf=0,sf=0,tf=0,uf=0,vf=0,wf=0,xf=0,yf=0,zf=0,Af=0,Bf=0,Cf=0,Df=0,Ef=0,Ff=0,Gf=0,Hf=0,If=0,Jf=0,Kf=0,Lf=0,Mf=0,Nf=0,Of=0,Pf=0,Qf=0,Rf=0,Sf=0,Tf=0,Uf=0,Vf=0,Wf=0,Xf=0,Yf=0,Zf=0,_f=0,$f=0,ag=0,bg=0,cg=0,dg=0,eg=0,fg=0,gg=0,hg=0,ig=0,jg=0,kg=0,lg=0,mg=0,ng=0,og=0,pg=0,qg=0,rg=0,sg=0,tg=0,ug=0,vg=0,wg=0,xg=0,yg=0,zg=0,Ag=0,Bg=0,Cg=0,Dg=0,Eg=0,Fg=0,Gg=0,Hg=0,Ig=0,Jg=0,Kg=0,Lg=0,Mg=0,Ng=0,Og=0,Pg=0,Qg=0,Rg=0,Sg=0,Tg=0,Ug=0,Vg=0,Wg=0,Xg=0,Yg=0,Zg=0,_g=0,$g=0,ah=0,bh=0,ch=0,dh=0,eh=0,fh=0,gh=0,hh=0,ih=0,jh=0,kh=0,lh=0,mh=0,nh=0,oh=0,ph=0,qh=0,rh=0,sh=0,th=0,uh=0,vh=0,wh=0,xh=0,yh=0,zh=0,Ah=0,Bh=0,Ch=0,Dh=0,Eh=0,Fh=0,Gh=0,Hh=0,Ih=0,Jh=0,Kh=0,Lh=0,Mh=0,Nh=0,Oh=0,Ph=0,Qh=0,Rh=0,Sh=0,Th=0,Uh=0,Vh=0,Wh=0,Xh=0,Yh=0,Zh=0,_h=0,$h=0,ai=0,bi=0,ci=0,di=0,ei=0,fi=0,gi=0,hi=0,ii=0,ji=0,ki=0,li=0,mi=0,ni=0,oi=0,pi=0,qi=0,ri=0,si=0,ti=0,ui=0,vi=0,wi=0,xi=0,yi=0,zi=0,Ai=0,Bi=0,Ci=0,Di=0,Ei=0,Fi=0,Gi=0,Hi=0,Ii=0,Ji=0,Ki=0,Li=0,Mi=0,Ni=0,Oi=0,Pi=0,Qi=0,Ri=0,Si=0,Ti=0,Ui=0,Vi=0,Wi=0,Xi=0,Yi=0,Zi=0,_i=0,$i=0,aj=0,bj=0,cj=0,dj=0,ej=0,fj=0,gj=0,hj=0,ij=0,jj=0,kj=0,lj=0,mj=0,nj=0,oj=0,pj=0,qj=0,rj=0,sj=0,tj=0,uj=0,vj=0,wj=0,xj=0,yj=0,zj=0,Aj=0,Bj=0,Cj=0,Dj=0,Ej=0;i=l;l=l+2144|0;j=i+2136|0;k=i+2132|0;m=i+2128|0;n=i+2124|0;o=i+2120|0;p=i+2116|0;q=i+2112|0;r=i+2108|0;s=i+2104|0;t=i+2100|0;u=i+2096|0;v=i+2092|0;w=i+2088|0;x=i+2084|0;y=i+2080|0;z=i+2076|0;A=i+2072|0;B=i+2068|0;C=i+2064|0;D=i+2060|0;E=i+2056|0;F=i+2052|0;G=i+2048|0;H=i+2044|0;I=i+2040|0;J=i+2036|0;K=i+2032|0;L=i+2028|0;M=i+2024|0;N=i+2020|0;O=i+2016|0;P=i+2012|0;Q=i+2008|0;R=i+2004|0;S=i+2e3|0;T=i+1996|0;U=i+1992|0;V=i+1988|0;W=i+1984|0;X=i+1980|0;Y=i+1976|0;Z=i+1972|0;_=i+1968|0;$=i+1964|0;aa=i+1960|0;ba=i+1956|0;ca=i+1952|0;da=i+1948|0;ea=i+1944|0;fa=i+1940|0;ga=i+1936|0;ha=i+1932|0;ia=i+1928|0;ja=i+1924|0;ka=i+1920|0;la=i+1916|0;ma=i+1912|0;na=i+1908|0;oa=i+1904|0;pa=i+1900|0;qa=i+1896|0;ra=i+1892|0;sa=i+1888|0;ta=i+1884|0;ua=i+1880|0;va=i+1876|0;wa=i+1872|0;xa=i+1868|0;ya=i+1864|0;za=i+1860|0;Aa=i+1856|0;Ba=i+1852|0;Ca=i+1848|0;Da=i+1844|0;Ea=i+1840|0;Fa=i+1836|0;Ga=i+1832|0;Ha=i+1828|0;Ia=i+1824|0;Ja=i+1820|0;Ka=i+1816|0;La=i+1812|0;Ma=i+1808|0;Na=i+1804|0;Oa=i+1800|0;Pa=i+1796|0;Qa=i+1792|0;Ra=i+1788|0;Sa=i+1784|0;Ta=i+1780|0;Ua=i+1776|0;Va=i+1772|0;Wa=i+1768|0;Xa=i+1764|0;Ya=i+1760|0;Za=i+1756|0;_a=i+1752|0;$a=i+1748|0;ab=i+1744|0;bb=i+1740|0;cb=i+1736|0;db=i+1732|0;eb=i+1728|0;fb=i+1724|0;gb=i+1720|0;hb=i+1716|0;ib=i+1712|0;jb=i+1708|0;kb=i+1704|0;lb=i+1700|0;mb=i+1696|0;nb=i+1692|0;ob=i+1688|0;pb=i+1684|0;qb=i+1680|0;rb=i+1676|0;sb=i+1672|0;tb=i+1668|0;ub=i+1664|0;vb=i+1660|0;wb=i+1656|0;xb=i+1652|0;yb=i+1648|0;zb=i+1644|0;Ab=i+1640|0;Bb=i+1636|0;Cb=i+1632|0;Db=i+1628|0;Eb=i+1624|0;Fb=i+1620|0;Gb=i+1616|0;Hb=i+1612|0;Ib=i+1608|0;Jb=i+1604|0;Kb=i+1600|0;Lb=i+1596|0;Mb=i+1592|0;Nb=i+1588|0;Ob=i+1584|0;Pb=i+1580|0;Qb=i+1576|0;Rb=i+1572|0;Sb=i+1568|0;Tb=i+1564|0;Ub=i+1560|0;Vb=i+1556|0;Wb=i+1552|0;Xb=i+1548|0;Yb=i+1544|0;Zb=i+1540|0;_b=i+1536|0;$b=i+1532|0;ac=i+1528|0;bc=i+1524|0;cc=i+1520|0;dc=i+1516|0;ec=i+1512|0;fc=i+1508|0;gc=i+1504|0;hc=i+1500|0;ic=i+1496|0;jc=i+1492|0;kc=i+1488|0;lc=i+1484|0;mc=i+1480|0;nc=i+1476|0;oc=i+1472|0;pc=i+1468|0;qc=i+1464|0;rc=i+1460|0;sc=i+1456|0;tc=i+1452|0;uc=i+1448|0;vc=i+1444|0;wc=i+1440|0;xc=i+1436|0;yc=i+1432|0;zc=i+1428|0;Ac=i+1424|0;Bc=i+1420|0;Cc=i+1416|0;Dc=i+1412|0;Ec=i+1408|0;Fc=i+1404|0;Gc=i+1400|0;Hc=i+1396|0;Ic=i+1392|0;Jc=i+1388|0;Kc=i+1384|0;Lc=i+1380|0;Mc=i+1376|0;Nc=i+1372|0;Oc=i+1368|0;Pc=i+1364|0;Qc=i+1360|0;Rc=i+1356|0;Sc=i+1352|0;Tc=i+1348|0;Uc=i+1344|0;Vc=i+1340|0;Wc=i+1336|0;Xc=i+1332|0;Yc=i+1328|0;Zc=i+1324|0;_c=i+1320|0;$c=i+1316|0;ad=i+1312|0;bd=i+1308|0;cd=i+1304|0;dd=i+1300|0;ed=i+1296|0;fd=i+1292|0;gd=i+1288|0;hd=i+1284|0;id=i+1280|0;jd=i+1276|0;kd=i+1272|0;ld=i+1268|0;md=i+1264|0;nd=i+1260|0;od=i+1256|0;pd=i+1252|0;qd=i+1248|0;rd=i+1244|0;sd=i+1240|0;td=i+1236|0;ud=i+1232|0;vd=i+1228|0;wd=i+1224|0;xd=i+1220|0;yd=i+1216|0;zd=i+1212|0;Ad=i+1208|0;Bd=i+1204|0;Cd=i+1200|0;Dd=i+1196|0;Ed=i+1192|0;Fd=i+1188|0;Gd=i+1184|0;Hd=i+1180|0;Id=i+1176|0;Jd=i+1172|0;Kd=i+1168|0;Ld=i+1164|0;Md=i+1160|0;Nd=i+1156|0;Od=i+1152|0;Pd=i+1148|0;Qd=i+1144|0;Rd=i+1140|0;Sd=i+1136|0;Td=i+1132|0;Ud=i+1128|0;Vd=i+1124|0;Wd=i+1120|0;Xd=i+1116|0;Yd=i+1112|0;Zd=i+1108|0;_d=i+1104|0;$d=i+1100|0;ae=i+1096|0;be=i+1092|0;ce=i+1088|0;de=i+1084|0;ee=i+1080|0;fe=i+1076|0;ge=i+1072|0;he=i+1068|0;ie=i+1064|0;je=i+1060|0;ke=i+1056|0;le=i+1052|0;me=i+1048|0;ne=i+1044|0;oe=i+1040|0;pe=i+1036|0;qe=i+1032|0;re=i+1028|0;se=i+1024|0;te=i+1020|0;ue=i+1016|0;ve=i+1012|0;we=i+1008|0;xe=i+1004|0;ye=i+1e3|0;ze=i+996|0;Ae=i+992|0;Be=i+988|0;Ce=i+984|0;De=i+980|0;Ee=i+976|0;Fe=i+972|0;Ge=i+968|0;He=i+964|0;Ie=i+960|0;Je=i+956|0;Ke=i+952|0;Le=i+948|0;Me=i+944|0;Ne=i+940|0;Oe=i+936|0;Pe=i+932|0;Qe=i+928|0;Re=i+924|0;Se=i+920|0;Te=i+916|0;Ue=i+912|0;Ve=i+908|0;We=i+904|0;Xe=i+900|0;Ye=i+896|0;Ze=i+892|0;_e=i+888|0;$e=i+884|0;af=i+880|0;bf=i+876|0;cf=i+872|0;df=i+868|0;ef=i+864|0;ff=i+860|0;gf=i+856|0;hf=i+852|0;jf=i+848|0;kf=i+844|0;lf=i+840|0;mf=i+836|0;nf=i+832|0;of=i+828|0;pf=i+824|0;qf=i+820|0;rf=i+816|0;sf=i+812|0;tf=i+808|0;uf=i+804|0;vf=i+800|0;wf=i+796|0;xf=i+792|0;yf=i+788|0;zf=i+784|0;Af=i+780|0;Bf=i+776|0;Cf=i+772|0;Df=i+768|0;Ef=i+764|0;Ff=i+760|0;Gf=i+756|0;Hf=i+752|0;If=i+748|0;Jf=i+744|0;Kf=i+740|0;Lf=i+736|0;Mf=i+732|0;Nf=i+728|0;Of=i+724|0;Pf=i+720|0;Qf=i+716|0;Rf=i+712|0;Sf=i+708|0;Tf=i+704|0;Uf=i+700|0;Vf=i+696|0;Wf=i+692|0;Xf=i+688|0;Yf=i+684|0;Zf=i+680|0;_f=i+676|0;$f=i+672|0;ag=i+668|0;bg=i+664|0;cg=i+660|0;dg=i+656|0;eg=i+652|0;fg=i+648|0;gg=i+644|0;hg=i+640|0;ig=i+636|0;jg=i+632|0;kg=i+628|0;lg=i+624|0;mg=i+620|0;ng=i+616|0;og=i+612|0;pg=i+608|0;qg=i+604|0;rg=i+600|0;sg=i+596|0;tg=i+592|0;ug=i+588|0;vg=i+584|0;wg=i+580|0;xg=i+576|0;yg=i+572|0;zg=i+568|0;Ag=i+564|0;Bg=i+560|0;Cg=i+556|0;Dg=i+552|0;Eg=i+548|0;Fg=i+544|0;Gg=i+540|0;Hg=i+536|0;Ig=i+532|0;Jg=i+528|0;Kg=i+524|0;Lg=i+520|0;Mg=i+516|0;Ng=i+512|0;Og=i+508|0;Pg=i+504|0;Qg=i+500|0;Rg=i+496|0;Sg=i+492|0;Tg=i+488|0;Ug=i+484|0;Vg=i+480|0;Wg=i+476|0;Xg=i+472|0;Yg=i+468|0;Zg=i+464|0;_g=i+460|0;$g=i+456|0;ah=i+452|0;bh=i+448|0;ch=i+444|0;dh=i+440|0;eh=i+436|0;fh=i+432|0;gh=i+428|0;hh=i+424|0;ih=i+420|0;jh=i+416|0;kh=i+412|0;lh=i+408|0;mh=i+404|0;nh=i+400|0;oh=i+396|0;ph=i+392|0;qh=i+388|0;rh=i+384|0;sh=i+380|0;th=i+376|0;uh=i+372|0;vh=i+368|0;wh=i+364|0;xh=i+360|0;yh=i+356|0;zh=i+352|0;Ah=i+348|0;Bh=i+344|0;Ch=i+340|0;Dh=i+336|0;Eh=i+332|0;Fh=i+328|0;Gh=i+324|0;Hh=i+320|0;Ih=i+316|0;Jh=i+312|0;Kh=i+308|0;Lh=i+304|0;Mh=i+300|0;Nh=i+296|0;Oh=i+292|0;Ph=i+288|0;Qh=i+284|0;Rh=i+280|0;Sh=i+276|0;Th=i+272|0;Uh=i+268|0;Vh=i+264|0;Wh=i+260|0;Xh=i+256|0;Yh=i+252|0;Zh=i+248|0;_h=i+244|0;$h=i+240|0;ai=i+236|0;bi=i+232|0;ci=i+228|0;di=i+216|0;ei=i+212|0;fi=i+208|0;gi=i+204|0;hi=i+200|0;ii=i+196|0;ji=i+192|0;ki=i+188|0;li=i+184|0;mi=i+180|0;ni=i+176|0;oi=i+172|0;pi=i+168|0;qi=i+164|0;ri=i+160|0;si=i+148|0;ti=i+144|0;ui=i+140|0;vi=i+136|0;wi=i+132|0;xi=i+128|0;yi=i+124|0;zi=i+120|0;Ai=i+116|0;Bi=i+112|0;Ci=i+108|0;Di=i+104|0;Ei=i+100|0;Fi=i+88|0;Gi=i+84|0;Hi=i+80|0;Ii=i+76|0;Ji=i+72|0;Ki=i+68|0;Li=i+64|0;Mi=i+60|0;Ni=i+56|0;Oi=i+52|0;Pi=i+48|0;Qi=i+44|0;Ri=i+40|0;Si=i+36|0;Ti=i+32|0;Ui=i+28|0;Vi=i+24|0;Wi=i+20|0;Xi=i+16|0;Yi=i+12|0;Zi=i+8|0;_i=i+4|0;$i=i;c[Wi>>2]=a;c[Xi>>2]=b;c[Yi>>2]=e;c[Zi>>2]=f;c[_i>>2]=g;c[$i>>2]=h;h=c[Xi>>2]|0;Xi=c[Yi>>2]|0;Yi=c[Zi>>2]|0;Zi=c[_i>>2]|0;_i=c[$i>>2]|0;c[Lh>>2]=c[Wi>>2];c[Mh>>2]=h;c[Nh>>2]=Xi;c[Oh>>2]=Yi;c[Ph>>2]=Zi;c[Qh>>2]=_i;c[Rh>>2]=0;c[Sh>>2]=0;c[Th>>2]=(c[Lh>>2]|0)+48;c[Uh>>2]=c[Ph>>2];c[Vh>>2]=c[Uh>>2];c[Wh>>2]=c[Uh>>2];c[Xh>>2]=(c[Uh>>2]|0)+(c[Qh>>2]|0);c[Yh>>2]=(c[Xh>>2]|0)+-8;c[Zh>>2]=c[(c[Lh>>2]|0)+4>>2];c[_h>>2]=(c[Zh>>2]|0)+(c[(c[Lh>>2]|0)+12>>2]|0);if((c[(c[Oh>>2]|0)+20>>2]|0)>>>0<4095)aj=c[(c[Oh>>2]|0)+20>>2]|0;else aj=4095;c[$h>>2]=aj;c[ai>>2]=(c[(c[Oh>>2]|0)+16>>2]|0)==3?3:4;c[bi>>2]=c[(c[Th>>2]|0)+20>>2];c[ci>>2]=c[(c[Th>>2]|0)+16>>2];c[(c[Lh>>2]|0)+28>>2]=c[(c[Lh>>2]|0)+24>>2];lm(c[Th>>2]|0,c[Ph>>2]|0,c[Qh>>2]|0);c[Vh>>2]=(c[Vh>>2]|0)+((c[Vh>>2]|0)==(c[_h>>2]|0)&1);c[di>>2]=0;c[di+4>>2]=0;c[di+8>>2]=0;while(1){if((c[Vh>>2]|0)>>>0>=(c[Yh>>2]|0)>>>0)break;c[fi>>2]=0;c[ii>>2]=(c[Vh>>2]|0)-(c[Wh>>2]|0);c[ji>>2]=((c[ii>>2]|0)!=0^1)&1;_h=c[Oh>>2]|0;Qh=c[Vh>>2]|0;Ph=c[Xh>>2]|0;aj=c[Sh>>2]|0;Zh=c[Nh>>2]|0;Uh=c[ji>>2]|0;_i=c[ci>>2]|0;Zi=c[ai>>2]|0;c[Bh>>2]=c[Lh>>2];c[Ch>>2]=_h;c[Dh>>2]=Qh;c[Eh>>2]=Ph;c[Fh>>2]=aj;c[Gh>>2]=Zh;c[Hh>>2]=Uh;c[Ih>>2]=_i;c[Jh>>2]=Zi;c[Kh>>2]=c[(c[Ch>>2]|0)+16>>2];a:do{if((c[Dh>>2]|0)>>>0<((c[(c[Bh>>2]|0)+4>>2]|0)+(c[(c[Bh>>2]|0)+24>>2]|0)|0)>>>0)c[Ah>>2]=0;else{Zi=c[Ch>>2]|0;_i=c[Dh>>2]|0;Uh=c[Eh>>2]|0;Zh=c[Kh>>2]|0;aj=c[Fh>>2]|0;c[rh>>2]=c[Bh>>2];c[sh>>2]=Zi;c[th>>2]=_i;c[uh>>2]=Uh;c[vh>>2]=Zh;c[wh>>2]=aj;c[xh>>2]=c[(c[rh>>2]|0)+4>>2];c[yh>>2]=(c[th>>2]|0)-(c[xh>>2]|0);c[zh>>2]=c[(c[rh>>2]|0)+24>>2];while(1){if((c[zh>>2]|0)>>>0>=(c[yh>>2]|0)>>>0)break;aj=Rj(c[rh>>2]|0,c[sh>>2]|0,(c[xh>>2]|0)+(c[zh>>2]|0)|0,c[uh>>2]|0,c[vh>>2]|0,c[wh>>2]|0)|0;c[zh>>2]=(c[zh>>2]|0)+aj;}c[(c[rh>>2]|0)+24>>2]=c[yh>>2];switch(c[Kh>>2]|0){case 3:{aj=c[Ch>>2]|0;Zh=c[Dh>>2]|0;Uh=c[Eh>>2]|0;_i=c[Fh>>2]|0;Zi=c[Gh>>2]|0;Ph=c[Hh>>2]|0;Qh=c[Ih>>2]|0;_h=c[Jh>>2]|0;c[wg>>2]=c[Bh>>2];c[xg>>2]=aj;c[yg>>2]=Zh;c[zg>>2]=Uh;c[Ag>>2]=_i;c[Bg>>2]=Zi;c[Cg>>2]=Ph;c[Dg>>2]=Qh;c[Eg>>2]=_h;c[Fg>>2]=3;if((c[(c[xg>>2]|0)+20>>2]|0)>>>0<4095)bj=c[(c[xg>>2]|0)+20>>2]|0;else bj=4095;c[Gg>>2]=bj;c[Hg>>2]=c[(c[wg>>2]|0)+4>>2];c[Ig>>2]=(c[yg>>2]|0)-(c[Hg>>2]|0);c[Jg>>2]=c[(c[xg>>2]|0)+8>>2];c[Kg>>2]=(c[Fg>>2]|0)==3?3:4;c[Lg>>2]=c[(c[wg>>2]|0)+36>>2];c[Mg>>2]=Sj(c[yg>>2]|0,c[Jg>>2]|0,c[Fg>>2]|0)|0;c[Ng>>2]=c[(c[Lg>>2]|0)+(c[Mg>>2]<<2)>>2];c[Og>>2]=c[(c[wg>>2]|0)+44>>2];c[Pg>>2]=(c[(c[xg>>2]|0)+4>>2]|0)-1;c[Qg>>2]=(1<<c[Pg>>2])-1;c[Rg>>2]=0;c[Sg>>2]=0;c[Tg>>2]=c[(c[wg>>2]|0)+8>>2];c[Ug>>2]=c[(c[wg>>2]|0)+12>>2];c[Vg>>2]=(c[Tg>>2]|0)+(c[Ug>>2]|0);c[Wg>>2]=(c[Hg>>2]|0)+(c[Ug>>2]|0);if((c[Qg>>2]|0)>>>0>=(c[Ig>>2]|0)>>>0)cj=0;else cj=(c[Ig>>2]|0)-(c[Qg>>2]|0)|0;c[Xg>>2]=cj;c[Yg>>2]=c[(c[wg>>2]|0)+16>>2];c[Zg>>2]=(c[Og>>2]|0)+((c[Ig>>2]&c[Qg>>2])<<1<<2);c[_g>>2]=(c[Og>>2]|0)+((c[Ig>>2]&c[Qg>>2])<<1<<2)+4;c[$g>>2]=(c[Ig>>2]|0)+8+1;c[bh>>2]=0;c[ch>>2]=1<<c[(c[xg>>2]|0)+12>>2];c[dh>>2]=(c[Eg>>2]|0)-1;c[eh>>2]=3+(c[Cg>>2]|0);c[fh>>2]=c[Cg>>2];while(1){if((c[fh>>2]|0)>>>0>=(c[eh>>2]|0)>>>0){dj=31;break;}_h=c[Bg>>2]|0;if((c[fh>>2]|0)==3)ej=(c[_h>>2]|0)-1|0;else ej=c[_h+(c[fh>>2]<<2)>>2]|0;c[gh>>2]=ej;c[hh>>2]=(c[Ig>>2]|0)-(c[gh>>2]|0);c[ih>>2]=0;if(((c[gh>>2]|0)-1|0)>>>0<((c[Ig>>2]|0)-(c[Ug>>2]|0)|0)>>>0){_h=mm(c[yg>>2]|0,c[Kg>>2]|0)|0;if((_h|0)==(mm((c[yg>>2]|0)+(0-(c[gh>>2]|0))|0,c[Kg>>2]|0)|0)){_h=Tj((c[yg>>2]|0)+(c[Kg>>2]|0)|0,(c[yg>>2]|0)+(c[Kg>>2]|0)+(0-(c[gh>>2]|0))|0,c[zg>>2]|0)|0;c[ih>>2]=_h+(c[Kg>>2]|0);}}else{c[jh>>2]=(c[Tg>>2]|0)+(c[hh>>2]|0);if((c[Ag>>2]|0?(((c[Ug>>2]|0)-1-(c[hh>>2]|0)|0)>>>0>=3?((c[gh>>2]|0)-1|0)>>>0<((c[Ig>>2]|0)-(c[Yg>>2]|0)|0)>>>0:0)|0:0)?(_h=mm(c[yg>>2]|0,c[Kg>>2]|0)|0,(_h|0)==(mm(c[jh>>2]|0,c[Kg>>2]|0)|0)):0){_h=Uj((c[yg>>2]|0)+(c[Kg>>2]|0)|0,(c[jh>>2]|0)+(c[Kg>>2]|0)|0,c[zg>>2]|0,c[Vg>>2]|0,c[Wg>>2]|0)|0;c[ih>>2]=_h+(c[Kg>>2]|0);}}if((c[ih>>2]|0)>>>0>(c[dh>>2]|0)>>>0?(c[dh>>2]=c[ih>>2],c[(c[Dg>>2]|0)+(c[bh>>2]<<3)>>2]=(c[fh>>2]|0)-(c[Cg>>2]|0),c[(c[Dg>>2]|0)+(c[bh>>2]<<3)+4>>2]=c[ih>>2],c[bh>>2]=(c[bh>>2]|0)+1,((c[ih>>2]|0)>>>0>(c[Gg>>2]|0)>>>0?1:((c[yg>>2]|0)+(c[ih>>2]|0)|0)==(c[zg>>2]|0))|0):0){dj=29;break;}c[fh>>2]=(c[fh>>2]|0)+1;}do{if((dj|0)==29){dj=0;c[vg>>2]=c[bh>>2];}else if((dj|0)==31){dj=0;if(((c[Fg>>2]|0)==3?(c[dh>>2]|0)>>>0<(c[Fg>>2]|0)>>>0:0)?(c[kh>>2]=nm(c[wg>>2]|0,c[yg>>2]|0)|0,((c[kh>>2]|0)>>>0>(c[Yg>>2]|0)>>>0?((c[Ig>>2]|0)-(c[kh>>2]|0)|0)>>>0<262144:0)|0):0){if(c[Ag>>2]|0?(c[kh>>2]|0)>>>0<(c[Ug>>2]|0)>>>0:0){c[nh>>2]=(c[Tg>>2]|0)+(c[kh>>2]|0);c[lh>>2]=Uj(c[yg>>2]|0,c[nh>>2]|0,c[zg>>2]|0,c[Vg>>2]|0,c[Wg>>2]|0)|0;}else{c[mh>>2]=(c[Hg>>2]|0)+(c[kh>>2]|0);c[lh>>2]=Tj(c[yg>>2]|0,c[mh>>2]|0,c[zg>>2]|0)|0;}if((c[lh>>2]|0)>>>0>=(c[Fg>>2]|0)>>>0?(c[dh>>2]=c[lh>>2],c[c[Dg>>2]>>2]=(c[Ig>>2]|0)-(c[kh>>2]|0)+2,c[(c[Dg>>2]|0)+4>>2]=c[lh>>2],c[bh>>2]=1,((c[lh>>2]|0)>>>0>(c[Gg>>2]|0)>>>0?1:((c[yg>>2]|0)+(c[lh>>2]|0)|0)==(c[zg>>2]|0))|0):0){c[(c[wg>>2]|0)+24>>2]=(c[Ig>>2]|0)+1;c[vg>>2]=1;break;}}c[(c[Lg>>2]|0)+(c[Mg>>2]<<2)>>2]=c[Ig>>2];while(1){_h=c[ch>>2]|0;c[ch>>2]=_h+-1;if(!_h)break;if((c[Ng>>2]|0)>>>0<=(c[Yg>>2]|0)>>>0)break;c[oh>>2]=(c[Og>>2]|0)+((c[Ng>>2]&c[Qg>>2])<<1<<2);c[ph>>2]=(c[Rg>>2]|0)>>>0<(c[Sg>>2]|0)>>>0?c[Rg>>2]|0:c[Sg>>2]|0;if(c[Ag>>2]|0?((c[Ng>>2]|0)+(c[ph>>2]|0)|0)>>>0<(c[Ug>>2]|0)>>>0:0){c[qh>>2]=(c[Tg>>2]|0)+(c[Ng>>2]|0);_h=Uj((c[yg>>2]|0)+(c[ph>>2]|0)|0,(c[qh>>2]|0)+(c[ph>>2]|0)|0,c[zg>>2]|0,c[Vg>>2]|0,c[Wg>>2]|0)|0;c[ph>>2]=(c[ph>>2]|0)+_h;if(((c[Ng>>2]|0)+(c[ph>>2]|0)|0)>>>0>=(c[Ug>>2]|0)>>>0)c[qh>>2]=(c[Hg>>2]|0)+(c[Ng>>2]|0);}else{c[qh>>2]=(c[Hg>>2]|0)+(c[Ng>>2]|0);_h=Tj((c[yg>>2]|0)+(c[ph>>2]|0)|0,(c[qh>>2]|0)+(c[ph>>2]|0)|0,c[zg>>2]|0)|0;c[ph>>2]=(c[ph>>2]|0)+_h;}if((c[ph>>2]|0)>>>0>(c[dh>>2]|0)>>>0){if((c[ph>>2]|0)>>>0>((c[$g>>2]|0)-(c[Ng>>2]|0)|0)>>>0)c[$g>>2]=(c[Ng>>2]|0)+(c[ph>>2]|0);c[dh>>2]=c[ph>>2];c[(c[Dg>>2]|0)+(c[bh>>2]<<3)>>2]=(c[Ig>>2]|0)-(c[Ng>>2]|0)+2;c[(c[Dg>>2]|0)+(c[bh>>2]<<3)+4>>2]=c[ph>>2];c[bh>>2]=(c[bh>>2]|0)+1;if((c[ph>>2]|0)>>>0>4096)break;if(((c[yg>>2]|0)+(c[ph>>2]|0)|0)==(c[zg>>2]|0))break;}_h=c[Ng>>2]|0;if((d[(c[qh>>2]|0)+(c[ph>>2]|0)>>0]|0|0)<(d[(c[yg>>2]|0)+(c[ph>>2]|0)>>0]|0|0)){c[c[Zg>>2]>>2]=_h;c[Rg>>2]=c[ph>>2];if((c[Ng>>2]|0)>>>0<=(c[Xg>>2]|0)>>>0){dj=56;break;}c[Zg>>2]=(c[oh>>2]|0)+4;c[Ng>>2]=c[(c[oh>>2]|0)+4>>2];}else{c[c[_g>>2]>>2]=_h;c[Sg>>2]=c[ph>>2];if((c[Ng>>2]|0)>>>0<=(c[Xg>>2]|0)>>>0){dj=59;break;}c[_g>>2]=c[oh>>2];c[Ng>>2]=c[c[oh>>2]>>2];}}if((dj|0)==56){dj=0;c[Zg>>2]=ah;}else if((dj|0)==59){dj=0;c[_g>>2]=ah;}c[c[_g>>2]>>2]=0;c[c[Zg>>2]>>2]=0;c[(c[wg>>2]|0)+24>>2]=(c[$g>>2]|0)-8;c[vg>>2]=c[bh>>2];}}while(0);c[Ah>>2]=c[vg>>2];break a;break;}case 7:case 6:{_h=c[Ch>>2]|0;Qh=c[Dh>>2]|0;Ph=c[Eh>>2]|0;Zi=c[Fh>>2]|0;_i=c[Gh>>2]|0;Uh=c[Hh>>2]|0;Zh=c[Ih>>2]|0;aj=c[Jh>>2]|0;c[Hd>>2]=c[Bh>>2];c[Id>>2]=_h;c[Jd>>2]=Qh;c[Kd>>2]=Ph;c[Ld>>2]=Zi;c[Md>>2]=_i;c[Nd>>2]=Uh;c[Od>>2]=Zh;c[Pd>>2]=aj;c[Qd>>2]=6;if((c[(c[Id>>2]|0)+20>>2]|0)>>>0<4095)fj=c[(c[Id>>2]|0)+20>>2]|0;else fj=4095;c[Rd>>2]=fj;c[Sd>>2]=c[(c[Hd>>2]|0)+4>>2];c[Td>>2]=(c[Jd>>2]|0)-(c[Sd>>2]|0);c[Ud>>2]=c[(c[Id>>2]|0)+8>>2];c[Vd>>2]=(c[Qd>>2]|0)==3?3:4;c[Wd>>2]=c[(c[Hd>>2]|0)+36>>2];c[Xd>>2]=Sj(c[Jd>>2]|0,c[Ud>>2]|0,c[Qd>>2]|0)|0;c[Yd>>2]=c[(c[Wd>>2]|0)+(c[Xd>>2]<<2)>>2];c[Zd>>2]=c[(c[Hd>>2]|0)+44>>2];c[_d>>2]=(c[(c[Id>>2]|0)+4>>2]|0)-1;c[$d>>2]=(1<<c[_d>>2])-1;c[ae>>2]=0;c[be>>2]=0;c[ce>>2]=c[(c[Hd>>2]|0)+8>>2];c[de>>2]=c[(c[Hd>>2]|0)+12>>2];c[ee>>2]=(c[ce>>2]|0)+(c[de>>2]|0);c[fe>>2]=(c[Sd>>2]|0)+(c[de>>2]|0);if((c[$d>>2]|0)>>>0>=(c[Td>>2]|0)>>>0)gj=0;else gj=(c[Td>>2]|0)-(c[$d>>2]|0)|0;c[ge>>2]=gj;c[he>>2]=c[(c[Hd>>2]|0)+16>>2];c[ie>>2]=(c[Zd>>2]|0)+((c[Td>>2]&c[$d>>2])<<1<<2);c[je>>2]=(c[Zd>>2]|0)+((c[Td>>2]&c[$d>>2])<<1<<2)+4;c[ke>>2]=(c[Td>>2]|0)+8+1;c[me>>2]=0;c[ne>>2]=1<<c[(c[Id>>2]|0)+12>>2];c[oe>>2]=(c[Pd>>2]|0)-1;c[pe>>2]=3+(c[Nd>>2]|0);c[qe>>2]=c[Nd>>2];while(1){if((c[qe>>2]|0)>>>0>=(c[pe>>2]|0)>>>0){dj=190;break;}aj=c[Md>>2]|0;if((c[qe>>2]|0)==3)hj=(c[aj>>2]|0)-1|0;else hj=c[aj+(c[qe>>2]<<2)>>2]|0;c[re>>2]=hj;c[se>>2]=(c[Td>>2]|0)-(c[re>>2]|0);c[te>>2]=0;if(((c[re>>2]|0)-1|0)>>>0<((c[Td>>2]|0)-(c[de>>2]|0)|0)>>>0){aj=mm(c[Jd>>2]|0,c[Vd>>2]|0)|0;if((aj|0)==(mm((c[Jd>>2]|0)+(0-(c[re>>2]|0))|0,c[Vd>>2]|0)|0)){aj=Tj((c[Jd>>2]|0)+(c[Vd>>2]|0)|0,(c[Jd>>2]|0)+(c[Vd>>2]|0)+(0-(c[re>>2]|0))|0,c[Kd>>2]|0)|0;c[te>>2]=aj+(c[Vd>>2]|0);}}else{c[ue>>2]=(c[ce>>2]|0)+(c[se>>2]|0);if((c[Ld>>2]|0?(((c[de>>2]|0)-1-(c[se>>2]|0)|0)>>>0>=3?((c[re>>2]|0)-1|0)>>>0<((c[Td>>2]|0)-(c[he>>2]|0)|0)>>>0:0)|0:0)?(aj=mm(c[Jd>>2]|0,c[Vd>>2]|0)|0,(aj|0)==(mm(c[ue>>2]|0,c[Vd>>2]|0)|0)):0){aj=Uj((c[Jd>>2]|0)+(c[Vd>>2]|0)|0,(c[ue>>2]|0)+(c[Vd>>2]|0)|0,c[Kd>>2]|0,c[ee>>2]|0,c[fe>>2]|0)|0;c[te>>2]=aj+(c[Vd>>2]|0);}}if((c[te>>2]|0)>>>0>(c[oe>>2]|0)>>>0?(c[oe>>2]=c[te>>2],c[(c[Od>>2]|0)+(c[me>>2]<<3)>>2]=(c[qe>>2]|0)-(c[Nd>>2]|0),c[(c[Od>>2]|0)+(c[me>>2]<<3)+4>>2]=c[te>>2],c[me>>2]=(c[me>>2]|0)+1,((c[te>>2]|0)>>>0>(c[Rd>>2]|0)>>>0?1:((c[Jd>>2]|0)+(c[te>>2]|0)|0)==(c[Kd>>2]|0))|0):0){dj=188;break;}c[qe>>2]=(c[qe>>2]|0)+1;}do{if((dj|0)==188){dj=0;c[Gd>>2]=c[me>>2];}else if((dj|0)==190){dj=0;if(((c[Qd>>2]|0)==3?(c[oe>>2]|0)>>>0<(c[Qd>>2]|0)>>>0:0)?(c[ve>>2]=nm(c[Hd>>2]|0,c[Jd>>2]|0)|0,((c[ve>>2]|0)>>>0>(c[he>>2]|0)>>>0?((c[Td>>2]|0)-(c[ve>>2]|0)|0)>>>0<262144:0)|0):0){if(c[Ld>>2]|0?(c[ve>>2]|0)>>>0<(c[de>>2]|0)>>>0:0){c[ye>>2]=(c[ce>>2]|0)+(c[ve>>2]|0);c[we>>2]=Uj(c[Jd>>2]|0,c[ye>>2]|0,c[Kd>>2]|0,c[ee>>2]|0,c[fe>>2]|0)|0;}else{c[xe>>2]=(c[Sd>>2]|0)+(c[ve>>2]|0);c[we>>2]=Tj(c[Jd>>2]|0,c[xe>>2]|0,c[Kd>>2]|0)|0;}if((c[we>>2]|0)>>>0>=(c[Qd>>2]|0)>>>0?(c[oe>>2]=c[we>>2],c[c[Od>>2]>>2]=(c[Td>>2]|0)-(c[ve>>2]|0)+2,c[(c[Od>>2]|0)+4>>2]=c[we>>2],c[me>>2]=1,((c[we>>2]|0)>>>0>(c[Rd>>2]|0)>>>0?1:((c[Jd>>2]|0)+(c[we>>2]|0)|0)==(c[Kd>>2]|0))|0):0){c[(c[Hd>>2]|0)+24>>2]=(c[Td>>2]|0)+1;c[Gd>>2]=1;break;}}c[(c[Wd>>2]|0)+(c[Xd>>2]<<2)>>2]=c[Td>>2];while(1){aj=c[ne>>2]|0;c[ne>>2]=aj+-1;if(!aj)break;if((c[Yd>>2]|0)>>>0<=(c[he>>2]|0)>>>0)break;c[ze>>2]=(c[Zd>>2]|0)+((c[Yd>>2]&c[$d>>2])<<1<<2);c[Ae>>2]=(c[ae>>2]|0)>>>0<(c[be>>2]|0)>>>0?c[ae>>2]|0:c[be>>2]|0;if(c[Ld>>2]|0?((c[Yd>>2]|0)+(c[Ae>>2]|0)|0)>>>0<(c[de>>2]|0)>>>0:0){c[Be>>2]=(c[ce>>2]|0)+(c[Yd>>2]|0);aj=Uj((c[Jd>>2]|0)+(c[Ae>>2]|0)|0,(c[Be>>2]|0)+(c[Ae>>2]|0)|0,c[Kd>>2]|0,c[ee>>2]|0,c[fe>>2]|0)|0;c[Ae>>2]=(c[Ae>>2]|0)+aj;if(((c[Yd>>2]|0)+(c[Ae>>2]|0)|0)>>>0>=(c[de>>2]|0)>>>0)c[Be>>2]=(c[Sd>>2]|0)+(c[Yd>>2]|0);}else{c[Be>>2]=(c[Sd>>2]|0)+(c[Yd>>2]|0);aj=Tj((c[Jd>>2]|0)+(c[Ae>>2]|0)|0,(c[Be>>2]|0)+(c[Ae>>2]|0)|0,c[Kd>>2]|0)|0;c[Ae>>2]=(c[Ae>>2]|0)+aj;}if((c[Ae>>2]|0)>>>0>(c[oe>>2]|0)>>>0){if((c[Ae>>2]|0)>>>0>((c[ke>>2]|0)-(c[Yd>>2]|0)|0)>>>0)c[ke>>2]=(c[Yd>>2]|0)+(c[Ae>>2]|0);c[oe>>2]=c[Ae>>2];c[(c[Od>>2]|0)+(c[me>>2]<<3)>>2]=(c[Td>>2]|0)-(c[Yd>>2]|0)+2;c[(c[Od>>2]|0)+(c[me>>2]<<3)+4>>2]=c[Ae>>2];c[me>>2]=(c[me>>2]|0)+1;if((c[Ae>>2]|0)>>>0>4096)break;if(((c[Jd>>2]|0)+(c[Ae>>2]|0)|0)==(c[Kd>>2]|0))break;}aj=c[Yd>>2]|0;if((d[(c[Be>>2]|0)+(c[Ae>>2]|0)>>0]|0|0)<(d[(c[Jd>>2]|0)+(c[Ae>>2]|0)>>0]|0|0)){c[c[ie>>2]>>2]=aj;c[ae>>2]=c[Ae>>2];if((c[Yd>>2]|0)>>>0<=(c[ge>>2]|0)>>>0){dj=215;break;}c[ie>>2]=(c[ze>>2]|0)+4;c[Yd>>2]=c[(c[ze>>2]|0)+4>>2];}else{c[c[je>>2]>>2]=aj;c[be>>2]=c[Ae>>2];if((c[Yd>>2]|0)>>>0<=(c[ge>>2]|0)>>>0){dj=218;break;}c[je>>2]=c[ze>>2];c[Yd>>2]=c[c[ze>>2]>>2];}}if((dj|0)==215){dj=0;c[ie>>2]=le;}else if((dj|0)==218){dj=0;c[je>>2]=le;}c[c[je>>2]>>2]=0;c[c[ie>>2]>>2]=0;c[(c[Hd>>2]|0)+24>>2]=(c[ke>>2]|0)-8;c[Gd>>2]=c[me>>2];}}while(0);c[Ah>>2]=c[Gd>>2];break a;break;}case 5:{aj=c[Ch>>2]|0;Zh=c[Dh>>2]|0;Uh=c[Eh>>2]|0;_i=c[Fh>>2]|0;Zi=c[Gh>>2]|0;Ph=c[Hh>>2]|0;Qh=c[Ih>>2]|0;_h=c[Jh>>2]|0;c[De>>2]=c[Bh>>2];c[Ee>>2]=aj;c[Fe>>2]=Zh;c[Ge>>2]=Uh;c[He>>2]=_i;c[Ie>>2]=Zi;c[Je>>2]=Ph;c[Ke>>2]=Qh;c[Le>>2]=_h;c[Me>>2]=5;if((c[(c[Ee>>2]|0)+20>>2]|0)>>>0<4095)ij=c[(c[Ee>>2]|0)+20>>2]|0;else ij=4095;c[Ne>>2]=ij;c[Oe>>2]=c[(c[De>>2]|0)+4>>2];c[Pe>>2]=(c[Fe>>2]|0)-(c[Oe>>2]|0);c[Qe>>2]=c[(c[Ee>>2]|0)+8>>2];c[Re>>2]=(c[Me>>2]|0)==3?3:4;c[Se>>2]=c[(c[De>>2]|0)+36>>2];c[Te>>2]=Sj(c[Fe>>2]|0,c[Qe>>2]|0,c[Me>>2]|0)|0;c[Ue>>2]=c[(c[Se>>2]|0)+(c[Te>>2]<<2)>>2];c[Ve>>2]=c[(c[De>>2]|0)+44>>2];c[We>>2]=(c[(c[Ee>>2]|0)+4>>2]|0)-1;c[Xe>>2]=(1<<c[We>>2])-1;c[Ye>>2]=0;c[Ze>>2]=0;c[_e>>2]=c[(c[De>>2]|0)+8>>2];c[$e>>2]=c[(c[De>>2]|0)+12>>2];c[af>>2]=(c[_e>>2]|0)+(c[$e>>2]|0);c[bf>>2]=(c[Oe>>2]|0)+(c[$e>>2]|0);if((c[Xe>>2]|0)>>>0>=(c[Pe>>2]|0)>>>0)jj=0;else jj=(c[Pe>>2]|0)-(c[Xe>>2]|0)|0;c[cf>>2]=jj;c[df>>2]=c[(c[De>>2]|0)+16>>2];c[ef>>2]=(c[Ve>>2]|0)+((c[Pe>>2]&c[Xe>>2])<<1<<2);c[ff>>2]=(c[Ve>>2]|0)+((c[Pe>>2]&c[Xe>>2])<<1<<2)+4;c[gf>>2]=(c[Pe>>2]|0)+8+1;c[jf>>2]=0;c[kf>>2]=1<<c[(c[Ee>>2]|0)+12>>2];c[lf>>2]=(c[Le>>2]|0)-1;c[mf>>2]=3+(c[Je>>2]|0);c[nf>>2]=c[Je>>2];while(1){if((c[nf>>2]|0)>>>0>=(c[mf>>2]|0)>>>0){dj=137;break;}_h=c[Ie>>2]|0;if((c[nf>>2]|0)==3)kj=(c[_h>>2]|0)-1|0;else kj=c[_h+(c[nf>>2]<<2)>>2]|0;c[of>>2]=kj;c[pf>>2]=(c[Pe>>2]|0)-(c[of>>2]|0);c[qf>>2]=0;if(((c[of>>2]|0)-1|0)>>>0<((c[Pe>>2]|0)-(c[$e>>2]|0)|0)>>>0){_h=mm(c[Fe>>2]|0,c[Re>>2]|0)|0;if((_h|0)==(mm((c[Fe>>2]|0)+(0-(c[of>>2]|0))|0,c[Re>>2]|0)|0)){_h=Tj((c[Fe>>2]|0)+(c[Re>>2]|0)|0,(c[Fe>>2]|0)+(c[Re>>2]|0)+(0-(c[of>>2]|0))|0,c[Ge>>2]|0)|0;c[qf>>2]=_h+(c[Re>>2]|0);}}else{c[rf>>2]=(c[_e>>2]|0)+(c[pf>>2]|0);if((c[He>>2]|0?(((c[$e>>2]|0)-1-(c[pf>>2]|0)|0)>>>0>=3?((c[of>>2]|0)-1|0)>>>0<((c[Pe>>2]|0)-(c[df>>2]|0)|0)>>>0:0)|0:0)?(_h=mm(c[Fe>>2]|0,c[Re>>2]|0)|0,(_h|0)==(mm(c[rf>>2]|0,c[Re>>2]|0)|0)):0){_h=Uj((c[Fe>>2]|0)+(c[Re>>2]|0)|0,(c[rf>>2]|0)+(c[Re>>2]|0)|0,c[Ge>>2]|0,c[af>>2]|0,c[bf>>2]|0)|0;c[qf>>2]=_h+(c[Re>>2]|0);}}if((c[qf>>2]|0)>>>0>(c[lf>>2]|0)>>>0?(c[lf>>2]=c[qf>>2],c[(c[Ke>>2]|0)+(c[jf>>2]<<3)>>2]=(c[nf>>2]|0)-(c[Je>>2]|0),c[(c[Ke>>2]|0)+(c[jf>>2]<<3)+4>>2]=c[qf>>2],c[jf>>2]=(c[jf>>2]|0)+1,((c[qf>>2]|0)>>>0>(c[Ne>>2]|0)>>>0?1:((c[Fe>>2]|0)+(c[qf>>2]|0)|0)==(c[Ge>>2]|0))|0):0){dj=135;break;}c[nf>>2]=(c[nf>>2]|0)+1;}do{if((dj|0)==135){dj=0;c[Ce>>2]=c[jf>>2];}else if((dj|0)==137){dj=0;if(((c[Me>>2]|0)==3?(c[lf>>2]|0)>>>0<(c[Me>>2]|0)>>>0:0)?(c[sf>>2]=nm(c[De>>2]|0,c[Fe>>2]|0)|0,((c[sf>>2]|0)>>>0>(c[df>>2]|0)>>>0?((c[Pe>>2]|0)-(c[sf>>2]|0)|0)>>>0<262144:0)|0):0){if(c[He>>2]|0?(c[sf>>2]|0)>>>0<(c[$e>>2]|0)>>>0:0){c[vf>>2]=(c[_e>>2]|0)+(c[sf>>2]|0);c[tf>>2]=Uj(c[Fe>>2]|0,c[vf>>2]|0,c[Ge>>2]|0,c[af>>2]|0,c[bf>>2]|0)|0;}else{c[uf>>2]=(c[Oe>>2]|0)+(c[sf>>2]|0);c[tf>>2]=Tj(c[Fe>>2]|0,c[uf>>2]|0,c[Ge>>2]|0)|0;}if((c[tf>>2]|0)>>>0>=(c[Me>>2]|0)>>>0?(c[lf>>2]=c[tf>>2],c[c[Ke>>2]>>2]=(c[Pe>>2]|0)-(c[sf>>2]|0)+2,c[(c[Ke>>2]|0)+4>>2]=c[tf>>2],c[jf>>2]=1,((c[tf>>2]|0)>>>0>(c[Ne>>2]|0)>>>0?1:((c[Fe>>2]|0)+(c[tf>>2]|0)|0)==(c[Ge>>2]|0))|0):0){c[(c[De>>2]|0)+24>>2]=(c[Pe>>2]|0)+1;c[Ce>>2]=1;break;}}c[(c[Se>>2]|0)+(c[Te>>2]<<2)>>2]=c[Pe>>2];while(1){_h=c[kf>>2]|0;c[kf>>2]=_h+-1;if(!_h)break;if((c[Ue>>2]|0)>>>0<=(c[df>>2]|0)>>>0)break;c[wf>>2]=(c[Ve>>2]|0)+((c[Ue>>2]&c[Xe>>2])<<1<<2);c[xf>>2]=(c[Ye>>2]|0)>>>0<(c[Ze>>2]|0)>>>0?c[Ye>>2]|0:c[Ze>>2]|0;if(c[He>>2]|0?((c[Ue>>2]|0)+(c[xf>>2]|0)|0)>>>0<(c[$e>>2]|0)>>>0:0){c[yf>>2]=(c[_e>>2]|0)+(c[Ue>>2]|0);_h=Uj((c[Fe>>2]|0)+(c[xf>>2]|0)|0,(c[yf>>2]|0)+(c[xf>>2]|0)|0,c[Ge>>2]|0,c[af>>2]|0,c[bf>>2]|0)|0;c[xf>>2]=(c[xf>>2]|0)+_h;if(((c[Ue>>2]|0)+(c[xf>>2]|0)|0)>>>0>=(c[$e>>2]|0)>>>0)c[yf>>2]=(c[Oe>>2]|0)+(c[Ue>>2]|0);}else{c[yf>>2]=(c[Oe>>2]|0)+(c[Ue>>2]|0);_h=Tj((c[Fe>>2]|0)+(c[xf>>2]|0)|0,(c[yf>>2]|0)+(c[xf>>2]|0)|0,c[Ge>>2]|0)|0;c[xf>>2]=(c[xf>>2]|0)+_h;}if((c[xf>>2]|0)>>>0>(c[lf>>2]|0)>>>0){if((c[xf>>2]|0)>>>0>((c[gf>>2]|0)-(c[Ue>>2]|0)|0)>>>0)c[gf>>2]=(c[Ue>>2]|0)+(c[xf>>2]|0);c[lf>>2]=c[xf>>2];c[(c[Ke>>2]|0)+(c[jf>>2]<<3)>>2]=(c[Pe>>2]|0)-(c[Ue>>2]|0)+2;c[(c[Ke>>2]|0)+(c[jf>>2]<<3)+4>>2]=c[xf>>2];c[jf>>2]=(c[jf>>2]|0)+1;if((c[xf>>2]|0)>>>0>4096)break;if(((c[Fe>>2]|0)+(c[xf>>2]|0)|0)==(c[Ge>>2]|0))break;}_h=c[Ue>>2]|0;if((d[(c[yf>>2]|0)+(c[xf>>2]|0)>>0]|0|0)<(d[(c[Fe>>2]|0)+(c[xf>>2]|0)>>0]|0|0)){c[c[ef>>2]>>2]=_h;c[Ye>>2]=c[xf>>2];if((c[Ue>>2]|0)>>>0<=(c[cf>>2]|0)>>>0){dj=162;break;}c[ef>>2]=(c[wf>>2]|0)+4;c[Ue>>2]=c[(c[wf>>2]|0)+4>>2];}else{c[c[ff>>2]>>2]=_h;c[Ze>>2]=c[xf>>2];if((c[Ue>>2]|0)>>>0<=(c[cf>>2]|0)>>>0){dj=165;break;}c[ff>>2]=c[wf>>2];c[Ue>>2]=c[c[wf>>2]>>2];}}if((dj|0)==162){dj=0;c[ef>>2]=hf;}else if((dj|0)==165){dj=0;c[ff>>2]=hf;}c[c[ff>>2]>>2]=0;c[c[ef>>2]>>2]=0;c[(c[De>>2]|0)+24>>2]=(c[gf>>2]|0)-8;c[Ce>>2]=c[jf>>2];}}while(0);c[Ah>>2]=c[Ce>>2];break a;break;}default:{_h=c[Ch>>2]|0;Qh=c[Dh>>2]|0;Ph=c[Eh>>2]|0;Zi=c[Fh>>2]|0;_i=c[Gh>>2]|0;Uh=c[Hh>>2]|0;Zh=c[Ih>>2]|0;aj=c[Jh>>2]|0;c[Af>>2]=c[Bh>>2];c[Bf>>2]=_h;c[Cf>>2]=Qh;c[Df>>2]=Ph;c[Ef>>2]=Zi;c[Ff>>2]=_i;c[Gf>>2]=Uh;c[Hf>>2]=Zh;c[If>>2]=aj;c[Jf>>2]=4;if((c[(c[Bf>>2]|0)+20>>2]|0)>>>0<4095)lj=c[(c[Bf>>2]|0)+20>>2]|0;else lj=4095;c[Kf>>2]=lj;c[Lf>>2]=c[(c[Af>>2]|0)+4>>2];c[Mf>>2]=(c[Cf>>2]|0)-(c[Lf>>2]|0);c[Nf>>2]=c[(c[Bf>>2]|0)+8>>2];c[Of>>2]=(c[Jf>>2]|0)==3?3:4;c[Pf>>2]=c[(c[Af>>2]|0)+36>>2];c[Qf>>2]=Sj(c[Cf>>2]|0,c[Nf>>2]|0,c[Jf>>2]|0)|0;c[Rf>>2]=c[(c[Pf>>2]|0)+(c[Qf>>2]<<2)>>2];c[Sf>>2]=c[(c[Af>>2]|0)+44>>2];c[Tf>>2]=(c[(c[Bf>>2]|0)+4>>2]|0)-1;c[Uf>>2]=(1<<c[Tf>>2])-1;c[Vf>>2]=0;c[Wf>>2]=0;c[Xf>>2]=c[(c[Af>>2]|0)+8>>2];c[Yf>>2]=c[(c[Af>>2]|0)+12>>2];c[Zf>>2]=(c[Xf>>2]|0)+(c[Yf>>2]|0);c[_f>>2]=(c[Lf>>2]|0)+(c[Yf>>2]|0);if((c[Uf>>2]|0)>>>0>=(c[Mf>>2]|0)>>>0)mj=0;else mj=(c[Mf>>2]|0)-(c[Uf>>2]|0)|0;c[$f>>2]=mj;c[ag>>2]=c[(c[Af>>2]|0)+16>>2];c[bg>>2]=(c[Sf>>2]|0)+((c[Mf>>2]&c[Uf>>2])<<1<<2);c[cg>>2]=(c[Sf>>2]|0)+((c[Mf>>2]&c[Uf>>2])<<1<<2)+4;c[dg>>2]=(c[Mf>>2]|0)+8+1;c[fg>>2]=0;c[gg>>2]=1<<c[(c[Bf>>2]|0)+12>>2];c[hg>>2]=(c[If>>2]|0)-1;c[ig>>2]=3+(c[Gf>>2]|0);c[jg>>2]=c[Gf>>2];while(1){if((c[jg>>2]|0)>>>0>=(c[ig>>2]|0)>>>0){dj=84;break;}aj=c[Ff>>2]|0;if((c[jg>>2]|0)==3)nj=(c[aj>>2]|0)-1|0;else nj=c[aj+(c[jg>>2]<<2)>>2]|0;c[kg>>2]=nj;c[lg>>2]=(c[Mf>>2]|0)-(c[kg>>2]|0);c[mg>>2]=0;if(((c[kg>>2]|0)-1|0)>>>0<((c[Mf>>2]|0)-(c[Yf>>2]|0)|0)>>>0){aj=mm(c[Cf>>2]|0,c[Of>>2]|0)|0;if((aj|0)==(mm((c[Cf>>2]|0)+(0-(c[kg>>2]|0))|0,c[Of>>2]|0)|0)){aj=Tj((c[Cf>>2]|0)+(c[Of>>2]|0)|0,(c[Cf>>2]|0)+(c[Of>>2]|0)+(0-(c[kg>>2]|0))|0,c[Df>>2]|0)|0;c[mg>>2]=aj+(c[Of>>2]|0);}}else{c[ng>>2]=(c[Xf>>2]|0)+(c[lg>>2]|0);if((c[Ef>>2]|0?(((c[Yf>>2]|0)-1-(c[lg>>2]|0)|0)>>>0>=3?((c[kg>>2]|0)-1|0)>>>0<((c[Mf>>2]|0)-(c[ag>>2]|0)|0)>>>0:0)|0:0)?(aj=mm(c[Cf>>2]|0,c[Of>>2]|0)|0,(aj|0)==(mm(c[ng>>2]|0,c[Of>>2]|0)|0)):0){aj=Uj((c[Cf>>2]|0)+(c[Of>>2]|0)|0,(c[ng>>2]|0)+(c[Of>>2]|0)|0,c[Df>>2]|0,c[Zf>>2]|0,c[_f>>2]|0)|0;c[mg>>2]=aj+(c[Of>>2]|0);}}if((c[mg>>2]|0)>>>0>(c[hg>>2]|0)>>>0?(c[hg>>2]=c[mg>>2],c[(c[Hf>>2]|0)+(c[fg>>2]<<3)>>2]=(c[jg>>2]|0)-(c[Gf>>2]|0),c[(c[Hf>>2]|0)+(c[fg>>2]<<3)+4>>2]=c[mg>>2],c[fg>>2]=(c[fg>>2]|0)+1,((c[mg>>2]|0)>>>0>(c[Kf>>2]|0)>>>0?1:((c[Cf>>2]|0)+(c[mg>>2]|0)|0)==(c[Df>>2]|0))|0):0){dj=82;break;}c[jg>>2]=(c[jg>>2]|0)+1;}do{if((dj|0)==82){dj=0;c[zf>>2]=c[fg>>2];}else if((dj|0)==84){dj=0;if(((c[Jf>>2]|0)==3?(c[hg>>2]|0)>>>0<(c[Jf>>2]|0)>>>0:0)?(c[og>>2]=nm(c[Af>>2]|0,c[Cf>>2]|0)|0,((c[og>>2]|0)>>>0>(c[ag>>2]|0)>>>0?((c[Mf>>2]|0)-(c[og>>2]|0)|0)>>>0<262144:0)|0):0){if(c[Ef>>2]|0?(c[og>>2]|0)>>>0<(c[Yf>>2]|0)>>>0:0){c[rg>>2]=(c[Xf>>2]|0)+(c[og>>2]|0);c[pg>>2]=Uj(c[Cf>>2]|0,c[rg>>2]|0,c[Df>>2]|0,c[Zf>>2]|0,c[_f>>2]|0)|0;}else{c[qg>>2]=(c[Lf>>2]|0)+(c[og>>2]|0);c[pg>>2]=Tj(c[Cf>>2]|0,c[qg>>2]|0,c[Df>>2]|0)|0;}if((c[pg>>2]|0)>>>0>=(c[Jf>>2]|0)>>>0?(c[hg>>2]=c[pg>>2],c[c[Hf>>2]>>2]=(c[Mf>>2]|0)-(c[og>>2]|0)+2,c[(c[Hf>>2]|0)+4>>2]=c[pg>>2],c[fg>>2]=1,((c[pg>>2]|0)>>>0>(c[Kf>>2]|0)>>>0?1:((c[Cf>>2]|0)+(c[pg>>2]|0)|0)==(c[Df>>2]|0))|0):0){c[(c[Af>>2]|0)+24>>2]=(c[Mf>>2]|0)+1;c[zf>>2]=1;break;}}c[(c[Pf>>2]|0)+(c[Qf>>2]<<2)>>2]=c[Mf>>2];while(1){aj=c[gg>>2]|0;c[gg>>2]=aj+-1;if(!aj)break;if((c[Rf>>2]|0)>>>0<=(c[ag>>2]|0)>>>0)break;c[sg>>2]=(c[Sf>>2]|0)+((c[Rf>>2]&c[Uf>>2])<<1<<2);c[tg>>2]=(c[Vf>>2]|0)>>>0<(c[Wf>>2]|0)>>>0?c[Vf>>2]|0:c[Wf>>2]|0;if(c[Ef>>2]|0?((c[Rf>>2]|0)+(c[tg>>2]|0)|0)>>>0<(c[Yf>>2]|0)>>>0:0){c[ug>>2]=(c[Xf>>2]|0)+(c[Rf>>2]|0);aj=Uj((c[Cf>>2]|0)+(c[tg>>2]|0)|0,(c[ug>>2]|0)+(c[tg>>2]|0)|0,c[Df>>2]|0,c[Zf>>2]|0,c[_f>>2]|0)|0;c[tg>>2]=(c[tg>>2]|0)+aj;if(((c[Rf>>2]|0)+(c[tg>>2]|0)|0)>>>0>=(c[Yf>>2]|0)>>>0)c[ug>>2]=(c[Lf>>2]|0)+(c[Rf>>2]|0);}else{c[ug>>2]=(c[Lf>>2]|0)+(c[Rf>>2]|0);aj=Tj((c[Cf>>2]|0)+(c[tg>>2]|0)|0,(c[ug>>2]|0)+(c[tg>>2]|0)|0,c[Df>>2]|0)|0;c[tg>>2]=(c[tg>>2]|0)+aj;}if((c[tg>>2]|0)>>>0>(c[hg>>2]|0)>>>0){if((c[tg>>2]|0)>>>0>((c[dg>>2]|0)-(c[Rf>>2]|0)|0)>>>0)c[dg>>2]=(c[Rf>>2]|0)+(c[tg>>2]|0);c[hg>>2]=c[tg>>2];c[(c[Hf>>2]|0)+(c[fg>>2]<<3)>>2]=(c[Mf>>2]|0)-(c[Rf>>2]|0)+2;c[(c[Hf>>2]|0)+(c[fg>>2]<<3)+4>>2]=c[tg>>2];c[fg>>2]=(c[fg>>2]|0)+1;if((c[tg>>2]|0)>>>0>4096)break;if(((c[Cf>>2]|0)+(c[tg>>2]|0)|0)==(c[Df>>2]|0))break;}aj=c[Rf>>2]|0;if((d[(c[ug>>2]|0)+(c[tg>>2]|0)>>0]|0|0)<(d[(c[Cf>>2]|0)+(c[tg>>2]|0)>>0]|0|0)){c[c[bg>>2]>>2]=aj;c[Vf>>2]=c[tg>>2];if((c[Rf>>2]|0)>>>0<=(c[$f>>2]|0)>>>0){dj=109;break;}c[bg>>2]=(c[sg>>2]|0)+4;c[Rf>>2]=c[(c[sg>>2]|0)+4>>2];}else{c[c[cg>>2]>>2]=aj;c[Wf>>2]=c[tg>>2];if((c[Rf>>2]|0)>>>0<=(c[$f>>2]|0)>>>0){dj=112;break;}c[cg>>2]=c[sg>>2];c[Rf>>2]=c[c[sg>>2]>>2];}}if((dj|0)==109){dj=0;c[bg>>2]=eg;}else if((dj|0)==112){dj=0;c[cg>>2]=eg;}c[c[cg>>2]>>2]=0;c[c[bg>>2]>>2]=0;c[(c[Af>>2]|0)+24>>2]=(c[dg>>2]|0)-8;c[zf>>2]=c[fg>>2];}}while(0);c[Ah>>2]=c[zf>>2];break a;}}}}while(0);c[ki>>2]=c[Ah>>2];if(!(c[ki>>2]|0)){c[Vh>>2]=(c[Vh>>2]|0)+1;continue;}c[li>>2]=0;while(1){if((c[li>>2]|0)>>>0>=3)break;c[(c[bi>>2]|0)+16+(c[li>>2]<<2)>>2]=c[(c[Nh>>2]|0)+(c[li>>2]<<2)>>2];c[li>>2]=(c[li>>2]|0)+1;}c[(c[bi>>2]|0)+8>>2]=1;c[(c[bi>>2]|0)+12>>2]=c[ii>>2];c[mi>>2]=c[(c[ci>>2]|0)+((c[ki>>2]|0)-1<<3)+4>>2];do{if((c[mi>>2]|0)>>>0<=(c[$h>>2]|0)>>>0){c[ni>>2]=om(di,c[Wh>>2]|0,c[ii>>2]|0,c[Th>>2]|0)|0;c[oi>>2]=0;while(1){if((c[oi>>2]|0)>>>0>=(c[ai>>2]|0)>>>0)break;c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+8>>2]=1;c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)>>2]=1073741824;c[oi>>2]=(c[oi>>2]|0)+1;}c[pi>>2]=0;while(1){if((c[pi>>2]|0)>>>0>=(c[ki>>2]|0)>>>0)break;c[qi>>2]=c[(c[ci>>2]|0)+(c[pi>>2]<<3)>>2];c[ri>>2]=c[(c[ci>>2]|0)+(c[pi>>2]<<3)+4>>2];pm(si,c[Nh>>2]|0,c[qi>>2]|0,c[ji>>2]|0);while(1){if((c[oi>>2]|0)>>>0>(c[ri>>2]|0)>>>0)break;aj=c[ni>>2]|0;Zh=c[oi>>2]|0;Uh=c[Th>>2]|0;_i=c[Rh>>2]|0;c[yd>>2]=c[qi>>2];c[zd>>2]=Zh;c[Ad>>2]=Uh;c[Bd>>2]=_i;c[Dd>>2]=qm((c[yd>>2]|0)+1|0)|0;c[Ed>>2]=(c[zd>>2]|0)-3;if(c[(c[Ad>>2]|0)+56>>2]|0){_i=(qm((c[Ed>>2]|0)+1|0)|0)+16|0;c[xd>>2]=_i+(c[Dd>>2]|0);}else{_i=(c[Dd>>2]|0)+(c[(c[Ad>>2]|0)+52>>2]|0)|0;c[Cd>>2]=_i-(qm((c[(c[(c[Ad>>2]|0)+12>>2]|0)+(c[Dd>>2]<<2)>>2]|0)+1|0)|0);if((c[Bd>>2]|0)<2&(c[Dd>>2]|0)>>>0>=20)c[Cd>>2]=(c[Cd>>2]|0)+((c[Dd>>2]|0)-19<<1);c[Fd>>2]=rm(c[Ed>>2]|0)|0;_i=(c[5840+(c[Fd>>2]<<2)>>2]|0)+(c[(c[Ad>>2]|0)+48>>2]|0)|0;Uh=_i-(qm((c[(c[(c[Ad>>2]|0)+8>>2]|0)+(c[Fd>>2]<<2)>>2]|0)+1|0)|0)|0;c[Cd>>2]=(c[Cd>>2]|0)+Uh;c[xd>>2]=c[Cd>>2];}c[ti>>2]=aj+(c[xd>>2]|0);c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+8>>2]=c[oi>>2];c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+4>>2]=c[qi>>2];c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+12>>2]=c[ii>>2];c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)>>2]=c[ti>>2];aj=(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+16|0;c[aj>>2]=c[si>>2];c[aj+4>>2]=c[si+4>>2];c[aj+8>>2]=c[si+8>>2];c[oi>>2]=(c[oi>>2]|0)+1;}c[pi>>2]=(c[pi>>2]|0)+1;}c[fi>>2]=(c[oi>>2]|0)-1;c[ei>>2]=1;b:while(1){if((c[ei>>2]|0)>>>0>(c[fi>>2]|0)>>>0){dj=504;break;}c[ui>>2]=(c[Vh>>2]|0)+(c[ei>>2]|0);if((c[(c[bi>>2]|0)+(((c[ei>>2]|0)-1|0)*28|0)+8>>2]|0)==1)oj=(c[(c[bi>>2]|0)+(((c[ei>>2]|0)-1|0)*28|0)+12>>2]|0)+1|0;else oj=1;c[vi>>2]=oj;if((c[ei>>2]|0)>>>0>(c[vi>>2]|0)>>>0){aj=c[(c[bi>>2]|0)+(((c[ei>>2]|0)-(c[vi>>2]|0)|0)*28|0)>>2]|0;c[wi>>2]=aj+(sm((c[ui>>2]|0)+(0-(c[vi>>2]|0))|0,c[vi>>2]|0,c[Th>>2]|0)|0);}else c[wi>>2]=tm(di,c[Wh>>2]|0,c[vi>>2]|0,c[Th>>2]|0)|0;if((c[wi>>2]|0)<=(c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)>>2]|0)){c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+8>>2]=1;c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+4>>2]=0;c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+12>>2]=c[vi>>2];c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)>>2]=c[wi>>2];aj=(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+16|0;Uh=(c[bi>>2]|0)+(((c[ei>>2]|0)-1|0)*28|0)+16|0;c[aj>>2]=c[Uh>>2];c[aj+4>>2]=c[Uh+4>>2];c[aj+8>>2]=c[Uh+8>>2];}c:do{if((c[ui>>2]|0)>>>0<=(c[Yh>>2]|0)>>>0){if((c[ei>>2]|0)==(c[fi>>2]|0)){dj=504;break b;}if((c[Rh>>2]|0)==0?(c[(c[bi>>2]|0)+(((c[ei>>2]|0)+1|0)*28|0)>>2]|0)<=(c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)>>2]|0):0)break;c[xi>>2]=(c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+8>>2]|0)!=1&1;if((c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+8>>2]|0)==1)pj=c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+12>>2]|0;else pj=0;c[yi>>2]=pj;if((c[ei>>2]|0)>>>0>(c[yi>>2]|0)>>>0)qj=c[(c[bi>>2]|0)+(((c[ei>>2]|0)-(c[yi>>2]|0)|0)*28|0)>>2]|0;else qj=0;c[zi>>2]=qj;Uh=c[zi>>2]|0;c[Ai>>2]=Uh+(um((c[ui>>2]|0)+(0-(c[yi>>2]|0))|0,c[yi>>2]|0,c[Th>>2]|0)|0);Uh=c[Oh>>2]|0;aj=c[ui>>2]|0;_i=c[Xh>>2]|0;Zh=c[Sh>>2]|0;Zi=(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+16|0;Ph=c[xi>>2]|0;Qh=c[ci>>2]|0;_h=c[ai>>2]|0;c[nd>>2]=c[Lh>>2];c[od>>2]=Uh;c[pd>>2]=aj;c[qd>>2]=_i;c[rd>>2]=Zh;c[sd>>2]=Zi;c[td>>2]=Ph;c[ud>>2]=Qh;c[vd>>2]=_h;c[wd>>2]=c[(c[od>>2]|0)+16>>2];d:do{if((c[pd>>2]|0)>>>0<((c[(c[nd>>2]|0)+4>>2]|0)+(c[(c[nd>>2]|0)+24>>2]|0)|0)>>>0)c[md>>2]=0;else{_h=c[od>>2]|0;Qh=c[pd>>2]|0;Ph=c[qd>>2]|0;Zi=c[wd>>2]|0;Zh=c[rd>>2]|0;c[dd>>2]=c[nd>>2];c[ed>>2]=_h;c[fd>>2]=Qh;c[gd>>2]=Ph;c[hd>>2]=Zi;c[id>>2]=Zh;c[jd>>2]=c[(c[dd>>2]|0)+4>>2];c[kd>>2]=(c[fd>>2]|0)-(c[jd>>2]|0);c[ld>>2]=c[(c[dd>>2]|0)+24>>2];while(1){if((c[ld>>2]|0)>>>0>=(c[kd>>2]|0)>>>0)break;Zh=Rj(c[dd>>2]|0,c[ed>>2]|0,(c[jd>>2]|0)+(c[ld>>2]|0)|0,c[gd>>2]|0,c[hd>>2]|0,c[id>>2]|0)|0;c[ld>>2]=(c[ld>>2]|0)+Zh;}c[(c[dd>>2]|0)+24>>2]=c[kd>>2];switch(c[wd>>2]|0){case 3:{Zh=c[od>>2]|0;Zi=c[pd>>2]|0;Ph=c[qd>>2]|0;Qh=c[rd>>2]|0;_h=c[sd>>2]|0;_i=c[td>>2]|0;aj=c[ud>>2]|0;Uh=c[vd>>2]|0;c[ic>>2]=c[nd>>2];c[jc>>2]=Zh;c[kc>>2]=Zi;c[lc>>2]=Ph;c[mc>>2]=Qh;c[nc>>2]=_h;c[oc>>2]=_i;c[pc>>2]=aj;c[qc>>2]=Uh;c[rc>>2]=3;if((c[(c[jc>>2]|0)+20>>2]|0)>>>0<4095)rj=c[(c[jc>>2]|0)+20>>2]|0;else rj=4095;c[sc>>2]=rj;c[tc>>2]=c[(c[ic>>2]|0)+4>>2];c[uc>>2]=(c[kc>>2]|0)-(c[tc>>2]|0);c[vc>>2]=c[(c[jc>>2]|0)+8>>2];c[wc>>2]=(c[rc>>2]|0)==3?3:4;c[xc>>2]=c[(c[ic>>2]|0)+36>>2];c[yc>>2]=Sj(c[kc>>2]|0,c[vc>>2]|0,c[rc>>2]|0)|0;c[zc>>2]=c[(c[xc>>2]|0)+(c[yc>>2]<<2)>>2];c[Ac>>2]=c[(c[ic>>2]|0)+44>>2];c[Bc>>2]=(c[(c[jc>>2]|0)+4>>2]|0)-1;c[Cc>>2]=(1<<c[Bc>>2])-1;c[Dc>>2]=0;c[Ec>>2]=0;c[Fc>>2]=c[(c[ic>>2]|0)+8>>2];c[Gc>>2]=c[(c[ic>>2]|0)+12>>2];c[Hc>>2]=(c[Fc>>2]|0)+(c[Gc>>2]|0);c[Ic>>2]=(c[tc>>2]|0)+(c[Gc>>2]|0);if((c[Cc>>2]|0)>>>0>=(c[uc>>2]|0)>>>0)sj=0;else sj=(c[uc>>2]|0)-(c[Cc>>2]|0)|0;c[Jc>>2]=sj;c[Kc>>2]=c[(c[ic>>2]|0)+16>>2];c[Lc>>2]=(c[Ac>>2]|0)+((c[uc>>2]&c[Cc>>2])<<1<<2);c[Mc>>2]=(c[Ac>>2]|0)+((c[uc>>2]&c[Cc>>2])<<1<<2)+4;c[Nc>>2]=(c[uc>>2]|0)+8+1;c[Pc>>2]=0;c[Qc>>2]=1<<c[(c[jc>>2]|0)+12>>2];c[Rc>>2]=(c[qc>>2]|0)-1;c[Sc>>2]=3+(c[oc>>2]|0);c[Tc>>2]=c[oc>>2];while(1){if((c[Tc>>2]|0)>>>0>=(c[Sc>>2]|0)>>>0){dj=287;break;}Uh=c[nc>>2]|0;if((c[Tc>>2]|0)==3)tj=(c[Uh>>2]|0)-1|0;else tj=c[Uh+(c[Tc>>2]<<2)>>2]|0;c[Uc>>2]=tj;c[Vc>>2]=(c[uc>>2]|0)-(c[Uc>>2]|0);c[Wc>>2]=0;do{if(((c[Uc>>2]|0)-1|0)>>>0<((c[uc>>2]|0)-(c[Gc>>2]|0)|0)>>>0){Uh=mm(c[kc>>2]|0,c[wc>>2]|0)|0;if((Uh|0)!=(mm((c[kc>>2]|0)+(0-(c[Uc>>2]|0))|0,c[wc>>2]|0)|0))break;Uh=Tj((c[kc>>2]|0)+(c[wc>>2]|0)|0,(c[kc>>2]|0)+(c[wc>>2]|0)+(0-(c[Uc>>2]|0))|0,c[lc>>2]|0)|0;c[Wc>>2]=Uh+(c[wc>>2]|0);}else{c[Xc>>2]=(c[Fc>>2]|0)+(c[Vc>>2]|0);if(!(c[mc>>2]|0))break;if(!((((c[Gc>>2]|0)-1-(c[Vc>>2]|0)|0)>>>0>=3?((c[Uc>>2]|0)-1|0)>>>0<((c[uc>>2]|0)-(c[Kc>>2]|0)|0)>>>0:0)|0))break;Uh=mm(c[kc>>2]|0,c[wc>>2]|0)|0;if((Uh|0)!=(mm(c[Xc>>2]|0,c[wc>>2]|0)|0))break;Uh=Uj((c[kc>>2]|0)+(c[wc>>2]|0)|0,(c[Xc>>2]|0)+(c[wc>>2]|0)|0,c[lc>>2]|0,c[Hc>>2]|0,c[Ic>>2]|0)|0;c[Wc>>2]=Uh+(c[wc>>2]|0);}}while(0);if((c[Wc>>2]|0)>>>0>(c[Rc>>2]|0)>>>0?(c[Rc>>2]=c[Wc>>2],c[(c[pc>>2]|0)+(c[Pc>>2]<<3)>>2]=(c[Tc>>2]|0)-(c[oc>>2]|0),c[(c[pc>>2]|0)+(c[Pc>>2]<<3)+4>>2]=c[Wc>>2],c[Pc>>2]=(c[Pc>>2]|0)+1,((c[Wc>>2]|0)>>>0>(c[sc>>2]|0)>>>0?1:((c[kc>>2]|0)+(c[Wc>>2]|0)|0)==(c[lc>>2]|0))|0):0){dj=285;break;}c[Tc>>2]=(c[Tc>>2]|0)+1;}e:do{if((dj|0)==285){dj=0;c[hc>>2]=c[Pc>>2];}else if((dj|0)==287){dj=0;do{if((c[rc>>2]|0)==3){if((c[Rc>>2]|0)>>>0>=(c[rc>>2]|0)>>>0)break;c[Yc>>2]=nm(c[ic>>2]|0,c[kc>>2]|0)|0;if(!(((c[Yc>>2]|0)>>>0>(c[Kc>>2]|0)>>>0?((c[uc>>2]|0)-(c[Yc>>2]|0)|0)>>>0<262144:0)|0))break;do{if(c[mc>>2]|0){if((c[Yc>>2]|0)>>>0>=(c[Gc>>2]|0)>>>0){dj=292;break;}c[$c>>2]=(c[Fc>>2]|0)+(c[Yc>>2]|0);c[Zc>>2]=Uj(c[kc>>2]|0,c[$c>>2]|0,c[lc>>2]|0,c[Hc>>2]|0,c[Ic>>2]|0)|0;}else dj=292;}while(0);if((dj|0)==292){dj=0;c[_c>>2]=(c[tc>>2]|0)+(c[Yc>>2]|0);c[Zc>>2]=Tj(c[kc>>2]|0,c[_c>>2]|0,c[lc>>2]|0)|0;}if((c[Zc>>2]|0)>>>0<(c[rc>>2]|0)>>>0)break;c[Rc>>2]=c[Zc>>2];c[c[pc>>2]>>2]=(c[uc>>2]|0)-(c[Yc>>2]|0)+2;c[(c[pc>>2]|0)+4>>2]=c[Zc>>2];c[Pc>>2]=1;if(!(((c[Zc>>2]|0)>>>0>(c[sc>>2]|0)>>>0?1:((c[kc>>2]|0)+(c[Zc>>2]|0)|0)==(c[lc>>2]|0))|0))break;c[(c[ic>>2]|0)+24>>2]=(c[uc>>2]|0)+1;c[hc>>2]=1;break e;}}while(0);c[(c[xc>>2]|0)+(c[yc>>2]<<2)>>2]=c[uc>>2];while(1){Uh=c[Qc>>2]|0;c[Qc>>2]=Uh+-1;if(!Uh)break;if((c[zc>>2]|0)>>>0<=(c[Kc>>2]|0)>>>0)break;c[ad>>2]=(c[Ac>>2]|0)+((c[zc>>2]&c[Cc>>2])<<1<<2);c[bd>>2]=(c[Dc>>2]|0)>>>0<(c[Ec>>2]|0)>>>0?c[Dc>>2]|0:c[Ec>>2]|0;do{if(c[mc>>2]|0){if(((c[zc>>2]|0)+(c[bd>>2]|0)|0)>>>0>=(c[Gc>>2]|0)>>>0){dj=302;break;}c[cd>>2]=(c[Fc>>2]|0)+(c[zc>>2]|0);Uh=Uj((c[kc>>2]|0)+(c[bd>>2]|0)|0,(c[cd>>2]|0)+(c[bd>>2]|0)|0,c[lc>>2]|0,c[Hc>>2]|0,c[Ic>>2]|0)|0;c[bd>>2]=(c[bd>>2]|0)+Uh;if(((c[zc>>2]|0)+(c[bd>>2]|0)|0)>>>0<(c[Gc>>2]|0)>>>0)break;c[cd>>2]=(c[tc>>2]|0)+(c[zc>>2]|0);}else dj=302;}while(0);if((dj|0)==302){dj=0;c[cd>>2]=(c[tc>>2]|0)+(c[zc>>2]|0);Uh=Tj((c[kc>>2]|0)+(c[bd>>2]|0)|0,(c[cd>>2]|0)+(c[bd>>2]|0)|0,c[lc>>2]|0)|0;c[bd>>2]=(c[bd>>2]|0)+Uh;}if((c[bd>>2]|0)>>>0>(c[Rc>>2]|0)>>>0){if((c[bd>>2]|0)>>>0>((c[Nc>>2]|0)-(c[zc>>2]|0)|0)>>>0)c[Nc>>2]=(c[zc>>2]|0)+(c[bd>>2]|0);c[Rc>>2]=c[bd>>2];c[(c[pc>>2]|0)+(c[Pc>>2]<<3)>>2]=(c[uc>>2]|0)-(c[zc>>2]|0)+2;c[(c[pc>>2]|0)+(c[Pc>>2]<<3)+4>>2]=c[bd>>2];c[Pc>>2]=(c[Pc>>2]|0)+1;if((c[bd>>2]|0)>>>0>4096)break;if(((c[kc>>2]|0)+(c[bd>>2]|0)|0)==(c[lc>>2]|0))break;}Uh=c[zc>>2]|0;if((d[(c[cd>>2]|0)+(c[bd>>2]|0)>>0]|0|0)<(d[(c[kc>>2]|0)+(c[bd>>2]|0)>>0]|0|0)){c[c[Lc>>2]>>2]=Uh;c[Dc>>2]=c[bd>>2];if((c[zc>>2]|0)>>>0<=(c[Jc>>2]|0)>>>0){dj=312;break;}c[Lc>>2]=(c[ad>>2]|0)+4;c[zc>>2]=c[(c[ad>>2]|0)+4>>2];}else{c[c[Mc>>2]>>2]=Uh;c[Ec>>2]=c[bd>>2];if((c[zc>>2]|0)>>>0<=(c[Jc>>2]|0)>>>0){dj=315;break;}c[Mc>>2]=c[ad>>2];c[zc>>2]=c[c[ad>>2]>>2];}}if((dj|0)==312){dj=0;c[Lc>>2]=Oc;}else if((dj|0)==315){dj=0;c[Mc>>2]=Oc;}c[c[Mc>>2]>>2]=0;c[c[Lc>>2]>>2]=0;c[(c[ic>>2]|0)+24>>2]=(c[Nc>>2]|0)-8;c[hc>>2]=c[Pc>>2];}}while(0);c[md>>2]=c[hc>>2];break d;break;}case 7:case 6:{Uh=c[od>>2]|0;aj=c[pd>>2]|0;_i=c[qd>>2]|0;_h=c[rd>>2]|0;Qh=c[sd>>2]|0;Ph=c[td>>2]|0;Zi=c[ud>>2]|0;Zh=c[vd>>2]|0;c[u>>2]=c[nd>>2];c[v>>2]=Uh;c[w>>2]=aj;c[x>>2]=_i;c[y>>2]=_h;c[z>>2]=Qh;c[A>>2]=Ph;c[B>>2]=Zi;c[C>>2]=Zh;c[D>>2]=6;if((c[(c[v>>2]|0)+20>>2]|0)>>>0<4095)uj=c[(c[v>>2]|0)+20>>2]|0;else uj=4095;c[E>>2]=uj;c[F>>2]=c[(c[u>>2]|0)+4>>2];c[G>>2]=(c[w>>2]|0)-(c[F>>2]|0);c[H>>2]=c[(c[v>>2]|0)+8>>2];c[I>>2]=(c[D>>2]|0)==3?3:4;c[J>>2]=c[(c[u>>2]|0)+36>>2];c[K>>2]=Sj(c[w>>2]|0,c[H>>2]|0,c[D>>2]|0)|0;c[L>>2]=c[(c[J>>2]|0)+(c[K>>2]<<2)>>2];c[M>>2]=c[(c[u>>2]|0)+44>>2];c[N>>2]=(c[(c[v>>2]|0)+4>>2]|0)-1;c[O>>2]=(1<<c[N>>2])-1;c[P>>2]=0;c[Q>>2]=0;c[R>>2]=c[(c[u>>2]|0)+8>>2];c[S>>2]=c[(c[u>>2]|0)+12>>2];c[T>>2]=(c[R>>2]|0)+(c[S>>2]|0);c[U>>2]=(c[F>>2]|0)+(c[S>>2]|0);if((c[O>>2]|0)>>>0>=(c[G>>2]|0)>>>0)vj=0;else vj=(c[G>>2]|0)-(c[O>>2]|0)|0;c[V>>2]=vj;c[W>>2]=c[(c[u>>2]|0)+16>>2];c[X>>2]=(c[M>>2]|0)+((c[G>>2]&c[O>>2])<<1<<2);c[Y>>2]=(c[M>>2]|0)+((c[G>>2]&c[O>>2])<<1<<2)+4;c[Z>>2]=(c[G>>2]|0)+8+1;c[$>>2]=0;c[aa>>2]=1<<c[(c[v>>2]|0)+12>>2];c[ba>>2]=(c[C>>2]|0)-1;c[ca>>2]=3+(c[A>>2]|0);c[da>>2]=c[A>>2];while(1){if((c[da>>2]|0)>>>0>=(c[ca>>2]|0)>>>0){dj=446;break;}Zh=c[z>>2]|0;if((c[da>>2]|0)==3)wj=(c[Zh>>2]|0)-1|0;else wj=c[Zh+(c[da>>2]<<2)>>2]|0;c[ea>>2]=wj;c[fa>>2]=(c[G>>2]|0)-(c[ea>>2]|0);c[ga>>2]=0;do{if(((c[ea>>2]|0)-1|0)>>>0<((c[G>>2]|0)-(c[S>>2]|0)|0)>>>0){Zh=mm(c[w>>2]|0,c[I>>2]|0)|0;if((Zh|0)!=(mm((c[w>>2]|0)+(0-(c[ea>>2]|0))|0,c[I>>2]|0)|0))break;Zh=Tj((c[w>>2]|0)+(c[I>>2]|0)|0,(c[w>>2]|0)+(c[I>>2]|0)+(0-(c[ea>>2]|0))|0,c[x>>2]|0)|0;c[ga>>2]=Zh+(c[I>>2]|0);}else{c[ha>>2]=(c[R>>2]|0)+(c[fa>>2]|0);if(!(c[y>>2]|0))break;if(!((((c[S>>2]|0)-1-(c[fa>>2]|0)|0)>>>0>=3?((c[ea>>2]|0)-1|0)>>>0<((c[G>>2]|0)-(c[W>>2]|0)|0)>>>0:0)|0))break;Zh=mm(c[w>>2]|0,c[I>>2]|0)|0;if((Zh|0)!=(mm(c[ha>>2]|0,c[I>>2]|0)|0))break;Zh=Uj((c[w>>2]|0)+(c[I>>2]|0)|0,(c[ha>>2]|0)+(c[I>>2]|0)|0,c[x>>2]|0,c[T>>2]|0,c[U>>2]|0)|0;c[ga>>2]=Zh+(c[I>>2]|0);}}while(0);if((c[ga>>2]|0)>>>0>(c[ba>>2]|0)>>>0?(c[ba>>2]=c[ga>>2],c[(c[B>>2]|0)+(c[$>>2]<<3)>>2]=(c[da>>2]|0)-(c[A>>2]|0),c[(c[B>>2]|0)+(c[$>>2]<<3)+4>>2]=c[ga>>2],c[$>>2]=(c[$>>2]|0)+1,((c[ga>>2]|0)>>>0>(c[E>>2]|0)>>>0?1:((c[w>>2]|0)+(c[ga>>2]|0)|0)==(c[x>>2]|0))|0):0){dj=444;break;}c[da>>2]=(c[da>>2]|0)+1;}f:do{if((dj|0)==444){dj=0;c[t>>2]=c[$>>2];}else if((dj|0)==446){dj=0;do{if((c[D>>2]|0)==3){if((c[ba>>2]|0)>>>0>=(c[D>>2]|0)>>>0)break;c[ia>>2]=nm(c[u>>2]|0,c[w>>2]|0)|0;if(!(((c[ia>>2]|0)>>>0>(c[W>>2]|0)>>>0?((c[G>>2]|0)-(c[ia>>2]|0)|0)>>>0<262144:0)|0))break;do{if(c[y>>2]|0){if((c[ia>>2]|0)>>>0>=(c[S>>2]|0)>>>0){dj=451;break;}c[la>>2]=(c[R>>2]|0)+(c[ia>>2]|0);c[ja>>2]=Uj(c[w>>2]|0,c[la>>2]|0,c[x>>2]|0,c[T>>2]|0,c[U>>2]|0)|0;}else dj=451;}while(0);if((dj|0)==451){dj=0;c[ka>>2]=(c[F>>2]|0)+(c[ia>>2]|0);c[ja>>2]=Tj(c[w>>2]|0,c[ka>>2]|0,c[x>>2]|0)|0;}if((c[ja>>2]|0)>>>0<(c[D>>2]|0)>>>0)break;c[ba>>2]=c[ja>>2];c[c[B>>2]>>2]=(c[G>>2]|0)-(c[ia>>2]|0)+2;c[(c[B>>2]|0)+4>>2]=c[ja>>2];c[$>>2]=1;if(!(((c[ja>>2]|0)>>>0>(c[E>>2]|0)>>>0?1:((c[w>>2]|0)+(c[ja>>2]|0)|0)==(c[x>>2]|0))|0))break;c[(c[u>>2]|0)+24>>2]=(c[G>>2]|0)+1;c[t>>2]=1;break f;}}while(0);c[(c[J>>2]|0)+(c[K>>2]<<2)>>2]=c[G>>2];while(1){Zh=c[aa>>2]|0;c[aa>>2]=Zh+-1;if(!Zh)break;if((c[L>>2]|0)>>>0<=(c[W>>2]|0)>>>0)break;c[ma>>2]=(c[M>>2]|0)+((c[L>>2]&c[O>>2])<<1<<2);c[na>>2]=(c[P>>2]|0)>>>0<(c[Q>>2]|0)>>>0?c[P>>2]|0:c[Q>>2]|0;do{if(c[y>>2]|0){if(((c[L>>2]|0)+(c[na>>2]|0)|0)>>>0>=(c[S>>2]|0)>>>0){dj=461;break;}c[oa>>2]=(c[R>>2]|0)+(c[L>>2]|0);Zh=Uj((c[w>>2]|0)+(c[na>>2]|0)|0,(c[oa>>2]|0)+(c[na>>2]|0)|0,c[x>>2]|0,c[T>>2]|0,c[U>>2]|0)|0;c[na>>2]=(c[na>>2]|0)+Zh;if(((c[L>>2]|0)+(c[na>>2]|0)|0)>>>0<(c[S>>2]|0)>>>0)break;c[oa>>2]=(c[F>>2]|0)+(c[L>>2]|0);}else dj=461;}while(0);if((dj|0)==461){dj=0;c[oa>>2]=(c[F>>2]|0)+(c[L>>2]|0);Zh=Tj((c[w>>2]|0)+(c[na>>2]|0)|0,(c[oa>>2]|0)+(c[na>>2]|0)|0,c[x>>2]|0)|0;c[na>>2]=(c[na>>2]|0)+Zh;}if((c[na>>2]|0)>>>0>(c[ba>>2]|0)>>>0){if((c[na>>2]|0)>>>0>((c[Z>>2]|0)-(c[L>>2]|0)|0)>>>0)c[Z>>2]=(c[L>>2]|0)+(c[na>>2]|0);c[ba>>2]=c[na>>2];c[(c[B>>2]|0)+(c[$>>2]<<3)>>2]=(c[G>>2]|0)-(c[L>>2]|0)+2;c[(c[B>>2]|0)+(c[$>>2]<<3)+4>>2]=c[na>>2];c[$>>2]=(c[$>>2]|0)+1;if((c[na>>2]|0)>>>0>4096)break;if(((c[w>>2]|0)+(c[na>>2]|0)|0)==(c[x>>2]|0))break;}Zh=c[L>>2]|0;if((d[(c[oa>>2]|0)+(c[na>>2]|0)>>0]|0|0)<(d[(c[w>>2]|0)+(c[na>>2]|0)>>0]|0|0)){c[c[X>>2]>>2]=Zh;c[P>>2]=c[na>>2];if((c[L>>2]|0)>>>0<=(c[V>>2]|0)>>>0){dj=471;break;}c[X>>2]=(c[ma>>2]|0)+4;c[L>>2]=c[(c[ma>>2]|0)+4>>2];}else{c[c[Y>>2]>>2]=Zh;c[Q>>2]=c[na>>2];if((c[L>>2]|0)>>>0<=(c[V>>2]|0)>>>0){dj=474;break;}c[Y>>2]=c[ma>>2];c[L>>2]=c[c[ma>>2]>>2];}}if((dj|0)==471){dj=0;c[X>>2]=_;}else if((dj|0)==474){dj=0;c[Y>>2]=_;}c[c[Y>>2]>>2]=0;c[c[X>>2]>>2]=0;c[(c[u>>2]|0)+24>>2]=(c[Z>>2]|0)-8;c[t>>2]=c[$>>2];}}while(0);c[md>>2]=c[t>>2];break d;break;}case 5:{Zh=c[od>>2]|0;Zi=c[pd>>2]|0;Ph=c[qd>>2]|0;Qh=c[rd>>2]|0;_h=c[sd>>2]|0;_i=c[td>>2]|0;aj=c[ud>>2]|0;Uh=c[vd>>2]|0;c[qa>>2]=c[nd>>2];c[ra>>2]=Zh;c[sa>>2]=Zi;c[ta>>2]=Ph;c[ua>>2]=Qh;c[va>>2]=_h;c[wa>>2]=_i;c[xa>>2]=aj;c[ya>>2]=Uh;c[za>>2]=5;if((c[(c[ra>>2]|0)+20>>2]|0)>>>0<4095)xj=c[(c[ra>>2]|0)+20>>2]|0;else xj=4095;c[Aa>>2]=xj;c[Ba>>2]=c[(c[qa>>2]|0)+4>>2];c[Ca>>2]=(c[sa>>2]|0)-(c[Ba>>2]|0);c[Da>>2]=c[(c[ra>>2]|0)+8>>2];c[Ea>>2]=(c[za>>2]|0)==3?3:4;c[Fa>>2]=c[(c[qa>>2]|0)+36>>2];c[Ga>>2]=Sj(c[sa>>2]|0,c[Da>>2]|0,c[za>>2]|0)|0;c[Ha>>2]=c[(c[Fa>>2]|0)+(c[Ga>>2]<<2)>>2];c[Ia>>2]=c[(c[qa>>2]|0)+44>>2];c[Ja>>2]=(c[(c[ra>>2]|0)+4>>2]|0)-1;c[Ka>>2]=(1<<c[Ja>>2])-1;c[La>>2]=0;c[Ma>>2]=0;c[Na>>2]=c[(c[qa>>2]|0)+8>>2];c[Oa>>2]=c[(c[qa>>2]|0)+12>>2];c[Pa>>2]=(c[Na>>2]|0)+(c[Oa>>2]|0);c[Qa>>2]=(c[Ba>>2]|0)+(c[Oa>>2]|0);if((c[Ka>>2]|0)>>>0>=(c[Ca>>2]|0)>>>0)yj=0;else yj=(c[Ca>>2]|0)-(c[Ka>>2]|0)|0;c[Ra>>2]=yj;c[Sa>>2]=c[(c[qa>>2]|0)+16>>2];c[Ta>>2]=(c[Ia>>2]|0)+((c[Ca>>2]&c[Ka>>2])<<1<<2);c[Ua>>2]=(c[Ia>>2]|0)+((c[Ca>>2]&c[Ka>>2])<<1<<2)+4;c[Va>>2]=(c[Ca>>2]|0)+8+1;c[Xa>>2]=0;c[Ya>>2]=1<<c[(c[ra>>2]|0)+12>>2];c[Za>>2]=(c[ya>>2]|0)-1;c[_a>>2]=3+(c[wa>>2]|0);c[$a>>2]=c[wa>>2];while(1){if((c[$a>>2]|0)>>>0>=(c[_a>>2]|0)>>>0){dj=393;break;}Uh=c[va>>2]|0;if((c[$a>>2]|0)==3)zj=(c[Uh>>2]|0)-1|0;else zj=c[Uh+(c[$a>>2]<<2)>>2]|0;c[ab>>2]=zj;c[bb>>2]=(c[Ca>>2]|0)-(c[ab>>2]|0);c[cb>>2]=0;do{if(((c[ab>>2]|0)-1|0)>>>0<((c[Ca>>2]|0)-(c[Oa>>2]|0)|0)>>>0){Uh=mm(c[sa>>2]|0,c[Ea>>2]|0)|0;if((Uh|0)!=(mm((c[sa>>2]|0)+(0-(c[ab>>2]|0))|0,c[Ea>>2]|0)|0))break;Uh=Tj((c[sa>>2]|0)+(c[Ea>>2]|0)|0,(c[sa>>2]|0)+(c[Ea>>2]|0)+(0-(c[ab>>2]|0))|0,c[ta>>2]|0)|0;c[cb>>2]=Uh+(c[Ea>>2]|0);}else{c[db>>2]=(c[Na>>2]|0)+(c[bb>>2]|0);if(!(c[ua>>2]|0))break;if(!((((c[Oa>>2]|0)-1-(c[bb>>2]|0)|0)>>>0>=3?((c[ab>>2]|0)-1|0)>>>0<((c[Ca>>2]|0)-(c[Sa>>2]|0)|0)>>>0:0)|0))break;Uh=mm(c[sa>>2]|0,c[Ea>>2]|0)|0;if((Uh|0)!=(mm(c[db>>2]|0,c[Ea>>2]|0)|0))break;Uh=Uj((c[sa>>2]|0)+(c[Ea>>2]|0)|0,(c[db>>2]|0)+(c[Ea>>2]|0)|0,c[ta>>2]|0,c[Pa>>2]|0,c[Qa>>2]|0)|0;c[cb>>2]=Uh+(c[Ea>>2]|0);}}while(0);if((c[cb>>2]|0)>>>0>(c[Za>>2]|0)>>>0?(c[Za>>2]=c[cb>>2],c[(c[xa>>2]|0)+(c[Xa>>2]<<3)>>2]=(c[$a>>2]|0)-(c[wa>>2]|0),c[(c[xa>>2]|0)+(c[Xa>>2]<<3)+4>>2]=c[cb>>2],c[Xa>>2]=(c[Xa>>2]|0)+1,((c[cb>>2]|0)>>>0>(c[Aa>>2]|0)>>>0?1:((c[sa>>2]|0)+(c[cb>>2]|0)|0)==(c[ta>>2]|0))|0):0){dj=391;break;}c[$a>>2]=(c[$a>>2]|0)+1;}g:do{if((dj|0)==391){dj=0;c[pa>>2]=c[Xa>>2];}else if((dj|0)==393){dj=0;do{if((c[za>>2]|0)==3){if((c[Za>>2]|0)>>>0>=(c[za>>2]|0)>>>0)break;c[eb>>2]=nm(c[qa>>2]|0,c[sa>>2]|0)|0;if(!(((c[eb>>2]|0)>>>0>(c[Sa>>2]|0)>>>0?((c[Ca>>2]|0)-(c[eb>>2]|0)|0)>>>0<262144:0)|0))break;do{if(c[ua>>2]|0){if((c[eb>>2]|0)>>>0>=(c[Oa>>2]|0)>>>0){dj=398;break;}c[hb>>2]=(c[Na>>2]|0)+(c[eb>>2]|0);c[fb>>2]=Uj(c[sa>>2]|0,c[hb>>2]|0,c[ta>>2]|0,c[Pa>>2]|0,c[Qa>>2]|0)|0;}else dj=398;}while(0);if((dj|0)==398){dj=0;c[gb>>2]=(c[Ba>>2]|0)+(c[eb>>2]|0);c[fb>>2]=Tj(c[sa>>2]|0,c[gb>>2]|0,c[ta>>2]|0)|0;}if((c[fb>>2]|0)>>>0<(c[za>>2]|0)>>>0)break;c[Za>>2]=c[fb>>2];c[c[xa>>2]>>2]=(c[Ca>>2]|0)-(c[eb>>2]|0)+2;c[(c[xa>>2]|0)+4>>2]=c[fb>>2];c[Xa>>2]=1;if(!(((c[fb>>2]|0)>>>0>(c[Aa>>2]|0)>>>0?1:((c[sa>>2]|0)+(c[fb>>2]|0)|0)==(c[ta>>2]|0))|0))break;c[(c[qa>>2]|0)+24>>2]=(c[Ca>>2]|0)+1;c[pa>>2]=1;break g;}}while(0);c[(c[Fa>>2]|0)+(c[Ga>>2]<<2)>>2]=c[Ca>>2];while(1){Uh=c[Ya>>2]|0;c[Ya>>2]=Uh+-1;if(!Uh)break;if((c[Ha>>2]|0)>>>0<=(c[Sa>>2]|0)>>>0)break;c[ib>>2]=(c[Ia>>2]|0)+((c[Ha>>2]&c[Ka>>2])<<1<<2);c[jb>>2]=(c[La>>2]|0)>>>0<(c[Ma>>2]|0)>>>0?c[La>>2]|0:c[Ma>>2]|0;do{if(c[ua>>2]|0){if(((c[Ha>>2]|0)+(c[jb>>2]|0)|0)>>>0>=(c[Oa>>2]|0)>>>0){dj=408;break;}c[kb>>2]=(c[Na>>2]|0)+(c[Ha>>2]|0);Uh=Uj((c[sa>>2]|0)+(c[jb>>2]|0)|0,(c[kb>>2]|0)+(c[jb>>2]|0)|0,c[ta>>2]|0,c[Pa>>2]|0,c[Qa>>2]|0)|0;c[jb>>2]=(c[jb>>2]|0)+Uh;if(((c[Ha>>2]|0)+(c[jb>>2]|0)|0)>>>0<(c[Oa>>2]|0)>>>0)break;c[kb>>2]=(c[Ba>>2]|0)+(c[Ha>>2]|0);}else dj=408;}while(0);if((dj|0)==408){dj=0;c[kb>>2]=(c[Ba>>2]|0)+(c[Ha>>2]|0);Uh=Tj((c[sa>>2]|0)+(c[jb>>2]|0)|0,(c[kb>>2]|0)+(c[jb>>2]|0)|0,c[ta>>2]|0)|0;c[jb>>2]=(c[jb>>2]|0)+Uh;}if((c[jb>>2]|0)>>>0>(c[Za>>2]|0)>>>0){if((c[jb>>2]|0)>>>0>((c[Va>>2]|0)-(c[Ha>>2]|0)|0)>>>0)c[Va>>2]=(c[Ha>>2]|0)+(c[jb>>2]|0);c[Za>>2]=c[jb>>2];c[(c[xa>>2]|0)+(c[Xa>>2]<<3)>>2]=(c[Ca>>2]|0)-(c[Ha>>2]|0)+2;c[(c[xa>>2]|0)+(c[Xa>>2]<<3)+4>>2]=c[jb>>2];c[Xa>>2]=(c[Xa>>2]|0)+1;if((c[jb>>2]|0)>>>0>4096)break;if(((c[sa>>2]|0)+(c[jb>>2]|0)|0)==(c[ta>>2]|0))break;}Uh=c[Ha>>2]|0;if((d[(c[kb>>2]|0)+(c[jb>>2]|0)>>0]|0|0)<(d[(c[sa>>2]|0)+(c[jb>>2]|0)>>0]|0|0)){c[c[Ta>>2]>>2]=Uh;c[La>>2]=c[jb>>2];if((c[Ha>>2]|0)>>>0<=(c[Ra>>2]|0)>>>0){dj=418;break;}c[Ta>>2]=(c[ib>>2]|0)+4;c[Ha>>2]=c[(c[ib>>2]|0)+4>>2];}else{c[c[Ua>>2]>>2]=Uh;c[Ma>>2]=c[jb>>2];if((c[Ha>>2]|0)>>>0<=(c[Ra>>2]|0)>>>0){dj=421;break;}c[Ua>>2]=c[ib>>2];c[Ha>>2]=c[c[ib>>2]>>2];}}if((dj|0)==418){dj=0;c[Ta>>2]=Wa;}else if((dj|0)==421){dj=0;c[Ua>>2]=Wa;}c[c[Ua>>2]>>2]=0;c[c[Ta>>2]>>2]=0;c[(c[qa>>2]|0)+24>>2]=(c[Va>>2]|0)-8;c[pa>>2]=c[Xa>>2];}}while(0);c[md>>2]=c[pa>>2];break d;break;}default:{Uh=c[od>>2]|0;aj=c[pd>>2]|0;_i=c[qd>>2]|0;_h=c[rd>>2]|0;Qh=c[sd>>2]|0;Ph=c[td>>2]|0;Zi=c[ud>>2]|0;Zh=c[vd>>2]|0;c[mb>>2]=c[nd>>2];c[nb>>2]=Uh;c[ob>>2]=aj;c[pb>>2]=_i;c[qb>>2]=_h;c[rb>>2]=Qh;c[sb>>2]=Ph;c[tb>>2]=Zi;c[ub>>2]=Zh;c[vb>>2]=4;if((c[(c[nb>>2]|0)+20>>2]|0)>>>0<4095)Aj=c[(c[nb>>2]|0)+20>>2]|0;else Aj=4095;c[wb>>2]=Aj;c[xb>>2]=c[(c[mb>>2]|0)+4>>2];c[yb>>2]=(c[ob>>2]|0)-(c[xb>>2]|0);c[zb>>2]=c[(c[nb>>2]|0)+8>>2];c[Ab>>2]=(c[vb>>2]|0)==3?3:4;c[Bb>>2]=c[(c[mb>>2]|0)+36>>2];c[Cb>>2]=Sj(c[ob>>2]|0,c[zb>>2]|0,c[vb>>2]|0)|0;c[Db>>2]=c[(c[Bb>>2]|0)+(c[Cb>>2]<<2)>>2];c[Eb>>2]=c[(c[mb>>2]|0)+44>>2];c[Fb>>2]=(c[(c[nb>>2]|0)+4>>2]|0)-1;c[Gb>>2]=(1<<c[Fb>>2])-1;c[Hb>>2]=0;c[Ib>>2]=0;c[Jb>>2]=c[(c[mb>>2]|0)+8>>2];c[Kb>>2]=c[(c[mb>>2]|0)+12>>2];c[Lb>>2]=(c[Jb>>2]|0)+(c[Kb>>2]|0);c[Mb>>2]=(c[xb>>2]|0)+(c[Kb>>2]|0);if((c[Gb>>2]|0)>>>0>=(c[yb>>2]|0)>>>0)Bj=0;else Bj=(c[yb>>2]|0)-(c[Gb>>2]|0)|0;c[Nb>>2]=Bj;c[Ob>>2]=c[(c[mb>>2]|0)+16>>2];c[Pb>>2]=(c[Eb>>2]|0)+((c[yb>>2]&c[Gb>>2])<<1<<2);c[Qb>>2]=(c[Eb>>2]|0)+((c[yb>>2]&c[Gb>>2])<<1<<2)+4;c[Rb>>2]=(c[yb>>2]|0)+8+1;c[Tb>>2]=0;c[Ub>>2]=1<<c[(c[nb>>2]|0)+12>>2];c[Vb>>2]=(c[ub>>2]|0)-1;c[Wb>>2]=3+(c[sb>>2]|0);c[Xb>>2]=c[sb>>2];while(1){if((c[Xb>>2]|0)>>>0>=(c[Wb>>2]|0)>>>0){dj=340;break;}Zh=c[rb>>2]|0;if((c[Xb>>2]|0)==3)Cj=(c[Zh>>2]|0)-1|0;else Cj=c[Zh+(c[Xb>>2]<<2)>>2]|0;c[Yb>>2]=Cj;c[Zb>>2]=(c[yb>>2]|0)-(c[Yb>>2]|0);c[_b>>2]=0;do{if(((c[Yb>>2]|0)-1|0)>>>0<((c[yb>>2]|0)-(c[Kb>>2]|0)|0)>>>0){Zh=mm(c[ob>>2]|0,c[Ab>>2]|0)|0;if((Zh|0)!=(mm((c[ob>>2]|0)+(0-(c[Yb>>2]|0))|0,c[Ab>>2]|0)|0))break;Zh=Tj((c[ob>>2]|0)+(c[Ab>>2]|0)|0,(c[ob>>2]|0)+(c[Ab>>2]|0)+(0-(c[Yb>>2]|0))|0,c[pb>>2]|0)|0;c[_b>>2]=Zh+(c[Ab>>2]|0);}else{c[$b>>2]=(c[Jb>>2]|0)+(c[Zb>>2]|0);if(!(c[qb>>2]|0))break;if(!((((c[Kb>>2]|0)-1-(c[Zb>>2]|0)|0)>>>0>=3?((c[Yb>>2]|0)-1|0)>>>0<((c[yb>>2]|0)-(c[Ob>>2]|0)|0)>>>0:0)|0))break;Zh=mm(c[ob>>2]|0,c[Ab>>2]|0)|0;if((Zh|0)!=(mm(c[$b>>2]|0,c[Ab>>2]|0)|0))break;Zh=Uj((c[ob>>2]|0)+(c[Ab>>2]|0)|0,(c[$b>>2]|0)+(c[Ab>>2]|0)|0,c[pb>>2]|0,c[Lb>>2]|0,c[Mb>>2]|0)|0;c[_b>>2]=Zh+(c[Ab>>2]|0);}}while(0);if((c[_b>>2]|0)>>>0>(c[Vb>>2]|0)>>>0?(c[Vb>>2]=c[_b>>2],c[(c[tb>>2]|0)+(c[Tb>>2]<<3)>>2]=(c[Xb>>2]|0)-(c[sb>>2]|0),c[(c[tb>>2]|0)+(c[Tb>>2]<<3)+4>>2]=c[_b>>2],c[Tb>>2]=(c[Tb>>2]|0)+1,((c[_b>>2]|0)>>>0>(c[wb>>2]|0)>>>0?1:((c[ob>>2]|0)+(c[_b>>2]|0)|0)==(c[pb>>2]|0))|0):0){dj=338;break;}c[Xb>>2]=(c[Xb>>2]|0)+1;}h:do{if((dj|0)==338){dj=0;c[lb>>2]=c[Tb>>2];}else if((dj|0)==340){dj=0;do{if((c[vb>>2]|0)==3){if((c[Vb>>2]|0)>>>0>=(c[vb>>2]|0)>>>0)break;c[ac>>2]=nm(c[mb>>2]|0,c[ob>>2]|0)|0;if(!(((c[ac>>2]|0)>>>0>(c[Ob>>2]|0)>>>0?((c[yb>>2]|0)-(c[ac>>2]|0)|0)>>>0<262144:0)|0))break;do{if(c[qb>>2]|0){if((c[ac>>2]|0)>>>0>=(c[Kb>>2]|0)>>>0){dj=345;break;}c[dc>>2]=(c[Jb>>2]|0)+(c[ac>>2]|0);c[bc>>2]=Uj(c[ob>>2]|0,c[dc>>2]|0,c[pb>>2]|0,c[Lb>>2]|0,c[Mb>>2]|0)|0;}else dj=345;}while(0);if((dj|0)==345){dj=0;c[cc>>2]=(c[xb>>2]|0)+(c[ac>>2]|0);c[bc>>2]=Tj(c[ob>>2]|0,c[cc>>2]|0,c[pb>>2]|0)|0;}if((c[bc>>2]|0)>>>0<(c[vb>>2]|0)>>>0)break;c[Vb>>2]=c[bc>>2];c[c[tb>>2]>>2]=(c[yb>>2]|0)-(c[ac>>2]|0)+2;c[(c[tb>>2]|0)+4>>2]=c[bc>>2];c[Tb>>2]=1;if(!(((c[bc>>2]|0)>>>0>(c[wb>>2]|0)>>>0?1:((c[ob>>2]|0)+(c[bc>>2]|0)|0)==(c[pb>>2]|0))|0))break;c[(c[mb>>2]|0)+24>>2]=(c[yb>>2]|0)+1;c[lb>>2]=1;break h;}}while(0);c[(c[Bb>>2]|0)+(c[Cb>>2]<<2)>>2]=c[yb>>2];while(1){Zh=c[Ub>>2]|0;c[Ub>>2]=Zh+-1;if(!Zh)break;if((c[Db>>2]|0)>>>0<=(c[Ob>>2]|0)>>>0)break;c[ec>>2]=(c[Eb>>2]|0)+((c[Db>>2]&c[Gb>>2])<<1<<2);c[fc>>2]=(c[Hb>>2]|0)>>>0<(c[Ib>>2]|0)>>>0?c[Hb>>2]|0:c[Ib>>2]|0;do{if(c[qb>>2]|0){if(((c[Db>>2]|0)+(c[fc>>2]|0)|0)>>>0>=(c[Kb>>2]|0)>>>0){dj=355;break;}c[gc>>2]=(c[Jb>>2]|0)+(c[Db>>2]|0);Zh=Uj((c[ob>>2]|0)+(c[fc>>2]|0)|0,(c[gc>>2]|0)+(c[fc>>2]|0)|0,c[pb>>2]|0,c[Lb>>2]|0,c[Mb>>2]|0)|0;c[fc>>2]=(c[fc>>2]|0)+Zh;if(((c[Db>>2]|0)+(c[fc>>2]|0)|0)>>>0<(c[Kb>>2]|0)>>>0)break;c[gc>>2]=(c[xb>>2]|0)+(c[Db>>2]|0);}else dj=355;}while(0);if((dj|0)==355){dj=0;c[gc>>2]=(c[xb>>2]|0)+(c[Db>>2]|0);Zh=Tj((c[ob>>2]|0)+(c[fc>>2]|0)|0,(c[gc>>2]|0)+(c[fc>>2]|0)|0,c[pb>>2]|0)|0;c[fc>>2]=(c[fc>>2]|0)+Zh;}if((c[fc>>2]|0)>>>0>(c[Vb>>2]|0)>>>0){if((c[fc>>2]|0)>>>0>((c[Rb>>2]|0)-(c[Db>>2]|0)|0)>>>0)c[Rb>>2]=(c[Db>>2]|0)+(c[fc>>2]|0);c[Vb>>2]=c[fc>>2];c[(c[tb>>2]|0)+(c[Tb>>2]<<3)>>2]=(c[yb>>2]|0)-(c[Db>>2]|0)+2;c[(c[tb>>2]|0)+(c[Tb>>2]<<3)+4>>2]=c[fc>>2];c[Tb>>2]=(c[Tb>>2]|0)+1;if((c[fc>>2]|0)>>>0>4096)break;if(((c[ob>>2]|0)+(c[fc>>2]|0)|0)==(c[pb>>2]|0))break;}Zh=c[Db>>2]|0;if((d[(c[gc>>2]|0)+(c[fc>>2]|0)>>0]|0|0)<(d[(c[ob>>2]|0)+(c[fc>>2]|0)>>0]|0|0)){c[c[Pb>>2]>>2]=Zh;c[Hb>>2]=c[fc>>2];if((c[Db>>2]|0)>>>0<=(c[Nb>>2]|0)>>>0){dj=365;break;}c[Pb>>2]=(c[ec>>2]|0)+4;c[Db>>2]=c[(c[ec>>2]|0)+4>>2];}else{c[c[Qb>>2]>>2]=Zh;c[Ib>>2]=c[fc>>2];if((c[Db>>2]|0)>>>0<=(c[Nb>>2]|0)>>>0){dj=368;break;}c[Qb>>2]=c[ec>>2];c[Db>>2]=c[c[ec>>2]>>2];}}if((dj|0)==365){dj=0;c[Pb>>2]=Sb;}else if((dj|0)==368){dj=0;c[Qb>>2]=Sb;}c[c[Qb>>2]>>2]=0;c[c[Pb>>2]>>2]=0;c[(c[mb>>2]|0)+24>>2]=(c[Rb>>2]|0)-8;c[lb>>2]=c[Tb>>2];}}while(0);c[md>>2]=c[lb>>2];break d;}}}}while(0);c[Bi>>2]=c[md>>2];if(c[Bi>>2]|0){c[Di>>2]=c[(c[ci>>2]|0)+((c[Bi>>2]|0)-1<<3)+4>>2];if(((c[Di>>2]|0)>>>0>(c[$h>>2]|0)>>>0?1:((c[ei>>2]|0)+(c[Di>>2]|0)|0)>>>0>=4096)|0){dj=481;break b;}c[Ci>>2]=0;while(1){if((c[Ci>>2]|0)>>>0>=(c[Bi>>2]|0)>>>0)break c;c[Ei>>2]=c[(c[ci>>2]|0)+(c[Ci>>2]<<3)>>2];pm(Fi,(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+16|0,c[Ei>>2]|0,c[xi>>2]|0);c[Gi>>2]=c[(c[ci>>2]|0)+(c[Ci>>2]<<3)+4>>2];if((c[Ci>>2]|0)>>>0>0)Dj=(c[(c[ci>>2]|0)+((c[Ci>>2]|0)-1<<3)+4>>2]|0)+1|0;else Dj=c[ai>>2]|0;c[Hi>>2]=Dj;c[Ii>>2]=c[Gi>>2];i:while(1){if((c[Ii>>2]|0)>>>0<(c[Hi>>2]|0)>>>0)break;c[Ji>>2]=(c[ei>>2]|0)+(c[Ii>>2]|0);Zh=c[Ai>>2]|0;Zi=c[Ii>>2]|0;Ph=c[Th>>2]|0;Qh=c[Rh>>2]|0;c[k>>2]=c[Ei>>2];c[m>>2]=Zi;c[n>>2]=Ph;c[o>>2]=Qh;c[q>>2]=qm((c[k>>2]|0)+1|0)|0;c[r>>2]=(c[m>>2]|0)-3;if(c[(c[n>>2]|0)+56>>2]|0){Qh=(qm((c[r>>2]|0)+1|0)|0)+16|0;c[j>>2]=Qh+(c[q>>2]|0);}else{Qh=(c[q>>2]|0)+(c[(c[n>>2]|0)+52>>2]|0)|0;c[p>>2]=Qh-(qm((c[(c[(c[n>>2]|0)+12>>2]|0)+(c[q>>2]<<2)>>2]|0)+1|0)|0);if((c[o>>2]|0)<2&(c[q>>2]|0)>>>0>=20)c[p>>2]=(c[p>>2]|0)+((c[q>>2]|0)-19<<1);c[s>>2]=rm(c[r>>2]|0)|0;Qh=(c[5840+(c[s>>2]<<2)>>2]|0)+(c[(c[n>>2]|0)+48>>2]|0)|0;Ph=Qh-(qm((c[(c[(c[n>>2]|0)+8>>2]|0)+(c[s>>2]<<2)>>2]|0)+1|0)|0)|0;c[p>>2]=(c[p>>2]|0)+Ph;c[j>>2]=c[p>>2];}c[Ki>>2]=Zh+(c[j>>2]|0);do{if((c[Ji>>2]|0)>>>0<=(c[fi>>2]|0)>>>0){if((c[Ki>>2]|0)<(c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)>>2]|0)){dj=496;break;}if(!(c[Rh>>2]|0))break i;}else dj=496;}while(0);if((dj|0)==496){dj=0;while(1){if((c[fi>>2]|0)>>>0>=(c[Ji>>2]|0)>>>0)break;c[(c[bi>>2]|0)+(((c[fi>>2]|0)+1|0)*28|0)>>2]=1073741824;c[fi>>2]=(c[fi>>2]|0)+1;}c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)+8>>2]=c[Ii>>2];c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)+4>>2]=c[Ei>>2];c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)+12>>2]=c[yi>>2];c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)>>2]=c[Ki>>2];Zh=(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)+16|0;c[Zh>>2]=c[Fi>>2];c[Zh+4>>2]=c[Fi+4>>2];c[Zh+8>>2]=c[Fi+8>>2];}c[Ii>>2]=(c[Ii>>2]|0)+-1;}c[Ci>>2]=(c[Ci>>2]|0)+1;}}}}while(0);c[ei>>2]=(c[ei>>2]|0)+1;}if((dj|0)==481){dj=0;c[gi>>2]=c[Di>>2];c[hi>>2]=c[(c[ci>>2]|0)+((c[Bi>>2]|0)-1<<3)>>2];c[fi>>2]=(c[ei>>2]|0)+1;break;}else if((dj|0)==504){dj=0;c[gi>>2]=c[(c[bi>>2]|0)+((c[fi>>2]|0)*28|0)+8>>2];c[hi>>2]=c[(c[bi>>2]|0)+((c[fi>>2]|0)*28|0)+4>>2];c[ei>>2]=(c[fi>>2]|0)-(c[gi>>2]|0);break;}}else{c[gi>>2]=c[mi>>2];c[hi>>2]=c[(c[ci>>2]|0)+((c[ki>>2]|0)-1<<3)>>2];c[ei>>2]=0;c[fi>>2]=1;}}while(0);c[Li>>2]=c[gi>>2];c[Mi>>2]=c[hi>>2];c[Ni>>2]=c[ei>>2];while(1){c[Oi>>2]=c[(c[bi>>2]|0)+((c[Ni>>2]|0)*28|0)+8>>2];c[Pi>>2]=c[(c[bi>>2]|0)+((c[Ni>>2]|0)*28|0)+4>>2];c[(c[bi>>2]|0)+((c[Ni>>2]|0)*28|0)+8>>2]=c[Li>>2];c[(c[bi>>2]|0)+((c[Ni>>2]|0)*28|0)+4>>2]=c[Mi>>2];c[Li>>2]=c[Oi>>2];c[Mi>>2]=c[Pi>>2];if((c[Oi>>2]|0)>>>0>(c[Ni>>2]|0)>>>0)break;c[Ni>>2]=(c[Ni>>2]|0)-(c[Oi>>2]|0);}c[Qi>>2]=0;while(1){if((c[Qi>>2]|0)>>>0>=(c[fi>>2]|0)>>>0)break;c[Ri>>2]=(c[Vh>>2]|0)-(c[Wh>>2]|0);c[Si>>2]=c[(c[bi>>2]|0)+((c[Qi>>2]|0)*28|0)+8>>2];c[Ti>>2]=c[(c[bi>>2]|0)+((c[Qi>>2]|0)*28|0)+4>>2];if((c[Si>>2]|0)==1){c[Vh>>2]=(c[Vh>>2]|0)+1;c[Qi>>2]=(c[Qi>>2]|0)+1;continue;}c[Qi>>2]=(c[Qi>>2]|0)+(c[Si>>2]|0);c[Vh>>2]=(c[Vh>>2]|0)+(c[Si>>2]|0);if((c[Ti>>2]|0)>>>0<3){c[Ui>>2]=(c[Ti>>2]|0)+((c[Ri>>2]|0)==0&1);if(c[Ui>>2]|0){Zh=c[Nh>>2]|0;if((c[Ui>>2]|0)==3)Ej=(c[Zh>>2]|0)-1|0;else Ej=c[Zh+(c[Ui>>2]<<2)>>2]|0;c[Vi>>2]=Ej;if((c[Ui>>2]|0)>>>0>=2)c[(c[Nh>>2]|0)+8>>2]=c[(c[Nh>>2]|0)+4>>2];c[(c[Nh>>2]|0)+4>>2]=c[c[Nh>>2]>>2];c[c[Nh>>2]>>2]=c[Vi>>2];}}else{c[(c[Nh>>2]|0)+8>>2]=c[(c[Nh>>2]|0)+4>>2];c[(c[Nh>>2]|0)+4>>2]=c[c[Nh>>2]>>2];c[c[Nh>>2]>>2]=(c[Ti>>2]|0)-2;}vm(c[Th>>2]|0,c[Ri>>2]|0,c[Wh>>2]|0,c[Ti>>2]|0,c[Si>>2]|0);wm(c[Mh>>2]|0,c[Ri>>2]|0,c[Wh>>2]|0,c[Ti>>2]|0,(c[Si>>2]|0)-3|0);c[Wh>>2]=c[Vh>>2];}xm(c[Th>>2]|0);}l=i;return(c[Xh>>2]|0)-(c[Wh>>2]|0)|0;}function cm(a,b,e,f,g,h){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,yc=0,zc=0,Ac=0,Bc=0,Cc=0,Dc=0,Ec=0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0,Kc=0,Lc=0,Mc=0,Nc=0,Oc=0,Pc=0,Qc=0,Rc=0,Sc=0,Tc=0,Uc=0,Vc=0,Wc=0,Xc=0,Yc=0,Zc=0,_c=0,$c=0,ad=0,bd=0,cd=0,dd=0,ed=0,fd=0,gd=0,hd=0,id=0,jd=0,kd=0,ld=0,md=0,nd=0,od=0,pd=0,qd=0,rd=0,sd=0,td=0,ud=0,vd=0,wd=0,xd=0,yd=0,zd=0,Ad=0,Bd=0,Cd=0,Dd=0,Ed=0,Fd=0,Gd=0,Hd=0,Id=0,Jd=0,Kd=0,Ld=0,Md=0,Nd=0,Od=0,Pd=0,Qd=0,Rd=0,Sd=0,Td=0,Ud=0,Vd=0,Wd=0,Xd=0,Yd=0,Zd=0,_d=0,$d=0,ae=0,be=0,ce=0,de=0,ee=0,fe=0,ge=0,he=0,ie=0,je=0,ke=0,le=0,me=0,ne=0,oe=0,pe=0,qe=0,re=0,se=0,te=0,ue=0,ve=0,we=0,xe=0,ye=0,ze=0,Ae=0,Be=0,Ce=0,De=0,Ee=0,Fe=0,Ge=0,He=0,Ie=0,Je=0,Ke=0,Le=0,Me=0,Ne=0,Oe=0,Pe=0,Qe=0,Re=0,Se=0,Te=0,Ue=0,Ve=0,We=0,Xe=0,Ye=0,Ze=0,_e=0,$e=0,af=0,bf=0,cf=0,df=0,ef=0,ff=0,gf=0,hf=0,jf=0,kf=0,lf=0,mf=0,nf=0,of=0,pf=0,qf=0,rf=0,sf=0,tf=0,uf=0,vf=0,wf=0,xf=0,yf=0,zf=0,Af=0,Bf=0,Cf=0,Df=0,Ef=0,Ff=0,Gf=0,Hf=0,If=0,Jf=0,Kf=0,Lf=0,Mf=0,Nf=0,Of=0,Pf=0,Qf=0,Rf=0,Sf=0,Tf=0,Uf=0,Vf=0,Wf=0,Xf=0,Yf=0,Zf=0,_f=0,$f=0,ag=0,bg=0,cg=0,dg=0,eg=0,fg=0,gg=0,hg=0,ig=0,jg=0,kg=0,lg=0,mg=0,ng=0,og=0,pg=0,qg=0,rg=0,sg=0,tg=0,ug=0,vg=0,wg=0,xg=0,yg=0,zg=0,Ag=0,Bg=0,Cg=0,Dg=0,Eg=0,Fg=0,Gg=0,Hg=0,Ig=0,Jg=0,Kg=0,Lg=0,Mg=0,Ng=0,Og=0,Pg=0,Qg=0,Rg=0,Sg=0,Tg=0,Ug=0,Vg=0,Wg=0,Xg=0,Yg=0,Zg=0,_g=0,$g=0,ah=0,bh=0,ch=0,dh=0,eh=0,fh=0,gh=0,hh=0,ih=0,jh=0,kh=0,lh=0,mh=0,nh=0,oh=0,ph=0,qh=0,rh=0,sh=0,th=0,uh=0,vh=0,wh=0,xh=0,yh=0,zh=0,Ah=0,Bh=0,Ch=0,Dh=0,Eh=0,Fh=0,Gh=0,Hh=0,Ih=0,Jh=0,Kh=0,Lh=0,Mh=0,Nh=0,Oh=0,Ph=0,Qh=0,Rh=0,Sh=0,Th=0,Uh=0,Vh=0,Wh=0,Xh=0,Yh=0,Zh=0,_h=0,$h=0,ai=0,bi=0,ci=0,di=0,ei=0,fi=0,gi=0,hi=0,ii=0,ji=0,ki=0,li=0,mi=0,ni=0,oi=0,pi=0,qi=0,ri=0,si=0,ti=0,ui=0,vi=0,wi=0,xi=0,yi=0,zi=0,Ai=0,Bi=0,Ci=0,Di=0,Ei=0,Fi=0,Gi=0,Hi=0,Ii=0,Ji=0,Ki=0,Li=0,Mi=0,Ni=0,Oi=0,Pi=0,Qi=0,Ri=0,Si=0,Ti=0,Ui=0,Vi=0,Wi=0,Xi=0,Yi=0,Zi=0,_i=0,$i=0,aj=0,bj=0,cj=0,dj=0,ej=0,fj=0,gj=0,hj=0,ij=0,jj=0,kj=0,lj=0,mj=0,nj=0,oj=0,pj=0,qj=0,rj=0,sj=0,tj=0,uj=0,vj=0,wj=0,xj=0,yj=0,zj=0,Aj=0,Bj=0,Cj=0,Dj=0,Ej=0;i=l;l=l+2144|0;j=i+2136|0;k=i+2132|0;m=i+2128|0;n=i+2124|0;o=i+2120|0;p=i+2116|0;q=i+2112|0;r=i+2108|0;s=i+2104|0;t=i+2100|0;u=i+2096|0;v=i+2092|0;w=i+2088|0;x=i+2084|0;y=i+2080|0;z=i+2076|0;A=i+2072|0;B=i+2068|0;C=i+2064|0;D=i+2060|0;E=i+2056|0;F=i+2052|0;G=i+2048|0;H=i+2044|0;I=i+2040|0;J=i+2036|0;K=i+2032|0;L=i+2028|0;M=i+2024|0;N=i+2020|0;O=i+2016|0;P=i+2012|0;Q=i+2008|0;R=i+2004|0;S=i+2e3|0;T=i+1996|0;U=i+1992|0;V=i+1988|0;W=i+1984|0;X=i+1980|0;Y=i+1976|0;Z=i+1972|0;_=i+1968|0;$=i+1964|0;aa=i+1960|0;ba=i+1956|0;ca=i+1952|0;da=i+1948|0;ea=i+1944|0;fa=i+1940|0;ga=i+1936|0;ha=i+1932|0;ia=i+1928|0;ja=i+1924|0;ka=i+1920|0;la=i+1916|0;ma=i+1912|0;na=i+1908|0;oa=i+1904|0;pa=i+1900|0;qa=i+1896|0;ra=i+1892|0;sa=i+1888|0;ta=i+1884|0;ua=i+1880|0;va=i+1876|0;wa=i+1872|0;xa=i+1868|0;ya=i+1864|0;za=i+1860|0;Aa=i+1856|0;Ba=i+1852|0;Ca=i+1848|0;Da=i+1844|0;Ea=i+1840|0;Fa=i+1836|0;Ga=i+1832|0;Ha=i+1828|0;Ia=i+1824|0;Ja=i+1820|0;Ka=i+1816|0;La=i+1812|0;Ma=i+1808|0;Na=i+1804|0;Oa=i+1800|0;Pa=i+1796|0;Qa=i+1792|0;Ra=i+1788|0;Sa=i+1784|0;Ta=i+1780|0;Ua=i+1776|0;Va=i+1772|0;Wa=i+1768|0;Xa=i+1764|0;Ya=i+1760|0;Za=i+1756|0;_a=i+1752|0;$a=i+1748|0;ab=i+1744|0;bb=i+1740|0;cb=i+1736|0;db=i+1732|0;eb=i+1728|0;fb=i+1724|0;gb=i+1720|0;hb=i+1716|0;ib=i+1712|0;jb=i+1708|0;kb=i+1704|0;lb=i+1700|0;mb=i+1696|0;nb=i+1692|0;ob=i+1688|0;pb=i+1684|0;qb=i+1680|0;rb=i+1676|0;sb=i+1672|0;tb=i+1668|0;ub=i+1664|0;vb=i+1660|0;wb=i+1656|0;xb=i+1652|0;yb=i+1648|0;zb=i+1644|0;Ab=i+1640|0;Bb=i+1636|0;Cb=i+1632|0;Db=i+1628|0;Eb=i+1624|0;Fb=i+1620|0;Gb=i+1616|0;Hb=i+1612|0;Ib=i+1608|0;Jb=i+1604|0;Kb=i+1600|0;Lb=i+1596|0;Mb=i+1592|0;Nb=i+1588|0;Ob=i+1584|0;Pb=i+1580|0;Qb=i+1576|0;Rb=i+1572|0;Sb=i+1568|0;Tb=i+1564|0;Ub=i+1560|0;Vb=i+1556|0;Wb=i+1552|0;Xb=i+1548|0;Yb=i+1544|0;Zb=i+1540|0;_b=i+1536|0;$b=i+1532|0;ac=i+1528|0;bc=i+1524|0;cc=i+1520|0;dc=i+1516|0;ec=i+1512|0;fc=i+1508|0;gc=i+1504|0;hc=i+1500|0;ic=i+1496|0;jc=i+1492|0;kc=i+1488|0;lc=i+1484|0;mc=i+1480|0;nc=i+1476|0;oc=i+1472|0;pc=i+1468|0;qc=i+1464|0;rc=i+1460|0;sc=i+1456|0;tc=i+1452|0;uc=i+1448|0;vc=i+1444|0;wc=i+1440|0;xc=i+1436|0;yc=i+1432|0;zc=i+1428|0;Ac=i+1424|0;Bc=i+1420|0;Cc=i+1416|0;Dc=i+1412|0;Ec=i+1408|0;Fc=i+1404|0;Gc=i+1400|0;Hc=i+1396|0;Ic=i+1392|0;Jc=i+1388|0;Kc=i+1384|0;Lc=i+1380|0;Mc=i+1376|0;Nc=i+1372|0;Oc=i+1368|0;Pc=i+1364|0;Qc=i+1360|0;Rc=i+1356|0;Sc=i+1352|0;Tc=i+1348|0;Uc=i+1344|0;Vc=i+1340|0;Wc=i+1336|0;Xc=i+1332|0;Yc=i+1328|0;Zc=i+1324|0;_c=i+1320|0;$c=i+1316|0;ad=i+1312|0;bd=i+1308|0;cd=i+1304|0;dd=i+1300|0;ed=i+1296|0;fd=i+1292|0;gd=i+1288|0;hd=i+1284|0;id=i+1280|0;jd=i+1276|0;kd=i+1272|0;ld=i+1268|0;md=i+1264|0;nd=i+1260|0;od=i+1256|0;pd=i+1252|0;qd=i+1248|0;rd=i+1244|0;sd=i+1240|0;td=i+1236|0;ud=i+1232|0;vd=i+1228|0;wd=i+1224|0;xd=i+1220|0;yd=i+1216|0;zd=i+1212|0;Ad=i+1208|0;Bd=i+1204|0;Cd=i+1200|0;Dd=i+1196|0;Ed=i+1192|0;Fd=i+1188|0;Gd=i+1184|0;Hd=i+1180|0;Id=i+1176|0;Jd=i+1172|0;Kd=i+1168|0;Ld=i+1164|0;Md=i+1160|0;Nd=i+1156|0;Od=i+1152|0;Pd=i+1148|0;Qd=i+1144|0;Rd=i+1140|0;Sd=i+1136|0;Td=i+1132|0;Ud=i+1128|0;Vd=i+1124|0;Wd=i+1120|0;Xd=i+1116|0;Yd=i+1112|0;Zd=i+1108|0;_d=i+1104|0;$d=i+1100|0;ae=i+1096|0;be=i+1092|0;ce=i+1088|0;de=i+1084|0;ee=i+1080|0;fe=i+1076|0;ge=i+1072|0;he=i+1068|0;ie=i+1064|0;je=i+1060|0;ke=i+1056|0;le=i+1052|0;me=i+1048|0;ne=i+1044|0;oe=i+1040|0;pe=i+1036|0;qe=i+1032|0;re=i+1028|0;se=i+1024|0;te=i+1020|0;ue=i+1016|0;ve=i+1012|0;we=i+1008|0;xe=i+1004|0;ye=i+1e3|0;ze=i+996|0;Ae=i+992|0;Be=i+988|0;Ce=i+984|0;De=i+980|0;Ee=i+976|0;Fe=i+972|0;Ge=i+968|0;He=i+964|0;Ie=i+960|0;Je=i+956|0;Ke=i+952|0;Le=i+948|0;Me=i+944|0;Ne=i+940|0;Oe=i+936|0;Pe=i+932|0;Qe=i+928|0;Re=i+924|0;Se=i+920|0;Te=i+916|0;Ue=i+912|0;Ve=i+908|0;We=i+904|0;Xe=i+900|0;Ye=i+896|0;Ze=i+892|0;_e=i+888|0;$e=i+884|0;af=i+880|0;bf=i+876|0;cf=i+872|0;df=i+868|0;ef=i+864|0;ff=i+860|0;gf=i+856|0;hf=i+852|0;jf=i+848|0;kf=i+844|0;lf=i+840|0;mf=i+836|0;nf=i+832|0;of=i+828|0;pf=i+824|0;qf=i+820|0;rf=i+816|0;sf=i+812|0;tf=i+808|0;uf=i+804|0;vf=i+800|0;wf=i+796|0;xf=i+792|0;yf=i+788|0;zf=i+784|0;Af=i+780|0;Bf=i+776|0;Cf=i+772|0;Df=i+768|0;Ef=i+764|0;Ff=i+760|0;Gf=i+756|0;Hf=i+752|0;If=i+748|0;Jf=i+744|0;Kf=i+740|0;Lf=i+736|0;Mf=i+732|0;Nf=i+728|0;Of=i+724|0;Pf=i+720|0;Qf=i+716|0;Rf=i+712|0;Sf=i+708|0;Tf=i+704|0;Uf=i+700|0;Vf=i+696|0;Wf=i+692|0;Xf=i+688|0;Yf=i+684|0;Zf=i+680|0;_f=i+676|0;$f=i+672|0;ag=i+668|0;bg=i+664|0;cg=i+660|0;dg=i+656|0;eg=i+652|0;fg=i+648|0;gg=i+644|0;hg=i+640|0;ig=i+636|0;jg=i+632|0;kg=i+628|0;lg=i+624|0;mg=i+620|0;ng=i+616|0;og=i+612|0;pg=i+608|0;qg=i+604|0;rg=i+600|0;sg=i+596|0;tg=i+592|0;ug=i+588|0;vg=i+584|0;wg=i+580|0;xg=i+576|0;yg=i+572|0;zg=i+568|0;Ag=i+564|0;Bg=i+560|0;Cg=i+556|0;Dg=i+552|0;Eg=i+548|0;Fg=i+544|0;Gg=i+540|0;Hg=i+536|0;Ig=i+532|0;Jg=i+528|0;Kg=i+524|0;Lg=i+520|0;Mg=i+516|0;Ng=i+512|0;Og=i+508|0;Pg=i+504|0;Qg=i+500|0;Rg=i+496|0;Sg=i+492|0;Tg=i+488|0;Ug=i+484|0;Vg=i+480|0;Wg=i+476|0;Xg=i+472|0;Yg=i+468|0;Zg=i+464|0;_g=i+460|0;$g=i+456|0;ah=i+452|0;bh=i+448|0;ch=i+444|0;dh=i+440|0;eh=i+436|0;fh=i+432|0;gh=i+428|0;hh=i+424|0;ih=i+420|0;jh=i+416|0;kh=i+412|0;lh=i+408|0;mh=i+404|0;nh=i+400|0;oh=i+396|0;ph=i+392|0;qh=i+388|0;rh=i+384|0;sh=i+380|0;th=i+376|0;uh=i+372|0;vh=i+368|0;wh=i+364|0;xh=i+360|0;yh=i+356|0;zh=i+352|0;Ah=i+348|0;Bh=i+344|0;Ch=i+340|0;Dh=i+336|0;Eh=i+332|0;Fh=i+328|0;Gh=i+324|0;Hh=i+320|0;Ih=i+316|0;Jh=i+312|0;Kh=i+308|0;Lh=i+304|0;Mh=i+300|0;Nh=i+296|0;Oh=i+292|0;Ph=i+288|0;Qh=i+284|0;Rh=i+280|0;Sh=i+276|0;Th=i+272|0;Uh=i+268|0;Vh=i+264|0;Wh=i+260|0;Xh=i+256|0;Yh=i+252|0;Zh=i+248|0;_h=i+244|0;$h=i+240|0;ai=i+236|0;bi=i+232|0;ci=i+228|0;di=i+216|0;ei=i+212|0;fi=i+208|0;gi=i+204|0;hi=i+200|0;ii=i+196|0;ji=i+192|0;ki=i+188|0;li=i+184|0;mi=i+180|0;ni=i+176|0;oi=i+172|0;pi=i+168|0;qi=i+164|0;ri=i+160|0;si=i+148|0;ti=i+144|0;ui=i+140|0;vi=i+136|0;wi=i+132|0;xi=i+128|0;yi=i+124|0;zi=i+120|0;Ai=i+116|0;Bi=i+112|0;Ci=i+108|0;Di=i+104|0;Ei=i+100|0;Fi=i+88|0;Gi=i+84|0;Hi=i+80|0;Ii=i+76|0;Ji=i+72|0;Ki=i+68|0;Li=i+64|0;Mi=i+60|0;Ni=i+56|0;Oi=i+52|0;Pi=i+48|0;Qi=i+44|0;Ri=i+40|0;Si=i+36|0;Ti=i+32|0;Ui=i+28|0;Vi=i+24|0;Wi=i+20|0;Xi=i+16|0;Yi=i+12|0;Zi=i+8|0;_i=i+4|0;$i=i;c[Wi>>2]=a;c[Xi>>2]=b;c[Yi>>2]=e;c[Zi>>2]=f;c[_i>>2]=g;c[$i>>2]=h;h=c[Xi>>2]|0;Xi=c[Yi>>2]|0;Yi=c[Zi>>2]|0;Zi=c[_i>>2]|0;_i=c[$i>>2]|0;c[Lh>>2]=c[Wi>>2];c[Mh>>2]=h;c[Nh>>2]=Xi;c[Oh>>2]=Yi;c[Ph>>2]=Zi;c[Qh>>2]=_i;c[Rh>>2]=2;c[Sh>>2]=0;c[Th>>2]=(c[Lh>>2]|0)+48;c[Uh>>2]=c[Ph>>2];c[Vh>>2]=c[Uh>>2];c[Wh>>2]=c[Uh>>2];c[Xh>>2]=(c[Uh>>2]|0)+(c[Qh>>2]|0);c[Yh>>2]=(c[Xh>>2]|0)+-8;c[Zh>>2]=c[(c[Lh>>2]|0)+4>>2];c[_h>>2]=(c[Zh>>2]|0)+(c[(c[Lh>>2]|0)+12>>2]|0);if((c[(c[Oh>>2]|0)+20>>2]|0)>>>0<4095)aj=c[(c[Oh>>2]|0)+20>>2]|0;else aj=4095;c[$h>>2]=aj;c[ai>>2]=(c[(c[Oh>>2]|0)+16>>2]|0)==3?3:4;c[bi>>2]=c[(c[Th>>2]|0)+20>>2];c[ci>>2]=c[(c[Th>>2]|0)+16>>2];c[(c[Lh>>2]|0)+28>>2]=c[(c[Lh>>2]|0)+24>>2];lm(c[Th>>2]|0,c[Ph>>2]|0,c[Qh>>2]|0);c[Vh>>2]=(c[Vh>>2]|0)+((c[Vh>>2]|0)==(c[_h>>2]|0)&1);c[di>>2]=0;c[di+4>>2]=0;c[di+8>>2]=0;while(1){if((c[Vh>>2]|0)>>>0>=(c[Yh>>2]|0)>>>0)break;c[fi>>2]=0;c[ii>>2]=(c[Vh>>2]|0)-(c[Wh>>2]|0);c[ji>>2]=((c[ii>>2]|0)!=0^1)&1;_h=c[Oh>>2]|0;Qh=c[Vh>>2]|0;Ph=c[Xh>>2]|0;aj=c[Sh>>2]|0;Zh=c[Nh>>2]|0;Uh=c[ji>>2]|0;_i=c[ci>>2]|0;Zi=c[ai>>2]|0;c[Bh>>2]=c[Lh>>2];c[Ch>>2]=_h;c[Dh>>2]=Qh;c[Eh>>2]=Ph;c[Fh>>2]=aj;c[Gh>>2]=Zh;c[Hh>>2]=Uh;c[Ih>>2]=_i;c[Jh>>2]=Zi;c[Kh>>2]=c[(c[Ch>>2]|0)+16>>2];a:do{if((c[Dh>>2]|0)>>>0<((c[(c[Bh>>2]|0)+4>>2]|0)+(c[(c[Bh>>2]|0)+24>>2]|0)|0)>>>0)c[Ah>>2]=0;else{Zi=c[Ch>>2]|0;_i=c[Dh>>2]|0;Uh=c[Eh>>2]|0;Zh=c[Kh>>2]|0;aj=c[Fh>>2]|0;c[rh>>2]=c[Bh>>2];c[sh>>2]=Zi;c[th>>2]=_i;c[uh>>2]=Uh;c[vh>>2]=Zh;c[wh>>2]=aj;c[xh>>2]=c[(c[rh>>2]|0)+4>>2];c[yh>>2]=(c[th>>2]|0)-(c[xh>>2]|0);c[zh>>2]=c[(c[rh>>2]|0)+24>>2];while(1){if((c[zh>>2]|0)>>>0>=(c[yh>>2]|0)>>>0)break;aj=Rj(c[rh>>2]|0,c[sh>>2]|0,(c[xh>>2]|0)+(c[zh>>2]|0)|0,c[uh>>2]|0,c[vh>>2]|0,c[wh>>2]|0)|0;c[zh>>2]=(c[zh>>2]|0)+aj;}c[(c[rh>>2]|0)+24>>2]=c[yh>>2];switch(c[Kh>>2]|0){case 3:{aj=c[Ch>>2]|0;Zh=c[Dh>>2]|0;Uh=c[Eh>>2]|0;_i=c[Fh>>2]|0;Zi=c[Gh>>2]|0;Ph=c[Hh>>2]|0;Qh=c[Ih>>2]|0;_h=c[Jh>>2]|0;c[wg>>2]=c[Bh>>2];c[xg>>2]=aj;c[yg>>2]=Zh;c[zg>>2]=Uh;c[Ag>>2]=_i;c[Bg>>2]=Zi;c[Cg>>2]=Ph;c[Dg>>2]=Qh;c[Eg>>2]=_h;c[Fg>>2]=3;if((c[(c[xg>>2]|0)+20>>2]|0)>>>0<4095)bj=c[(c[xg>>2]|0)+20>>2]|0;else bj=4095;c[Gg>>2]=bj;c[Hg>>2]=c[(c[wg>>2]|0)+4>>2];c[Ig>>2]=(c[yg>>2]|0)-(c[Hg>>2]|0);c[Jg>>2]=c[(c[xg>>2]|0)+8>>2];c[Kg>>2]=(c[Fg>>2]|0)==3?3:4;c[Lg>>2]=c[(c[wg>>2]|0)+36>>2];c[Mg>>2]=Sj(c[yg>>2]|0,c[Jg>>2]|0,c[Fg>>2]|0)|0;c[Ng>>2]=c[(c[Lg>>2]|0)+(c[Mg>>2]<<2)>>2];c[Og>>2]=c[(c[wg>>2]|0)+44>>2];c[Pg>>2]=(c[(c[xg>>2]|0)+4>>2]|0)-1;c[Qg>>2]=(1<<c[Pg>>2])-1;c[Rg>>2]=0;c[Sg>>2]=0;c[Tg>>2]=c[(c[wg>>2]|0)+8>>2];c[Ug>>2]=c[(c[wg>>2]|0)+12>>2];c[Vg>>2]=(c[Tg>>2]|0)+(c[Ug>>2]|0);c[Wg>>2]=(c[Hg>>2]|0)+(c[Ug>>2]|0);if((c[Qg>>2]|0)>>>0>=(c[Ig>>2]|0)>>>0)cj=0;else cj=(c[Ig>>2]|0)-(c[Qg>>2]|0)|0;c[Xg>>2]=cj;c[Yg>>2]=c[(c[wg>>2]|0)+16>>2];c[Zg>>2]=(c[Og>>2]|0)+((c[Ig>>2]&c[Qg>>2])<<1<<2);c[_g>>2]=(c[Og>>2]|0)+((c[Ig>>2]&c[Qg>>2])<<1<<2)+4;c[$g>>2]=(c[Ig>>2]|0)+8+1;c[bh>>2]=0;c[ch>>2]=1<<c[(c[xg>>2]|0)+12>>2];c[dh>>2]=(c[Eg>>2]|0)-1;c[eh>>2]=3+(c[Cg>>2]|0);c[fh>>2]=c[Cg>>2];while(1){if((c[fh>>2]|0)>>>0>=(c[eh>>2]|0)>>>0){dj=31;break;}_h=c[Bg>>2]|0;if((c[fh>>2]|0)==3)ej=(c[_h>>2]|0)-1|0;else ej=c[_h+(c[fh>>2]<<2)>>2]|0;c[gh>>2]=ej;c[hh>>2]=(c[Ig>>2]|0)-(c[gh>>2]|0);c[ih>>2]=0;if(((c[gh>>2]|0)-1|0)>>>0<((c[Ig>>2]|0)-(c[Ug>>2]|0)|0)>>>0){_h=mm(c[yg>>2]|0,c[Kg>>2]|0)|0;if((_h|0)==(mm((c[yg>>2]|0)+(0-(c[gh>>2]|0))|0,c[Kg>>2]|0)|0)){_h=Tj((c[yg>>2]|0)+(c[Kg>>2]|0)|0,(c[yg>>2]|0)+(c[Kg>>2]|0)+(0-(c[gh>>2]|0))|0,c[zg>>2]|0)|0;c[ih>>2]=_h+(c[Kg>>2]|0);}}else{c[jh>>2]=(c[Tg>>2]|0)+(c[hh>>2]|0);if((c[Ag>>2]|0?(((c[Ug>>2]|0)-1-(c[hh>>2]|0)|0)>>>0>=3?((c[gh>>2]|0)-1|0)>>>0<((c[Ig>>2]|0)-(c[Yg>>2]|0)|0)>>>0:0)|0:0)?(_h=mm(c[yg>>2]|0,c[Kg>>2]|0)|0,(_h|0)==(mm(c[jh>>2]|0,c[Kg>>2]|0)|0)):0){_h=Uj((c[yg>>2]|0)+(c[Kg>>2]|0)|0,(c[jh>>2]|0)+(c[Kg>>2]|0)|0,c[zg>>2]|0,c[Vg>>2]|0,c[Wg>>2]|0)|0;c[ih>>2]=_h+(c[Kg>>2]|0);}}if((c[ih>>2]|0)>>>0>(c[dh>>2]|0)>>>0?(c[dh>>2]=c[ih>>2],c[(c[Dg>>2]|0)+(c[bh>>2]<<3)>>2]=(c[fh>>2]|0)-(c[Cg>>2]|0),c[(c[Dg>>2]|0)+(c[bh>>2]<<3)+4>>2]=c[ih>>2],c[bh>>2]=(c[bh>>2]|0)+1,((c[ih>>2]|0)>>>0>(c[Gg>>2]|0)>>>0?1:((c[yg>>2]|0)+(c[ih>>2]|0)|0)==(c[zg>>2]|0))|0):0){dj=29;break;}c[fh>>2]=(c[fh>>2]|0)+1;}do{if((dj|0)==29){dj=0;c[vg>>2]=c[bh>>2];}else if((dj|0)==31){dj=0;if(((c[Fg>>2]|0)==3?(c[dh>>2]|0)>>>0<(c[Fg>>2]|0)>>>0:0)?(c[kh>>2]=nm(c[wg>>2]|0,c[yg>>2]|0)|0,((c[kh>>2]|0)>>>0>(c[Yg>>2]|0)>>>0?((c[Ig>>2]|0)-(c[kh>>2]|0)|0)>>>0<262144:0)|0):0){if(c[Ag>>2]|0?(c[kh>>2]|0)>>>0<(c[Ug>>2]|0)>>>0:0){c[nh>>2]=(c[Tg>>2]|0)+(c[kh>>2]|0);c[lh>>2]=Uj(c[yg>>2]|0,c[nh>>2]|0,c[zg>>2]|0,c[Vg>>2]|0,c[Wg>>2]|0)|0;}else{c[mh>>2]=(c[Hg>>2]|0)+(c[kh>>2]|0);c[lh>>2]=Tj(c[yg>>2]|0,c[mh>>2]|0,c[zg>>2]|0)|0;}if((c[lh>>2]|0)>>>0>=(c[Fg>>2]|0)>>>0?(c[dh>>2]=c[lh>>2],c[c[Dg>>2]>>2]=(c[Ig>>2]|0)-(c[kh>>2]|0)+2,c[(c[Dg>>2]|0)+4>>2]=c[lh>>2],c[bh>>2]=1,((c[lh>>2]|0)>>>0>(c[Gg>>2]|0)>>>0?1:((c[yg>>2]|0)+(c[lh>>2]|0)|0)==(c[zg>>2]|0))|0):0){c[(c[wg>>2]|0)+24>>2]=(c[Ig>>2]|0)+1;c[vg>>2]=1;break;}}c[(c[Lg>>2]|0)+(c[Mg>>2]<<2)>>2]=c[Ig>>2];while(1){_h=c[ch>>2]|0;c[ch>>2]=_h+-1;if(!_h)break;if((c[Ng>>2]|0)>>>0<=(c[Yg>>2]|0)>>>0)break;c[oh>>2]=(c[Og>>2]|0)+((c[Ng>>2]&c[Qg>>2])<<1<<2);c[ph>>2]=(c[Rg>>2]|0)>>>0<(c[Sg>>2]|0)>>>0?c[Rg>>2]|0:c[Sg>>2]|0;if(c[Ag>>2]|0?((c[Ng>>2]|0)+(c[ph>>2]|0)|0)>>>0<(c[Ug>>2]|0)>>>0:0){c[qh>>2]=(c[Tg>>2]|0)+(c[Ng>>2]|0);_h=Uj((c[yg>>2]|0)+(c[ph>>2]|0)|0,(c[qh>>2]|0)+(c[ph>>2]|0)|0,c[zg>>2]|0,c[Vg>>2]|0,c[Wg>>2]|0)|0;c[ph>>2]=(c[ph>>2]|0)+_h;if(((c[Ng>>2]|0)+(c[ph>>2]|0)|0)>>>0>=(c[Ug>>2]|0)>>>0)c[qh>>2]=(c[Hg>>2]|0)+(c[Ng>>2]|0);}else{c[qh>>2]=(c[Hg>>2]|0)+(c[Ng>>2]|0);_h=Tj((c[yg>>2]|0)+(c[ph>>2]|0)|0,(c[qh>>2]|0)+(c[ph>>2]|0)|0,c[zg>>2]|0)|0;c[ph>>2]=(c[ph>>2]|0)+_h;}if((c[ph>>2]|0)>>>0>(c[dh>>2]|0)>>>0){if((c[ph>>2]|0)>>>0>((c[$g>>2]|0)-(c[Ng>>2]|0)|0)>>>0)c[$g>>2]=(c[Ng>>2]|0)+(c[ph>>2]|0);c[dh>>2]=c[ph>>2];c[(c[Dg>>2]|0)+(c[bh>>2]<<3)>>2]=(c[Ig>>2]|0)-(c[Ng>>2]|0)+2;c[(c[Dg>>2]|0)+(c[bh>>2]<<3)+4>>2]=c[ph>>2];c[bh>>2]=(c[bh>>2]|0)+1;if((c[ph>>2]|0)>>>0>4096)break;if(((c[yg>>2]|0)+(c[ph>>2]|0)|0)==(c[zg>>2]|0))break;}_h=c[Ng>>2]|0;if((d[(c[qh>>2]|0)+(c[ph>>2]|0)>>0]|0|0)<(d[(c[yg>>2]|0)+(c[ph>>2]|0)>>0]|0|0)){c[c[Zg>>2]>>2]=_h;c[Rg>>2]=c[ph>>2];if((c[Ng>>2]|0)>>>0<=(c[Xg>>2]|0)>>>0){dj=56;break;}c[Zg>>2]=(c[oh>>2]|0)+4;c[Ng>>2]=c[(c[oh>>2]|0)+4>>2];}else{c[c[_g>>2]>>2]=_h;c[Sg>>2]=c[ph>>2];if((c[Ng>>2]|0)>>>0<=(c[Xg>>2]|0)>>>0){dj=59;break;}c[_g>>2]=c[oh>>2];c[Ng>>2]=c[c[oh>>2]>>2];}}if((dj|0)==56){dj=0;c[Zg>>2]=ah;}else if((dj|0)==59){dj=0;c[_g>>2]=ah;}c[c[_g>>2]>>2]=0;c[c[Zg>>2]>>2]=0;c[(c[wg>>2]|0)+24>>2]=(c[$g>>2]|0)-8;c[vg>>2]=c[bh>>2];}}while(0);c[Ah>>2]=c[vg>>2];break a;break;}case 7:case 6:{_h=c[Ch>>2]|0;Qh=c[Dh>>2]|0;Ph=c[Eh>>2]|0;Zi=c[Fh>>2]|0;_i=c[Gh>>2]|0;Uh=c[Hh>>2]|0;Zh=c[Ih>>2]|0;aj=c[Jh>>2]|0;c[Hd>>2]=c[Bh>>2];c[Id>>2]=_h;c[Jd>>2]=Qh;c[Kd>>2]=Ph;c[Ld>>2]=Zi;c[Md>>2]=_i;c[Nd>>2]=Uh;c[Od>>2]=Zh;c[Pd>>2]=aj;c[Qd>>2]=6;if((c[(c[Id>>2]|0)+20>>2]|0)>>>0<4095)fj=c[(c[Id>>2]|0)+20>>2]|0;else fj=4095;c[Rd>>2]=fj;c[Sd>>2]=c[(c[Hd>>2]|0)+4>>2];c[Td>>2]=(c[Jd>>2]|0)-(c[Sd>>2]|0);c[Ud>>2]=c[(c[Id>>2]|0)+8>>2];c[Vd>>2]=(c[Qd>>2]|0)==3?3:4;c[Wd>>2]=c[(c[Hd>>2]|0)+36>>2];c[Xd>>2]=Sj(c[Jd>>2]|0,c[Ud>>2]|0,c[Qd>>2]|0)|0;c[Yd>>2]=c[(c[Wd>>2]|0)+(c[Xd>>2]<<2)>>2];c[Zd>>2]=c[(c[Hd>>2]|0)+44>>2];c[_d>>2]=(c[(c[Id>>2]|0)+4>>2]|0)-1;c[$d>>2]=(1<<c[_d>>2])-1;c[ae>>2]=0;c[be>>2]=0;c[ce>>2]=c[(c[Hd>>2]|0)+8>>2];c[de>>2]=c[(c[Hd>>2]|0)+12>>2];c[ee>>2]=(c[ce>>2]|0)+(c[de>>2]|0);c[fe>>2]=(c[Sd>>2]|0)+(c[de>>2]|0);if((c[$d>>2]|0)>>>0>=(c[Td>>2]|0)>>>0)gj=0;else gj=(c[Td>>2]|0)-(c[$d>>2]|0)|0;c[ge>>2]=gj;c[he>>2]=c[(c[Hd>>2]|0)+16>>2];c[ie>>2]=(c[Zd>>2]|0)+((c[Td>>2]&c[$d>>2])<<1<<2);c[je>>2]=(c[Zd>>2]|0)+((c[Td>>2]&c[$d>>2])<<1<<2)+4;c[ke>>2]=(c[Td>>2]|0)+8+1;c[me>>2]=0;c[ne>>2]=1<<c[(c[Id>>2]|0)+12>>2];c[oe>>2]=(c[Pd>>2]|0)-1;c[pe>>2]=3+(c[Nd>>2]|0);c[qe>>2]=c[Nd>>2];while(1){if((c[qe>>2]|0)>>>0>=(c[pe>>2]|0)>>>0){dj=190;break;}aj=c[Md>>2]|0;if((c[qe>>2]|0)==3)hj=(c[aj>>2]|0)-1|0;else hj=c[aj+(c[qe>>2]<<2)>>2]|0;c[re>>2]=hj;c[se>>2]=(c[Td>>2]|0)-(c[re>>2]|0);c[te>>2]=0;if(((c[re>>2]|0)-1|0)>>>0<((c[Td>>2]|0)-(c[de>>2]|0)|0)>>>0){aj=mm(c[Jd>>2]|0,c[Vd>>2]|0)|0;if((aj|0)==(mm((c[Jd>>2]|0)+(0-(c[re>>2]|0))|0,c[Vd>>2]|0)|0)){aj=Tj((c[Jd>>2]|0)+(c[Vd>>2]|0)|0,(c[Jd>>2]|0)+(c[Vd>>2]|0)+(0-(c[re>>2]|0))|0,c[Kd>>2]|0)|0;c[te>>2]=aj+(c[Vd>>2]|0);}}else{c[ue>>2]=(c[ce>>2]|0)+(c[se>>2]|0);if((c[Ld>>2]|0?(((c[de>>2]|0)-1-(c[se>>2]|0)|0)>>>0>=3?((c[re>>2]|0)-1|0)>>>0<((c[Td>>2]|0)-(c[he>>2]|0)|0)>>>0:0)|0:0)?(aj=mm(c[Jd>>2]|0,c[Vd>>2]|0)|0,(aj|0)==(mm(c[ue>>2]|0,c[Vd>>2]|0)|0)):0){aj=Uj((c[Jd>>2]|0)+(c[Vd>>2]|0)|0,(c[ue>>2]|0)+(c[Vd>>2]|0)|0,c[Kd>>2]|0,c[ee>>2]|0,c[fe>>2]|0)|0;c[te>>2]=aj+(c[Vd>>2]|0);}}if((c[te>>2]|0)>>>0>(c[oe>>2]|0)>>>0?(c[oe>>2]=c[te>>2],c[(c[Od>>2]|0)+(c[me>>2]<<3)>>2]=(c[qe>>2]|0)-(c[Nd>>2]|0),c[(c[Od>>2]|0)+(c[me>>2]<<3)+4>>2]=c[te>>2],c[me>>2]=(c[me>>2]|0)+1,((c[te>>2]|0)>>>0>(c[Rd>>2]|0)>>>0?1:((c[Jd>>2]|0)+(c[te>>2]|0)|0)==(c[Kd>>2]|0))|0):0){dj=188;break;}c[qe>>2]=(c[qe>>2]|0)+1;}do{if((dj|0)==188){dj=0;c[Gd>>2]=c[me>>2];}else if((dj|0)==190){dj=0;if(((c[Qd>>2]|0)==3?(c[oe>>2]|0)>>>0<(c[Qd>>2]|0)>>>0:0)?(c[ve>>2]=nm(c[Hd>>2]|0,c[Jd>>2]|0)|0,((c[ve>>2]|0)>>>0>(c[he>>2]|0)>>>0?((c[Td>>2]|0)-(c[ve>>2]|0)|0)>>>0<262144:0)|0):0){if(c[Ld>>2]|0?(c[ve>>2]|0)>>>0<(c[de>>2]|0)>>>0:0){c[ye>>2]=(c[ce>>2]|0)+(c[ve>>2]|0);c[we>>2]=Uj(c[Jd>>2]|0,c[ye>>2]|0,c[Kd>>2]|0,c[ee>>2]|0,c[fe>>2]|0)|0;}else{c[xe>>2]=(c[Sd>>2]|0)+(c[ve>>2]|0);c[we>>2]=Tj(c[Jd>>2]|0,c[xe>>2]|0,c[Kd>>2]|0)|0;}if((c[we>>2]|0)>>>0>=(c[Qd>>2]|0)>>>0?(c[oe>>2]=c[we>>2],c[c[Od>>2]>>2]=(c[Td>>2]|0)-(c[ve>>2]|0)+2,c[(c[Od>>2]|0)+4>>2]=c[we>>2],c[me>>2]=1,((c[we>>2]|0)>>>0>(c[Rd>>2]|0)>>>0?1:((c[Jd>>2]|0)+(c[we>>2]|0)|0)==(c[Kd>>2]|0))|0):0){c[(c[Hd>>2]|0)+24>>2]=(c[Td>>2]|0)+1;c[Gd>>2]=1;break;}}c[(c[Wd>>2]|0)+(c[Xd>>2]<<2)>>2]=c[Td>>2];while(1){aj=c[ne>>2]|0;c[ne>>2]=aj+-1;if(!aj)break;if((c[Yd>>2]|0)>>>0<=(c[he>>2]|0)>>>0)break;c[ze>>2]=(c[Zd>>2]|0)+((c[Yd>>2]&c[$d>>2])<<1<<2);c[Ae>>2]=(c[ae>>2]|0)>>>0<(c[be>>2]|0)>>>0?c[ae>>2]|0:c[be>>2]|0;if(c[Ld>>2]|0?((c[Yd>>2]|0)+(c[Ae>>2]|0)|0)>>>0<(c[de>>2]|0)>>>0:0){c[Be>>2]=(c[ce>>2]|0)+(c[Yd>>2]|0);aj=Uj((c[Jd>>2]|0)+(c[Ae>>2]|0)|0,(c[Be>>2]|0)+(c[Ae>>2]|0)|0,c[Kd>>2]|0,c[ee>>2]|0,c[fe>>2]|0)|0;c[Ae>>2]=(c[Ae>>2]|0)+aj;if(((c[Yd>>2]|0)+(c[Ae>>2]|0)|0)>>>0>=(c[de>>2]|0)>>>0)c[Be>>2]=(c[Sd>>2]|0)+(c[Yd>>2]|0);}else{c[Be>>2]=(c[Sd>>2]|0)+(c[Yd>>2]|0);aj=Tj((c[Jd>>2]|0)+(c[Ae>>2]|0)|0,(c[Be>>2]|0)+(c[Ae>>2]|0)|0,c[Kd>>2]|0)|0;c[Ae>>2]=(c[Ae>>2]|0)+aj;}if((c[Ae>>2]|0)>>>0>(c[oe>>2]|0)>>>0){if((c[Ae>>2]|0)>>>0>((c[ke>>2]|0)-(c[Yd>>2]|0)|0)>>>0)c[ke>>2]=(c[Yd>>2]|0)+(c[Ae>>2]|0);c[oe>>2]=c[Ae>>2];c[(c[Od>>2]|0)+(c[me>>2]<<3)>>2]=(c[Td>>2]|0)-(c[Yd>>2]|0)+2;c[(c[Od>>2]|0)+(c[me>>2]<<3)+4>>2]=c[Ae>>2];c[me>>2]=(c[me>>2]|0)+1;if((c[Ae>>2]|0)>>>0>4096)break;if(((c[Jd>>2]|0)+(c[Ae>>2]|0)|0)==(c[Kd>>2]|0))break;}aj=c[Yd>>2]|0;if((d[(c[Be>>2]|0)+(c[Ae>>2]|0)>>0]|0|0)<(d[(c[Jd>>2]|0)+(c[Ae>>2]|0)>>0]|0|0)){c[c[ie>>2]>>2]=aj;c[ae>>2]=c[Ae>>2];if((c[Yd>>2]|0)>>>0<=(c[ge>>2]|0)>>>0){dj=215;break;}c[ie>>2]=(c[ze>>2]|0)+4;c[Yd>>2]=c[(c[ze>>2]|0)+4>>2];}else{c[c[je>>2]>>2]=aj;c[be>>2]=c[Ae>>2];if((c[Yd>>2]|0)>>>0<=(c[ge>>2]|0)>>>0){dj=218;break;}c[je>>2]=c[ze>>2];c[Yd>>2]=c[c[ze>>2]>>2];}}if((dj|0)==215){dj=0;c[ie>>2]=le;}else if((dj|0)==218){dj=0;c[je>>2]=le;}c[c[je>>2]>>2]=0;c[c[ie>>2]>>2]=0;c[(c[Hd>>2]|0)+24>>2]=(c[ke>>2]|0)-8;c[Gd>>2]=c[me>>2];}}while(0);c[Ah>>2]=c[Gd>>2];break a;break;}case 5:{aj=c[Ch>>2]|0;Zh=c[Dh>>2]|0;Uh=c[Eh>>2]|0;_i=c[Fh>>2]|0;Zi=c[Gh>>2]|0;Ph=c[Hh>>2]|0;Qh=c[Ih>>2]|0;_h=c[Jh>>2]|0;c[De>>2]=c[Bh>>2];c[Ee>>2]=aj;c[Fe>>2]=Zh;c[Ge>>2]=Uh;c[He>>2]=_i;c[Ie>>2]=Zi;c[Je>>2]=Ph;c[Ke>>2]=Qh;c[Le>>2]=_h;c[Me>>2]=5;if((c[(c[Ee>>2]|0)+20>>2]|0)>>>0<4095)ij=c[(c[Ee>>2]|0)+20>>2]|0;else ij=4095;c[Ne>>2]=ij;c[Oe>>2]=c[(c[De>>2]|0)+4>>2];c[Pe>>2]=(c[Fe>>2]|0)-(c[Oe>>2]|0);c[Qe>>2]=c[(c[Ee>>2]|0)+8>>2];c[Re>>2]=(c[Me>>2]|0)==3?3:4;c[Se>>2]=c[(c[De>>2]|0)+36>>2];c[Te>>2]=Sj(c[Fe>>2]|0,c[Qe>>2]|0,c[Me>>2]|0)|0;c[Ue>>2]=c[(c[Se>>2]|0)+(c[Te>>2]<<2)>>2];c[Ve>>2]=c[(c[De>>2]|0)+44>>2];c[We>>2]=(c[(c[Ee>>2]|0)+4>>2]|0)-1;c[Xe>>2]=(1<<c[We>>2])-1;c[Ye>>2]=0;c[Ze>>2]=0;c[_e>>2]=c[(c[De>>2]|0)+8>>2];c[$e>>2]=c[(c[De>>2]|0)+12>>2];c[af>>2]=(c[_e>>2]|0)+(c[$e>>2]|0);c[bf>>2]=(c[Oe>>2]|0)+(c[$e>>2]|0);if((c[Xe>>2]|0)>>>0>=(c[Pe>>2]|0)>>>0)jj=0;else jj=(c[Pe>>2]|0)-(c[Xe>>2]|0)|0;c[cf>>2]=jj;c[df>>2]=c[(c[De>>2]|0)+16>>2];c[ef>>2]=(c[Ve>>2]|0)+((c[Pe>>2]&c[Xe>>2])<<1<<2);c[ff>>2]=(c[Ve>>2]|0)+((c[Pe>>2]&c[Xe>>2])<<1<<2)+4;c[gf>>2]=(c[Pe>>2]|0)+8+1;c[jf>>2]=0;c[kf>>2]=1<<c[(c[Ee>>2]|0)+12>>2];c[lf>>2]=(c[Le>>2]|0)-1;c[mf>>2]=3+(c[Je>>2]|0);c[nf>>2]=c[Je>>2];while(1){if((c[nf>>2]|0)>>>0>=(c[mf>>2]|0)>>>0){dj=137;break;}_h=c[Ie>>2]|0;if((c[nf>>2]|0)==3)kj=(c[_h>>2]|0)-1|0;else kj=c[_h+(c[nf>>2]<<2)>>2]|0;c[of>>2]=kj;c[pf>>2]=(c[Pe>>2]|0)-(c[of>>2]|0);c[qf>>2]=0;if(((c[of>>2]|0)-1|0)>>>0<((c[Pe>>2]|0)-(c[$e>>2]|0)|0)>>>0){_h=mm(c[Fe>>2]|0,c[Re>>2]|0)|0;if((_h|0)==(mm((c[Fe>>2]|0)+(0-(c[of>>2]|0))|0,c[Re>>2]|0)|0)){_h=Tj((c[Fe>>2]|0)+(c[Re>>2]|0)|0,(c[Fe>>2]|0)+(c[Re>>2]|0)+(0-(c[of>>2]|0))|0,c[Ge>>2]|0)|0;c[qf>>2]=_h+(c[Re>>2]|0);}}else{c[rf>>2]=(c[_e>>2]|0)+(c[pf>>2]|0);if((c[He>>2]|0?(((c[$e>>2]|0)-1-(c[pf>>2]|0)|0)>>>0>=3?((c[of>>2]|0)-1|0)>>>0<((c[Pe>>2]|0)-(c[df>>2]|0)|0)>>>0:0)|0:0)?(_h=mm(c[Fe>>2]|0,c[Re>>2]|0)|0,(_h|0)==(mm(c[rf>>2]|0,c[Re>>2]|0)|0)):0){_h=Uj((c[Fe>>2]|0)+(c[Re>>2]|0)|0,(c[rf>>2]|0)+(c[Re>>2]|0)|0,c[Ge>>2]|0,c[af>>2]|0,c[bf>>2]|0)|0;c[qf>>2]=_h+(c[Re>>2]|0);}}if((c[qf>>2]|0)>>>0>(c[lf>>2]|0)>>>0?(c[lf>>2]=c[qf>>2],c[(c[Ke>>2]|0)+(c[jf>>2]<<3)>>2]=(c[nf>>2]|0)-(c[Je>>2]|0),c[(c[Ke>>2]|0)+(c[jf>>2]<<3)+4>>2]=c[qf>>2],c[jf>>2]=(c[jf>>2]|0)+1,((c[qf>>2]|0)>>>0>(c[Ne>>2]|0)>>>0?1:((c[Fe>>2]|0)+(c[qf>>2]|0)|0)==(c[Ge>>2]|0))|0):0){dj=135;break;}c[nf>>2]=(c[nf>>2]|0)+1;}do{if((dj|0)==135){dj=0;c[Ce>>2]=c[jf>>2];}else if((dj|0)==137){dj=0;if(((c[Me>>2]|0)==3?(c[lf>>2]|0)>>>0<(c[Me>>2]|0)>>>0:0)?(c[sf>>2]=nm(c[De>>2]|0,c[Fe>>2]|0)|0,((c[sf>>2]|0)>>>0>(c[df>>2]|0)>>>0?((c[Pe>>2]|0)-(c[sf>>2]|0)|0)>>>0<262144:0)|0):0){if(c[He>>2]|0?(c[sf>>2]|0)>>>0<(c[$e>>2]|0)>>>0:0){c[vf>>2]=(c[_e>>2]|0)+(c[sf>>2]|0);c[tf>>2]=Uj(c[Fe>>2]|0,c[vf>>2]|0,c[Ge>>2]|0,c[af>>2]|0,c[bf>>2]|0)|0;}else{c[uf>>2]=(c[Oe>>2]|0)+(c[sf>>2]|0);c[tf>>2]=Tj(c[Fe>>2]|0,c[uf>>2]|0,c[Ge>>2]|0)|0;}if((c[tf>>2]|0)>>>0>=(c[Me>>2]|0)>>>0?(c[lf>>2]=c[tf>>2],c[c[Ke>>2]>>2]=(c[Pe>>2]|0)-(c[sf>>2]|0)+2,c[(c[Ke>>2]|0)+4>>2]=c[tf>>2],c[jf>>2]=1,((c[tf>>2]|0)>>>0>(c[Ne>>2]|0)>>>0?1:((c[Fe>>2]|0)+(c[tf>>2]|0)|0)==(c[Ge>>2]|0))|0):0){c[(c[De>>2]|0)+24>>2]=(c[Pe>>2]|0)+1;c[Ce>>2]=1;break;}}c[(c[Se>>2]|0)+(c[Te>>2]<<2)>>2]=c[Pe>>2];while(1){_h=c[kf>>2]|0;c[kf>>2]=_h+-1;if(!_h)break;if((c[Ue>>2]|0)>>>0<=(c[df>>2]|0)>>>0)break;c[wf>>2]=(c[Ve>>2]|0)+((c[Ue>>2]&c[Xe>>2])<<1<<2);c[xf>>2]=(c[Ye>>2]|0)>>>0<(c[Ze>>2]|0)>>>0?c[Ye>>2]|0:c[Ze>>2]|0;if(c[He>>2]|0?((c[Ue>>2]|0)+(c[xf>>2]|0)|0)>>>0<(c[$e>>2]|0)>>>0:0){c[yf>>2]=(c[_e>>2]|0)+(c[Ue>>2]|0);_h=Uj((c[Fe>>2]|0)+(c[xf>>2]|0)|0,(c[yf>>2]|0)+(c[xf>>2]|0)|0,c[Ge>>2]|0,c[af>>2]|0,c[bf>>2]|0)|0;c[xf>>2]=(c[xf>>2]|0)+_h;if(((c[Ue>>2]|0)+(c[xf>>2]|0)|0)>>>0>=(c[$e>>2]|0)>>>0)c[yf>>2]=(c[Oe>>2]|0)+(c[Ue>>2]|0);}else{c[yf>>2]=(c[Oe>>2]|0)+(c[Ue>>2]|0);_h=Tj((c[Fe>>2]|0)+(c[xf>>2]|0)|0,(c[yf>>2]|0)+(c[xf>>2]|0)|0,c[Ge>>2]|0)|0;c[xf>>2]=(c[xf>>2]|0)+_h;}if((c[xf>>2]|0)>>>0>(c[lf>>2]|0)>>>0){if((c[xf>>2]|0)>>>0>((c[gf>>2]|0)-(c[Ue>>2]|0)|0)>>>0)c[gf>>2]=(c[Ue>>2]|0)+(c[xf>>2]|0);c[lf>>2]=c[xf>>2];c[(c[Ke>>2]|0)+(c[jf>>2]<<3)>>2]=(c[Pe>>2]|0)-(c[Ue>>2]|0)+2;c[(c[Ke>>2]|0)+(c[jf>>2]<<3)+4>>2]=c[xf>>2];c[jf>>2]=(c[jf>>2]|0)+1;if((c[xf>>2]|0)>>>0>4096)break;if(((c[Fe>>2]|0)+(c[xf>>2]|0)|0)==(c[Ge>>2]|0))break;}_h=c[Ue>>2]|0;if((d[(c[yf>>2]|0)+(c[xf>>2]|0)>>0]|0|0)<(d[(c[Fe>>2]|0)+(c[xf>>2]|0)>>0]|0|0)){c[c[ef>>2]>>2]=_h;c[Ye>>2]=c[xf>>2];if((c[Ue>>2]|0)>>>0<=(c[cf>>2]|0)>>>0){dj=162;break;}c[ef>>2]=(c[wf>>2]|0)+4;c[Ue>>2]=c[(c[wf>>2]|0)+4>>2];}else{c[c[ff>>2]>>2]=_h;c[Ze>>2]=c[xf>>2];if((c[Ue>>2]|0)>>>0<=(c[cf>>2]|0)>>>0){dj=165;break;}c[ff>>2]=c[wf>>2];c[Ue>>2]=c[c[wf>>2]>>2];}}if((dj|0)==162){dj=0;c[ef>>2]=hf;}else if((dj|0)==165){dj=0;c[ff>>2]=hf;}c[c[ff>>2]>>2]=0;c[c[ef>>2]>>2]=0;c[(c[De>>2]|0)+24>>2]=(c[gf>>2]|0)-8;c[Ce>>2]=c[jf>>2];}}while(0);c[Ah>>2]=c[Ce>>2];break a;break;}default:{_h=c[Ch>>2]|0;Qh=c[Dh>>2]|0;Ph=c[Eh>>2]|0;Zi=c[Fh>>2]|0;_i=c[Gh>>2]|0;Uh=c[Hh>>2]|0;Zh=c[Ih>>2]|0;aj=c[Jh>>2]|0;c[Af>>2]=c[Bh>>2];c[Bf>>2]=_h;c[Cf>>2]=Qh;c[Df>>2]=Ph;c[Ef>>2]=Zi;c[Ff>>2]=_i;c[Gf>>2]=Uh;c[Hf>>2]=Zh;c[If>>2]=aj;c[Jf>>2]=4;if((c[(c[Bf>>2]|0)+20>>2]|0)>>>0<4095)lj=c[(c[Bf>>2]|0)+20>>2]|0;else lj=4095;c[Kf>>2]=lj;c[Lf>>2]=c[(c[Af>>2]|0)+4>>2];c[Mf>>2]=(c[Cf>>2]|0)-(c[Lf>>2]|0);c[Nf>>2]=c[(c[Bf>>2]|0)+8>>2];c[Of>>2]=(c[Jf>>2]|0)==3?3:4;c[Pf>>2]=c[(c[Af>>2]|0)+36>>2];c[Qf>>2]=Sj(c[Cf>>2]|0,c[Nf>>2]|0,c[Jf>>2]|0)|0;c[Rf>>2]=c[(c[Pf>>2]|0)+(c[Qf>>2]<<2)>>2];c[Sf>>2]=c[(c[Af>>2]|0)+44>>2];c[Tf>>2]=(c[(c[Bf>>2]|0)+4>>2]|0)-1;c[Uf>>2]=(1<<c[Tf>>2])-1;c[Vf>>2]=0;c[Wf>>2]=0;c[Xf>>2]=c[(c[Af>>2]|0)+8>>2];c[Yf>>2]=c[(c[Af>>2]|0)+12>>2];c[Zf>>2]=(c[Xf>>2]|0)+(c[Yf>>2]|0);c[_f>>2]=(c[Lf>>2]|0)+(c[Yf>>2]|0);if((c[Uf>>2]|0)>>>0>=(c[Mf>>2]|0)>>>0)mj=0;else mj=(c[Mf>>2]|0)-(c[Uf>>2]|0)|0;c[$f>>2]=mj;c[ag>>2]=c[(c[Af>>2]|0)+16>>2];c[bg>>2]=(c[Sf>>2]|0)+((c[Mf>>2]&c[Uf>>2])<<1<<2);c[cg>>2]=(c[Sf>>2]|0)+((c[Mf>>2]&c[Uf>>2])<<1<<2)+4;c[dg>>2]=(c[Mf>>2]|0)+8+1;c[fg>>2]=0;c[gg>>2]=1<<c[(c[Bf>>2]|0)+12>>2];c[hg>>2]=(c[If>>2]|0)-1;c[ig>>2]=3+(c[Gf>>2]|0);c[jg>>2]=c[Gf>>2];while(1){if((c[jg>>2]|0)>>>0>=(c[ig>>2]|0)>>>0){dj=84;break;}aj=c[Ff>>2]|0;if((c[jg>>2]|0)==3)nj=(c[aj>>2]|0)-1|0;else nj=c[aj+(c[jg>>2]<<2)>>2]|0;c[kg>>2]=nj;c[lg>>2]=(c[Mf>>2]|0)-(c[kg>>2]|0);c[mg>>2]=0;if(((c[kg>>2]|0)-1|0)>>>0<((c[Mf>>2]|0)-(c[Yf>>2]|0)|0)>>>0){aj=mm(c[Cf>>2]|0,c[Of>>2]|0)|0;if((aj|0)==(mm((c[Cf>>2]|0)+(0-(c[kg>>2]|0))|0,c[Of>>2]|0)|0)){aj=Tj((c[Cf>>2]|0)+(c[Of>>2]|0)|0,(c[Cf>>2]|0)+(c[Of>>2]|0)+(0-(c[kg>>2]|0))|0,c[Df>>2]|0)|0;c[mg>>2]=aj+(c[Of>>2]|0);}}else{c[ng>>2]=(c[Xf>>2]|0)+(c[lg>>2]|0);if((c[Ef>>2]|0?(((c[Yf>>2]|0)-1-(c[lg>>2]|0)|0)>>>0>=3?((c[kg>>2]|0)-1|0)>>>0<((c[Mf>>2]|0)-(c[ag>>2]|0)|0)>>>0:0)|0:0)?(aj=mm(c[Cf>>2]|0,c[Of>>2]|0)|0,(aj|0)==(mm(c[ng>>2]|0,c[Of>>2]|0)|0)):0){aj=Uj((c[Cf>>2]|0)+(c[Of>>2]|0)|0,(c[ng>>2]|0)+(c[Of>>2]|0)|0,c[Df>>2]|0,c[Zf>>2]|0,c[_f>>2]|0)|0;c[mg>>2]=aj+(c[Of>>2]|0);}}if((c[mg>>2]|0)>>>0>(c[hg>>2]|0)>>>0?(c[hg>>2]=c[mg>>2],c[(c[Hf>>2]|0)+(c[fg>>2]<<3)>>2]=(c[jg>>2]|0)-(c[Gf>>2]|0),c[(c[Hf>>2]|0)+(c[fg>>2]<<3)+4>>2]=c[mg>>2],c[fg>>2]=(c[fg>>2]|0)+1,((c[mg>>2]|0)>>>0>(c[Kf>>2]|0)>>>0?1:((c[Cf>>2]|0)+(c[mg>>2]|0)|0)==(c[Df>>2]|0))|0):0){dj=82;break;}c[jg>>2]=(c[jg>>2]|0)+1;}do{if((dj|0)==82){dj=0;c[zf>>2]=c[fg>>2];}else if((dj|0)==84){dj=0;if(((c[Jf>>2]|0)==3?(c[hg>>2]|0)>>>0<(c[Jf>>2]|0)>>>0:0)?(c[og>>2]=nm(c[Af>>2]|0,c[Cf>>2]|0)|0,((c[og>>2]|0)>>>0>(c[ag>>2]|0)>>>0?((c[Mf>>2]|0)-(c[og>>2]|0)|0)>>>0<262144:0)|0):0){if(c[Ef>>2]|0?(c[og>>2]|0)>>>0<(c[Yf>>2]|0)>>>0:0){c[rg>>2]=(c[Xf>>2]|0)+(c[og>>2]|0);c[pg>>2]=Uj(c[Cf>>2]|0,c[rg>>2]|0,c[Df>>2]|0,c[Zf>>2]|0,c[_f>>2]|0)|0;}else{c[qg>>2]=(c[Lf>>2]|0)+(c[og>>2]|0);c[pg>>2]=Tj(c[Cf>>2]|0,c[qg>>2]|0,c[Df>>2]|0)|0;}if((c[pg>>2]|0)>>>0>=(c[Jf>>2]|0)>>>0?(c[hg>>2]=c[pg>>2],c[c[Hf>>2]>>2]=(c[Mf>>2]|0)-(c[og>>2]|0)+2,c[(c[Hf>>2]|0)+4>>2]=c[pg>>2],c[fg>>2]=1,((c[pg>>2]|0)>>>0>(c[Kf>>2]|0)>>>0?1:((c[Cf>>2]|0)+(c[pg>>2]|0)|0)==(c[Df>>2]|0))|0):0){c[(c[Af>>2]|0)+24>>2]=(c[Mf>>2]|0)+1;c[zf>>2]=1;break;}}c[(c[Pf>>2]|0)+(c[Qf>>2]<<2)>>2]=c[Mf>>2];while(1){aj=c[gg>>2]|0;c[gg>>2]=aj+-1;if(!aj)break;if((c[Rf>>2]|0)>>>0<=(c[ag>>2]|0)>>>0)break;c[sg>>2]=(c[Sf>>2]|0)+((c[Rf>>2]&c[Uf>>2])<<1<<2);c[tg>>2]=(c[Vf>>2]|0)>>>0<(c[Wf>>2]|0)>>>0?c[Vf>>2]|0:c[Wf>>2]|0;if(c[Ef>>2]|0?((c[Rf>>2]|0)+(c[tg>>2]|0)|0)>>>0<(c[Yf>>2]|0)>>>0:0){c[ug>>2]=(c[Xf>>2]|0)+(c[Rf>>2]|0);aj=Uj((c[Cf>>2]|0)+(c[tg>>2]|0)|0,(c[ug>>2]|0)+(c[tg>>2]|0)|0,c[Df>>2]|0,c[Zf>>2]|0,c[_f>>2]|0)|0;c[tg>>2]=(c[tg>>2]|0)+aj;if(((c[Rf>>2]|0)+(c[tg>>2]|0)|0)>>>0>=(c[Yf>>2]|0)>>>0)c[ug>>2]=(c[Lf>>2]|0)+(c[Rf>>2]|0);}else{c[ug>>2]=(c[Lf>>2]|0)+(c[Rf>>2]|0);aj=Tj((c[Cf>>2]|0)+(c[tg>>2]|0)|0,(c[ug>>2]|0)+(c[tg>>2]|0)|0,c[Df>>2]|0)|0;c[tg>>2]=(c[tg>>2]|0)+aj;}if((c[tg>>2]|0)>>>0>(c[hg>>2]|0)>>>0){if((c[tg>>2]|0)>>>0>((c[dg>>2]|0)-(c[Rf>>2]|0)|0)>>>0)c[dg>>2]=(c[Rf>>2]|0)+(c[tg>>2]|0);c[hg>>2]=c[tg>>2];c[(c[Hf>>2]|0)+(c[fg>>2]<<3)>>2]=(c[Mf>>2]|0)-(c[Rf>>2]|0)+2;c[(c[Hf>>2]|0)+(c[fg>>2]<<3)+4>>2]=c[tg>>2];c[fg>>2]=(c[fg>>2]|0)+1;if((c[tg>>2]|0)>>>0>4096)break;if(((c[Cf>>2]|0)+(c[tg>>2]|0)|0)==(c[Df>>2]|0))break;}aj=c[Rf>>2]|0;if((d[(c[ug>>2]|0)+(c[tg>>2]|0)>>0]|0|0)<(d[(c[Cf>>2]|0)+(c[tg>>2]|0)>>0]|0|0)){c[c[bg>>2]>>2]=aj;c[Vf>>2]=c[tg>>2];if((c[Rf>>2]|0)>>>0<=(c[$f>>2]|0)>>>0){dj=109;break;}c[bg>>2]=(c[sg>>2]|0)+4;c[Rf>>2]=c[(c[sg>>2]|0)+4>>2];}else{c[c[cg>>2]>>2]=aj;c[Wf>>2]=c[tg>>2];if((c[Rf>>2]|0)>>>0<=(c[$f>>2]|0)>>>0){dj=112;break;}c[cg>>2]=c[sg>>2];c[Rf>>2]=c[c[sg>>2]>>2];}}if((dj|0)==109){dj=0;c[bg>>2]=eg;}else if((dj|0)==112){dj=0;c[cg>>2]=eg;}c[c[cg>>2]>>2]=0;c[c[bg>>2]>>2]=0;c[(c[Af>>2]|0)+24>>2]=(c[dg>>2]|0)-8;c[zf>>2]=c[fg>>2];}}while(0);c[Ah>>2]=c[zf>>2];break a;}}}}while(0);c[ki>>2]=c[Ah>>2];if(!(c[ki>>2]|0)){c[Vh>>2]=(c[Vh>>2]|0)+1;continue;}c[li>>2]=0;while(1){if((c[li>>2]|0)>>>0>=3)break;c[(c[bi>>2]|0)+16+(c[li>>2]<<2)>>2]=c[(c[Nh>>2]|0)+(c[li>>2]<<2)>>2];c[li>>2]=(c[li>>2]|0)+1;}c[(c[bi>>2]|0)+8>>2]=1;c[(c[bi>>2]|0)+12>>2]=c[ii>>2];c[mi>>2]=c[(c[ci>>2]|0)+((c[ki>>2]|0)-1<<3)+4>>2];do{if((c[mi>>2]|0)>>>0<=(c[$h>>2]|0)>>>0){c[ni>>2]=om(di,c[Wh>>2]|0,c[ii>>2]|0,c[Th>>2]|0)|0;c[oi>>2]=0;while(1){if((c[oi>>2]|0)>>>0>=(c[ai>>2]|0)>>>0)break;c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+8>>2]=1;c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)>>2]=1073741824;c[oi>>2]=(c[oi>>2]|0)+1;}c[pi>>2]=0;while(1){if((c[pi>>2]|0)>>>0>=(c[ki>>2]|0)>>>0)break;c[qi>>2]=c[(c[ci>>2]|0)+(c[pi>>2]<<3)>>2];c[ri>>2]=c[(c[ci>>2]|0)+(c[pi>>2]<<3)+4>>2];pm(si,c[Nh>>2]|0,c[qi>>2]|0,c[ji>>2]|0);while(1){if((c[oi>>2]|0)>>>0>(c[ri>>2]|0)>>>0)break;aj=c[ni>>2]|0;Zh=c[oi>>2]|0;Uh=c[Th>>2]|0;_i=c[Rh>>2]|0;c[yd>>2]=c[qi>>2];c[zd>>2]=Zh;c[Ad>>2]=Uh;c[Bd>>2]=_i;c[Dd>>2]=qm((c[yd>>2]|0)+1|0)|0;c[Ed>>2]=(c[zd>>2]|0)-3;if(c[(c[Ad>>2]|0)+56>>2]|0){_i=(qm((c[Ed>>2]|0)+1|0)|0)+16|0;c[xd>>2]=_i+(c[Dd>>2]|0);}else{_i=(c[Dd>>2]|0)+(c[(c[Ad>>2]|0)+52>>2]|0)|0;c[Cd>>2]=_i-(qm((c[(c[(c[Ad>>2]|0)+12>>2]|0)+(c[Dd>>2]<<2)>>2]|0)+1|0)|0);if((c[Bd>>2]|0)<2&(c[Dd>>2]|0)>>>0>=20)c[Cd>>2]=(c[Cd>>2]|0)+((c[Dd>>2]|0)-19<<1);c[Fd>>2]=rm(c[Ed>>2]|0)|0;_i=(c[5840+(c[Fd>>2]<<2)>>2]|0)+(c[(c[Ad>>2]|0)+48>>2]|0)|0;Uh=_i-(qm((c[(c[(c[Ad>>2]|0)+8>>2]|0)+(c[Fd>>2]<<2)>>2]|0)+1|0)|0)|0;c[Cd>>2]=(c[Cd>>2]|0)+Uh;c[xd>>2]=c[Cd>>2];}c[ti>>2]=aj+(c[xd>>2]|0);c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+8>>2]=c[oi>>2];c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+4>>2]=c[qi>>2];c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+12>>2]=c[ii>>2];c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)>>2]=c[ti>>2];aj=(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+16|0;c[aj>>2]=c[si>>2];c[aj+4>>2]=c[si+4>>2];c[aj+8>>2]=c[si+8>>2];c[oi>>2]=(c[oi>>2]|0)+1;}c[pi>>2]=(c[pi>>2]|0)+1;}c[fi>>2]=(c[oi>>2]|0)-1;c[ei>>2]=1;b:while(1){if((c[ei>>2]|0)>>>0>(c[fi>>2]|0)>>>0){dj=504;break;}c[ui>>2]=(c[Vh>>2]|0)+(c[ei>>2]|0);if((c[(c[bi>>2]|0)+(((c[ei>>2]|0)-1|0)*28|0)+8>>2]|0)==1)oj=(c[(c[bi>>2]|0)+(((c[ei>>2]|0)-1|0)*28|0)+12>>2]|0)+1|0;else oj=1;c[vi>>2]=oj;if((c[ei>>2]|0)>>>0>(c[vi>>2]|0)>>>0){aj=c[(c[bi>>2]|0)+(((c[ei>>2]|0)-(c[vi>>2]|0)|0)*28|0)>>2]|0;c[wi>>2]=aj+(sm((c[ui>>2]|0)+(0-(c[vi>>2]|0))|0,c[vi>>2]|0,c[Th>>2]|0)|0);}else c[wi>>2]=tm(di,c[Wh>>2]|0,c[vi>>2]|0,c[Th>>2]|0)|0;if((c[wi>>2]|0)<=(c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)>>2]|0)){c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+8>>2]=1;c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+4>>2]=0;c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+12>>2]=c[vi>>2];c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)>>2]=c[wi>>2];aj=(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+16|0;Uh=(c[bi>>2]|0)+(((c[ei>>2]|0)-1|0)*28|0)+16|0;c[aj>>2]=c[Uh>>2];c[aj+4>>2]=c[Uh+4>>2];c[aj+8>>2]=c[Uh+8>>2];}c:do{if((c[ui>>2]|0)>>>0<=(c[Yh>>2]|0)>>>0){if((c[ei>>2]|0)==(c[fi>>2]|0)){dj=504;break b;}if((c[Rh>>2]|0)==0?(c[(c[bi>>2]|0)+(((c[ei>>2]|0)+1|0)*28|0)>>2]|0)<=(c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)>>2]|0):0)break;c[xi>>2]=(c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+8>>2]|0)!=1&1;if((c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+8>>2]|0)==1)pj=c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+12>>2]|0;else pj=0;c[yi>>2]=pj;if((c[ei>>2]|0)>>>0>(c[yi>>2]|0)>>>0)qj=c[(c[bi>>2]|0)+(((c[ei>>2]|0)-(c[yi>>2]|0)|0)*28|0)>>2]|0;else qj=0;c[zi>>2]=qj;Uh=c[zi>>2]|0;c[Ai>>2]=Uh+(um((c[ui>>2]|0)+(0-(c[yi>>2]|0))|0,c[yi>>2]|0,c[Th>>2]|0)|0);Uh=c[Oh>>2]|0;aj=c[ui>>2]|0;_i=c[Xh>>2]|0;Zh=c[Sh>>2]|0;Zi=(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+16|0;Ph=c[xi>>2]|0;Qh=c[ci>>2]|0;_h=c[ai>>2]|0;c[nd>>2]=c[Lh>>2];c[od>>2]=Uh;c[pd>>2]=aj;c[qd>>2]=_i;c[rd>>2]=Zh;c[sd>>2]=Zi;c[td>>2]=Ph;c[ud>>2]=Qh;c[vd>>2]=_h;c[wd>>2]=c[(c[od>>2]|0)+16>>2];d:do{if((c[pd>>2]|0)>>>0<((c[(c[nd>>2]|0)+4>>2]|0)+(c[(c[nd>>2]|0)+24>>2]|0)|0)>>>0)c[md>>2]=0;else{_h=c[od>>2]|0;Qh=c[pd>>2]|0;Ph=c[qd>>2]|0;Zi=c[wd>>2]|0;Zh=c[rd>>2]|0;c[dd>>2]=c[nd>>2];c[ed>>2]=_h;c[fd>>2]=Qh;c[gd>>2]=Ph;c[hd>>2]=Zi;c[id>>2]=Zh;c[jd>>2]=c[(c[dd>>2]|0)+4>>2];c[kd>>2]=(c[fd>>2]|0)-(c[jd>>2]|0);c[ld>>2]=c[(c[dd>>2]|0)+24>>2];while(1){if((c[ld>>2]|0)>>>0>=(c[kd>>2]|0)>>>0)break;Zh=Rj(c[dd>>2]|0,c[ed>>2]|0,(c[jd>>2]|0)+(c[ld>>2]|0)|0,c[gd>>2]|0,c[hd>>2]|0,c[id>>2]|0)|0;c[ld>>2]=(c[ld>>2]|0)+Zh;}c[(c[dd>>2]|0)+24>>2]=c[kd>>2];switch(c[wd>>2]|0){case 3:{Zh=c[od>>2]|0;Zi=c[pd>>2]|0;Ph=c[qd>>2]|0;Qh=c[rd>>2]|0;_h=c[sd>>2]|0;_i=c[td>>2]|0;aj=c[ud>>2]|0;Uh=c[vd>>2]|0;c[ic>>2]=c[nd>>2];c[jc>>2]=Zh;c[kc>>2]=Zi;c[lc>>2]=Ph;c[mc>>2]=Qh;c[nc>>2]=_h;c[oc>>2]=_i;c[pc>>2]=aj;c[qc>>2]=Uh;c[rc>>2]=3;if((c[(c[jc>>2]|0)+20>>2]|0)>>>0<4095)rj=c[(c[jc>>2]|0)+20>>2]|0;else rj=4095;c[sc>>2]=rj;c[tc>>2]=c[(c[ic>>2]|0)+4>>2];c[uc>>2]=(c[kc>>2]|0)-(c[tc>>2]|0);c[vc>>2]=c[(c[jc>>2]|0)+8>>2];c[wc>>2]=(c[rc>>2]|0)==3?3:4;c[xc>>2]=c[(c[ic>>2]|0)+36>>2];c[yc>>2]=Sj(c[kc>>2]|0,c[vc>>2]|0,c[rc>>2]|0)|0;c[zc>>2]=c[(c[xc>>2]|0)+(c[yc>>2]<<2)>>2];c[Ac>>2]=c[(c[ic>>2]|0)+44>>2];c[Bc>>2]=(c[(c[jc>>2]|0)+4>>2]|0)-1;c[Cc>>2]=(1<<c[Bc>>2])-1;c[Dc>>2]=0;c[Ec>>2]=0;c[Fc>>2]=c[(c[ic>>2]|0)+8>>2];c[Gc>>2]=c[(c[ic>>2]|0)+12>>2];c[Hc>>2]=(c[Fc>>2]|0)+(c[Gc>>2]|0);c[Ic>>2]=(c[tc>>2]|0)+(c[Gc>>2]|0);if((c[Cc>>2]|0)>>>0>=(c[uc>>2]|0)>>>0)sj=0;else sj=(c[uc>>2]|0)-(c[Cc>>2]|0)|0;c[Jc>>2]=sj;c[Kc>>2]=c[(c[ic>>2]|0)+16>>2];c[Lc>>2]=(c[Ac>>2]|0)+((c[uc>>2]&c[Cc>>2])<<1<<2);c[Mc>>2]=(c[Ac>>2]|0)+((c[uc>>2]&c[Cc>>2])<<1<<2)+4;c[Nc>>2]=(c[uc>>2]|0)+8+1;c[Pc>>2]=0;c[Qc>>2]=1<<c[(c[jc>>2]|0)+12>>2];c[Rc>>2]=(c[qc>>2]|0)-1;c[Sc>>2]=3+(c[oc>>2]|0);c[Tc>>2]=c[oc>>2];while(1){if((c[Tc>>2]|0)>>>0>=(c[Sc>>2]|0)>>>0){dj=287;break;}Uh=c[nc>>2]|0;if((c[Tc>>2]|0)==3)tj=(c[Uh>>2]|0)-1|0;else tj=c[Uh+(c[Tc>>2]<<2)>>2]|0;c[Uc>>2]=tj;c[Vc>>2]=(c[uc>>2]|0)-(c[Uc>>2]|0);c[Wc>>2]=0;do{if(((c[Uc>>2]|0)-1|0)>>>0<((c[uc>>2]|0)-(c[Gc>>2]|0)|0)>>>0){Uh=mm(c[kc>>2]|0,c[wc>>2]|0)|0;if((Uh|0)!=(mm((c[kc>>2]|0)+(0-(c[Uc>>2]|0))|0,c[wc>>2]|0)|0))break;Uh=Tj((c[kc>>2]|0)+(c[wc>>2]|0)|0,(c[kc>>2]|0)+(c[wc>>2]|0)+(0-(c[Uc>>2]|0))|0,c[lc>>2]|0)|0;c[Wc>>2]=Uh+(c[wc>>2]|0);}else{c[Xc>>2]=(c[Fc>>2]|0)+(c[Vc>>2]|0);if(!(c[mc>>2]|0))break;if(!((((c[Gc>>2]|0)-1-(c[Vc>>2]|0)|0)>>>0>=3?((c[Uc>>2]|0)-1|0)>>>0<((c[uc>>2]|0)-(c[Kc>>2]|0)|0)>>>0:0)|0))break;Uh=mm(c[kc>>2]|0,c[wc>>2]|0)|0;if((Uh|0)!=(mm(c[Xc>>2]|0,c[wc>>2]|0)|0))break;Uh=Uj((c[kc>>2]|0)+(c[wc>>2]|0)|0,(c[Xc>>2]|0)+(c[wc>>2]|0)|0,c[lc>>2]|0,c[Hc>>2]|0,c[Ic>>2]|0)|0;c[Wc>>2]=Uh+(c[wc>>2]|0);}}while(0);if((c[Wc>>2]|0)>>>0>(c[Rc>>2]|0)>>>0?(c[Rc>>2]=c[Wc>>2],c[(c[pc>>2]|0)+(c[Pc>>2]<<3)>>2]=(c[Tc>>2]|0)-(c[oc>>2]|0),c[(c[pc>>2]|0)+(c[Pc>>2]<<3)+4>>2]=c[Wc>>2],c[Pc>>2]=(c[Pc>>2]|0)+1,((c[Wc>>2]|0)>>>0>(c[sc>>2]|0)>>>0?1:((c[kc>>2]|0)+(c[Wc>>2]|0)|0)==(c[lc>>2]|0))|0):0){dj=285;break;}c[Tc>>2]=(c[Tc>>2]|0)+1;}e:do{if((dj|0)==285){dj=0;c[hc>>2]=c[Pc>>2];}else if((dj|0)==287){dj=0;do{if((c[rc>>2]|0)==3){if((c[Rc>>2]|0)>>>0>=(c[rc>>2]|0)>>>0)break;c[Yc>>2]=nm(c[ic>>2]|0,c[kc>>2]|0)|0;if(!(((c[Yc>>2]|0)>>>0>(c[Kc>>2]|0)>>>0?((c[uc>>2]|0)-(c[Yc>>2]|0)|0)>>>0<262144:0)|0))break;do{if(c[mc>>2]|0){if((c[Yc>>2]|0)>>>0>=(c[Gc>>2]|0)>>>0){dj=292;break;}c[$c>>2]=(c[Fc>>2]|0)+(c[Yc>>2]|0);c[Zc>>2]=Uj(c[kc>>2]|0,c[$c>>2]|0,c[lc>>2]|0,c[Hc>>2]|0,c[Ic>>2]|0)|0;}else dj=292;}while(0);if((dj|0)==292){dj=0;c[_c>>2]=(c[tc>>2]|0)+(c[Yc>>2]|0);c[Zc>>2]=Tj(c[kc>>2]|0,c[_c>>2]|0,c[lc>>2]|0)|0;}if((c[Zc>>2]|0)>>>0<(c[rc>>2]|0)>>>0)break;c[Rc>>2]=c[Zc>>2];c[c[pc>>2]>>2]=(c[uc>>2]|0)-(c[Yc>>2]|0)+2;c[(c[pc>>2]|0)+4>>2]=c[Zc>>2];c[Pc>>2]=1;if(!(((c[Zc>>2]|0)>>>0>(c[sc>>2]|0)>>>0?1:((c[kc>>2]|0)+(c[Zc>>2]|0)|0)==(c[lc>>2]|0))|0))break;c[(c[ic>>2]|0)+24>>2]=(c[uc>>2]|0)+1;c[hc>>2]=1;break e;}}while(0);c[(c[xc>>2]|0)+(c[yc>>2]<<2)>>2]=c[uc>>2];while(1){Uh=c[Qc>>2]|0;c[Qc>>2]=Uh+-1;if(!Uh)break;if((c[zc>>2]|0)>>>0<=(c[Kc>>2]|0)>>>0)break;c[ad>>2]=(c[Ac>>2]|0)+((c[zc>>2]&c[Cc>>2])<<1<<2);c[bd>>2]=(c[Dc>>2]|0)>>>0<(c[Ec>>2]|0)>>>0?c[Dc>>2]|0:c[Ec>>2]|0;do{if(c[mc>>2]|0){if(((c[zc>>2]|0)+(c[bd>>2]|0)|0)>>>0>=(c[Gc>>2]|0)>>>0){dj=302;break;}c[cd>>2]=(c[Fc>>2]|0)+(c[zc>>2]|0);Uh=Uj((c[kc>>2]|0)+(c[bd>>2]|0)|0,(c[cd>>2]|0)+(c[bd>>2]|0)|0,c[lc>>2]|0,c[Hc>>2]|0,c[Ic>>2]|0)|0;c[bd>>2]=(c[bd>>2]|0)+Uh;if(((c[zc>>2]|0)+(c[bd>>2]|0)|0)>>>0<(c[Gc>>2]|0)>>>0)break;c[cd>>2]=(c[tc>>2]|0)+(c[zc>>2]|0);}else dj=302;}while(0);if((dj|0)==302){dj=0;c[cd>>2]=(c[tc>>2]|0)+(c[zc>>2]|0);Uh=Tj((c[kc>>2]|0)+(c[bd>>2]|0)|0,(c[cd>>2]|0)+(c[bd>>2]|0)|0,c[lc>>2]|0)|0;c[bd>>2]=(c[bd>>2]|0)+Uh;}if((c[bd>>2]|0)>>>0>(c[Rc>>2]|0)>>>0){if((c[bd>>2]|0)>>>0>((c[Nc>>2]|0)-(c[zc>>2]|0)|0)>>>0)c[Nc>>2]=(c[zc>>2]|0)+(c[bd>>2]|0);c[Rc>>2]=c[bd>>2];c[(c[pc>>2]|0)+(c[Pc>>2]<<3)>>2]=(c[uc>>2]|0)-(c[zc>>2]|0)+2;c[(c[pc>>2]|0)+(c[Pc>>2]<<3)+4>>2]=c[bd>>2];c[Pc>>2]=(c[Pc>>2]|0)+1;if((c[bd>>2]|0)>>>0>4096)break;if(((c[kc>>2]|0)+(c[bd>>2]|0)|0)==(c[lc>>2]|0))break;}Uh=c[zc>>2]|0;if((d[(c[cd>>2]|0)+(c[bd>>2]|0)>>0]|0|0)<(d[(c[kc>>2]|0)+(c[bd>>2]|0)>>0]|0|0)){c[c[Lc>>2]>>2]=Uh;c[Dc>>2]=c[bd>>2];if((c[zc>>2]|0)>>>0<=(c[Jc>>2]|0)>>>0){dj=312;break;}c[Lc>>2]=(c[ad>>2]|0)+4;c[zc>>2]=c[(c[ad>>2]|0)+4>>2];}else{c[c[Mc>>2]>>2]=Uh;c[Ec>>2]=c[bd>>2];if((c[zc>>2]|0)>>>0<=(c[Jc>>2]|0)>>>0){dj=315;break;}c[Mc>>2]=c[ad>>2];c[zc>>2]=c[c[ad>>2]>>2];}}if((dj|0)==312){dj=0;c[Lc>>2]=Oc;}else if((dj|0)==315){dj=0;c[Mc>>2]=Oc;}c[c[Mc>>2]>>2]=0;c[c[Lc>>2]>>2]=0;c[(c[ic>>2]|0)+24>>2]=(c[Nc>>2]|0)-8;c[hc>>2]=c[Pc>>2];}}while(0);c[md>>2]=c[hc>>2];break d;break;}case 7:case 6:{Uh=c[od>>2]|0;aj=c[pd>>2]|0;_i=c[qd>>2]|0;_h=c[rd>>2]|0;Qh=c[sd>>2]|0;Ph=c[td>>2]|0;Zi=c[ud>>2]|0;Zh=c[vd>>2]|0;c[u>>2]=c[nd>>2];c[v>>2]=Uh;c[w>>2]=aj;c[x>>2]=_i;c[y>>2]=_h;c[z>>2]=Qh;c[A>>2]=Ph;c[B>>2]=Zi;c[C>>2]=Zh;c[D>>2]=6;if((c[(c[v>>2]|0)+20>>2]|0)>>>0<4095)uj=c[(c[v>>2]|0)+20>>2]|0;else uj=4095;c[E>>2]=uj;c[F>>2]=c[(c[u>>2]|0)+4>>2];c[G>>2]=(c[w>>2]|0)-(c[F>>2]|0);c[H>>2]=c[(c[v>>2]|0)+8>>2];c[I>>2]=(c[D>>2]|0)==3?3:4;c[J>>2]=c[(c[u>>2]|0)+36>>2];c[K>>2]=Sj(c[w>>2]|0,c[H>>2]|0,c[D>>2]|0)|0;c[L>>2]=c[(c[J>>2]|0)+(c[K>>2]<<2)>>2];c[M>>2]=c[(c[u>>2]|0)+44>>2];c[N>>2]=(c[(c[v>>2]|0)+4>>2]|0)-1;c[O>>2]=(1<<c[N>>2])-1;c[P>>2]=0;c[Q>>2]=0;c[R>>2]=c[(c[u>>2]|0)+8>>2];c[S>>2]=c[(c[u>>2]|0)+12>>2];c[T>>2]=(c[R>>2]|0)+(c[S>>2]|0);c[U>>2]=(c[F>>2]|0)+(c[S>>2]|0);if((c[O>>2]|0)>>>0>=(c[G>>2]|0)>>>0)vj=0;else vj=(c[G>>2]|0)-(c[O>>2]|0)|0;c[V>>2]=vj;c[W>>2]=c[(c[u>>2]|0)+16>>2];c[X>>2]=(c[M>>2]|0)+((c[G>>2]&c[O>>2])<<1<<2);c[Y>>2]=(c[M>>2]|0)+((c[G>>2]&c[O>>2])<<1<<2)+4;c[Z>>2]=(c[G>>2]|0)+8+1;c[$>>2]=0;c[aa>>2]=1<<c[(c[v>>2]|0)+12>>2];c[ba>>2]=(c[C>>2]|0)-1;c[ca>>2]=3+(c[A>>2]|0);c[da>>2]=c[A>>2];while(1){if((c[da>>2]|0)>>>0>=(c[ca>>2]|0)>>>0){dj=446;break;}Zh=c[z>>2]|0;if((c[da>>2]|0)==3)wj=(c[Zh>>2]|0)-1|0;else wj=c[Zh+(c[da>>2]<<2)>>2]|0;c[ea>>2]=wj;c[fa>>2]=(c[G>>2]|0)-(c[ea>>2]|0);c[ga>>2]=0;do{if(((c[ea>>2]|0)-1|0)>>>0<((c[G>>2]|0)-(c[S>>2]|0)|0)>>>0){Zh=mm(c[w>>2]|0,c[I>>2]|0)|0;if((Zh|0)!=(mm((c[w>>2]|0)+(0-(c[ea>>2]|0))|0,c[I>>2]|0)|0))break;Zh=Tj((c[w>>2]|0)+(c[I>>2]|0)|0,(c[w>>2]|0)+(c[I>>2]|0)+(0-(c[ea>>2]|0))|0,c[x>>2]|0)|0;c[ga>>2]=Zh+(c[I>>2]|0);}else{c[ha>>2]=(c[R>>2]|0)+(c[fa>>2]|0);if(!(c[y>>2]|0))break;if(!((((c[S>>2]|0)-1-(c[fa>>2]|0)|0)>>>0>=3?((c[ea>>2]|0)-1|0)>>>0<((c[G>>2]|0)-(c[W>>2]|0)|0)>>>0:0)|0))break;Zh=mm(c[w>>2]|0,c[I>>2]|0)|0;if((Zh|0)!=(mm(c[ha>>2]|0,c[I>>2]|0)|0))break;Zh=Uj((c[w>>2]|0)+(c[I>>2]|0)|0,(c[ha>>2]|0)+(c[I>>2]|0)|0,c[x>>2]|0,c[T>>2]|0,c[U>>2]|0)|0;c[ga>>2]=Zh+(c[I>>2]|0);}}while(0);if((c[ga>>2]|0)>>>0>(c[ba>>2]|0)>>>0?(c[ba>>2]=c[ga>>2],c[(c[B>>2]|0)+(c[$>>2]<<3)>>2]=(c[da>>2]|0)-(c[A>>2]|0),c[(c[B>>2]|0)+(c[$>>2]<<3)+4>>2]=c[ga>>2],c[$>>2]=(c[$>>2]|0)+1,((c[ga>>2]|0)>>>0>(c[E>>2]|0)>>>0?1:((c[w>>2]|0)+(c[ga>>2]|0)|0)==(c[x>>2]|0))|0):0){dj=444;break;}c[da>>2]=(c[da>>2]|0)+1;}f:do{if((dj|0)==444){dj=0;c[t>>2]=c[$>>2];}else if((dj|0)==446){dj=0;do{if((c[D>>2]|0)==3){if((c[ba>>2]|0)>>>0>=(c[D>>2]|0)>>>0)break;c[ia>>2]=nm(c[u>>2]|0,c[w>>2]|0)|0;if(!(((c[ia>>2]|0)>>>0>(c[W>>2]|0)>>>0?((c[G>>2]|0)-(c[ia>>2]|0)|0)>>>0<262144:0)|0))break;do{if(c[y>>2]|0){if((c[ia>>2]|0)>>>0>=(c[S>>2]|0)>>>0){dj=451;break;}c[la>>2]=(c[R>>2]|0)+(c[ia>>2]|0);c[ja>>2]=Uj(c[w>>2]|0,c[la>>2]|0,c[x>>2]|0,c[T>>2]|0,c[U>>2]|0)|0;}else dj=451;}while(0);if((dj|0)==451){dj=0;c[ka>>2]=(c[F>>2]|0)+(c[ia>>2]|0);c[ja>>2]=Tj(c[w>>2]|0,c[ka>>2]|0,c[x>>2]|0)|0;}if((c[ja>>2]|0)>>>0<(c[D>>2]|0)>>>0)break;c[ba>>2]=c[ja>>2];c[c[B>>2]>>2]=(c[G>>2]|0)-(c[ia>>2]|0)+2;c[(c[B>>2]|0)+4>>2]=c[ja>>2];c[$>>2]=1;if(!(((c[ja>>2]|0)>>>0>(c[E>>2]|0)>>>0?1:((c[w>>2]|0)+(c[ja>>2]|0)|0)==(c[x>>2]|0))|0))break;c[(c[u>>2]|0)+24>>2]=(c[G>>2]|0)+1;c[t>>2]=1;break f;}}while(0);c[(c[J>>2]|0)+(c[K>>2]<<2)>>2]=c[G>>2];while(1){Zh=c[aa>>2]|0;c[aa>>2]=Zh+-1;if(!Zh)break;if((c[L>>2]|0)>>>0<=(c[W>>2]|0)>>>0)break;c[ma>>2]=(c[M>>2]|0)+((c[L>>2]&c[O>>2])<<1<<2);c[na>>2]=(c[P>>2]|0)>>>0<(c[Q>>2]|0)>>>0?c[P>>2]|0:c[Q>>2]|0;do{if(c[y>>2]|0){if(((c[L>>2]|0)+(c[na>>2]|0)|0)>>>0>=(c[S>>2]|0)>>>0){dj=461;break;}c[oa>>2]=(c[R>>2]|0)+(c[L>>2]|0);Zh=Uj((c[w>>2]|0)+(c[na>>2]|0)|0,(c[oa>>2]|0)+(c[na>>2]|0)|0,c[x>>2]|0,c[T>>2]|0,c[U>>2]|0)|0;c[na>>2]=(c[na>>2]|0)+Zh;if(((c[L>>2]|0)+(c[na>>2]|0)|0)>>>0<(c[S>>2]|0)>>>0)break;c[oa>>2]=(c[F>>2]|0)+(c[L>>2]|0);}else dj=461;}while(0);if((dj|0)==461){dj=0;c[oa>>2]=(c[F>>2]|0)+(c[L>>2]|0);Zh=Tj((c[w>>2]|0)+(c[na>>2]|0)|0,(c[oa>>2]|0)+(c[na>>2]|0)|0,c[x>>2]|0)|0;c[na>>2]=(c[na>>2]|0)+Zh;}if((c[na>>2]|0)>>>0>(c[ba>>2]|0)>>>0){if((c[na>>2]|0)>>>0>((c[Z>>2]|0)-(c[L>>2]|0)|0)>>>0)c[Z>>2]=(c[L>>2]|0)+(c[na>>2]|0);c[ba>>2]=c[na>>2];c[(c[B>>2]|0)+(c[$>>2]<<3)>>2]=(c[G>>2]|0)-(c[L>>2]|0)+2;c[(c[B>>2]|0)+(c[$>>2]<<3)+4>>2]=c[na>>2];c[$>>2]=(c[$>>2]|0)+1;if((c[na>>2]|0)>>>0>4096)break;if(((c[w>>2]|0)+(c[na>>2]|0)|0)==(c[x>>2]|0))break;}Zh=c[L>>2]|0;if((d[(c[oa>>2]|0)+(c[na>>2]|0)>>0]|0|0)<(d[(c[w>>2]|0)+(c[na>>2]|0)>>0]|0|0)){c[c[X>>2]>>2]=Zh;c[P>>2]=c[na>>2];if((c[L>>2]|0)>>>0<=(c[V>>2]|0)>>>0){dj=471;break;}c[X>>2]=(c[ma>>2]|0)+4;c[L>>2]=c[(c[ma>>2]|0)+4>>2];}else{c[c[Y>>2]>>2]=Zh;c[Q>>2]=c[na>>2];if((c[L>>2]|0)>>>0<=(c[V>>2]|0)>>>0){dj=474;break;}c[Y>>2]=c[ma>>2];c[L>>2]=c[c[ma>>2]>>2];}}if((dj|0)==471){dj=0;c[X>>2]=_;}else if((dj|0)==474){dj=0;c[Y>>2]=_;}c[c[Y>>2]>>2]=0;c[c[X>>2]>>2]=0;c[(c[u>>2]|0)+24>>2]=(c[Z>>2]|0)-8;c[t>>2]=c[$>>2];}}while(0);c[md>>2]=c[t>>2];break d;break;}case 5:{Zh=c[od>>2]|0;Zi=c[pd>>2]|0;Ph=c[qd>>2]|0;Qh=c[rd>>2]|0;_h=c[sd>>2]|0;_i=c[td>>2]|0;aj=c[ud>>2]|0;Uh=c[vd>>2]|0;c[qa>>2]=c[nd>>2];c[ra>>2]=Zh;c[sa>>2]=Zi;c[ta>>2]=Ph;c[ua>>2]=Qh;c[va>>2]=_h;c[wa>>2]=_i;c[xa>>2]=aj;c[ya>>2]=Uh;c[za>>2]=5;if((c[(c[ra>>2]|0)+20>>2]|0)>>>0<4095)xj=c[(c[ra>>2]|0)+20>>2]|0;else xj=4095;c[Aa>>2]=xj;c[Ba>>2]=c[(c[qa>>2]|0)+4>>2];c[Ca>>2]=(c[sa>>2]|0)-(c[Ba>>2]|0);c[Da>>2]=c[(c[ra>>2]|0)+8>>2];c[Ea>>2]=(c[za>>2]|0)==3?3:4;c[Fa>>2]=c[(c[qa>>2]|0)+36>>2];c[Ga>>2]=Sj(c[sa>>2]|0,c[Da>>2]|0,c[za>>2]|0)|0;c[Ha>>2]=c[(c[Fa>>2]|0)+(c[Ga>>2]<<2)>>2];c[Ia>>2]=c[(c[qa>>2]|0)+44>>2];c[Ja>>2]=(c[(c[ra>>2]|0)+4>>2]|0)-1;c[Ka>>2]=(1<<c[Ja>>2])-1;c[La>>2]=0;c[Ma>>2]=0;c[Na>>2]=c[(c[qa>>2]|0)+8>>2];c[Oa>>2]=c[(c[qa>>2]|0)+12>>2];c[Pa>>2]=(c[Na>>2]|0)+(c[Oa>>2]|0);c[Qa>>2]=(c[Ba>>2]|0)+(c[Oa>>2]|0);if((c[Ka>>2]|0)>>>0>=(c[Ca>>2]|0)>>>0)yj=0;else yj=(c[Ca>>2]|0)-(c[Ka>>2]|0)|0;c[Ra>>2]=yj;c[Sa>>2]=c[(c[qa>>2]|0)+16>>2];c[Ta>>2]=(c[Ia>>2]|0)+((c[Ca>>2]&c[Ka>>2])<<1<<2);c[Ua>>2]=(c[Ia>>2]|0)+((c[Ca>>2]&c[Ka>>2])<<1<<2)+4;c[Va>>2]=(c[Ca>>2]|0)+8+1;c[Xa>>2]=0;c[Ya>>2]=1<<c[(c[ra>>2]|0)+12>>2];c[Za>>2]=(c[ya>>2]|0)-1;c[_a>>2]=3+(c[wa>>2]|0);c[$a>>2]=c[wa>>2];while(1){if((c[$a>>2]|0)>>>0>=(c[_a>>2]|0)>>>0){dj=393;break;}Uh=c[va>>2]|0;if((c[$a>>2]|0)==3)zj=(c[Uh>>2]|0)-1|0;else zj=c[Uh+(c[$a>>2]<<2)>>2]|0;c[ab>>2]=zj;c[bb>>2]=(c[Ca>>2]|0)-(c[ab>>2]|0);c[cb>>2]=0;do{if(((c[ab>>2]|0)-1|0)>>>0<((c[Ca>>2]|0)-(c[Oa>>2]|0)|0)>>>0){Uh=mm(c[sa>>2]|0,c[Ea>>2]|0)|0;if((Uh|0)!=(mm((c[sa>>2]|0)+(0-(c[ab>>2]|0))|0,c[Ea>>2]|0)|0))break;Uh=Tj((c[sa>>2]|0)+(c[Ea>>2]|0)|0,(c[sa>>2]|0)+(c[Ea>>2]|0)+(0-(c[ab>>2]|0))|0,c[ta>>2]|0)|0;c[cb>>2]=Uh+(c[Ea>>2]|0);}else{c[db>>2]=(c[Na>>2]|0)+(c[bb>>2]|0);if(!(c[ua>>2]|0))break;if(!((((c[Oa>>2]|0)-1-(c[bb>>2]|0)|0)>>>0>=3?((c[ab>>2]|0)-1|0)>>>0<((c[Ca>>2]|0)-(c[Sa>>2]|0)|0)>>>0:0)|0))break;Uh=mm(c[sa>>2]|0,c[Ea>>2]|0)|0;if((Uh|0)!=(mm(c[db>>2]|0,c[Ea>>2]|0)|0))break;Uh=Uj((c[sa>>2]|0)+(c[Ea>>2]|0)|0,(c[db>>2]|0)+(c[Ea>>2]|0)|0,c[ta>>2]|0,c[Pa>>2]|0,c[Qa>>2]|0)|0;c[cb>>2]=Uh+(c[Ea>>2]|0);}}while(0);if((c[cb>>2]|0)>>>0>(c[Za>>2]|0)>>>0?(c[Za>>2]=c[cb>>2],c[(c[xa>>2]|0)+(c[Xa>>2]<<3)>>2]=(c[$a>>2]|0)-(c[wa>>2]|0),c[(c[xa>>2]|0)+(c[Xa>>2]<<3)+4>>2]=c[cb>>2],c[Xa>>2]=(c[Xa>>2]|0)+1,((c[cb>>2]|0)>>>0>(c[Aa>>2]|0)>>>0?1:((c[sa>>2]|0)+(c[cb>>2]|0)|0)==(c[ta>>2]|0))|0):0){dj=391;break;}c[$a>>2]=(c[$a>>2]|0)+1;}g:do{if((dj|0)==391){dj=0;c[pa>>2]=c[Xa>>2];}else if((dj|0)==393){dj=0;do{if((c[za>>2]|0)==3){if((c[Za>>2]|0)>>>0>=(c[za>>2]|0)>>>0)break;c[eb>>2]=nm(c[qa>>2]|0,c[sa>>2]|0)|0;if(!(((c[eb>>2]|0)>>>0>(c[Sa>>2]|0)>>>0?((c[Ca>>2]|0)-(c[eb>>2]|0)|0)>>>0<262144:0)|0))break;do{if(c[ua>>2]|0){if((c[eb>>2]|0)>>>0>=(c[Oa>>2]|0)>>>0){dj=398;break;}c[hb>>2]=(c[Na>>2]|0)+(c[eb>>2]|0);c[fb>>2]=Uj(c[sa>>2]|0,c[hb>>2]|0,c[ta>>2]|0,c[Pa>>2]|0,c[Qa>>2]|0)|0;}else dj=398;}while(0);if((dj|0)==398){dj=0;c[gb>>2]=(c[Ba>>2]|0)+(c[eb>>2]|0);c[fb>>2]=Tj(c[sa>>2]|0,c[gb>>2]|0,c[ta>>2]|0)|0;}if((c[fb>>2]|0)>>>0<(c[za>>2]|0)>>>0)break;c[Za>>2]=c[fb>>2];c[c[xa>>2]>>2]=(c[Ca>>2]|0)-(c[eb>>2]|0)+2;c[(c[xa>>2]|0)+4>>2]=c[fb>>2];c[Xa>>2]=1;if(!(((c[fb>>2]|0)>>>0>(c[Aa>>2]|0)>>>0?1:((c[sa>>2]|0)+(c[fb>>2]|0)|0)==(c[ta>>2]|0))|0))break;c[(c[qa>>2]|0)+24>>2]=(c[Ca>>2]|0)+1;c[pa>>2]=1;break g;}}while(0);c[(c[Fa>>2]|0)+(c[Ga>>2]<<2)>>2]=c[Ca>>2];while(1){Uh=c[Ya>>2]|0;c[Ya>>2]=Uh+-1;if(!Uh)break;if((c[Ha>>2]|0)>>>0<=(c[Sa>>2]|0)>>>0)break;c[ib>>2]=(c[Ia>>2]|0)+((c[Ha>>2]&c[Ka>>2])<<1<<2);c[jb>>2]=(c[La>>2]|0)>>>0<(c[Ma>>2]|0)>>>0?c[La>>2]|0:c[Ma>>2]|0;do{if(c[ua>>2]|0){if(((c[Ha>>2]|0)+(c[jb>>2]|0)|0)>>>0>=(c[Oa>>2]|0)>>>0){dj=408;break;}c[kb>>2]=(c[Na>>2]|0)+(c[Ha>>2]|0);Uh=Uj((c[sa>>2]|0)+(c[jb>>2]|0)|0,(c[kb>>2]|0)+(c[jb>>2]|0)|0,c[ta>>2]|0,c[Pa>>2]|0,c[Qa>>2]|0)|0;c[jb>>2]=(c[jb>>2]|0)+Uh;if(((c[Ha>>2]|0)+(c[jb>>2]|0)|0)>>>0<(c[Oa>>2]|0)>>>0)break;c[kb>>2]=(c[Ba>>2]|0)+(c[Ha>>2]|0);}else dj=408;}while(0);if((dj|0)==408){dj=0;c[kb>>2]=(c[Ba>>2]|0)+(c[Ha>>2]|0);Uh=Tj((c[sa>>2]|0)+(c[jb>>2]|0)|0,(c[kb>>2]|0)+(c[jb>>2]|0)|0,c[ta>>2]|0)|0;c[jb>>2]=(c[jb>>2]|0)+Uh;}if((c[jb>>2]|0)>>>0>(c[Za>>2]|0)>>>0){if((c[jb>>2]|0)>>>0>((c[Va>>2]|0)-(c[Ha>>2]|0)|0)>>>0)c[Va>>2]=(c[Ha>>2]|0)+(c[jb>>2]|0);c[Za>>2]=c[jb>>2];c[(c[xa>>2]|0)+(c[Xa>>2]<<3)>>2]=(c[Ca>>2]|0)-(c[Ha>>2]|0)+2;c[(c[xa>>2]|0)+(c[Xa>>2]<<3)+4>>2]=c[jb>>2];c[Xa>>2]=(c[Xa>>2]|0)+1;if((c[jb>>2]|0)>>>0>4096)break;if(((c[sa>>2]|0)+(c[jb>>2]|0)|0)==(c[ta>>2]|0))break;}Uh=c[Ha>>2]|0;if((d[(c[kb>>2]|0)+(c[jb>>2]|0)>>0]|0|0)<(d[(c[sa>>2]|0)+(c[jb>>2]|0)>>0]|0|0)){c[c[Ta>>2]>>2]=Uh;c[La>>2]=c[jb>>2];if((c[Ha>>2]|0)>>>0<=(c[Ra>>2]|0)>>>0){dj=418;break;}c[Ta>>2]=(c[ib>>2]|0)+4;c[Ha>>2]=c[(c[ib>>2]|0)+4>>2];}else{c[c[Ua>>2]>>2]=Uh;c[Ma>>2]=c[jb>>2];if((c[Ha>>2]|0)>>>0<=(c[Ra>>2]|0)>>>0){dj=421;break;}c[Ua>>2]=c[ib>>2];c[Ha>>2]=c[c[ib>>2]>>2];}}if((dj|0)==418){dj=0;c[Ta>>2]=Wa;}else if((dj|0)==421){dj=0;c[Ua>>2]=Wa;}c[c[Ua>>2]>>2]=0;c[c[Ta>>2]>>2]=0;c[(c[qa>>2]|0)+24>>2]=(c[Va>>2]|0)-8;c[pa>>2]=c[Xa>>2];}}while(0);c[md>>2]=c[pa>>2];break d;break;}default:{Uh=c[od>>2]|0;aj=c[pd>>2]|0;_i=c[qd>>2]|0;_h=c[rd>>2]|0;Qh=c[sd>>2]|0;Ph=c[td>>2]|0;Zi=c[ud>>2]|0;Zh=c[vd>>2]|0;c[mb>>2]=c[nd>>2];c[nb>>2]=Uh;c[ob>>2]=aj;c[pb>>2]=_i;c[qb>>2]=_h;c[rb>>2]=Qh;c[sb>>2]=Ph;c[tb>>2]=Zi;c[ub>>2]=Zh;c[vb>>2]=4;if((c[(c[nb>>2]|0)+20>>2]|0)>>>0<4095)Aj=c[(c[nb>>2]|0)+20>>2]|0;else Aj=4095;c[wb>>2]=Aj;c[xb>>2]=c[(c[mb>>2]|0)+4>>2];c[yb>>2]=(c[ob>>2]|0)-(c[xb>>2]|0);c[zb>>2]=c[(c[nb>>2]|0)+8>>2];c[Ab>>2]=(c[vb>>2]|0)==3?3:4;c[Bb>>2]=c[(c[mb>>2]|0)+36>>2];c[Cb>>2]=Sj(c[ob>>2]|0,c[zb>>2]|0,c[vb>>2]|0)|0;c[Db>>2]=c[(c[Bb>>2]|0)+(c[Cb>>2]<<2)>>2];c[Eb>>2]=c[(c[mb>>2]|0)+44>>2];c[Fb>>2]=(c[(c[nb>>2]|0)+4>>2]|0)-1;c[Gb>>2]=(1<<c[Fb>>2])-1;c[Hb>>2]=0;c[Ib>>2]=0;c[Jb>>2]=c[(c[mb>>2]|0)+8>>2];c[Kb>>2]=c[(c[mb>>2]|0)+12>>2];c[Lb>>2]=(c[Jb>>2]|0)+(c[Kb>>2]|0);c[Mb>>2]=(c[xb>>2]|0)+(c[Kb>>2]|0);if((c[Gb>>2]|0)>>>0>=(c[yb>>2]|0)>>>0)Bj=0;else Bj=(c[yb>>2]|0)-(c[Gb>>2]|0)|0;c[Nb>>2]=Bj;c[Ob>>2]=c[(c[mb>>2]|0)+16>>2];c[Pb>>2]=(c[Eb>>2]|0)+((c[yb>>2]&c[Gb>>2])<<1<<2);c[Qb>>2]=(c[Eb>>2]|0)+((c[yb>>2]&c[Gb>>2])<<1<<2)+4;c[Rb>>2]=(c[yb>>2]|0)+8+1;c[Tb>>2]=0;c[Ub>>2]=1<<c[(c[nb>>2]|0)+12>>2];c[Vb>>2]=(c[ub>>2]|0)-1;c[Wb>>2]=3+(c[sb>>2]|0);c[Xb>>2]=c[sb>>2];while(1){if((c[Xb>>2]|0)>>>0>=(c[Wb>>2]|0)>>>0){dj=340;break;}Zh=c[rb>>2]|0;if((c[Xb>>2]|0)==3)Cj=(c[Zh>>2]|0)-1|0;else Cj=c[Zh+(c[Xb>>2]<<2)>>2]|0;c[Yb>>2]=Cj;c[Zb>>2]=(c[yb>>2]|0)-(c[Yb>>2]|0);c[_b>>2]=0;do{if(((c[Yb>>2]|0)-1|0)>>>0<((c[yb>>2]|0)-(c[Kb>>2]|0)|0)>>>0){Zh=mm(c[ob>>2]|0,c[Ab>>2]|0)|0;if((Zh|0)!=(mm((c[ob>>2]|0)+(0-(c[Yb>>2]|0))|0,c[Ab>>2]|0)|0))break;Zh=Tj((c[ob>>2]|0)+(c[Ab>>2]|0)|0,(c[ob>>2]|0)+(c[Ab>>2]|0)+(0-(c[Yb>>2]|0))|0,c[pb>>2]|0)|0;c[_b>>2]=Zh+(c[Ab>>2]|0);}else{c[$b>>2]=(c[Jb>>2]|0)+(c[Zb>>2]|0);if(!(c[qb>>2]|0))break;if(!((((c[Kb>>2]|0)-1-(c[Zb>>2]|0)|0)>>>0>=3?((c[Yb>>2]|0)-1|0)>>>0<((c[yb>>2]|0)-(c[Ob>>2]|0)|0)>>>0:0)|0))break;Zh=mm(c[ob>>2]|0,c[Ab>>2]|0)|0;if((Zh|0)!=(mm(c[$b>>2]|0,c[Ab>>2]|0)|0))break;Zh=Uj((c[ob>>2]|0)+(c[Ab>>2]|0)|0,(c[$b>>2]|0)+(c[Ab>>2]|0)|0,c[pb>>2]|0,c[Lb>>2]|0,c[Mb>>2]|0)|0;c[_b>>2]=Zh+(c[Ab>>2]|0);}}while(0);if((c[_b>>2]|0)>>>0>(c[Vb>>2]|0)>>>0?(c[Vb>>2]=c[_b>>2],c[(c[tb>>2]|0)+(c[Tb>>2]<<3)>>2]=(c[Xb>>2]|0)-(c[sb>>2]|0),c[(c[tb>>2]|0)+(c[Tb>>2]<<3)+4>>2]=c[_b>>2],c[Tb>>2]=(c[Tb>>2]|0)+1,((c[_b>>2]|0)>>>0>(c[wb>>2]|0)>>>0?1:((c[ob>>2]|0)+(c[_b>>2]|0)|0)==(c[pb>>2]|0))|0):0){dj=338;break;}c[Xb>>2]=(c[Xb>>2]|0)+1;}h:do{if((dj|0)==338){dj=0;c[lb>>2]=c[Tb>>2];}else if((dj|0)==340){dj=0;do{if((c[vb>>2]|0)==3){if((c[Vb>>2]|0)>>>0>=(c[vb>>2]|0)>>>0)break;c[ac>>2]=nm(c[mb>>2]|0,c[ob>>2]|0)|0;if(!(((c[ac>>2]|0)>>>0>(c[Ob>>2]|0)>>>0?((c[yb>>2]|0)-(c[ac>>2]|0)|0)>>>0<262144:0)|0))break;do{if(c[qb>>2]|0){if((c[ac>>2]|0)>>>0>=(c[Kb>>2]|0)>>>0){dj=345;break;}c[dc>>2]=(c[Jb>>2]|0)+(c[ac>>2]|0);c[bc>>2]=Uj(c[ob>>2]|0,c[dc>>2]|0,c[pb>>2]|0,c[Lb>>2]|0,c[Mb>>2]|0)|0;}else dj=345;}while(0);if((dj|0)==345){dj=0;c[cc>>2]=(c[xb>>2]|0)+(c[ac>>2]|0);c[bc>>2]=Tj(c[ob>>2]|0,c[cc>>2]|0,c[pb>>2]|0)|0;}if((c[bc>>2]|0)>>>0<(c[vb>>2]|0)>>>0)break;c[Vb>>2]=c[bc>>2];c[c[tb>>2]>>2]=(c[yb>>2]|0)-(c[ac>>2]|0)+2;c[(c[tb>>2]|0)+4>>2]=c[bc>>2];c[Tb>>2]=1;if(!(((c[bc>>2]|0)>>>0>(c[wb>>2]|0)>>>0?1:((c[ob>>2]|0)+(c[bc>>2]|0)|0)==(c[pb>>2]|0))|0))break;c[(c[mb>>2]|0)+24>>2]=(c[yb>>2]|0)+1;c[lb>>2]=1;break h;}}while(0);c[(c[Bb>>2]|0)+(c[Cb>>2]<<2)>>2]=c[yb>>2];while(1){Zh=c[Ub>>2]|0;c[Ub>>2]=Zh+-1;if(!Zh)break;if((c[Db>>2]|0)>>>0<=(c[Ob>>2]|0)>>>0)break;c[ec>>2]=(c[Eb>>2]|0)+((c[Db>>2]&c[Gb>>2])<<1<<2);c[fc>>2]=(c[Hb>>2]|0)>>>0<(c[Ib>>2]|0)>>>0?c[Hb>>2]|0:c[Ib>>2]|0;do{if(c[qb>>2]|0){if(((c[Db>>2]|0)+(c[fc>>2]|0)|0)>>>0>=(c[Kb>>2]|0)>>>0){dj=355;break;}c[gc>>2]=(c[Jb>>2]|0)+(c[Db>>2]|0);Zh=Uj((c[ob>>2]|0)+(c[fc>>2]|0)|0,(c[gc>>2]|0)+(c[fc>>2]|0)|0,c[pb>>2]|0,c[Lb>>2]|0,c[Mb>>2]|0)|0;c[fc>>2]=(c[fc>>2]|0)+Zh;if(((c[Db>>2]|0)+(c[fc>>2]|0)|0)>>>0<(c[Kb>>2]|0)>>>0)break;c[gc>>2]=(c[xb>>2]|0)+(c[Db>>2]|0);}else dj=355;}while(0);if((dj|0)==355){dj=0;c[gc>>2]=(c[xb>>2]|0)+(c[Db>>2]|0);Zh=Tj((c[ob>>2]|0)+(c[fc>>2]|0)|0,(c[gc>>2]|0)+(c[fc>>2]|0)|0,c[pb>>2]|0)|0;c[fc>>2]=(c[fc>>2]|0)+Zh;}if((c[fc>>2]|0)>>>0>(c[Vb>>2]|0)>>>0){if((c[fc>>2]|0)>>>0>((c[Rb>>2]|0)-(c[Db>>2]|0)|0)>>>0)c[Rb>>2]=(c[Db>>2]|0)+(c[fc>>2]|0);c[Vb>>2]=c[fc>>2];c[(c[tb>>2]|0)+(c[Tb>>2]<<3)>>2]=(c[yb>>2]|0)-(c[Db>>2]|0)+2;c[(c[tb>>2]|0)+(c[Tb>>2]<<3)+4>>2]=c[fc>>2];c[Tb>>2]=(c[Tb>>2]|0)+1;if((c[fc>>2]|0)>>>0>4096)break;if(((c[ob>>2]|0)+(c[fc>>2]|0)|0)==(c[pb>>2]|0))break;}Zh=c[Db>>2]|0;if((d[(c[gc>>2]|0)+(c[fc>>2]|0)>>0]|0|0)<(d[(c[ob>>2]|0)+(c[fc>>2]|0)>>0]|0|0)){c[c[Pb>>2]>>2]=Zh;c[Hb>>2]=c[fc>>2];if((c[Db>>2]|0)>>>0<=(c[Nb>>2]|0)>>>0){dj=365;break;}c[Pb>>2]=(c[ec>>2]|0)+4;c[Db>>2]=c[(c[ec>>2]|0)+4>>2];}else{c[c[Qb>>2]>>2]=Zh;c[Ib>>2]=c[fc>>2];if((c[Db>>2]|0)>>>0<=(c[Nb>>2]|0)>>>0){dj=368;break;}c[Qb>>2]=c[ec>>2];c[Db>>2]=c[c[ec>>2]>>2];}}if((dj|0)==365){dj=0;c[Pb>>2]=Sb;}else if((dj|0)==368){dj=0;c[Qb>>2]=Sb;}c[c[Qb>>2]>>2]=0;c[c[Pb>>2]>>2]=0;c[(c[mb>>2]|0)+24>>2]=(c[Rb>>2]|0)-8;c[lb>>2]=c[Tb>>2];}}while(0);c[md>>2]=c[lb>>2];break d;}}}}while(0);c[Bi>>2]=c[md>>2];if(c[Bi>>2]|0){c[Di>>2]=c[(c[ci>>2]|0)+((c[Bi>>2]|0)-1<<3)+4>>2];if(((c[Di>>2]|0)>>>0>(c[$h>>2]|0)>>>0?1:((c[ei>>2]|0)+(c[Di>>2]|0)|0)>>>0>=4096)|0){dj=481;break b;}c[Ci>>2]=0;while(1){if((c[Ci>>2]|0)>>>0>=(c[Bi>>2]|0)>>>0)break c;c[Ei>>2]=c[(c[ci>>2]|0)+(c[Ci>>2]<<3)>>2];pm(Fi,(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+16|0,c[Ei>>2]|0,c[xi>>2]|0);c[Gi>>2]=c[(c[ci>>2]|0)+(c[Ci>>2]<<3)+4>>2];if((c[Ci>>2]|0)>>>0>0)Dj=(c[(c[ci>>2]|0)+((c[Ci>>2]|0)-1<<3)+4>>2]|0)+1|0;else Dj=c[ai>>2]|0;c[Hi>>2]=Dj;c[Ii>>2]=c[Gi>>2];i:while(1){if((c[Ii>>2]|0)>>>0<(c[Hi>>2]|0)>>>0)break;c[Ji>>2]=(c[ei>>2]|0)+(c[Ii>>2]|0);Zh=c[Ai>>2]|0;Zi=c[Ii>>2]|0;Ph=c[Th>>2]|0;Qh=c[Rh>>2]|0;c[k>>2]=c[Ei>>2];c[m>>2]=Zi;c[n>>2]=Ph;c[o>>2]=Qh;c[q>>2]=qm((c[k>>2]|0)+1|0)|0;c[r>>2]=(c[m>>2]|0)-3;if(c[(c[n>>2]|0)+56>>2]|0){Qh=(qm((c[r>>2]|0)+1|0)|0)+16|0;c[j>>2]=Qh+(c[q>>2]|0);}else{Qh=(c[q>>2]|0)+(c[(c[n>>2]|0)+52>>2]|0)|0;c[p>>2]=Qh-(qm((c[(c[(c[n>>2]|0)+12>>2]|0)+(c[q>>2]<<2)>>2]|0)+1|0)|0);if((c[o>>2]|0)<2&(c[q>>2]|0)>>>0>=20)c[p>>2]=(c[p>>2]|0)+((c[q>>2]|0)-19<<1);c[s>>2]=rm(c[r>>2]|0)|0;Qh=(c[5840+(c[s>>2]<<2)>>2]|0)+(c[(c[n>>2]|0)+48>>2]|0)|0;Ph=Qh-(qm((c[(c[(c[n>>2]|0)+8>>2]|0)+(c[s>>2]<<2)>>2]|0)+1|0)|0)|0;c[p>>2]=(c[p>>2]|0)+Ph;c[j>>2]=c[p>>2];}c[Ki>>2]=Zh+(c[j>>2]|0);do{if((c[Ji>>2]|0)>>>0<=(c[fi>>2]|0)>>>0){if((c[Ki>>2]|0)<(c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)>>2]|0)){dj=496;break;}if(!(c[Rh>>2]|0))break i;}else dj=496;}while(0);if((dj|0)==496){dj=0;while(1){if((c[fi>>2]|0)>>>0>=(c[Ji>>2]|0)>>>0)break;c[(c[bi>>2]|0)+(((c[fi>>2]|0)+1|0)*28|0)>>2]=1073741824;c[fi>>2]=(c[fi>>2]|0)+1;}c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)+8>>2]=c[Ii>>2];c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)+4>>2]=c[Ei>>2];c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)+12>>2]=c[yi>>2];c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)>>2]=c[Ki>>2];Zh=(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)+16|0;c[Zh>>2]=c[Fi>>2];c[Zh+4>>2]=c[Fi+4>>2];c[Zh+8>>2]=c[Fi+8>>2];}c[Ii>>2]=(c[Ii>>2]|0)+-1;}c[Ci>>2]=(c[Ci>>2]|0)+1;}}}}while(0);c[ei>>2]=(c[ei>>2]|0)+1;}if((dj|0)==481){dj=0;c[gi>>2]=c[Di>>2];c[hi>>2]=c[(c[ci>>2]|0)+((c[Bi>>2]|0)-1<<3)>>2];c[fi>>2]=(c[ei>>2]|0)+1;break;}else if((dj|0)==504){dj=0;c[gi>>2]=c[(c[bi>>2]|0)+((c[fi>>2]|0)*28|0)+8>>2];c[hi>>2]=c[(c[bi>>2]|0)+((c[fi>>2]|0)*28|0)+4>>2];c[ei>>2]=(c[fi>>2]|0)-(c[gi>>2]|0);break;}}else{c[gi>>2]=c[mi>>2];c[hi>>2]=c[(c[ci>>2]|0)+((c[ki>>2]|0)-1<<3)>>2];c[ei>>2]=0;c[fi>>2]=1;}}while(0);c[Li>>2]=c[gi>>2];c[Mi>>2]=c[hi>>2];c[Ni>>2]=c[ei>>2];while(1){c[Oi>>2]=c[(c[bi>>2]|0)+((c[Ni>>2]|0)*28|0)+8>>2];c[Pi>>2]=c[(c[bi>>2]|0)+((c[Ni>>2]|0)*28|0)+4>>2];c[(c[bi>>2]|0)+((c[Ni>>2]|0)*28|0)+8>>2]=c[Li>>2];c[(c[bi>>2]|0)+((c[Ni>>2]|0)*28|0)+4>>2]=c[Mi>>2];c[Li>>2]=c[Oi>>2];c[Mi>>2]=c[Pi>>2];if((c[Oi>>2]|0)>>>0>(c[Ni>>2]|0)>>>0)break;c[Ni>>2]=(c[Ni>>2]|0)-(c[Oi>>2]|0);}c[Qi>>2]=0;while(1){if((c[Qi>>2]|0)>>>0>=(c[fi>>2]|0)>>>0)break;c[Ri>>2]=(c[Vh>>2]|0)-(c[Wh>>2]|0);c[Si>>2]=c[(c[bi>>2]|0)+((c[Qi>>2]|0)*28|0)+8>>2];c[Ti>>2]=c[(c[bi>>2]|0)+((c[Qi>>2]|0)*28|0)+4>>2];if((c[Si>>2]|0)==1){c[Vh>>2]=(c[Vh>>2]|0)+1;c[Qi>>2]=(c[Qi>>2]|0)+1;continue;}c[Qi>>2]=(c[Qi>>2]|0)+(c[Si>>2]|0);c[Vh>>2]=(c[Vh>>2]|0)+(c[Si>>2]|0);if((c[Ti>>2]|0)>>>0<3){c[Ui>>2]=(c[Ti>>2]|0)+((c[Ri>>2]|0)==0&1);if(c[Ui>>2]|0){Zh=c[Nh>>2]|0;if((c[Ui>>2]|0)==3)Ej=(c[Zh>>2]|0)-1|0;else Ej=c[Zh+(c[Ui>>2]<<2)>>2]|0;c[Vi>>2]=Ej;if((c[Ui>>2]|0)>>>0>=2)c[(c[Nh>>2]|0)+8>>2]=c[(c[Nh>>2]|0)+4>>2];c[(c[Nh>>2]|0)+4>>2]=c[c[Nh>>2]>>2];c[c[Nh>>2]>>2]=c[Vi>>2];}}else{c[(c[Nh>>2]|0)+8>>2]=c[(c[Nh>>2]|0)+4>>2];c[(c[Nh>>2]|0)+4>>2]=c[c[Nh>>2]>>2];c[c[Nh>>2]>>2]=(c[Ti>>2]|0)-2;}vm(c[Th>>2]|0,c[Ri>>2]|0,c[Wh>>2]|0,c[Ti>>2]|0,c[Si>>2]|0);wm(c[Mh>>2]|0,c[Ri>>2]|0,c[Wh>>2]|0,c[Ti>>2]|0,(c[Si>>2]|0)-3|0);c[Wh>>2]=c[Vh>>2];}xm(c[Th>>2]|0);}l=i;return(c[Xh>>2]|0)-(c[Wh>>2]|0)|0;}function dm(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=l;l=l+48|0;i=h+36|0;j=h+32|0;k=h+28|0;m=h+24|0;n=h+20|0;o=h+16|0;p=h+12|0;q=h+8|0;r=h+4|0;s=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=c[(c[n>>2]|0)+8>>2];c[r>>2]=c[(c[n>>2]|0)+16>>2];c[s>>2]=c[(c[n>>2]|0)+20>>2];switch(c[r>>2]|0){case 7:{c[i>>2]=hn(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0,c[s>>2]|0,7)|0;t=c[i>>2]|0;l=h;return t|0;}case 5:{c[i>>2]=hn(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0,c[s>>2]|0,5)|0;t=c[i>>2]|0;l=h;return t|0;}case 6:{c[i>>2]=hn(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0,c[s>>2]|0,6)|0;t=c[i>>2]|0;l=h;return t|0;}default:{c[i>>2]=hn(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0,c[s>>2]|0,4)|0;t=c[i>>2]|0;l=h;return t|0;}}return 0;}function em(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;h=l;l=l+32|0;i=h+28|0;j=h+24|0;k=h+20|0;m=h+16|0;n=h+12|0;o=h+8|0;p=h+4|0;q=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=c[(c[n>>2]|0)+16>>2];switch(c[q>>2]|0){case 7:{c[i>>2]=Zm(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,7)|0;r=c[i>>2]|0;l=h;return r|0;}case 5:{c[i>>2]=Zm(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,5)|0;r=c[i>>2]|0;l=h;return r|0;}case 6:{c[i>>2]=Zm(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,6)|0;r=c[i>>2]|0;l=h;return r|0;}default:{c[i>>2]=Zm(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,4)|0;r=c[i>>2]|0;l=h;return r|0;}}return 0;}function fm(a,b,e,f,g,h){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0;i=l;l=l+288|0;j=i+272|0;k=i+268|0;m=i+264|0;n=i+260|0;o=i+256|0;p=i+252|0;q=i+248|0;r=i+244|0;s=i+240|0;t=i+236|0;u=i+232|0;v=i+228|0;w=i+224|0;x=i+220|0;y=i+216|0;z=i+212|0;A=i+208|0;B=i+204|0;C=i+200|0;D=i+196|0;E=i+192|0;F=i+188|0;G=i+184|0;H=i+180|0;I=i+176|0;J=i+172|0;K=i+168|0;L=i+164|0;M=i+160|0;N=i+156|0;O=i+152|0;P=i+148|0;Q=i+144|0;R=i+140|0;S=i+136|0;T=i+132|0;U=i+128|0;V=i+124|0;W=i+120|0;X=i+116|0;Y=i+112|0;Z=i+108|0;_=i+104|0;$=i+100|0;aa=i+96|0;ba=i+92|0;ca=i+88|0;da=i+84|0;ea=i+80|0;fa=i+76|0;ga=i+72|0;ha=i+68|0;ia=i+64|0;ja=i+60|0;ka=i+56|0;la=i+52|0;ma=i+48|0;na=i+44|0;oa=i+40|0;pa=i+36|0;qa=i+32|0;ra=i+28|0;sa=i+24|0;ta=i+20|0;ua=i+16|0;va=i+12|0;wa=i+8|0;xa=i+4|0;ya=i;c[ta>>2]=a;c[ua>>2]=b;c[va>>2]=e;c[wa>>2]=f;c[xa>>2]=g;c[ya>>2]=h;h=c[ua>>2]|0;ua=c[va>>2]|0;va=c[wa>>2]|0;wa=c[xa>>2]|0;xa=c[ya>>2]|0;c[j>>2]=c[ta>>2];c[k>>2]=h;c[m>>2]=ua;c[n>>2]=va;c[o>>2]=wa;c[p>>2]=xa;c[q>>2]=0;c[r>>2]=0;c[s>>2]=c[o>>2];c[t>>2]=c[s>>2];c[u>>2]=c[s>>2];c[v>>2]=(c[s>>2]|0)+(c[p>>2]|0);c[w>>2]=(c[v>>2]|0)+-8;c[x>>2]=c[(c[j>>2]|0)+4>>2];c[y>>2]=c[(c[j>>2]|0)+12>>2];c[z>>2]=c[(c[j>>2]|0)+16>>2];c[A>>2]=(c[x>>2]|0)+(c[y>>2]|0);c[B>>2]=c[(c[j>>2]|0)+8>>2];c[C>>2]=(c[B>>2]|0)+(c[y>>2]|0);c[D>>2]=(c[B>>2]|0)+(c[z>>2]|0);c[E>>2]=c[q>>2]|0?7:6;c[F>>2]=c[c[m>>2]>>2];c[G>>2]=c[(c[m>>2]|0)+4>>2];c[(c[j>>2]|0)+28>>2]=c[(c[j>>2]|0)+24>>2];c[t>>2]=(c[t>>2]|0)+((c[t>>2]|0)==(c[A>>2]|0)&1);while(1){if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;c[H>>2]=0;c[I>>2]=0;c[J>>2]=(c[t>>2]|0)+1;c[K>>2]=(c[t>>2]|0)-(c[x>>2]|0);c[L>>2]=(c[K>>2]|0)+1-(c[F>>2]|0);c[M>>2]=(c[L>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[B>>2]|0:c[x>>2]|0;c[N>>2]=(c[M>>2]|0)+(c[L>>2]|0);if(!((((c[L>>2]|0)>>>0>(c[z>>2]|0)>>>0?((c[y>>2]|0)-1-(c[L>>2]|0)|0)>>>0>=3:0)|0?(q=Bk((c[t>>2]|0)+1|0)|0,(q|0)==(Bk(c[N>>2]|0)|0)):0)?(c[O>>2]=(c[L>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[C>>2]|0:c[v>>2]|0,c[H>>2]=(Lm((c[t>>2]|0)+1+4|0,(c[N>>2]|0)+4|0,c[v>>2]|0,c[O>>2]|0,c[A>>2]|0)|0)+4,!(c[r>>2]|0)):0)){c[P>>2]=99999999;c[Q>>2]=tc[c[E>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,P)|0;if((c[Q>>2]|0)>>>0>(c[H>>2]|0)>>>0){c[H>>2]=c[Q>>2];c[J>>2]=c[t>>2];c[I>>2]=c[P>>2];}if((c[H>>2]|0)>>>0<4){c[t>>2]=(c[t>>2]|0)+(((c[t>>2]|0)-(c[u>>2]|0)>>8)+1);continue;}a:do{if((c[r>>2]|0)>>>0>=1)while(1){if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;c[t>>2]=(c[t>>2]|0)+1;c[K>>2]=(c[K>>2]|0)+1;if((((c[I>>2]|0?(c[R>>2]=(c[K>>2]|0)-(c[F>>2]|0),c[S>>2]=(c[R>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[B>>2]|0:c[x>>2]|0,c[T>>2]=(c[S>>2]|0)+(c[R>>2]|0),((c[R>>2]|0)>>>0>(c[z>>2]|0)>>>0?((c[y>>2]|0)-1-(c[R>>2]|0)|0)>>>0>=3:0)|0):0)?(q=Bk(c[t>>2]|0)|0,(q|0)==(Bk(c[T>>2]|0)|0)):0)?(c[U>>2]=(c[R>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[C>>2]|0:c[v>>2]|0,c[V>>2]=(Lm((c[t>>2]|0)+4|0,(c[T>>2]|0)+4|0,c[v>>2]|0,c[U>>2]|0,c[A>>2]|0)|0)+4,c[W>>2]=(c[V>>2]|0)*3,q=(c[H>>2]|0)*3|0,c[X>>2]=q-(Mm((c[I>>2]|0)+1|0)|0)+1,(c[V>>2]|0)>>>0>=4):0)?(c[W>>2]|0)>(c[X>>2]|0):0){c[H>>2]=c[V>>2];c[I>>2]=0;c[J>>2]=c[t>>2];}c[Y>>2]=99999999;c[Z>>2]=tc[c[E>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,Y)|0;q=c[Z>>2]<<2;c[_>>2]=q-(Mm((c[Y>>2]|0)+1|0)|0);q=c[H>>2]<<2;c[$>>2]=q-(Mm((c[I>>2]|0)+1|0)|0)+4;if((c[Z>>2]|0)>>>0>=4?(c[_>>2]|0)>(c[$>>2]|0):0){c[H>>2]=c[Z>>2];c[I>>2]=c[Y>>2];c[J>>2]=c[t>>2];continue;}if((c[r>>2]|0)!=2)break a;if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;c[t>>2]=(c[t>>2]|0)+1;c[K>>2]=(c[K>>2]|0)+1;if((((c[I>>2]|0?(c[aa>>2]=(c[K>>2]|0)-(c[F>>2]|0),c[ba>>2]=(c[aa>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[B>>2]|0:c[x>>2]|0,c[ca>>2]=(c[ba>>2]|0)+(c[aa>>2]|0),((c[aa>>2]|0)>>>0>(c[z>>2]|0)>>>0?((c[y>>2]|0)-1-(c[aa>>2]|0)|0)>>>0>=3:0)|0):0)?(q=Bk(c[t>>2]|0)|0,(q|0)==(Bk(c[ca>>2]|0)|0)):0)?(c[da>>2]=(c[aa>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[C>>2]|0:c[v>>2]|0,c[ea>>2]=(Lm((c[t>>2]|0)+4|0,(c[ca>>2]|0)+4|0,c[v>>2]|0,c[da>>2]|0,c[A>>2]|0)|0)+4,c[fa>>2]=c[ea>>2]<<2,q=c[H>>2]<<2,c[ga>>2]=q-(Mm((c[I>>2]|0)+1|0)|0)+1,(c[ea>>2]|0)>>>0>=4):0)?(c[fa>>2]|0)>(c[ga>>2]|0):0){c[H>>2]=c[ea>>2];c[I>>2]=0;c[J>>2]=c[t>>2];}c[ha>>2]=99999999;c[ia>>2]=tc[c[E>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,ha)|0;q=c[ia>>2]<<2;c[ja>>2]=q-(Mm((c[ha>>2]|0)+1|0)|0);q=c[H>>2]<<2;c[ka>>2]=q-(Mm((c[I>>2]|0)+1|0)|0)+7;if((c[ia>>2]|0)>>>0<4)break a;if((c[ja>>2]|0)<=(c[ka>>2]|0))break a;c[H>>2]=c[ia>>2];c[I>>2]=c[ha>>2];c[J>>2]=c[t>>2];}}while(0);if(c[I>>2]|0){c[la>>2]=(c[J>>2]|0)-(c[x>>2]|0)-((c[I>>2]|0)-2);c[ma>>2]=(c[la>>2]|0)>>>0<(c[y>>2]|0)>>>0?(c[B>>2]|0)+(c[la>>2]|0)|0:(c[x>>2]|0)+(c[la>>2]|0)|0;c[na>>2]=(c[la>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[D>>2]|0:c[A>>2]|0;while(1){if((c[J>>2]|0)>>>0<=(c[u>>2]|0)>>>0)break;if((c[ma>>2]|0)>>>0<=(c[na>>2]|0)>>>0)break;if((d[(c[J>>2]|0)+-1>>0]|0|0)!=(d[(c[ma>>2]|0)+-1>>0]|0|0))break;c[J>>2]=(c[J>>2]|0)+-1;c[ma>>2]=(c[ma>>2]|0)+-1;c[H>>2]=(c[H>>2]|0)+1;}c[G>>2]=c[F>>2];c[F>>2]=(c[I>>2]|0)-2;}}c[oa>>2]=(c[J>>2]|0)-(c[u>>2]|0);Nm(c[k>>2]|0,c[oa>>2]|0,c[u>>2]|0,c[I>>2]|0,(c[H>>2]|0)-3|0);q=(c[J>>2]|0)+(c[H>>2]|0)|0;c[t>>2]=q;c[u>>2]=q;while(1){if((c[t>>2]|0)>>>0>(c[w>>2]|0)>>>0)break;c[pa>>2]=(c[t>>2]|0)-(c[x>>2]|0)-(c[G>>2]|0);c[qa>>2]=(c[pa>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[B>>2]|0:c[x>>2]|0;c[ra>>2]=(c[qa>>2]|0)+(c[pa>>2]|0);if(!(((c[pa>>2]|0)>>>0>(c[z>>2]|0)>>>0?((c[y>>2]|0)-1-(c[pa>>2]|0)|0)>>>0>=3:0)|0))break;q=Bk(c[t>>2]|0)|0;if((q|0)!=(Bk(c[ra>>2]|0)|0))break;c[sa>>2]=(c[pa>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[C>>2]|0:c[v>>2]|0;c[H>>2]=(Lm((c[t>>2]|0)+4|0,(c[ra>>2]|0)+4|0,c[v>>2]|0,c[sa>>2]|0,c[A>>2]|0)|0)+4;c[I>>2]=c[G>>2];c[G>>2]=c[F>>2];c[F>>2]=c[I>>2];Nm(c[k>>2]|0,0,c[u>>2]|0,0,(c[H>>2]|0)-3|0);c[t>>2]=(c[t>>2]|0)+(c[H>>2]|0);c[u>>2]=c[t>>2];}}c[c[m>>2]>>2]=c[F>>2];c[(c[m>>2]|0)+4>>2]=c[G>>2];l=i;return(c[v>>2]|0)-(c[u>>2]|0)|0;}function gm(a,b,e,f,g,h){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0;i=l;l=l+288|0;j=i+272|0;k=i+268|0;m=i+264|0;n=i+260|0;o=i+256|0;p=i+252|0;q=i+248|0;r=i+244|0;s=i+240|0;t=i+236|0;u=i+232|0;v=i+228|0;w=i+224|0;x=i+220|0;y=i+216|0;z=i+212|0;A=i+208|0;B=i+204|0;C=i+200|0;D=i+196|0;E=i+192|0;F=i+188|0;G=i+184|0;H=i+180|0;I=i+176|0;J=i+172|0;K=i+168|0;L=i+164|0;M=i+160|0;N=i+156|0;O=i+152|0;P=i+148|0;Q=i+144|0;R=i+140|0;S=i+136|0;T=i+132|0;U=i+128|0;V=i+124|0;W=i+120|0;X=i+116|0;Y=i+112|0;Z=i+108|0;_=i+104|0;$=i+100|0;aa=i+96|0;ba=i+92|0;ca=i+88|0;da=i+84|0;ea=i+80|0;fa=i+76|0;ga=i+72|0;ha=i+68|0;ia=i+64|0;ja=i+60|0;ka=i+56|0;la=i+52|0;ma=i+48|0;na=i+44|0;oa=i+40|0;pa=i+36|0;qa=i+32|0;ra=i+28|0;sa=i+24|0;ta=i+20|0;ua=i+16|0;va=i+12|0;wa=i+8|0;xa=i+4|0;ya=i;c[ta>>2]=a;c[ua>>2]=b;c[va>>2]=e;c[wa>>2]=f;c[xa>>2]=g;c[ya>>2]=h;h=c[ua>>2]|0;ua=c[va>>2]|0;va=c[wa>>2]|0;wa=c[xa>>2]|0;xa=c[ya>>2]|0;c[j>>2]=c[ta>>2];c[k>>2]=h;c[m>>2]=ua;c[n>>2]=va;c[o>>2]=wa;c[p>>2]=xa;c[q>>2]=0;c[r>>2]=1;c[s>>2]=c[o>>2];c[t>>2]=c[s>>2];c[u>>2]=c[s>>2];c[v>>2]=(c[s>>2]|0)+(c[p>>2]|0);c[w>>2]=(c[v>>2]|0)+-8;c[x>>2]=c[(c[j>>2]|0)+4>>2];c[y>>2]=c[(c[j>>2]|0)+12>>2];c[z>>2]=c[(c[j>>2]|0)+16>>2];c[A>>2]=(c[x>>2]|0)+(c[y>>2]|0);c[B>>2]=c[(c[j>>2]|0)+8>>2];c[C>>2]=(c[B>>2]|0)+(c[y>>2]|0);c[D>>2]=(c[B>>2]|0)+(c[z>>2]|0);c[E>>2]=c[q>>2]|0?7:6;c[F>>2]=c[c[m>>2]>>2];c[G>>2]=c[(c[m>>2]|0)+4>>2];c[(c[j>>2]|0)+28>>2]=c[(c[j>>2]|0)+24>>2];c[t>>2]=(c[t>>2]|0)+((c[t>>2]|0)==(c[A>>2]|0)&1);while(1){if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;c[H>>2]=0;c[I>>2]=0;c[J>>2]=(c[t>>2]|0)+1;c[K>>2]=(c[t>>2]|0)-(c[x>>2]|0);c[L>>2]=(c[K>>2]|0)+1-(c[F>>2]|0);c[M>>2]=(c[L>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[B>>2]|0:c[x>>2]|0;c[N>>2]=(c[M>>2]|0)+(c[L>>2]|0);if(!((((c[L>>2]|0)>>>0>(c[z>>2]|0)>>>0?((c[y>>2]|0)-1-(c[L>>2]|0)|0)>>>0>=3:0)|0?(q=Bk((c[t>>2]|0)+1|0)|0,(q|0)==(Bk(c[N>>2]|0)|0)):0)?(c[O>>2]=(c[L>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[C>>2]|0:c[v>>2]|0,c[H>>2]=(Lm((c[t>>2]|0)+1+4|0,(c[N>>2]|0)+4|0,c[v>>2]|0,c[O>>2]|0,c[A>>2]|0)|0)+4,!(c[r>>2]|0)):0)){c[P>>2]=99999999;c[Q>>2]=tc[c[E>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,P)|0;if((c[Q>>2]|0)>>>0>(c[H>>2]|0)>>>0){c[H>>2]=c[Q>>2];c[J>>2]=c[t>>2];c[I>>2]=c[P>>2];}if((c[H>>2]|0)>>>0<4){c[t>>2]=(c[t>>2]|0)+(((c[t>>2]|0)-(c[u>>2]|0)>>8)+1);continue;}a:do{if((c[r>>2]|0)>>>0>=1)while(1){if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;c[t>>2]=(c[t>>2]|0)+1;c[K>>2]=(c[K>>2]|0)+1;if((((c[I>>2]|0?(c[R>>2]=(c[K>>2]|0)-(c[F>>2]|0),c[S>>2]=(c[R>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[B>>2]|0:c[x>>2]|0,c[T>>2]=(c[S>>2]|0)+(c[R>>2]|0),((c[R>>2]|0)>>>0>(c[z>>2]|0)>>>0?((c[y>>2]|0)-1-(c[R>>2]|0)|0)>>>0>=3:0)|0):0)?(q=Bk(c[t>>2]|0)|0,(q|0)==(Bk(c[T>>2]|0)|0)):0)?(c[U>>2]=(c[R>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[C>>2]|0:c[v>>2]|0,c[V>>2]=(Lm((c[t>>2]|0)+4|0,(c[T>>2]|0)+4|0,c[v>>2]|0,c[U>>2]|0,c[A>>2]|0)|0)+4,c[W>>2]=(c[V>>2]|0)*3,q=(c[H>>2]|0)*3|0,c[X>>2]=q-(Mm((c[I>>2]|0)+1|0)|0)+1,(c[V>>2]|0)>>>0>=4):0)?(c[W>>2]|0)>(c[X>>2]|0):0){c[H>>2]=c[V>>2];c[I>>2]=0;c[J>>2]=c[t>>2];}c[Y>>2]=99999999;c[Z>>2]=tc[c[E>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,Y)|0;q=c[Z>>2]<<2;c[_>>2]=q-(Mm((c[Y>>2]|0)+1|0)|0);q=c[H>>2]<<2;c[$>>2]=q-(Mm((c[I>>2]|0)+1|0)|0)+4;if((c[Z>>2]|0)>>>0>=4?(c[_>>2]|0)>(c[$>>2]|0):0){c[H>>2]=c[Z>>2];c[I>>2]=c[Y>>2];c[J>>2]=c[t>>2];continue;}if((c[r>>2]|0)!=2)break a;if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;c[t>>2]=(c[t>>2]|0)+1;c[K>>2]=(c[K>>2]|0)+1;if((((c[I>>2]|0?(c[aa>>2]=(c[K>>2]|0)-(c[F>>2]|0),c[ba>>2]=(c[aa>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[B>>2]|0:c[x>>2]|0,c[ca>>2]=(c[ba>>2]|0)+(c[aa>>2]|0),((c[aa>>2]|0)>>>0>(c[z>>2]|0)>>>0?((c[y>>2]|0)-1-(c[aa>>2]|0)|0)>>>0>=3:0)|0):0)?(q=Bk(c[t>>2]|0)|0,(q|0)==(Bk(c[ca>>2]|0)|0)):0)?(c[da>>2]=(c[aa>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[C>>2]|0:c[v>>2]|0,c[ea>>2]=(Lm((c[t>>2]|0)+4|0,(c[ca>>2]|0)+4|0,c[v>>2]|0,c[da>>2]|0,c[A>>2]|0)|0)+4,c[fa>>2]=c[ea>>2]<<2,q=c[H>>2]<<2,c[ga>>2]=q-(Mm((c[I>>2]|0)+1|0)|0)+1,(c[ea>>2]|0)>>>0>=4):0)?(c[fa>>2]|0)>(c[ga>>2]|0):0){c[H>>2]=c[ea>>2];c[I>>2]=0;c[J>>2]=c[t>>2];}c[ha>>2]=99999999;c[ia>>2]=tc[c[E>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,ha)|0;q=c[ia>>2]<<2;c[ja>>2]=q-(Mm((c[ha>>2]|0)+1|0)|0);q=c[H>>2]<<2;c[ka>>2]=q-(Mm((c[I>>2]|0)+1|0)|0)+7;if((c[ia>>2]|0)>>>0<4)break a;if((c[ja>>2]|0)<=(c[ka>>2]|0))break a;c[H>>2]=c[ia>>2];c[I>>2]=c[ha>>2];c[J>>2]=c[t>>2];}}while(0);if(c[I>>2]|0){c[la>>2]=(c[J>>2]|0)-(c[x>>2]|0)-((c[I>>2]|0)-2);c[ma>>2]=(c[la>>2]|0)>>>0<(c[y>>2]|0)>>>0?(c[B>>2]|0)+(c[la>>2]|0)|0:(c[x>>2]|0)+(c[la>>2]|0)|0;c[na>>2]=(c[la>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[D>>2]|0:c[A>>2]|0;while(1){if((c[J>>2]|0)>>>0<=(c[u>>2]|0)>>>0)break;if((c[ma>>2]|0)>>>0<=(c[na>>2]|0)>>>0)break;if((d[(c[J>>2]|0)+-1>>0]|0|0)!=(d[(c[ma>>2]|0)+-1>>0]|0|0))break;c[J>>2]=(c[J>>2]|0)+-1;c[ma>>2]=(c[ma>>2]|0)+-1;c[H>>2]=(c[H>>2]|0)+1;}c[G>>2]=c[F>>2];c[F>>2]=(c[I>>2]|0)-2;}}c[oa>>2]=(c[J>>2]|0)-(c[u>>2]|0);Nm(c[k>>2]|0,c[oa>>2]|0,c[u>>2]|0,c[I>>2]|0,(c[H>>2]|0)-3|0);q=(c[J>>2]|0)+(c[H>>2]|0)|0;c[t>>2]=q;c[u>>2]=q;while(1){if((c[t>>2]|0)>>>0>(c[w>>2]|0)>>>0)break;c[pa>>2]=(c[t>>2]|0)-(c[x>>2]|0)-(c[G>>2]|0);c[qa>>2]=(c[pa>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[B>>2]|0:c[x>>2]|0;c[ra>>2]=(c[qa>>2]|0)+(c[pa>>2]|0);if(!(((c[pa>>2]|0)>>>0>(c[z>>2]|0)>>>0?((c[y>>2]|0)-1-(c[pa>>2]|0)|0)>>>0>=3:0)|0))break;q=Bk(c[t>>2]|0)|0;if((q|0)!=(Bk(c[ra>>2]|0)|0))break;c[sa>>2]=(c[pa>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[C>>2]|0:c[v>>2]|0;c[H>>2]=(Lm((c[t>>2]|0)+4|0,(c[ra>>2]|0)+4|0,c[v>>2]|0,c[sa>>2]|0,c[A>>2]|0)|0)+4;c[I>>2]=c[G>>2];c[G>>2]=c[F>>2];c[F>>2]=c[I>>2];Nm(c[k>>2]|0,0,c[u>>2]|0,0,(c[H>>2]|0)-3|0);c[t>>2]=(c[t>>2]|0)+(c[H>>2]|0);c[u>>2]=c[t>>2];}}c[c[m>>2]>>2]=c[F>>2];c[(c[m>>2]|0)+4>>2]=c[G>>2];l=i;return(c[v>>2]|0)-(c[u>>2]|0)|0;}function hm(a,b,e,f,g,h){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0;i=l;l=l+288|0;j=i+272|0;k=i+268|0;m=i+264|0;n=i+260|0;o=i+256|0;p=i+252|0;q=i+248|0;r=i+244|0;s=i+240|0;t=i+236|0;u=i+232|0;v=i+228|0;w=i+224|0;x=i+220|0;y=i+216|0;z=i+212|0;A=i+208|0;B=i+204|0;C=i+200|0;D=i+196|0;E=i+192|0;F=i+188|0;G=i+184|0;H=i+180|0;I=i+176|0;J=i+172|0;K=i+168|0;L=i+164|0;M=i+160|0;N=i+156|0;O=i+152|0;P=i+148|0;Q=i+144|0;R=i+140|0;S=i+136|0;T=i+132|0;U=i+128|0;V=i+124|0;W=i+120|0;X=i+116|0;Y=i+112|0;Z=i+108|0;_=i+104|0;$=i+100|0;aa=i+96|0;ba=i+92|0;ca=i+88|0;da=i+84|0;ea=i+80|0;fa=i+76|0;ga=i+72|0;ha=i+68|0;ia=i+64|0;ja=i+60|0;ka=i+56|0;la=i+52|0;ma=i+48|0;na=i+44|0;oa=i+40|0;pa=i+36|0;qa=i+32|0;ra=i+28|0;sa=i+24|0;ta=i+20|0;ua=i+16|0;va=i+12|0;wa=i+8|0;xa=i+4|0;ya=i;c[ta>>2]=a;c[ua>>2]=b;c[va>>2]=e;c[wa>>2]=f;c[xa>>2]=g;c[ya>>2]=h;h=c[ua>>2]|0;ua=c[va>>2]|0;va=c[wa>>2]|0;wa=c[xa>>2]|0;xa=c[ya>>2]|0;c[j>>2]=c[ta>>2];c[k>>2]=h;c[m>>2]=ua;c[n>>2]=va;c[o>>2]=wa;c[p>>2]=xa;c[q>>2]=0;c[r>>2]=2;c[s>>2]=c[o>>2];c[t>>2]=c[s>>2];c[u>>2]=c[s>>2];c[v>>2]=(c[s>>2]|0)+(c[p>>2]|0);c[w>>2]=(c[v>>2]|0)+-8;c[x>>2]=c[(c[j>>2]|0)+4>>2];c[y>>2]=c[(c[j>>2]|0)+12>>2];c[z>>2]=c[(c[j>>2]|0)+16>>2];c[A>>2]=(c[x>>2]|0)+(c[y>>2]|0);c[B>>2]=c[(c[j>>2]|0)+8>>2];c[C>>2]=(c[B>>2]|0)+(c[y>>2]|0);c[D>>2]=(c[B>>2]|0)+(c[z>>2]|0);c[E>>2]=c[q>>2]|0?7:6;c[F>>2]=c[c[m>>2]>>2];c[G>>2]=c[(c[m>>2]|0)+4>>2];c[(c[j>>2]|0)+28>>2]=c[(c[j>>2]|0)+24>>2];c[t>>2]=(c[t>>2]|0)+((c[t>>2]|0)==(c[A>>2]|0)&1);while(1){if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;c[H>>2]=0;c[I>>2]=0;c[J>>2]=(c[t>>2]|0)+1;c[K>>2]=(c[t>>2]|0)-(c[x>>2]|0);c[L>>2]=(c[K>>2]|0)+1-(c[F>>2]|0);c[M>>2]=(c[L>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[B>>2]|0:c[x>>2]|0;c[N>>2]=(c[M>>2]|0)+(c[L>>2]|0);if(!((((c[L>>2]|0)>>>0>(c[z>>2]|0)>>>0?((c[y>>2]|0)-1-(c[L>>2]|0)|0)>>>0>=3:0)|0?(q=Bk((c[t>>2]|0)+1|0)|0,(q|0)==(Bk(c[N>>2]|0)|0)):0)?(c[O>>2]=(c[L>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[C>>2]|0:c[v>>2]|0,c[H>>2]=(Lm((c[t>>2]|0)+1+4|0,(c[N>>2]|0)+4|0,c[v>>2]|0,c[O>>2]|0,c[A>>2]|0)|0)+4,!(c[r>>2]|0)):0)){c[P>>2]=99999999;c[Q>>2]=tc[c[E>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,P)|0;if((c[Q>>2]|0)>>>0>(c[H>>2]|0)>>>0){c[H>>2]=c[Q>>2];c[J>>2]=c[t>>2];c[I>>2]=c[P>>2];}if((c[H>>2]|0)>>>0<4){c[t>>2]=(c[t>>2]|0)+(((c[t>>2]|0)-(c[u>>2]|0)>>8)+1);continue;}a:do{if((c[r>>2]|0)>>>0>=1)while(1){if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;c[t>>2]=(c[t>>2]|0)+1;c[K>>2]=(c[K>>2]|0)+1;if((((c[I>>2]|0?(c[R>>2]=(c[K>>2]|0)-(c[F>>2]|0),c[S>>2]=(c[R>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[B>>2]|0:c[x>>2]|0,c[T>>2]=(c[S>>2]|0)+(c[R>>2]|0),((c[R>>2]|0)>>>0>(c[z>>2]|0)>>>0?((c[y>>2]|0)-1-(c[R>>2]|0)|0)>>>0>=3:0)|0):0)?(q=Bk(c[t>>2]|0)|0,(q|0)==(Bk(c[T>>2]|0)|0)):0)?(c[U>>2]=(c[R>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[C>>2]|0:c[v>>2]|0,c[V>>2]=(Lm((c[t>>2]|0)+4|0,(c[T>>2]|0)+4|0,c[v>>2]|0,c[U>>2]|0,c[A>>2]|0)|0)+4,c[W>>2]=(c[V>>2]|0)*3,q=(c[H>>2]|0)*3|0,c[X>>2]=q-(Mm((c[I>>2]|0)+1|0)|0)+1,(c[V>>2]|0)>>>0>=4):0)?(c[W>>2]|0)>(c[X>>2]|0):0){c[H>>2]=c[V>>2];c[I>>2]=0;c[J>>2]=c[t>>2];}c[Y>>2]=99999999;c[Z>>2]=tc[c[E>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,Y)|0;q=c[Z>>2]<<2;c[_>>2]=q-(Mm((c[Y>>2]|0)+1|0)|0);q=c[H>>2]<<2;c[$>>2]=q-(Mm((c[I>>2]|0)+1|0)|0)+4;if((c[Z>>2]|0)>>>0>=4?(c[_>>2]|0)>(c[$>>2]|0):0){c[H>>2]=c[Z>>2];c[I>>2]=c[Y>>2];c[J>>2]=c[t>>2];continue;}if((c[r>>2]|0)!=2)break a;if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;c[t>>2]=(c[t>>2]|0)+1;c[K>>2]=(c[K>>2]|0)+1;if((((c[I>>2]|0?(c[aa>>2]=(c[K>>2]|0)-(c[F>>2]|0),c[ba>>2]=(c[aa>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[B>>2]|0:c[x>>2]|0,c[ca>>2]=(c[ba>>2]|0)+(c[aa>>2]|0),((c[aa>>2]|0)>>>0>(c[z>>2]|0)>>>0?((c[y>>2]|0)-1-(c[aa>>2]|0)|0)>>>0>=3:0)|0):0)?(q=Bk(c[t>>2]|0)|0,(q|0)==(Bk(c[ca>>2]|0)|0)):0)?(c[da>>2]=(c[aa>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[C>>2]|0:c[v>>2]|0,c[ea>>2]=(Lm((c[t>>2]|0)+4|0,(c[ca>>2]|0)+4|0,c[v>>2]|0,c[da>>2]|0,c[A>>2]|0)|0)+4,c[fa>>2]=c[ea>>2]<<2,q=c[H>>2]<<2,c[ga>>2]=q-(Mm((c[I>>2]|0)+1|0)|0)+1,(c[ea>>2]|0)>>>0>=4):0)?(c[fa>>2]|0)>(c[ga>>2]|0):0){c[H>>2]=c[ea>>2];c[I>>2]=0;c[J>>2]=c[t>>2];}c[ha>>2]=99999999;c[ia>>2]=tc[c[E>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,ha)|0;q=c[ia>>2]<<2;c[ja>>2]=q-(Mm((c[ha>>2]|0)+1|0)|0);q=c[H>>2]<<2;c[ka>>2]=q-(Mm((c[I>>2]|0)+1|0)|0)+7;if((c[ia>>2]|0)>>>0<4)break a;if((c[ja>>2]|0)<=(c[ka>>2]|0))break a;c[H>>2]=c[ia>>2];c[I>>2]=c[ha>>2];c[J>>2]=c[t>>2];}}while(0);if(c[I>>2]|0){c[la>>2]=(c[J>>2]|0)-(c[x>>2]|0)-((c[I>>2]|0)-2);c[ma>>2]=(c[la>>2]|0)>>>0<(c[y>>2]|0)>>>0?(c[B>>2]|0)+(c[la>>2]|0)|0:(c[x>>2]|0)+(c[la>>2]|0)|0;c[na>>2]=(c[la>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[D>>2]|0:c[A>>2]|0;while(1){if((c[J>>2]|0)>>>0<=(c[u>>2]|0)>>>0)break;if((c[ma>>2]|0)>>>0<=(c[na>>2]|0)>>>0)break;if((d[(c[J>>2]|0)+-1>>0]|0|0)!=(d[(c[ma>>2]|0)+-1>>0]|0|0))break;c[J>>2]=(c[J>>2]|0)+-1;c[ma>>2]=(c[ma>>2]|0)+-1;c[H>>2]=(c[H>>2]|0)+1;}c[G>>2]=c[F>>2];c[F>>2]=(c[I>>2]|0)-2;}}c[oa>>2]=(c[J>>2]|0)-(c[u>>2]|0);Nm(c[k>>2]|0,c[oa>>2]|0,c[u>>2]|0,c[I>>2]|0,(c[H>>2]|0)-3|0);q=(c[J>>2]|0)+(c[H>>2]|0)|0;c[t>>2]=q;c[u>>2]=q;while(1){if((c[t>>2]|0)>>>0>(c[w>>2]|0)>>>0)break;c[pa>>2]=(c[t>>2]|0)-(c[x>>2]|0)-(c[G>>2]|0);c[qa>>2]=(c[pa>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[B>>2]|0:c[x>>2]|0;c[ra>>2]=(c[qa>>2]|0)+(c[pa>>2]|0);if(!(((c[pa>>2]|0)>>>0>(c[z>>2]|0)>>>0?((c[y>>2]|0)-1-(c[pa>>2]|0)|0)>>>0>=3:0)|0))break;q=Bk(c[t>>2]|0)|0;if((q|0)!=(Bk(c[ra>>2]|0)|0))break;c[sa>>2]=(c[pa>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[C>>2]|0:c[v>>2]|0;c[H>>2]=(Lm((c[t>>2]|0)+4|0,(c[ra>>2]|0)+4|0,c[v>>2]|0,c[sa>>2]|0,c[A>>2]|0)|0)+4;c[I>>2]=c[G>>2];c[G>>2]=c[F>>2];c[F>>2]=c[I>>2];Nm(c[k>>2]|0,0,c[u>>2]|0,0,(c[H>>2]|0)-3|0);c[t>>2]=(c[t>>2]|0)+(c[H>>2]|0);c[u>>2]=c[t>>2];}}c[c[m>>2]>>2]=c[F>>2];c[(c[m>>2]|0)+4>>2]=c[G>>2];l=i;return(c[v>>2]|0)-(c[u>>2]|0)|0;}function im(a,b,e,f,g,h){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0;i=l;l=l+288|0;j=i+272|0;k=i+268|0;m=i+264|0;n=i+260|0;o=i+256|0;p=i+252|0;q=i+248|0;r=i+244|0;s=i+240|0;t=i+236|0;u=i+232|0;v=i+228|0;w=i+224|0;x=i+220|0;y=i+216|0;z=i+212|0;A=i+208|0;B=i+204|0;C=i+200|0;D=i+196|0;E=i+192|0;F=i+188|0;G=i+184|0;H=i+180|0;I=i+176|0;J=i+172|0;K=i+168|0;L=i+164|0;M=i+160|0;N=i+156|0;O=i+152|0;P=i+148|0;Q=i+144|0;R=i+140|0;S=i+136|0;T=i+132|0;U=i+128|0;V=i+124|0;W=i+120|0;X=i+116|0;Y=i+112|0;Z=i+108|0;_=i+104|0;$=i+100|0;aa=i+96|0;ba=i+92|0;ca=i+88|0;da=i+84|0;ea=i+80|0;fa=i+76|0;ga=i+72|0;ha=i+68|0;ia=i+64|0;ja=i+60|0;ka=i+56|0;la=i+52|0;ma=i+48|0;na=i+44|0;oa=i+40|0;pa=i+36|0;qa=i+32|0;ra=i+28|0;sa=i+24|0;ta=i+20|0;ua=i+16|0;va=i+12|0;wa=i+8|0;xa=i+4|0;ya=i;c[ta>>2]=a;c[ua>>2]=b;c[va>>2]=e;c[wa>>2]=f;c[xa>>2]=g;c[ya>>2]=h;h=c[ua>>2]|0;ua=c[va>>2]|0;va=c[wa>>2]|0;wa=c[xa>>2]|0;xa=c[ya>>2]|0;c[j>>2]=c[ta>>2];c[k>>2]=h;c[m>>2]=ua;c[n>>2]=va;c[o>>2]=wa;c[p>>2]=xa;c[q>>2]=1;c[r>>2]=2;c[s>>2]=c[o>>2];c[t>>2]=c[s>>2];c[u>>2]=c[s>>2];c[v>>2]=(c[s>>2]|0)+(c[p>>2]|0);c[w>>2]=(c[v>>2]|0)+-8;c[x>>2]=c[(c[j>>2]|0)+4>>2];c[y>>2]=c[(c[j>>2]|0)+12>>2];c[z>>2]=c[(c[j>>2]|0)+16>>2];c[A>>2]=(c[x>>2]|0)+(c[y>>2]|0);c[B>>2]=c[(c[j>>2]|0)+8>>2];c[C>>2]=(c[B>>2]|0)+(c[y>>2]|0);c[D>>2]=(c[B>>2]|0)+(c[z>>2]|0);c[E>>2]=c[q>>2]|0?7:6;c[F>>2]=c[c[m>>2]>>2];c[G>>2]=c[(c[m>>2]|0)+4>>2];c[(c[j>>2]|0)+28>>2]=c[(c[j>>2]|0)+24>>2];c[t>>2]=(c[t>>2]|0)+((c[t>>2]|0)==(c[A>>2]|0)&1);while(1){if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;c[H>>2]=0;c[I>>2]=0;c[J>>2]=(c[t>>2]|0)+1;c[K>>2]=(c[t>>2]|0)-(c[x>>2]|0);c[L>>2]=(c[K>>2]|0)+1-(c[F>>2]|0);c[M>>2]=(c[L>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[B>>2]|0:c[x>>2]|0;c[N>>2]=(c[M>>2]|0)+(c[L>>2]|0);if(!((((c[L>>2]|0)>>>0>(c[z>>2]|0)>>>0?((c[y>>2]|0)-1-(c[L>>2]|0)|0)>>>0>=3:0)|0?(q=Bk((c[t>>2]|0)+1|0)|0,(q|0)==(Bk(c[N>>2]|0)|0)):0)?(c[O>>2]=(c[L>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[C>>2]|0:c[v>>2]|0,c[H>>2]=(Lm((c[t>>2]|0)+1+4|0,(c[N>>2]|0)+4|0,c[v>>2]|0,c[O>>2]|0,c[A>>2]|0)|0)+4,!(c[r>>2]|0)):0)){c[P>>2]=99999999;c[Q>>2]=tc[c[E>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,P)|0;if((c[Q>>2]|0)>>>0>(c[H>>2]|0)>>>0){c[H>>2]=c[Q>>2];c[J>>2]=c[t>>2];c[I>>2]=c[P>>2];}if((c[H>>2]|0)>>>0<4){c[t>>2]=(c[t>>2]|0)+(((c[t>>2]|0)-(c[u>>2]|0)>>8)+1);continue;}a:do{if((c[r>>2]|0)>>>0>=1)while(1){if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;c[t>>2]=(c[t>>2]|0)+1;c[K>>2]=(c[K>>2]|0)+1;if((((c[I>>2]|0?(c[R>>2]=(c[K>>2]|0)-(c[F>>2]|0),c[S>>2]=(c[R>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[B>>2]|0:c[x>>2]|0,c[T>>2]=(c[S>>2]|0)+(c[R>>2]|0),((c[R>>2]|0)>>>0>(c[z>>2]|0)>>>0?((c[y>>2]|0)-1-(c[R>>2]|0)|0)>>>0>=3:0)|0):0)?(q=Bk(c[t>>2]|0)|0,(q|0)==(Bk(c[T>>2]|0)|0)):0)?(c[U>>2]=(c[R>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[C>>2]|0:c[v>>2]|0,c[V>>2]=(Lm((c[t>>2]|0)+4|0,(c[T>>2]|0)+4|0,c[v>>2]|0,c[U>>2]|0,c[A>>2]|0)|0)+4,c[W>>2]=(c[V>>2]|0)*3,q=(c[H>>2]|0)*3|0,c[X>>2]=q-(Mm((c[I>>2]|0)+1|0)|0)+1,(c[V>>2]|0)>>>0>=4):0)?(c[W>>2]|0)>(c[X>>2]|0):0){c[H>>2]=c[V>>2];c[I>>2]=0;c[J>>2]=c[t>>2];}c[Y>>2]=99999999;c[Z>>2]=tc[c[E>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,Y)|0;q=c[Z>>2]<<2;c[_>>2]=q-(Mm((c[Y>>2]|0)+1|0)|0);q=c[H>>2]<<2;c[$>>2]=q-(Mm((c[I>>2]|0)+1|0)|0)+4;if((c[Z>>2]|0)>>>0>=4?(c[_>>2]|0)>(c[$>>2]|0):0){c[H>>2]=c[Z>>2];c[I>>2]=c[Y>>2];c[J>>2]=c[t>>2];continue;}if((c[r>>2]|0)!=2)break a;if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;c[t>>2]=(c[t>>2]|0)+1;c[K>>2]=(c[K>>2]|0)+1;if((((c[I>>2]|0?(c[aa>>2]=(c[K>>2]|0)-(c[F>>2]|0),c[ba>>2]=(c[aa>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[B>>2]|0:c[x>>2]|0,c[ca>>2]=(c[ba>>2]|0)+(c[aa>>2]|0),((c[aa>>2]|0)>>>0>(c[z>>2]|0)>>>0?((c[y>>2]|0)-1-(c[aa>>2]|0)|0)>>>0>=3:0)|0):0)?(q=Bk(c[t>>2]|0)|0,(q|0)==(Bk(c[ca>>2]|0)|0)):0)?(c[da>>2]=(c[aa>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[C>>2]|0:c[v>>2]|0,c[ea>>2]=(Lm((c[t>>2]|0)+4|0,(c[ca>>2]|0)+4|0,c[v>>2]|0,c[da>>2]|0,c[A>>2]|0)|0)+4,c[fa>>2]=c[ea>>2]<<2,q=c[H>>2]<<2,c[ga>>2]=q-(Mm((c[I>>2]|0)+1|0)|0)+1,(c[ea>>2]|0)>>>0>=4):0)?(c[fa>>2]|0)>(c[ga>>2]|0):0){c[H>>2]=c[ea>>2];c[I>>2]=0;c[J>>2]=c[t>>2];}c[ha>>2]=99999999;c[ia>>2]=tc[c[E>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,ha)|0;q=c[ia>>2]<<2;c[ja>>2]=q-(Mm((c[ha>>2]|0)+1|0)|0);q=c[H>>2]<<2;c[ka>>2]=q-(Mm((c[I>>2]|0)+1|0)|0)+7;if((c[ia>>2]|0)>>>0<4)break a;if((c[ja>>2]|0)<=(c[ka>>2]|0))break a;c[H>>2]=c[ia>>2];c[I>>2]=c[ha>>2];c[J>>2]=c[t>>2];}}while(0);if(c[I>>2]|0){c[la>>2]=(c[J>>2]|0)-(c[x>>2]|0)-((c[I>>2]|0)-2);c[ma>>2]=(c[la>>2]|0)>>>0<(c[y>>2]|0)>>>0?(c[B>>2]|0)+(c[la>>2]|0)|0:(c[x>>2]|0)+(c[la>>2]|0)|0;c[na>>2]=(c[la>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[D>>2]|0:c[A>>2]|0;while(1){if((c[J>>2]|0)>>>0<=(c[u>>2]|0)>>>0)break;if((c[ma>>2]|0)>>>0<=(c[na>>2]|0)>>>0)break;if((d[(c[J>>2]|0)+-1>>0]|0|0)!=(d[(c[ma>>2]|0)+-1>>0]|0|0))break;c[J>>2]=(c[J>>2]|0)+-1;c[ma>>2]=(c[ma>>2]|0)+-1;c[H>>2]=(c[H>>2]|0)+1;}c[G>>2]=c[F>>2];c[F>>2]=(c[I>>2]|0)-2;}}c[oa>>2]=(c[J>>2]|0)-(c[u>>2]|0);Nm(c[k>>2]|0,c[oa>>2]|0,c[u>>2]|0,c[I>>2]|0,(c[H>>2]|0)-3|0);q=(c[J>>2]|0)+(c[H>>2]|0)|0;c[t>>2]=q;c[u>>2]=q;while(1){if((c[t>>2]|0)>>>0>(c[w>>2]|0)>>>0)break;c[pa>>2]=(c[t>>2]|0)-(c[x>>2]|0)-(c[G>>2]|0);c[qa>>2]=(c[pa>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[B>>2]|0:c[x>>2]|0;c[ra>>2]=(c[qa>>2]|0)+(c[pa>>2]|0);if(!(((c[pa>>2]|0)>>>0>(c[z>>2]|0)>>>0?((c[y>>2]|0)-1-(c[pa>>2]|0)|0)>>>0>=3:0)|0))break;q=Bk(c[t>>2]|0)|0;if((q|0)!=(Bk(c[ra>>2]|0)|0))break;c[sa>>2]=(c[pa>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[C>>2]|0:c[v>>2]|0;c[H>>2]=(Lm((c[t>>2]|0)+4|0,(c[ra>>2]|0)+4|0,c[v>>2]|0,c[sa>>2]|0,c[A>>2]|0)|0)+4;c[I>>2]=c[G>>2];c[G>>2]=c[F>>2];c[F>>2]=c[I>>2];Nm(c[k>>2]|0,0,c[u>>2]|0,0,(c[H>>2]|0)-3|0);c[t>>2]=(c[t>>2]|0)+(c[H>>2]|0);c[u>>2]=c[t>>2];}}c[c[m>>2]>>2]=c[F>>2];c[(c[m>>2]|0)+4>>2]=c[G>>2];l=i;return(c[v>>2]|0)-(c[u>>2]|0)|0;}function DC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;f=l;l=l+80|0;g=f+56|0;h=f+40|0;i=f+28|0;j=f+12|0;k=f;m=f+24|0;a:do{if((d-b|0)>2?(a[b>>0]|0)==85:0){switch(a[b+1>>0]|0){case 116:{c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;RB(h,19476,AB(19476)|0);IB(g,h);n=e+4|0;o=c[n>>2]|0;if(o>>>0<(c[e+8>>2]|0)>>>0){KB(o,g);c[n>>2]=(c[n>>2]|0)+24;}else LB(e,g);QA(g);iB(h);o=b+2|0;if((o|0)==(d|0)){p=c[n>>2]|0;q=0;while(1){if((q|0)==-1)break;r=q+-1|0;QA(p+(r*24|0)|0);q=r;}c[n>>2]=p+-24;s=b;break a;}if(((a[o>>0]|0)+-48|0)>>>0<10){q=b+3|0;while(1){if((q|0)==(d|0)){t=d;break;}if(((a[q>>0]|0)+-48|0)>>>0>=10){t=q;break;}q=q+1|0;}MC((c[n>>2]|0)+-24|0,o,t);u=t;}else u=o;NC((c[n>>2]|0)+-24|0,39);if((u|0)!=(d|0)?(a[u>>0]|0)==95:0){s=u+1|0;break a;}q=c[n>>2]|0;p=0;while(1){if((p|0)==-1)break;r=p+-1|0;QA(q+(r*24|0)|0);p=r;}c[n>>2]=q+-24;s=b;break a;break;}case 108:break;default:{s=b;break a;}}c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;RB(i,19485,AB(19485)|0);IB(g,i);p=e+4|0;o=c[p>>2]|0;if(o>>>0<(c[e+8>>2]|0)>>>0){KB(o,g);c[p>>2]=(c[p>>2]|0)+24;}else LB(e,g);QA(g);iB(i);o=b+2|0;do{if((a[o>>0]|0)!=118){r=mB(o,d,e)|0;if((r|0)==(o|0)){v=c[p>>2]|0;w=0;while(1){if((w|0)==-1)break;x=w+-1|0;QA(v+(x*24|0)|0);w=x;}c[p>>2]=v+-24;s=b;break a;}w=c[p>>2]|0;if(((w-(c[e>>2]|0)|0)/24|0)>>>0<2){s=b;break a;}FB(j,w+-24|0);w=c[p>>2]|0;x=0;while(1){if((x|0)==-1)break;y=x+-1|0;QA(w+(y*24|0)|0);x=y;}c[p>>2]=w+-24;x=j+11|0;v=a[x>>0]|0;y=v<<24>>24<0;z=j+4|0;TA(w+-48|0,y?c[j>>2]|0:j,y?c[z>>2]|0:v&255)|0;v=r;while(1){y=mB(v,d,e)|0;if((y|0)==(v|0)){A=54;break;}B=c[p>>2]|0;if(((B-(c[e>>2]|0)|0)/24|0)>>>0<2){A=82;break;}FB(k,B+-24|0);if((a[x>>0]|0)<0){B=c[j>>2]|0;a[g>>0]=0;cB(B,g);c[z>>2]=0;}else{a[g>>0]=0;cB(j,g);a[x>>0]=0;}TB(j);c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];B=0;while(1){if((B|0)==3)break;c[k+(B<<2)>>2]=0;B=B+1|0;}iB(k);B=c[p>>2]|0;C=0;while(1){if((C|0)==-1)break;D=C+-1|0;QA(B+(D*24|0)|0);C=D;}c[p>>2]=B+-24;C=a[x>>0]|0;if((C<<24>>24<0?c[z>>2]|0:C&255)|0){qB(B+-48|0,18897)|0;C=a[x>>0]|0;D=C<<24>>24<0;TA((c[p>>2]|0)+-24|0,D?c[j>>2]|0:j,D?c[z>>2]|0:C&255)|0;}v=y;}if((A|0)==54){qB((c[p>>2]|0)+-24|0,18673)|0;iB(j);E=v;break;}else if((A|0)==82){iB(j);s=b;break a;}}else{NC((c[p>>2]|0)+-24|0,41);E=b+3|0;}}while(0);if((E|0)!=(d|0)?(a[E>>0]|0)==69:0){o=E+1|0;if((o|0)==(d|0)){q=c[p>>2]|0;n=0;while(1){if((n|0)==-1)break;z=n+-1|0;QA(q+(z*24|0)|0);n=z;}c[p>>2]=q+-24;s=b;break;}if(((a[o>>0]|0)+-48|0)>>>0<10){n=E+2|0;while(1){if((n|0)==(d|0)){F=d;break;}if(((a[n>>0]|0)+-48|0)>>>0>=10){F=n;break;}n=n+1|0;}n=(c[p>>2]|0)+-24|0;if((a[n+11>>0]|0)<0)G=c[n>>2]|0;else G=n;c[m>>2]=G+7;c[g>>2]=c[m>>2];OC(n,g,o,F)|0;H=F;}else H=o;if((H|0)!=(d|0)?(a[H>>0]|0)==95:0){s=H+1|0;break;}n=c[p>>2]|0;q=0;while(1){if((q|0)==-1)break;z=q+-1|0;QA(n+(z*24|0)|0);q=z;}c[p>>2]=n+-24;s=b;break;}q=c[p>>2]|0;o=0;while(1){if((o|0)==-1)break;z=o+-1|0;QA(q+(z*24|0)|0);o=z;}c[p>>2]=q+-24;s=b;}else s=b;}while(0);l=f;return s|0;}function EC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f;a:do{if((d-b|0)>1)do{switch(a[b>>0]|0){case 97:{switch(a[b+1>>0]|0){case 97:{FC(g,18975);h=e+4|0;i=c[h>>2]|0;if(i>>>0<(c[e+8>>2]|0)>>>0){KB(i,g);c[h>>2]=(c[h>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 110:case 100:{GC(g,18986);h=e+4|0;i=c[h>>2]|0;if(i>>>0<(c[e+8>>2]|0)>>>0){KB(i,g);c[h>>2]=(c[h>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 78:{FC(g,18996);h=e+4|0;i=c[h>>2]|0;if(i>>>0<(c[e+8>>2]|0)>>>0){KB(i,g);c[h>>2]=(c[h>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 83:{GC(g,19007);h=e+4|0;i=c[h>>2]|0;if(i>>>0<(c[e+8>>2]|0)>>>0){KB(i,g);c[h>>2]=(c[h>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}default:{j=b;break a;}}break;}case 99:{switch(a[b+1>>0]|0){case 108:{FC(g,19017);h=e+4|0;i=c[h>>2]|0;if(i>>>0<(c[e+8>>2]|0)>>>0){KB(i,g);c[h>>2]=(c[h>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 109:{GC(g,19028);h=e+4|0;i=c[h>>2]|0;if(i>>>0<(c[e+8>>2]|0)>>>0){KB(i,g);c[h>>2]=(c[h>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 111:{GC(g,19038);h=e+4|0;i=c[h>>2]|0;if(i>>>0<(c[e+8>>2]|0)>>>0){KB(i,g);c[h>>2]=(c[h>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 118:{h=e+63|0;i=a[h>>0]|0;a[h>>0]=0;k=b+2|0;m=mB(k,d,e)|0;a[h>>0]=i;if((m|0)==(k|0)){j=b;break a;}k=c[e+4>>2]|0;if((c[e>>2]|0)==(k|0)){j=b;break a;}pB(k+-24|0,0,19048)|0;a[e+60>>0]=1;j=m;break a;break;}default:{j=b;break a;}}break;}case 100:{switch(a[b+1>>0]|0){case 97:{HC(g,19058);m=e+4|0;k=c[m>>2]|0;if(k>>>0<(c[e+8>>2]|0)>>>0){KB(k,g);c[m>>2]=(c[m>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 101:{GC(g,19076);m=e+4|0;k=c[m>>2]|0;if(k>>>0<(c[e+8>>2]|0)>>>0){KB(k,g);c[m>>2]=(c[m>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 108:{IC(g);m=e+4|0;k=c[m>>2]|0;if(k>>>0<(c[e+8>>2]|0)>>>0){KB(k,g);c[m>>2]=(c[m>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 118:{GC(g,19086);m=e+4|0;k=c[m>>2]|0;if(k>>>0<(c[e+8>>2]|0)>>>0){KB(k,g);c[m>>2]=(c[m>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 86:{FC(g,19096);m=e+4|0;k=c[m>>2]|0;if(k>>>0<(c[e+8>>2]|0)>>>0){KB(k,g);c[m>>2]=(c[m>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}default:{j=b;break a;}}break;}case 101:{switch(a[b+1>>0]|0){case 111:{GC(g,19107);m=e+4|0;k=c[m>>2]|0;if(k>>>0<(c[e+8>>2]|0)>>>0){KB(k,g);c[m>>2]=(c[m>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 79:{FC(g,19117);m=e+4|0;k=c[m>>2]|0;if(k>>>0<(c[e+8>>2]|0)>>>0){KB(k,g);c[m>>2]=(c[m>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 113:{FC(g,19128);m=e+4|0;k=c[m>>2]|0;if(k>>>0<(c[e+8>>2]|0)>>>0){KB(k,g);c[m>>2]=(c[m>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}default:{j=b;break a;}}break;}case 103:{switch(a[b+1>>0]|0){case 101:{FC(g,19139);m=e+4|0;k=c[m>>2]|0;if(k>>>0<(c[e+8>>2]|0)>>>0){KB(k,g);c[m>>2]=(c[m>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 116:{GC(g,19150);m=e+4|0;k=c[m>>2]|0;if(k>>>0<(c[e+8>>2]|0)>>>0){KB(k,g);c[m>>2]=(c[m>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}default:{j=b;break a;}}break;}case 105:{if((a[b+1>>0]|0)!=120){j=b;break a;}FC(g,19160);m=e+4|0;k=c[m>>2]|0;if(k>>>0<(c[e+8>>2]|0)>>>0){KB(k,g);c[m>>2]=(c[m>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 108:{switch(a[b+1>>0]|0){case 101:{FC(g,19171);m=e+4|0;k=c[m>>2]|0;if(k>>>0<(c[e+8>>2]|0)>>>0){KB(k,g);c[m>>2]=(c[m>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 105:{m=b+2|0;k=GB(m,d,e)|0;if((k|0)==(m|0)){j=b;break a;}m=c[e+4>>2]|0;if((c[e>>2]|0)==(m|0)){j=b;break a;}pB(m+-24|0,0,19182)|0;j=k;break a;break;}case 115:{FC(g,19194);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 83:{JC(g,19205);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 116:{GC(g,19217);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}default:{j=b;break a;}}break;}case 109:{switch(a[b+1>>0]|0){case 105:{GC(g,19227);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 73:{FC(g,19237);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 108:{GC(g,19076);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 76:{FC(g,19248);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 109:{FC(g,19259);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}default:{j=b;break a;}}break;}case 110:{switch(a[b+1>>0]|0){case 97:{KC(g,19270);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 101:{FC(g,19285);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 103:{GC(g,19227);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 116:{GC(g,19296);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 119:{LC(g,19306);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}default:{j=b;break a;}}break;}case 111:{switch(a[b+1>>0]|0){case 111:{FC(g,19319);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 114:{GC(g,19330);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 82:{FC(g,19340);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}default:{j=b;break a;}}break;}case 112:{switch(a[b+1>>0]|0){case 109:{JC(g,19351);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 108:{GC(g,19363);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 76:{FC(g,19373);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 112:{FC(g,19384);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 115:{GC(g,19363);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 116:{FC(g,19395);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}default:{j=b;break a;}}break;}case 113:{if((a[b+1>>0]|0)!=117){j=b;break a;}GC(g,19406);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 114:{switch(a[b+1>>0]|0){case 109:{GC(g,19416);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 77:{FC(g,19426);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 115:{FC(g,19437);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 83:{JC(g,19448);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}default:{j=b;break a;}}break;}case 118:{if(((a[b+1>>0]|0)+-48|0)>>>0>=10){j=b;break a;}k=b+2|0;m=GB(k,d,e)|0;if((m|0)==(k|0)){j=b;break a;}k=c[e+4>>2]|0;if((c[e>>2]|0)==(k|0)){j=b;break a;}pB(k+-24|0,0,19048)|0;j=m;break a;break;}default:{j=b;break a;}}}while(0);else j=b;}while(0);l=f;return j|0;}function FC(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;RB(a,b,10);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function GC(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;RB(a,b,9);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function HC(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;RB(a,b,17);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function IC(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;RB(a,19460,15);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function JC(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;RB(a,b,11);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function KC(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;RB(a,b,14);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function LC(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;RB(a,b,12);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function MC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;f=l;l=l+16|0;g=d;h=f;i=b+11|0;j=a[i>>0]|0;k=j<<24>>24<0;if(k){m=c[b+4>>2]|0;n=(c[b+8>>2]&2147483647)+-1|0;}else{m=j&255;n=10;}o=e-g|0;do{if(o|0){if(k){p=c[b>>2]|0;q=c[b+4>>2]|0;}else{p=b;q=j&255;}if(PC(d,p,p+q|0)|0){c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;QC(h,d,e);r=a[h+11>>0]|0;s=r<<24>>24<0;TA(b,s?c[h>>2]|0:h,s?c[h+4>>2]|0:r&255)|0;iB(h);break;}if((n-m|0)>>>0<o>>>0)RC(b,n,m+o-n|0,m,m,0);if((a[i>>0]|0)<0)t=c[b>>2]|0;else t=b;r=e+(m-g)|0;s=t+m|0;u=d;while(1){if((u|0)==(e|0))break;cB(s,u);s=s+1|0;u=u+1|0;}a[h>>0]=0;cB(t+r|0,h);u=m+o|0;if((a[i>>0]|0)<0){c[b+4>>2]=u;break;}else{a[i>>0]=u;break;}}}while(0);l=f;return;}function NC(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;e=l;l=l+16|0;f=e;g=e+1|0;a[f>>0]=d;d=b+11|0;h=a[d>>0]|0;i=h<<24>>24<0;if(i){j=c[b+4>>2]|0;k=(c[b+8>>2]&2147483647)+-1|0;}else{j=h&255;k=10;}if((j|0)==(k|0)){RC(b,k,1,k,k,0);if((a[d>>0]|0)<0)m=8;else m=7;}else if(i)m=8;else m=7;if((m|0)==7){a[d>>0]=j+1;n=b;}else if((m|0)==8){m=c[b>>2]|0;c[b+4>>2]=j+1;n=m;}m=n+j|0;cB(m,f);a[g>>0]=0;cB(m+1|0,g);l=e;return;}function OC(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;g=l;l=l+32|0;h=g+16|0;i=g+4|0;j=g;k=b+11|0;m=a[k>>0]|0;n=m<<24>>24<0;if(n)o=c[b>>2]|0;else o=b;p=c[d>>2]|0;d=p-o|0;o=f-e|0;do{if(!o){q=m;r=27;}else{if(n){s=c[b>>2]|0;t=c[b+4>>2]|0;}else{s=b;t=m&255;}if(PC(e,s,s+t|0)|0){c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;QC(i,e,f);c[j>>2]=p;u=a[i+11>>0]|0;v=u<<24>>24<0;w=v?c[i>>2]|0:i;x=w+(v?c[i+4>>2]|0:u&255)|0;c[h>>2]=c[j>>2];u=OC(b,h,w,x)|0;iB(i);y=u;break;}u=a[k>>0]|0;x=u<<24>>24<0;if(x){z=c[b+4>>2]|0;A=(c[b+8>>2]&2147483647)+-1|0;}else{z=u&255;A=10;}if((A-z|0)>>>0>=o>>>0){if(x)B=c[b>>2]|0;else B=b;x=z-d|0;if(!x)C=B;else{u=B+d|0;wC(u+o|0,u,x)|0;C=B;}}else{RC(b,A,z+o-A|0,z,d,o);C=c[b>>2]|0;}x=z+o|0;if((a[k>>0]|0)<0)c[b+4>>2]=x;else a[k>>0]=x;a[h>>0]=0;cB(C+x|0,h);x=e;u=C+d|0;while(1){if((x|0)==(f|0))break;cB(u,x);x=x+1|0;u=u+1|0;}q=a[k>>0]|0;r=27;}}while(0);if((r|0)==27){if(q<<24>>24<0)D=c[b>>2]|0;else D=b;y=D+d|0;}l=g;return y|0;}function PC(a,b,c){a=a|0;b=b|0;c=c|0;return b>>>0<=a>>>0&a>>>0<c>>>0|0;}function QC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+16|0;g=d;h=f;i=e-g|0;if(i>>>0>4294967279)eB(b);if(i>>>0<11){a[b+11>>0]=i;j=b;}else{k=i+16&-16;m=fB(k)|0;c[b>>2]=m;c[b+8>>2]=k|-2147483648;c[b+4>>2]=i;j=m;}m=e-g|0;g=d;d=j;while(1){if((g|0)==(e|0))break;cB(d,g);g=g+1|0;d=d+1|0;}a[h>>0]=0;cB(j+m|0,h);l=f;return;}function RC(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0;if((-17-d|0)>>>0<e>>>0)eB(b);if((a[b+11>>0]|0)<0)i=c[b>>2]|0;else i=b;if(d>>>0<2147483623){j=e+d|0;e=d<<1;k=j>>>0<e>>>0?e:j;l=k>>>0<11?11:k+16&-16;}else l=-17;k=fB(l)|0;if(g|0)bB(k,i,g)|0;j=f-g|0;if(j|0)bB(k+g+h|0,i+g|0,j)|0;if((d|0)!=10)gB(i);c[b>>2]=k;c[b+8>>2]=l|-2147483648;return;}function SC(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;e=d+11|0;f=a[e>>0]|0;g=d+4|0;a:do{if(!((f<<24>>24<0?c[g>>2]|0:f&255)|0))TC(b,d);else{h=AB(19495)|0;i=a[e>>0]|0;if((h|0)==((i<<24>>24<0?c[g>>2]|0:i&255)|0)?(BB(d,19495,h)|0)==0:0){uC(d,19507);c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;RB(b,19578,AB(19578)|0);break;}h=AB(19591)|0;i=a[e>>0]|0;if((h|0)==((i<<24>>24<0?c[g>>2]|0:i&255)|0)?(BB(d,19591,h)|0)==0:0){uC(d,19604);c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;RB(b,19654,AB(19654)|0);break;}h=AB(19668)|0;i=a[e>>0]|0;if((h|0)==((i<<24>>24<0?c[g>>2]|0:i&255)|0)?(BB(d,19668,h)|0)==0:0){uC(d,19681);c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;RB(b,19731,AB(19731)|0);break;}h=AB(19745)|0;i=a[e>>0]|0;j=c[g>>2]|0;k=i&255;do{if((h|0)==((i<<24>>24<0?j:k)|0)){if(!(BB(d,19745,h)|0)){uC(d,19759);c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;RB(b,19810,AB(19810)|0);break a;}else{l=a[e>>0]|0;m=l&255;n=l;o=c[g>>2]|0;break;}}else{m=k;n=i;o=j;}}while(0);j=n<<24>>24<0;i=j?c[d>>2]|0:d;k=i+(j?o:m)|0;do{if((a[k+-1>>0]|0)==62){j=1;h=k;b:while(1){p=h;c:while(1){q=p+-1|0;if((q|0)==(i|0))break b;switch(a[p+-2>>0]|0){case 60:{r=24;break c;break;}case 62:{r=25;break c;break;}default:p=q;}}if((r|0)==24){r=0;l=j+-1|0;if(!l){r=27;break;}else s=l;}else if((r|0)==25){r=0;s=j+1|0;}j=s;h=q;}if((r|0)==27){t=p+-2|0;break;};c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;h=0;while(1){if((h|0)==3)break a;c[b+(h<<2)>>2]=0;h=h+1|0;}}else t=k;}while(0);k=t;while(1){h=k+-1|0;if((h|0)==(i|0)){u=i;break;}if((a[h>>0]|0)==58){u=k;break;}else k=h;}c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;QC(b,u,t);}}while(0);return;}function TC(b,d){b=b|0;d=d|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;if((a[d+11>>0]|0)<0)RB(b,c[d>>2]|0,c[d+4>>2]|0);else{c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];}return;}function UC(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;if((a|0)!=(b|0)){e=yC(a,b,d)|0;if((e|0)==(a|0))f=AC(a,b,d)|0;else f=e;if((f|0)!=(a|0)?(e=c[d+4>>2]|0,(c[d>>2]|0)!=(e|0)):0){pB(e+-24|0,0,18745)|0;g=f;}else g=a;}else g=a;return g|0;}function VC(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0;}b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function WC(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=l;l=l+32|0;d=b;e=a+4|0;f=(((c[e>>2]|0)-(c[a>>2]|0)|0)/24|0)+1|0;g=XC(a)|0;if(g>>>0<f>>>0)Wz(a);else{h=c[a>>2]|0;i=((c[a+8>>2]|0)-h|0)/24|0;j=i<<1;YC(d,i>>>0<g>>>1>>>0?j>>>0<f>>>0?f:j:g,((c[e>>2]|0)-h|0)/24|0,a+12|0);h=d+8|0;e=c[h>>2]|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;VC(e);c[h>>2]=e+24;ZC(a,d);_C(d);l=b;return;}}function XC(a){a=a|0;return 178956970;}function YC(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;if(!b)g=0;else g=$C(e,b)|0;c[a>>2]=g;e=g+(d*24|0)|0;c[a+8>>2]=e;c[a+4>>2]=e;c[f>>2]=g+(b*24|0);return;}function ZC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[a>>2]|0;e=a+4|0;f=b+4|0;g=c[e>>2]|0;while(1){if((g|0)==(d|0))break;h=g+-24|0;KB((c[f>>2]|0)+-24|0,h);c[f>>2]=(c[f>>2]|0)+-24;g=h;}g=c[a>>2]|0;c[a>>2]=c[f>>2];c[f>>2]=g;g=b+8|0;d=c[e>>2]|0;c[e>>2]=c[g>>2];c[g>>2]=d;d=a+8|0;a=b+12|0;g=c[d>>2]|0;c[d>>2]=c[a>>2];c[a>>2]=g;c[b>>2]=c[f>>2];return;}function _C(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((e|0)==(b|0))break;f=e+-24|0;c[d>>2]=f;QA(f);}d=c[a>>2]|0;if(d|0)hB(c[a+16>>2]|0,d,((c[a+12>>2]|0)-d|0)/24|0);return;}function $C(a,b){a=a|0;b=b|0;return aD(c[a>>2]|0,b*24|0)|0;}function aD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=$A(b)|0;b=a+4096|0;e=c[b>>2]|0;if((a+4096-e|0)>>>0<d>>>0)f=Cy(d)|0;else{c[b>>2]=e+d;f=e;}return f|0;}function bD(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;g=l;l=l+48|0;h=g+24|0;i=g;j=g+12|0;k=QB(b,d)|0;if(!((k|0)==(b|0)|(k|0)==(d|0))?(a[k>>0]|0)==69:0){d=e+11|0;m=a[d>>0]|0;n=e+4|0;do{if((m<<24>>24<0?c[n>>2]|0:m&255)>>>0<=3){o=f+4|0;p=c[o>>2]|0;if(p>>>0<(c[f+8>>2]|0)>>>0){c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;c[p+16>>2]=0;c[p+20>>2]=0;VC(p);c[o>>2]=(c[o>>2]|0)+24;break;}else{WC(f);break;}}else{UB(j,18675,e);qB(j,18673)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];o=0;while(1){if((o|0)==3)break;c[j+(o<<2)>>2]=0;o=o+1|0;}IB(h,i);o=f+4|0;p=c[o>>2]|0;if(p>>>0<(c[f+8>>2]|0)>>>0){KB(p,h);c[o>>2]=(c[o>>2]|0)+24;}else LB(f,h);QA(h);iB(i);iB(j);}}while(0);j=f+4|0;if((a[b>>0]|0)==110){NC((c[j>>2]|0)+-24|0,45);q=b+1|0;}else q=b;MC((c[j>>2]|0)+-24|0,q,k);q=a[d>>0]|0;d=q<<24>>24<0;f=d?c[n>>2]|0:q&255;if(f>>>0<4)TA((c[j>>2]|0)+-24|0,d?c[e>>2]|0:e,f)|0;r=k+1|0;}else r=b;l=g;return r|0;}function cD(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;RB(a,b,4);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function dD(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;f=l;l=l+64|0;i=f+24|0;j=f+60|0;k=f;m=f+48|0;a:do{if((d-b|0)>>>0>8){n=0;o=j;while(1){p=a[b+n>>0]|0;q=p<<24>>24;if((n|0)==8){r=6;break;}if(!(Qz(q)|0))break;s=a[b+(n|1)>>0]|0;a[o>>0]=(((q+-48|0)>>>0<10?0:9)+q<<4)+s+((s+-48|0)>>>0<10?208:169);n=n+2|0;o=o+1|0;}do{if((r|0)==6){if(p<<24>>24==69){b:do{if((o|0)!=(j|0)){n=o;s=j;while(1){q=n+-1|0;if(s>>>0>=q>>>0)break b;t=a[s>>0]|0;a[s>>0]=a[q>>0]|0;a[q>>0]=t;n=q;s=s+1|0;}}}while(0);c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;c[k+20>>2]=0;h[i>>3]=+g[j>>2];s=bz(k,24,19987,i)|0;if(s>>>0>23)break;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;RB(m,k,s);IB(i,m);s=e+4|0;n=c[s>>2]|0;if(n>>>0<(c[e+8>>2]|0)>>>0){KB(n,i);c[s>>2]=(c[s>>2]|0)+24;}else LB(e,i);QA(i);iB(m);u=b+9|0;}else u=b;v=u;break a;}}while(0);v=b;}else v=b;}while(0);l=f;return v|0;}function eD(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;f=l;l=l+80|0;g=f+40|0;i=f+32|0;j=f;k=f+64|0;a:do{if((d-b|0)>>>0>16){m=0;n=i;while(1){o=a[b+m>>0]|0;p=o<<24>>24;if((m|0)==16){q=6;break;}if(!(Qz(p)|0))break;r=a[b+(m|1)>>0]|0;a[n>>0]=(((p+-48|0)>>>0<10?0:9)+p<<4)+r+((r+-48|0)>>>0<10?208:169);m=m+2|0;n=n+1|0;}do{if((q|0)==6){if(o<<24>>24==69){b:do{if((n|0)!=(i|0)){m=n;r=i;while(1){p=m+-1|0;if(r>>>0>=p>>>0)break b;s=a[r>>0]|0;a[r>>0]=a[p>>0]|0;a[p>>0]=s;m=p;r=r+1|0;}}}while(0);c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[j+16>>2]=0;c[j+20>>2]=0;c[j+24>>2]=0;c[j+28>>2]=0;h[g>>3]=+h[i>>3];r=bz(j,32,19984,g)|0;if(r>>>0>31)break;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;RB(k,j,r);IB(g,k);r=e+4|0;m=c[r>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[r>>2]=(c[r>>2]|0)+24;}else LB(e,g);QA(g);iB(k);t=b+17|0;}else t=b;u=t;break a;}}while(0);u=b;}else u=b;}while(0);l=f;return u|0;}function fD(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;f=l;l=l+96|0;g=f+48|0;i=f+40|0;j=f;k=f+72|0;a:do{if((d-b|0)>>>0>20){m=0;n=i;while(1){o=a[b+m>>0]|0;p=o<<24>>24;if((m|0)==20){q=6;break;}if(!(Qz(p)|0))break;r=a[b+(m|1)>>0]|0;a[n>>0]=(((p+-48|0)>>>0<10?0:9)+p<<4)+r+((r+-48|0)>>>0<10?208:169);m=m+2|0;n=n+1|0;}do{if((q|0)==6){if(o<<24>>24==69){b:do{if((n|0)!=(i|0)){m=n;r=i;while(1){p=m+-1|0;if(r>>>0>=p>>>0)break b;s=a[r>>0]|0;a[r>>0]=a[p>>0]|0;a[p>>0]=s;m=p;r=r+1|0;}}}while(0);r=j;m=r+40|0;do{c[r>>2]=0;r=r+4|0;}while((r|0)<(m|0));h[g>>3]=+h[i>>3];r=bz(j,40,19979,g)|0;if(r>>>0>39)break;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;RB(k,j,r);IB(g,k);r=e+4|0;m=c[r>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[r>>2]=(c[r>>2]|0)+24;}else LB(e,g);QA(g);iB(k);t=b+21|0;}else t=b;u=t;break a;}}while(0);u=b;}else u=b;}while(0);l=f;return u|0;}function gD(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;RB(a,b,13);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function hD(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0;f=l;l=l+48|0;g=f+36|0;h=f+24|0;i=f+8|0;j=f;a:do{if((b|0)!=(d|0)?(a[b>>0]|0)==78:0){k=nB(b+1|0,d,g)|0;b:do{if((k|0)!=(d|0)){m=e+52|0;c[m>>2]=0;switch(a[k>>0]|0){case 82:{n=1;o=6;break;}case 79:{n=2;o=6;break;}default:p=k;}if((o|0)==6){c[m>>2]=n;p=k+1|0;}m=e+4|0;q=c[m>>2]|0;if(q>>>0<(c[e+8>>2]|0)>>>0){c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;c[q+16>>2]=0;c[q+20>>2]=0;VC(q);c[m>>2]=(c[m>>2]|0)+24;}else WC(e);if(((d-p|0)>1?(a[p>>0]|0)==83:0)?(a[p+1>>0]|0)==116:0){uC((c[m>>2]|0)+-24|0,20051);r=p+2|0;}else r=p;if((r|0)==(d|0)){q=c[m>>2]|0;s=0;while(1){if((s|0)==-1)break;t=s+-1|0;QA(q+(t*24|0)|0);s=t;}c[m>>2]=q+-24;break;}s=h+11|0;t=h+4|0;u=e+12|0;v=e+20|0;w=e+24|0;x=i+11|0;y=i+4|0;z=i+11|0;A=i+4|0;B=i+12|0;C=i+4|0;D=i+8|0;E=e+16|0;F=i+12|0;G=i+4|0;H=i+8|0;I=i+11|0;J=i+4|0;K=i+12|0;L=i+4|0;M=i+8|0;N=i+11|0;O=i+4|0;P=i+12|0;Q=i+4|0;R=i+8|0;S=i+12|0;T=i+4|0;U=i+8|0;V=0;W=r;c:while(1){X=W;d:while(1){Y=a[X>>0]|0;if(Y<<24>>24==69)break c;switch(Y<<24>>24|0){case 83:{o=23;break d;break;}case 84:{o=39;break d;break;}case 68:{o=53;break d;break;}case 73:{Y=EB(X,d,e)|0;if((Y|0)==(X|0)|(Y|0)==(d|0))break b;FB(h,(c[m>>2]|0)+-24|0);Z=c[m>>2]|0;_=0;while(1){if((_|0)==-1)break;$=_+-1|0;QA(Z+($*24|0)|0);_=$;}c[m>>2]=Z+-24;_=a[s>>0]|0;$=_<<24>>24<0;TA(Z+-48|0,$?c[h>>2]|0:h,$?c[t>>2]|0:_&255)|0;_=(c[m>>2]|0)+-24|0;c[j>>2]=c[u>>2];vB(i,_,j);_=c[v>>2]|0;if(_>>>0<(c[w>>2]|0)>>>0){c[_>>2]=0;$=_+4|0;c[$>>2]=0;aa=_+8|0;c[aa>>2]=0;c[_+12>>2]=c[B>>2];c[_>>2]=c[i>>2];c[$>>2]=c[C>>2];c[aa>>2]=c[D>>2];c[D>>2]=0;c[C>>2]=0;c[i>>2]=0;c[v>>2]=(c[v>>2]|0)+16;}else wB(E,i);RA(i);iB(h);ba=Y;break;}case 76:{aa=X+1|0;if((aa|0)==(d|0))break b;else ba=aa;break;}default:{o=79;break d;}}X=ba;}e:do{if((o|0)==23){o=0;aa=X+1|0;if((aa|0)!=(d|0)?(a[aa>>0]|0)==116:0){o=79;break;}aa=NB(X,d,e)|0;if((aa|0)==(X|0)|(aa|0)==(d|0))break b;FB(h,(c[m>>2]|0)+-24|0);$=c[m>>2]|0;_=0;while(1){if((_|0)==-1)break;ca=_+-1|0;QA($+(ca*24|0)|0);_=ca;}c[m>>2]=$+-24;_=$+-48|0;Y=a[_+11>>0]|0;if(Y<<24>>24<0)da=c[$+-44>>2]|0;else da=Y&255;if(!da)lD(_,h);else{UB(i,18747,h);_=a[I>>0]|0;Y=_<<24>>24<0;TA((c[m>>2]|0)+-24|0,Y?c[i>>2]|0:i,Y?c[J>>2]|0:_&255)|0;iB(i);_=(c[m>>2]|0)+-24|0;c[j>>2]=c[u>>2];vB(i,_,j);_=c[v>>2]|0;if(_>>>0<(c[w>>2]|0)>>>0){c[_>>2]=0;Y=_+4|0;c[Y>>2]=0;Z=_+8|0;c[Z>>2]=0;c[_+12>>2]=c[S>>2];c[_>>2]=c[i>>2];c[Y>>2]=c[T>>2];c[Z>>2]=c[U>>2];c[U>>2]=0;c[T>>2]=0;c[i>>2]=0;c[v>>2]=(c[v>>2]|0)+16;}else wB(E,i);RA(i);}iB(h);ea=aa;}else if((o|0)==39){o=0;Z=DB(X,d,e)|0;if((Z|0)==(X|0)|(Z|0)==(d|0))break b;FB(h,(c[m>>2]|0)+-24|0);Y=c[m>>2]|0;_=0;while(1){if((_|0)==-1)break;ca=_+-1|0;QA(Y+(ca*24|0)|0);_=ca;}c[m>>2]=Y+-24;_=Y+-48|0;aa=a[_+11>>0]|0;if(aa<<24>>24<0)fa=c[Y+-44>>2]|0;else fa=aa&255;if(!fa)lD(_,h);else{UB(i,18747,h);_=a[z>>0]|0;aa=_<<24>>24<0;TA((c[m>>2]|0)+-24|0,aa?c[i>>2]|0:i,aa?c[A>>2]|0:_&255)|0;iB(i);}_=(c[m>>2]|0)+-24|0;c[j>>2]=c[u>>2];vB(i,_,j);_=c[v>>2]|0;if(_>>>0<(c[w>>2]|0)>>>0){c[_>>2]=0;aa=_+4|0;c[aa>>2]=0;$=_+8|0;c[$>>2]=0;c[_+12>>2]=c[K>>2];c[_>>2]=c[i>>2];c[aa>>2]=c[L>>2];c[$>>2]=c[M>>2];c[M>>2]=0;c[L>>2]=0;c[i>>2]=0;c[v>>2]=(c[v>>2]|0)+16;}else wB(E,i);RA(i);iB(h);ea=Z;}else if((o|0)==53){o=0;$=X+1|0;if(($|0)!=(d|0))switch(a[$>>0]|0){case 84:case 116:break;default:{o=79;break e;}}$=OB(X,d,e)|0;if(($|0)==(X|0)|($|0)==(d|0))break b;FB(h,(c[m>>2]|0)+-24|0);aa=c[m>>2]|0;_=0;while(1){if((_|0)==-1)break;ca=_+-1|0;QA(aa+(ca*24|0)|0);_=ca;}c[m>>2]=aa+-24;_=aa+-48|0;Z=a[_+11>>0]|0;if(Z<<24>>24<0)ga=c[aa+-44>>2]|0;else ga=Z&255;if(!ga)lD(_,h);else{UB(i,18747,h);_=a[N>>0]|0;Z=_<<24>>24<0;TA((c[m>>2]|0)+-24|0,Z?c[i>>2]|0:i,Z?c[O>>2]|0:_&255)|0;iB(i);}_=(c[m>>2]|0)+-24|0;c[j>>2]=c[u>>2];vB(i,_,j);_=c[v>>2]|0;if(_>>>0<(c[w>>2]|0)>>>0){c[_>>2]=0;Z=_+4|0;c[Z>>2]=0;Y=_+8|0;c[Y>>2]=0;c[_+12>>2]=c[P>>2];c[_>>2]=c[i>>2];c[Z>>2]=c[Q>>2];c[Y>>2]=c[R>>2];c[R>>2]=0;c[Q>>2]=0;c[i>>2]=0;c[v>>2]=(c[v>>2]|0)+16;}else wB(E,i);RA(i);iB(h);ea=$;}}while(0);if((o|0)==79){o=0;Y=BC(X,d,e)|0;if((Y|0)==(X|0)|(Y|0)==(d|0))break b;FB(h,(c[m>>2]|0)+-24|0);Z=c[m>>2]|0;_=0;while(1){if((_|0)==-1)break;ca=_+-1|0;QA(Z+(ca*24|0)|0);_=ca;}c[m>>2]=Z+-24;_=Z+-48|0;ca=a[_+11>>0]|0;if(ca<<24>>24<0)ha=c[Z+-44>>2]|0;else ha=ca&255;if(!ha)lD(_,h);else{UB(i,18747,h);_=a[x>>0]|0;ca=_<<24>>24<0;TA((c[m>>2]|0)+-24|0,ca?c[i>>2]|0:i,ca?c[y>>2]|0:_&255)|0;iB(i);}_=(c[m>>2]|0)+-24|0;c[j>>2]=c[u>>2];vB(i,_,j);_=c[v>>2]|0;if(_>>>0<(c[w>>2]|0)>>>0){c[_>>2]=0;ca=_+4|0;c[ca>>2]=0;ia=_+8|0;c[ia>>2]=0;c[_+12>>2]=c[F>>2];c[_>>2]=c[i>>2];c[ca>>2]=c[G>>2];c[ia>>2]=c[H>>2];c[H>>2]=0;c[G>>2]=0;c[i>>2]=0;c[v>>2]=(c[v>>2]|0)+16;}else wB(E,i);RA(i);iB(h);ea=Y;}V=1;W=ea;}W=X+1|0;c[e+48>>2]=c[g>>2];if(V?(E=c[v>>2]|0,(c[e+16>>2]|0)!=(E|0)):0){G=0;while(1){if((G|0)==-1)break;H=G+-1|0;RA(E+(H<<4)|0);G=H;}c[v>>2]=E+-16;}ja=W;break a;}}while(0);ja=b;}else ja=b;}while(0);l=f;return ja|0;}function iD(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;f=l;l=l+16|0;g=f;a:do{if(((((b|0)!=(d|0)?(a[b>>0]|0)==90:0)?(h=b+1|0,i=jB(h,d,e)|0,!((i|0)==(h|0)|(i|0)==(d|0))):0)?(a[i>>0]|0)==69:0)?(h=i+1|0,(h|0)!=(d|0)):0)switch(a[h>>0]|0){case 115:{j=kD(i+2|0,d)|0;k=c[e+4>>2]|0;if((c[e>>2]|0)==(k|0)){m=j;break a;}qB(k+-24|0,20034)|0;m=j;break a;break;}case 100:{j=i+2|0;if((j|0)==(d|0)){m=b;break a;}i=QB(j,d)|0;if((i|0)==(d|0)){m=b;break a;}if((a[i>>0]|0)!=95){m=b;break a;}j=i+1|0;i=MB(j,d,e)|0;k=e+4|0;if((i|0)==(j|0)){j=c[k>>2]|0;n=0;while(1){if((n|0)==-1)break;o=n+-1|0;QA(j+(o*24|0)|0);n=o;}c[k>>2]=j+-24;m=b;break a;}n=c[k>>2]|0;if(((n-(c[e>>2]|0)|0)/24|0)>>>0<2){m=b;break a;}FB(g,n+-24|0);n=c[k>>2]|0;o=0;while(1){if((o|0)==-1)break;p=o+-1|0;QA(n+(p*24|0)|0);o=p;}c[k>>2]=n+-24;qB(n+-48|0,18747)|0;o=a[g+11>>0]|0;j=o<<24>>24<0;TA((c[k>>2]|0)+-24|0,j?c[g>>2]|0:g,j?c[g+4>>2]|0:o&255)|0;iB(g);m=i;break a;break;}default:{o=MB(h,d,e)|0;if((o|0)==(h|0)){j=e+4|0;p=c[j>>2]|0;q=0;while(1){if((q|0)==-1)break;r=q+-1|0;QA(p+(r*24|0)|0);q=r;}c[j>>2]=p+-24;m=b;break a;}q=kD(o,d)|0;h=e+4|0;i=c[h>>2]|0;if(((i-(c[e>>2]|0)|0)/24|0)>>>0<2){m=q;break a;}FB(g,i+-24|0);i=c[h>>2]|0;k=0;while(1){if((k|0)==-1)break;n=k+-1|0;QA(i+(n*24|0)|0);k=n;}c[h>>2]=i+-24;qB(i+-48|0,18747)|0;k=a[g+11>>0]|0;o=k<<24>>24<0;TA((c[h>>2]|0)+-24|0,o?c[g>>2]|0:g,o?c[g+4>>2]|0:k&255)|0;iB(g);m=q;break a;}}else m=b;}while(0);l=f;return m|0;}function jD(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;if((d-b|0)>1){if((a[b>>0]|0)==83?(a[b+1>>0]|0)==116:0){f=b+2|0;if((f|0)==(d|0)){g=0;h=d;}else{g=0;h=(a[f>>0]|0)==76?b+3|0:f;}}else{g=1;h=b;}f=BC(h,d,e)|0;d=(f|0)==(h|0);if(!(g|d)){g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0))i=b;else{pB(g+-24|0,0,18969)|0;i=f;}}else i=d?b:f;}else i=b;return i|0;}function kD(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0;a:do{if((b|0)!=(c|0)){d=a[b>>0]|0;if(d<<24>>24!=95){if(((d<<24>>24)+-48|0)>>>0>=10){e=b;break;}d=b;while(1){f=d+1|0;if((f|0)==(c|0)){e=c;break a;}if(((a[f>>0]|0)+-48|0)>>>0<10)d=f;else{e=f;break a;}}}d=b+1|0;if((d|0)!=(c|0)){f=a[d>>0]|0;if(((f<<24>>24)+-48|0)>>>0<10){e=b+2|0;break;}if(f<<24>>24==95){f=b+2|0;while(1){if((f|0)==(c|0)){e=b;break a;}g=a[f>>0]|0;if(((g<<24>>24)+-48|0)>>>0>=10)break;f=f+1|0;}return(g<<24>>24==95?f+1|0:b)|0;}else e=b;}else e=b;}else e=b;}while(0);return e|0;}function lD(b,d){b=b|0;d=d|0;var e=0,f=0;if((b|0)!=(d|0)){e=a[d+11>>0]|0;f=e<<24>>24<0;vC(b,f?c[d>>2]|0:d,f?c[d+4>>2]|0:e&255);}return;}function mD(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;RB(a,20066,21);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function nD(a,b){a=a|0;b=b|0;c[a>>2]=c[b>>2];return;}function oD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;d=l;l=l+32|0;e=d+20|0;f=d;g=a+4|0;h=((c[g>>2]|0)-(c[a>>2]|0)>>4)+1|0;i=qD(a)|0;if(i>>>0<h>>>0)Wz(a);else{j=c[a>>2]|0;k=(c[a+8>>2]|0)-j|0;m=k>>3;rD(f,k>>4>>>0<i>>>1>>>0?m>>>0<h>>>0?h:m:i,(c[g>>2]|0)-j>>4,a+12|0);j=f+8|0;g=c[j>>2]|0;nD(e,b);c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=c[e>>2];c[j>>2]=g+16;sD(a,f);tD(f);l=d;return;}}function pD(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;a:do{if((b|0)==(c|0))e=b;else switch(a[b>>0]|0){case 88:{f=b+1|0;g=SB(f,c,d)|0;if((g|0)==(f|0)|(g|0)==(c|0)){e=b;break a;}e=(a[g>>0]|0)==69?g+1|0:b;break a;break;}case 74:{g=b+1|0;if((g|0)==(c|0)){e=b;break a;}f=g;while(1){if((a[f>>0]|0)==69)break;g=pD(f,c,d)|0;if((g|0)==(f|0)){e=b;break a;}else f=g;}e=f+1|0;break a;break;}case 76:{g=b+1|0;if((g|0)!=(c|0)?(a[g>>0]|0)==90:0){g=b+2|0;h=jB(g,c,d)|0;if((h|0)==(g|0)|(h|0)==(c|0)){e=b;break a;}e=(a[h>>0]|0)==69?h+1|0:b;break a;}e=WB(b,c,d)|0;break a;break;}default:{e=mB(b,c,d)|0;break a;}}}while(0);return e|0;}function qD(a){a=a|0;return 268435455;}function rD(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;if(!b)g=0;else g=uD(e,b)|0;c[a>>2]=g;e=g+(d<<4)|0;c[a+8>>2]=e;c[a+4>>2]=e;c[f>>2]=g+(b<<4);return;}function sD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=c[a>>2]|0;e=a+4|0;f=b+4|0;g=c[e>>2]|0;while(1){if((g|0)==(d|0))break;h=c[f>>2]|0;i=h+-16|0;j=g+-16|0;c[i>>2]=0;k=h+-12|0;c[k>>2]=0;l=h+-8|0;c[l>>2]=0;c[h+-4>>2]=c[g+-4>>2];c[i>>2]=c[j>>2];i=g+-12|0;c[k>>2]=c[i>>2];k=g+-8|0;c[l>>2]=c[k>>2];c[k>>2]=0;c[i>>2]=0;c[j>>2]=0;c[f>>2]=(c[f>>2]|0)+-16;g=j;}g=c[a>>2]|0;c[a>>2]=c[f>>2];c[f>>2]=g;g=b+8|0;d=c[e>>2]|0;c[e>>2]=c[g>>2];c[g>>2]=d;d=a+8|0;a=b+12|0;g=c[d>>2]|0;c[d>>2]=c[a>>2];c[a>>2]=g;c[b>>2]=c[f>>2];return;}function tD(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((e|0)==(b|0))break;f=e+-16|0;c[d>>2]=f;XA(f);}d=c[a>>2]|0;if(d|0)aB(c[a+16>>2]|0,d,(c[a+12>>2]|0)-d>>4);return;}function uD(a,b){a=a|0;b=b|0;return aD(c[a>>2]|0,b<<4)|0;}function vD(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;RB(a,20091,2);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function wD(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;e=l;l=l+16|0;f=e;g=b+11|0;h=a[g>>0]|0;i=h<<24>>24<0;if(i){j=c[b+4>>2]|0;k=j>>>0<11?j:11;m=j;n=(c[b+8>>2]&2147483647)+-1|0;}else{j=h&255;k=j>>>0<11?j:11;m=j;n=10;}if((k-m+n|0)>>>0<d>>>0)dB(b,n,d-k+m-n|0,m,0,k,d,20094);else{if(i)o=c[b>>2]|0;else o=b;do{if((k|0)!=(d|0)){i=m-k|0;if(!i){p=k;q=0;r=20094;s=d;t=17;}else{if(k>>>0>d>>>0){wC(o,20094,d)|0;wC(o+d|0,o+k|0,i)|0;u=k;v=d;break;}do{if(o>>>0<20094>>>0&(o+m|0)>>>0>20094>>>0){if((o+k|0)>>>0>20094>>>0){wC(o,20094,k)|0;w=0;x=k;y=20094+d|0;z=d-k|0;break;}else{w=k;x=0;y=20094+(d-k)|0;z=d;break;}}else{w=k;x=0;y=20094;z=d;}}while(0);n=o+x|0;wC(n+z|0,n+w|0,i)|0;p=w;q=x;r=y;s=z;t=17;}}else{p=d;q=0;r=20094;s=d;t=17;}}while(0);if((t|0)==17){wC(o+q|0,r,s)|0;u=p;v=s;}s=v-u+m|0;if((a[g>>0]|0)<0)c[b+4>>2]=s;else a[g>>0]=s;a[f>>0]=0;cB(o+s|0,f);}l=e;return;}function xD(a){a=a|0;lb();}function yD(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if(!c)d=0;else d=Qy(a,b,c)|0;return d|0;}function zD(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;g=l;l=l+16|0;h=g;i=b+11|0;j=a[i>>0]|0;k=j<<24>>24<0;if(k)m=c[b+4>>2]|0;else m=j&255;if(m>>>0<d>>>0)xD(b);if(k)n=(c[b+8>>2]&2147483647)+-1|0;else n=10;if((n-m|0)>>>0>=f>>>0){if(f|0){if(k)o=c[b>>2]|0;else o=b;k=m-d|0;j=o+d|0;if(!k)p=e;else{wC(j+f|0,j,k)|0;p=j>>>0<=e>>>0&(o+m|0)>>>0>e>>>0?e+f|0:e;}wC(j,p,f)|0;p=m+f|0;if((a[i>>0]|0)<0)c[b+4>>2]=p;else a[i>>0]=p;a[h>>0]=0;cB(o+p|0,h);}}else dB(b,n,m+f-n|0,m,d,0,f,e);l=g;return b|0;}function AD(a){a=a|0;return 268435455;}function BD(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;if(!b)g=0;else g=ED(e,b)|0;c[a>>2]=g;e=g+(d<<4)|0;c[a+8>>2]=e;c[a+4>>2]=e;c[f>>2]=g+(b<<4);return;}function CD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=c[a>>2]|0;e=a+4|0;f=b+4|0;g=c[e>>2]|0;while(1){if((g|0)==(d|0))break;h=c[f>>2]|0;i=h+-16|0;j=g+-16|0;c[i>>2]=0;k=h+-12|0;c[k>>2]=0;l=h+-8|0;c[l>>2]=0;c[h+-4>>2]=c[g+-4>>2];c[i>>2]=c[j>>2];i=g+-12|0;c[k>>2]=c[i>>2];k=g+-8|0;c[l>>2]=c[k>>2];c[k>>2]=0;c[i>>2]=0;c[j>>2]=0;c[f>>2]=(c[f>>2]|0)+-16;g=j;}g=c[a>>2]|0;c[a>>2]=c[f>>2];c[f>>2]=g;g=b+8|0;d=c[e>>2]|0;c[e>>2]=c[g>>2];c[g>>2]=d;d=a+8|0;a=b+12|0;g=c[d>>2]|0;c[d>>2]=c[a>>2];c[a>>2]=g;c[b>>2]=c[f>>2];return;}function DD(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((e|0)==(b|0))break;f=e+-16|0;c[d>>2]=f;RA(f);}d=c[a>>2]|0;if(d|0)YA(c[a+16>>2]|0,d,(c[a+12>>2]|0)-d>>4);return;}function ED(a,b){a=a|0;b=b|0;return aD(c[a>>2]|0,b<<4)|0;}function FD(a){a=a|0;var b=0;if(!(XC(a)|0))Wz(a);else{b=$C(a+12|0,1)|0;c[a+4>>2]=b;c[a>>2]=b;c[a+8>>2]=b+24;return;}}function GD(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;d=l;l=l+16|0;e=d;f=b+11|0;g=a[f>>0]|0;if(g<<24>>24<0){h=c[b>>2]|0;i=c[b+4>>2]|0;}else{h=b;i=g&255;}j=(i|0)!=0&1;k=i-j|0;if(!k)m=g;else{wC(h,h+j|0,k)|0;m=a[f>>0]|0;}if(m<<24>>24<0)c[b+4>>2]=k;else a[f>>0]=k;a[e>>0]=0;cB(h+k|0,e);l=d;return;}function HD(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;RB(a,19867,7);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function ID(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;RB(a,b,3);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function JD(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;RB(a,20287,18);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function KD(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;RB(a,b,8);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function LD(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;RB(a,20280,6);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function MD(a,b){a=a|0;b=b|0;c[a>>2]=b;c[a+4>>2]=c[b>>2];return;}function ND(b,d){b=b|0;d=d|0;c[b>>2]=d;a[b+4>>0]=a[d>>0]|0;return;}function OD(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;f=l;l=l+64|0;g=f+60|0;h=f+48|0;i=f+36|0;j=f+24|0;k=f+12|0;m=f;a:do{if((d-b|0)>2){switch(a[b>>0]|0){case 84:break;case 71:{switch(a[b+1>>0]|0){case 86:{n=b+2|0;o=MB(n,d,e)|0;if((o|0)==(n|0)){p=b;q=60;break a;}n=c[e+4>>2]|0;if((c[e>>2]|0)==(n|0)){r=b;break a;}pB(n+-24|0,0,20505)|0;p=o;q=60;break a;break;}case 82:{o=b+2|0;n=MB(o,d,e)|0;if((n|0)==(o|0)){p=b;q=60;break a;}o=c[e+4>>2]|0;if((c[e>>2]|0)==(o|0)){r=b;break a;}pB(o+-24|0,0,20525)|0;p=n;q=60;break a;break;}default:{p=b;q=60;break a;}}break;}default:{p=b;q=60;break a;}}n=b+1|0;switch(a[n>>0]|0){case 86:{o=b+2|0;s=mB(o,d,e)|0;if((s|0)==(o|0)){p=b;q=60;break a;}o=c[e+4>>2]|0;if((c[e>>2]|0)==(o|0)){r=b;break a;}pB(o+-24|0,0,20354)|0;p=s;q=60;break a;break;}case 84:{s=b+2|0;o=mB(s,d,e)|0;if((o|0)==(s|0)){p=b;q=60;break a;}s=c[e+4>>2]|0;if((c[e>>2]|0)==(s|0)){r=b;break a;}pB(s+-24|0,0,20366)|0;p=o;q=60;break a;break;}case 73:{o=b+2|0;s=mB(o,d,e)|0;if((s|0)==(o|0)){p=b;q=60;break a;}o=c[e+4>>2]|0;if((c[e>>2]|0)==(o|0)){r=b;break a;}pB(o+-24|0,0,20375)|0;p=s;q=60;break a;break;}case 83:{s=b+2|0;o=mB(s,d,e)|0;if((o|0)==(s|0)){p=b;q=60;break a;}s=c[e+4>>2]|0;if((c[e>>2]|0)==(s|0)){r=b;break a;}pB(s+-24|0,0,20389)|0;p=o;q=60;break a;break;}case 99:{o=b+2|0;s=RD(o,d)|0;if((s|0)==(o|0)){p=b;q=60;break a;}o=RD(s,d)|0;if((o|0)==(s|0)){p=b;q=60;break a;}s=jB(o,d,e)|0;if((s|0)==(o|0)){p=b;q=60;break a;}o=c[e+4>>2]|0;if((c[e>>2]|0)==(o|0)){r=b;break a;}pB(o+-24|0,0,20408)|0;p=s;q=60;break a;break;}case 67:{s=b+2|0;o=mB(s,d,e)|0;if((o|0)==(s|0)){p=b;q=60;break a;}s=QB(o,d)|0;if((s|0)==(o|0)|(s|0)==(d|0)){p=b;q=60;break a;}if((a[s>>0]|0)!=95){p=b;q=60;break a;}o=s+1|0;s=mB(o,d,e)|0;if((s|0)==(o|0)){p=b;q=60;break a;}o=e+4|0;t=c[o>>2]|0;if(((t-(c[e>>2]|0)|0)/24|0)>>>0<2){r=b;break a;}FB(h,t+-24|0);t=c[o>>2]|0;u=0;while(1){if((u|0)==-1)break;v=u+-1|0;QA(t+(v*24|0)|0);u=v;}c[o>>2]=t+-24;pB(h,0,20435)|0;c[k>>2]=c[h>>2];c[k+4>>2]=c[h+4>>2];c[k+8>>2]=c[h+8>>2];u=0;while(1){if((u|0)==3)break;c[h+(u<<2)>>2]=0;u=u+1|0;}qB(k,20460)|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];u=0;while(1){if((u|0)==3)break;c[k+(u<<2)>>2]=0;u=u+1|0;}FB(m,(c[o>>2]|0)+-24|0);u=a[m+11>>0]|0;t=u<<24>>24<0;TA(j,t?c[m>>2]|0:m,t?c[m+4>>2]|0:u&255)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];u=0;while(1){if((u|0)==3)break;c[j+(u<<2)>>2]=0;u=u+1|0;}u=c[o>>2]|0;t=u+-24|0;v=t+11|0;if((a[v>>0]|0)<0){w=c[t>>2]|0;a[g>>0]=0;cB(w,g);c[u+-20>>2]=0;}else{a[g>>0]=0;cB(t,g);a[v>>0]=0;}TB(t);c[t>>2]=c[i>>2];c[t+4>>2]=c[i+4>>2];c[t+8>>2]=c[i+8>>2];t=0;while(1){if((t|0)==3)break;c[i+(t<<2)>>2]=0;t=t+1|0;}iB(i);iB(m);iB(j);iB(k);iB(h);p=s;q=60;break a;break;}default:{t=RD(n,d)|0;do{if((t|0)!=(n|0)){o=jB(t,d,e)|0;if((o|0)!=(t|0)){v=c[e+4>>2]|0;if((c[e>>2]|0)!=(v|0)){u=v+-24|0;if((a[b+2>>0]|0)==118){pB(u,0,20465)|0;x=0;y=o;break;}else{pB(u,0,20483)|0;x=0;y=o;break;}}else{x=1;y=b;}}else{x=0;y=b;}}else{x=3;y=b;}}while(0);switch(x&3){case 3:case 0:{p=y;q=60;break a;break;}default:{}}if(!x){p=y;q=60;break a;}else{r=b;break a;}}}}else{p=b;q=60;}}while(0);if((q|0)==60)r=p;l=f;return r|0;}function PD(b){b=b|0;a[c[b>>2]>>0]=a[b+4>>0]|0;return;}function QD(a){a=a|0;c[c[a>>2]>>2]=c[a+4>>2];return;}function RD(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;a:do{if((b|0)!=(c|0)){switch(a[b>>0]|0){case 104:{d=b+1|0;e=QB(d,c)|0;if((e|0)==(d|0)|(e|0)==(c|0)){f=b;break a;}return((a[e>>0]|0)==95?e+1|0:b)|0;}case 118:break;default:{f=b;break a;}}e=b+1|0;d=QB(e,c)|0;if((!((d|0)==(e|0)|(d|0)==(c|0))?(a[d>>0]|0)==95:0)?(e=d+1|0,d=QB(e,c)|0,!((d|0)==(e|0)|(d|0)==(c|0))):0)f=(a[d>>0]|0)==95?d+1|0:b;else f=b;}else f=b;}while(0);return f|0;}function SD(a,b){a=a|0;b=b|0;c[a>>2]=b;return;}function TD(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=c[b>>2];return;}function UD(a,b){a=a|0;b=b|0;c[a>>2]=b;return;}function VD(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=c[b>>2];return;}function WD(b){b=b|0;var c=0;if((a[b>>0]|0)==1)c=0;else{a[b>>0]=1;c=1;}return c|0;}function XD(a){a=a|0;return;}function YD(a){a=a|0;return;}function ZD(){var a=0;a=c[5564]|0;c[5564]=a+0;return a|0;}function _D(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e;c[f>>2]=c[d>>2];g=rc[c[(c[a>>2]|0)+16>>2]&31](a,b,f)|0;if(g)c[d>>2]=c[f>>2];l=e;return g&1|0;}function $D(a){a=a|0;var b=0;if(!a)b=0;else b=(kA(a,10840,10896,0)|0)!=0&1;return b|0;}function aE(){}function bE(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=a&65535;d=b&65535;e=N(d,c)|0;f=a>>>16;a=(e>>>16)+(N(d,f)|0)|0;d=b>>>16;b=N(d,c)|0;return(y=(a>>>16)+(N(d,f)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|e&65535|0)|0;}function cE(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;a=c;c=bE(e,a)|0;f=y;return(y=(N(b,a)|0)+(N(d,e)|0)+f|f&0,c|0|0)|0;}function dE(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=a+c>>>0;return(y=b+d+(e>>>0<a>>>0|0)>>>0,e|0)|0;}function eE(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=b-d>>>0;e=b-d-(c>>>0>a>>>0|0)>>>0;return(y=e,a-c>>>0|0)|0;}function fE(a){a=a|0;return(a?31-(Q(a^a-1)|0)|0:32)|0;}function gE(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;g=a;h=b;i=h;j=d;k=e;l=k;if(!i){m=(f|0)!=0;if(!l){if(m){c[f>>2]=(g>>>0)%(j>>>0);c[f+4>>2]=0;}n=0;o=(g>>>0)/(j>>>0)>>>0;return(y=n,o)|0;}else{if(!m){n=0;o=0;return(y=n,o)|0;}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;o=0;return(y=n,o)|0;}}m=(l|0)==0;do{if(j){if(!m){p=(Q(l|0)|0)-(Q(i|0)|0)|0;if(p>>>0<=31){q=p+1|0;r=31-p|0;s=p-31>>31;t=q;u=g>>>(q>>>0)&s|i<<r;v=i>>>(q>>>0)&s;w=0;x=g<<r;break;}if(!f){n=0;o=0;return(y=n,o)|0;}c[f>>2]=a|0;c[f+4>>2]=h|b&0;n=0;o=0;return(y=n,o)|0;}r=j-1|0;if(r&j|0){s=(Q(j|0)|0)+33-(Q(i|0)|0)|0;q=64-s|0;p=32-s|0;z=p>>31;A=s-32|0;B=A>>31;t=s;u=p-1>>31&i>>>(A>>>0)|(i<<p|g>>>(s>>>0))&B;v=B&i>>>(s>>>0);w=g<<q&z;x=(i<<q|g>>>(A>>>0))&z|g<<p&s-33>>31;break;}if(f|0){c[f>>2]=r&g;c[f+4>>2]=0;}if((j|0)==1){n=h|b&0;o=a|0|0;return(y=n,o)|0;}else{r=fE(j|0)|0;n=i>>>(r>>>0)|0;o=i<<32-r|g>>>(r>>>0)|0;return(y=n,o)|0;}}else{if(m){if(f|0){c[f>>2]=(i>>>0)%(j>>>0);c[f+4>>2]=0;}n=0;o=(i>>>0)/(j>>>0)>>>0;return(y=n,o)|0;}if(!g){if(f|0){c[f>>2]=0;c[f+4>>2]=(i>>>0)%(l>>>0);}n=0;o=(i>>>0)/(l>>>0)>>>0;return(y=n,o)|0;}r=l-1|0;if(!(r&l)){if(f|0){c[f>>2]=a|0;c[f+4>>2]=r&i|b&0;}n=0;o=i>>>((fE(l|0)|0)>>>0);return(y=n,o)|0;}r=(Q(l|0)|0)-(Q(i|0)|0)|0;if(r>>>0<=30){s=r+1|0;p=31-r|0;t=s;u=i<<p|g>>>(s>>>0);v=i>>>(s>>>0);w=0;x=g<<p;break;}if(!f){n=0;o=0;return(y=n,o)|0;}c[f>>2]=a|0;c[f+4>>2]=h|b&0;n=0;o=0;return(y=n,o)|0;}}while(0);if(!t){C=x;D=w;E=v;F=u;G=0;H=0;}else{b=d|0|0;d=k|e&0;e=dE(b|0,d|0,-1,-1)|0;k=y;h=x;x=w;w=v;v=u;u=t;t=0;do{a=h;h=x>>>31|h<<1;x=t|x<<1;g=v<<1|a>>>31|0;a=v>>>31|w<<1|0;eE(e|0,k|0,g|0,a|0)|0;i=y;l=i>>31|((i|0)<0?-1:0)<<1;t=l&1;v=eE(g|0,a|0,l&b|0,(((i|0)<0?-1:0)>>31|((i|0)<0?-1:0)<<1)&d|0)|0;w=y;u=u-1|0;}while((u|0)!=0);C=h;D=x;E=w;F=v;G=0;H=t;}t=D;D=0;if(f|0){c[f>>2]=F;c[f+4>>2]=E;}n=(t|0)>>>31|(C|D)<<1|(D<<1|t>>>31)&0|G;o=(t<<1|0>>>31)&-2|H;return(y=n,o)|0;}function hE(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return gE(a,b,c,d,0)|0;}function iE(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){y=b>>>c;return a>>>c|(b&(1<<c)-1)<<32-c;}y=0;return b>>>c-32|0;}function jE(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){y=b<<c|(a&(1<<c)-1<<32-c)>>>32-c;return a<<c;}y=a<<c-32;return 0;}function kE(a){a=a|0;return(a&255)<<24|(a>>8&255)<<16|(a>>16&255)<<8|a>>>24|0;}function lE(a,b,c){a=a|0;b=b|0;c=c|0;c=Q(b)|0;if((c|0)==32)c=c+(Q(a)|0)|0;y=0;return c|0;}function mE(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=8192)return nb(b|0,d|0,e|0)|0;f=b|0;g=b+e|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0;}h=g&-4|0;e=h-64|0;while((b|0)<=(e|0)){c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];c[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];c[b+28>>2]=c[d+28>>2];c[b+32>>2]=c[d+32>>2];c[b+36>>2]=c[d+36>>2];c[b+40>>2]=c[d+40>>2];c[b+44>>2]=c[d+44>>2];c[b+48>>2]=c[d+48>>2];c[b+52>>2]=c[d+52>>2];c[b+56>>2]=c[d+56>>2];c[b+60>>2]=c[d+60>>2];b=b+64|0;d=d+64|0;}while((b|0)<(h|0)){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;}}else{h=g-4|0;while((b|0)<(h|0)){a[b>>0]=a[d>>0]|0;a[b+1>>0]=a[d+1>>0]|0;a[b+2>>0]=a[d+2>>0]|0;a[b+3>>0]=a[d+3>>0]|0;b=b+4|0;d=d+4|0;}}while((b|0)<(g|0)){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;}return f|0;}function nE(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if((c|0)<(b|0)&(b|0)<(c+d|0)){e=b;c=c+d|0;b=b+d|0;while((d|0)>0){b=b-1|0;c=c-1|0;d=d-1|0;a[b>>0]=a[c>>0]|0;}b=e;}else mE(b,c,d)|0;return b|0;}function oE(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;d=d&255;if((e|0)>=67){while(b&3){a[b>>0]=d;b=b+1|0;}g=f&-4|0;h=g-64|0;i=d|d<<8|d<<16|d<<24;while((b|0)<=(h|0)){c[b>>2]=i;c[b+4>>2]=i;c[b+8>>2]=i;c[b+12>>2]=i;c[b+16>>2]=i;c[b+20>>2]=i;c[b+24>>2]=i;c[b+28>>2]=i;c[b+32>>2]=i;c[b+36>>2]=i;c[b+40>>2]=i;c[b+44>>2]=i;c[b+48>>2]=i;c[b+52>>2]=i;c[b+56>>2]=i;c[b+60>>2]=i;b=b+64|0;}while((b|0)<(g|0)){c[b>>2]=i;b=b+4|0;}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0;}return f-e|0;}function pE(a){a=a|0;var b=0,d=0;b=c[i>>2]|0;d=b+a|0;if((a|0)>0&(d|0)<(b|0)|(d|0)<0){V()|0;Ca(12);return-1;}c[i>>2]=d;if((d|0)>(U()|0)?(T()|0)==0:0){c[i>>2]=b;Ca(12);return-1;}return b|0;}function qE(a){a=a|0;return oc[a&7]()|0;}function rE(a,b){a=a|0;b=b|0;return pc[a&63](b|0)|0;}function sE(a,b,c){a=a|0;b=b|0;c=c|0;return qc[a&63](b|0,c|0)|0;}function tE(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return rc[a&31](b|0,c|0,d|0)|0;}function uE(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return sc[a&15](b|0,c|0,d|0,e|0)|0;}function vE(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return tc[a&7](b|0,c|0,d|0,e|0,f|0)|0;}function wE(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return uc[a&31](b|0,c|0,d|0,e|0,f|0,g|0)|0;}function xE(a){a=a|0;vc[a&3]();}function yE(a,b){a=a|0;b=b|0;wc[a&127](b|0);}function zE(a,b,c){a=a|0;b=b|0;c=c|0;xc[a&31](b|0,c|0);}function AE(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;yc[a&7](b|0,c|0,d|0);}function BE(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;zc[a&7](b|0,c|0,d|0,e|0);}function CE(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;Ac[a&3](b|0,c|0,d|0,e|0,f|0);}function DE(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Bc[a&3](b|0,c|0,d|0,e|0,f|0,g|0);}function EE(){R(0);return 0;}function FE(a){a=a|0;R(1);return 0;}function GE(a,b){a=a|0;b=b|0;R(2);return 0;}function HE(a,b,c){a=a|0;b=b|0;c=c|0;R(3);return 0;}function IE(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;R(4);return 0;}function JE(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;R(5);return 0;}function KE(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;R(6);return 0;}function LE(){R(7);}function ME(a){a=a|0;R(8);}function NE(a,b){a=a|0;b=b|0;R(9);}function OE(a,b,c){a=a|0;b=b|0;c=c|0;R(10);}function PE(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;R(11);}function QE(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;R(12);}function RE(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;R(13);}// EMSCRIPTEN_END_FUNCS
  25. var oc=[EE,Ce,Me,Ue,ge,EE,EE,EE];var pc=[FE,fd,ld,nd,td,vd,Bd,Ed,Kd,Md,Sd,Ud,_d,kf,qf,xf,Df,If,Of,Tf,Zf,fg,lg,og,ug,Fg,Lg,Og,Ug,Iy,Tz,qe,ve,Qc,Ae,De,Ke,Ne,Se,Ve,Wc,ee,he,Mc,Oo,Gx,FE,FE,FE,FE,FE,FE,FE,FE,FE,FE,FE,FE,FE,FE,FE,FE,FE,FE];var qc=[GE,kd,sd,Ad,Jd,Rd,Zd,pf,Cf,Nf,Yf,jg,kg,sg,tg,Jg,Kg,Sg,Tg,Ht,pe,Oc,ze,$e,af,Rc,Sc,Uc,Vc,We,Xc,Zc,_c,ke,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE];var rc=[HE,Jy,Ky,Ny,zz,cA,xA,zA,CA,ue,Ee,Fe,cf,Oe,Pe,Tc,Re,Xe,Yc,Ze,le,ce,Py,HE,HE,HE,HE,HE,HE,HE,HE,HE];var sc=[IE,vu,wu,Kv,Lv,Xw,Yw,bf,He,df,rf,Qe,Ye,me,IE,IE];var tc=[JE,Ge,Ie,Je,tn,sn,Km,Jm];var uc=[KE,Xl,Yl,Zl,_l,$l,am,bm,cm,dm,em,fm,gm,hm,im,jm,km,KE,KE,KE,KE,KE,KE,KE,KE,KE,KE,KE,KE,KE,KE,KE];var vc=[LE,Xz,Jc,qA];var wc=[ME,Cd,ed,hd,id,md,pd,qd,ud,xd,yd,Dd,Gd,Hd,Ld,Od,Pd,Td,Wd,Xd,hf,jf,mf,nf,vf,wf,zf,Af,Gf,Hf,Kf,Lf,Rf,Sf,Vf,Wf,dg,eg,hg,ig,ng,qg,rg,Dg,Eg,Hg,Ig,Ng,Qg,Rg,Rz,Sz,_z,$z,aA,bA,lA,wA,yA,BA,DA,ne,re,we,Be,Le,Te,fe,ef,sf,Ff,Qf,rA,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME];var xc=[NE,gd,jd,od,rd,wd,zd,Fd,Id,Nd,Qd,Vd,Yd,lf,of,yf,Bf,Jf,Mf,Uf,Xf,gg,pg,Gg,Pg,It,Kc,Lc,Nc,$d,NE,NE];var yc=[OE,oe,ie,ae,be,OE,OE,OE];var zc=[PE,fA,oA,GA,je,PE,PE,PE];var Ac=[QE,eA,nA,FA];var Bc=[RE,dA,mA,EA];return{__GLOBAL__sub_I_bind_cpp:zy,__GLOBAL__sub_I_zstd_binding_cc:_e,___cxa_can_catch:_D,___cxa_demangle:KA,___cxa_is_pointer_type:$D,___errno_location:My,___getTypeName:By,___muldi3:cE,___udivdi3:hE,_bitshift64Lshr:iE,_bitshift64Shl:jE,_free:Dy,_i64Add:dE,_i64Subtract:eE,_llvm_bswap_i32:kE,_llvm_ctlz_i64:lE,_llvm_cttz_i32:fE,_malloc:Cy,_memcpy:mE,_memmove:nE,_memset:oE,_sbrk:pE,dynCall_i:qE,dynCall_ii:rE,dynCall_iii:sE,dynCall_iiii:tE,dynCall_iiiii:uE,dynCall_iiiiii:vE,dynCall_iiiiiii:wE,dynCall_v:xE,dynCall_vi:yE,dynCall_vii:zE,dynCall_viii:AE,dynCall_viiii:BE,dynCall_viiiii:CE,dynCall_viiiiii:DE,establishStackSpace:Fc,getTempRet0:Ic,runPostSets:aE,setTempRet0:Hc,setThrew:Gc,stackAlloc:Cc,stackRestore:Ec,stackSave:Dc};}(// EMSCRIPTEN_END_ASM
  26. Module.asmGlobalArg,Module.asmLibraryArg,buffer);var __GLOBAL__sub_I_bind_cpp=Module["__GLOBAL__sub_I_bind_cpp"]=asm["__GLOBAL__sub_I_bind_cpp"];var __GLOBAL__sub_I_zstd_binding_cc=Module["__GLOBAL__sub_I_zstd_binding_cc"]=asm["__GLOBAL__sub_I_zstd_binding_cc"];var ___cxa_can_catch=Module["___cxa_can_catch"]=asm["___cxa_can_catch"];var ___cxa_demangle=Module["___cxa_demangle"]=asm["___cxa_demangle"];var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=asm["___cxa_is_pointer_type"];var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var ___getTypeName=Module["___getTypeName"]=asm["___getTypeName"];var ___muldi3=Module["___muldi3"]=asm["___muldi3"];var ___udivdi3=Module["___udivdi3"]=asm["___udivdi3"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _free=Module["_free"]=asm["_free"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _llvm_bswap_i32=Module["_llvm_bswap_i32"]=asm["_llvm_bswap_i32"];var _llvm_ctlz_i64=Module["_llvm_ctlz_i64"]=asm["_llvm_ctlz_i64"];var _llvm_cttz_i32=Module["_llvm_cttz_i32"]=asm["_llvm_cttz_i32"];var _malloc=Module["_malloc"]=asm["_malloc"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _memmove=Module["_memmove"]=asm["_memmove"];var _memset=Module["_memset"]=asm["_memset"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var getTempRet0=Module["getTempRet0"]=asm["getTempRet0"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var setTempRet0=Module["setTempRet0"]=asm["setTempRet0"];var setThrew=Module["setThrew"]=asm["setThrew"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var _stackRestore=Module["stackRestore"]=asm["stackRestore"];var _stackSave=Module["stackSave"]=asm["stackSave"];var dynCall_i=Module["dynCall_i"]=asm["dynCall_i"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_iiiii=Module["dynCall_iiiii"]=asm["dynCall_iiiii"];var dynCall_iiiiii=Module["dynCall_iiiiii"]=asm["dynCall_iiiiii"];var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=asm["dynCall_iiiiiii"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];Module["asm"]=asm;Module["FS"]=FS;if(memoryInitializer){if(!isDataURI(memoryInitializer)){memoryInitializer=locateFile(memoryInitializer);}if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=Module["readBinary"](memoryInitializer);HEAPU8.set(data,GLOBAL_BASE);}else{var doBrowserLoad=function doBrowserLoad(){Module["readAsync"](memoryInitializer,applyMemoryInitializer,function(){throw"could not load memory initializer "+memoryInitializer;});};addRunDependency("memory initializer");var applyMemoryInitializer=function applyMemoryInitializer(data){if(data.byteLength)data=new Uint8Array(data);HEAPU8.set(data,GLOBAL_BASE);if(Module["memoryInitializerRequest"])delete Module["memoryInitializerRequest"].response;removeRunDependency("memory initializer");};var memoryInitializerBytes=tryParseAsDataURI(memoryInitializer);if(memoryInitializerBytes){applyMemoryInitializer(memoryInitializerBytes.buffer);}else if(Module["memoryInitializerRequest"]){var useRequest=function useRequest(){var request=Module["memoryInitializerRequest"];var response=request.response;if(request.status!==200&&request.status!==0){var data=tryParseAsDataURI(Module["memoryInitializerRequestURL"]);if(data){response=data.buffer;}else{console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+request.status+", retrying "+memoryInitializer);doBrowserLoad();return;}}applyMemoryInitializer(response);};if(Module["memoryInitializerRequest"].response){setTimeout(useRequest,0);}else{Module["memoryInitializerRequest"].addEventListener("load",useRequest);}}else{doBrowserLoad();}}}Module["then"]=function(func){if(Module["calledRun"]){func(Module);}else{var old=Module["onRuntimeInitialized"];Module["onRuntimeInitialized"]=function(){if(old)old();func(Module);};}return Module;};function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status;}ExitStatus.prototype=new Error();ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller;};function run(args){args=args||Module["arguments"];if(runDependencies>0){return;}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun();}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("");},1);doRun();},1);}else{doRun();}}Module["run"]=run;function abort(what){if(Module["onAbort"]){Module["onAbort"](what);}if(what!==undefined){out(what);err(what);what=JSON.stringify(what);}else{what="";}ABORT=true;EXITSTATUS=1;throw"abort("+what+"). Build with -s ASSERTIONS=1 for more info.";}Module["abort"]=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()();}}Module["noExitRuntime"]=true;run();return Module;};}();if((typeof exports==='undefined'?'undefined':_typeof(exports))==='object'&&(typeof module==='undefined'?'undefined':_typeof(module))==='object')module.exports=Module;else if(typeof define==='function'&&define['amd'])define([],function(){return Module;});else if((typeof exports==='undefined'?'undefined':_typeof(exports))==='object')exports["Module"]=Module;
  27. }).call(this,require('_process'),require("buffer").Buffer,"/lib")
  28. },{"_process":126,"buffer":54,"crypto":63,"fs":9,"path":119}],7:[function(require,module,exports){
  29. 'use strict';var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var ArrayBufferHelper=require('./helpers.js').ArrayBufferHelper;var constants=require('./constants.js');var onReady=function onReady(binding){var codec=new binding.ZstdCodec();var withBindingInstance=function withBindingInstance(instance,callback){try{return callback(instance);}finally{instance.delete();}};var withCppVector=function withCppVector(callback){var vector=new binding.VectorU8();return withBindingInstance(vector,callback);};var correctCompressionLevel=function correctCompressionLevel(compression_level){return compression_level||constants.DEFAULT_COMPRESSION_LEVEL;};var compressBoundImpl=function compressBoundImpl(content_size){var rc=codec.compressBound(content_size);return rc>=0?rc:null;};var contentSizeImpl=function contentSizeImpl(src_vec){var rc=codec.contentSize(src_vec);return rc>=0?rc:null;};var ArrayBufferSink=function(){function ArrayBufferSink(initial_size){_classCallCheck(this,ArrayBufferSink);this._buffer=new ArrayBuffer(initial_size);this._array=new Uint8Array(this._buffer);this._offset=0;}_createClass(ArrayBufferSink,[{key:'concat',value:function concat(array){if(array.length+this._offset>this._array.length){this._grow(Math.max(this._array.length,array.length)*2);}this._array.set(array,this._offset);this._offset+=array.length;}},{key:'array',value:function array(){// NOTE: clone buffer to shrink to fit
  30. var buffer=ArrayBufferHelper.transfer(this._buffer,this._offset);return new Uint8Array(buffer);}},{key:'_grow',value:function _grow(new_size){this._buffer=ArrayBufferHelper.transfer(this._buffer,new_size);this._array=new Uint8Array(this._buffer);}}]);return ArrayBufferSink;}();var Generic=function(){function Generic(){_classCallCheck(this,Generic);}_createClass(Generic,[{key:'compressBound',value:function compressBound(content_bytes){return compressBoundImpl(content_bytes.length);}},{key:'contentSize',value:function contentSize(compressed_bytes){return withCppVector(function(src){binding.cloneToVector(src,compressed_bytes);return contentSizeImpl(src);});}}]);return Generic;}();var Simple=function(){function Simple(){_classCallCheck(this,Simple);}_createClass(Simple,[{key:'compress',value:function compress(content_bytes,compression_level){// use basic-api `compress`, to embed `frameContentSize`.
  31. var compressBound=compressBoundImpl(content_bytes.length);if(!compressBound)return null;compression_level=correctCompressionLevel(compression_level);return withCppVector(function(src){return withCppVector(function(dest){binding.cloneToVector(src,content_bytes);dest.resize(compressBound,0);var rc=codec.compress(dest,src,compression_level);if(rc<0)return null;// `rc` is compressed size
  32. dest.resize(rc,0);return binding.cloneAsTypedArray(dest);});});}},{key:'decompress',value:function decompress(compressed_bytes){// use streaming-api, to support data without `frameContentSize`.
  33. return withCppVector(function(src){return withCppVector(function(dest){binding.cloneToVector(src,compressed_bytes);var contentSize=contentSizeImpl(src);if(!contentSize)return null;dest.resize(contentSize,0);var rc=codec.decompress(dest,src);if(rc<0||rc!=contentSize)return null;// `rc` is compressed size
  34. return binding.cloneAsTypedArray(dest);});});}},{key:'compressUsingDict',value:function compressUsingDict(content_bytes,cdict){// use basic-api `compress`, to embed `frameContentSize`.
  35. var compressBound=compressBoundImpl(content_bytes.length);if(!compressBound)return null;return withCppVector(function(src){return withCppVector(function(dest){binding.cloneToVector(src,content_bytes);dest.resize(compressBound,0);var rc=codec.compressUsingDict(dest,src,cdict.get());if(rc<0)return null;// `rc` is original content size
  36. dest.resize(rc,0);return binding.cloneAsTypedArray(dest);});});}},{key:'decompressUsingDict',value:function decompressUsingDict(compressed_bytes,ddict){// use streaming-api, to support data without `frameContentSize`.
  37. return withCppVector(function(src){return withCppVector(function(dest){binding.cloneToVector(src,compressed_bytes);var contentSize=contentSizeImpl(src);if(!contentSize)return null;dest.resize(contentSize,0);var rc=codec.decompressUsingDict(dest,src,ddict.get());if(rc<0||rc!=contentSize)return null;// `rc` is compressed size
  38. return binding.cloneAsTypedArray(dest);});});}}]);return Simple;}();var Streaming=function(){function Streaming(){_classCallCheck(this,Streaming);}_createClass(Streaming,[{key:'compress',value:function compress(content_bytes,compression_level){return withBindingInstance(new binding.ZstdCompressStreamBinding(),function(stream){var initial_size=compressBoundImpl(content_bytes.length);var sink=new ArrayBufferSink(initial_size);var callback=function callback(compressed){sink.concat(compressed);};var level=correctCompressionLevel(compression_level);if(!stream.begin(level))return null;if(!stream.transform(content_bytes,callback))return null;if(!stream.end(callback))return null;return sink.array();});}},{key:'compressChunks',value:function compressChunks(chunks,size_hint,compression_level){return withBindingInstance(new binding.ZstdCompressStreamBinding(),function(stream){var initial_size=size_hint||constants.STREAMING_DEFAULT_BUFFER_SIZE;var sink=new ArrayBufferSink(initial_size);var callback=function callback(compressed){sink.concat(compressed);};var level=correctCompressionLevel(compression_level);if(!stream.begin(level))return null;var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=chunks[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var chunk=_step.value;if(!stream.transform(chunk,callback))return null;}}catch(err){_didIteratorError=true;_iteratorError=err;}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return();}}finally{if(_didIteratorError){throw _iteratorError;}}}if(!stream.end(callback))return null;return sink.array();});}},{key:'compressUsingDict',value:function compressUsingDict(content_bytes,cdict){return withBindingInstance(new binding.ZstdCompressStreamBinding(),function(stream){var initial_size=compressBoundImpl(content_bytes.length);var sink=new ArrayBufferSink(initial_size);var callback=function callback(compressed){sink.concat(compressed);};if(!stream.beginUsingDict(cdict.get()))return null;if(!stream.transform(content_bytes,callback))return null;if(!stream.end(callback))return null;return sink.array();});}},{key:'compressChunksUsingDict',value:function compressChunksUsingDict(chunks,size_hint,cdict){return withBindingInstance(new binding.ZstdCompressStreamBinding(),function(stream){var initial_size=size_hint||constants.STREAMING_DEFAULT_BUFFER_SIZE;var sink=new ArrayBufferSink(initial_size);var callback=function callback(compressed){sink.concat(compressed);};if(!stream.beginUsingDict(cdict.get()))return null;var _iteratorNormalCompletion2=true;var _didIteratorError2=false;var _iteratorError2=undefined;try{for(var _iterator2=chunks[Symbol.iterator](),_step2;!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=true){var chunk=_step2.value;if(!stream.transform(chunk,callback))return null;}}catch(err){_didIteratorError2=true;_iteratorError2=err;}finally{try{if(!_iteratorNormalCompletion2&&_iterator2.return){_iterator2.return();}}finally{if(_didIteratorError2){throw _iteratorError2;}}}if(!stream.end(callback))return null;return sink.array();});}},{key:'decompress',value:function decompress(compressed_bytes,size_hint){var _this=this;return withBindingInstance(new binding.ZstdDecompressStreamBinding(),function(stream){var initial_size=size_hint||_this._estimateContentSize(compressed_bytes);var sink=new ArrayBufferSink(initial_size);var callback=function callback(decompressed){sink.concat(decompressed);};if(!stream.begin())return null;if(!stream.transform(compressed_bytes,callback))return null;if(!stream.end(callback))return null;return sink.array();});}},{key:'decompressChunks',value:function decompressChunks(chunks,size_hint){return withBindingInstance(new binding.ZstdDecompressStreamBinding(),function(stream){var initial_size=size_hint||constants.STREAMING_DEFAULT_BUFFER_SIZE;var sink=new ArrayBufferSink(initial_size);var callback=function callback(decompressed){sink.concat(decompressed);};if(!stream.begin())return null;var _iteratorNormalCompletion3=true;var _didIteratorError3=false;var _iteratorError3=undefined;try{for(var _iterator3=chunks[Symbol.iterator](),_step3;!(_iteratorNormalCompletion3=(_step3=_iterator3.next()).done);_iteratorNormalCompletion3=true){var chunk=_step3.value;if(!stream.transform(chunk,callback))return null;}}catch(err){_didIteratorError3=true;_iteratorError3=err;}finally{try{if(!_iteratorNormalCompletion3&&_iterator3.return){_iterator3.return();}}finally{if(_didIteratorError3){throw _iteratorError3;}}}if(!stream.end(callback))return null;return sink.array();});}},{key:'decompressUsingDict',value:function decompressUsingDict(compressed_bytes,size_hint,ddict){var _this2=this;return withBindingInstance(new binding.ZstdDecompressStreamBinding(),function(stream){var initial_size=size_hint||_this2._estimateContentSize(compressed_bytes);var sink=new ArrayBufferSink(initial_size);var callback=function callback(decompressed){sink.concat(decompressed);};if(!stream.beginUsingDict(ddict.get()))return null;if(!stream.transform(compressed_bytes,callback))return null;if(!stream.end(callback))return null;return sink.array();});}},{key:'decompressChunksUsingDict',value:function decompressChunksUsingDict(chunks,size_hint,ddict){return withBindingInstance(new binding.ZstdDecompressStreamBinding(),function(stream){var initial_size=size_hint||constants.STREAMING_DEFAULT_BUFFER_SIZE;var sink=new ArrayBufferSink(initial_size);var callback=function callback(decompressed){sink.concat(decompressed);};if(!stream.beginUsingDict(ddict.get()))return null;var _iteratorNormalCompletion4=true;var _didIteratorError4=false;var _iteratorError4=undefined;try{for(var _iterator4=chunks[Symbol.iterator](),_step4;!(_iteratorNormalCompletion4=(_step4=_iterator4.next()).done);_iteratorNormalCompletion4=true){var chunk=_step4.value;if(!stream.transform(chunk,callback))return null;}}catch(err){_didIteratorError4=true;_iteratorError4=err;}finally{try{if(!_iteratorNormalCompletion4&&_iterator4.return){_iterator4.return();}}finally{if(_didIteratorError4){throw _iteratorError4;}}}if(!stream.end(callback))return null;return sink.array();});}},{key:'_estimateContentSize',value:function _estimateContentSize(compressed_bytes){// REF: https://code.facebook.com/posts/1658392934479273/smaller-and-faster-data-compression-with-zstandard/
  39. // with lzbench, ratio=3.11 .. 3.14. round up to integer
  40. return compressed_bytes.length*4;}}]);return Streaming;}();var ZstdCompressionDict=function(){function ZstdCompressionDict(dict_bytes,compression_level){_classCallCheck(this,ZstdCompressionDict);this.binding=binding.createCompressionDict(dict_bytes,compression_level);}_createClass(ZstdCompressionDict,[{key:'get',value:function get(){return this.binding;}},{key:'close',value:function close(){if(this.binding){this.binding.delete();}}},{key:'delete',value:function _delete(){this.close();}}]);return ZstdCompressionDict;}();var ZstdDecompressionDict=function(){function ZstdDecompressionDict(dict_bytes){_classCallCheck(this,ZstdDecompressionDict);this.binding=new binding.createDecompressionDict(dict_bytes);}_createClass(ZstdDecompressionDict,[{key:'get',value:function get(){return this.binding;}},{key:'close',value:function close(){if(this.binding){this.binding.delete();}}},{key:'delete',value:function _delete(){this.close();}}]);return ZstdDecompressionDict;}();var zstd={};zstd.Generic=Generic;zstd.Simple=Simple;zstd.Streaming=Streaming;zstd.Dict={};zstd.Dict.Compress=ZstdCompressionDict;zstd.Dict.Decompress=ZstdDecompressionDict;return zstd;};exports.run=function(f){return require('./module.js').run(function(binding){var zstd=onReady(binding);f(zstd);});};
  41. },{"./constants.js":2,"./helpers.js":3,"./module.js":4}],8:[function(require,module,exports){
  42. 'use strict';var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj;}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}var stream=require('stream');var binding=require('./module.js').Binding;var constants=require('./constants.js');var helpers=require('./helpers.js');var getClassName=helpers.getClassName;var toTypedArray=helpers.toTypedArray;var fromTypedArrayToBuffer=helpers.fromTypedArrayToBuffer;var onReady=function onReady(binding){var ZstdCompressTransform=function(_stream$Transform){_inherits(ZstdCompressTransform,_stream$Transform);function ZstdCompressTransform(compression_level,string_decoder,option){_classCallCheck(this,ZstdCompressTransform);var _this=_possibleConstructorReturn(this,(ZstdCompressTransform.__proto__||Object.getPrototypeOf(ZstdCompressTransform)).call(this,option||{}));_this.string_decoder=string_decoder;_this.binding=new binding.ZstdCompressStreamBinding();_this.binding.begin(compression_level||constants.DEFAULT_COMPRESSION_LEVEL);_this.callback=function(compressed){_this.push(fromTypedArrayToBuffer(compressed),'buffer');};return _this;}_createClass(ZstdCompressTransform,[{key:'_transform',value:function _transform(chunk,encoding,callback){var chunkBytes=toTypedArray(chunk,encoding,this.string_decoder);if(!chunkBytes){var type_name=getClassName(chunk)||(typeof chunk==='undefined'?'undefined':_typeof(chunk));callback(new Error('unsupported chunk type: '+type_name));return;}if(this.binding.transform(chunkBytes,this.callback)){callback();}else{callback(new Error('ZstdDecompressTransform: Error on _transform'));}}},{key:'_flush',value:function _flush(callback){if(this.binding.flush(this.callback)){callback();}else{callback(new Error('ZstdDecompressTransform: Error on _flush'));}}},{key:'_final',value:function _final(callback){if(this.binding.end(this.callback)){callback();}else{callback(new Error('ZstdDecompressTransform: Error on _final'));}}}]);return ZstdCompressTransform;}(stream.Transform);var ZstdDecompressTransform=function(_stream$Transform2){_inherits(ZstdDecompressTransform,_stream$Transform2);function ZstdDecompressTransform(option){_classCallCheck(this,ZstdDecompressTransform);var _this2=_possibleConstructorReturn(this,(ZstdDecompressTransform.__proto__||Object.getPrototypeOf(ZstdDecompressTransform)).call(this,option||{}));_this2.binding=new binding.ZstdDecompressStreamBinding();_this2.binding.begin();_this2.callback=function(decompressed){_this2.push(fromTypedArrayToBuffer(decompressed),'buffer');};return _this2;}_createClass(ZstdDecompressTransform,[{key:'_transform',value:function _transform(chunk,encoding,callback){var chunkBytes=toTypedArray(chunk,encoding,this.string_decoder);if(!chunkBytes){var type_name=getClassName(chunk)||(typeof chunk==='undefined'?'undefined':_typeof(chunk));callback(new Error('unsupported chunk type: '+type_name));return;}if(this.binding.transform(chunk,this.callback)){callback();}else{callback(new Error('ZstdDecompressTransform: Error on _transform'));}}},{key:'_flush',value:function _flush(callback){if(this.binding.flush(this.callback)){callback();}else{callback(new Error('ZstdDecompressTransform: Error on _flush'));}}},{key:'_final',value:function _final(callback){if(this.binding.end(this.callback)){callback();}else{callback(new Error('ZstdDecompressTransform: Error on _final'));}}}]);return ZstdDecompressTransform;}(stream.Transform);var streams={};streams.ZstdCompressTransform=ZstdCompressTransform;streams.ZstdDecompressTransform=ZstdDecompressTransform;return streams;};exports=function exports(f){return require('./module.js').then(function(binding){var streams=onReady(binding);f(streams);});};
  43. },{"./constants.js":2,"./helpers.js":3,"./module.js":4,"stream":157}],9:[function(require,module,exports){
  44. },{}],10:[function(require,module,exports){
  45. var asn1 = exports;
  46. asn1.bignum = require('bn.js');
  47. asn1.define = require('./asn1/api').define;
  48. asn1.base = require('./asn1/base');
  49. asn1.constants = require('./asn1/constants');
  50. asn1.decoders = require('./asn1/decoders');
  51. asn1.encoders = require('./asn1/encoders');
  52. },{"./asn1/api":11,"./asn1/base":13,"./asn1/constants":17,"./asn1/decoders":19,"./asn1/encoders":22,"bn.js":25}],11:[function(require,module,exports){
  53. var asn1 = require('../asn1');
  54. var inherits = require('inherits');
  55. var api = exports;
  56. api.define = function define(name, body) {
  57. return new Entity(name, body);
  58. };
  59. function Entity(name, body) {
  60. this.name = name;
  61. this.body = body;
  62. this.decoders = {};
  63. this.encoders = {};
  64. };
  65. Entity.prototype._createNamed = function createNamed(base) {
  66. var named;
  67. try {
  68. named = require('vm').runInThisContext(
  69. '(function ' + this.name + '(entity) {\n' +
  70. ' this._initNamed(entity);\n' +
  71. '})'
  72. );
  73. } catch (e) {
  74. named = function (entity) {
  75. this._initNamed(entity);
  76. };
  77. }
  78. inherits(named, base);
  79. named.prototype._initNamed = function initnamed(entity) {
  80. base.call(this, entity);
  81. };
  82. return new named(this);
  83. };
  84. Entity.prototype._getDecoder = function _getDecoder(enc) {
  85. enc = enc || 'der';
  86. // Lazily create decoder
  87. if (!this.decoders.hasOwnProperty(enc))
  88. this.decoders[enc] = this._createNamed(asn1.decoders[enc]);
  89. return this.decoders[enc];
  90. };
  91. Entity.prototype.decode = function decode(data, enc, options) {
  92. return this._getDecoder(enc).decode(data, options);
  93. };
  94. Entity.prototype._getEncoder = function _getEncoder(enc) {
  95. enc = enc || 'der';
  96. // Lazily create encoder
  97. if (!this.encoders.hasOwnProperty(enc))
  98. this.encoders[enc] = this._createNamed(asn1.encoders[enc]);
  99. return this.encoders[enc];
  100. };
  101. Entity.prototype.encode = function encode(data, enc, /* internal */ reporter) {
  102. return this._getEncoder(enc).encode(data, reporter);
  103. };
  104. },{"../asn1":10,"inherits":108,"vm":160}],12:[function(require,module,exports){
  105. var inherits = require('inherits');
  106. var Reporter = require('../base').Reporter;
  107. var Buffer = require('buffer').Buffer;
  108. function DecoderBuffer(base, options) {
  109. Reporter.call(this, options);
  110. if (!Buffer.isBuffer(base)) {
  111. this.error('Input not Buffer');
  112. return;
  113. }
  114. this.base = base;
  115. this.offset = 0;
  116. this.length = base.length;
  117. }
  118. inherits(DecoderBuffer, Reporter);
  119. exports.DecoderBuffer = DecoderBuffer;
  120. DecoderBuffer.prototype.save = function save() {
  121. return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };
  122. };
  123. DecoderBuffer.prototype.restore = function restore(save) {
  124. // Return skipped data
  125. var res = new DecoderBuffer(this.base);
  126. res.offset = save.offset;
  127. res.length = this.offset;
  128. this.offset = save.offset;
  129. Reporter.prototype.restore.call(this, save.reporter);
  130. return res;
  131. };
  132. DecoderBuffer.prototype.isEmpty = function isEmpty() {
  133. return this.offset === this.length;
  134. };
  135. DecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {
  136. if (this.offset + 1 <= this.length)
  137. return this.base.readUInt8(this.offset++, true);
  138. else
  139. return this.error(fail || 'DecoderBuffer overrun');
  140. }
  141. DecoderBuffer.prototype.skip = function skip(bytes, fail) {
  142. if (!(this.offset + bytes <= this.length))
  143. return this.error(fail || 'DecoderBuffer overrun');
  144. var res = new DecoderBuffer(this.base);
  145. // Share reporter state
  146. res._reporterState = this._reporterState;
  147. res.offset = this.offset;
  148. res.length = this.offset + bytes;
  149. this.offset += bytes;
  150. return res;
  151. }
  152. DecoderBuffer.prototype.raw = function raw(save) {
  153. return this.base.slice(save ? save.offset : this.offset, this.length);
  154. }
  155. function EncoderBuffer(value, reporter) {
  156. if (Array.isArray(value)) {
  157. this.length = 0;
  158. this.value = value.map(function(item) {
  159. if (!(item instanceof EncoderBuffer))
  160. item = new EncoderBuffer(item, reporter);
  161. this.length += item.length;
  162. return item;
  163. }, this);
  164. } else if (typeof value === 'number') {
  165. if (!(0 <= value && value <= 0xff))
  166. return reporter.error('non-byte EncoderBuffer value');
  167. this.value = value;
  168. this.length = 1;
  169. } else if (typeof value === 'string') {
  170. this.value = value;
  171. this.length = Buffer.byteLength(value);
  172. } else if (Buffer.isBuffer(value)) {
  173. this.value = value;
  174. this.length = value.length;
  175. } else {
  176. return reporter.error('Unsupported type: ' + typeof value);
  177. }
  178. }
  179. exports.EncoderBuffer = EncoderBuffer;
  180. EncoderBuffer.prototype.join = function join(out, offset) {
  181. if (!out)
  182. out = new Buffer(this.length);
  183. if (!offset)
  184. offset = 0;
  185. if (this.length === 0)
  186. return out;
  187. if (Array.isArray(this.value)) {
  188. this.value.forEach(function(item) {
  189. item.join(out, offset);
  190. offset += item.length;
  191. });
  192. } else {
  193. if (typeof this.value === 'number')
  194. out[offset] = this.value;
  195. else if (typeof this.value === 'string')
  196. out.write(this.value, offset);
  197. else if (Buffer.isBuffer(this.value))
  198. this.value.copy(out, offset);
  199. offset += this.length;
  200. }
  201. return out;
  202. };
  203. },{"../base":13,"buffer":54,"inherits":108}],13:[function(require,module,exports){
  204. var base = exports;
  205. base.Reporter = require('./reporter').Reporter;
  206. base.DecoderBuffer = require('./buffer').DecoderBuffer;
  207. base.EncoderBuffer = require('./buffer').EncoderBuffer;
  208. base.Node = require('./node');
  209. },{"./buffer":12,"./node":14,"./reporter":15}],14:[function(require,module,exports){
  210. var Reporter = require('../base').Reporter;
  211. var EncoderBuffer = require('../base').EncoderBuffer;
  212. var DecoderBuffer = require('../base').DecoderBuffer;
  213. var assert = require('minimalistic-assert');
  214. // Supported tags
  215. var tags = [
  216. 'seq', 'seqof', 'set', 'setof', 'objid', 'bool',
  217. 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc',
  218. 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str',
  219. 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr'
  220. ];
  221. // Public methods list
  222. var methods = [
  223. 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice',
  224. 'any', 'contains'
  225. ].concat(tags);
  226. // Overrided methods list
  227. var overrided = [
  228. '_peekTag', '_decodeTag', '_use',
  229. '_decodeStr', '_decodeObjid', '_decodeTime',
  230. '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList',
  231. '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime',
  232. '_encodeNull', '_encodeInt', '_encodeBool'
  233. ];
  234. function Node(enc, parent) {
  235. var state = {};
  236. this._baseState = state;
  237. state.enc = enc;
  238. state.parent = parent || null;
  239. state.children = null;
  240. // State
  241. state.tag = null;
  242. state.args = null;
  243. state.reverseArgs = null;
  244. state.choice = null;
  245. state.optional = false;
  246. state.any = false;
  247. state.obj = false;
  248. state.use = null;
  249. state.useDecoder = null;
  250. state.key = null;
  251. state['default'] = null;
  252. state.explicit = null;
  253. state.implicit = null;
  254. state.contains = null;
  255. // Should create new instance on each method
  256. if (!state.parent) {
  257. state.children = [];
  258. this._wrap();
  259. }
  260. }
  261. module.exports = Node;
  262. var stateProps = [
  263. 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice',
  264. 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit',
  265. 'implicit', 'contains'
  266. ];
  267. Node.prototype.clone = function clone() {
  268. var state = this._baseState;
  269. var cstate = {};
  270. stateProps.forEach(function(prop) {
  271. cstate[prop] = state[prop];
  272. });
  273. var res = new this.constructor(cstate.parent);
  274. res._baseState = cstate;
  275. return res;
  276. };
  277. Node.prototype._wrap = function wrap() {
  278. var state = this._baseState;
  279. methods.forEach(function(method) {
  280. this[method] = function _wrappedMethod() {
  281. var clone = new this.constructor(this);
  282. state.children.push(clone);
  283. return clone[method].apply(clone, arguments);
  284. };
  285. }, this);
  286. };
  287. Node.prototype._init = function init(body) {
  288. var state = this._baseState;
  289. assert(state.parent === null);
  290. body.call(this);
  291. // Filter children
  292. state.children = state.children.filter(function(child) {
  293. return child._baseState.parent === this;
  294. }, this);
  295. assert.equal(state.children.length, 1, 'Root node can have only one child');
  296. };
  297. Node.prototype._useArgs = function useArgs(args) {
  298. var state = this._baseState;
  299. // Filter children and args
  300. var children = args.filter(function(arg) {
  301. return arg instanceof this.constructor;
  302. }, this);
  303. args = args.filter(function(arg) {
  304. return !(arg instanceof this.constructor);
  305. }, this);
  306. if (children.length !== 0) {
  307. assert(state.children === null);
  308. state.children = children;
  309. // Replace parent to maintain backward link
  310. children.forEach(function(child) {
  311. child._baseState.parent = this;
  312. }, this);
  313. }
  314. if (args.length !== 0) {
  315. assert(state.args === null);
  316. state.args = args;
  317. state.reverseArgs = args.map(function(arg) {
  318. if (typeof arg !== 'object' || arg.constructor !== Object)
  319. return arg;
  320. var res = {};
  321. Object.keys(arg).forEach(function(key) {
  322. if (key == (key | 0))
  323. key |= 0;
  324. var value = arg[key];
  325. res[value] = key;
  326. });
  327. return res;
  328. });
  329. }
  330. };
  331. //
  332. // Overrided methods
  333. //
  334. overrided.forEach(function(method) {
  335. Node.prototype[method] = function _overrided() {
  336. var state = this._baseState;
  337. throw new Error(method + ' not implemented for encoding: ' + state.enc);
  338. };
  339. });
  340. //
  341. // Public methods
  342. //
  343. tags.forEach(function(tag) {
  344. Node.prototype[tag] = function _tagMethod() {
  345. var state = this._baseState;
  346. var args = Array.prototype.slice.call(arguments);
  347. assert(state.tag === null);
  348. state.tag = tag;
  349. this._useArgs(args);
  350. return this;
  351. };
  352. });
  353. Node.prototype.use = function use(item) {
  354. assert(item);
  355. var state = this._baseState;
  356. assert(state.use === null);
  357. state.use = item;
  358. return this;
  359. };
  360. Node.prototype.optional = function optional() {
  361. var state = this._baseState;
  362. state.optional = true;
  363. return this;
  364. };
  365. Node.prototype.def = function def(val) {
  366. var state = this._baseState;
  367. assert(state['default'] === null);
  368. state['default'] = val;
  369. state.optional = true;
  370. return this;
  371. };
  372. Node.prototype.explicit = function explicit(num) {
  373. var state = this._baseState;
  374. assert(state.explicit === null && state.implicit === null);
  375. state.explicit = num;
  376. return this;
  377. };
  378. Node.prototype.implicit = function implicit(num) {
  379. var state = this._baseState;
  380. assert(state.explicit === null && state.implicit === null);
  381. state.implicit = num;
  382. return this;
  383. };
  384. Node.prototype.obj = function obj() {
  385. var state = this._baseState;
  386. var args = Array.prototype.slice.call(arguments);
  387. state.obj = true;
  388. if (args.length !== 0)
  389. this._useArgs(args);
  390. return this;
  391. };
  392. Node.prototype.key = function key(newKey) {
  393. var state = this._baseState;
  394. assert(state.key === null);
  395. state.key = newKey;
  396. return this;
  397. };
  398. Node.prototype.any = function any() {
  399. var state = this._baseState;
  400. state.any = true;
  401. return this;
  402. };
  403. Node.prototype.choice = function choice(obj) {
  404. var state = this._baseState;
  405. assert(state.choice === null);
  406. state.choice = obj;
  407. this._useArgs(Object.keys(obj).map(function(key) {
  408. return obj[key];
  409. }));
  410. return this;
  411. };
  412. Node.prototype.contains = function contains(item) {
  413. var state = this._baseState;
  414. assert(state.use === null);
  415. state.contains = item;
  416. return this;
  417. };
  418. //
  419. // Decoding
  420. //
  421. Node.prototype._decode = function decode(input, options) {
  422. var state = this._baseState;
  423. // Decode root node
  424. if (state.parent === null)
  425. return input.wrapResult(state.children[0]._decode(input, options));
  426. var result = state['default'];
  427. var present = true;
  428. var prevKey = null;
  429. if (state.key !== null)
  430. prevKey = input.enterKey(state.key);
  431. // Check if tag is there
  432. if (state.optional) {
  433. var tag = null;
  434. if (state.explicit !== null)
  435. tag = state.explicit;
  436. else if (state.implicit !== null)
  437. tag = state.implicit;
  438. else if (state.tag !== null)
  439. tag = state.tag;
  440. if (tag === null && !state.any) {
  441. // Trial and Error
  442. var save = input.save();
  443. try {
  444. if (state.choice === null)
  445. this._decodeGeneric(state.tag, input, options);
  446. else
  447. this._decodeChoice(input, options);
  448. present = true;
  449. } catch (e) {
  450. present = false;
  451. }
  452. input.restore(save);
  453. } else {
  454. present = this._peekTag(input, tag, state.any);
  455. if (input.isError(present))
  456. return present;
  457. }
  458. }
  459. // Push object on stack
  460. var prevObj;
  461. if (state.obj && present)
  462. prevObj = input.enterObject();
  463. if (present) {
  464. // Unwrap explicit values
  465. if (state.explicit !== null) {
  466. var explicit = this._decodeTag(input, state.explicit);
  467. if (input.isError(explicit))
  468. return explicit;
  469. input = explicit;
  470. }
  471. var start = input.offset;
  472. // Unwrap implicit and normal values
  473. if (state.use === null && state.choice === null) {
  474. if (state.any)
  475. var save = input.save();
  476. var body = this._decodeTag(
  477. input,
  478. state.implicit !== null ? state.implicit : state.tag,
  479. state.any
  480. );
  481. if (input.isError(body))
  482. return body;
  483. if (state.any)
  484. result = input.raw(save);
  485. else
  486. input = body;
  487. }
  488. if (options && options.track && state.tag !== null)
  489. options.track(input.path(), start, input.length, 'tagged');
  490. if (options && options.track && state.tag !== null)
  491. options.track(input.path(), input.offset, input.length, 'content');
  492. // Select proper method for tag
  493. if (state.any)
  494. result = result;
  495. else if (state.choice === null)
  496. result = this._decodeGeneric(state.tag, input, options);
  497. else
  498. result = this._decodeChoice(input, options);
  499. if (input.isError(result))
  500. return result;
  501. // Decode children
  502. if (!state.any && state.choice === null && state.children !== null) {
  503. state.children.forEach(function decodeChildren(child) {
  504. // NOTE: We are ignoring errors here, to let parser continue with other
  505. // parts of encoded data
  506. child._decode(input, options);
  507. });
  508. }
  509. // Decode contained/encoded by schema, only in bit or octet strings
  510. if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {
  511. var data = new DecoderBuffer(result);
  512. result = this._getUse(state.contains, input._reporterState.obj)
  513. ._decode(data, options);
  514. }
  515. }
  516. // Pop object
  517. if (state.obj && present)
  518. result = input.leaveObject(prevObj);
  519. // Set key
  520. if (state.key !== null && (result !== null || present === true))
  521. input.leaveKey(prevKey, state.key, result);
  522. else if (prevKey !== null)
  523. input.exitKey(prevKey);
  524. return result;
  525. };
  526. Node.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {
  527. var state = this._baseState;
  528. if (tag === 'seq' || tag === 'set')
  529. return null;
  530. if (tag === 'seqof' || tag === 'setof')
  531. return this._decodeList(input, tag, state.args[0], options);
  532. else if (/str$/.test(tag))
  533. return this._decodeStr(input, tag, options);
  534. else if (tag === 'objid' && state.args)
  535. return this._decodeObjid(input, state.args[0], state.args[1], options);
  536. else if (tag === 'objid')
  537. return this._decodeObjid(input, null, null, options);
  538. else if (tag === 'gentime' || tag === 'utctime')
  539. return this._decodeTime(input, tag, options);
  540. else if (tag === 'null_')
  541. return this._decodeNull(input, options);
  542. else if (tag === 'bool')
  543. return this._decodeBool(input, options);
  544. else if (tag === 'objDesc')
  545. return this._decodeStr(input, tag, options);
  546. else if (tag === 'int' || tag === 'enum')
  547. return this._decodeInt(input, state.args && state.args[0], options);
  548. if (state.use !== null) {
  549. return this._getUse(state.use, input._reporterState.obj)
  550. ._decode(input, options);
  551. } else {
  552. return input.error('unknown tag: ' + tag);
  553. }
  554. };
  555. Node.prototype._getUse = function _getUse(entity, obj) {
  556. var state = this._baseState;
  557. // Create altered use decoder if implicit is set
  558. state.useDecoder = this._use(entity, obj);
  559. assert(state.useDecoder._baseState.parent === null);
  560. state.useDecoder = state.useDecoder._baseState.children[0];
  561. if (state.implicit !== state.useDecoder._baseState.implicit) {
  562. state.useDecoder = state.useDecoder.clone();
  563. state.useDecoder._baseState.implicit = state.implicit;
  564. }
  565. return state.useDecoder;
  566. };
  567. Node.prototype._decodeChoice = function decodeChoice(input, options) {
  568. var state = this._baseState;
  569. var result = null;
  570. var match = false;
  571. Object.keys(state.choice).some(function(key) {
  572. var save = input.save();
  573. var node = state.choice[key];
  574. try {
  575. var value = node._decode(input, options);
  576. if (input.isError(value))
  577. return false;
  578. result = { type: key, value: value };
  579. match = true;
  580. } catch (e) {
  581. input.restore(save);
  582. return false;
  583. }
  584. return true;
  585. }, this);
  586. if (!match)
  587. return input.error('Choice not matched');
  588. return result;
  589. };
  590. //
  591. // Encoding
  592. //
  593. Node.prototype._createEncoderBuffer = function createEncoderBuffer(data) {
  594. return new EncoderBuffer(data, this.reporter);
  595. };
  596. Node.prototype._encode = function encode(data, reporter, parent) {
  597. var state = this._baseState;
  598. if (state['default'] !== null && state['default'] === data)
  599. return;
  600. var result = this._encodeValue(data, reporter, parent);
  601. if (result === undefined)
  602. return;
  603. if (this._skipDefault(result, reporter, parent))
  604. return;
  605. return result;
  606. };
  607. Node.prototype._encodeValue = function encode(data, reporter, parent) {
  608. var state = this._baseState;
  609. // Decode root node
  610. if (state.parent === null)
  611. return state.children[0]._encode(data, reporter || new Reporter());
  612. var result = null;
  613. // Set reporter to share it with a child class
  614. this.reporter = reporter;
  615. // Check if data is there
  616. if (state.optional && data === undefined) {
  617. if (state['default'] !== null)
  618. data = state['default']
  619. else
  620. return;
  621. }
  622. // Encode children first
  623. var content = null;
  624. var primitive = false;
  625. if (state.any) {
  626. // Anything that was given is translated to buffer
  627. result = this._createEncoderBuffer(data);
  628. } else if (state.choice) {
  629. result = this._encodeChoice(data, reporter);
  630. } else if (state.contains) {
  631. content = this._getUse(state.contains, parent)._encode(data, reporter);
  632. primitive = true;
  633. } else if (state.children) {
  634. content = state.children.map(function(child) {
  635. if (child._baseState.tag === 'null_')
  636. return child._encode(null, reporter, data);
  637. if (child._baseState.key === null)
  638. return reporter.error('Child should have a key');
  639. var prevKey = reporter.enterKey(child._baseState.key);
  640. if (typeof data !== 'object')
  641. return reporter.error('Child expected, but input is not object');
  642. var res = child._encode(data[child._baseState.key], reporter, data);
  643. reporter.leaveKey(prevKey);
  644. return res;
  645. }, this).filter(function(child) {
  646. return child;
  647. });
  648. content = this._createEncoderBuffer(content);
  649. } else {
  650. if (state.tag === 'seqof' || state.tag === 'setof') {
  651. // TODO(indutny): this should be thrown on DSL level
  652. if (!(state.args && state.args.length === 1))
  653. return reporter.error('Too many args for : ' + state.tag);
  654. if (!Array.isArray(data))
  655. return reporter.error('seqof/setof, but data is not Array');
  656. var child = this.clone();
  657. child._baseState.implicit = null;
  658. content = this._createEncoderBuffer(data.map(function(item) {
  659. var state = this._baseState;
  660. return this._getUse(state.args[0], data)._encode(item, reporter);
  661. }, child));
  662. } else if (state.use !== null) {
  663. result = this._getUse(state.use, parent)._encode(data, reporter);
  664. } else {
  665. content = this._encodePrimitive(state.tag, data);
  666. primitive = true;
  667. }
  668. }
  669. // Encode data itself
  670. var result;
  671. if (!state.any && state.choice === null) {
  672. var tag = state.implicit !== null ? state.implicit : state.tag;
  673. var cls = state.implicit === null ? 'universal' : 'context';
  674. if (tag === null) {
  675. if (state.use === null)
  676. reporter.error('Tag could be ommited only for .use()');
  677. } else {
  678. if (state.use === null)
  679. result = this._encodeComposite(tag, primitive, cls, content);
  680. }
  681. }
  682. // Wrap in explicit
  683. if (state.explicit !== null)
  684. result = this._encodeComposite(state.explicit, false, 'context', result);
  685. return result;
  686. };
  687. Node.prototype._encodeChoice = function encodeChoice(data, reporter) {
  688. var state = this._baseState;
  689. var node = state.choice[data.type];
  690. if (!node) {
  691. assert(
  692. false,
  693. data.type + ' not found in ' +
  694. JSON.stringify(Object.keys(state.choice)));
  695. }
  696. return node._encode(data.value, reporter);
  697. };
  698. Node.prototype._encodePrimitive = function encodePrimitive(tag, data) {
  699. var state = this._baseState;
  700. if (/str$/.test(tag))
  701. return this._encodeStr(data, tag);
  702. else if (tag === 'objid' && state.args)
  703. return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);
  704. else if (tag === 'objid')
  705. return this._encodeObjid(data, null, null);
  706. else if (tag === 'gentime' || tag === 'utctime')
  707. return this._encodeTime(data, tag);
  708. else if (tag === 'null_')
  709. return this._encodeNull();
  710. else if (tag === 'int' || tag === 'enum')
  711. return this._encodeInt(data, state.args && state.reverseArgs[0]);
  712. else if (tag === 'bool')
  713. return this._encodeBool(data);
  714. else if (tag === 'objDesc')
  715. return this._encodeStr(data, tag);
  716. else
  717. throw new Error('Unsupported tag: ' + tag);
  718. };
  719. Node.prototype._isNumstr = function isNumstr(str) {
  720. return /^[0-9 ]*$/.test(str);
  721. };
  722. Node.prototype._isPrintstr = function isPrintstr(str) {
  723. return /^[A-Za-z0-9 '\(\)\+,\-\.\/:=\?]*$/.test(str);
  724. };
  725. },{"../base":13,"minimalistic-assert":112}],15:[function(require,module,exports){
  726. var inherits = require('inherits');
  727. function Reporter(options) {
  728. this._reporterState = {
  729. obj: null,
  730. path: [],
  731. options: options || {},
  732. errors: []
  733. };
  734. }
  735. exports.Reporter = Reporter;
  736. Reporter.prototype.isError = function isError(obj) {
  737. return obj instanceof ReporterError;
  738. };
  739. Reporter.prototype.save = function save() {
  740. var state = this._reporterState;
  741. return { obj: state.obj, pathLen: state.path.length };
  742. };
  743. Reporter.prototype.restore = function restore(data) {
  744. var state = this._reporterState;
  745. state.obj = data.obj;
  746. state.path = state.path.slice(0, data.pathLen);
  747. };
  748. Reporter.prototype.enterKey = function enterKey(key) {
  749. return this._reporterState.path.push(key);
  750. };
  751. Reporter.prototype.exitKey = function exitKey(index) {
  752. var state = this._reporterState;
  753. state.path = state.path.slice(0, index - 1);
  754. };
  755. Reporter.prototype.leaveKey = function leaveKey(index, key, value) {
  756. var state = this._reporterState;
  757. this.exitKey(index);
  758. if (state.obj !== null)
  759. state.obj[key] = value;
  760. };
  761. Reporter.prototype.path = function path() {
  762. return this._reporterState.path.join('/');
  763. };
  764. Reporter.prototype.enterObject = function enterObject() {
  765. var state = this._reporterState;
  766. var prev = state.obj;
  767. state.obj = {};
  768. return prev;
  769. };
  770. Reporter.prototype.leaveObject = function leaveObject(prev) {
  771. var state = this._reporterState;
  772. var now = state.obj;
  773. state.obj = prev;
  774. return now;
  775. };
  776. Reporter.prototype.error = function error(msg) {
  777. var err;
  778. var state = this._reporterState;
  779. var inherited = msg instanceof ReporterError;
  780. if (inherited) {
  781. err = msg;
  782. } else {
  783. err = new ReporterError(state.path.map(function(elem) {
  784. return '[' + JSON.stringify(elem) + ']';
  785. }).join(''), msg.message || msg, msg.stack);
  786. }
  787. if (!state.options.partial)
  788. throw err;
  789. if (!inherited)
  790. state.errors.push(err);
  791. return err;
  792. };
  793. Reporter.prototype.wrapResult = function wrapResult(result) {
  794. var state = this._reporterState;
  795. if (!state.options.partial)
  796. return result;
  797. return {
  798. result: this.isError(result) ? null : result,
  799. errors: state.errors
  800. };
  801. };
  802. function ReporterError(path, msg) {
  803. this.path = path;
  804. this.rethrow(msg);
  805. };
  806. inherits(ReporterError, Error);
  807. ReporterError.prototype.rethrow = function rethrow(msg) {
  808. this.message = msg + ' at: ' + (this.path || '(shallow)');
  809. if (Error.captureStackTrace)
  810. Error.captureStackTrace(this, ReporterError);
  811. if (!this.stack) {
  812. try {
  813. // IE only adds stack when thrown
  814. throw new Error(this.message);
  815. } catch (e) {
  816. this.stack = e.stack;
  817. }
  818. }
  819. return this;
  820. };
  821. },{"inherits":108}],16:[function(require,module,exports){
  822. var constants = require('../constants');
  823. exports.tagClass = {
  824. 0: 'universal',
  825. 1: 'application',
  826. 2: 'context',
  827. 3: 'private'
  828. };
  829. exports.tagClassByName = constants._reverse(exports.tagClass);
  830. exports.tag = {
  831. 0x00: 'end',
  832. 0x01: 'bool',
  833. 0x02: 'int',
  834. 0x03: 'bitstr',
  835. 0x04: 'octstr',
  836. 0x05: 'null_',
  837. 0x06: 'objid',
  838. 0x07: 'objDesc',
  839. 0x08: 'external',
  840. 0x09: 'real',
  841. 0x0a: 'enum',
  842. 0x0b: 'embed',
  843. 0x0c: 'utf8str',
  844. 0x0d: 'relativeOid',
  845. 0x10: 'seq',
  846. 0x11: 'set',
  847. 0x12: 'numstr',
  848. 0x13: 'printstr',
  849. 0x14: 't61str',
  850. 0x15: 'videostr',
  851. 0x16: 'ia5str',
  852. 0x17: 'utctime',
  853. 0x18: 'gentime',
  854. 0x19: 'graphstr',
  855. 0x1a: 'iso646str',
  856. 0x1b: 'genstr',
  857. 0x1c: 'unistr',
  858. 0x1d: 'charstr',
  859. 0x1e: 'bmpstr'
  860. };
  861. exports.tagByName = constants._reverse(exports.tag);
  862. },{"../constants":17}],17:[function(require,module,exports){
  863. var constants = exports;
  864. // Helper
  865. constants._reverse = function reverse(map) {
  866. var res = {};
  867. Object.keys(map).forEach(function(key) {
  868. // Convert key to integer if it is stringified
  869. if ((key | 0) == key)
  870. key = key | 0;
  871. var value = map[key];
  872. res[value] = key;
  873. });
  874. return res;
  875. };
  876. constants.der = require('./der');
  877. },{"./der":16}],18:[function(require,module,exports){
  878. var inherits = require('inherits');
  879. var asn1 = require('../../asn1');
  880. var base = asn1.base;
  881. var bignum = asn1.bignum;
  882. // Import DER constants
  883. var der = asn1.constants.der;
  884. function DERDecoder(entity) {
  885. this.enc = 'der';
  886. this.name = entity.name;
  887. this.entity = entity;
  888. // Construct base tree
  889. this.tree = new DERNode();
  890. this.tree._init(entity.body);
  891. };
  892. module.exports = DERDecoder;
  893. DERDecoder.prototype.decode = function decode(data, options) {
  894. if (!(data instanceof base.DecoderBuffer))
  895. data = new base.DecoderBuffer(data, options);
  896. return this.tree._decode(data, options);
  897. };
  898. // Tree methods
  899. function DERNode(parent) {
  900. base.Node.call(this, 'der', parent);
  901. }
  902. inherits(DERNode, base.Node);
  903. DERNode.prototype._peekTag = function peekTag(buffer, tag, any) {
  904. if (buffer.isEmpty())
  905. return false;
  906. var state = buffer.save();
  907. var decodedTag = derDecodeTag(buffer, 'Failed to peek tag: "' + tag + '"');
  908. if (buffer.isError(decodedTag))
  909. return decodedTag;
  910. buffer.restore(state);
  911. return decodedTag.tag === tag || decodedTag.tagStr === tag ||
  912. (decodedTag.tagStr + 'of') === tag || any;
  913. };
  914. DERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {
  915. var decodedTag = derDecodeTag(buffer,
  916. 'Failed to decode tag of "' + tag + '"');
  917. if (buffer.isError(decodedTag))
  918. return decodedTag;
  919. var len = derDecodeLen(buffer,
  920. decodedTag.primitive,
  921. 'Failed to get length of "' + tag + '"');
  922. // Failure
  923. if (buffer.isError(len))
  924. return len;
  925. if (!any &&
  926. decodedTag.tag !== tag &&
  927. decodedTag.tagStr !== tag &&
  928. decodedTag.tagStr + 'of' !== tag) {
  929. return buffer.error('Failed to match tag: "' + tag + '"');
  930. }
  931. if (decodedTag.primitive || len !== null)
  932. return buffer.skip(len, 'Failed to match body of: "' + tag + '"');
  933. // Indefinite length... find END tag
  934. var state = buffer.save();
  935. var res = this._skipUntilEnd(
  936. buffer,
  937. 'Failed to skip indefinite length body: "' + this.tag + '"');
  938. if (buffer.isError(res))
  939. return res;
  940. len = buffer.offset - state.offset;
  941. buffer.restore(state);
  942. return buffer.skip(len, 'Failed to match body of: "' + tag + '"');
  943. };
  944. DERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {
  945. while (true) {
  946. var tag = derDecodeTag(buffer, fail);
  947. if (buffer.isError(tag))
  948. return tag;
  949. var len = derDecodeLen(buffer, tag.primitive, fail);
  950. if (buffer.isError(len))
  951. return len;
  952. var res;
  953. if (tag.primitive || len !== null)
  954. res = buffer.skip(len)
  955. else
  956. res = this._skipUntilEnd(buffer, fail);
  957. // Failure
  958. if (buffer.isError(res))
  959. return res;
  960. if (tag.tagStr === 'end')
  961. break;
  962. }
  963. };
  964. DERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,
  965. options) {
  966. var result = [];
  967. while (!buffer.isEmpty()) {
  968. var possibleEnd = this._peekTag(buffer, 'end');
  969. if (buffer.isError(possibleEnd))
  970. return possibleEnd;
  971. var res = decoder.decode(buffer, 'der', options);
  972. if (buffer.isError(res) && possibleEnd)
  973. break;
  974. result.push(res);
  975. }
  976. return result;
  977. };
  978. DERNode.prototype._decodeStr = function decodeStr(buffer, tag) {
  979. if (tag === 'bitstr') {
  980. var unused = buffer.readUInt8();
  981. if (buffer.isError(unused))
  982. return unused;
  983. return { unused: unused, data: buffer.raw() };
  984. } else if (tag === 'bmpstr') {
  985. var raw = buffer.raw();
  986. if (raw.length % 2 === 1)
  987. return buffer.error('Decoding of string type: bmpstr length mismatch');
  988. var str = '';
  989. for (var i = 0; i < raw.length / 2; i++) {
  990. str += String.fromCharCode(raw.readUInt16BE(i * 2));
  991. }
  992. return str;
  993. } else if (tag === 'numstr') {
  994. var numstr = buffer.raw().toString('ascii');
  995. if (!this._isNumstr(numstr)) {
  996. return buffer.error('Decoding of string type: ' +
  997. 'numstr unsupported characters');
  998. }
  999. return numstr;
  1000. } else if (tag === 'octstr') {
  1001. return buffer.raw();
  1002. } else if (tag === 'objDesc') {
  1003. return buffer.raw();
  1004. } else if (tag === 'printstr') {
  1005. var printstr = buffer.raw().toString('ascii');
  1006. if (!this._isPrintstr(printstr)) {
  1007. return buffer.error('Decoding of string type: ' +
  1008. 'printstr unsupported characters');
  1009. }
  1010. return printstr;
  1011. } else if (/str$/.test(tag)) {
  1012. return buffer.raw().toString();
  1013. } else {
  1014. return buffer.error('Decoding of string type: ' + tag + ' unsupported');
  1015. }
  1016. };
  1017. DERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {
  1018. var result;
  1019. var identifiers = [];
  1020. var ident = 0;
  1021. while (!buffer.isEmpty()) {
  1022. var subident = buffer.readUInt8();
  1023. ident <<= 7;
  1024. ident |= subident & 0x7f;
  1025. if ((subident & 0x80) === 0) {
  1026. identifiers.push(ident);
  1027. ident = 0;
  1028. }
  1029. }
  1030. if (subident & 0x80)
  1031. identifiers.push(ident);
  1032. var first = (identifiers[0] / 40) | 0;
  1033. var second = identifiers[0] % 40;
  1034. if (relative)
  1035. result = identifiers;
  1036. else
  1037. result = [first, second].concat(identifiers.slice(1));
  1038. if (values) {
  1039. var tmp = values[result.join(' ')];
  1040. if (tmp === undefined)
  1041. tmp = values[result.join('.')];
  1042. if (tmp !== undefined)
  1043. result = tmp;
  1044. }
  1045. return result;
  1046. };
  1047. DERNode.prototype._decodeTime = function decodeTime(buffer, tag) {
  1048. var str = buffer.raw().toString();
  1049. if (tag === 'gentime') {
  1050. var year = str.slice(0, 4) | 0;
  1051. var mon = str.slice(4, 6) | 0;
  1052. var day = str.slice(6, 8) | 0;
  1053. var hour = str.slice(8, 10) | 0;
  1054. var min = str.slice(10, 12) | 0;
  1055. var sec = str.slice(12, 14) | 0;
  1056. } else if (tag === 'utctime') {
  1057. var year = str.slice(0, 2) | 0;
  1058. var mon = str.slice(2, 4) | 0;
  1059. var day = str.slice(4, 6) | 0;
  1060. var hour = str.slice(6, 8) | 0;
  1061. var min = str.slice(8, 10) | 0;
  1062. var sec = str.slice(10, 12) | 0;
  1063. if (year < 70)
  1064. year = 2000 + year;
  1065. else
  1066. year = 1900 + year;
  1067. } else {
  1068. return buffer.error('Decoding ' + tag + ' time is not supported yet');
  1069. }
  1070. return Date.UTC(year, mon - 1, day, hour, min, sec, 0);
  1071. };
  1072. DERNode.prototype._decodeNull = function decodeNull(buffer) {
  1073. return null;
  1074. };
  1075. DERNode.prototype._decodeBool = function decodeBool(buffer) {
  1076. var res = buffer.readUInt8();
  1077. if (buffer.isError(res))
  1078. return res;
  1079. else
  1080. return res !== 0;
  1081. };
  1082. DERNode.prototype._decodeInt = function decodeInt(buffer, values) {
  1083. // Bigint, return as it is (assume big endian)
  1084. var raw = buffer.raw();
  1085. var res = new bignum(raw);
  1086. if (values)
  1087. res = values[res.toString(10)] || res;
  1088. return res;
  1089. };
  1090. DERNode.prototype._use = function use(entity, obj) {
  1091. if (typeof entity === 'function')
  1092. entity = entity(obj);
  1093. return entity._getDecoder('der').tree;
  1094. };
  1095. // Utility methods
  1096. function derDecodeTag(buf, fail) {
  1097. var tag = buf.readUInt8(fail);
  1098. if (buf.isError(tag))
  1099. return tag;
  1100. var cls = der.tagClass[tag >> 6];
  1101. var primitive = (tag & 0x20) === 0;
  1102. // Multi-octet tag - load
  1103. if ((tag & 0x1f) === 0x1f) {
  1104. var oct = tag;
  1105. tag = 0;
  1106. while ((oct & 0x80) === 0x80) {
  1107. oct = buf.readUInt8(fail);
  1108. if (buf.isError(oct))
  1109. return oct;
  1110. tag <<= 7;
  1111. tag |= oct & 0x7f;
  1112. }
  1113. } else {
  1114. tag &= 0x1f;
  1115. }
  1116. var tagStr = der.tag[tag];
  1117. return {
  1118. cls: cls,
  1119. primitive: primitive,
  1120. tag: tag,
  1121. tagStr: tagStr
  1122. };
  1123. }
  1124. function derDecodeLen(buf, primitive, fail) {
  1125. var len = buf.readUInt8(fail);
  1126. if (buf.isError(len))
  1127. return len;
  1128. // Indefinite form
  1129. if (!primitive && len === 0x80)
  1130. return null;
  1131. // Definite form
  1132. if ((len & 0x80) === 0) {
  1133. // Short form
  1134. return len;
  1135. }
  1136. // Long form
  1137. var num = len & 0x7f;
  1138. if (num > 4)
  1139. return buf.error('length octect is too long');
  1140. len = 0;
  1141. for (var i = 0; i < num; i++) {
  1142. len <<= 8;
  1143. var j = buf.readUInt8(fail);
  1144. if (buf.isError(j))
  1145. return j;
  1146. len |= j;
  1147. }
  1148. return len;
  1149. }
  1150. },{"../../asn1":10,"inherits":108}],19:[function(require,module,exports){
  1151. var decoders = exports;
  1152. decoders.der = require('./der');
  1153. decoders.pem = require('./pem');
  1154. },{"./der":18,"./pem":20}],20:[function(require,module,exports){
  1155. var inherits = require('inherits');
  1156. var Buffer = require('buffer').Buffer;
  1157. var DERDecoder = require('./der');
  1158. function PEMDecoder(entity) {
  1159. DERDecoder.call(this, entity);
  1160. this.enc = 'pem';
  1161. };
  1162. inherits(PEMDecoder, DERDecoder);
  1163. module.exports = PEMDecoder;
  1164. PEMDecoder.prototype.decode = function decode(data, options) {
  1165. var lines = data.toString().split(/[\r\n]+/g);
  1166. var label = options.label.toUpperCase();
  1167. var re = /^-----(BEGIN|END) ([^-]+)-----$/;
  1168. var start = -1;
  1169. var end = -1;
  1170. for (var i = 0; i < lines.length; i++) {
  1171. var match = lines[i].match(re);
  1172. if (match === null)
  1173. continue;
  1174. if (match[2] !== label)
  1175. continue;
  1176. if (start === -1) {
  1177. if (match[1] !== 'BEGIN')
  1178. break;
  1179. start = i;
  1180. } else {
  1181. if (match[1] !== 'END')
  1182. break;
  1183. end = i;
  1184. break;
  1185. }
  1186. }
  1187. if (start === -1 || end === -1)
  1188. throw new Error('PEM section not found for: ' + label);
  1189. var base64 = lines.slice(start + 1, end).join('');
  1190. // Remove excessive symbols
  1191. base64.replace(/[^a-z0-9\+\/=]+/gi, '');
  1192. var input = new Buffer(base64, 'base64');
  1193. return DERDecoder.prototype.decode.call(this, input, options);
  1194. };
  1195. },{"./der":18,"buffer":54,"inherits":108}],21:[function(require,module,exports){
  1196. var inherits = require('inherits');
  1197. var Buffer = require('buffer').Buffer;
  1198. var asn1 = require('../../asn1');
  1199. var base = asn1.base;
  1200. // Import DER constants
  1201. var der = asn1.constants.der;
  1202. function DEREncoder(entity) {
  1203. this.enc = 'der';
  1204. this.name = entity.name;
  1205. this.entity = entity;
  1206. // Construct base tree
  1207. this.tree = new DERNode();
  1208. this.tree._init(entity.body);
  1209. };
  1210. module.exports = DEREncoder;
  1211. DEREncoder.prototype.encode = function encode(data, reporter) {
  1212. return this.tree._encode(data, reporter).join();
  1213. };
  1214. // Tree methods
  1215. function DERNode(parent) {
  1216. base.Node.call(this, 'der', parent);
  1217. }
  1218. inherits(DERNode, base.Node);
  1219. DERNode.prototype._encodeComposite = function encodeComposite(tag,
  1220. primitive,
  1221. cls,
  1222. content) {
  1223. var encodedTag = encodeTag(tag, primitive, cls, this.reporter);
  1224. // Short form
  1225. if (content.length < 0x80) {
  1226. var header = new Buffer(2);
  1227. header[0] = encodedTag;
  1228. header[1] = content.length;
  1229. return this._createEncoderBuffer([ header, content ]);
  1230. }
  1231. // Long form
  1232. // Count octets required to store length
  1233. var lenOctets = 1;
  1234. for (var i = content.length; i >= 0x100; i >>= 8)
  1235. lenOctets++;
  1236. var header = new Buffer(1 + 1 + lenOctets);
  1237. header[0] = encodedTag;
  1238. header[1] = 0x80 | lenOctets;
  1239. for (var i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)
  1240. header[i] = j & 0xff;
  1241. return this._createEncoderBuffer([ header, content ]);
  1242. };
  1243. DERNode.prototype._encodeStr = function encodeStr(str, tag) {
  1244. if (tag === 'bitstr') {
  1245. return this._createEncoderBuffer([ str.unused | 0, str.data ]);
  1246. } else if (tag === 'bmpstr') {
  1247. var buf = new Buffer(str.length * 2);
  1248. for (var i = 0; i < str.length; i++) {
  1249. buf.writeUInt16BE(str.charCodeAt(i), i * 2);
  1250. }
  1251. return this._createEncoderBuffer(buf);
  1252. } else if (tag === 'numstr') {
  1253. if (!this._isNumstr(str)) {
  1254. return this.reporter.error('Encoding of string type: numstr supports ' +
  1255. 'only digits and space');
  1256. }
  1257. return this._createEncoderBuffer(str);
  1258. } else if (tag === 'printstr') {
  1259. if (!this._isPrintstr(str)) {
  1260. return this.reporter.error('Encoding of string type: printstr supports ' +
  1261. 'only latin upper and lower case letters, ' +
  1262. 'digits, space, apostrophe, left and rigth ' +
  1263. 'parenthesis, plus sign, comma, hyphen, ' +
  1264. 'dot, slash, colon, equal sign, ' +
  1265. 'question mark');
  1266. }
  1267. return this._createEncoderBuffer(str);
  1268. } else if (/str$/.test(tag)) {
  1269. return this._createEncoderBuffer(str);
  1270. } else if (tag === 'objDesc') {
  1271. return this._createEncoderBuffer(str);
  1272. } else {
  1273. return this.reporter.error('Encoding of string type: ' + tag +
  1274. ' unsupported');
  1275. }
  1276. };
  1277. DERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {
  1278. if (typeof id === 'string') {
  1279. if (!values)
  1280. return this.reporter.error('string objid given, but no values map found');
  1281. if (!values.hasOwnProperty(id))
  1282. return this.reporter.error('objid not found in values map');
  1283. id = values[id].split(/[\s\.]+/g);
  1284. for (var i = 0; i < id.length; i++)
  1285. id[i] |= 0;
  1286. } else if (Array.isArray(id)) {
  1287. id = id.slice();
  1288. for (var i = 0; i < id.length; i++)
  1289. id[i] |= 0;
  1290. }
  1291. if (!Array.isArray(id)) {
  1292. return this.reporter.error('objid() should be either array or string, ' +
  1293. 'got: ' + JSON.stringify(id));
  1294. }
  1295. if (!relative) {
  1296. if (id[1] >= 40)
  1297. return this.reporter.error('Second objid identifier OOB');
  1298. id.splice(0, 2, id[0] * 40 + id[1]);
  1299. }
  1300. // Count number of octets
  1301. var size = 0;
  1302. for (var i = 0; i < id.length; i++) {
  1303. var ident = id[i];
  1304. for (size++; ident >= 0x80; ident >>= 7)
  1305. size++;
  1306. }
  1307. var objid = new Buffer(size);
  1308. var offset = objid.length - 1;
  1309. for (var i = id.length - 1; i >= 0; i--) {
  1310. var ident = id[i];
  1311. objid[offset--] = ident & 0x7f;
  1312. while ((ident >>= 7) > 0)
  1313. objid[offset--] = 0x80 | (ident & 0x7f);
  1314. }
  1315. return this._createEncoderBuffer(objid);
  1316. };
  1317. function two(num) {
  1318. if (num < 10)
  1319. return '0' + num;
  1320. else
  1321. return num;
  1322. }
  1323. DERNode.prototype._encodeTime = function encodeTime(time, tag) {
  1324. var str;
  1325. var date = new Date(time);
  1326. if (tag === 'gentime') {
  1327. str = [
  1328. two(date.getFullYear()),
  1329. two(date.getUTCMonth() + 1),
  1330. two(date.getUTCDate()),
  1331. two(date.getUTCHours()),
  1332. two(date.getUTCMinutes()),
  1333. two(date.getUTCSeconds()),
  1334. 'Z'
  1335. ].join('');
  1336. } else if (tag === 'utctime') {
  1337. str = [
  1338. two(date.getFullYear() % 100),
  1339. two(date.getUTCMonth() + 1),
  1340. two(date.getUTCDate()),
  1341. two(date.getUTCHours()),
  1342. two(date.getUTCMinutes()),
  1343. two(date.getUTCSeconds()),
  1344. 'Z'
  1345. ].join('');
  1346. } else {
  1347. this.reporter.error('Encoding ' + tag + ' time is not supported yet');
  1348. }
  1349. return this._encodeStr(str, 'octstr');
  1350. };
  1351. DERNode.prototype._encodeNull = function encodeNull() {
  1352. return this._createEncoderBuffer('');
  1353. };
  1354. DERNode.prototype._encodeInt = function encodeInt(num, values) {
  1355. if (typeof num === 'string') {
  1356. if (!values)
  1357. return this.reporter.error('String int or enum given, but no values map');
  1358. if (!values.hasOwnProperty(num)) {
  1359. return this.reporter.error('Values map doesn\'t contain: ' +
  1360. JSON.stringify(num));
  1361. }
  1362. num = values[num];
  1363. }
  1364. // Bignum, assume big endian
  1365. if (typeof num !== 'number' && !Buffer.isBuffer(num)) {
  1366. var numArray = num.toArray();
  1367. if (!num.sign && numArray[0] & 0x80) {
  1368. numArray.unshift(0);
  1369. }
  1370. num = new Buffer(numArray);
  1371. }
  1372. if (Buffer.isBuffer(num)) {
  1373. var size = num.length;
  1374. if (num.length === 0)
  1375. size++;
  1376. var out = new Buffer(size);
  1377. num.copy(out);
  1378. if (num.length === 0)
  1379. out[0] = 0
  1380. return this._createEncoderBuffer(out);
  1381. }
  1382. if (num < 0x80)
  1383. return this._createEncoderBuffer(num);
  1384. if (num < 0x100)
  1385. return this._createEncoderBuffer([0, num]);
  1386. var size = 1;
  1387. for (var i = num; i >= 0x100; i >>= 8)
  1388. size++;
  1389. var out = new Array(size);
  1390. for (var i = out.length - 1; i >= 0; i--) {
  1391. out[i] = num & 0xff;
  1392. num >>= 8;
  1393. }
  1394. if(out[0] & 0x80) {
  1395. out.unshift(0);
  1396. }
  1397. return this._createEncoderBuffer(new Buffer(out));
  1398. };
  1399. DERNode.prototype._encodeBool = function encodeBool(value) {
  1400. return this._createEncoderBuffer(value ? 0xff : 0);
  1401. };
  1402. DERNode.prototype._use = function use(entity, obj) {
  1403. if (typeof entity === 'function')
  1404. entity = entity(obj);
  1405. return entity._getEncoder('der').tree;
  1406. };
  1407. DERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {
  1408. var state = this._baseState;
  1409. var i;
  1410. if (state['default'] === null)
  1411. return false;
  1412. var data = dataBuffer.join();
  1413. if (state.defaultBuffer === undefined)
  1414. state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();
  1415. if (data.length !== state.defaultBuffer.length)
  1416. return false;
  1417. for (i=0; i < data.length; i++)
  1418. if (data[i] !== state.defaultBuffer[i])
  1419. return false;
  1420. return true;
  1421. };
  1422. // Utility methods
  1423. function encodeTag(tag, primitive, cls, reporter) {
  1424. var res;
  1425. if (tag === 'seqof')
  1426. tag = 'seq';
  1427. else if (tag === 'setof')
  1428. tag = 'set';
  1429. if (der.tagByName.hasOwnProperty(tag))
  1430. res = der.tagByName[tag];
  1431. else if (typeof tag === 'number' && (tag | 0) === tag)
  1432. res = tag;
  1433. else
  1434. return reporter.error('Unknown tag: ' + tag);
  1435. if (res >= 0x1f)
  1436. return reporter.error('Multi-octet tag encoding unsupported');
  1437. if (!primitive)
  1438. res |= 0x20;
  1439. res |= (der.tagClassByName[cls || 'universal'] << 6);
  1440. return res;
  1441. }
  1442. },{"../../asn1":10,"buffer":54,"inherits":108}],22:[function(require,module,exports){
  1443. var encoders = exports;
  1444. encoders.der = require('./der');
  1445. encoders.pem = require('./pem');
  1446. },{"./der":21,"./pem":23}],23:[function(require,module,exports){
  1447. var inherits = require('inherits');
  1448. var DEREncoder = require('./der');
  1449. function PEMEncoder(entity) {
  1450. DEREncoder.call(this, entity);
  1451. this.enc = 'pem';
  1452. };
  1453. inherits(PEMEncoder, DEREncoder);
  1454. module.exports = PEMEncoder;
  1455. PEMEncoder.prototype.encode = function encode(data, options) {
  1456. var buf = DEREncoder.prototype.encode.call(this, data);
  1457. var p = buf.toString('base64');
  1458. var out = [ '-----BEGIN ' + options.label + '-----' ];
  1459. for (var i = 0; i < p.length; i += 64)
  1460. out.push(p.slice(i, i + 64));
  1461. out.push('-----END ' + options.label + '-----');
  1462. return out.join('\n');
  1463. };
  1464. },{"./der":21,"inherits":108}],24:[function(require,module,exports){
  1465. 'use strict'
  1466. exports.byteLength = byteLength
  1467. exports.toByteArray = toByteArray
  1468. exports.fromByteArray = fromByteArray
  1469. var lookup = []
  1470. var revLookup = []
  1471. var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
  1472. var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
  1473. for (var i = 0, len = code.length; i < len; ++i) {
  1474. lookup[i] = code[i]
  1475. revLookup[code.charCodeAt(i)] = i
  1476. }
  1477. revLookup['-'.charCodeAt(0)] = 62
  1478. revLookup['_'.charCodeAt(0)] = 63
  1479. function placeHoldersCount (b64) {
  1480. var len = b64.length
  1481. if (len % 4 > 0) {
  1482. throw new Error('Invalid string. Length must be a multiple of 4')
  1483. }
  1484. // the number of equal signs (place holders)
  1485. // if there are two placeholders, than the two characters before it
  1486. // represent one byte
  1487. // if there is only one, then the three characters before it represent 2 bytes
  1488. // this is just a cheap hack to not do indexOf twice
  1489. return b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0
  1490. }
  1491. function byteLength (b64) {
  1492. // base64 is 4/3 + up to two characters of the original data
  1493. return (b64.length * 3 / 4) - placeHoldersCount(b64)
  1494. }
  1495. function toByteArray (b64) {
  1496. var i, l, tmp, placeHolders, arr
  1497. var len = b64.length
  1498. placeHolders = placeHoldersCount(b64)
  1499. arr = new Arr((len * 3 / 4) - placeHolders)
  1500. // if there are placeholders, only get up to the last complete 4 chars
  1501. l = placeHolders > 0 ? len - 4 : len
  1502. var L = 0
  1503. for (i = 0; i < l; i += 4) {
  1504. tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)]
  1505. arr[L++] = (tmp >> 16) & 0xFF
  1506. arr[L++] = (tmp >> 8) & 0xFF
  1507. arr[L++] = tmp & 0xFF
  1508. }
  1509. if (placeHolders === 2) {
  1510. tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4)
  1511. arr[L++] = tmp & 0xFF
  1512. } else if (placeHolders === 1) {
  1513. tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2)
  1514. arr[L++] = (tmp >> 8) & 0xFF
  1515. arr[L++] = tmp & 0xFF
  1516. }
  1517. return arr
  1518. }
  1519. function tripletToBase64 (num) {
  1520. return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]
  1521. }
  1522. function encodeChunk (uint8, start, end) {
  1523. var tmp
  1524. var output = []
  1525. for (var i = start; i < end; i += 3) {
  1526. tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])
  1527. output.push(tripletToBase64(tmp))
  1528. }
  1529. return output.join('')
  1530. }
  1531. function fromByteArray (uint8) {
  1532. var tmp
  1533. var len = uint8.length
  1534. var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes
  1535. var output = ''
  1536. var parts = []
  1537. var maxChunkLength = 16383 // must be multiple of 3
  1538. // go through the array every three bytes, we'll deal with trailing stuff later
  1539. for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
  1540. parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))
  1541. }
  1542. // pad the end with zeros, but make sure to not forget the extra bytes
  1543. if (extraBytes === 1) {
  1544. tmp = uint8[len - 1]
  1545. output += lookup[tmp >> 2]
  1546. output += lookup[(tmp << 4) & 0x3F]
  1547. output += '=='
  1548. } else if (extraBytes === 2) {
  1549. tmp = (uint8[len - 2] << 8) + (uint8[len - 1])
  1550. output += lookup[tmp >> 10]
  1551. output += lookup[(tmp >> 4) & 0x3F]
  1552. output += lookup[(tmp << 2) & 0x3F]
  1553. output += '='
  1554. }
  1555. parts.push(output)
  1556. return parts.join('')
  1557. }
  1558. },{}],25:[function(require,module,exports){
  1559. (function (module, exports) {
  1560. 'use strict';
  1561. // Utils
  1562. function assert (val, msg) {
  1563. if (!val) throw new Error(msg || 'Assertion failed');
  1564. }
  1565. // Could use `inherits` module, but don't want to move from single file
  1566. // architecture yet.
  1567. function inherits (ctor, superCtor) {
  1568. ctor.super_ = superCtor;
  1569. var TempCtor = function () {};
  1570. TempCtor.prototype = superCtor.prototype;
  1571. ctor.prototype = new TempCtor();
  1572. ctor.prototype.constructor = ctor;
  1573. }
  1574. // BN
  1575. function BN (number, base, endian) {
  1576. if (BN.isBN(number)) {
  1577. return number;
  1578. }
  1579. this.negative = 0;
  1580. this.words = null;
  1581. this.length = 0;
  1582. // Reduction context
  1583. this.red = null;
  1584. if (number !== null) {
  1585. if (base === 'le' || base === 'be') {
  1586. endian = base;
  1587. base = 10;
  1588. }
  1589. this._init(number || 0, base || 10, endian || 'be');
  1590. }
  1591. }
  1592. if (typeof module === 'object') {
  1593. module.exports = BN;
  1594. } else {
  1595. exports.BN = BN;
  1596. }
  1597. BN.BN = BN;
  1598. BN.wordSize = 26;
  1599. var Buffer;
  1600. try {
  1601. Buffer = require('buffer').Buffer;
  1602. } catch (e) {
  1603. }
  1604. BN.isBN = function isBN (num) {
  1605. if (num instanceof BN) {
  1606. return true;
  1607. }
  1608. return num !== null && typeof num === 'object' &&
  1609. num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);
  1610. };
  1611. BN.max = function max (left, right) {
  1612. if (left.cmp(right) > 0) return left;
  1613. return right;
  1614. };
  1615. BN.min = function min (left, right) {
  1616. if (left.cmp(right) < 0) return left;
  1617. return right;
  1618. };
  1619. BN.prototype._init = function init (number, base, endian) {
  1620. if (typeof number === 'number') {
  1621. return this._initNumber(number, base, endian);
  1622. }
  1623. if (typeof number === 'object') {
  1624. return this._initArray(number, base, endian);
  1625. }
  1626. if (base === 'hex') {
  1627. base = 16;
  1628. }
  1629. assert(base === (base | 0) && base >= 2 && base <= 36);
  1630. number = number.toString().replace(/\s+/g, '');
  1631. var start = 0;
  1632. if (number[0] === '-') {
  1633. start++;
  1634. }
  1635. if (base === 16) {
  1636. this._parseHex(number, start);
  1637. } else {
  1638. this._parseBase(number, base, start);
  1639. }
  1640. if (number[0] === '-') {
  1641. this.negative = 1;
  1642. }
  1643. this.strip();
  1644. if (endian !== 'le') return;
  1645. this._initArray(this.toArray(), base, endian);
  1646. };
  1647. BN.prototype._initNumber = function _initNumber (number, base, endian) {
  1648. if (number < 0) {
  1649. this.negative = 1;
  1650. number = -number;
  1651. }
  1652. if (number < 0x4000000) {
  1653. this.words = [ number & 0x3ffffff ];
  1654. this.length = 1;
  1655. } else if (number < 0x10000000000000) {
  1656. this.words = [
  1657. number & 0x3ffffff,
  1658. (number / 0x4000000) & 0x3ffffff
  1659. ];
  1660. this.length = 2;
  1661. } else {
  1662. assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)
  1663. this.words = [
  1664. number & 0x3ffffff,
  1665. (number / 0x4000000) & 0x3ffffff,
  1666. 1
  1667. ];
  1668. this.length = 3;
  1669. }
  1670. if (endian !== 'le') return;
  1671. // Reverse the bytes
  1672. this._initArray(this.toArray(), base, endian);
  1673. };
  1674. BN.prototype._initArray = function _initArray (number, base, endian) {
  1675. // Perhaps a Uint8Array
  1676. assert(typeof number.length === 'number');
  1677. if (number.length <= 0) {
  1678. this.words = [ 0 ];
  1679. this.length = 1;
  1680. return this;
  1681. }
  1682. this.length = Math.ceil(number.length / 3);
  1683. this.words = new Array(this.length);
  1684. for (var i = 0; i < this.length; i++) {
  1685. this.words[i] = 0;
  1686. }
  1687. var j, w;
  1688. var off = 0;
  1689. if (endian === 'be') {
  1690. for (i = number.length - 1, j = 0; i >= 0; i -= 3) {
  1691. w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);
  1692. this.words[j] |= (w << off) & 0x3ffffff;
  1693. this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;
  1694. off += 24;
  1695. if (off >= 26) {
  1696. off -= 26;
  1697. j++;
  1698. }
  1699. }
  1700. } else if (endian === 'le') {
  1701. for (i = 0, j = 0; i < number.length; i += 3) {
  1702. w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);
  1703. this.words[j] |= (w << off) & 0x3ffffff;
  1704. this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;
  1705. off += 24;
  1706. if (off >= 26) {
  1707. off -= 26;
  1708. j++;
  1709. }
  1710. }
  1711. }
  1712. return this.strip();
  1713. };
  1714. function parseHex (str, start, end) {
  1715. var r = 0;
  1716. var len = Math.min(str.length, end);
  1717. for (var i = start; i < len; i++) {
  1718. var c = str.charCodeAt(i) - 48;
  1719. r <<= 4;
  1720. // 'a' - 'f'
  1721. if (c >= 49 && c <= 54) {
  1722. r |= c - 49 + 0xa;
  1723. // 'A' - 'F'
  1724. } else if (c >= 17 && c <= 22) {
  1725. r |= c - 17 + 0xa;
  1726. // '0' - '9'
  1727. } else {
  1728. r |= c & 0xf;
  1729. }
  1730. }
  1731. return r;
  1732. }
  1733. BN.prototype._parseHex = function _parseHex (number, start) {
  1734. // Create possibly bigger array to ensure that it fits the number
  1735. this.length = Math.ceil((number.length - start) / 6);
  1736. this.words = new Array(this.length);
  1737. for (var i = 0; i < this.length; i++) {
  1738. this.words[i] = 0;
  1739. }
  1740. var j, w;
  1741. // Scan 24-bit chunks and add them to the number
  1742. var off = 0;
  1743. for (i = number.length - 6, j = 0; i >= start; i -= 6) {
  1744. w = parseHex(number, i, i + 6);
  1745. this.words[j] |= (w << off) & 0x3ffffff;
  1746. // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb
  1747. this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;
  1748. off += 24;
  1749. if (off >= 26) {
  1750. off -= 26;
  1751. j++;
  1752. }
  1753. }
  1754. if (i + 6 !== start) {
  1755. w = parseHex(number, start, i + 6);
  1756. this.words[j] |= (w << off) & 0x3ffffff;
  1757. this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;
  1758. }
  1759. this.strip();
  1760. };
  1761. function parseBase (str, start, end, mul) {
  1762. var r = 0;
  1763. var len = Math.min(str.length, end);
  1764. for (var i = start; i < len; i++) {
  1765. var c = str.charCodeAt(i) - 48;
  1766. r *= mul;
  1767. // 'a'
  1768. if (c >= 49) {
  1769. r += c - 49 + 0xa;
  1770. // 'A'
  1771. } else if (c >= 17) {
  1772. r += c - 17 + 0xa;
  1773. // '0' - '9'
  1774. } else {
  1775. r += c;
  1776. }
  1777. }
  1778. return r;
  1779. }
  1780. BN.prototype._parseBase = function _parseBase (number, base, start) {
  1781. // Initialize as zero
  1782. this.words = [ 0 ];
  1783. this.length = 1;
  1784. // Find length of limb in base
  1785. for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {
  1786. limbLen++;
  1787. }
  1788. limbLen--;
  1789. limbPow = (limbPow / base) | 0;
  1790. var total = number.length - start;
  1791. var mod = total % limbLen;
  1792. var end = Math.min(total, total - mod) + start;
  1793. var word = 0;
  1794. for (var i = start; i < end; i += limbLen) {
  1795. word = parseBase(number, i, i + limbLen, base);
  1796. this.imuln(limbPow);
  1797. if (this.words[0] + word < 0x4000000) {
  1798. this.words[0] += word;
  1799. } else {
  1800. this._iaddn(word);
  1801. }
  1802. }
  1803. if (mod !== 0) {
  1804. var pow = 1;
  1805. word = parseBase(number, i, number.length, base);
  1806. for (i = 0; i < mod; i++) {
  1807. pow *= base;
  1808. }
  1809. this.imuln(pow);
  1810. if (this.words[0] + word < 0x4000000) {
  1811. this.words[0] += word;
  1812. } else {
  1813. this._iaddn(word);
  1814. }
  1815. }
  1816. };
  1817. BN.prototype.copy = function copy (dest) {
  1818. dest.words = new Array(this.length);
  1819. for (var i = 0; i < this.length; i++) {
  1820. dest.words[i] = this.words[i];
  1821. }
  1822. dest.length = this.length;
  1823. dest.negative = this.negative;
  1824. dest.red = this.red;
  1825. };
  1826. BN.prototype.clone = function clone () {
  1827. var r = new BN(null);
  1828. this.copy(r);
  1829. return r;
  1830. };
  1831. BN.prototype._expand = function _expand (size) {
  1832. while (this.length < size) {
  1833. this.words[this.length++] = 0;
  1834. }
  1835. return this;
  1836. };
  1837. // Remove leading `0` from `this`
  1838. BN.prototype.strip = function strip () {
  1839. while (this.length > 1 && this.words[this.length - 1] === 0) {
  1840. this.length--;
  1841. }
  1842. return this._normSign();
  1843. };
  1844. BN.prototype._normSign = function _normSign () {
  1845. // -0 = 0
  1846. if (this.length === 1 && this.words[0] === 0) {
  1847. this.negative = 0;
  1848. }
  1849. return this;
  1850. };
  1851. BN.prototype.inspect = function inspect () {
  1852. return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';
  1853. };
  1854. /*
  1855. var zeros = [];
  1856. var groupSizes = [];
  1857. var groupBases = [];
  1858. var s = '';
  1859. var i = -1;
  1860. while (++i < BN.wordSize) {
  1861. zeros[i] = s;
  1862. s += '0';
  1863. }
  1864. groupSizes[0] = 0;
  1865. groupSizes[1] = 0;
  1866. groupBases[0] = 0;
  1867. groupBases[1] = 0;
  1868. var base = 2 - 1;
  1869. while (++base < 36 + 1) {
  1870. var groupSize = 0;
  1871. var groupBase = 1;
  1872. while (groupBase < (1 << BN.wordSize) / base) {
  1873. groupBase *= base;
  1874. groupSize += 1;
  1875. }
  1876. groupSizes[base] = groupSize;
  1877. groupBases[base] = groupBase;
  1878. }
  1879. */
  1880. var zeros = [
  1881. '',
  1882. '0',
  1883. '00',
  1884. '000',
  1885. '0000',
  1886. '00000',
  1887. '000000',
  1888. '0000000',
  1889. '00000000',
  1890. '000000000',
  1891. '0000000000',
  1892. '00000000000',
  1893. '000000000000',
  1894. '0000000000000',
  1895. '00000000000000',
  1896. '000000000000000',
  1897. '0000000000000000',
  1898. '00000000000000000',
  1899. '000000000000000000',
  1900. '0000000000000000000',
  1901. '00000000000000000000',
  1902. '000000000000000000000',
  1903. '0000000000000000000000',
  1904. '00000000000000000000000',
  1905. '000000000000000000000000',
  1906. '0000000000000000000000000'
  1907. ];
  1908. var groupSizes = [
  1909. 0, 0,
  1910. 25, 16, 12, 11, 10, 9, 8,
  1911. 8, 7, 7, 7, 7, 6, 6,
  1912. 6, 6, 6, 6, 6, 5, 5,
  1913. 5, 5, 5, 5, 5, 5, 5,
  1914. 5, 5, 5, 5, 5, 5, 5
  1915. ];
  1916. var groupBases = [
  1917. 0, 0,
  1918. 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,
  1919. 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,
  1920. 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,
  1921. 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,
  1922. 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176
  1923. ];
  1924. BN.prototype.toString = function toString (base, padding) {
  1925. base = base || 10;
  1926. padding = padding | 0 || 1;
  1927. var out;
  1928. if (base === 16 || base === 'hex') {
  1929. out = '';
  1930. var off = 0;
  1931. var carry = 0;
  1932. for (var i = 0; i < this.length; i++) {
  1933. var w = this.words[i];
  1934. var word = (((w << off) | carry) & 0xffffff).toString(16);
  1935. carry = (w >>> (24 - off)) & 0xffffff;
  1936. if (carry !== 0 || i !== this.length - 1) {
  1937. out = zeros[6 - word.length] + word + out;
  1938. } else {
  1939. out = word + out;
  1940. }
  1941. off += 2;
  1942. if (off >= 26) {
  1943. off -= 26;
  1944. i--;
  1945. }
  1946. }
  1947. if (carry !== 0) {
  1948. out = carry.toString(16) + out;
  1949. }
  1950. while (out.length % padding !== 0) {
  1951. out = '0' + out;
  1952. }
  1953. if (this.negative !== 0) {
  1954. out = '-' + out;
  1955. }
  1956. return out;
  1957. }
  1958. if (base === (base | 0) && base >= 2 && base <= 36) {
  1959. // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));
  1960. var groupSize = groupSizes[base];
  1961. // var groupBase = Math.pow(base, groupSize);
  1962. var groupBase = groupBases[base];
  1963. out = '';
  1964. var c = this.clone();
  1965. c.negative = 0;
  1966. while (!c.isZero()) {
  1967. var r = c.modn(groupBase).toString(base);
  1968. c = c.idivn(groupBase);
  1969. if (!c.isZero()) {
  1970. out = zeros[groupSize - r.length] + r + out;
  1971. } else {
  1972. out = r + out;
  1973. }
  1974. }
  1975. if (this.isZero()) {
  1976. out = '0' + out;
  1977. }
  1978. while (out.length % padding !== 0) {
  1979. out = '0' + out;
  1980. }
  1981. if (this.negative !== 0) {
  1982. out = '-' + out;
  1983. }
  1984. return out;
  1985. }
  1986. assert(false, 'Base should be between 2 and 36');
  1987. };
  1988. BN.prototype.toNumber = function toNumber () {
  1989. var ret = this.words[0];
  1990. if (this.length === 2) {
  1991. ret += this.words[1] * 0x4000000;
  1992. } else if (this.length === 3 && this.words[2] === 0x01) {
  1993. // NOTE: at this stage it is known that the top bit is set
  1994. ret += 0x10000000000000 + (this.words[1] * 0x4000000);
  1995. } else if (this.length > 2) {
  1996. assert(false, 'Number can only safely store up to 53 bits');
  1997. }
  1998. return (this.negative !== 0) ? -ret : ret;
  1999. };
  2000. BN.prototype.toJSON = function toJSON () {
  2001. return this.toString(16);
  2002. };
  2003. BN.prototype.toBuffer = function toBuffer (endian, length) {
  2004. assert(typeof Buffer !== 'undefined');
  2005. return this.toArrayLike(Buffer, endian, length);
  2006. };
  2007. BN.prototype.toArray = function toArray (endian, length) {
  2008. return this.toArrayLike(Array, endian, length);
  2009. };
  2010. BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {
  2011. var byteLength = this.byteLength();
  2012. var reqLength = length || Math.max(1, byteLength);
  2013. assert(byteLength <= reqLength, 'byte array longer than desired length');
  2014. assert(reqLength > 0, 'Requested array length <= 0');
  2015. this.strip();
  2016. var littleEndian = endian === 'le';
  2017. var res = new ArrayType(reqLength);
  2018. var b, i;
  2019. var q = this.clone();
  2020. if (!littleEndian) {
  2021. // Assume big-endian
  2022. for (i = 0; i < reqLength - byteLength; i++) {
  2023. res[i] = 0;
  2024. }
  2025. for (i = 0; !q.isZero(); i++) {
  2026. b = q.andln(0xff);
  2027. q.iushrn(8);
  2028. res[reqLength - i - 1] = b;
  2029. }
  2030. } else {
  2031. for (i = 0; !q.isZero(); i++) {
  2032. b = q.andln(0xff);
  2033. q.iushrn(8);
  2034. res[i] = b;
  2035. }
  2036. for (; i < reqLength; i++) {
  2037. res[i] = 0;
  2038. }
  2039. }
  2040. return res;
  2041. };
  2042. if (Math.clz32) {
  2043. BN.prototype._countBits = function _countBits (w) {
  2044. return 32 - Math.clz32(w);
  2045. };
  2046. } else {
  2047. BN.prototype._countBits = function _countBits (w) {
  2048. var t = w;
  2049. var r = 0;
  2050. if (t >= 0x1000) {
  2051. r += 13;
  2052. t >>>= 13;
  2053. }
  2054. if (t >= 0x40) {
  2055. r += 7;
  2056. t >>>= 7;
  2057. }
  2058. if (t >= 0x8) {
  2059. r += 4;
  2060. t >>>= 4;
  2061. }
  2062. if (t >= 0x02) {
  2063. r += 2;
  2064. t >>>= 2;
  2065. }
  2066. return r + t;
  2067. };
  2068. }
  2069. BN.prototype._zeroBits = function _zeroBits (w) {
  2070. // Short-cut
  2071. if (w === 0) return 26;
  2072. var t = w;
  2073. var r = 0;
  2074. if ((t & 0x1fff) === 0) {
  2075. r += 13;
  2076. t >>>= 13;
  2077. }
  2078. if ((t & 0x7f) === 0) {
  2079. r += 7;
  2080. t >>>= 7;
  2081. }
  2082. if ((t & 0xf) === 0) {
  2083. r += 4;
  2084. t >>>= 4;
  2085. }
  2086. if ((t & 0x3) === 0) {
  2087. r += 2;
  2088. t >>>= 2;
  2089. }
  2090. if ((t & 0x1) === 0) {
  2091. r++;
  2092. }
  2093. return r;
  2094. };
  2095. // Return number of used bits in a BN
  2096. BN.prototype.bitLength = function bitLength () {
  2097. var w = this.words[this.length - 1];
  2098. var hi = this._countBits(w);
  2099. return (this.length - 1) * 26 + hi;
  2100. };
  2101. function toBitArray (num) {
  2102. var w = new Array(num.bitLength());
  2103. for (var bit = 0; bit < w.length; bit++) {
  2104. var off = (bit / 26) | 0;
  2105. var wbit = bit % 26;
  2106. w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;
  2107. }
  2108. return w;
  2109. }
  2110. // Number of trailing zero bits
  2111. BN.prototype.zeroBits = function zeroBits () {
  2112. if (this.isZero()) return 0;
  2113. var r = 0;
  2114. for (var i = 0; i < this.length; i++) {
  2115. var b = this._zeroBits(this.words[i]);
  2116. r += b;
  2117. if (b !== 26) break;
  2118. }
  2119. return r;
  2120. };
  2121. BN.prototype.byteLength = function byteLength () {
  2122. return Math.ceil(this.bitLength() / 8);
  2123. };
  2124. BN.prototype.toTwos = function toTwos (width) {
  2125. if (this.negative !== 0) {
  2126. return this.abs().inotn(width).iaddn(1);
  2127. }
  2128. return this.clone();
  2129. };
  2130. BN.prototype.fromTwos = function fromTwos (width) {
  2131. if (this.testn(width - 1)) {
  2132. return this.notn(width).iaddn(1).ineg();
  2133. }
  2134. return this.clone();
  2135. };
  2136. BN.prototype.isNeg = function isNeg () {
  2137. return this.negative !== 0;
  2138. };
  2139. // Return negative clone of `this`
  2140. BN.prototype.neg = function neg () {
  2141. return this.clone().ineg();
  2142. };
  2143. BN.prototype.ineg = function ineg () {
  2144. if (!this.isZero()) {
  2145. this.negative ^= 1;
  2146. }
  2147. return this;
  2148. };
  2149. // Or `num` with `this` in-place
  2150. BN.prototype.iuor = function iuor (num) {
  2151. while (this.length < num.length) {
  2152. this.words[this.length++] = 0;
  2153. }
  2154. for (var i = 0; i < num.length; i++) {
  2155. this.words[i] = this.words[i] | num.words[i];
  2156. }
  2157. return this.strip();
  2158. };
  2159. BN.prototype.ior = function ior (num) {
  2160. assert((this.negative | num.negative) === 0);
  2161. return this.iuor(num);
  2162. };
  2163. // Or `num` with `this`
  2164. BN.prototype.or = function or (num) {
  2165. if (this.length > num.length) return this.clone().ior(num);
  2166. return num.clone().ior(this);
  2167. };
  2168. BN.prototype.uor = function uor (num) {
  2169. if (this.length > num.length) return this.clone().iuor(num);
  2170. return num.clone().iuor(this);
  2171. };
  2172. // And `num` with `this` in-place
  2173. BN.prototype.iuand = function iuand (num) {
  2174. // b = min-length(num, this)
  2175. var b;
  2176. if (this.length > num.length) {
  2177. b = num;
  2178. } else {
  2179. b = this;
  2180. }
  2181. for (var i = 0; i < b.length; i++) {
  2182. this.words[i] = this.words[i] & num.words[i];
  2183. }
  2184. this.length = b.length;
  2185. return this.strip();
  2186. };
  2187. BN.prototype.iand = function iand (num) {
  2188. assert((this.negative | num.negative) === 0);
  2189. return this.iuand(num);
  2190. };
  2191. // And `num` with `this`
  2192. BN.prototype.and = function and (num) {
  2193. if (this.length > num.length) return this.clone().iand(num);
  2194. return num.clone().iand(this);
  2195. };
  2196. BN.prototype.uand = function uand (num) {
  2197. if (this.length > num.length) return this.clone().iuand(num);
  2198. return num.clone().iuand(this);
  2199. };
  2200. // Xor `num` with `this` in-place
  2201. BN.prototype.iuxor = function iuxor (num) {
  2202. // a.length > b.length
  2203. var a;
  2204. var b;
  2205. if (this.length > num.length) {
  2206. a = this;
  2207. b = num;
  2208. } else {
  2209. a = num;
  2210. b = this;
  2211. }
  2212. for (var i = 0; i < b.length; i++) {
  2213. this.words[i] = a.words[i] ^ b.words[i];
  2214. }
  2215. if (this !== a) {
  2216. for (; i < a.length; i++) {
  2217. this.words[i] = a.words[i];
  2218. }
  2219. }
  2220. this.length = a.length;
  2221. return this.strip();
  2222. };
  2223. BN.prototype.ixor = function ixor (num) {
  2224. assert((this.negative | num.negative) === 0);
  2225. return this.iuxor(num);
  2226. };
  2227. // Xor `num` with `this`
  2228. BN.prototype.xor = function xor (num) {
  2229. if (this.length > num.length) return this.clone().ixor(num);
  2230. return num.clone().ixor(this);
  2231. };
  2232. BN.prototype.uxor = function uxor (num) {
  2233. if (this.length > num.length) return this.clone().iuxor(num);
  2234. return num.clone().iuxor(this);
  2235. };
  2236. // Not ``this`` with ``width`` bitwidth
  2237. BN.prototype.inotn = function inotn (width) {
  2238. assert(typeof width === 'number' && width >= 0);
  2239. var bytesNeeded = Math.ceil(width / 26) | 0;
  2240. var bitsLeft = width % 26;
  2241. // Extend the buffer with leading zeroes
  2242. this._expand(bytesNeeded);
  2243. if (bitsLeft > 0) {
  2244. bytesNeeded--;
  2245. }
  2246. // Handle complete words
  2247. for (var i = 0; i < bytesNeeded; i++) {
  2248. this.words[i] = ~this.words[i] & 0x3ffffff;
  2249. }
  2250. // Handle the residue
  2251. if (bitsLeft > 0) {
  2252. this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));
  2253. }
  2254. // And remove leading zeroes
  2255. return this.strip();
  2256. };
  2257. BN.prototype.notn = function notn (width) {
  2258. return this.clone().inotn(width);
  2259. };
  2260. // Set `bit` of `this`
  2261. BN.prototype.setn = function setn (bit, val) {
  2262. assert(typeof bit === 'number' && bit >= 0);
  2263. var off = (bit / 26) | 0;
  2264. var wbit = bit % 26;
  2265. this._expand(off + 1);
  2266. if (val) {
  2267. this.words[off] = this.words[off] | (1 << wbit);
  2268. } else {
  2269. this.words[off] = this.words[off] & ~(1 << wbit);
  2270. }
  2271. return this.strip();
  2272. };
  2273. // Add `num` to `this` in-place
  2274. BN.prototype.iadd = function iadd (num) {
  2275. var r;
  2276. // negative + positive
  2277. if (this.negative !== 0 && num.negative === 0) {
  2278. this.negative = 0;
  2279. r = this.isub(num);
  2280. this.negative ^= 1;
  2281. return this._normSign();
  2282. // positive + negative
  2283. } else if (this.negative === 0 && num.negative !== 0) {
  2284. num.negative = 0;
  2285. r = this.isub(num);
  2286. num.negative = 1;
  2287. return r._normSign();
  2288. }
  2289. // a.length > b.length
  2290. var a, b;
  2291. if (this.length > num.length) {
  2292. a = this;
  2293. b = num;
  2294. } else {
  2295. a = num;
  2296. b = this;
  2297. }
  2298. var carry = 0;
  2299. for (var i = 0; i < b.length; i++) {
  2300. r = (a.words[i] | 0) + (b.words[i] | 0) + carry;
  2301. this.words[i] = r & 0x3ffffff;
  2302. carry = r >>> 26;
  2303. }
  2304. for (; carry !== 0 && i < a.length; i++) {
  2305. r = (a.words[i] | 0) + carry;
  2306. this.words[i] = r & 0x3ffffff;
  2307. carry = r >>> 26;
  2308. }
  2309. this.length = a.length;
  2310. if (carry !== 0) {
  2311. this.words[this.length] = carry;
  2312. this.length++;
  2313. // Copy the rest of the words
  2314. } else if (a !== this) {
  2315. for (; i < a.length; i++) {
  2316. this.words[i] = a.words[i];
  2317. }
  2318. }
  2319. return this;
  2320. };
  2321. // Add `num` to `this`
  2322. BN.prototype.add = function add (num) {
  2323. var res;
  2324. if (num.negative !== 0 && this.negative === 0) {
  2325. num.negative = 0;
  2326. res = this.sub(num);
  2327. num.negative ^= 1;
  2328. return res;
  2329. } else if (num.negative === 0 && this.negative !== 0) {
  2330. this.negative = 0;
  2331. res = num.sub(this);
  2332. this.negative = 1;
  2333. return res;
  2334. }
  2335. if (this.length > num.length) return this.clone().iadd(num);
  2336. return num.clone().iadd(this);
  2337. };
  2338. // Subtract `num` from `this` in-place
  2339. BN.prototype.isub = function isub (num) {
  2340. // this - (-num) = this + num
  2341. if (num.negative !== 0) {
  2342. num.negative = 0;
  2343. var r = this.iadd(num);
  2344. num.negative = 1;
  2345. return r._normSign();
  2346. // -this - num = -(this + num)
  2347. } else if (this.negative !== 0) {
  2348. this.negative = 0;
  2349. this.iadd(num);
  2350. this.negative = 1;
  2351. return this._normSign();
  2352. }
  2353. // At this point both numbers are positive
  2354. var cmp = this.cmp(num);
  2355. // Optimization - zeroify
  2356. if (cmp === 0) {
  2357. this.negative = 0;
  2358. this.length = 1;
  2359. this.words[0] = 0;
  2360. return this;
  2361. }
  2362. // a > b
  2363. var a, b;
  2364. if (cmp > 0) {
  2365. a = this;
  2366. b = num;
  2367. } else {
  2368. a = num;
  2369. b = this;
  2370. }
  2371. var carry = 0;
  2372. for (var i = 0; i < b.length; i++) {
  2373. r = (a.words[i] | 0) - (b.words[i] | 0) + carry;
  2374. carry = r >> 26;
  2375. this.words[i] = r & 0x3ffffff;
  2376. }
  2377. for (; carry !== 0 && i < a.length; i++) {
  2378. r = (a.words[i] | 0) + carry;
  2379. carry = r >> 26;
  2380. this.words[i] = r & 0x3ffffff;
  2381. }
  2382. // Copy rest of the words
  2383. if (carry === 0 && i < a.length && a !== this) {
  2384. for (; i < a.length; i++) {
  2385. this.words[i] = a.words[i];
  2386. }
  2387. }
  2388. this.length = Math.max(this.length, i);
  2389. if (a !== this) {
  2390. this.negative = 1;
  2391. }
  2392. return this.strip();
  2393. };
  2394. // Subtract `num` from `this`
  2395. BN.prototype.sub = function sub (num) {
  2396. return this.clone().isub(num);
  2397. };
  2398. function smallMulTo (self, num, out) {
  2399. out.negative = num.negative ^ self.negative;
  2400. var len = (self.length + num.length) | 0;
  2401. out.length = len;
  2402. len = (len - 1) | 0;
  2403. // Peel one iteration (compiler can't do it, because of code complexity)
  2404. var a = self.words[0] | 0;
  2405. var b = num.words[0] | 0;
  2406. var r = a * b;
  2407. var lo = r & 0x3ffffff;
  2408. var carry = (r / 0x4000000) | 0;
  2409. out.words[0] = lo;
  2410. for (var k = 1; k < len; k++) {
  2411. // Sum all words with the same `i + j = k` and accumulate `ncarry`,
  2412. // note that ncarry could be >= 0x3ffffff
  2413. var ncarry = carry >>> 26;
  2414. var rword = carry & 0x3ffffff;
  2415. var maxJ = Math.min(k, num.length - 1);
  2416. for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {
  2417. var i = (k - j) | 0;
  2418. a = self.words[i] | 0;
  2419. b = num.words[j] | 0;
  2420. r = a * b + rword;
  2421. ncarry += (r / 0x4000000) | 0;
  2422. rword = r & 0x3ffffff;
  2423. }
  2424. out.words[k] = rword | 0;
  2425. carry = ncarry | 0;
  2426. }
  2427. if (carry !== 0) {
  2428. out.words[k] = carry | 0;
  2429. } else {
  2430. out.length--;
  2431. }
  2432. return out.strip();
  2433. }
  2434. // TODO(indutny): it may be reasonable to omit it for users who don't need
  2435. // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit
  2436. // multiplication (like elliptic secp256k1).
  2437. var comb10MulTo = function comb10MulTo (self, num, out) {
  2438. var a = self.words;
  2439. var b = num.words;
  2440. var o = out.words;
  2441. var c = 0;
  2442. var lo;
  2443. var mid;
  2444. var hi;
  2445. var a0 = a[0] | 0;
  2446. var al0 = a0 & 0x1fff;
  2447. var ah0 = a0 >>> 13;
  2448. var a1 = a[1] | 0;
  2449. var al1 = a1 & 0x1fff;
  2450. var ah1 = a1 >>> 13;
  2451. var a2 = a[2] | 0;
  2452. var al2 = a2 & 0x1fff;
  2453. var ah2 = a2 >>> 13;
  2454. var a3 = a[3] | 0;
  2455. var al3 = a3 & 0x1fff;
  2456. var ah3 = a3 >>> 13;
  2457. var a4 = a[4] | 0;
  2458. var al4 = a4 & 0x1fff;
  2459. var ah4 = a4 >>> 13;
  2460. var a5 = a[5] | 0;
  2461. var al5 = a5 & 0x1fff;
  2462. var ah5 = a5 >>> 13;
  2463. var a6 = a[6] | 0;
  2464. var al6 = a6 & 0x1fff;
  2465. var ah6 = a6 >>> 13;
  2466. var a7 = a[7] | 0;
  2467. var al7 = a7 & 0x1fff;
  2468. var ah7 = a7 >>> 13;
  2469. var a8 = a[8] | 0;
  2470. var al8 = a8 & 0x1fff;
  2471. var ah8 = a8 >>> 13;
  2472. var a9 = a[9] | 0;
  2473. var al9 = a9 & 0x1fff;
  2474. var ah9 = a9 >>> 13;
  2475. var b0 = b[0] | 0;
  2476. var bl0 = b0 & 0x1fff;
  2477. var bh0 = b0 >>> 13;
  2478. var b1 = b[1] | 0;
  2479. var bl1 = b1 & 0x1fff;
  2480. var bh1 = b1 >>> 13;
  2481. var b2 = b[2] | 0;
  2482. var bl2 = b2 & 0x1fff;
  2483. var bh2 = b2 >>> 13;
  2484. var b3 = b[3] | 0;
  2485. var bl3 = b3 & 0x1fff;
  2486. var bh3 = b3 >>> 13;
  2487. var b4 = b[4] | 0;
  2488. var bl4 = b4 & 0x1fff;
  2489. var bh4 = b4 >>> 13;
  2490. var b5 = b[5] | 0;
  2491. var bl5 = b5 & 0x1fff;
  2492. var bh5 = b5 >>> 13;
  2493. var b6 = b[6] | 0;
  2494. var bl6 = b6 & 0x1fff;
  2495. var bh6 = b6 >>> 13;
  2496. var b7 = b[7] | 0;
  2497. var bl7 = b7 & 0x1fff;
  2498. var bh7 = b7 >>> 13;
  2499. var b8 = b[8] | 0;
  2500. var bl8 = b8 & 0x1fff;
  2501. var bh8 = b8 >>> 13;
  2502. var b9 = b[9] | 0;
  2503. var bl9 = b9 & 0x1fff;
  2504. var bh9 = b9 >>> 13;
  2505. out.negative = self.negative ^ num.negative;
  2506. out.length = 19;
  2507. /* k = 0 */
  2508. lo = Math.imul(al0, bl0);
  2509. mid = Math.imul(al0, bh0);
  2510. mid = (mid + Math.imul(ah0, bl0)) | 0;
  2511. hi = Math.imul(ah0, bh0);
  2512. var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
  2513. c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;
  2514. w0 &= 0x3ffffff;
  2515. /* k = 1 */
  2516. lo = Math.imul(al1, bl0);
  2517. mid = Math.imul(al1, bh0);
  2518. mid = (mid + Math.imul(ah1, bl0)) | 0;
  2519. hi = Math.imul(ah1, bh0);
  2520. lo = (lo + Math.imul(al0, bl1)) | 0;
  2521. mid = (mid + Math.imul(al0, bh1)) | 0;
  2522. mid = (mid + Math.imul(ah0, bl1)) | 0;
  2523. hi = (hi + Math.imul(ah0, bh1)) | 0;
  2524. var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
  2525. c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;
  2526. w1 &= 0x3ffffff;
  2527. /* k = 2 */
  2528. lo = Math.imul(al2, bl0);
  2529. mid = Math.imul(al2, bh0);
  2530. mid = (mid + Math.imul(ah2, bl0)) | 0;
  2531. hi = Math.imul(ah2, bh0);
  2532. lo = (lo + Math.imul(al1, bl1)) | 0;
  2533. mid = (mid + Math.imul(al1, bh1)) | 0;
  2534. mid = (mid + Math.imul(ah1, bl1)) | 0;
  2535. hi = (hi + Math.imul(ah1, bh1)) | 0;
  2536. lo = (lo + Math.imul(al0, bl2)) | 0;
  2537. mid = (mid + Math.imul(al0, bh2)) | 0;
  2538. mid = (mid + Math.imul(ah0, bl2)) | 0;
  2539. hi = (hi + Math.imul(ah0, bh2)) | 0;
  2540. var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
  2541. c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;
  2542. w2 &= 0x3ffffff;
  2543. /* k = 3 */
  2544. lo = Math.imul(al3, bl0);
  2545. mid = Math.imul(al3, bh0);
  2546. mid = (mid + Math.imul(ah3, bl0)) | 0;
  2547. hi = Math.imul(ah3, bh0);
  2548. lo = (lo + Math.imul(al2, bl1)) | 0;
  2549. mid = (mid + Math.imul(al2, bh1)) | 0;
  2550. mid = (mid + Math.imul(ah2, bl1)) | 0;
  2551. hi = (hi + Math.imul(ah2, bh1)) | 0;
  2552. lo = (lo + Math.imul(al1, bl2)) | 0;
  2553. mid = (mid + Math.imul(al1, bh2)) | 0;
  2554. mid = (mid + Math.imul(ah1, bl2)) | 0;
  2555. hi = (hi + Math.imul(ah1, bh2)) | 0;
  2556. lo = (lo + Math.imul(al0, bl3)) | 0;
  2557. mid = (mid + Math.imul(al0, bh3)) | 0;
  2558. mid = (mid + Math.imul(ah0, bl3)) | 0;
  2559. hi = (hi + Math.imul(ah0, bh3)) | 0;
  2560. var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
  2561. c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;
  2562. w3 &= 0x3ffffff;
  2563. /* k = 4 */
  2564. lo = Math.imul(al4, bl0);
  2565. mid = Math.imul(al4, bh0);
  2566. mid = (mid + Math.imul(ah4, bl0)) | 0;
  2567. hi = Math.imul(ah4, bh0);
  2568. lo = (lo + Math.imul(al3, bl1)) | 0;
  2569. mid = (mid + Math.imul(al3, bh1)) | 0;
  2570. mid = (mid + Math.imul(ah3, bl1)) | 0;
  2571. hi = (hi + Math.imul(ah3, bh1)) | 0;
  2572. lo = (lo + Math.imul(al2, bl2)) | 0;
  2573. mid = (mid + Math.imul(al2, bh2)) | 0;
  2574. mid = (mid + Math.imul(ah2, bl2)) | 0;
  2575. hi = (hi + Math.imul(ah2, bh2)) | 0;
  2576. lo = (lo + Math.imul(al1, bl3)) | 0;
  2577. mid = (mid + Math.imul(al1, bh3)) | 0;
  2578. mid = (mid + Math.imul(ah1, bl3)) | 0;
  2579. hi = (hi + Math.imul(ah1, bh3)) | 0;
  2580. lo = (lo + Math.imul(al0, bl4)) | 0;
  2581. mid = (mid + Math.imul(al0, bh4)) | 0;
  2582. mid = (mid + Math.imul(ah0, bl4)) | 0;
  2583. hi = (hi + Math.imul(ah0, bh4)) | 0;
  2584. var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
  2585. c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;
  2586. w4 &= 0x3ffffff;
  2587. /* k = 5 */
  2588. lo = Math.imul(al5, bl0);
  2589. mid = Math.imul(al5, bh0);
  2590. mid = (mid + Math.imul(ah5, bl0)) | 0;
  2591. hi = Math.imul(ah5, bh0);
  2592. lo = (lo + Math.imul(al4, bl1)) | 0;
  2593. mid = (mid + Math.imul(al4, bh1)) | 0;
  2594. mid = (mid + Math.imul(ah4, bl1)) | 0;
  2595. hi = (hi + Math.imul(ah4, bh1)) | 0;
  2596. lo = (lo + Math.imul(al3, bl2)) | 0;
  2597. mid = (mid + Math.imul(al3, bh2)) | 0;
  2598. mid = (mid + Math.imul(ah3, bl2)) | 0;
  2599. hi = (hi + Math.imul(ah3, bh2)) | 0;
  2600. lo = (lo + Math.imul(al2, bl3)) | 0;
  2601. mid = (mid + Math.imul(al2, bh3)) | 0;
  2602. mid = (mid + Math.imul(ah2, bl3)) | 0;
  2603. hi = (hi + Math.imul(ah2, bh3)) | 0;
  2604. lo = (lo + Math.imul(al1, bl4)) | 0;
  2605. mid = (mid + Math.imul(al1, bh4)) | 0;
  2606. mid = (mid + Math.imul(ah1, bl4)) | 0;
  2607. hi = (hi + Math.imul(ah1, bh4)) | 0;
  2608. lo = (lo + Math.imul(al0, bl5)) | 0;
  2609. mid = (mid + Math.imul(al0, bh5)) | 0;
  2610. mid = (mid + Math.imul(ah0, bl5)) | 0;
  2611. hi = (hi + Math.imul(ah0, bh5)) | 0;
  2612. var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
  2613. c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;
  2614. w5 &= 0x3ffffff;
  2615. /* k = 6 */
  2616. lo = Math.imul(al6, bl0);
  2617. mid = Math.imul(al6, bh0);
  2618. mid = (mid + Math.imul(ah6, bl0)) | 0;
  2619. hi = Math.imul(ah6, bh0);
  2620. lo = (lo + Math.imul(al5, bl1)) | 0;
  2621. mid = (mid + Math.imul(al5, bh1)) | 0;
  2622. mid = (mid + Math.imul(ah5, bl1)) | 0;
  2623. hi = (hi + Math.imul(ah5, bh1)) | 0;
  2624. lo = (lo + Math.imul(al4, bl2)) | 0;
  2625. mid = (mid + Math.imul(al4, bh2)) | 0;
  2626. mid = (mid + Math.imul(ah4, bl2)) | 0;
  2627. hi = (hi + Math.imul(ah4, bh2)) | 0;
  2628. lo = (lo + Math.imul(al3, bl3)) | 0;
  2629. mid = (mid + Math.imul(al3, bh3)) | 0;
  2630. mid = (mid + Math.imul(ah3, bl3)) | 0;
  2631. hi = (hi + Math.imul(ah3, bh3)) | 0;
  2632. lo = (lo + Math.imul(al2, bl4)) | 0;
  2633. mid = (mid + Math.imul(al2, bh4)) | 0;
  2634. mid = (mid + Math.imul(ah2, bl4)) | 0;
  2635. hi = (hi + Math.imul(ah2, bh4)) | 0;
  2636. lo = (lo + Math.imul(al1, bl5)) | 0;
  2637. mid = (mid + Math.imul(al1, bh5)) | 0;
  2638. mid = (mid + Math.imul(ah1, bl5)) | 0;
  2639. hi = (hi + Math.imul(ah1, bh5)) | 0;
  2640. lo = (lo + Math.imul(al0, bl6)) | 0;
  2641. mid = (mid + Math.imul(al0, bh6)) | 0;
  2642. mid = (mid + Math.imul(ah0, bl6)) | 0;
  2643. hi = (hi + Math.imul(ah0, bh6)) | 0;
  2644. var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
  2645. c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;
  2646. w6 &= 0x3ffffff;
  2647. /* k = 7 */
  2648. lo = Math.imul(al7, bl0);
  2649. mid = Math.imul(al7, bh0);
  2650. mid = (mid + Math.imul(ah7, bl0)) | 0;
  2651. hi = Math.imul(ah7, bh0);
  2652. lo = (lo + Math.imul(al6, bl1)) | 0;
  2653. mid = (mid + Math.imul(al6, bh1)) | 0;
  2654. mid = (mid + Math.imul(ah6, bl1)) | 0;
  2655. hi = (hi + Math.imul(ah6, bh1)) | 0;
  2656. lo = (lo + Math.imul(al5, bl2)) | 0;
  2657. mid = (mid + Math.imul(al5, bh2)) | 0;
  2658. mid = (mid + Math.imul(ah5, bl2)) | 0;
  2659. hi = (hi + Math.imul(ah5, bh2)) | 0;
  2660. lo = (lo + Math.imul(al4, bl3)) | 0;
  2661. mid = (mid + Math.imul(al4, bh3)) | 0;
  2662. mid = (mid + Math.imul(ah4, bl3)) | 0;
  2663. hi = (hi + Math.imul(ah4, bh3)) | 0;
  2664. lo = (lo + Math.imul(al3, bl4)) | 0;
  2665. mid = (mid + Math.imul(al3, bh4)) | 0;
  2666. mid = (mid + Math.imul(ah3, bl4)) | 0;
  2667. hi = (hi + Math.imul(ah3, bh4)) | 0;
  2668. lo = (lo + Math.imul(al2, bl5)) | 0;
  2669. mid = (mid + Math.imul(al2, bh5)) | 0;
  2670. mid = (mid + Math.imul(ah2, bl5)) | 0;
  2671. hi = (hi + Math.imul(ah2, bh5)) | 0;
  2672. lo = (lo + Math.imul(al1, bl6)) | 0;
  2673. mid = (mid + Math.imul(al1, bh6)) | 0;
  2674. mid = (mid + Math.imul(ah1, bl6)) | 0;
  2675. hi = (hi + Math.imul(ah1, bh6)) | 0;
  2676. lo = (lo + Math.imul(al0, bl7)) | 0;
  2677. mid = (mid + Math.imul(al0, bh7)) | 0;
  2678. mid = (mid + Math.imul(ah0, bl7)) | 0;
  2679. hi = (hi + Math.imul(ah0, bh7)) | 0;
  2680. var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
  2681. c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;
  2682. w7 &= 0x3ffffff;
  2683. /* k = 8 */
  2684. lo = Math.imul(al8, bl0);
  2685. mid = Math.imul(al8, bh0);
  2686. mid = (mid + Math.imul(ah8, bl0)) | 0;
  2687. hi = Math.imul(ah8, bh0);
  2688. lo = (lo + Math.imul(al7, bl1)) | 0;
  2689. mid = (mid + Math.imul(al7, bh1)) | 0;
  2690. mid = (mid + Math.imul(ah7, bl1)) | 0;
  2691. hi = (hi + Math.imul(ah7, bh1)) | 0;
  2692. lo = (lo + Math.imul(al6, bl2)) | 0;
  2693. mid = (mid + Math.imul(al6, bh2)) | 0;
  2694. mid = (mid + Math.imul(ah6, bl2)) | 0;
  2695. hi = (hi + Math.imul(ah6, bh2)) | 0;
  2696. lo = (lo + Math.imul(al5, bl3)) | 0;
  2697. mid = (mid + Math.imul(al5, bh3)) | 0;
  2698. mid = (mid + Math.imul(ah5, bl3)) | 0;
  2699. hi = (hi + Math.imul(ah5, bh3)) | 0;
  2700. lo = (lo + Math.imul(al4, bl4)) | 0;
  2701. mid = (mid + Math.imul(al4, bh4)) | 0;
  2702. mid = (mid + Math.imul(ah4, bl4)) | 0;
  2703. hi = (hi + Math.imul(ah4, bh4)) | 0;
  2704. lo = (lo + Math.imul(al3, bl5)) | 0;
  2705. mid = (mid + Math.imul(al3, bh5)) | 0;
  2706. mid = (mid + Math.imul(ah3, bl5)) | 0;
  2707. hi = (hi + Math.imul(ah3, bh5)) | 0;
  2708. lo = (lo + Math.imul(al2, bl6)) | 0;
  2709. mid = (mid + Math.imul(al2, bh6)) | 0;
  2710. mid = (mid + Math.imul(ah2, bl6)) | 0;
  2711. hi = (hi + Math.imul(ah2, bh6)) | 0;
  2712. lo = (lo + Math.imul(al1, bl7)) | 0;
  2713. mid = (mid + Math.imul(al1, bh7)) | 0;
  2714. mid = (mid + Math.imul(ah1, bl7)) | 0;
  2715. hi = (hi + Math.imul(ah1, bh7)) | 0;
  2716. lo = (lo + Math.imul(al0, bl8)) | 0;
  2717. mid = (mid + Math.imul(al0, bh8)) | 0;
  2718. mid = (mid + Math.imul(ah0, bl8)) | 0;
  2719. hi = (hi + Math.imul(ah0, bh8)) | 0;
  2720. var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
  2721. c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;
  2722. w8 &= 0x3ffffff;
  2723. /* k = 9 */
  2724. lo = Math.imul(al9, bl0);
  2725. mid = Math.imul(al9, bh0);
  2726. mid = (mid + Math.imul(ah9, bl0)) | 0;
  2727. hi = Math.imul(ah9, bh0);
  2728. lo = (lo + Math.imul(al8, bl1)) | 0;
  2729. mid = (mid + Math.imul(al8, bh1)) | 0;
  2730. mid = (mid + Math.imul(ah8, bl1)) | 0;
  2731. hi = (hi + Math.imul(ah8, bh1)) | 0;
  2732. lo = (lo + Math.imul(al7, bl2)) | 0;
  2733. mid = (mid + Math.imul(al7, bh2)) | 0;
  2734. mid = (mid + Math.imul(ah7, bl2)) | 0;
  2735. hi = (hi + Math.imul(ah7, bh2)) | 0;
  2736. lo = (lo + Math.imul(al6, bl3)) | 0;
  2737. mid = (mid + Math.imul(al6, bh3)) | 0;
  2738. mid = (mid + Math.imul(ah6, bl3)) | 0;
  2739. hi = (hi + Math.imul(ah6, bh3)) | 0;
  2740. lo = (lo + Math.imul(al5, bl4)) | 0;
  2741. mid = (mid + Math.imul(al5, bh4)) | 0;
  2742. mid = (mid + Math.imul(ah5, bl4)) | 0;
  2743. hi = (hi + Math.imul(ah5, bh4)) | 0;
  2744. lo = (lo + Math.imul(al4, bl5)) | 0;
  2745. mid = (mid + Math.imul(al4, bh5)) | 0;
  2746. mid = (mid + Math.imul(ah4, bl5)) | 0;
  2747. hi = (hi + Math.imul(ah4, bh5)) | 0;
  2748. lo = (lo + Math.imul(al3, bl6)) | 0;
  2749. mid = (mid + Math.imul(al3, bh6)) | 0;
  2750. mid = (mid + Math.imul(ah3, bl6)) | 0;
  2751. hi = (hi + Math.imul(ah3, bh6)) | 0;
  2752. lo = (lo + Math.imul(al2, bl7)) | 0;
  2753. mid = (mid + Math.imul(al2, bh7)) | 0;
  2754. mid = (mid + Math.imul(ah2, bl7)) | 0;
  2755. hi = (hi + Math.imul(ah2, bh7)) | 0;
  2756. lo = (lo + Math.imul(al1, bl8)) | 0;
  2757. mid = (mid + Math.imul(al1, bh8)) | 0;
  2758. mid = (mid + Math.imul(ah1, bl8)) | 0;
  2759. hi = (hi + Math.imul(ah1, bh8)) | 0;
  2760. lo = (lo + Math.imul(al0, bl9)) | 0;
  2761. mid = (mid + Math.imul(al0, bh9)) | 0;
  2762. mid = (mid + Math.imul(ah0, bl9)) | 0;
  2763. hi = (hi + Math.imul(ah0, bh9)) | 0;
  2764. var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
  2765. c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;
  2766. w9 &= 0x3ffffff;
  2767. /* k = 10 */
  2768. lo = Math.imul(al9, bl1);
  2769. mid = Math.imul(al9, bh1);
  2770. mid = (mid + Math.imul(ah9, bl1)) | 0;
  2771. hi = Math.imul(ah9, bh1);
  2772. lo = (lo + Math.imul(al8, bl2)) | 0;
  2773. mid = (mid + Math.imul(al8, bh2)) | 0;
  2774. mid = (mid + Math.imul(ah8, bl2)) | 0;
  2775. hi = (hi + Math.imul(ah8, bh2)) | 0;
  2776. lo = (lo + Math.imul(al7, bl3)) | 0;
  2777. mid = (mid + Math.imul(al7, bh3)) | 0;
  2778. mid = (mid + Math.imul(ah7, bl3)) | 0;
  2779. hi = (hi + Math.imul(ah7, bh3)) | 0;
  2780. lo = (lo + Math.imul(al6, bl4)) | 0;
  2781. mid = (mid + Math.imul(al6, bh4)) | 0;
  2782. mid = (mid + Math.imul(ah6, bl4)) | 0;
  2783. hi = (hi + Math.imul(ah6, bh4)) | 0;
  2784. lo = (lo + Math.imul(al5, bl5)) | 0;
  2785. mid = (mid + Math.imul(al5, bh5)) | 0;
  2786. mid = (mid + Math.imul(ah5, bl5)) | 0;
  2787. hi = (hi + Math.imul(ah5, bh5)) | 0;
  2788. lo = (lo + Math.imul(al4, bl6)) | 0;
  2789. mid = (mid + Math.imul(al4, bh6)) | 0;
  2790. mid = (mid + Math.imul(ah4, bl6)) | 0;
  2791. hi = (hi + Math.imul(ah4, bh6)) | 0;
  2792. lo = (lo + Math.imul(al3, bl7)) | 0;
  2793. mid = (mid + Math.imul(al3, bh7)) | 0;
  2794. mid = (mid + Math.imul(ah3, bl7)) | 0;
  2795. hi = (hi + Math.imul(ah3, bh7)) | 0;
  2796. lo = (lo + Math.imul(al2, bl8)) | 0;
  2797. mid = (mid + Math.imul(al2, bh8)) | 0;
  2798. mid = (mid + Math.imul(ah2, bl8)) | 0;
  2799. hi = (hi + Math.imul(ah2, bh8)) | 0;
  2800. lo = (lo + Math.imul(al1, bl9)) | 0;
  2801. mid = (mid + Math.imul(al1, bh9)) | 0;
  2802. mid = (mid + Math.imul(ah1, bl9)) | 0;
  2803. hi = (hi + Math.imul(ah1, bh9)) | 0;
  2804. var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
  2805. c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;
  2806. w10 &= 0x3ffffff;
  2807. /* k = 11 */
  2808. lo = Math.imul(al9, bl2);
  2809. mid = Math.imul(al9, bh2);
  2810. mid = (mid + Math.imul(ah9, bl2)) | 0;
  2811. hi = Math.imul(ah9, bh2);
  2812. lo = (lo + Math.imul(al8, bl3)) | 0;
  2813. mid = (mid + Math.imul(al8, bh3)) | 0;
  2814. mid = (mid + Math.imul(ah8, bl3)) | 0;
  2815. hi = (hi + Math.imul(ah8, bh3)) | 0;
  2816. lo = (lo + Math.imul(al7, bl4)) | 0;
  2817. mid = (mid + Math.imul(al7, bh4)) | 0;
  2818. mid = (mid + Math.imul(ah7, bl4)) | 0;
  2819. hi = (hi + Math.imul(ah7, bh4)) | 0;
  2820. lo = (lo + Math.imul(al6, bl5)) | 0;
  2821. mid = (mid + Math.imul(al6, bh5)) | 0;
  2822. mid = (mid + Math.imul(ah6, bl5)) | 0;
  2823. hi = (hi + Math.imul(ah6, bh5)) | 0;
  2824. lo = (lo + Math.imul(al5, bl6)) | 0;
  2825. mid = (mid + Math.imul(al5, bh6)) | 0;
  2826. mid = (mid + Math.imul(ah5, bl6)) | 0;
  2827. hi = (hi + Math.imul(ah5, bh6)) | 0;
  2828. lo = (lo + Math.imul(al4, bl7)) | 0;
  2829. mid = (mid + Math.imul(al4, bh7)) | 0;
  2830. mid = (mid + Math.imul(ah4, bl7)) | 0;
  2831. hi = (hi + Math.imul(ah4, bh7)) | 0;
  2832. lo = (lo + Math.imul(al3, bl8)) | 0;
  2833. mid = (mid + Math.imul(al3, bh8)) | 0;
  2834. mid = (mid + Math.imul(ah3, bl8)) | 0;
  2835. hi = (hi + Math.imul(ah3, bh8)) | 0;
  2836. lo = (lo + Math.imul(al2, bl9)) | 0;
  2837. mid = (mid + Math.imul(al2, bh9)) | 0;
  2838. mid = (mid + Math.imul(ah2, bl9)) | 0;
  2839. hi = (hi + Math.imul(ah2, bh9)) | 0;
  2840. var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
  2841. c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;
  2842. w11 &= 0x3ffffff;
  2843. /* k = 12 */
  2844. lo = Math.imul(al9, bl3);
  2845. mid = Math.imul(al9, bh3);
  2846. mid = (mid + Math.imul(ah9, bl3)) | 0;
  2847. hi = Math.imul(ah9, bh3);
  2848. lo = (lo + Math.imul(al8, bl4)) | 0;
  2849. mid = (mid + Math.imul(al8, bh4)) | 0;
  2850. mid = (mid + Math.imul(ah8, bl4)) | 0;
  2851. hi = (hi + Math.imul(ah8, bh4)) | 0;
  2852. lo = (lo + Math.imul(al7, bl5)) | 0;
  2853. mid = (mid + Math.imul(al7, bh5)) | 0;
  2854. mid = (mid + Math.imul(ah7, bl5)) | 0;
  2855. hi = (hi + Math.imul(ah7, bh5)) | 0;
  2856. lo = (lo + Math.imul(al6, bl6)) | 0;
  2857. mid = (mid + Math.imul(al6, bh6)) | 0;
  2858. mid = (mid + Math.imul(ah6, bl6)) | 0;
  2859. hi = (hi + Math.imul(ah6, bh6)) | 0;
  2860. lo = (lo + Math.imul(al5, bl7)) | 0;
  2861. mid = (mid + Math.imul(al5, bh7)) | 0;
  2862. mid = (mid + Math.imul(ah5, bl7)) | 0;
  2863. hi = (hi + Math.imul(ah5, bh7)) | 0;
  2864. lo = (lo + Math.imul(al4, bl8)) | 0;
  2865. mid = (mid + Math.imul(al4, bh8)) | 0;
  2866. mid = (mid + Math.imul(ah4, bl8)) | 0;
  2867. hi = (hi + Math.imul(ah4, bh8)) | 0;
  2868. lo = (lo + Math.imul(al3, bl9)) | 0;
  2869. mid = (mid + Math.imul(al3, bh9)) | 0;
  2870. mid = (mid + Math.imul(ah3, bl9)) | 0;
  2871. hi = (hi + Math.imul(ah3, bh9)) | 0;
  2872. var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
  2873. c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;
  2874. w12 &= 0x3ffffff;
  2875. /* k = 13 */
  2876. lo = Math.imul(al9, bl4);
  2877. mid = Math.imul(al9, bh4);
  2878. mid = (mid + Math.imul(ah9, bl4)) | 0;
  2879. hi = Math.imul(ah9, bh4);
  2880. lo = (lo + Math.imul(al8, bl5)) | 0;
  2881. mid = (mid + Math.imul(al8, bh5)) | 0;
  2882. mid = (mid + Math.imul(ah8, bl5)) | 0;
  2883. hi = (hi + Math.imul(ah8, bh5)) | 0;
  2884. lo = (lo + Math.imul(al7, bl6)) | 0;
  2885. mid = (mid + Math.imul(al7, bh6)) | 0;
  2886. mid = (mid + Math.imul(ah7, bl6)) | 0;
  2887. hi = (hi + Math.imul(ah7, bh6)) | 0;
  2888. lo = (lo + Math.imul(al6, bl7)) | 0;
  2889. mid = (mid + Math.imul(al6, bh7)) | 0;
  2890. mid = (mid + Math.imul(ah6, bl7)) | 0;
  2891. hi = (hi + Math.imul(ah6, bh7)) | 0;
  2892. lo = (lo + Math.imul(al5, bl8)) | 0;
  2893. mid = (mid + Math.imul(al5, bh8)) | 0;
  2894. mid = (mid + Math.imul(ah5, bl8)) | 0;
  2895. hi = (hi + Math.imul(ah5, bh8)) | 0;
  2896. lo = (lo + Math.imul(al4, bl9)) | 0;
  2897. mid = (mid + Math.imul(al4, bh9)) | 0;
  2898. mid = (mid + Math.imul(ah4, bl9)) | 0;
  2899. hi = (hi + Math.imul(ah4, bh9)) | 0;
  2900. var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
  2901. c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;
  2902. w13 &= 0x3ffffff;
  2903. /* k = 14 */
  2904. lo = Math.imul(al9, bl5);
  2905. mid = Math.imul(al9, bh5);
  2906. mid = (mid + Math.imul(ah9, bl5)) | 0;
  2907. hi = Math.imul(ah9, bh5);
  2908. lo = (lo + Math.imul(al8, bl6)) | 0;
  2909. mid = (mid + Math.imul(al8, bh6)) | 0;
  2910. mid = (mid + Math.imul(ah8, bl6)) | 0;
  2911. hi = (hi + Math.imul(ah8, bh6)) | 0;
  2912. lo = (lo + Math.imul(al7, bl7)) | 0;
  2913. mid = (mid + Math.imul(al7, bh7)) | 0;
  2914. mid = (mid + Math.imul(ah7, bl7)) | 0;
  2915. hi = (hi + Math.imul(ah7, bh7)) | 0;
  2916. lo = (lo + Math.imul(al6, bl8)) | 0;
  2917. mid = (mid + Math.imul(al6, bh8)) | 0;
  2918. mid = (mid + Math.imul(ah6, bl8)) | 0;
  2919. hi = (hi + Math.imul(ah6, bh8)) | 0;
  2920. lo = (lo + Math.imul(al5, bl9)) | 0;
  2921. mid = (mid + Math.imul(al5, bh9)) | 0;
  2922. mid = (mid + Math.imul(ah5, bl9)) | 0;
  2923. hi = (hi + Math.imul(ah5, bh9)) | 0;
  2924. var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
  2925. c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;
  2926. w14 &= 0x3ffffff;
  2927. /* k = 15 */
  2928. lo = Math.imul(al9, bl6);
  2929. mid = Math.imul(al9, bh6);
  2930. mid = (mid + Math.imul(ah9, bl6)) | 0;
  2931. hi = Math.imul(ah9, bh6);
  2932. lo = (lo + Math.imul(al8, bl7)) | 0;
  2933. mid = (mid + Math.imul(al8, bh7)) | 0;
  2934. mid = (mid + Math.imul(ah8, bl7)) | 0;
  2935. hi = (hi + Math.imul(ah8, bh7)) | 0;
  2936. lo = (lo + Math.imul(al7, bl8)) | 0;
  2937. mid = (mid + Math.imul(al7, bh8)) | 0;
  2938. mid = (mid + Math.imul(ah7, bl8)) | 0;
  2939. hi = (hi + Math.imul(ah7, bh8)) | 0;
  2940. lo = (lo + Math.imul(al6, bl9)) | 0;
  2941. mid = (mid + Math.imul(al6, bh9)) | 0;
  2942. mid = (mid + Math.imul(ah6, bl9)) | 0;
  2943. hi = (hi + Math.imul(ah6, bh9)) | 0;
  2944. var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
  2945. c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;
  2946. w15 &= 0x3ffffff;
  2947. /* k = 16 */
  2948. lo = Math.imul(al9, bl7);
  2949. mid = Math.imul(al9, bh7);
  2950. mid = (mid + Math.imul(ah9, bl7)) | 0;
  2951. hi = Math.imul(ah9, bh7);
  2952. lo = (lo + Math.imul(al8, bl8)) | 0;
  2953. mid = (mid + Math.imul(al8, bh8)) | 0;
  2954. mid = (mid + Math.imul(ah8, bl8)) | 0;
  2955. hi = (hi + Math.imul(ah8, bh8)) | 0;
  2956. lo = (lo + Math.imul(al7, bl9)) | 0;
  2957. mid = (mid + Math.imul(al7, bh9)) | 0;
  2958. mid = (mid + Math.imul(ah7, bl9)) | 0;
  2959. hi = (hi + Math.imul(ah7, bh9)) | 0;
  2960. var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
  2961. c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;
  2962. w16 &= 0x3ffffff;
  2963. /* k = 17 */
  2964. lo = Math.imul(al9, bl8);
  2965. mid = Math.imul(al9, bh8);
  2966. mid = (mid + Math.imul(ah9, bl8)) | 0;
  2967. hi = Math.imul(ah9, bh8);
  2968. lo = (lo + Math.imul(al8, bl9)) | 0;
  2969. mid = (mid + Math.imul(al8, bh9)) | 0;
  2970. mid = (mid + Math.imul(ah8, bl9)) | 0;
  2971. hi = (hi + Math.imul(ah8, bh9)) | 0;
  2972. var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
  2973. c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;
  2974. w17 &= 0x3ffffff;
  2975. /* k = 18 */
  2976. lo = Math.imul(al9, bl9);
  2977. mid = Math.imul(al9, bh9);
  2978. mid = (mid + Math.imul(ah9, bl9)) | 0;
  2979. hi = Math.imul(ah9, bh9);
  2980. var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
  2981. c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;
  2982. w18 &= 0x3ffffff;
  2983. o[0] = w0;
  2984. o[1] = w1;
  2985. o[2] = w2;
  2986. o[3] = w3;
  2987. o[4] = w4;
  2988. o[5] = w5;
  2989. o[6] = w6;
  2990. o[7] = w7;
  2991. o[8] = w8;
  2992. o[9] = w9;
  2993. o[10] = w10;
  2994. o[11] = w11;
  2995. o[12] = w12;
  2996. o[13] = w13;
  2997. o[14] = w14;
  2998. o[15] = w15;
  2999. o[16] = w16;
  3000. o[17] = w17;
  3001. o[18] = w18;
  3002. if (c !== 0) {
  3003. o[19] = c;
  3004. out.length++;
  3005. }
  3006. return out;
  3007. };
  3008. // Polyfill comb
  3009. if (!Math.imul) {
  3010. comb10MulTo = smallMulTo;
  3011. }
  3012. function bigMulTo (self, num, out) {
  3013. out.negative = num.negative ^ self.negative;
  3014. out.length = self.length + num.length;
  3015. var carry = 0;
  3016. var hncarry = 0;
  3017. for (var k = 0; k < out.length - 1; k++) {
  3018. // Sum all words with the same `i + j = k` and accumulate `ncarry`,
  3019. // note that ncarry could be >= 0x3ffffff
  3020. var ncarry = hncarry;
  3021. hncarry = 0;
  3022. var rword = carry & 0x3ffffff;
  3023. var maxJ = Math.min(k, num.length - 1);
  3024. for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {
  3025. var i = k - j;
  3026. var a = self.words[i] | 0;
  3027. var b = num.words[j] | 0;
  3028. var r = a * b;
  3029. var lo = r & 0x3ffffff;
  3030. ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;
  3031. lo = (lo + rword) | 0;
  3032. rword = lo & 0x3ffffff;
  3033. ncarry = (ncarry + (lo >>> 26)) | 0;
  3034. hncarry += ncarry >>> 26;
  3035. ncarry &= 0x3ffffff;
  3036. }
  3037. out.words[k] = rword;
  3038. carry = ncarry;
  3039. ncarry = hncarry;
  3040. }
  3041. if (carry !== 0) {
  3042. out.words[k] = carry;
  3043. } else {
  3044. out.length--;
  3045. }
  3046. return out.strip();
  3047. }
  3048. function jumboMulTo (self, num, out) {
  3049. var fftm = new FFTM();
  3050. return fftm.mulp(self, num, out);
  3051. }
  3052. BN.prototype.mulTo = function mulTo (num, out) {
  3053. var res;
  3054. var len = this.length + num.length;
  3055. if (this.length === 10 && num.length === 10) {
  3056. res = comb10MulTo(this, num, out);
  3057. } else if (len < 63) {
  3058. res = smallMulTo(this, num, out);
  3059. } else if (len < 1024) {
  3060. res = bigMulTo(this, num, out);
  3061. } else {
  3062. res = jumboMulTo(this, num, out);
  3063. }
  3064. return res;
  3065. };
  3066. // Cooley-Tukey algorithm for FFT
  3067. // slightly revisited to rely on looping instead of recursion
  3068. function FFTM (x, y) {
  3069. this.x = x;
  3070. this.y = y;
  3071. }
  3072. FFTM.prototype.makeRBT = function makeRBT (N) {
  3073. var t = new Array(N);
  3074. var l = BN.prototype._countBits(N) - 1;
  3075. for (var i = 0; i < N; i++) {
  3076. t[i] = this.revBin(i, l, N);
  3077. }
  3078. return t;
  3079. };
  3080. // Returns binary-reversed representation of `x`
  3081. FFTM.prototype.revBin = function revBin (x, l, N) {
  3082. if (x === 0 || x === N - 1) return x;
  3083. var rb = 0;
  3084. for (var i = 0; i < l; i++) {
  3085. rb |= (x & 1) << (l - i - 1);
  3086. x >>= 1;
  3087. }
  3088. return rb;
  3089. };
  3090. // Performs "tweedling" phase, therefore 'emulating'
  3091. // behaviour of the recursive algorithm
  3092. FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {
  3093. for (var i = 0; i < N; i++) {
  3094. rtws[i] = rws[rbt[i]];
  3095. itws[i] = iws[rbt[i]];
  3096. }
  3097. };
  3098. FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {
  3099. this.permute(rbt, rws, iws, rtws, itws, N);
  3100. for (var s = 1; s < N; s <<= 1) {
  3101. var l = s << 1;
  3102. var rtwdf = Math.cos(2 * Math.PI / l);
  3103. var itwdf = Math.sin(2 * Math.PI / l);
  3104. for (var p = 0; p < N; p += l) {
  3105. var rtwdf_ = rtwdf;
  3106. var itwdf_ = itwdf;
  3107. for (var j = 0; j < s; j++) {
  3108. var re = rtws[p + j];
  3109. var ie = itws[p + j];
  3110. var ro = rtws[p + j + s];
  3111. var io = itws[p + j + s];
  3112. var rx = rtwdf_ * ro - itwdf_ * io;
  3113. io = rtwdf_ * io + itwdf_ * ro;
  3114. ro = rx;
  3115. rtws[p + j] = re + ro;
  3116. itws[p + j] = ie + io;
  3117. rtws[p + j + s] = re - ro;
  3118. itws[p + j + s] = ie - io;
  3119. /* jshint maxdepth : false */
  3120. if (j !== l) {
  3121. rx = rtwdf * rtwdf_ - itwdf * itwdf_;
  3122. itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;
  3123. rtwdf_ = rx;
  3124. }
  3125. }
  3126. }
  3127. }
  3128. };
  3129. FFTM.prototype.guessLen13b = function guessLen13b (n, m) {
  3130. var N = Math.max(m, n) | 1;
  3131. var odd = N & 1;
  3132. var i = 0;
  3133. for (N = N / 2 | 0; N; N = N >>> 1) {
  3134. i++;
  3135. }
  3136. return 1 << i + 1 + odd;
  3137. };
  3138. FFTM.prototype.conjugate = function conjugate (rws, iws, N) {
  3139. if (N <= 1) return;
  3140. for (var i = 0; i < N / 2; i++) {
  3141. var t = rws[i];
  3142. rws[i] = rws[N - i - 1];
  3143. rws[N - i - 1] = t;
  3144. t = iws[i];
  3145. iws[i] = -iws[N - i - 1];
  3146. iws[N - i - 1] = -t;
  3147. }
  3148. };
  3149. FFTM.prototype.normalize13b = function normalize13b (ws, N) {
  3150. var carry = 0;
  3151. for (var i = 0; i < N / 2; i++) {
  3152. var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +
  3153. Math.round(ws[2 * i] / N) +
  3154. carry;
  3155. ws[i] = w & 0x3ffffff;
  3156. if (w < 0x4000000) {
  3157. carry = 0;
  3158. } else {
  3159. carry = w / 0x4000000 | 0;
  3160. }
  3161. }
  3162. return ws;
  3163. };
  3164. FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {
  3165. var carry = 0;
  3166. for (var i = 0; i < len; i++) {
  3167. carry = carry + (ws[i] | 0);
  3168. rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;
  3169. rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;
  3170. }
  3171. // Pad with zeroes
  3172. for (i = 2 * len; i < N; ++i) {
  3173. rws[i] = 0;
  3174. }
  3175. assert(carry === 0);
  3176. assert((carry & ~0x1fff) === 0);
  3177. };
  3178. FFTM.prototype.stub = function stub (N) {
  3179. var ph = new Array(N);
  3180. for (var i = 0; i < N; i++) {
  3181. ph[i] = 0;
  3182. }
  3183. return ph;
  3184. };
  3185. FFTM.prototype.mulp = function mulp (x, y, out) {
  3186. var N = 2 * this.guessLen13b(x.length, y.length);
  3187. var rbt = this.makeRBT(N);
  3188. var _ = this.stub(N);
  3189. var rws = new Array(N);
  3190. var rwst = new Array(N);
  3191. var iwst = new Array(N);
  3192. var nrws = new Array(N);
  3193. var nrwst = new Array(N);
  3194. var niwst = new Array(N);
  3195. var rmws = out.words;
  3196. rmws.length = N;
  3197. this.convert13b(x.words, x.length, rws, N);
  3198. this.convert13b(y.words, y.length, nrws, N);
  3199. this.transform(rws, _, rwst, iwst, N, rbt);
  3200. this.transform(nrws, _, nrwst, niwst, N, rbt);
  3201. for (var i = 0; i < N; i++) {
  3202. var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
  3203. iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];
  3204. rwst[i] = rx;
  3205. }
  3206. this.conjugate(rwst, iwst, N);
  3207. this.transform(rwst, iwst, rmws, _, N, rbt);
  3208. this.conjugate(rmws, _, N);
  3209. this.normalize13b(rmws, N);
  3210. out.negative = x.negative ^ y.negative;
  3211. out.length = x.length + y.length;
  3212. return out.strip();
  3213. };
  3214. // Multiply `this` by `num`
  3215. BN.prototype.mul = function mul (num) {
  3216. var out = new BN(null);
  3217. out.words = new Array(this.length + num.length);
  3218. return this.mulTo(num, out);
  3219. };
  3220. // Multiply employing FFT
  3221. BN.prototype.mulf = function mulf (num) {
  3222. var out = new BN(null);
  3223. out.words = new Array(this.length + num.length);
  3224. return jumboMulTo(this, num, out);
  3225. };
  3226. // In-place Multiplication
  3227. BN.prototype.imul = function imul (num) {
  3228. return this.clone().mulTo(num, this);
  3229. };
  3230. BN.prototype.imuln = function imuln (num) {
  3231. assert(typeof num === 'number');
  3232. assert(num < 0x4000000);
  3233. // Carry
  3234. var carry = 0;
  3235. for (var i = 0; i < this.length; i++) {
  3236. var w = (this.words[i] | 0) * num;
  3237. var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);
  3238. carry >>= 26;
  3239. carry += (w / 0x4000000) | 0;
  3240. // NOTE: lo is 27bit maximum
  3241. carry += lo >>> 26;
  3242. this.words[i] = lo & 0x3ffffff;
  3243. }
  3244. if (carry !== 0) {
  3245. this.words[i] = carry;
  3246. this.length++;
  3247. }
  3248. return this;
  3249. };
  3250. BN.prototype.muln = function muln (num) {
  3251. return this.clone().imuln(num);
  3252. };
  3253. // `this` * `this`
  3254. BN.prototype.sqr = function sqr () {
  3255. return this.mul(this);
  3256. };
  3257. // `this` * `this` in-place
  3258. BN.prototype.isqr = function isqr () {
  3259. return this.imul(this.clone());
  3260. };
  3261. // Math.pow(`this`, `num`)
  3262. BN.prototype.pow = function pow (num) {
  3263. var w = toBitArray(num);
  3264. if (w.length === 0) return new BN(1);
  3265. // Skip leading zeroes
  3266. var res = this;
  3267. for (var i = 0; i < w.length; i++, res = res.sqr()) {
  3268. if (w[i] !== 0) break;
  3269. }
  3270. if (++i < w.length) {
  3271. for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {
  3272. if (w[i] === 0) continue;
  3273. res = res.mul(q);
  3274. }
  3275. }
  3276. return res;
  3277. };
  3278. // Shift-left in-place
  3279. BN.prototype.iushln = function iushln (bits) {
  3280. assert(typeof bits === 'number' && bits >= 0);
  3281. var r = bits % 26;
  3282. var s = (bits - r) / 26;
  3283. var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);
  3284. var i;
  3285. if (r !== 0) {
  3286. var carry = 0;
  3287. for (i = 0; i < this.length; i++) {
  3288. var newCarry = this.words[i] & carryMask;
  3289. var c = ((this.words[i] | 0) - newCarry) << r;
  3290. this.words[i] = c | carry;
  3291. carry = newCarry >>> (26 - r);
  3292. }
  3293. if (carry) {
  3294. this.words[i] = carry;
  3295. this.length++;
  3296. }
  3297. }
  3298. if (s !== 0) {
  3299. for (i = this.length - 1; i >= 0; i--) {
  3300. this.words[i + s] = this.words[i];
  3301. }
  3302. for (i = 0; i < s; i++) {
  3303. this.words[i] = 0;
  3304. }
  3305. this.length += s;
  3306. }
  3307. return this.strip();
  3308. };
  3309. BN.prototype.ishln = function ishln (bits) {
  3310. // TODO(indutny): implement me
  3311. assert(this.negative === 0);
  3312. return this.iushln(bits);
  3313. };
  3314. // Shift-right in-place
  3315. // NOTE: `hint` is a lowest bit before trailing zeroes
  3316. // NOTE: if `extended` is present - it will be filled with destroyed bits
  3317. BN.prototype.iushrn = function iushrn (bits, hint, extended) {
  3318. assert(typeof bits === 'number' && bits >= 0);
  3319. var h;
  3320. if (hint) {
  3321. h = (hint - (hint % 26)) / 26;
  3322. } else {
  3323. h = 0;
  3324. }
  3325. var r = bits % 26;
  3326. var s = Math.min((bits - r) / 26, this.length);
  3327. var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);
  3328. var maskedWords = extended;
  3329. h -= s;
  3330. h = Math.max(0, h);
  3331. // Extended mode, copy masked part
  3332. if (maskedWords) {
  3333. for (var i = 0; i < s; i++) {
  3334. maskedWords.words[i] = this.words[i];
  3335. }
  3336. maskedWords.length = s;
  3337. }
  3338. if (s === 0) {
  3339. // No-op, we should not move anything at all
  3340. } else if (this.length > s) {
  3341. this.length -= s;
  3342. for (i = 0; i < this.length; i++) {
  3343. this.words[i] = this.words[i + s];
  3344. }
  3345. } else {
  3346. this.words[0] = 0;
  3347. this.length = 1;
  3348. }
  3349. var carry = 0;
  3350. for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {
  3351. var word = this.words[i] | 0;
  3352. this.words[i] = (carry << (26 - r)) | (word >>> r);
  3353. carry = word & mask;
  3354. }
  3355. // Push carried bits as a mask
  3356. if (maskedWords && carry !== 0) {
  3357. maskedWords.words[maskedWords.length++] = carry;
  3358. }
  3359. if (this.length === 0) {
  3360. this.words[0] = 0;
  3361. this.length = 1;
  3362. }
  3363. return this.strip();
  3364. };
  3365. BN.prototype.ishrn = function ishrn (bits, hint, extended) {
  3366. // TODO(indutny): implement me
  3367. assert(this.negative === 0);
  3368. return this.iushrn(bits, hint, extended);
  3369. };
  3370. // Shift-left
  3371. BN.prototype.shln = function shln (bits) {
  3372. return this.clone().ishln(bits);
  3373. };
  3374. BN.prototype.ushln = function ushln (bits) {
  3375. return this.clone().iushln(bits);
  3376. };
  3377. // Shift-right
  3378. BN.prototype.shrn = function shrn (bits) {
  3379. return this.clone().ishrn(bits);
  3380. };
  3381. BN.prototype.ushrn = function ushrn (bits) {
  3382. return this.clone().iushrn(bits);
  3383. };
  3384. // Test if n bit is set
  3385. BN.prototype.testn = function testn (bit) {
  3386. assert(typeof bit === 'number' && bit >= 0);
  3387. var r = bit % 26;
  3388. var s = (bit - r) / 26;
  3389. var q = 1 << r;
  3390. // Fast case: bit is much higher than all existing words
  3391. if (this.length <= s) return false;
  3392. // Check bit and return
  3393. var w = this.words[s];
  3394. return !!(w & q);
  3395. };
  3396. // Return only lowers bits of number (in-place)
  3397. BN.prototype.imaskn = function imaskn (bits) {
  3398. assert(typeof bits === 'number' && bits >= 0);
  3399. var r = bits % 26;
  3400. var s = (bits - r) / 26;
  3401. assert(this.negative === 0, 'imaskn works only with positive numbers');
  3402. if (this.length <= s) {
  3403. return this;
  3404. }
  3405. if (r !== 0) {
  3406. s++;
  3407. }
  3408. this.length = Math.min(s, this.length);
  3409. if (r !== 0) {
  3410. var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);
  3411. this.words[this.length - 1] &= mask;
  3412. }
  3413. return this.strip();
  3414. };
  3415. // Return only lowers bits of number
  3416. BN.prototype.maskn = function maskn (bits) {
  3417. return this.clone().imaskn(bits);
  3418. };
  3419. // Add plain number `num` to `this`
  3420. BN.prototype.iaddn = function iaddn (num) {
  3421. assert(typeof num === 'number');
  3422. assert(num < 0x4000000);
  3423. if (num < 0) return this.isubn(-num);
  3424. // Possible sign change
  3425. if (this.negative !== 0) {
  3426. if (this.length === 1 && (this.words[0] | 0) < num) {
  3427. this.words[0] = num - (this.words[0] | 0);
  3428. this.negative = 0;
  3429. return this;
  3430. }
  3431. this.negative = 0;
  3432. this.isubn(num);
  3433. this.negative = 1;
  3434. return this;
  3435. }
  3436. // Add without checks
  3437. return this._iaddn(num);
  3438. };
  3439. BN.prototype._iaddn = function _iaddn (num) {
  3440. this.words[0] += num;
  3441. // Carry
  3442. for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {
  3443. this.words[i] -= 0x4000000;
  3444. if (i === this.length - 1) {
  3445. this.words[i + 1] = 1;
  3446. } else {
  3447. this.words[i + 1]++;
  3448. }
  3449. }
  3450. this.length = Math.max(this.length, i + 1);
  3451. return this;
  3452. };
  3453. // Subtract plain number `num` from `this`
  3454. BN.prototype.isubn = function isubn (num) {
  3455. assert(typeof num === 'number');
  3456. assert(num < 0x4000000);
  3457. if (num < 0) return this.iaddn(-num);
  3458. if (this.negative !== 0) {
  3459. this.negative = 0;
  3460. this.iaddn(num);
  3461. this.negative = 1;
  3462. return this;
  3463. }
  3464. this.words[0] -= num;
  3465. if (this.length === 1 && this.words[0] < 0) {
  3466. this.words[0] = -this.words[0];
  3467. this.negative = 1;
  3468. } else {
  3469. // Carry
  3470. for (var i = 0; i < this.length && this.words[i] < 0; i++) {
  3471. this.words[i] += 0x4000000;
  3472. this.words[i + 1] -= 1;
  3473. }
  3474. }
  3475. return this.strip();
  3476. };
  3477. BN.prototype.addn = function addn (num) {
  3478. return this.clone().iaddn(num);
  3479. };
  3480. BN.prototype.subn = function subn (num) {
  3481. return this.clone().isubn(num);
  3482. };
  3483. BN.prototype.iabs = function iabs () {
  3484. this.negative = 0;
  3485. return this;
  3486. };
  3487. BN.prototype.abs = function abs () {
  3488. return this.clone().iabs();
  3489. };
  3490. BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {
  3491. var len = num.length + shift;
  3492. var i;
  3493. this._expand(len);
  3494. var w;
  3495. var carry = 0;
  3496. for (i = 0; i < num.length; i++) {
  3497. w = (this.words[i + shift] | 0) + carry;
  3498. var right = (num.words[i] | 0) * mul;
  3499. w -= right & 0x3ffffff;
  3500. carry = (w >> 26) - ((right / 0x4000000) | 0);
  3501. this.words[i + shift] = w & 0x3ffffff;
  3502. }
  3503. for (; i < this.length - shift; i++) {
  3504. w = (this.words[i + shift] | 0) + carry;
  3505. carry = w >> 26;
  3506. this.words[i + shift] = w & 0x3ffffff;
  3507. }
  3508. if (carry === 0) return this.strip();
  3509. // Subtraction overflow
  3510. assert(carry === -1);
  3511. carry = 0;
  3512. for (i = 0; i < this.length; i++) {
  3513. w = -(this.words[i] | 0) + carry;
  3514. carry = w >> 26;
  3515. this.words[i] = w & 0x3ffffff;
  3516. }
  3517. this.negative = 1;
  3518. return this.strip();
  3519. };
  3520. BN.prototype._wordDiv = function _wordDiv (num, mode) {
  3521. var shift = this.length - num.length;
  3522. var a = this.clone();
  3523. var b = num;
  3524. // Normalize
  3525. var bhi = b.words[b.length - 1] | 0;
  3526. var bhiBits = this._countBits(bhi);
  3527. shift = 26 - bhiBits;
  3528. if (shift !== 0) {
  3529. b = b.ushln(shift);
  3530. a.iushln(shift);
  3531. bhi = b.words[b.length - 1] | 0;
  3532. }
  3533. // Initialize quotient
  3534. var m = a.length - b.length;
  3535. var q;
  3536. if (mode !== 'mod') {
  3537. q = new BN(null);
  3538. q.length = m + 1;
  3539. q.words = new Array(q.length);
  3540. for (var i = 0; i < q.length; i++) {
  3541. q.words[i] = 0;
  3542. }
  3543. }
  3544. var diff = a.clone()._ishlnsubmul(b, 1, m);
  3545. if (diff.negative === 0) {
  3546. a = diff;
  3547. if (q) {
  3548. q.words[m] = 1;
  3549. }
  3550. }
  3551. for (var j = m - 1; j >= 0; j--) {
  3552. var qj = (a.words[b.length + j] | 0) * 0x4000000 +
  3553. (a.words[b.length + j - 1] | 0);
  3554. // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max
  3555. // (0x7ffffff)
  3556. qj = Math.min((qj / bhi) | 0, 0x3ffffff);
  3557. a._ishlnsubmul(b, qj, j);
  3558. while (a.negative !== 0) {
  3559. qj--;
  3560. a.negative = 0;
  3561. a._ishlnsubmul(b, 1, j);
  3562. if (!a.isZero()) {
  3563. a.negative ^= 1;
  3564. }
  3565. }
  3566. if (q) {
  3567. q.words[j] = qj;
  3568. }
  3569. }
  3570. if (q) {
  3571. q.strip();
  3572. }
  3573. a.strip();
  3574. // Denormalize
  3575. if (mode !== 'div' && shift !== 0) {
  3576. a.iushrn(shift);
  3577. }
  3578. return {
  3579. div: q || null,
  3580. mod: a
  3581. };
  3582. };
  3583. // NOTE: 1) `mode` can be set to `mod` to request mod only,
  3584. // to `div` to request div only, or be absent to
  3585. // request both div & mod
  3586. // 2) `positive` is true if unsigned mod is requested
  3587. BN.prototype.divmod = function divmod (num, mode, positive) {
  3588. assert(!num.isZero());
  3589. if (this.isZero()) {
  3590. return {
  3591. div: new BN(0),
  3592. mod: new BN(0)
  3593. };
  3594. }
  3595. var div, mod, res;
  3596. if (this.negative !== 0 && num.negative === 0) {
  3597. res = this.neg().divmod(num, mode);
  3598. if (mode !== 'mod') {
  3599. div = res.div.neg();
  3600. }
  3601. if (mode !== 'div') {
  3602. mod = res.mod.neg();
  3603. if (positive && mod.negative !== 0) {
  3604. mod.iadd(num);
  3605. }
  3606. }
  3607. return {
  3608. div: div,
  3609. mod: mod
  3610. };
  3611. }
  3612. if (this.negative === 0 && num.negative !== 0) {
  3613. res = this.divmod(num.neg(), mode);
  3614. if (mode !== 'mod') {
  3615. div = res.div.neg();
  3616. }
  3617. return {
  3618. div: div,
  3619. mod: res.mod
  3620. };
  3621. }
  3622. if ((this.negative & num.negative) !== 0) {
  3623. res = this.neg().divmod(num.neg(), mode);
  3624. if (mode !== 'div') {
  3625. mod = res.mod.neg();
  3626. if (positive && mod.negative !== 0) {
  3627. mod.isub(num);
  3628. }
  3629. }
  3630. return {
  3631. div: res.div,
  3632. mod: mod
  3633. };
  3634. }
  3635. // Both numbers are positive at this point
  3636. // Strip both numbers to approximate shift value
  3637. if (num.length > this.length || this.cmp(num) < 0) {
  3638. return {
  3639. div: new BN(0),
  3640. mod: this
  3641. };
  3642. }
  3643. // Very short reduction
  3644. if (num.length === 1) {
  3645. if (mode === 'div') {
  3646. return {
  3647. div: this.divn(num.words[0]),
  3648. mod: null
  3649. };
  3650. }
  3651. if (mode === 'mod') {
  3652. return {
  3653. div: null,
  3654. mod: new BN(this.modn(num.words[0]))
  3655. };
  3656. }
  3657. return {
  3658. div: this.divn(num.words[0]),
  3659. mod: new BN(this.modn(num.words[0]))
  3660. };
  3661. }
  3662. return this._wordDiv(num, mode);
  3663. };
  3664. // Find `this` / `num`
  3665. BN.prototype.div = function div (num) {
  3666. return this.divmod(num, 'div', false).div;
  3667. };
  3668. // Find `this` % `num`
  3669. BN.prototype.mod = function mod (num) {
  3670. return this.divmod(num, 'mod', false).mod;
  3671. };
  3672. BN.prototype.umod = function umod (num) {
  3673. return this.divmod(num, 'mod', true).mod;
  3674. };
  3675. // Find Round(`this` / `num`)
  3676. BN.prototype.divRound = function divRound (num) {
  3677. var dm = this.divmod(num);
  3678. // Fast case - exact division
  3679. if (dm.mod.isZero()) return dm.div;
  3680. var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;
  3681. var half = num.ushrn(1);
  3682. var r2 = num.andln(1);
  3683. var cmp = mod.cmp(half);
  3684. // Round down
  3685. if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;
  3686. // Round up
  3687. return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);
  3688. };
  3689. BN.prototype.modn = function modn (num) {
  3690. assert(num <= 0x3ffffff);
  3691. var p = (1 << 26) % num;
  3692. var acc = 0;
  3693. for (var i = this.length - 1; i >= 0; i--) {
  3694. acc = (p * acc + (this.words[i] | 0)) % num;
  3695. }
  3696. return acc;
  3697. };
  3698. // In-place division by number
  3699. BN.prototype.idivn = function idivn (num) {
  3700. assert(num <= 0x3ffffff);
  3701. var carry = 0;
  3702. for (var i = this.length - 1; i >= 0; i--) {
  3703. var w = (this.words[i] | 0) + carry * 0x4000000;
  3704. this.words[i] = (w / num) | 0;
  3705. carry = w % num;
  3706. }
  3707. return this.strip();
  3708. };
  3709. BN.prototype.divn = function divn (num) {
  3710. return this.clone().idivn(num);
  3711. };
  3712. BN.prototype.egcd = function egcd (p) {
  3713. assert(p.negative === 0);
  3714. assert(!p.isZero());
  3715. var x = this;
  3716. var y = p.clone();
  3717. if (x.negative !== 0) {
  3718. x = x.umod(p);
  3719. } else {
  3720. x = x.clone();
  3721. }
  3722. // A * x + B * y = x
  3723. var A = new BN(1);
  3724. var B = new BN(0);
  3725. // C * x + D * y = y
  3726. var C = new BN(0);
  3727. var D = new BN(1);
  3728. var g = 0;
  3729. while (x.isEven() && y.isEven()) {
  3730. x.iushrn(1);
  3731. y.iushrn(1);
  3732. ++g;
  3733. }
  3734. var yp = y.clone();
  3735. var xp = x.clone();
  3736. while (!x.isZero()) {
  3737. for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
  3738. if (i > 0) {
  3739. x.iushrn(i);
  3740. while (i-- > 0) {
  3741. if (A.isOdd() || B.isOdd()) {
  3742. A.iadd(yp);
  3743. B.isub(xp);
  3744. }
  3745. A.iushrn(1);
  3746. B.iushrn(1);
  3747. }
  3748. }
  3749. for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
  3750. if (j > 0) {
  3751. y.iushrn(j);
  3752. while (j-- > 0) {
  3753. if (C.isOdd() || D.isOdd()) {
  3754. C.iadd(yp);
  3755. D.isub(xp);
  3756. }
  3757. C.iushrn(1);
  3758. D.iushrn(1);
  3759. }
  3760. }
  3761. if (x.cmp(y) >= 0) {
  3762. x.isub(y);
  3763. A.isub(C);
  3764. B.isub(D);
  3765. } else {
  3766. y.isub(x);
  3767. C.isub(A);
  3768. D.isub(B);
  3769. }
  3770. }
  3771. return {
  3772. a: C,
  3773. b: D,
  3774. gcd: y.iushln(g)
  3775. };
  3776. };
  3777. // This is reduced incarnation of the binary EEA
  3778. // above, designated to invert members of the
  3779. // _prime_ fields F(p) at a maximal speed
  3780. BN.prototype._invmp = function _invmp (p) {
  3781. assert(p.negative === 0);
  3782. assert(!p.isZero());
  3783. var a = this;
  3784. var b = p.clone();
  3785. if (a.negative !== 0) {
  3786. a = a.umod(p);
  3787. } else {
  3788. a = a.clone();
  3789. }
  3790. var x1 = new BN(1);
  3791. var x2 = new BN(0);
  3792. var delta = b.clone();
  3793. while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {
  3794. for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
  3795. if (i > 0) {
  3796. a.iushrn(i);
  3797. while (i-- > 0) {
  3798. if (x1.isOdd()) {
  3799. x1.iadd(delta);
  3800. }
  3801. x1.iushrn(1);
  3802. }
  3803. }
  3804. for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
  3805. if (j > 0) {
  3806. b.iushrn(j);
  3807. while (j-- > 0) {
  3808. if (x2.isOdd()) {
  3809. x2.iadd(delta);
  3810. }
  3811. x2.iushrn(1);
  3812. }
  3813. }
  3814. if (a.cmp(b) >= 0) {
  3815. a.isub(b);
  3816. x1.isub(x2);
  3817. } else {
  3818. b.isub(a);
  3819. x2.isub(x1);
  3820. }
  3821. }
  3822. var res;
  3823. if (a.cmpn(1) === 0) {
  3824. res = x1;
  3825. } else {
  3826. res = x2;
  3827. }
  3828. if (res.cmpn(0) < 0) {
  3829. res.iadd(p);
  3830. }
  3831. return res;
  3832. };
  3833. BN.prototype.gcd = function gcd (num) {
  3834. if (this.isZero()) return num.abs();
  3835. if (num.isZero()) return this.abs();
  3836. var a = this.clone();
  3837. var b = num.clone();
  3838. a.negative = 0;
  3839. b.negative = 0;
  3840. // Remove common factor of two
  3841. for (var shift = 0; a.isEven() && b.isEven(); shift++) {
  3842. a.iushrn(1);
  3843. b.iushrn(1);
  3844. }
  3845. do {
  3846. while (a.isEven()) {
  3847. a.iushrn(1);
  3848. }
  3849. while (b.isEven()) {
  3850. b.iushrn(1);
  3851. }
  3852. var r = a.cmp(b);
  3853. if (r < 0) {
  3854. // Swap `a` and `b` to make `a` always bigger than `b`
  3855. var t = a;
  3856. a = b;
  3857. b = t;
  3858. } else if (r === 0 || b.cmpn(1) === 0) {
  3859. break;
  3860. }
  3861. a.isub(b);
  3862. } while (true);
  3863. return b.iushln(shift);
  3864. };
  3865. // Invert number in the field F(num)
  3866. BN.prototype.invm = function invm (num) {
  3867. return this.egcd(num).a.umod(num);
  3868. };
  3869. BN.prototype.isEven = function isEven () {
  3870. return (this.words[0] & 1) === 0;
  3871. };
  3872. BN.prototype.isOdd = function isOdd () {
  3873. return (this.words[0] & 1) === 1;
  3874. };
  3875. // And first word and num
  3876. BN.prototype.andln = function andln (num) {
  3877. return this.words[0] & num;
  3878. };
  3879. // Increment at the bit position in-line
  3880. BN.prototype.bincn = function bincn (bit) {
  3881. assert(typeof bit === 'number');
  3882. var r = bit % 26;
  3883. var s = (bit - r) / 26;
  3884. var q = 1 << r;
  3885. // Fast case: bit is much higher than all existing words
  3886. if (this.length <= s) {
  3887. this._expand(s + 1);
  3888. this.words[s] |= q;
  3889. return this;
  3890. }
  3891. // Add bit and propagate, if needed
  3892. var carry = q;
  3893. for (var i = s; carry !== 0 && i < this.length; i++) {
  3894. var w = this.words[i] | 0;
  3895. w += carry;
  3896. carry = w >>> 26;
  3897. w &= 0x3ffffff;
  3898. this.words[i] = w;
  3899. }
  3900. if (carry !== 0) {
  3901. this.words[i] = carry;
  3902. this.length++;
  3903. }
  3904. return this;
  3905. };
  3906. BN.prototype.isZero = function isZero () {
  3907. return this.length === 1 && this.words[0] === 0;
  3908. };
  3909. BN.prototype.cmpn = function cmpn (num) {
  3910. var negative = num < 0;
  3911. if (this.negative !== 0 && !negative) return -1;
  3912. if (this.negative === 0 && negative) return 1;
  3913. this.strip();
  3914. var res;
  3915. if (this.length > 1) {
  3916. res = 1;
  3917. } else {
  3918. if (negative) {
  3919. num = -num;
  3920. }
  3921. assert(num <= 0x3ffffff, 'Number is too big');
  3922. var w = this.words[0] | 0;
  3923. res = w === num ? 0 : w < num ? -1 : 1;
  3924. }
  3925. if (this.negative !== 0) return -res | 0;
  3926. return res;
  3927. };
  3928. // Compare two numbers and return:
  3929. // 1 - if `this` > `num`
  3930. // 0 - if `this` == `num`
  3931. // -1 - if `this` < `num`
  3932. BN.prototype.cmp = function cmp (num) {
  3933. if (this.negative !== 0 && num.negative === 0) return -1;
  3934. if (this.negative === 0 && num.negative !== 0) return 1;
  3935. var res = this.ucmp(num);
  3936. if (this.negative !== 0) return -res | 0;
  3937. return res;
  3938. };
  3939. // Unsigned comparison
  3940. BN.prototype.ucmp = function ucmp (num) {
  3941. // At this point both numbers have the same sign
  3942. if (this.length > num.length) return 1;
  3943. if (this.length < num.length) return -1;
  3944. var res = 0;
  3945. for (var i = this.length - 1; i >= 0; i--) {
  3946. var a = this.words[i] | 0;
  3947. var b = num.words[i] | 0;
  3948. if (a === b) continue;
  3949. if (a < b) {
  3950. res = -1;
  3951. } else if (a > b) {
  3952. res = 1;
  3953. }
  3954. break;
  3955. }
  3956. return res;
  3957. };
  3958. BN.prototype.gtn = function gtn (num) {
  3959. return this.cmpn(num) === 1;
  3960. };
  3961. BN.prototype.gt = function gt (num) {
  3962. return this.cmp(num) === 1;
  3963. };
  3964. BN.prototype.gten = function gten (num) {
  3965. return this.cmpn(num) >= 0;
  3966. };
  3967. BN.prototype.gte = function gte (num) {
  3968. return this.cmp(num) >= 0;
  3969. };
  3970. BN.prototype.ltn = function ltn (num) {
  3971. return this.cmpn(num) === -1;
  3972. };
  3973. BN.prototype.lt = function lt (num) {
  3974. return this.cmp(num) === -1;
  3975. };
  3976. BN.prototype.lten = function lten (num) {
  3977. return this.cmpn(num) <= 0;
  3978. };
  3979. BN.prototype.lte = function lte (num) {
  3980. return this.cmp(num) <= 0;
  3981. };
  3982. BN.prototype.eqn = function eqn (num) {
  3983. return this.cmpn(num) === 0;
  3984. };
  3985. BN.prototype.eq = function eq (num) {
  3986. return this.cmp(num) === 0;
  3987. };
  3988. //
  3989. // A reduce context, could be using montgomery or something better, depending
  3990. // on the `m` itself.
  3991. //
  3992. BN.red = function red (num) {
  3993. return new Red(num);
  3994. };
  3995. BN.prototype.toRed = function toRed (ctx) {
  3996. assert(!this.red, 'Already a number in reduction context');
  3997. assert(this.negative === 0, 'red works only with positives');
  3998. return ctx.convertTo(this)._forceRed(ctx);
  3999. };
  4000. BN.prototype.fromRed = function fromRed () {
  4001. assert(this.red, 'fromRed works only with numbers in reduction context');
  4002. return this.red.convertFrom(this);
  4003. };
  4004. BN.prototype._forceRed = function _forceRed (ctx) {
  4005. this.red = ctx;
  4006. return this;
  4007. };
  4008. BN.prototype.forceRed = function forceRed (ctx) {
  4009. assert(!this.red, 'Already a number in reduction context');
  4010. return this._forceRed(ctx);
  4011. };
  4012. BN.prototype.redAdd = function redAdd (num) {
  4013. assert(this.red, 'redAdd works only with red numbers');
  4014. return this.red.add(this, num);
  4015. };
  4016. BN.prototype.redIAdd = function redIAdd (num) {
  4017. assert(this.red, 'redIAdd works only with red numbers');
  4018. return this.red.iadd(this, num);
  4019. };
  4020. BN.prototype.redSub = function redSub (num) {
  4021. assert(this.red, 'redSub works only with red numbers');
  4022. return this.red.sub(this, num);
  4023. };
  4024. BN.prototype.redISub = function redISub (num) {
  4025. assert(this.red, 'redISub works only with red numbers');
  4026. return this.red.isub(this, num);
  4027. };
  4028. BN.prototype.redShl = function redShl (num) {
  4029. assert(this.red, 'redShl works only with red numbers');
  4030. return this.red.shl(this, num);
  4031. };
  4032. BN.prototype.redMul = function redMul (num) {
  4033. assert(this.red, 'redMul works only with red numbers');
  4034. this.red._verify2(this, num);
  4035. return this.red.mul(this, num);
  4036. };
  4037. BN.prototype.redIMul = function redIMul (num) {
  4038. assert(this.red, 'redMul works only with red numbers');
  4039. this.red._verify2(this, num);
  4040. return this.red.imul(this, num);
  4041. };
  4042. BN.prototype.redSqr = function redSqr () {
  4043. assert(this.red, 'redSqr works only with red numbers');
  4044. this.red._verify1(this);
  4045. return this.red.sqr(this);
  4046. };
  4047. BN.prototype.redISqr = function redISqr () {
  4048. assert(this.red, 'redISqr works only with red numbers');
  4049. this.red._verify1(this);
  4050. return this.red.isqr(this);
  4051. };
  4052. // Square root over p
  4053. BN.prototype.redSqrt = function redSqrt () {
  4054. assert(this.red, 'redSqrt works only with red numbers');
  4055. this.red._verify1(this);
  4056. return this.red.sqrt(this);
  4057. };
  4058. BN.prototype.redInvm = function redInvm () {
  4059. assert(this.red, 'redInvm works only with red numbers');
  4060. this.red._verify1(this);
  4061. return this.red.invm(this);
  4062. };
  4063. // Return negative clone of `this` % `red modulo`
  4064. BN.prototype.redNeg = function redNeg () {
  4065. assert(this.red, 'redNeg works only with red numbers');
  4066. this.red._verify1(this);
  4067. return this.red.neg(this);
  4068. };
  4069. BN.prototype.redPow = function redPow (num) {
  4070. assert(this.red && !num.red, 'redPow(normalNum)');
  4071. this.red._verify1(this);
  4072. return this.red.pow(this, num);
  4073. };
  4074. // Prime numbers with efficient reduction
  4075. var primes = {
  4076. k256: null,
  4077. p224: null,
  4078. p192: null,
  4079. p25519: null
  4080. };
  4081. // Pseudo-Mersenne prime
  4082. function MPrime (name, p) {
  4083. // P = 2 ^ N - K
  4084. this.name = name;
  4085. this.p = new BN(p, 16);
  4086. this.n = this.p.bitLength();
  4087. this.k = new BN(1).iushln(this.n).isub(this.p);
  4088. this.tmp = this._tmp();
  4089. }
  4090. MPrime.prototype._tmp = function _tmp () {
  4091. var tmp = new BN(null);
  4092. tmp.words = new Array(Math.ceil(this.n / 13));
  4093. return tmp;
  4094. };
  4095. MPrime.prototype.ireduce = function ireduce (num) {
  4096. // Assumes that `num` is less than `P^2`
  4097. // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)
  4098. var r = num;
  4099. var rlen;
  4100. do {
  4101. this.split(r, this.tmp);
  4102. r = this.imulK(r);
  4103. r = r.iadd(this.tmp);
  4104. rlen = r.bitLength();
  4105. } while (rlen > this.n);
  4106. var cmp = rlen < this.n ? -1 : r.ucmp(this.p);
  4107. if (cmp === 0) {
  4108. r.words[0] = 0;
  4109. r.length = 1;
  4110. } else if (cmp > 0) {
  4111. r.isub(this.p);
  4112. } else {
  4113. r.strip();
  4114. }
  4115. return r;
  4116. };
  4117. MPrime.prototype.split = function split (input, out) {
  4118. input.iushrn(this.n, 0, out);
  4119. };
  4120. MPrime.prototype.imulK = function imulK (num) {
  4121. return num.imul(this.k);
  4122. };
  4123. function K256 () {
  4124. MPrime.call(
  4125. this,
  4126. 'k256',
  4127. 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');
  4128. }
  4129. inherits(K256, MPrime);
  4130. K256.prototype.split = function split (input, output) {
  4131. // 256 = 9 * 26 + 22
  4132. var mask = 0x3fffff;
  4133. var outLen = Math.min(input.length, 9);
  4134. for (var i = 0; i < outLen; i++) {
  4135. output.words[i] = input.words[i];
  4136. }
  4137. output.length = outLen;
  4138. if (input.length <= 9) {
  4139. input.words[0] = 0;
  4140. input.length = 1;
  4141. return;
  4142. }
  4143. // Shift by 9 limbs
  4144. var prev = input.words[9];
  4145. output.words[output.length++] = prev & mask;
  4146. for (i = 10; i < input.length; i++) {
  4147. var next = input.words[i] | 0;
  4148. input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);
  4149. prev = next;
  4150. }
  4151. prev >>>= 22;
  4152. input.words[i - 10] = prev;
  4153. if (prev === 0 && input.length > 10) {
  4154. input.length -= 10;
  4155. } else {
  4156. input.length -= 9;
  4157. }
  4158. };
  4159. K256.prototype.imulK = function imulK (num) {
  4160. // K = 0x1000003d1 = [ 0x40, 0x3d1 ]
  4161. num.words[num.length] = 0;
  4162. num.words[num.length + 1] = 0;
  4163. num.length += 2;
  4164. // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390
  4165. var lo = 0;
  4166. for (var i = 0; i < num.length; i++) {
  4167. var w = num.words[i] | 0;
  4168. lo += w * 0x3d1;
  4169. num.words[i] = lo & 0x3ffffff;
  4170. lo = w * 0x40 + ((lo / 0x4000000) | 0);
  4171. }
  4172. // Fast length reduction
  4173. if (num.words[num.length - 1] === 0) {
  4174. num.length--;
  4175. if (num.words[num.length - 1] === 0) {
  4176. num.length--;
  4177. }
  4178. }
  4179. return num;
  4180. };
  4181. function P224 () {
  4182. MPrime.call(
  4183. this,
  4184. 'p224',
  4185. 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');
  4186. }
  4187. inherits(P224, MPrime);
  4188. function P192 () {
  4189. MPrime.call(
  4190. this,
  4191. 'p192',
  4192. 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');
  4193. }
  4194. inherits(P192, MPrime);
  4195. function P25519 () {
  4196. // 2 ^ 255 - 19
  4197. MPrime.call(
  4198. this,
  4199. '25519',
  4200. '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');
  4201. }
  4202. inherits(P25519, MPrime);
  4203. P25519.prototype.imulK = function imulK (num) {
  4204. // K = 0x13
  4205. var carry = 0;
  4206. for (var i = 0; i < num.length; i++) {
  4207. var hi = (num.words[i] | 0) * 0x13 + carry;
  4208. var lo = hi & 0x3ffffff;
  4209. hi >>>= 26;
  4210. num.words[i] = lo;
  4211. carry = hi;
  4212. }
  4213. if (carry !== 0) {
  4214. num.words[num.length++] = carry;
  4215. }
  4216. return num;
  4217. };
  4218. // Exported mostly for testing purposes, use plain name instead
  4219. BN._prime = function prime (name) {
  4220. // Cached version of prime
  4221. if (primes[name]) return primes[name];
  4222. var prime;
  4223. if (name === 'k256') {
  4224. prime = new K256();
  4225. } else if (name === 'p224') {
  4226. prime = new P224();
  4227. } else if (name === 'p192') {
  4228. prime = new P192();
  4229. } else if (name === 'p25519') {
  4230. prime = new P25519();
  4231. } else {
  4232. throw new Error('Unknown prime ' + name);
  4233. }
  4234. primes[name] = prime;
  4235. return prime;
  4236. };
  4237. //
  4238. // Base reduction engine
  4239. //
  4240. function Red (m) {
  4241. if (typeof m === 'string') {
  4242. var prime = BN._prime(m);
  4243. this.m = prime.p;
  4244. this.prime = prime;
  4245. } else {
  4246. assert(m.gtn(1), 'modulus must be greater than 1');
  4247. this.m = m;
  4248. this.prime = null;
  4249. }
  4250. }
  4251. Red.prototype._verify1 = function _verify1 (a) {
  4252. assert(a.negative === 0, 'red works only with positives');
  4253. assert(a.red, 'red works only with red numbers');
  4254. };
  4255. Red.prototype._verify2 = function _verify2 (a, b) {
  4256. assert((a.negative | b.negative) === 0, 'red works only with positives');
  4257. assert(a.red && a.red === b.red,
  4258. 'red works only with red numbers');
  4259. };
  4260. Red.prototype.imod = function imod (a) {
  4261. if (this.prime) return this.prime.ireduce(a)._forceRed(this);
  4262. return a.umod(this.m)._forceRed(this);
  4263. };
  4264. Red.prototype.neg = function neg (a) {
  4265. if (a.isZero()) {
  4266. return a.clone();
  4267. }
  4268. return this.m.sub(a)._forceRed(this);
  4269. };
  4270. Red.prototype.add = function add (a, b) {
  4271. this._verify2(a, b);
  4272. var res = a.add(b);
  4273. if (res.cmp(this.m) >= 0) {
  4274. res.isub(this.m);
  4275. }
  4276. return res._forceRed(this);
  4277. };
  4278. Red.prototype.iadd = function iadd (a, b) {
  4279. this._verify2(a, b);
  4280. var res = a.iadd(b);
  4281. if (res.cmp(this.m) >= 0) {
  4282. res.isub(this.m);
  4283. }
  4284. return res;
  4285. };
  4286. Red.prototype.sub = function sub (a, b) {
  4287. this._verify2(a, b);
  4288. var res = a.sub(b);
  4289. if (res.cmpn(0) < 0) {
  4290. res.iadd(this.m);
  4291. }
  4292. return res._forceRed(this);
  4293. };
  4294. Red.prototype.isub = function isub (a, b) {
  4295. this._verify2(a, b);
  4296. var res = a.isub(b);
  4297. if (res.cmpn(0) < 0) {
  4298. res.iadd(this.m);
  4299. }
  4300. return res;
  4301. };
  4302. Red.prototype.shl = function shl (a, num) {
  4303. this._verify1(a);
  4304. return this.imod(a.ushln(num));
  4305. };
  4306. Red.prototype.imul = function imul (a, b) {
  4307. this._verify2(a, b);
  4308. return this.imod(a.imul(b));
  4309. };
  4310. Red.prototype.mul = function mul (a, b) {
  4311. this._verify2(a, b);
  4312. return this.imod(a.mul(b));
  4313. };
  4314. Red.prototype.isqr = function isqr (a) {
  4315. return this.imul(a, a.clone());
  4316. };
  4317. Red.prototype.sqr = function sqr (a) {
  4318. return this.mul(a, a);
  4319. };
  4320. Red.prototype.sqrt = function sqrt (a) {
  4321. if (a.isZero()) return a.clone();
  4322. var mod3 = this.m.andln(3);
  4323. assert(mod3 % 2 === 1);
  4324. // Fast case
  4325. if (mod3 === 3) {
  4326. var pow = this.m.add(new BN(1)).iushrn(2);
  4327. return this.pow(a, pow);
  4328. }
  4329. // Tonelli-Shanks algorithm (Totally unoptimized and slow)
  4330. //
  4331. // Find Q and S, that Q * 2 ^ S = (P - 1)
  4332. var q = this.m.subn(1);
  4333. var s = 0;
  4334. while (!q.isZero() && q.andln(1) === 0) {
  4335. s++;
  4336. q.iushrn(1);
  4337. }
  4338. assert(!q.isZero());
  4339. var one = new BN(1).toRed(this);
  4340. var nOne = one.redNeg();
  4341. // Find quadratic non-residue
  4342. // NOTE: Max is such because of generalized Riemann hypothesis.
  4343. var lpow = this.m.subn(1).iushrn(1);
  4344. var z = this.m.bitLength();
  4345. z = new BN(2 * z * z).toRed(this);
  4346. while (this.pow(z, lpow).cmp(nOne) !== 0) {
  4347. z.redIAdd(nOne);
  4348. }
  4349. var c = this.pow(z, q);
  4350. var r = this.pow(a, q.addn(1).iushrn(1));
  4351. var t = this.pow(a, q);
  4352. var m = s;
  4353. while (t.cmp(one) !== 0) {
  4354. var tmp = t;
  4355. for (var i = 0; tmp.cmp(one) !== 0; i++) {
  4356. tmp = tmp.redSqr();
  4357. }
  4358. assert(i < m);
  4359. var b = this.pow(c, new BN(1).iushln(m - i - 1));
  4360. r = r.redMul(b);
  4361. c = b.redSqr();
  4362. t = t.redMul(c);
  4363. m = i;
  4364. }
  4365. return r;
  4366. };
  4367. Red.prototype.invm = function invm (a) {
  4368. var inv = a._invmp(this.m);
  4369. if (inv.negative !== 0) {
  4370. inv.negative = 0;
  4371. return this.imod(inv).redNeg();
  4372. } else {
  4373. return this.imod(inv);
  4374. }
  4375. };
  4376. Red.prototype.pow = function pow (a, num) {
  4377. if (num.isZero()) return new BN(1).toRed(this);
  4378. if (num.cmpn(1) === 0) return a.clone();
  4379. var windowSize = 4;
  4380. var wnd = new Array(1 << windowSize);
  4381. wnd[0] = new BN(1).toRed(this);
  4382. wnd[1] = a;
  4383. for (var i = 2; i < wnd.length; i++) {
  4384. wnd[i] = this.mul(wnd[i - 1], a);
  4385. }
  4386. var res = wnd[0];
  4387. var current = 0;
  4388. var currentLen = 0;
  4389. var start = num.bitLength() % 26;
  4390. if (start === 0) {
  4391. start = 26;
  4392. }
  4393. for (i = num.length - 1; i >= 0; i--) {
  4394. var word = num.words[i];
  4395. for (var j = start - 1; j >= 0; j--) {
  4396. var bit = (word >> j) & 1;
  4397. if (res !== wnd[0]) {
  4398. res = this.sqr(res);
  4399. }
  4400. if (bit === 0 && current === 0) {
  4401. currentLen = 0;
  4402. continue;
  4403. }
  4404. current <<= 1;
  4405. current |= bit;
  4406. currentLen++;
  4407. if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;
  4408. res = this.mul(res, wnd[current]);
  4409. currentLen = 0;
  4410. current = 0;
  4411. }
  4412. start = 26;
  4413. }
  4414. return res;
  4415. };
  4416. Red.prototype.convertTo = function convertTo (num) {
  4417. var r = num.umod(this.m);
  4418. return r === num ? r.clone() : r;
  4419. };
  4420. Red.prototype.convertFrom = function convertFrom (num) {
  4421. var res = num.clone();
  4422. res.red = null;
  4423. return res;
  4424. };
  4425. //
  4426. // Montgomery method engine
  4427. //
  4428. BN.mont = function mont (num) {
  4429. return new Mont(num);
  4430. };
  4431. function Mont (m) {
  4432. Red.call(this, m);
  4433. this.shift = this.m.bitLength();
  4434. if (this.shift % 26 !== 0) {
  4435. this.shift += 26 - (this.shift % 26);
  4436. }
  4437. this.r = new BN(1).iushln(this.shift);
  4438. this.r2 = this.imod(this.r.sqr());
  4439. this.rinv = this.r._invmp(this.m);
  4440. this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);
  4441. this.minv = this.minv.umod(this.r);
  4442. this.minv = this.r.sub(this.minv);
  4443. }
  4444. inherits(Mont, Red);
  4445. Mont.prototype.convertTo = function convertTo (num) {
  4446. return this.imod(num.ushln(this.shift));
  4447. };
  4448. Mont.prototype.convertFrom = function convertFrom (num) {
  4449. var r = this.imod(num.mul(this.rinv));
  4450. r.red = null;
  4451. return r;
  4452. };
  4453. Mont.prototype.imul = function imul (a, b) {
  4454. if (a.isZero() || b.isZero()) {
  4455. a.words[0] = 0;
  4456. a.length = 1;
  4457. return a;
  4458. }
  4459. var t = a.imul(b);
  4460. var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
  4461. var u = t.isub(c).iushrn(this.shift);
  4462. var res = u;
  4463. if (u.cmp(this.m) >= 0) {
  4464. res = u.isub(this.m);
  4465. } else if (u.cmpn(0) < 0) {
  4466. res = u.iadd(this.m);
  4467. }
  4468. return res._forceRed(this);
  4469. };
  4470. Mont.prototype.mul = function mul (a, b) {
  4471. if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);
  4472. var t = a.mul(b);
  4473. var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
  4474. var u = t.isub(c).iushrn(this.shift);
  4475. var res = u;
  4476. if (u.cmp(this.m) >= 0) {
  4477. res = u.isub(this.m);
  4478. } else if (u.cmpn(0) < 0) {
  4479. res = u.iadd(this.m);
  4480. }
  4481. return res._forceRed(this);
  4482. };
  4483. Mont.prototype.invm = function invm (a) {
  4484. // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R
  4485. var res = this.imod(a._invmp(this.m).mul(this.r2));
  4486. return res._forceRed(this);
  4487. };
  4488. })(typeof module === 'undefined' || module, this);
  4489. },{"buffer":27}],26:[function(require,module,exports){
  4490. var r;
  4491. module.exports = function rand(len) {
  4492. if (!r)
  4493. r = new Rand(null);
  4494. return r.generate(len);
  4495. };
  4496. function Rand(rand) {
  4497. this.rand = rand;
  4498. }
  4499. module.exports.Rand = Rand;
  4500. Rand.prototype.generate = function generate(len) {
  4501. return this._rand(len);
  4502. };
  4503. // Emulate crypto API using randy
  4504. Rand.prototype._rand = function _rand(n) {
  4505. if (this.rand.getBytes)
  4506. return this.rand.getBytes(n);
  4507. var res = new Uint8Array(n);
  4508. for (var i = 0; i < res.length; i++)
  4509. res[i] = this.rand.getByte();
  4510. return res;
  4511. };
  4512. if (typeof self === 'object') {
  4513. if (self.crypto && self.crypto.getRandomValues) {
  4514. // Modern browsers
  4515. Rand.prototype._rand = function _rand(n) {
  4516. var arr = new Uint8Array(n);
  4517. self.crypto.getRandomValues(arr);
  4518. return arr;
  4519. };
  4520. } else if (self.msCrypto && self.msCrypto.getRandomValues) {
  4521. // IE
  4522. Rand.prototype._rand = function _rand(n) {
  4523. var arr = new Uint8Array(n);
  4524. self.msCrypto.getRandomValues(arr);
  4525. return arr;
  4526. };
  4527. // Safari's WebWorkers do not have `crypto`
  4528. } else if (typeof window === 'object') {
  4529. // Old junk
  4530. Rand.prototype._rand = function() {
  4531. throw new Error('Not implemented yet');
  4532. };
  4533. }
  4534. } else {
  4535. // Node.js or Web worker with no crypto support
  4536. try {
  4537. var crypto = require('crypto');
  4538. if (typeof crypto.randomBytes !== 'function')
  4539. throw new Error('Not supported');
  4540. Rand.prototype._rand = function _rand(n) {
  4541. return crypto.randomBytes(n);
  4542. };
  4543. } catch (e) {
  4544. }
  4545. }
  4546. },{"crypto":27}],27:[function(require,module,exports){
  4547. arguments[4][9][0].apply(exports,arguments)
  4548. },{"dup":9}],28:[function(require,module,exports){
  4549. (function (Buffer){
  4550. // based on the aes implimentation in triple sec
  4551. // https://github.com/keybase/triplesec
  4552. // which is in turn based on the one from crypto-js
  4553. // https://code.google.com/p/crypto-js/
  4554. var uint_max = Math.pow(2, 32)
  4555. function fixup_uint32 (x) {
  4556. var ret, x_pos
  4557. ret = x > uint_max || x < 0 ? (x_pos = Math.abs(x) % uint_max, x < 0 ? uint_max - x_pos : x_pos) : x
  4558. return ret
  4559. }
  4560. function scrub_vec (v) {
  4561. for (var i = 0; i < v.length; v++) {
  4562. v[i] = 0
  4563. }
  4564. return false
  4565. }
  4566. function Global () {
  4567. this.SBOX = []
  4568. this.INV_SBOX = []
  4569. this.SUB_MIX = [[], [], [], []]
  4570. this.INV_SUB_MIX = [[], [], [], []]
  4571. this.init()
  4572. this.RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]
  4573. }
  4574. Global.prototype.init = function () {
  4575. var d, i, sx, t, x, x2, x4, x8, xi, _i
  4576. d = (function () {
  4577. var _i, _results
  4578. _results = []
  4579. for (i = _i = 0; _i < 256; i = ++_i) {
  4580. if (i < 128) {
  4581. _results.push(i << 1)
  4582. } else {
  4583. _results.push((i << 1) ^ 0x11b)
  4584. }
  4585. }
  4586. return _results
  4587. })()
  4588. x = 0
  4589. xi = 0
  4590. for (i = _i = 0; _i < 256; i = ++_i) {
  4591. sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)
  4592. sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63
  4593. this.SBOX[x] = sx
  4594. this.INV_SBOX[sx] = x
  4595. x2 = d[x]
  4596. x4 = d[x2]
  4597. x8 = d[x4]
  4598. t = (d[sx] * 0x101) ^ (sx * 0x1010100)
  4599. this.SUB_MIX[0][x] = (t << 24) | (t >>> 8)
  4600. this.SUB_MIX[1][x] = (t << 16) | (t >>> 16)
  4601. this.SUB_MIX[2][x] = (t << 8) | (t >>> 24)
  4602. this.SUB_MIX[3][x] = t
  4603. t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)
  4604. this.INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)
  4605. this.INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)
  4606. this.INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)
  4607. this.INV_SUB_MIX[3][sx] = t
  4608. if (x === 0) {
  4609. x = xi = 1
  4610. } else {
  4611. x = x2 ^ d[d[d[x8 ^ x2]]]
  4612. xi ^= d[d[xi]]
  4613. }
  4614. }
  4615. return true
  4616. }
  4617. var G = new Global()
  4618. AES.blockSize = 4 * 4
  4619. AES.prototype.blockSize = AES.blockSize
  4620. AES.keySize = 256 / 8
  4621. AES.prototype.keySize = AES.keySize
  4622. function bufferToArray (buf) {
  4623. var len = buf.length / 4
  4624. var out = new Array(len)
  4625. var i = -1
  4626. while (++i < len) {
  4627. out[i] = buf.readUInt32BE(i * 4)
  4628. }
  4629. return out
  4630. }
  4631. function AES (key) {
  4632. this._key = bufferToArray(key)
  4633. this._doReset()
  4634. }
  4635. AES.prototype._doReset = function () {
  4636. var invKsRow, keySize, keyWords, ksRow, ksRows, t
  4637. keyWords = this._key
  4638. keySize = keyWords.length
  4639. this._nRounds = keySize + 6
  4640. ksRows = (this._nRounds + 1) * 4
  4641. this._keySchedule = []
  4642. for (ksRow = 0; ksRow < ksRows; ksRow++) {
  4643. this._keySchedule[ksRow] = ksRow < keySize ? keyWords[ksRow] : (t = this._keySchedule[ksRow - 1], (ksRow % keySize) === 0 ? (t = (t << 8) | (t >>> 24), t = (G.SBOX[t >>> 24] << 24) | (G.SBOX[(t >>> 16) & 0xff] << 16) | (G.SBOX[(t >>> 8) & 0xff] << 8) | G.SBOX[t & 0xff], t ^= G.RCON[(ksRow / keySize) | 0] << 24) : keySize > 6 && ksRow % keySize === 4 ? t = (G.SBOX[t >>> 24] << 24) | (G.SBOX[(t >>> 16) & 0xff] << 16) | (G.SBOX[(t >>> 8) & 0xff] << 8) | G.SBOX[t & 0xff] : void 0, this._keySchedule[ksRow - keySize] ^ t)
  4644. }
  4645. this._invKeySchedule = []
  4646. for (invKsRow = 0; invKsRow < ksRows; invKsRow++) {
  4647. ksRow = ksRows - invKsRow
  4648. t = this._keySchedule[ksRow - (invKsRow % 4 ? 0 : 4)]
  4649. this._invKeySchedule[invKsRow] = invKsRow < 4 || ksRow <= 4 ? t : G.INV_SUB_MIX[0][G.SBOX[t >>> 24]] ^ G.INV_SUB_MIX[1][G.SBOX[(t >>> 16) & 0xff]] ^ G.INV_SUB_MIX[2][G.SBOX[(t >>> 8) & 0xff]] ^ G.INV_SUB_MIX[3][G.SBOX[t & 0xff]]
  4650. }
  4651. return true
  4652. }
  4653. AES.prototype.encryptBlock = function (M) {
  4654. M = bufferToArray(new Buffer(M))
  4655. var out = this._doCryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX)
  4656. var buf = new Buffer(16)
  4657. buf.writeUInt32BE(out[0], 0)
  4658. buf.writeUInt32BE(out[1], 4)
  4659. buf.writeUInt32BE(out[2], 8)
  4660. buf.writeUInt32BE(out[3], 12)
  4661. return buf
  4662. }
  4663. AES.prototype.decryptBlock = function (M) {
  4664. M = bufferToArray(new Buffer(M))
  4665. var temp = [M[3], M[1]]
  4666. M[1] = temp[0]
  4667. M[3] = temp[1]
  4668. var out = this._doCryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX)
  4669. var buf = new Buffer(16)
  4670. buf.writeUInt32BE(out[0], 0)
  4671. buf.writeUInt32BE(out[3], 4)
  4672. buf.writeUInt32BE(out[2], 8)
  4673. buf.writeUInt32BE(out[1], 12)
  4674. return buf
  4675. }
  4676. AES.prototype.scrub = function () {
  4677. scrub_vec(this._keySchedule)
  4678. scrub_vec(this._invKeySchedule)
  4679. scrub_vec(this._key)
  4680. }
  4681. AES.prototype._doCryptBlock = function (M, keySchedule, SUB_MIX, SBOX) {
  4682. var ksRow, s0, s1, s2, s3, t0, t1, t2, t3
  4683. s0 = M[0] ^ keySchedule[0]
  4684. s1 = M[1] ^ keySchedule[1]
  4685. s2 = M[2] ^ keySchedule[2]
  4686. s3 = M[3] ^ keySchedule[3]
  4687. ksRow = 4
  4688. for (var round = 1; round < this._nRounds; round++) {
  4689. t0 = SUB_MIX[0][s0 >>> 24] ^ SUB_MIX[1][(s1 >>> 16) & 0xff] ^ SUB_MIX[2][(s2 >>> 8) & 0xff] ^ SUB_MIX[3][s3 & 0xff] ^ keySchedule[ksRow++]
  4690. t1 = SUB_MIX[0][s1 >>> 24] ^ SUB_MIX[1][(s2 >>> 16) & 0xff] ^ SUB_MIX[2][(s3 >>> 8) & 0xff] ^ SUB_MIX[3][s0 & 0xff] ^ keySchedule[ksRow++]
  4691. t2 = SUB_MIX[0][s2 >>> 24] ^ SUB_MIX[1][(s3 >>> 16) & 0xff] ^ SUB_MIX[2][(s0 >>> 8) & 0xff] ^ SUB_MIX[3][s1 & 0xff] ^ keySchedule[ksRow++]
  4692. t3 = SUB_MIX[0][s3 >>> 24] ^ SUB_MIX[1][(s0 >>> 16) & 0xff] ^ SUB_MIX[2][(s1 >>> 8) & 0xff] ^ SUB_MIX[3][s2 & 0xff] ^ keySchedule[ksRow++]
  4693. s0 = t0
  4694. s1 = t1
  4695. s2 = t2
  4696. s3 = t3
  4697. }
  4698. t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]
  4699. t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]
  4700. t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]
  4701. t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]
  4702. return [
  4703. fixup_uint32(t0),
  4704. fixup_uint32(t1),
  4705. fixup_uint32(t2),
  4706. fixup_uint32(t3)
  4707. ]
  4708. }
  4709. exports.AES = AES
  4710. }).call(this,require("buffer").Buffer)
  4711. },{"buffer":54}],29:[function(require,module,exports){
  4712. (function (Buffer){
  4713. var aes = require('./aes')
  4714. var Transform = require('cipher-base')
  4715. var inherits = require('inherits')
  4716. var GHASH = require('./ghash')
  4717. var xor = require('buffer-xor')
  4718. inherits(StreamCipher, Transform)
  4719. module.exports = StreamCipher
  4720. function StreamCipher (mode, key, iv, decrypt) {
  4721. if (!(this instanceof StreamCipher)) {
  4722. return new StreamCipher(mode, key, iv)
  4723. }
  4724. Transform.call(this)
  4725. this._finID = Buffer.concat([iv, new Buffer([0, 0, 0, 1])])
  4726. iv = Buffer.concat([iv, new Buffer([0, 0, 0, 2])])
  4727. this._cipher = new aes.AES(key)
  4728. this._prev = new Buffer(iv.length)
  4729. this._cache = new Buffer('')
  4730. this._secCache = new Buffer('')
  4731. this._decrypt = decrypt
  4732. this._alen = 0
  4733. this._len = 0
  4734. iv.copy(this._prev)
  4735. this._mode = mode
  4736. var h = new Buffer(4)
  4737. h.fill(0)
  4738. this._ghash = new GHASH(this._cipher.encryptBlock(h))
  4739. this._authTag = null
  4740. this._called = false
  4741. }
  4742. StreamCipher.prototype._update = function (chunk) {
  4743. if (!this._called && this._alen) {
  4744. var rump = 16 - (this._alen % 16)
  4745. if (rump < 16) {
  4746. rump = new Buffer(rump)
  4747. rump.fill(0)
  4748. this._ghash.update(rump)
  4749. }
  4750. }
  4751. this._called = true
  4752. var out = this._mode.encrypt(this, chunk)
  4753. if (this._decrypt) {
  4754. this._ghash.update(chunk)
  4755. } else {
  4756. this._ghash.update(out)
  4757. }
  4758. this._len += chunk.length
  4759. return out
  4760. }
  4761. StreamCipher.prototype._final = function () {
  4762. if (this._decrypt && !this._authTag) {
  4763. throw new Error('Unsupported state or unable to authenticate data')
  4764. }
  4765. var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))
  4766. if (this._decrypt) {
  4767. if (xorTest(tag, this._authTag)) {
  4768. throw new Error('Unsupported state or unable to authenticate data')
  4769. }
  4770. } else {
  4771. this._authTag = tag
  4772. }
  4773. this._cipher.scrub()
  4774. }
  4775. StreamCipher.prototype.getAuthTag = function getAuthTag () {
  4776. if (!this._decrypt && Buffer.isBuffer(this._authTag)) {
  4777. return this._authTag
  4778. } else {
  4779. throw new Error('Attempting to get auth tag in unsupported state')
  4780. }
  4781. }
  4782. StreamCipher.prototype.setAuthTag = function setAuthTag (tag) {
  4783. if (this._decrypt) {
  4784. this._authTag = tag
  4785. } else {
  4786. throw new Error('Attempting to set auth tag in unsupported state')
  4787. }
  4788. }
  4789. StreamCipher.prototype.setAAD = function setAAD (buf) {
  4790. if (!this._called) {
  4791. this._ghash.update(buf)
  4792. this._alen += buf.length
  4793. } else {
  4794. throw new Error('Attempting to set AAD in unsupported state')
  4795. }
  4796. }
  4797. function xorTest (a, b) {
  4798. var out = 0
  4799. if (a.length !== b.length) {
  4800. out++
  4801. }
  4802. var len = Math.min(a.length, b.length)
  4803. var i = -1
  4804. while (++i < len) {
  4805. out += (a[i] ^ b[i])
  4806. }
  4807. return out
  4808. }
  4809. }).call(this,require("buffer").Buffer)
  4810. },{"./aes":28,"./ghash":33,"buffer":54,"buffer-xor":53,"cipher-base":55,"inherits":108}],30:[function(require,module,exports){
  4811. var ciphers = require('./encrypter')
  4812. exports.createCipher = exports.Cipher = ciphers.createCipher
  4813. exports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv
  4814. var deciphers = require('./decrypter')
  4815. exports.createDecipher = exports.Decipher = deciphers.createDecipher
  4816. exports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv
  4817. var modes = require('./modes')
  4818. function getCiphers () {
  4819. return Object.keys(modes)
  4820. }
  4821. exports.listCiphers = exports.getCiphers = getCiphers
  4822. },{"./decrypter":31,"./encrypter":32,"./modes":34}],31:[function(require,module,exports){
  4823. (function (Buffer){
  4824. var aes = require('./aes')
  4825. var Transform = require('cipher-base')
  4826. var inherits = require('inherits')
  4827. var modes = require('./modes')
  4828. var StreamCipher = require('./streamCipher')
  4829. var AuthCipher = require('./authCipher')
  4830. var ebtk = require('evp_bytestokey')
  4831. inherits(Decipher, Transform)
  4832. function Decipher (mode, key, iv) {
  4833. if (!(this instanceof Decipher)) {
  4834. return new Decipher(mode, key, iv)
  4835. }
  4836. Transform.call(this)
  4837. this._cache = new Splitter()
  4838. this._last = void 0
  4839. this._cipher = new aes.AES(key)
  4840. this._prev = new Buffer(iv.length)
  4841. iv.copy(this._prev)
  4842. this._mode = mode
  4843. this._autopadding = true
  4844. }
  4845. Decipher.prototype._update = function (data) {
  4846. this._cache.add(data)
  4847. var chunk
  4848. var thing
  4849. var out = []
  4850. while ((chunk = this._cache.get(this._autopadding))) {
  4851. thing = this._mode.decrypt(this, chunk)
  4852. out.push(thing)
  4853. }
  4854. return Buffer.concat(out)
  4855. }
  4856. Decipher.prototype._final = function () {
  4857. var chunk = this._cache.flush()
  4858. if (this._autopadding) {
  4859. return unpad(this._mode.decrypt(this, chunk))
  4860. } else if (chunk) {
  4861. throw new Error('data not multiple of block length')
  4862. }
  4863. }
  4864. Decipher.prototype.setAutoPadding = function (setTo) {
  4865. this._autopadding = !!setTo
  4866. return this
  4867. }
  4868. function Splitter () {
  4869. if (!(this instanceof Splitter)) {
  4870. return new Splitter()
  4871. }
  4872. this.cache = new Buffer('')
  4873. }
  4874. Splitter.prototype.add = function (data) {
  4875. this.cache = Buffer.concat([this.cache, data])
  4876. }
  4877. Splitter.prototype.get = function (autoPadding) {
  4878. var out
  4879. if (autoPadding) {
  4880. if (this.cache.length > 16) {
  4881. out = this.cache.slice(0, 16)
  4882. this.cache = this.cache.slice(16)
  4883. return out
  4884. }
  4885. } else {
  4886. if (this.cache.length >= 16) {
  4887. out = this.cache.slice(0, 16)
  4888. this.cache = this.cache.slice(16)
  4889. return out
  4890. }
  4891. }
  4892. return null
  4893. }
  4894. Splitter.prototype.flush = function () {
  4895. if (this.cache.length) {
  4896. return this.cache
  4897. }
  4898. }
  4899. function unpad (last) {
  4900. var padded = last[15]
  4901. var i = -1
  4902. while (++i < padded) {
  4903. if (last[(i + (16 - padded))] !== padded) {
  4904. throw new Error('unable to decrypt data')
  4905. }
  4906. }
  4907. if (padded === 16) {
  4908. return
  4909. }
  4910. return last.slice(0, 16 - padded)
  4911. }
  4912. var modelist = {
  4913. ECB: require('./modes/ecb'),
  4914. CBC: require('./modes/cbc'),
  4915. CFB: require('./modes/cfb'),
  4916. CFB8: require('./modes/cfb8'),
  4917. CFB1: require('./modes/cfb1'),
  4918. OFB: require('./modes/ofb'),
  4919. CTR: require('./modes/ctr'),
  4920. GCM: require('./modes/ctr')
  4921. }
  4922. function createDecipheriv (suite, password, iv) {
  4923. var config = modes[suite.toLowerCase()]
  4924. if (!config) {
  4925. throw new TypeError('invalid suite type')
  4926. }
  4927. if (typeof iv === 'string') {
  4928. iv = new Buffer(iv)
  4929. }
  4930. if (typeof password === 'string') {
  4931. password = new Buffer(password)
  4932. }
  4933. if (password.length !== config.key / 8) {
  4934. throw new TypeError('invalid key length ' + password.length)
  4935. }
  4936. if (iv.length !== config.iv) {
  4937. throw new TypeError('invalid iv length ' + iv.length)
  4938. }
  4939. if (config.type === 'stream') {
  4940. return new StreamCipher(modelist[config.mode], password, iv, true)
  4941. } else if (config.type === 'auth') {
  4942. return new AuthCipher(modelist[config.mode], password, iv, true)
  4943. }
  4944. return new Decipher(modelist[config.mode], password, iv)
  4945. }
  4946. function createDecipher (suite, password) {
  4947. var config = modes[suite.toLowerCase()]
  4948. if (!config) {
  4949. throw new TypeError('invalid suite type')
  4950. }
  4951. var keys = ebtk(password, false, config.key, config.iv)
  4952. return createDecipheriv(suite, keys.key, keys.iv)
  4953. }
  4954. exports.createDecipher = createDecipher
  4955. exports.createDecipheriv = createDecipheriv
  4956. }).call(this,require("buffer").Buffer)
  4957. },{"./aes":28,"./authCipher":29,"./modes":34,"./modes/cbc":35,"./modes/cfb":36,"./modes/cfb1":37,"./modes/cfb8":38,"./modes/ctr":39,"./modes/ecb":40,"./modes/ofb":41,"./streamCipher":42,"buffer":54,"cipher-base":55,"evp_bytestokey":91,"inherits":108}],32:[function(require,module,exports){
  4958. (function (Buffer){
  4959. var aes = require('./aes')
  4960. var Transform = require('cipher-base')
  4961. var inherits = require('inherits')
  4962. var modes = require('./modes')
  4963. var ebtk = require('evp_bytestokey')
  4964. var StreamCipher = require('./streamCipher')
  4965. var AuthCipher = require('./authCipher')
  4966. inherits(Cipher, Transform)
  4967. function Cipher (mode, key, iv) {
  4968. if (!(this instanceof Cipher)) {
  4969. return new Cipher(mode, key, iv)
  4970. }
  4971. Transform.call(this)
  4972. this._cache = new Splitter()
  4973. this._cipher = new aes.AES(key)
  4974. this._prev = new Buffer(iv.length)
  4975. iv.copy(this._prev)
  4976. this._mode = mode
  4977. this._autopadding = true
  4978. }
  4979. Cipher.prototype._update = function (data) {
  4980. this._cache.add(data)
  4981. var chunk
  4982. var thing
  4983. var out = []
  4984. while ((chunk = this._cache.get())) {
  4985. thing = this._mode.encrypt(this, chunk)
  4986. out.push(thing)
  4987. }
  4988. return Buffer.concat(out)
  4989. }
  4990. Cipher.prototype._final = function () {
  4991. var chunk = this._cache.flush()
  4992. if (this._autopadding) {
  4993. chunk = this._mode.encrypt(this, chunk)
  4994. this._cipher.scrub()
  4995. return chunk
  4996. } else if (chunk.toString('hex') !== '10101010101010101010101010101010') {
  4997. this._cipher.scrub()
  4998. throw new Error('data not multiple of block length')
  4999. }
  5000. }
  5001. Cipher.prototype.setAutoPadding = function (setTo) {
  5002. this._autopadding = !!setTo
  5003. return this
  5004. }
  5005. function Splitter () {
  5006. if (!(this instanceof Splitter)) {
  5007. return new Splitter()
  5008. }
  5009. this.cache = new Buffer('')
  5010. }
  5011. Splitter.prototype.add = function (data) {
  5012. this.cache = Buffer.concat([this.cache, data])
  5013. }
  5014. Splitter.prototype.get = function () {
  5015. if (this.cache.length > 15) {
  5016. var out = this.cache.slice(0, 16)
  5017. this.cache = this.cache.slice(16)
  5018. return out
  5019. }
  5020. return null
  5021. }
  5022. Splitter.prototype.flush = function () {
  5023. var len = 16 - this.cache.length
  5024. var padBuff = new Buffer(len)
  5025. var i = -1
  5026. while (++i < len) {
  5027. padBuff.writeUInt8(len, i)
  5028. }
  5029. var out = Buffer.concat([this.cache, padBuff])
  5030. return out
  5031. }
  5032. var modelist = {
  5033. ECB: require('./modes/ecb'),
  5034. CBC: require('./modes/cbc'),
  5035. CFB: require('./modes/cfb'),
  5036. CFB8: require('./modes/cfb8'),
  5037. CFB1: require('./modes/cfb1'),
  5038. OFB: require('./modes/ofb'),
  5039. CTR: require('./modes/ctr'),
  5040. GCM: require('./modes/ctr')
  5041. }
  5042. function createCipheriv (suite, password, iv) {
  5043. var config = modes[suite.toLowerCase()]
  5044. if (!config) {
  5045. throw new TypeError('invalid suite type')
  5046. }
  5047. if (typeof iv === 'string') {
  5048. iv = new Buffer(iv)
  5049. }
  5050. if (typeof password === 'string') {
  5051. password = new Buffer(password)
  5052. }
  5053. if (password.length !== config.key / 8) {
  5054. throw new TypeError('invalid key length ' + password.length)
  5055. }
  5056. if (iv.length !== config.iv) {
  5057. throw new TypeError('invalid iv length ' + iv.length)
  5058. }
  5059. if (config.type === 'stream') {
  5060. return new StreamCipher(modelist[config.mode], password, iv)
  5061. } else if (config.type === 'auth') {
  5062. return new AuthCipher(modelist[config.mode], password, iv)
  5063. }
  5064. return new Cipher(modelist[config.mode], password, iv)
  5065. }
  5066. function createCipher (suite, password) {
  5067. var config = modes[suite.toLowerCase()]
  5068. if (!config) {
  5069. throw new TypeError('invalid suite type')
  5070. }
  5071. var keys = ebtk(password, false, config.key, config.iv)
  5072. return createCipheriv(suite, keys.key, keys.iv)
  5073. }
  5074. exports.createCipheriv = createCipheriv
  5075. exports.createCipher = createCipher
  5076. }).call(this,require("buffer").Buffer)
  5077. },{"./aes":28,"./authCipher":29,"./modes":34,"./modes/cbc":35,"./modes/cfb":36,"./modes/cfb1":37,"./modes/cfb8":38,"./modes/ctr":39,"./modes/ecb":40,"./modes/ofb":41,"./streamCipher":42,"buffer":54,"cipher-base":55,"evp_bytestokey":91,"inherits":108}],33:[function(require,module,exports){
  5078. (function (Buffer){
  5079. var zeros = new Buffer(16)
  5080. zeros.fill(0)
  5081. module.exports = GHASH
  5082. function GHASH (key) {
  5083. this.h = key
  5084. this.state = new Buffer(16)
  5085. this.state.fill(0)
  5086. this.cache = new Buffer('')
  5087. }
  5088. // from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html
  5089. // by Juho Vähä-Herttua
  5090. GHASH.prototype.ghash = function (block) {
  5091. var i = -1
  5092. while (++i < block.length) {
  5093. this.state[i] ^= block[i]
  5094. }
  5095. this._multiply()
  5096. }
  5097. GHASH.prototype._multiply = function () {
  5098. var Vi = toArray(this.h)
  5099. var Zi = [0, 0, 0, 0]
  5100. var j, xi, lsb_Vi
  5101. var i = -1
  5102. while (++i < 128) {
  5103. xi = (this.state[~~(i / 8)] & (1 << (7 - i % 8))) !== 0
  5104. if (xi) {
  5105. // Z_i+1 = Z_i ^ V_i
  5106. Zi = xor(Zi, Vi)
  5107. }
  5108. // Store the value of LSB(V_i)
  5109. lsb_Vi = (Vi[3] & 1) !== 0
  5110. // V_i+1 = V_i >> 1
  5111. for (j = 3; j > 0; j--) {
  5112. Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31)
  5113. }
  5114. Vi[0] = Vi[0] >>> 1
  5115. // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R
  5116. if (lsb_Vi) {
  5117. Vi[0] = Vi[0] ^ (0xe1 << 24)
  5118. }
  5119. }
  5120. this.state = fromArray(Zi)
  5121. }
  5122. GHASH.prototype.update = function (buf) {
  5123. this.cache = Buffer.concat([this.cache, buf])
  5124. var chunk
  5125. while (this.cache.length >= 16) {
  5126. chunk = this.cache.slice(0, 16)
  5127. this.cache = this.cache.slice(16)
  5128. this.ghash(chunk)
  5129. }
  5130. }
  5131. GHASH.prototype.final = function (abl, bl) {
  5132. if (this.cache.length) {
  5133. this.ghash(Buffer.concat([this.cache, zeros], 16))
  5134. }
  5135. this.ghash(fromArray([
  5136. 0, abl,
  5137. 0, bl
  5138. ]))
  5139. return this.state
  5140. }
  5141. function toArray (buf) {
  5142. return [
  5143. buf.readUInt32BE(0),
  5144. buf.readUInt32BE(4),
  5145. buf.readUInt32BE(8),
  5146. buf.readUInt32BE(12)
  5147. ]
  5148. }
  5149. function fromArray (out) {
  5150. out = out.map(fixup_uint32)
  5151. var buf = new Buffer(16)
  5152. buf.writeUInt32BE(out[0], 0)
  5153. buf.writeUInt32BE(out[1], 4)
  5154. buf.writeUInt32BE(out[2], 8)
  5155. buf.writeUInt32BE(out[3], 12)
  5156. return buf
  5157. }
  5158. var uint_max = Math.pow(2, 32)
  5159. function fixup_uint32 (x) {
  5160. var ret, x_pos
  5161. ret = x > uint_max || x < 0 ? (x_pos = Math.abs(x) % uint_max, x < 0 ? uint_max - x_pos : x_pos) : x
  5162. return ret
  5163. }
  5164. function xor (a, b) {
  5165. return [
  5166. a[0] ^ b[0],
  5167. a[1] ^ b[1],
  5168. a[2] ^ b[2],
  5169. a[3] ^ b[3]
  5170. ]
  5171. }
  5172. }).call(this,require("buffer").Buffer)
  5173. },{"buffer":54}],34:[function(require,module,exports){
  5174. exports['aes-128-ecb'] = {
  5175. cipher: 'AES',
  5176. key: 128,
  5177. iv: 0,
  5178. mode: 'ECB',
  5179. type: 'block'
  5180. }
  5181. exports['aes-192-ecb'] = {
  5182. cipher: 'AES',
  5183. key: 192,
  5184. iv: 0,
  5185. mode: 'ECB',
  5186. type: 'block'
  5187. }
  5188. exports['aes-256-ecb'] = {
  5189. cipher: 'AES',
  5190. key: 256,
  5191. iv: 0,
  5192. mode: 'ECB',
  5193. type: 'block'
  5194. }
  5195. exports['aes-128-cbc'] = {
  5196. cipher: 'AES',
  5197. key: 128,
  5198. iv: 16,
  5199. mode: 'CBC',
  5200. type: 'block'
  5201. }
  5202. exports['aes-192-cbc'] = {
  5203. cipher: 'AES',
  5204. key: 192,
  5205. iv: 16,
  5206. mode: 'CBC',
  5207. type: 'block'
  5208. }
  5209. exports['aes-256-cbc'] = {
  5210. cipher: 'AES',
  5211. key: 256,
  5212. iv: 16,
  5213. mode: 'CBC',
  5214. type: 'block'
  5215. }
  5216. exports['aes128'] = exports['aes-128-cbc']
  5217. exports['aes192'] = exports['aes-192-cbc']
  5218. exports['aes256'] = exports['aes-256-cbc']
  5219. exports['aes-128-cfb'] = {
  5220. cipher: 'AES',
  5221. key: 128,
  5222. iv: 16,
  5223. mode: 'CFB',
  5224. type: 'stream'
  5225. }
  5226. exports['aes-192-cfb'] = {
  5227. cipher: 'AES',
  5228. key: 192,
  5229. iv: 16,
  5230. mode: 'CFB',
  5231. type: 'stream'
  5232. }
  5233. exports['aes-256-cfb'] = {
  5234. cipher: 'AES',
  5235. key: 256,
  5236. iv: 16,
  5237. mode: 'CFB',
  5238. type: 'stream'
  5239. }
  5240. exports['aes-128-cfb8'] = {
  5241. cipher: 'AES',
  5242. key: 128,
  5243. iv: 16,
  5244. mode: 'CFB8',
  5245. type: 'stream'
  5246. }
  5247. exports['aes-192-cfb8'] = {
  5248. cipher: 'AES',
  5249. key: 192,
  5250. iv: 16,
  5251. mode: 'CFB8',
  5252. type: 'stream'
  5253. }
  5254. exports['aes-256-cfb8'] = {
  5255. cipher: 'AES',
  5256. key: 256,
  5257. iv: 16,
  5258. mode: 'CFB8',
  5259. type: 'stream'
  5260. }
  5261. exports['aes-128-cfb1'] = {
  5262. cipher: 'AES',
  5263. key: 128,
  5264. iv: 16,
  5265. mode: 'CFB1',
  5266. type: 'stream'
  5267. }
  5268. exports['aes-192-cfb1'] = {
  5269. cipher: 'AES',
  5270. key: 192,
  5271. iv: 16,
  5272. mode: 'CFB1',
  5273. type: 'stream'
  5274. }
  5275. exports['aes-256-cfb1'] = {
  5276. cipher: 'AES',
  5277. key: 256,
  5278. iv: 16,
  5279. mode: 'CFB1',
  5280. type: 'stream'
  5281. }
  5282. exports['aes-128-ofb'] = {
  5283. cipher: 'AES',
  5284. key: 128,
  5285. iv: 16,
  5286. mode: 'OFB',
  5287. type: 'stream'
  5288. }
  5289. exports['aes-192-ofb'] = {
  5290. cipher: 'AES',
  5291. key: 192,
  5292. iv: 16,
  5293. mode: 'OFB',
  5294. type: 'stream'
  5295. }
  5296. exports['aes-256-ofb'] = {
  5297. cipher: 'AES',
  5298. key: 256,
  5299. iv: 16,
  5300. mode: 'OFB',
  5301. type: 'stream'
  5302. }
  5303. exports['aes-128-ctr'] = {
  5304. cipher: 'AES',
  5305. key: 128,
  5306. iv: 16,
  5307. mode: 'CTR',
  5308. type: 'stream'
  5309. }
  5310. exports['aes-192-ctr'] = {
  5311. cipher: 'AES',
  5312. key: 192,
  5313. iv: 16,
  5314. mode: 'CTR',
  5315. type: 'stream'
  5316. }
  5317. exports['aes-256-ctr'] = {
  5318. cipher: 'AES',
  5319. key: 256,
  5320. iv: 16,
  5321. mode: 'CTR',
  5322. type: 'stream'
  5323. }
  5324. exports['aes-128-gcm'] = {
  5325. cipher: 'AES',
  5326. key: 128,
  5327. iv: 12,
  5328. mode: 'GCM',
  5329. type: 'auth'
  5330. }
  5331. exports['aes-192-gcm'] = {
  5332. cipher: 'AES',
  5333. key: 192,
  5334. iv: 12,
  5335. mode: 'GCM',
  5336. type: 'auth'
  5337. }
  5338. exports['aes-256-gcm'] = {
  5339. cipher: 'AES',
  5340. key: 256,
  5341. iv: 12,
  5342. mode: 'GCM',
  5343. type: 'auth'
  5344. }
  5345. },{}],35:[function(require,module,exports){
  5346. var xor = require('buffer-xor')
  5347. exports.encrypt = function (self, block) {
  5348. var data = xor(block, self._prev)
  5349. self._prev = self._cipher.encryptBlock(data)
  5350. return self._prev
  5351. }
  5352. exports.decrypt = function (self, block) {
  5353. var pad = self._prev
  5354. self._prev = block
  5355. var out = self._cipher.decryptBlock(block)
  5356. return xor(out, pad)
  5357. }
  5358. },{"buffer-xor":53}],36:[function(require,module,exports){
  5359. (function (Buffer){
  5360. var xor = require('buffer-xor')
  5361. exports.encrypt = function (self, data, decrypt) {
  5362. var out = new Buffer('')
  5363. var len
  5364. while (data.length) {
  5365. if (self._cache.length === 0) {
  5366. self._cache = self._cipher.encryptBlock(self._prev)
  5367. self._prev = new Buffer('')
  5368. }
  5369. if (self._cache.length <= data.length) {
  5370. len = self._cache.length
  5371. out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)])
  5372. data = data.slice(len)
  5373. } else {
  5374. out = Buffer.concat([out, encryptStart(self, data, decrypt)])
  5375. break
  5376. }
  5377. }
  5378. return out
  5379. }
  5380. function encryptStart (self, data, decrypt) {
  5381. var len = data.length
  5382. var out = xor(data, self._cache)
  5383. self._cache = self._cache.slice(len)
  5384. self._prev = Buffer.concat([self._prev, decrypt ? data : out])
  5385. return out
  5386. }
  5387. }).call(this,require("buffer").Buffer)
  5388. },{"buffer":54,"buffer-xor":53}],37:[function(require,module,exports){
  5389. (function (Buffer){
  5390. function encryptByte (self, byteParam, decrypt) {
  5391. var pad
  5392. var i = -1
  5393. var len = 8
  5394. var out = 0
  5395. var bit, value
  5396. while (++i < len) {
  5397. pad = self._cipher.encryptBlock(self._prev)
  5398. bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0
  5399. value = pad[0] ^ bit
  5400. out += ((value & 0x80) >> (i % 8))
  5401. self._prev = shiftIn(self._prev, decrypt ? bit : value)
  5402. }
  5403. return out
  5404. }
  5405. exports.encrypt = function (self, chunk, decrypt) {
  5406. var len = chunk.length
  5407. var out = new Buffer(len)
  5408. var i = -1
  5409. while (++i < len) {
  5410. out[i] = encryptByte(self, chunk[i], decrypt)
  5411. }
  5412. return out
  5413. }
  5414. function shiftIn (buffer, value) {
  5415. var len = buffer.length
  5416. var i = -1
  5417. var out = new Buffer(buffer.length)
  5418. buffer = Buffer.concat([buffer, new Buffer([value])])
  5419. while (++i < len) {
  5420. out[i] = buffer[i] << 1 | buffer[i + 1] >> (7)
  5421. }
  5422. return out
  5423. }
  5424. }).call(this,require("buffer").Buffer)
  5425. },{"buffer":54}],38:[function(require,module,exports){
  5426. (function (Buffer){
  5427. function encryptByte (self, byteParam, decrypt) {
  5428. var pad = self._cipher.encryptBlock(self._prev)
  5429. var out = pad[0] ^ byteParam
  5430. self._prev = Buffer.concat([self._prev.slice(1), new Buffer([decrypt ? byteParam : out])])
  5431. return out
  5432. }
  5433. exports.encrypt = function (self, chunk, decrypt) {
  5434. var len = chunk.length
  5435. var out = new Buffer(len)
  5436. var i = -1
  5437. while (++i < len) {
  5438. out[i] = encryptByte(self, chunk[i], decrypt)
  5439. }
  5440. return out
  5441. }
  5442. }).call(this,require("buffer").Buffer)
  5443. },{"buffer":54}],39:[function(require,module,exports){
  5444. (function (Buffer){
  5445. var xor = require('buffer-xor')
  5446. function incr32 (iv) {
  5447. var len = iv.length
  5448. var item
  5449. while (len--) {
  5450. item = iv.readUInt8(len)
  5451. if (item === 255) {
  5452. iv.writeUInt8(0, len)
  5453. } else {
  5454. item++
  5455. iv.writeUInt8(item, len)
  5456. break
  5457. }
  5458. }
  5459. }
  5460. function getBlock (self) {
  5461. var out = self._cipher.encryptBlock(self._prev)
  5462. incr32(self._prev)
  5463. return out
  5464. }
  5465. exports.encrypt = function (self, chunk) {
  5466. while (self._cache.length < chunk.length) {
  5467. self._cache = Buffer.concat([self._cache, getBlock(self)])
  5468. }
  5469. var pad = self._cache.slice(0, chunk.length)
  5470. self._cache = self._cache.slice(chunk.length)
  5471. return xor(chunk, pad)
  5472. }
  5473. }).call(this,require("buffer").Buffer)
  5474. },{"buffer":54,"buffer-xor":53}],40:[function(require,module,exports){
  5475. exports.encrypt = function (self, block) {
  5476. return self._cipher.encryptBlock(block)
  5477. }
  5478. exports.decrypt = function (self, block) {
  5479. return self._cipher.decryptBlock(block)
  5480. }
  5481. },{}],41:[function(require,module,exports){
  5482. (function (Buffer){
  5483. var xor = require('buffer-xor')
  5484. function getBlock (self) {
  5485. self._prev = self._cipher.encryptBlock(self._prev)
  5486. return self._prev
  5487. }
  5488. exports.encrypt = function (self, chunk) {
  5489. while (self._cache.length < chunk.length) {
  5490. self._cache = Buffer.concat([self._cache, getBlock(self)])
  5491. }
  5492. var pad = self._cache.slice(0, chunk.length)
  5493. self._cache = self._cache.slice(chunk.length)
  5494. return xor(chunk, pad)
  5495. }
  5496. }).call(this,require("buffer").Buffer)
  5497. },{"buffer":54,"buffer-xor":53}],42:[function(require,module,exports){
  5498. (function (Buffer){
  5499. var aes = require('./aes')
  5500. var Transform = require('cipher-base')
  5501. var inherits = require('inherits')
  5502. inherits(StreamCipher, Transform)
  5503. module.exports = StreamCipher
  5504. function StreamCipher (mode, key, iv, decrypt) {
  5505. if (!(this instanceof StreamCipher)) {
  5506. return new StreamCipher(mode, key, iv)
  5507. }
  5508. Transform.call(this)
  5509. this._cipher = new aes.AES(key)
  5510. this._prev = new Buffer(iv.length)
  5511. this._cache = new Buffer('')
  5512. this._secCache = new Buffer('')
  5513. this._decrypt = decrypt
  5514. iv.copy(this._prev)
  5515. this._mode = mode
  5516. }
  5517. StreamCipher.prototype._update = function (chunk) {
  5518. return this._mode.encrypt(this, chunk, this._decrypt)
  5519. }
  5520. StreamCipher.prototype._final = function () {
  5521. this._cipher.scrub()
  5522. }
  5523. }).call(this,require("buffer").Buffer)
  5524. },{"./aes":28,"buffer":54,"cipher-base":55,"inherits":108}],43:[function(require,module,exports){
  5525. var ebtk = require('evp_bytestokey')
  5526. var aes = require('browserify-aes/browser')
  5527. var DES = require('browserify-des')
  5528. var desModes = require('browserify-des/modes')
  5529. var aesModes = require('browserify-aes/modes')
  5530. function createCipher (suite, password) {
  5531. var keyLen, ivLen
  5532. suite = suite.toLowerCase()
  5533. if (aesModes[suite]) {
  5534. keyLen = aesModes[suite].key
  5535. ivLen = aesModes[suite].iv
  5536. } else if (desModes[suite]) {
  5537. keyLen = desModes[suite].key * 8
  5538. ivLen = desModes[suite].iv
  5539. } else {
  5540. throw new TypeError('invalid suite type')
  5541. }
  5542. var keys = ebtk(password, false, keyLen, ivLen)
  5543. return createCipheriv(suite, keys.key, keys.iv)
  5544. }
  5545. function createDecipher (suite, password) {
  5546. var keyLen, ivLen
  5547. suite = suite.toLowerCase()
  5548. if (aesModes[suite]) {
  5549. keyLen = aesModes[suite].key
  5550. ivLen = aesModes[suite].iv
  5551. } else if (desModes[suite]) {
  5552. keyLen = desModes[suite].key * 8
  5553. ivLen = desModes[suite].iv
  5554. } else {
  5555. throw new TypeError('invalid suite type')
  5556. }
  5557. var keys = ebtk(password, false, keyLen, ivLen)
  5558. return createDecipheriv(suite, keys.key, keys.iv)
  5559. }
  5560. function createCipheriv (suite, key, iv) {
  5561. suite = suite.toLowerCase()
  5562. if (aesModes[suite]) {
  5563. return aes.createCipheriv(suite, key, iv)
  5564. } else if (desModes[suite]) {
  5565. return new DES({
  5566. key: key,
  5567. iv: iv,
  5568. mode: suite
  5569. })
  5570. } else {
  5571. throw new TypeError('invalid suite type')
  5572. }
  5573. }
  5574. function createDecipheriv (suite, key, iv) {
  5575. suite = suite.toLowerCase()
  5576. if (aesModes[suite]) {
  5577. return aes.createDecipheriv(suite, key, iv)
  5578. } else if (desModes[suite]) {
  5579. return new DES({
  5580. key: key,
  5581. iv: iv,
  5582. mode: suite,
  5583. decrypt: true
  5584. })
  5585. } else {
  5586. throw new TypeError('invalid suite type')
  5587. }
  5588. }
  5589. exports.createCipher = exports.Cipher = createCipher
  5590. exports.createCipheriv = exports.Cipheriv = createCipheriv
  5591. exports.createDecipher = exports.Decipher = createDecipher
  5592. exports.createDecipheriv = exports.Decipheriv = createDecipheriv
  5593. function getCiphers () {
  5594. return Object.keys(desModes).concat(aes.getCiphers())
  5595. }
  5596. exports.listCiphers = exports.getCiphers = getCiphers
  5597. },{"browserify-aes/browser":30,"browserify-aes/modes":34,"browserify-des":44,"browserify-des/modes":45,"evp_bytestokey":91}],44:[function(require,module,exports){
  5598. (function (Buffer){
  5599. var CipherBase = require('cipher-base')
  5600. var des = require('des.js')
  5601. var inherits = require('inherits')
  5602. var modes = {
  5603. 'des-ede3-cbc': des.CBC.instantiate(des.EDE),
  5604. 'des-ede3': des.EDE,
  5605. 'des-ede-cbc': des.CBC.instantiate(des.EDE),
  5606. 'des-ede': des.EDE,
  5607. 'des-cbc': des.CBC.instantiate(des.DES),
  5608. 'des-ecb': des.DES
  5609. }
  5610. modes.des = modes['des-cbc']
  5611. modes.des3 = modes['des-ede3-cbc']
  5612. module.exports = DES
  5613. inherits(DES, CipherBase)
  5614. function DES (opts) {
  5615. CipherBase.call(this)
  5616. var modeName = opts.mode.toLowerCase()
  5617. var mode = modes[modeName]
  5618. var type
  5619. if (opts.decrypt) {
  5620. type = 'decrypt'
  5621. } else {
  5622. type = 'encrypt'
  5623. }
  5624. var key = opts.key
  5625. if (modeName === 'des-ede' || modeName === 'des-ede-cbc') {
  5626. key = Buffer.concat([key, key.slice(0, 8)])
  5627. }
  5628. var iv = opts.iv
  5629. this._des = mode.create({
  5630. key: key,
  5631. iv: iv,
  5632. type: type
  5633. })
  5634. }
  5635. DES.prototype._update = function (data) {
  5636. return new Buffer(this._des.update(data))
  5637. }
  5638. DES.prototype._final = function () {
  5639. return new Buffer(this._des.final())
  5640. }
  5641. }).call(this,require("buffer").Buffer)
  5642. },{"buffer":54,"cipher-base":55,"des.js":64,"inherits":108}],45:[function(require,module,exports){
  5643. exports['des-ecb'] = {
  5644. key: 8,
  5645. iv: 0
  5646. }
  5647. exports['des-cbc'] = exports.des = {
  5648. key: 8,
  5649. iv: 8
  5650. }
  5651. exports['des-ede3-cbc'] = exports.des3 = {
  5652. key: 24,
  5653. iv: 8
  5654. }
  5655. exports['des-ede3'] = {
  5656. key: 24,
  5657. iv: 0
  5658. }
  5659. exports['des-ede-cbc'] = {
  5660. key: 16,
  5661. iv: 8
  5662. }
  5663. exports['des-ede'] = {
  5664. key: 16,
  5665. iv: 0
  5666. }
  5667. },{}],46:[function(require,module,exports){
  5668. (function (Buffer){
  5669. var bn = require('bn.js');
  5670. var randomBytes = require('randombytes');
  5671. module.exports = crt;
  5672. function blind(priv) {
  5673. var r = getr(priv);
  5674. var blinder = r.toRed(bn.mont(priv.modulus))
  5675. .redPow(new bn(priv.publicExponent)).fromRed();
  5676. return {
  5677. blinder: blinder,
  5678. unblinder:r.invm(priv.modulus)
  5679. };
  5680. }
  5681. function crt(msg, priv) {
  5682. var blinds = blind(priv);
  5683. var len = priv.modulus.byteLength();
  5684. var mod = bn.mont(priv.modulus);
  5685. var blinded = new bn(msg).mul(blinds.blinder).umod(priv.modulus);
  5686. var c1 = blinded.toRed(bn.mont(priv.prime1));
  5687. var c2 = blinded.toRed(bn.mont(priv.prime2));
  5688. var qinv = priv.coefficient;
  5689. var p = priv.prime1;
  5690. var q = priv.prime2;
  5691. var m1 = c1.redPow(priv.exponent1);
  5692. var m2 = c2.redPow(priv.exponent2);
  5693. m1 = m1.fromRed();
  5694. m2 = m2.fromRed();
  5695. var h = m1.isub(m2).imul(qinv).umod(p);
  5696. h.imul(q);
  5697. m2.iadd(h);
  5698. return new Buffer(m2.imul(blinds.unblinder).umod(priv.modulus).toArray(false, len));
  5699. }
  5700. crt.getr = getr;
  5701. function getr(priv) {
  5702. var len = priv.modulus.byteLength();
  5703. var r = new bn(randomBytes(len));
  5704. while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2)) {
  5705. r = new bn(randomBytes(len));
  5706. }
  5707. return r;
  5708. }
  5709. }).call(this,require("buffer").Buffer)
  5710. },{"bn.js":25,"buffer":54,"randombytes":133}],47:[function(require,module,exports){
  5711. module.exports = require('./browser/algorithms.json')
  5712. },{"./browser/algorithms.json":48}],48:[function(require,module,exports){
  5713. module.exports={
  5714. "sha224WithRSAEncryption": {
  5715. "sign": "rsa",
  5716. "hash": "sha224",
  5717. "id": "302d300d06096086480165030402040500041c"
  5718. },
  5719. "RSA-SHA224": {
  5720. "sign": "ecdsa/rsa",
  5721. "hash": "sha224",
  5722. "id": "302d300d06096086480165030402040500041c"
  5723. },
  5724. "sha256WithRSAEncryption": {
  5725. "sign": "rsa",
  5726. "hash": "sha256",
  5727. "id": "3031300d060960864801650304020105000420"
  5728. },
  5729. "RSA-SHA256": {
  5730. "sign": "ecdsa/rsa",
  5731. "hash": "sha256",
  5732. "id": "3031300d060960864801650304020105000420"
  5733. },
  5734. "sha384WithRSAEncryption": {
  5735. "sign": "rsa",
  5736. "hash": "sha384",
  5737. "id": "3041300d060960864801650304020205000430"
  5738. },
  5739. "RSA-SHA384": {
  5740. "sign": "ecdsa/rsa",
  5741. "hash": "sha384",
  5742. "id": "3041300d060960864801650304020205000430"
  5743. },
  5744. "sha512WithRSAEncryption": {
  5745. "sign": "rsa",
  5746. "hash": "sha512",
  5747. "id": "3051300d060960864801650304020305000440"
  5748. },
  5749. "RSA-SHA512": {
  5750. "sign": "ecdsa/rsa",
  5751. "hash": "sha512",
  5752. "id": "3051300d060960864801650304020305000440"
  5753. },
  5754. "RSA-SHA1": {
  5755. "sign": "rsa",
  5756. "hash": "sha1",
  5757. "id": "3021300906052b0e03021a05000414"
  5758. },
  5759. "ecdsa-with-SHA1": {
  5760. "sign": "ecdsa",
  5761. "hash": "sha1",
  5762. "id": ""
  5763. },
  5764. "sha256": {
  5765. "sign": "ecdsa",
  5766. "hash": "sha256",
  5767. "id": ""
  5768. },
  5769. "sha224": {
  5770. "sign": "ecdsa",
  5771. "hash": "sha224",
  5772. "id": ""
  5773. },
  5774. "sha384": {
  5775. "sign": "ecdsa",
  5776. "hash": "sha384",
  5777. "id": ""
  5778. },
  5779. "sha512": {
  5780. "sign": "ecdsa",
  5781. "hash": "sha512",
  5782. "id": ""
  5783. },
  5784. "DSA-SHA": {
  5785. "sign": "dsa",
  5786. "hash": "sha1",
  5787. "id": ""
  5788. },
  5789. "DSA-SHA1": {
  5790. "sign": "dsa",
  5791. "hash": "sha1",
  5792. "id": ""
  5793. },
  5794. "DSA": {
  5795. "sign": "dsa",
  5796. "hash": "sha1",
  5797. "id": ""
  5798. },
  5799. "DSA-WITH-SHA224": {
  5800. "sign": "dsa",
  5801. "hash": "sha224",
  5802. "id": ""
  5803. },
  5804. "DSA-SHA224": {
  5805. "sign": "dsa",
  5806. "hash": "sha224",
  5807. "id": ""
  5808. },
  5809. "DSA-WITH-SHA256": {
  5810. "sign": "dsa",
  5811. "hash": "sha256",
  5812. "id": ""
  5813. },
  5814. "DSA-SHA256": {
  5815. "sign": "dsa",
  5816. "hash": "sha256",
  5817. "id": ""
  5818. },
  5819. "DSA-WITH-SHA384": {
  5820. "sign": "dsa",
  5821. "hash": "sha384",
  5822. "id": ""
  5823. },
  5824. "DSA-SHA384": {
  5825. "sign": "dsa",
  5826. "hash": "sha384",
  5827. "id": ""
  5828. },
  5829. "DSA-WITH-SHA512": {
  5830. "sign": "dsa",
  5831. "hash": "sha512",
  5832. "id": ""
  5833. },
  5834. "DSA-SHA512": {
  5835. "sign": "dsa",
  5836. "hash": "sha512",
  5837. "id": ""
  5838. },
  5839. "DSA-RIPEMD160": {
  5840. "sign": "dsa",
  5841. "hash": "rmd160",
  5842. "id": ""
  5843. },
  5844. "ripemd160WithRSA": {
  5845. "sign": "rsa",
  5846. "hash": "rmd160",
  5847. "id": "3021300906052b2403020105000414"
  5848. },
  5849. "RSA-RIPEMD160": {
  5850. "sign": "rsa",
  5851. "hash": "rmd160",
  5852. "id": "3021300906052b2403020105000414"
  5853. },
  5854. "md5WithRSAEncryption": {
  5855. "sign": "rsa",
  5856. "hash": "md5",
  5857. "id": "3020300c06082a864886f70d020505000410"
  5858. },
  5859. "RSA-MD5": {
  5860. "sign": "rsa",
  5861. "hash": "md5",
  5862. "id": "3020300c06082a864886f70d020505000410"
  5863. }
  5864. }
  5865. },{}],49:[function(require,module,exports){
  5866. module.exports={
  5867. "1.3.132.0.10": "secp256k1",
  5868. "1.3.132.0.33": "p224",
  5869. "1.2.840.10045.3.1.1": "p192",
  5870. "1.2.840.10045.3.1.7": "p256",
  5871. "1.3.132.0.34": "p384",
  5872. "1.3.132.0.35": "p521"
  5873. }
  5874. },{}],50:[function(require,module,exports){
  5875. (function (Buffer){
  5876. var createHash = require('create-hash')
  5877. var stream = require('stream')
  5878. var inherits = require('inherits')
  5879. var sign = require('./sign')
  5880. var verify = require('./verify')
  5881. var algorithms = require('./algorithms.json')
  5882. Object.keys(algorithms).forEach(function (key) {
  5883. algorithms[key].id = new Buffer(algorithms[key].id, 'hex')
  5884. algorithms[key.toLowerCase()] = algorithms[key]
  5885. })
  5886. function Sign (algorithm) {
  5887. stream.Writable.call(this)
  5888. var data = algorithms[algorithm]
  5889. if (!data) throw new Error('Unknown message digest')
  5890. this._hashType = data.hash
  5891. this._hash = createHash(data.hash)
  5892. this._tag = data.id
  5893. this._signType = data.sign
  5894. }
  5895. inherits(Sign, stream.Writable)
  5896. Sign.prototype._write = function _write (data, _, done) {
  5897. this._hash.update(data)
  5898. done()
  5899. }
  5900. Sign.prototype.update = function update (data, enc) {
  5901. if (typeof data === 'string') data = new Buffer(data, enc)
  5902. this._hash.update(data)
  5903. return this
  5904. }
  5905. Sign.prototype.sign = function signMethod (key, enc) {
  5906. this.end()
  5907. var hash = this._hash.digest()
  5908. var sig = sign(hash, key, this._hashType, this._signType, this._tag)
  5909. return enc ? sig.toString(enc) : sig
  5910. }
  5911. function Verify (algorithm) {
  5912. stream.Writable.call(this)
  5913. var data = algorithms[algorithm]
  5914. if (!data) throw new Error('Unknown message digest')
  5915. this._hash = createHash(data.hash)
  5916. this._tag = data.id
  5917. this._signType = data.sign
  5918. }
  5919. inherits(Verify, stream.Writable)
  5920. Verify.prototype._write = function _write (data, _, done) {
  5921. this._hash.update(data)
  5922. done()
  5923. }
  5924. Verify.prototype.update = function update (data, enc) {
  5925. if (typeof data === 'string') data = new Buffer(data, enc)
  5926. this._hash.update(data)
  5927. return this
  5928. }
  5929. Verify.prototype.verify = function verifyMethod (key, sig, enc) {
  5930. if (typeof sig === 'string') sig = new Buffer(sig, enc)
  5931. this.end()
  5932. var hash = this._hash.digest()
  5933. return verify(sig, hash, key, this._signType, this._tag)
  5934. }
  5935. function createSign (algorithm) {
  5936. return new Sign(algorithm)
  5937. }
  5938. function createVerify (algorithm) {
  5939. return new Verify(algorithm)
  5940. }
  5941. module.exports = {
  5942. Sign: createSign,
  5943. Verify: createVerify,
  5944. createSign: createSign,
  5945. createVerify: createVerify
  5946. }
  5947. }).call(this,require("buffer").Buffer)
  5948. },{"./algorithms.json":48,"./sign":51,"./verify":52,"buffer":54,"create-hash":58,"inherits":108,"stream":157}],51:[function(require,module,exports){
  5949. (function (Buffer){
  5950. // much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js
  5951. var createHmac = require('create-hmac')
  5952. var crt = require('browserify-rsa')
  5953. var EC = require('elliptic').ec
  5954. var BN = require('bn.js')
  5955. var parseKeys = require('parse-asn1')
  5956. var curves = require('./curves.json')
  5957. function sign (hash, key, hashType, signType, tag) {
  5958. var priv = parseKeys(key)
  5959. if (priv.curve) {
  5960. // rsa keys can be interpreted as ecdsa ones in openssl
  5961. if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')
  5962. return ecSign(hash, priv)
  5963. } else if (priv.type === 'dsa') {
  5964. if (signType !== 'dsa') throw new Error('wrong private key type')
  5965. return dsaSign(hash, priv, hashType)
  5966. } else {
  5967. if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')
  5968. }
  5969. hash = Buffer.concat([tag, hash])
  5970. var len = priv.modulus.byteLength()
  5971. var pad = [ 0, 1 ]
  5972. while (hash.length + pad.length + 1 < len) pad.push(0xff)
  5973. pad.push(0x00)
  5974. var i = -1
  5975. while (++i < hash.length) pad.push(hash[i])
  5976. var out = crt(pad, priv)
  5977. return out
  5978. }
  5979. function ecSign (hash, priv) {
  5980. var curveId = curves[priv.curve.join('.')]
  5981. if (!curveId) throw new Error('unknown curve ' + priv.curve.join('.'))
  5982. var curve = new EC(curveId)
  5983. var key = curve.keyFromPrivate(priv.privateKey)
  5984. var out = key.sign(hash)
  5985. return new Buffer(out.toDER())
  5986. }
  5987. function dsaSign (hash, priv, algo) {
  5988. var x = priv.params.priv_key
  5989. var p = priv.params.p
  5990. var q = priv.params.q
  5991. var g = priv.params.g
  5992. var r = new BN(0)
  5993. var k
  5994. var H = bits2int(hash, q).mod(q)
  5995. var s = false
  5996. var kv = getKey(x, q, hash, algo)
  5997. while (s === false) {
  5998. k = makeKey(q, kv, algo)
  5999. r = makeR(g, k, p, q)
  6000. s = k.invm(q).imul(H.add(x.mul(r))).mod(q)
  6001. if (s.cmpn(0) === 0) {
  6002. s = false
  6003. r = new BN(0)
  6004. }
  6005. }
  6006. return toDER(r, s)
  6007. }
  6008. function toDER (r, s) {
  6009. r = r.toArray()
  6010. s = s.toArray()
  6011. // Pad values
  6012. if (r[0] & 0x80) r = [ 0 ].concat(r)
  6013. if (s[0] & 0x80) s = [ 0 ].concat(s)
  6014. var total = r.length + s.length + 4
  6015. var res = [ 0x30, total, 0x02, r.length ]
  6016. res = res.concat(r, [ 0x02, s.length ], s)
  6017. return new Buffer(res)
  6018. }
  6019. function getKey (x, q, hash, algo) {
  6020. x = new Buffer(x.toArray())
  6021. if (x.length < q.byteLength()) {
  6022. var zeros = new Buffer(q.byteLength() - x.length)
  6023. zeros.fill(0)
  6024. x = Buffer.concat([ zeros, x ])
  6025. }
  6026. var hlen = hash.length
  6027. var hbits = bits2octets(hash, q)
  6028. var v = new Buffer(hlen)
  6029. v.fill(1)
  6030. var k = new Buffer(hlen)
  6031. k.fill(0)
  6032. k = createHmac(algo, k).update(v).update(new Buffer([ 0 ])).update(x).update(hbits).digest()
  6033. v = createHmac(algo, k).update(v).digest()
  6034. k = createHmac(algo, k).update(v).update(new Buffer([ 1 ])).update(x).update(hbits).digest()
  6035. v = createHmac(algo, k).update(v).digest()
  6036. return { k: k, v: v }
  6037. }
  6038. function bits2int (obits, q) {
  6039. var bits = new BN(obits)
  6040. var shift = (obits.length << 3) - q.bitLength()
  6041. if (shift > 0) bits.ishrn(shift)
  6042. return bits
  6043. }
  6044. function bits2octets (bits, q) {
  6045. bits = bits2int(bits, q)
  6046. bits = bits.mod(q)
  6047. var out = new Buffer(bits.toArray())
  6048. if (out.length < q.byteLength()) {
  6049. var zeros = new Buffer(q.byteLength() - out.length)
  6050. zeros.fill(0)
  6051. out = Buffer.concat([ zeros, out ])
  6052. }
  6053. return out
  6054. }
  6055. function makeKey (q, kv, algo) {
  6056. var t
  6057. var k
  6058. do {
  6059. t = new Buffer(0)
  6060. while (t.length * 8 < q.bitLength()) {
  6061. kv.v = createHmac(algo, kv.k).update(kv.v).digest()
  6062. t = Buffer.concat([ t, kv.v ])
  6063. }
  6064. k = bits2int(t, q)
  6065. kv.k = createHmac(algo, kv.k).update(kv.v).update(new Buffer([ 0 ])).digest()
  6066. kv.v = createHmac(algo, kv.k).update(kv.v).digest()
  6067. } while (k.cmp(q) !== -1)
  6068. return k
  6069. }
  6070. function makeR (g, k, p, q) {
  6071. return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q)
  6072. }
  6073. module.exports = sign
  6074. module.exports.getKey = getKey
  6075. module.exports.makeKey = makeKey
  6076. }).call(this,require("buffer").Buffer)
  6077. },{"./curves.json":49,"bn.js":25,"browserify-rsa":46,"buffer":54,"create-hmac":61,"elliptic":74,"parse-asn1":118}],52:[function(require,module,exports){
  6078. (function (Buffer){
  6079. // much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js
  6080. var BN = require('bn.js')
  6081. var EC = require('elliptic').ec
  6082. var parseKeys = require('parse-asn1')
  6083. var curves = require('./curves.json')
  6084. function verify (sig, hash, key, signType, tag) {
  6085. var pub = parseKeys(key)
  6086. if (pub.type === 'ec') {
  6087. // rsa keys can be interpreted as ecdsa ones in openssl
  6088. if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')
  6089. return ecVerify(sig, hash, pub)
  6090. } else if (pub.type === 'dsa') {
  6091. if (signType !== 'dsa') throw new Error('wrong public key type')
  6092. return dsaVerify(sig, hash, pub)
  6093. } else {
  6094. if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')
  6095. }
  6096. hash = Buffer.concat([tag, hash])
  6097. var len = pub.modulus.byteLength()
  6098. var pad = [ 1 ]
  6099. var padNum = 0
  6100. while (hash.length + pad.length + 2 < len) {
  6101. pad.push(0xff)
  6102. padNum++
  6103. }
  6104. pad.push(0x00)
  6105. var i = -1
  6106. while (++i < hash.length) {
  6107. pad.push(hash[i])
  6108. }
  6109. pad = new Buffer(pad)
  6110. var red = BN.mont(pub.modulus)
  6111. sig = new BN(sig).toRed(red)
  6112. sig = sig.redPow(new BN(pub.publicExponent))
  6113. sig = new Buffer(sig.fromRed().toArray())
  6114. var out = padNum < 8 ? 1 : 0
  6115. len = Math.min(sig.length, pad.length)
  6116. if (sig.length !== pad.length) out = 1
  6117. i = -1
  6118. while (++i < len) out |= sig[i] ^ pad[i]
  6119. return out === 0
  6120. }
  6121. function ecVerify (sig, hash, pub) {
  6122. var curveId = curves[pub.data.algorithm.curve.join('.')]
  6123. if (!curveId) throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.'))
  6124. var curve = new EC(curveId)
  6125. var pubkey = pub.data.subjectPrivateKey.data
  6126. return curve.verify(hash, sig, pubkey)
  6127. }
  6128. function dsaVerify (sig, hash, pub) {
  6129. var p = pub.data.p
  6130. var q = pub.data.q
  6131. var g = pub.data.g
  6132. var y = pub.data.pub_key
  6133. var unpacked = parseKeys.signature.decode(sig, 'der')
  6134. var s = unpacked.s
  6135. var r = unpacked.r
  6136. checkValue(s, q)
  6137. checkValue(r, q)
  6138. var montp = BN.mont(p)
  6139. var w = s.invm(q)
  6140. var v = g.toRed(montp)
  6141. .redPow(new BN(hash).mul(w).mod(q))
  6142. .fromRed()
  6143. .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed())
  6144. .mod(p)
  6145. .mod(q)
  6146. return v.cmp(r) === 0
  6147. }
  6148. function checkValue (b, q) {
  6149. if (b.cmpn(0) <= 0) throw new Error('invalid sig')
  6150. if (b.cmp(q) >= q) throw new Error('invalid sig')
  6151. }
  6152. module.exports = verify
  6153. }).call(this,require("buffer").Buffer)
  6154. },{"./curves.json":49,"bn.js":25,"buffer":54,"elliptic":74,"parse-asn1":118}],53:[function(require,module,exports){
  6155. (function (Buffer){
  6156. module.exports = function xor (a, b) {
  6157. var length = Math.min(a.length, b.length)
  6158. var buffer = new Buffer(length)
  6159. for (var i = 0; i < length; ++i) {
  6160. buffer[i] = a[i] ^ b[i]
  6161. }
  6162. return buffer
  6163. }
  6164. }).call(this,require("buffer").Buffer)
  6165. },{"buffer":54}],54:[function(require,module,exports){
  6166. /*!
  6167. * The buffer module from node.js, for the browser.
  6168. *
  6169. * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
  6170. * @license MIT
  6171. */
  6172. /* eslint-disable no-proto */
  6173. 'use strict'
  6174. var base64 = require('base64-js')
  6175. var ieee754 = require('ieee754')
  6176. exports.Buffer = Buffer
  6177. exports.SlowBuffer = SlowBuffer
  6178. exports.INSPECT_MAX_BYTES = 50
  6179. var K_MAX_LENGTH = 0x7fffffff
  6180. exports.kMaxLength = K_MAX_LENGTH
  6181. /**
  6182. * If `Buffer.TYPED_ARRAY_SUPPORT`:
  6183. * === true Use Uint8Array implementation (fastest)
  6184. * === false Print warning and recommend using `buffer` v4.x which has an Object
  6185. * implementation (most compatible, even IE6)
  6186. *
  6187. * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,
  6188. * Opera 11.6+, iOS 4.2+.
  6189. *
  6190. * We report that the browser does not support typed arrays if the are not subclassable
  6191. * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`
  6192. * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support
  6193. * for __proto__ and has a buggy typed array implementation.
  6194. */
  6195. Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
  6196. if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
  6197. typeof console.error === 'function') {
  6198. console.error(
  6199. 'This browser lacks typed array (Uint8Array) support which is required by ' +
  6200. '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
  6201. )
  6202. }
  6203. function typedArraySupport () {
  6204. // Can typed array instances can be augmented?
  6205. try {
  6206. var arr = new Uint8Array(1)
  6207. arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}
  6208. return arr.foo() === 42
  6209. } catch (e) {
  6210. return false
  6211. }
  6212. }
  6213. function createBuffer (length) {
  6214. if (length > K_MAX_LENGTH) {
  6215. throw new RangeError('Invalid typed array length')
  6216. }
  6217. // Return an augmented `Uint8Array` instance
  6218. var buf = new Uint8Array(length)
  6219. buf.__proto__ = Buffer.prototype
  6220. return buf
  6221. }
  6222. /**
  6223. * The Buffer constructor returns instances of `Uint8Array` that have their
  6224. * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
  6225. * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
  6226. * and the `Uint8Array` methods. Square bracket notation works as expected -- it
  6227. * returns a single octet.
  6228. *
  6229. * The `Uint8Array` prototype remains unmodified.
  6230. */
  6231. function Buffer (arg, encodingOrOffset, length) {
  6232. // Common case.
  6233. if (typeof arg === 'number') {
  6234. if (typeof encodingOrOffset === 'string') {
  6235. throw new Error(
  6236. 'If encoding is specified then the first argument must be a string'
  6237. )
  6238. }
  6239. return allocUnsafe(arg)
  6240. }
  6241. return from(arg, encodingOrOffset, length)
  6242. }
  6243. // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97
  6244. if (typeof Symbol !== 'undefined' && Symbol.species &&
  6245. Buffer[Symbol.species] === Buffer) {
  6246. Object.defineProperty(Buffer, Symbol.species, {
  6247. value: null,
  6248. configurable: true,
  6249. enumerable: false,
  6250. writable: false
  6251. })
  6252. }
  6253. Buffer.poolSize = 8192 // not used by this implementation
  6254. function from (value, encodingOrOffset, length) {
  6255. if (typeof value === 'number') {
  6256. throw new TypeError('"value" argument must not be a number')
  6257. }
  6258. if (isArrayBuffer(value)) {
  6259. return fromArrayBuffer(value, encodingOrOffset, length)
  6260. }
  6261. if (typeof value === 'string') {
  6262. return fromString(value, encodingOrOffset)
  6263. }
  6264. return fromObject(value)
  6265. }
  6266. /**
  6267. * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
  6268. * if value is a number.
  6269. * Buffer.from(str[, encoding])
  6270. * Buffer.from(array)
  6271. * Buffer.from(buffer)
  6272. * Buffer.from(arrayBuffer[, byteOffset[, length]])
  6273. **/
  6274. Buffer.from = function (value, encodingOrOffset, length) {
  6275. return from(value, encodingOrOffset, length)
  6276. }
  6277. // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
  6278. // https://github.com/feross/buffer/pull/148
  6279. Buffer.prototype.__proto__ = Uint8Array.prototype
  6280. Buffer.__proto__ = Uint8Array
  6281. function assertSize (size) {
  6282. if (typeof size !== 'number') {
  6283. throw new TypeError('"size" argument must be a number')
  6284. } else if (size < 0) {
  6285. throw new RangeError('"size" argument must not be negative')
  6286. }
  6287. }
  6288. function alloc (size, fill, encoding) {
  6289. assertSize(size)
  6290. if (size <= 0) {
  6291. return createBuffer(size)
  6292. }
  6293. if (fill !== undefined) {
  6294. // Only pay attention to encoding if it's a string. This
  6295. // prevents accidentally sending in a number that would
  6296. // be interpretted as a start offset.
  6297. return typeof encoding === 'string'
  6298. ? createBuffer(size).fill(fill, encoding)
  6299. : createBuffer(size).fill(fill)
  6300. }
  6301. return createBuffer(size)
  6302. }
  6303. /**
  6304. * Creates a new filled Buffer instance.
  6305. * alloc(size[, fill[, encoding]])
  6306. **/
  6307. Buffer.alloc = function (size, fill, encoding) {
  6308. return alloc(size, fill, encoding)
  6309. }
  6310. function allocUnsafe (size) {
  6311. assertSize(size)
  6312. return createBuffer(size < 0 ? 0 : checked(size) | 0)
  6313. }
  6314. /**
  6315. * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
  6316. * */
  6317. Buffer.allocUnsafe = function (size) {
  6318. return allocUnsafe(size)
  6319. }
  6320. /**
  6321. * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
  6322. */
  6323. Buffer.allocUnsafeSlow = function (size) {
  6324. return allocUnsafe(size)
  6325. }
  6326. function fromString (string, encoding) {
  6327. if (typeof encoding !== 'string' || encoding === '') {
  6328. encoding = 'utf8'
  6329. }
  6330. if (!Buffer.isEncoding(encoding)) {
  6331. throw new TypeError('"encoding" must be a valid string encoding')
  6332. }
  6333. var length = byteLength(string, encoding) | 0
  6334. var buf = createBuffer(length)
  6335. var actual = buf.write(string, encoding)
  6336. if (actual !== length) {
  6337. // Writing a hex string, for example, that contains invalid characters will
  6338. // cause everything after the first invalid character to be ignored. (e.g.
  6339. // 'abxxcd' will be treated as 'ab')
  6340. buf = buf.slice(0, actual)
  6341. }
  6342. return buf
  6343. }
  6344. function fromArrayLike (array) {
  6345. var length = array.length < 0 ? 0 : checked(array.length) | 0
  6346. var buf = createBuffer(length)
  6347. for (var i = 0; i < length; i += 1) {
  6348. buf[i] = array[i] & 255
  6349. }
  6350. return buf
  6351. }
  6352. function fromArrayBuffer (array, byteOffset, length) {
  6353. if (byteOffset < 0 || array.byteLength < byteOffset) {
  6354. throw new RangeError('\'offset\' is out of bounds')
  6355. }
  6356. if (array.byteLength < byteOffset + (length || 0)) {
  6357. throw new RangeError('\'length\' is out of bounds')
  6358. }
  6359. var buf
  6360. if (byteOffset === undefined && length === undefined) {
  6361. buf = new Uint8Array(array)
  6362. } else if (length === undefined) {
  6363. buf = new Uint8Array(array, byteOffset)
  6364. } else {
  6365. buf = new Uint8Array(array, byteOffset, length)
  6366. }
  6367. // Return an augmented `Uint8Array` instance
  6368. buf.__proto__ = Buffer.prototype
  6369. return buf
  6370. }
  6371. function fromObject (obj) {
  6372. if (Buffer.isBuffer(obj)) {
  6373. var len = checked(obj.length) | 0
  6374. var buf = createBuffer(len)
  6375. if (buf.length === 0) {
  6376. return buf
  6377. }
  6378. obj.copy(buf, 0, 0, len)
  6379. return buf
  6380. }
  6381. if (obj) {
  6382. if (isArrayBufferView(obj) || 'length' in obj) {
  6383. if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {
  6384. return createBuffer(0)
  6385. }
  6386. return fromArrayLike(obj)
  6387. }
  6388. if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
  6389. return fromArrayLike(obj.data)
  6390. }
  6391. }
  6392. throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
  6393. }
  6394. function checked (length) {
  6395. // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
  6396. // length is NaN (which is otherwise coerced to zero.)
  6397. if (length >= K_MAX_LENGTH) {
  6398. throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
  6399. 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')
  6400. }
  6401. return length | 0
  6402. }
  6403. function SlowBuffer (length) {
  6404. if (+length != length) { // eslint-disable-line eqeqeq
  6405. length = 0
  6406. }
  6407. return Buffer.alloc(+length)
  6408. }
  6409. Buffer.isBuffer = function isBuffer (b) {
  6410. return b != null && b._isBuffer === true
  6411. }
  6412. Buffer.compare = function compare (a, b) {
  6413. if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
  6414. throw new TypeError('Arguments must be Buffers')
  6415. }
  6416. if (a === b) return 0
  6417. var x = a.length
  6418. var y = b.length
  6419. for (var i = 0, len = Math.min(x, y); i < len; ++i) {
  6420. if (a[i] !== b[i]) {
  6421. x = a[i]
  6422. y = b[i]
  6423. break
  6424. }
  6425. }
  6426. if (x < y) return -1
  6427. if (y < x) return 1
  6428. return 0
  6429. }
  6430. Buffer.isEncoding = function isEncoding (encoding) {
  6431. switch (String(encoding).toLowerCase()) {
  6432. case 'hex':
  6433. case 'utf8':
  6434. case 'utf-8':
  6435. case 'ascii':
  6436. case 'latin1':
  6437. case 'binary':
  6438. case 'base64':
  6439. case 'ucs2':
  6440. case 'ucs-2':
  6441. case 'utf16le':
  6442. case 'utf-16le':
  6443. return true
  6444. default:
  6445. return false
  6446. }
  6447. }
  6448. Buffer.concat = function concat (list, length) {
  6449. if (!Array.isArray(list)) {
  6450. throw new TypeError('"list" argument must be an Array of Buffers')
  6451. }
  6452. if (list.length === 0) {
  6453. return Buffer.alloc(0)
  6454. }
  6455. var i
  6456. if (length === undefined) {
  6457. length = 0
  6458. for (i = 0; i < list.length; ++i) {
  6459. length += list[i].length
  6460. }
  6461. }
  6462. var buffer = Buffer.allocUnsafe(length)
  6463. var pos = 0
  6464. for (i = 0; i < list.length; ++i) {
  6465. var buf = list[i]
  6466. if (!Buffer.isBuffer(buf)) {
  6467. throw new TypeError('"list" argument must be an Array of Buffers')
  6468. }
  6469. buf.copy(buffer, pos)
  6470. pos += buf.length
  6471. }
  6472. return buffer
  6473. }
  6474. function byteLength (string, encoding) {
  6475. if (Buffer.isBuffer(string)) {
  6476. return string.length
  6477. }
  6478. if (isArrayBufferView(string) || isArrayBuffer(string)) {
  6479. return string.byteLength
  6480. }
  6481. if (typeof string !== 'string') {
  6482. string = '' + string
  6483. }
  6484. var len = string.length
  6485. if (len === 0) return 0
  6486. // Use a for loop to avoid recursion
  6487. var loweredCase = false
  6488. for (;;) {
  6489. switch (encoding) {
  6490. case 'ascii':
  6491. case 'latin1':
  6492. case 'binary':
  6493. return len
  6494. case 'utf8':
  6495. case 'utf-8':
  6496. case undefined:
  6497. return utf8ToBytes(string).length
  6498. case 'ucs2':
  6499. case 'ucs-2':
  6500. case 'utf16le':
  6501. case 'utf-16le':
  6502. return len * 2
  6503. case 'hex':
  6504. return len >>> 1
  6505. case 'base64':
  6506. return base64ToBytes(string).length
  6507. default:
  6508. if (loweredCase) return utf8ToBytes(string).length // assume utf8
  6509. encoding = ('' + encoding).toLowerCase()
  6510. loweredCase = true
  6511. }
  6512. }
  6513. }
  6514. Buffer.byteLength = byteLength
  6515. function slowToString (encoding, start, end) {
  6516. var loweredCase = false
  6517. // No need to verify that "this.length <= MAX_UINT32" since it's a read-only
  6518. // property of a typed array.
  6519. // This behaves neither like String nor Uint8Array in that we set start/end
  6520. // to their upper/lower bounds if the value passed is out of range.
  6521. // undefined is handled specially as per ECMA-262 6th Edition,
  6522. // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
  6523. if (start === undefined || start < 0) {
  6524. start = 0
  6525. }
  6526. // Return early if start > this.length. Done here to prevent potential uint32
  6527. // coercion fail below.
  6528. if (start > this.length) {
  6529. return ''
  6530. }
  6531. if (end === undefined || end > this.length) {
  6532. end = this.length
  6533. }
  6534. if (end <= 0) {
  6535. return ''
  6536. }
  6537. // Force coersion to uint32. This will also coerce falsey/NaN values to 0.
  6538. end >>>= 0
  6539. start >>>= 0
  6540. if (end <= start) {
  6541. return ''
  6542. }
  6543. if (!encoding) encoding = 'utf8'
  6544. while (true) {
  6545. switch (encoding) {
  6546. case 'hex':
  6547. return hexSlice(this, start, end)
  6548. case 'utf8':
  6549. case 'utf-8':
  6550. return utf8Slice(this, start, end)
  6551. case 'ascii':
  6552. return asciiSlice(this, start, end)
  6553. case 'latin1':
  6554. case 'binary':
  6555. return latin1Slice(this, start, end)
  6556. case 'base64':
  6557. return base64Slice(this, start, end)
  6558. case 'ucs2':
  6559. case 'ucs-2':
  6560. case 'utf16le':
  6561. case 'utf-16le':
  6562. return utf16leSlice(this, start, end)
  6563. default:
  6564. if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
  6565. encoding = (encoding + '').toLowerCase()
  6566. loweredCase = true
  6567. }
  6568. }
  6569. }
  6570. // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
  6571. // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
  6572. // reliably in a browserify context because there could be multiple different
  6573. // copies of the 'buffer' package in use. This method works even for Buffer
  6574. // instances that were created from another copy of the `buffer` package.
  6575. // See: https://github.com/feross/buffer/issues/154
  6576. Buffer.prototype._isBuffer = true
  6577. function swap (b, n, m) {
  6578. var i = b[n]
  6579. b[n] = b[m]
  6580. b[m] = i
  6581. }
  6582. Buffer.prototype.swap16 = function swap16 () {
  6583. var len = this.length
  6584. if (len % 2 !== 0) {
  6585. throw new RangeError('Buffer size must be a multiple of 16-bits')
  6586. }
  6587. for (var i = 0; i < len; i += 2) {
  6588. swap(this, i, i + 1)
  6589. }
  6590. return this
  6591. }
  6592. Buffer.prototype.swap32 = function swap32 () {
  6593. var len = this.length
  6594. if (len % 4 !== 0) {
  6595. throw new RangeError('Buffer size must be a multiple of 32-bits')
  6596. }
  6597. for (var i = 0; i < len; i += 4) {
  6598. swap(this, i, i + 3)
  6599. swap(this, i + 1, i + 2)
  6600. }
  6601. return this
  6602. }
  6603. Buffer.prototype.swap64 = function swap64 () {
  6604. var len = this.length
  6605. if (len % 8 !== 0) {
  6606. throw new RangeError('Buffer size must be a multiple of 64-bits')
  6607. }
  6608. for (var i = 0; i < len; i += 8) {
  6609. swap(this, i, i + 7)
  6610. swap(this, i + 1, i + 6)
  6611. swap(this, i + 2, i + 5)
  6612. swap(this, i + 3, i + 4)
  6613. }
  6614. return this
  6615. }
  6616. Buffer.prototype.toString = function toString () {
  6617. var length = this.length
  6618. if (length === 0) return ''
  6619. if (arguments.length === 0) return utf8Slice(this, 0, length)
  6620. return slowToString.apply(this, arguments)
  6621. }
  6622. Buffer.prototype.equals = function equals (b) {
  6623. if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
  6624. if (this === b) return true
  6625. return Buffer.compare(this, b) === 0
  6626. }
  6627. Buffer.prototype.inspect = function inspect () {
  6628. var str = ''
  6629. var max = exports.INSPECT_MAX_BYTES
  6630. if (this.length > 0) {
  6631. str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')
  6632. if (this.length > max) str += ' ... '
  6633. }
  6634. return '<Buffer ' + str + '>'
  6635. }
  6636. Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
  6637. if (!Buffer.isBuffer(target)) {
  6638. throw new TypeError('Argument must be a Buffer')
  6639. }
  6640. if (start === undefined) {
  6641. start = 0
  6642. }
  6643. if (end === undefined) {
  6644. end = target ? target.length : 0
  6645. }
  6646. if (thisStart === undefined) {
  6647. thisStart = 0
  6648. }
  6649. if (thisEnd === undefined) {
  6650. thisEnd = this.length
  6651. }
  6652. if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {
  6653. throw new RangeError('out of range index')
  6654. }
  6655. if (thisStart >= thisEnd && start >= end) {
  6656. return 0
  6657. }
  6658. if (thisStart >= thisEnd) {
  6659. return -1
  6660. }
  6661. if (start >= end) {
  6662. return 1
  6663. }
  6664. start >>>= 0
  6665. end >>>= 0
  6666. thisStart >>>= 0
  6667. thisEnd >>>= 0
  6668. if (this === target) return 0
  6669. var x = thisEnd - thisStart
  6670. var y = end - start
  6671. var len = Math.min(x, y)
  6672. var thisCopy = this.slice(thisStart, thisEnd)
  6673. var targetCopy = target.slice(start, end)
  6674. for (var i = 0; i < len; ++i) {
  6675. if (thisCopy[i] !== targetCopy[i]) {
  6676. x = thisCopy[i]
  6677. y = targetCopy[i]
  6678. break
  6679. }
  6680. }
  6681. if (x < y) return -1
  6682. if (y < x) return 1
  6683. return 0
  6684. }
  6685. // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,
  6686. // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
  6687. //
  6688. // Arguments:
  6689. // - buffer - a Buffer to search
  6690. // - val - a string, Buffer, or number
  6691. // - byteOffset - an index into `buffer`; will be clamped to an int32
  6692. // - encoding - an optional encoding, relevant is val is a string
  6693. // - dir - true for indexOf, false for lastIndexOf
  6694. function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
  6695. // Empty buffer means no match
  6696. if (buffer.length === 0) return -1
  6697. // Normalize byteOffset
  6698. if (typeof byteOffset === 'string') {
  6699. encoding = byteOffset
  6700. byteOffset = 0
  6701. } else if (byteOffset > 0x7fffffff) {
  6702. byteOffset = 0x7fffffff
  6703. } else if (byteOffset < -0x80000000) {
  6704. byteOffset = -0x80000000
  6705. }
  6706. byteOffset = +byteOffset // Coerce to Number.
  6707. if (numberIsNaN(byteOffset)) {
  6708. // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer
  6709. byteOffset = dir ? 0 : (buffer.length - 1)
  6710. }
  6711. // Normalize byteOffset: negative offsets start from the end of the buffer
  6712. if (byteOffset < 0) byteOffset = buffer.length + byteOffset
  6713. if (byteOffset >= buffer.length) {
  6714. if (dir) return -1
  6715. else byteOffset = buffer.length - 1
  6716. } else if (byteOffset < 0) {
  6717. if (dir) byteOffset = 0
  6718. else return -1
  6719. }
  6720. // Normalize val
  6721. if (typeof val === 'string') {
  6722. val = Buffer.from(val, encoding)
  6723. }
  6724. // Finally, search either indexOf (if dir is true) or lastIndexOf
  6725. if (Buffer.isBuffer(val)) {
  6726. // Special case: looking for empty string/buffer always fails
  6727. if (val.length === 0) {
  6728. return -1
  6729. }
  6730. return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
  6731. } else if (typeof val === 'number') {
  6732. val = val & 0xFF // Search for a byte value [0-255]
  6733. if (typeof Uint8Array.prototype.indexOf === 'function') {
  6734. if (dir) {
  6735. return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
  6736. } else {
  6737. return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
  6738. }
  6739. }
  6740. return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
  6741. }
  6742. throw new TypeError('val must be string, number or Buffer')
  6743. }
  6744. function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
  6745. var indexSize = 1
  6746. var arrLength = arr.length
  6747. var valLength = val.length
  6748. if (encoding !== undefined) {
  6749. encoding = String(encoding).toLowerCase()
  6750. if (encoding === 'ucs2' || encoding === 'ucs-2' ||
  6751. encoding === 'utf16le' || encoding === 'utf-16le') {
  6752. if (arr.length < 2 || val.length < 2) {
  6753. return -1
  6754. }
  6755. indexSize = 2
  6756. arrLength /= 2
  6757. valLength /= 2
  6758. byteOffset /= 2
  6759. }
  6760. }
  6761. function read (buf, i) {
  6762. if (indexSize === 1) {
  6763. return buf[i]
  6764. } else {
  6765. return buf.readUInt16BE(i * indexSize)
  6766. }
  6767. }
  6768. var i
  6769. if (dir) {
  6770. var foundIndex = -1
  6771. for (i = byteOffset; i < arrLength; i++) {
  6772. if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {
  6773. if (foundIndex === -1) foundIndex = i
  6774. if (i - foundIndex + 1 === valLength) return foundIndex * indexSize
  6775. } else {
  6776. if (foundIndex !== -1) i -= i - foundIndex
  6777. foundIndex = -1
  6778. }
  6779. }
  6780. } else {
  6781. if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength
  6782. for (i = byteOffset; i >= 0; i--) {
  6783. var found = true
  6784. for (var j = 0; j < valLength; j++) {
  6785. if (read(arr, i + j) !== read(val, j)) {
  6786. found = false
  6787. break
  6788. }
  6789. }
  6790. if (found) return i
  6791. }
  6792. }
  6793. return -1
  6794. }
  6795. Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
  6796. return this.indexOf(val, byteOffset, encoding) !== -1
  6797. }
  6798. Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
  6799. return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
  6800. }
  6801. Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
  6802. return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
  6803. }
  6804. function hexWrite (buf, string, offset, length) {
  6805. offset = Number(offset) || 0
  6806. var remaining = buf.length - offset
  6807. if (!length) {
  6808. length = remaining
  6809. } else {
  6810. length = Number(length)
  6811. if (length > remaining) {
  6812. length = remaining
  6813. }
  6814. }
  6815. // must be an even number of digits
  6816. var strLen = string.length
  6817. if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')
  6818. if (length > strLen / 2) {
  6819. length = strLen / 2
  6820. }
  6821. for (var i = 0; i < length; ++i) {
  6822. var parsed = parseInt(string.substr(i * 2, 2), 16)
  6823. if (numberIsNaN(parsed)) return i
  6824. buf[offset + i] = parsed
  6825. }
  6826. return i
  6827. }
  6828. function utf8Write (buf, string, offset, length) {
  6829. return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
  6830. }
  6831. function asciiWrite (buf, string, offset, length) {
  6832. return blitBuffer(asciiToBytes(string), buf, offset, length)
  6833. }
  6834. function latin1Write (buf, string, offset, length) {
  6835. return asciiWrite(buf, string, offset, length)
  6836. }
  6837. function base64Write (buf, string, offset, length) {
  6838. return blitBuffer(base64ToBytes(string), buf, offset, length)
  6839. }
  6840. function ucs2Write (buf, string, offset, length) {
  6841. return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
  6842. }
  6843. Buffer.prototype.write = function write (string, offset, length, encoding) {
  6844. // Buffer#write(string)
  6845. if (offset === undefined) {
  6846. encoding = 'utf8'
  6847. length = this.length
  6848. offset = 0
  6849. // Buffer#write(string, encoding)
  6850. } else if (length === undefined && typeof offset === 'string') {
  6851. encoding = offset
  6852. length = this.length
  6853. offset = 0
  6854. // Buffer#write(string, offset[, length][, encoding])
  6855. } else if (isFinite(offset)) {
  6856. offset = offset >>> 0
  6857. if (isFinite(length)) {
  6858. length = length >>> 0
  6859. if (encoding === undefined) encoding = 'utf8'
  6860. } else {
  6861. encoding = length
  6862. length = undefined
  6863. }
  6864. } else {
  6865. throw new Error(
  6866. 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
  6867. )
  6868. }
  6869. var remaining = this.length - offset
  6870. if (length === undefined || length > remaining) length = remaining
  6871. if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {
  6872. throw new RangeError('Attempt to write outside buffer bounds')
  6873. }
  6874. if (!encoding) encoding = 'utf8'
  6875. var loweredCase = false
  6876. for (;;) {
  6877. switch (encoding) {
  6878. case 'hex':
  6879. return hexWrite(this, string, offset, length)
  6880. case 'utf8':
  6881. case 'utf-8':
  6882. return utf8Write(this, string, offset, length)
  6883. case 'ascii':
  6884. return asciiWrite(this, string, offset, length)
  6885. case 'latin1':
  6886. case 'binary':
  6887. return latin1Write(this, string, offset, length)
  6888. case 'base64':
  6889. // Warning: maxLength not taken into account in base64Write
  6890. return base64Write(this, string, offset, length)
  6891. case 'ucs2':
  6892. case 'ucs-2':
  6893. case 'utf16le':
  6894. case 'utf-16le':
  6895. return ucs2Write(this, string, offset, length)
  6896. default:
  6897. if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
  6898. encoding = ('' + encoding).toLowerCase()
  6899. loweredCase = true
  6900. }
  6901. }
  6902. }
  6903. Buffer.prototype.toJSON = function toJSON () {
  6904. return {
  6905. type: 'Buffer',
  6906. data: Array.prototype.slice.call(this._arr || this, 0)
  6907. }
  6908. }
  6909. function base64Slice (buf, start, end) {
  6910. if (start === 0 && end === buf.length) {
  6911. return base64.fromByteArray(buf)
  6912. } else {
  6913. return base64.fromByteArray(buf.slice(start, end))
  6914. }
  6915. }
  6916. function utf8Slice (buf, start, end) {
  6917. end = Math.min(buf.length, end)
  6918. var res = []
  6919. var i = start
  6920. while (i < end) {
  6921. var firstByte = buf[i]
  6922. var codePoint = null
  6923. var bytesPerSequence = (firstByte > 0xEF) ? 4
  6924. : (firstByte > 0xDF) ? 3
  6925. : (firstByte > 0xBF) ? 2
  6926. : 1
  6927. if (i + bytesPerSequence <= end) {
  6928. var secondByte, thirdByte, fourthByte, tempCodePoint
  6929. switch (bytesPerSequence) {
  6930. case 1:
  6931. if (firstByte < 0x80) {
  6932. codePoint = firstByte
  6933. }
  6934. break
  6935. case 2:
  6936. secondByte = buf[i + 1]
  6937. if ((secondByte & 0xC0) === 0x80) {
  6938. tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)
  6939. if (tempCodePoint > 0x7F) {
  6940. codePoint = tempCodePoint
  6941. }
  6942. }
  6943. break
  6944. case 3:
  6945. secondByte = buf[i + 1]
  6946. thirdByte = buf[i + 2]
  6947. if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {
  6948. tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)
  6949. if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {
  6950. codePoint = tempCodePoint
  6951. }
  6952. }
  6953. break
  6954. case 4:
  6955. secondByte = buf[i + 1]
  6956. thirdByte = buf[i + 2]
  6957. fourthByte = buf[i + 3]
  6958. if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {
  6959. tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)
  6960. if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {
  6961. codePoint = tempCodePoint
  6962. }
  6963. }
  6964. }
  6965. }
  6966. if (codePoint === null) {
  6967. // we did not generate a valid codePoint so insert a
  6968. // replacement char (U+FFFD) and advance only 1 byte
  6969. codePoint = 0xFFFD
  6970. bytesPerSequence = 1
  6971. } else if (codePoint > 0xFFFF) {
  6972. // encode to utf16 (surrogate pair dance)
  6973. codePoint -= 0x10000
  6974. res.push(codePoint >>> 10 & 0x3FF | 0xD800)
  6975. codePoint = 0xDC00 | codePoint & 0x3FF
  6976. }
  6977. res.push(codePoint)
  6978. i += bytesPerSequence
  6979. }
  6980. return decodeCodePointsArray(res)
  6981. }
  6982. // Based on http://stackoverflow.com/a/22747272/680742, the browser with
  6983. // the lowest limit is Chrome, with 0x10000 args.
  6984. // We go 1 magnitude less, for safety
  6985. var MAX_ARGUMENTS_LENGTH = 0x1000
  6986. function decodeCodePointsArray (codePoints) {
  6987. var len = codePoints.length
  6988. if (len <= MAX_ARGUMENTS_LENGTH) {
  6989. return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
  6990. }
  6991. // Decode in chunks to avoid "call stack size exceeded".
  6992. var res = ''
  6993. var i = 0
  6994. while (i < len) {
  6995. res += String.fromCharCode.apply(
  6996. String,
  6997. codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
  6998. )
  6999. }
  7000. return res
  7001. }
  7002. function asciiSlice (buf, start, end) {
  7003. var ret = ''
  7004. end = Math.min(buf.length, end)
  7005. for (var i = start; i < end; ++i) {
  7006. ret += String.fromCharCode(buf[i] & 0x7F)
  7007. }
  7008. return ret
  7009. }
  7010. function latin1Slice (buf, start, end) {
  7011. var ret = ''
  7012. end = Math.min(buf.length, end)
  7013. for (var i = start; i < end; ++i) {
  7014. ret += String.fromCharCode(buf[i])
  7015. }
  7016. return ret
  7017. }
  7018. function hexSlice (buf, start, end) {
  7019. var len = buf.length
  7020. if (!start || start < 0) start = 0
  7021. if (!end || end < 0 || end > len) end = len
  7022. var out = ''
  7023. for (var i = start; i < end; ++i) {
  7024. out += toHex(buf[i])
  7025. }
  7026. return out
  7027. }
  7028. function utf16leSlice (buf, start, end) {
  7029. var bytes = buf.slice(start, end)
  7030. var res = ''
  7031. for (var i = 0; i < bytes.length; i += 2) {
  7032. res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))
  7033. }
  7034. return res
  7035. }
  7036. Buffer.prototype.slice = function slice (start, end) {
  7037. var len = this.length
  7038. start = ~~start
  7039. end = end === undefined ? len : ~~end
  7040. if (start < 0) {
  7041. start += len
  7042. if (start < 0) start = 0
  7043. } else if (start > len) {
  7044. start = len
  7045. }
  7046. if (end < 0) {
  7047. end += len
  7048. if (end < 0) end = 0
  7049. } else if (end > len) {
  7050. end = len
  7051. }
  7052. if (end < start) end = start
  7053. var newBuf = this.subarray(start, end)
  7054. // Return an augmented `Uint8Array` instance
  7055. newBuf.__proto__ = Buffer.prototype
  7056. return newBuf
  7057. }
  7058. /*
  7059. * Need to make sure that buffer isn't trying to write out of bounds.
  7060. */
  7061. function checkOffset (offset, ext, length) {
  7062. if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')
  7063. if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')
  7064. }
  7065. Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
  7066. offset = offset >>> 0
  7067. byteLength = byteLength >>> 0
  7068. if (!noAssert) checkOffset(offset, byteLength, this.length)
  7069. var val = this[offset]
  7070. var mul = 1
  7071. var i = 0
  7072. while (++i < byteLength && (mul *= 0x100)) {
  7073. val += this[offset + i] * mul
  7074. }
  7075. return val
  7076. }
  7077. Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
  7078. offset = offset >>> 0
  7079. byteLength = byteLength >>> 0
  7080. if (!noAssert) {
  7081. checkOffset(offset, byteLength, this.length)
  7082. }
  7083. var val = this[offset + --byteLength]
  7084. var mul = 1
  7085. while (byteLength > 0 && (mul *= 0x100)) {
  7086. val += this[offset + --byteLength] * mul
  7087. }
  7088. return val
  7089. }
  7090. Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
  7091. offset = offset >>> 0
  7092. if (!noAssert) checkOffset(offset, 1, this.length)
  7093. return this[offset]
  7094. }
  7095. Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
  7096. offset = offset >>> 0
  7097. if (!noAssert) checkOffset(offset, 2, this.length)
  7098. return this[offset] | (this[offset + 1] << 8)
  7099. }
  7100. Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
  7101. offset = offset >>> 0
  7102. if (!noAssert) checkOffset(offset, 2, this.length)
  7103. return (this[offset] << 8) | this[offset + 1]
  7104. }
  7105. Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
  7106. offset = offset >>> 0
  7107. if (!noAssert) checkOffset(offset, 4, this.length)
  7108. return ((this[offset]) |
  7109. (this[offset + 1] << 8) |
  7110. (this[offset + 2] << 16)) +
  7111. (this[offset + 3] * 0x1000000)
  7112. }
  7113. Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
  7114. offset = offset >>> 0
  7115. if (!noAssert) checkOffset(offset, 4, this.length)
  7116. return (this[offset] * 0x1000000) +
  7117. ((this[offset + 1] << 16) |
  7118. (this[offset + 2] << 8) |
  7119. this[offset + 3])
  7120. }
  7121. Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
  7122. offset = offset >>> 0
  7123. byteLength = byteLength >>> 0
  7124. if (!noAssert) checkOffset(offset, byteLength, this.length)
  7125. var val = this[offset]
  7126. var mul = 1
  7127. var i = 0
  7128. while (++i < byteLength && (mul *= 0x100)) {
  7129. val += this[offset + i] * mul
  7130. }
  7131. mul *= 0x80
  7132. if (val >= mul) val -= Math.pow(2, 8 * byteLength)
  7133. return val
  7134. }
  7135. Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
  7136. offset = offset >>> 0
  7137. byteLength = byteLength >>> 0
  7138. if (!noAssert) checkOffset(offset, byteLength, this.length)
  7139. var i = byteLength
  7140. var mul = 1
  7141. var val = this[offset + --i]
  7142. while (i > 0 && (mul *= 0x100)) {
  7143. val += this[offset + --i] * mul
  7144. }
  7145. mul *= 0x80
  7146. if (val >= mul) val -= Math.pow(2, 8 * byteLength)
  7147. return val
  7148. }
  7149. Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
  7150. offset = offset >>> 0
  7151. if (!noAssert) checkOffset(offset, 1, this.length)
  7152. if (!(this[offset] & 0x80)) return (this[offset])
  7153. return ((0xff - this[offset] + 1) * -1)
  7154. }
  7155. Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
  7156. offset = offset >>> 0
  7157. if (!noAssert) checkOffset(offset, 2, this.length)
  7158. var val = this[offset] | (this[offset + 1] << 8)
  7159. return (val & 0x8000) ? val | 0xFFFF0000 : val
  7160. }
  7161. Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
  7162. offset = offset >>> 0
  7163. if (!noAssert) checkOffset(offset, 2, this.length)
  7164. var val = this[offset + 1] | (this[offset] << 8)
  7165. return (val & 0x8000) ? val | 0xFFFF0000 : val
  7166. }
  7167. Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
  7168. offset = offset >>> 0
  7169. if (!noAssert) checkOffset(offset, 4, this.length)
  7170. return (this[offset]) |
  7171. (this[offset + 1] << 8) |
  7172. (this[offset + 2] << 16) |
  7173. (this[offset + 3] << 24)
  7174. }
  7175. Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
  7176. offset = offset >>> 0
  7177. if (!noAssert) checkOffset(offset, 4, this.length)
  7178. return (this[offset] << 24) |
  7179. (this[offset + 1] << 16) |
  7180. (this[offset + 2] << 8) |
  7181. (this[offset + 3])
  7182. }
  7183. Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
  7184. offset = offset >>> 0
  7185. if (!noAssert) checkOffset(offset, 4, this.length)
  7186. return ieee754.read(this, offset, true, 23, 4)
  7187. }
  7188. Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
  7189. offset = offset >>> 0
  7190. if (!noAssert) checkOffset(offset, 4, this.length)
  7191. return ieee754.read(this, offset, false, 23, 4)
  7192. }
  7193. Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
  7194. offset = offset >>> 0
  7195. if (!noAssert) checkOffset(offset, 8, this.length)
  7196. return ieee754.read(this, offset, true, 52, 8)
  7197. }
  7198. Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
  7199. offset = offset >>> 0
  7200. if (!noAssert) checkOffset(offset, 8, this.length)
  7201. return ieee754.read(this, offset, false, 52, 8)
  7202. }
  7203. function checkInt (buf, value, offset, ext, max, min) {
  7204. if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance')
  7205. if (value > max || value < min) throw new RangeError('"value" argument is out of bounds')
  7206. if (offset + ext > buf.length) throw new RangeError('Index out of range')
  7207. }
  7208. Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
  7209. value = +value
  7210. offset = offset >>> 0
  7211. byteLength = byteLength >>> 0
  7212. if (!noAssert) {
  7213. var maxBytes = Math.pow(2, 8 * byteLength) - 1
  7214. checkInt(this, value, offset, byteLength, maxBytes, 0)
  7215. }
  7216. var mul = 1
  7217. var i = 0
  7218. this[offset] = value & 0xFF
  7219. while (++i < byteLength && (mul *= 0x100)) {
  7220. this[offset + i] = (value / mul) & 0xFF
  7221. }
  7222. return offset + byteLength
  7223. }
  7224. Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
  7225. value = +value
  7226. offset = offset >>> 0
  7227. byteLength = byteLength >>> 0
  7228. if (!noAssert) {
  7229. var maxBytes = Math.pow(2, 8 * byteLength) - 1
  7230. checkInt(this, value, offset, byteLength, maxBytes, 0)
  7231. }
  7232. var i = byteLength - 1
  7233. var mul = 1
  7234. this[offset + i] = value & 0xFF
  7235. while (--i >= 0 && (mul *= 0x100)) {
  7236. this[offset + i] = (value / mul) & 0xFF
  7237. }
  7238. return offset + byteLength
  7239. }
  7240. Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
  7241. value = +value
  7242. offset = offset >>> 0
  7243. if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)
  7244. this[offset] = (value & 0xff)
  7245. return offset + 1
  7246. }
  7247. Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
  7248. value = +value
  7249. offset = offset >>> 0
  7250. if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)
  7251. this[offset] = (value & 0xff)
  7252. this[offset + 1] = (value >>> 8)
  7253. return offset + 2
  7254. }
  7255. Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
  7256. value = +value
  7257. offset = offset >>> 0
  7258. if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)
  7259. this[offset] = (value >>> 8)
  7260. this[offset + 1] = (value & 0xff)
  7261. return offset + 2
  7262. }
  7263. Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
  7264. value = +value
  7265. offset = offset >>> 0
  7266. if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)
  7267. this[offset + 3] = (value >>> 24)
  7268. this[offset + 2] = (value >>> 16)
  7269. this[offset + 1] = (value >>> 8)
  7270. this[offset] = (value & 0xff)
  7271. return offset + 4
  7272. }
  7273. Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
  7274. value = +value
  7275. offset = offset >>> 0
  7276. if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)
  7277. this[offset] = (value >>> 24)
  7278. this[offset + 1] = (value >>> 16)
  7279. this[offset + 2] = (value >>> 8)
  7280. this[offset + 3] = (value & 0xff)
  7281. return offset + 4
  7282. }
  7283. Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
  7284. value = +value
  7285. offset = offset >>> 0
  7286. if (!noAssert) {
  7287. var limit = Math.pow(2, (8 * byteLength) - 1)
  7288. checkInt(this, value, offset, byteLength, limit - 1, -limit)
  7289. }
  7290. var i = 0
  7291. var mul = 1
  7292. var sub = 0
  7293. this[offset] = value & 0xFF
  7294. while (++i < byteLength && (mul *= 0x100)) {
  7295. if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {
  7296. sub = 1
  7297. }
  7298. this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
  7299. }
  7300. return offset + byteLength
  7301. }
  7302. Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
  7303. value = +value
  7304. offset = offset >>> 0
  7305. if (!noAssert) {
  7306. var limit = Math.pow(2, (8 * byteLength) - 1)
  7307. checkInt(this, value, offset, byteLength, limit - 1, -limit)
  7308. }
  7309. var i = byteLength - 1
  7310. var mul = 1
  7311. var sub = 0
  7312. this[offset + i] = value & 0xFF
  7313. while (--i >= 0 && (mul *= 0x100)) {
  7314. if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {
  7315. sub = 1
  7316. }
  7317. this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
  7318. }
  7319. return offset + byteLength
  7320. }
  7321. Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
  7322. value = +value
  7323. offset = offset >>> 0
  7324. if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)
  7325. if (value < 0) value = 0xff + value + 1
  7326. this[offset] = (value & 0xff)
  7327. return offset + 1
  7328. }
  7329. Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
  7330. value = +value
  7331. offset = offset >>> 0
  7332. if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)
  7333. this[offset] = (value & 0xff)
  7334. this[offset + 1] = (value >>> 8)
  7335. return offset + 2
  7336. }
  7337. Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
  7338. value = +value
  7339. offset = offset >>> 0
  7340. if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)
  7341. this[offset] = (value >>> 8)
  7342. this[offset + 1] = (value & 0xff)
  7343. return offset + 2
  7344. }
  7345. Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
  7346. value = +value
  7347. offset = offset >>> 0
  7348. if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
  7349. this[offset] = (value & 0xff)
  7350. this[offset + 1] = (value >>> 8)
  7351. this[offset + 2] = (value >>> 16)
  7352. this[offset + 3] = (value >>> 24)
  7353. return offset + 4
  7354. }
  7355. Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
  7356. value = +value
  7357. offset = offset >>> 0
  7358. if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
  7359. if (value < 0) value = 0xffffffff + value + 1
  7360. this[offset] = (value >>> 24)
  7361. this[offset + 1] = (value >>> 16)
  7362. this[offset + 2] = (value >>> 8)
  7363. this[offset + 3] = (value & 0xff)
  7364. return offset + 4
  7365. }
  7366. function checkIEEE754 (buf, value, offset, ext, max, min) {
  7367. if (offset + ext > buf.length) throw new RangeError('Index out of range')
  7368. if (offset < 0) throw new RangeError('Index out of range')
  7369. }
  7370. function writeFloat (buf, value, offset, littleEndian, noAssert) {
  7371. value = +value
  7372. offset = offset >>> 0
  7373. if (!noAssert) {
  7374. checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)
  7375. }
  7376. ieee754.write(buf, value, offset, littleEndian, 23, 4)
  7377. return offset + 4
  7378. }
  7379. Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
  7380. return writeFloat(this, value, offset, true, noAssert)
  7381. }
  7382. Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
  7383. return writeFloat(this, value, offset, false, noAssert)
  7384. }
  7385. function writeDouble (buf, value, offset, littleEndian, noAssert) {
  7386. value = +value
  7387. offset = offset >>> 0
  7388. if (!noAssert) {
  7389. checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)
  7390. }
  7391. ieee754.write(buf, value, offset, littleEndian, 52, 8)
  7392. return offset + 8
  7393. }
  7394. Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
  7395. return writeDouble(this, value, offset, true, noAssert)
  7396. }
  7397. Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
  7398. return writeDouble(this, value, offset, false, noAssert)
  7399. }
  7400. // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)
  7401. Buffer.prototype.copy = function copy (target, targetStart, start, end) {
  7402. if (!start) start = 0
  7403. if (!end && end !== 0) end = this.length
  7404. if (targetStart >= target.length) targetStart = target.length
  7405. if (!targetStart) targetStart = 0
  7406. if (end > 0 && end < start) end = start
  7407. // Copy 0 bytes; we're done
  7408. if (end === start) return 0
  7409. if (target.length === 0 || this.length === 0) return 0
  7410. // Fatal error conditions
  7411. if (targetStart < 0) {
  7412. throw new RangeError('targetStart out of bounds')
  7413. }
  7414. if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')
  7415. if (end < 0) throw new RangeError('sourceEnd out of bounds')
  7416. // Are we oob?
  7417. if (end > this.length) end = this.length
  7418. if (target.length - targetStart < end - start) {
  7419. end = target.length - targetStart + start
  7420. }
  7421. var len = end - start
  7422. var i
  7423. if (this === target && start < targetStart && targetStart < end) {
  7424. // descending copy from end
  7425. for (i = len - 1; i >= 0; --i) {
  7426. target[i + targetStart] = this[i + start]
  7427. }
  7428. } else if (len < 1000) {
  7429. // ascending copy from start
  7430. for (i = 0; i < len; ++i) {
  7431. target[i + targetStart] = this[i + start]
  7432. }
  7433. } else {
  7434. Uint8Array.prototype.set.call(
  7435. target,
  7436. this.subarray(start, start + len),
  7437. targetStart
  7438. )
  7439. }
  7440. return len
  7441. }
  7442. // Usage:
  7443. // buffer.fill(number[, offset[, end]])
  7444. // buffer.fill(buffer[, offset[, end]])
  7445. // buffer.fill(string[, offset[, end]][, encoding])
  7446. Buffer.prototype.fill = function fill (val, start, end, encoding) {
  7447. // Handle string cases:
  7448. if (typeof val === 'string') {
  7449. if (typeof start === 'string') {
  7450. encoding = start
  7451. start = 0
  7452. end = this.length
  7453. } else if (typeof end === 'string') {
  7454. encoding = end
  7455. end = this.length
  7456. }
  7457. if (val.length === 1) {
  7458. var code = val.charCodeAt(0)
  7459. if (code < 256) {
  7460. val = code
  7461. }
  7462. }
  7463. if (encoding !== undefined && typeof encoding !== 'string') {
  7464. throw new TypeError('encoding must be a string')
  7465. }
  7466. if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
  7467. throw new TypeError('Unknown encoding: ' + encoding)
  7468. }
  7469. } else if (typeof val === 'number') {
  7470. val = val & 255
  7471. }
  7472. // Invalid ranges are not set to a default, so can range check early.
  7473. if (start < 0 || this.length < start || this.length < end) {
  7474. throw new RangeError('Out of range index')
  7475. }
  7476. if (end <= start) {
  7477. return this
  7478. }
  7479. start = start >>> 0
  7480. end = end === undefined ? this.length : end >>> 0
  7481. if (!val) val = 0
  7482. var i
  7483. if (typeof val === 'number') {
  7484. for (i = start; i < end; ++i) {
  7485. this[i] = val
  7486. }
  7487. } else {
  7488. var bytes = Buffer.isBuffer(val)
  7489. ? val
  7490. : new Buffer(val, encoding)
  7491. var len = bytes.length
  7492. for (i = 0; i < end - start; ++i) {
  7493. this[i + start] = bytes[i % len]
  7494. }
  7495. }
  7496. return this
  7497. }
  7498. // HELPER FUNCTIONS
  7499. // ================
  7500. var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g
  7501. function base64clean (str) {
  7502. // Node strips out invalid characters like \n and \t from the string, base64-js does not
  7503. str = str.trim().replace(INVALID_BASE64_RE, '')
  7504. // Node converts strings with length < 2 to ''
  7505. if (str.length < 2) return ''
  7506. // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
  7507. while (str.length % 4 !== 0) {
  7508. str = str + '='
  7509. }
  7510. return str
  7511. }
  7512. function toHex (n) {
  7513. if (n < 16) return '0' + n.toString(16)
  7514. return n.toString(16)
  7515. }
  7516. function utf8ToBytes (string, units) {
  7517. units = units || Infinity
  7518. var codePoint
  7519. var length = string.length
  7520. var leadSurrogate = null
  7521. var bytes = []
  7522. for (var i = 0; i < length; ++i) {
  7523. codePoint = string.charCodeAt(i)
  7524. // is surrogate component
  7525. if (codePoint > 0xD7FF && codePoint < 0xE000) {
  7526. // last char was a lead
  7527. if (!leadSurrogate) {
  7528. // no lead yet
  7529. if (codePoint > 0xDBFF) {
  7530. // unexpected trail
  7531. if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
  7532. continue
  7533. } else if (i + 1 === length) {
  7534. // unpaired lead
  7535. if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
  7536. continue
  7537. }
  7538. // valid lead
  7539. leadSurrogate = codePoint
  7540. continue
  7541. }
  7542. // 2 leads in a row
  7543. if (codePoint < 0xDC00) {
  7544. if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
  7545. leadSurrogate = codePoint
  7546. continue
  7547. }
  7548. // valid surrogate pair
  7549. codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000
  7550. } else if (leadSurrogate) {
  7551. // valid bmp char, but last char was a lead
  7552. if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
  7553. }
  7554. leadSurrogate = null
  7555. // encode utf8
  7556. if (codePoint < 0x80) {
  7557. if ((units -= 1) < 0) break
  7558. bytes.push(codePoint)
  7559. } else if (codePoint < 0x800) {
  7560. if ((units -= 2) < 0) break
  7561. bytes.push(
  7562. codePoint >> 0x6 | 0xC0,
  7563. codePoint & 0x3F | 0x80
  7564. )
  7565. } else if (codePoint < 0x10000) {
  7566. if ((units -= 3) < 0) break
  7567. bytes.push(
  7568. codePoint >> 0xC | 0xE0,
  7569. codePoint >> 0x6 & 0x3F | 0x80,
  7570. codePoint & 0x3F | 0x80
  7571. )
  7572. } else if (codePoint < 0x110000) {
  7573. if ((units -= 4) < 0) break
  7574. bytes.push(
  7575. codePoint >> 0x12 | 0xF0,
  7576. codePoint >> 0xC & 0x3F | 0x80,
  7577. codePoint >> 0x6 & 0x3F | 0x80,
  7578. codePoint & 0x3F | 0x80
  7579. )
  7580. } else {
  7581. throw new Error('Invalid code point')
  7582. }
  7583. }
  7584. return bytes
  7585. }
  7586. function asciiToBytes (str) {
  7587. var byteArray = []
  7588. for (var i = 0; i < str.length; ++i) {
  7589. // Node's code seems to be doing this and not & 0x7F..
  7590. byteArray.push(str.charCodeAt(i) & 0xFF)
  7591. }
  7592. return byteArray
  7593. }
  7594. function utf16leToBytes (str, units) {
  7595. var c, hi, lo
  7596. var byteArray = []
  7597. for (var i = 0; i < str.length; ++i) {
  7598. if ((units -= 2) < 0) break
  7599. c = str.charCodeAt(i)
  7600. hi = c >> 8
  7601. lo = c % 256
  7602. byteArray.push(lo)
  7603. byteArray.push(hi)
  7604. }
  7605. return byteArray
  7606. }
  7607. function base64ToBytes (str) {
  7608. return base64.toByteArray(base64clean(str))
  7609. }
  7610. function blitBuffer (src, dst, offset, length) {
  7611. for (var i = 0; i < length; ++i) {
  7612. if ((i + offset >= dst.length) || (i >= src.length)) break
  7613. dst[i + offset] = src[i]
  7614. }
  7615. return i
  7616. }
  7617. // ArrayBuffers from another context (i.e. an iframe) do not pass the `instanceof` check
  7618. // but they should be treated as valid. See: https://github.com/feross/buffer/issues/166
  7619. function isArrayBuffer (obj) {
  7620. return obj instanceof ArrayBuffer ||
  7621. (obj != null && obj.constructor != null && obj.constructor.name === 'ArrayBuffer' &&
  7622. typeof obj.byteLength === 'number')
  7623. }
  7624. // Node 0.10 supports `ArrayBuffer` but lacks `ArrayBuffer.isView`
  7625. function isArrayBufferView (obj) {
  7626. return (typeof ArrayBuffer.isView === 'function') && ArrayBuffer.isView(obj)
  7627. }
  7628. function numberIsNaN (obj) {
  7629. return obj !== obj // eslint-disable-line no-self-compare
  7630. }
  7631. },{"base64-js":24,"ieee754":106}],55:[function(require,module,exports){
  7632. var Buffer = require('safe-buffer').Buffer
  7633. var Transform = require('stream').Transform
  7634. var StringDecoder = require('string_decoder').StringDecoder
  7635. var inherits = require('inherits')
  7636. function CipherBase (hashMode) {
  7637. Transform.call(this)
  7638. this.hashMode = typeof hashMode === 'string'
  7639. if (this.hashMode) {
  7640. this[hashMode] = this._finalOrDigest
  7641. } else {
  7642. this.final = this._finalOrDigest
  7643. }
  7644. if (this._final) {
  7645. this.__final = this._final
  7646. this._final = null
  7647. }
  7648. this._decoder = null
  7649. this._encoding = null
  7650. }
  7651. inherits(CipherBase, Transform)
  7652. CipherBase.prototype.update = function (data, inputEnc, outputEnc) {
  7653. if (typeof data === 'string') {
  7654. data = Buffer.from(data, inputEnc)
  7655. }
  7656. var outData = this._update(data)
  7657. if (this.hashMode) return this
  7658. if (outputEnc) {
  7659. outData = this._toString(outData, outputEnc)
  7660. }
  7661. return outData
  7662. }
  7663. CipherBase.prototype.setAutoPadding = function () {}
  7664. CipherBase.prototype.getAuthTag = function () {
  7665. throw new Error('trying to get auth tag in unsupported state')
  7666. }
  7667. CipherBase.prototype.setAuthTag = function () {
  7668. throw new Error('trying to set auth tag in unsupported state')
  7669. }
  7670. CipherBase.prototype.setAAD = function () {
  7671. throw new Error('trying to set aad in unsupported state')
  7672. }
  7673. CipherBase.prototype._transform = function (data, _, next) {
  7674. var err
  7675. try {
  7676. if (this.hashMode) {
  7677. this._update(data)
  7678. } else {
  7679. this.push(this._update(data))
  7680. }
  7681. } catch (e) {
  7682. err = e
  7683. } finally {
  7684. next(err)
  7685. }
  7686. }
  7687. CipherBase.prototype._flush = function (done) {
  7688. var err
  7689. try {
  7690. this.push(this.__final())
  7691. } catch (e) {
  7692. err = e
  7693. }
  7694. done(err)
  7695. }
  7696. CipherBase.prototype._finalOrDigest = function (outputEnc) {
  7697. var outData = this.__final() || Buffer.alloc(0)
  7698. if (outputEnc) {
  7699. outData = this._toString(outData, outputEnc, true)
  7700. }
  7701. return outData
  7702. }
  7703. CipherBase.prototype._toString = function (value, enc, fin) {
  7704. if (!this._decoder) {
  7705. this._decoder = new StringDecoder(enc)
  7706. this._encoding = enc
  7707. }
  7708. if (this._encoding !== enc) throw new Error('can\'t switch encodings')
  7709. var out = this._decoder.write(value)
  7710. if (fin) {
  7711. out += this._decoder.end()
  7712. }
  7713. return out
  7714. }
  7715. module.exports = CipherBase
  7716. },{"inherits":108,"safe-buffer":148,"stream":157,"string_decoder":158}],56:[function(require,module,exports){
  7717. (function (Buffer){
  7718. // Copyright Joyent, Inc. and other Node contributors.
  7719. //
  7720. // Permission is hereby granted, free of charge, to any person obtaining a
  7721. // copy of this software and associated documentation files (the
  7722. // "Software"), to deal in the Software without restriction, including
  7723. // without limitation the rights to use, copy, modify, merge, publish,
  7724. // distribute, sublicense, and/or sell copies of the Software, and to permit
  7725. // persons to whom the Software is furnished to do so, subject to the
  7726. // following conditions:
  7727. //
  7728. // The above copyright notice and this permission notice shall be included
  7729. // in all copies or substantial portions of the Software.
  7730. //
  7731. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  7732. // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  7733. // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
  7734. // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
  7735. // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
  7736. // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
  7737. // USE OR OTHER DEALINGS IN THE SOFTWARE.
  7738. // NOTE: These type checking functions intentionally don't use `instanceof`
  7739. // because it is fragile and can be easily faked with `Object.create()`.
  7740. function isArray(arg) {
  7741. if (Array.isArray) {
  7742. return Array.isArray(arg);
  7743. }
  7744. return objectToString(arg) === '[object Array]';
  7745. }
  7746. exports.isArray = isArray;
  7747. function isBoolean(arg) {
  7748. return typeof arg === 'boolean';
  7749. }
  7750. exports.isBoolean = isBoolean;
  7751. function isNull(arg) {
  7752. return arg === null;
  7753. }
  7754. exports.isNull = isNull;
  7755. function isNullOrUndefined(arg) {
  7756. return arg == null;
  7757. }
  7758. exports.isNullOrUndefined = isNullOrUndefined;
  7759. function isNumber(arg) {
  7760. return typeof arg === 'number';
  7761. }
  7762. exports.isNumber = isNumber;
  7763. function isString(arg) {
  7764. return typeof arg === 'string';
  7765. }
  7766. exports.isString = isString;
  7767. function isSymbol(arg) {
  7768. return typeof arg === 'symbol';
  7769. }
  7770. exports.isSymbol = isSymbol;
  7771. function isUndefined(arg) {
  7772. return arg === void 0;
  7773. }
  7774. exports.isUndefined = isUndefined;
  7775. function isRegExp(re) {
  7776. return objectToString(re) === '[object RegExp]';
  7777. }
  7778. exports.isRegExp = isRegExp;
  7779. function isObject(arg) {
  7780. return typeof arg === 'object' && arg !== null;
  7781. }
  7782. exports.isObject = isObject;
  7783. function isDate(d) {
  7784. return objectToString(d) === '[object Date]';
  7785. }
  7786. exports.isDate = isDate;
  7787. function isError(e) {
  7788. return (objectToString(e) === '[object Error]' || e instanceof Error);
  7789. }
  7790. exports.isError = isError;
  7791. function isFunction(arg) {
  7792. return typeof arg === 'function';
  7793. }
  7794. exports.isFunction = isFunction;
  7795. function isPrimitive(arg) {
  7796. return arg === null ||
  7797. typeof arg === 'boolean' ||
  7798. typeof arg === 'number' ||
  7799. typeof arg === 'string' ||
  7800. typeof arg === 'symbol' || // ES6 symbol
  7801. typeof arg === 'undefined';
  7802. }
  7803. exports.isPrimitive = isPrimitive;
  7804. exports.isBuffer = Buffer.isBuffer;
  7805. function objectToString(o) {
  7806. return Object.prototype.toString.call(o);
  7807. }
  7808. }).call(this,{"isBuffer":require("../../is-buffer/index.js")})
  7809. },{"../../is-buffer/index.js":109}],57:[function(require,module,exports){
  7810. (function (Buffer){
  7811. var elliptic = require('elliptic');
  7812. var BN = require('bn.js');
  7813. module.exports = function createECDH(curve) {
  7814. return new ECDH(curve);
  7815. };
  7816. var aliases = {
  7817. secp256k1: {
  7818. name: 'secp256k1',
  7819. byteLength: 32
  7820. },
  7821. secp224r1: {
  7822. name: 'p224',
  7823. byteLength: 28
  7824. },
  7825. prime256v1: {
  7826. name: 'p256',
  7827. byteLength: 32
  7828. },
  7829. prime192v1: {
  7830. name: 'p192',
  7831. byteLength: 24
  7832. },
  7833. ed25519: {
  7834. name: 'ed25519',
  7835. byteLength: 32
  7836. },
  7837. secp384r1: {
  7838. name: 'p384',
  7839. byteLength: 48
  7840. },
  7841. secp521r1: {
  7842. name: 'p521',
  7843. byteLength: 66
  7844. }
  7845. };
  7846. aliases.p224 = aliases.secp224r1;
  7847. aliases.p256 = aliases.secp256r1 = aliases.prime256v1;
  7848. aliases.p192 = aliases.secp192r1 = aliases.prime192v1;
  7849. aliases.p384 = aliases.secp384r1;
  7850. aliases.p521 = aliases.secp521r1;
  7851. function ECDH(curve) {
  7852. this.curveType = aliases[curve];
  7853. if (!this.curveType ) {
  7854. this.curveType = {
  7855. name: curve
  7856. };
  7857. }
  7858. this.curve = new elliptic.ec(this.curveType.name);
  7859. this.keys = void 0;
  7860. }
  7861. ECDH.prototype.generateKeys = function (enc, format) {
  7862. this.keys = this.curve.genKeyPair();
  7863. return this.getPublicKey(enc, format);
  7864. };
  7865. ECDH.prototype.computeSecret = function (other, inenc, enc) {
  7866. inenc = inenc || 'utf8';
  7867. if (!Buffer.isBuffer(other)) {
  7868. other = new Buffer(other, inenc);
  7869. }
  7870. var otherPub = this.curve.keyFromPublic(other).getPublic();
  7871. var out = otherPub.mul(this.keys.getPrivate()).getX();
  7872. return formatReturnValue(out, enc, this.curveType.byteLength);
  7873. };
  7874. ECDH.prototype.getPublicKey = function (enc, format) {
  7875. var key = this.keys.getPublic(format === 'compressed', true);
  7876. if (format === 'hybrid') {
  7877. if (key[key.length - 1] % 2) {
  7878. key[0] = 7;
  7879. } else {
  7880. key [0] = 6;
  7881. }
  7882. }
  7883. return formatReturnValue(key, enc);
  7884. };
  7885. ECDH.prototype.getPrivateKey = function (enc) {
  7886. return formatReturnValue(this.keys.getPrivate(), enc);
  7887. };
  7888. ECDH.prototype.setPublicKey = function (pub, enc) {
  7889. enc = enc || 'utf8';
  7890. if (!Buffer.isBuffer(pub)) {
  7891. pub = new Buffer(pub, enc);
  7892. }
  7893. this.keys._importPublic(pub);
  7894. return this;
  7895. };
  7896. ECDH.prototype.setPrivateKey = function (priv, enc) {
  7897. enc = enc || 'utf8';
  7898. if (!Buffer.isBuffer(priv)) {
  7899. priv = new Buffer(priv, enc);
  7900. }
  7901. var _priv = new BN(priv);
  7902. _priv = _priv.toString(16);
  7903. this.keys._importPrivate(_priv);
  7904. return this;
  7905. };
  7906. function formatReturnValue(bn, enc, len) {
  7907. if (!Array.isArray(bn)) {
  7908. bn = bn.toArray();
  7909. }
  7910. var buf = new Buffer(bn);
  7911. if (len && buf.length < len) {
  7912. var zeros = new Buffer(len - buf.length);
  7913. zeros.fill(0);
  7914. buf = Buffer.concat([zeros, buf]);
  7915. }
  7916. if (!enc) {
  7917. return buf;
  7918. } else {
  7919. return buf.toString(enc);
  7920. }
  7921. }
  7922. }).call(this,require("buffer").Buffer)
  7923. },{"bn.js":25,"buffer":54,"elliptic":74}],58:[function(require,module,exports){
  7924. (function (Buffer){
  7925. 'use strict'
  7926. var inherits = require('inherits')
  7927. var md5 = require('./md5')
  7928. var RIPEMD160 = require('ripemd160')
  7929. var sha = require('sha.js')
  7930. var Base = require('cipher-base')
  7931. function HashNoConstructor (hash) {
  7932. Base.call(this, 'digest')
  7933. this._hash = hash
  7934. this.buffers = []
  7935. }
  7936. inherits(HashNoConstructor, Base)
  7937. HashNoConstructor.prototype._update = function (data) {
  7938. this.buffers.push(data)
  7939. }
  7940. HashNoConstructor.prototype._final = function () {
  7941. var buf = Buffer.concat(this.buffers)
  7942. var r = this._hash(buf)
  7943. this.buffers = null
  7944. return r
  7945. }
  7946. function Hash (hash) {
  7947. Base.call(this, 'digest')
  7948. this._hash = hash
  7949. }
  7950. inherits(Hash, Base)
  7951. Hash.prototype._update = function (data) {
  7952. this._hash.update(data)
  7953. }
  7954. Hash.prototype._final = function () {
  7955. return this._hash.digest()
  7956. }
  7957. module.exports = function createHash (alg) {
  7958. alg = alg.toLowerCase()
  7959. if (alg === 'md5') return new HashNoConstructor(md5)
  7960. if (alg === 'rmd160' || alg === 'ripemd160') return new Hash(new RIPEMD160())
  7961. return new Hash(sha(alg))
  7962. }
  7963. }).call(this,require("buffer").Buffer)
  7964. },{"./md5":60,"buffer":54,"cipher-base":55,"inherits":108,"ripemd160":147,"sha.js":150}],59:[function(require,module,exports){
  7965. (function (Buffer){
  7966. 'use strict'
  7967. var intSize = 4
  7968. var zeroBuffer = new Buffer(intSize)
  7969. zeroBuffer.fill(0)
  7970. var charSize = 8
  7971. var hashSize = 16
  7972. function toArray (buf) {
  7973. if ((buf.length % intSize) !== 0) {
  7974. var len = buf.length + (intSize - (buf.length % intSize))
  7975. buf = Buffer.concat([buf, zeroBuffer], len)
  7976. }
  7977. var arr = new Array(buf.length >>> 2)
  7978. for (var i = 0, j = 0; i < buf.length; i += intSize, j++) {
  7979. arr[j] = buf.readInt32LE(i)
  7980. }
  7981. return arr
  7982. }
  7983. module.exports = function hash (buf, fn) {
  7984. var arr = fn(toArray(buf), buf.length * charSize)
  7985. buf = new Buffer(hashSize)
  7986. for (var i = 0; i < arr.length; i++) {
  7987. buf.writeInt32LE(arr[i], i << 2, true)
  7988. }
  7989. return buf
  7990. }
  7991. }).call(this,require("buffer").Buffer)
  7992. },{"buffer":54}],60:[function(require,module,exports){
  7993. 'use strict'
  7994. /*
  7995. * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
  7996. * Digest Algorithm, as defined in RFC 1321.
  7997. * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.
  7998. * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
  7999. * Distributed under the BSD License
  8000. * See http://pajhome.org.uk/crypt/md5 for more info.
  8001. */
  8002. var makeHash = require('./make-hash')
  8003. /*
  8004. * Calculate the MD5 of an array of little-endian words, and a bit length
  8005. */
  8006. function core_md5 (x, len) {
  8007. /* append padding */
  8008. x[len >> 5] |= 0x80 << ((len) % 32)
  8009. x[(((len + 64) >>> 9) << 4) + 14] = len
  8010. var a = 1732584193
  8011. var b = -271733879
  8012. var c = -1732584194
  8013. var d = 271733878
  8014. for (var i = 0; i < x.length; i += 16) {
  8015. var olda = a
  8016. var oldb = b
  8017. var oldc = c
  8018. var oldd = d
  8019. a = md5_ff(a, b, c, d, x[i + 0], 7, -680876936)
  8020. d = md5_ff(d, a, b, c, x[i + 1], 12, -389564586)
  8021. c = md5_ff(c, d, a, b, x[i + 2], 17, 606105819)
  8022. b = md5_ff(b, c, d, a, x[i + 3], 22, -1044525330)
  8023. a = md5_ff(a, b, c, d, x[i + 4], 7, -176418897)
  8024. d = md5_ff(d, a, b, c, x[i + 5], 12, 1200080426)
  8025. c = md5_ff(c, d, a, b, x[i + 6], 17, -1473231341)
  8026. b = md5_ff(b, c, d, a, x[i + 7], 22, -45705983)
  8027. a = md5_ff(a, b, c, d, x[i + 8], 7, 1770035416)
  8028. d = md5_ff(d, a, b, c, x[i + 9], 12, -1958414417)
  8029. c = md5_ff(c, d, a, b, x[i + 10], 17, -42063)
  8030. b = md5_ff(b, c, d, a, x[i + 11], 22, -1990404162)
  8031. a = md5_ff(a, b, c, d, x[i + 12], 7, 1804603682)
  8032. d = md5_ff(d, a, b, c, x[i + 13], 12, -40341101)
  8033. c = md5_ff(c, d, a, b, x[i + 14], 17, -1502002290)
  8034. b = md5_ff(b, c, d, a, x[i + 15], 22, 1236535329)
  8035. a = md5_gg(a, b, c, d, x[i + 1], 5, -165796510)
  8036. d = md5_gg(d, a, b, c, x[i + 6], 9, -1069501632)
  8037. c = md5_gg(c, d, a, b, x[i + 11], 14, 643717713)
  8038. b = md5_gg(b, c, d, a, x[i + 0], 20, -373897302)
  8039. a = md5_gg(a, b, c, d, x[i + 5], 5, -701558691)
  8040. d = md5_gg(d, a, b, c, x[i + 10], 9, 38016083)
  8041. c = md5_gg(c, d, a, b, x[i + 15], 14, -660478335)
  8042. b = md5_gg(b, c, d, a, x[i + 4], 20, -405537848)
  8043. a = md5_gg(a, b, c, d, x[i + 9], 5, 568446438)
  8044. d = md5_gg(d, a, b, c, x[i + 14], 9, -1019803690)
  8045. c = md5_gg(c, d, a, b, x[i + 3], 14, -187363961)
  8046. b = md5_gg(b, c, d, a, x[i + 8], 20, 1163531501)
  8047. a = md5_gg(a, b, c, d, x[i + 13], 5, -1444681467)
  8048. d = md5_gg(d, a, b, c, x[i + 2], 9, -51403784)
  8049. c = md5_gg(c, d, a, b, x[i + 7], 14, 1735328473)
  8050. b = md5_gg(b, c, d, a, x[i + 12], 20, -1926607734)
  8051. a = md5_hh(a, b, c, d, x[i + 5], 4, -378558)
  8052. d = md5_hh(d, a, b, c, x[i + 8], 11, -2022574463)
  8053. c = md5_hh(c, d, a, b, x[i + 11], 16, 1839030562)
  8054. b = md5_hh(b, c, d, a, x[i + 14], 23, -35309556)
  8055. a = md5_hh(a, b, c, d, x[i + 1], 4, -1530992060)
  8056. d = md5_hh(d, a, b, c, x[i + 4], 11, 1272893353)
  8057. c = md5_hh(c, d, a, b, x[i + 7], 16, -155497632)
  8058. b = md5_hh(b, c, d, a, x[i + 10], 23, -1094730640)
  8059. a = md5_hh(a, b, c, d, x[i + 13], 4, 681279174)
  8060. d = md5_hh(d, a, b, c, x[i + 0], 11, -358537222)
  8061. c = md5_hh(c, d, a, b, x[i + 3], 16, -722521979)
  8062. b = md5_hh(b, c, d, a, x[i + 6], 23, 76029189)
  8063. a = md5_hh(a, b, c, d, x[i + 9], 4, -640364487)
  8064. d = md5_hh(d, a, b, c, x[i + 12], 11, -421815835)
  8065. c = md5_hh(c, d, a, b, x[i + 15], 16, 530742520)
  8066. b = md5_hh(b, c, d, a, x[i + 2], 23, -995338651)
  8067. a = md5_ii(a, b, c, d, x[i + 0], 6, -198630844)
  8068. d = md5_ii(d, a, b, c, x[i + 7], 10, 1126891415)
  8069. c = md5_ii(c, d, a, b, x[i + 14], 15, -1416354905)
  8070. b = md5_ii(b, c, d, a, x[i + 5], 21, -57434055)
  8071. a = md5_ii(a, b, c, d, x[i + 12], 6, 1700485571)
  8072. d = md5_ii(d, a, b, c, x[i + 3], 10, -1894986606)
  8073. c = md5_ii(c, d, a, b, x[i + 10], 15, -1051523)
  8074. b = md5_ii(b, c, d, a, x[i + 1], 21, -2054922799)
  8075. a = md5_ii(a, b, c, d, x[i + 8], 6, 1873313359)
  8076. d = md5_ii(d, a, b, c, x[i + 15], 10, -30611744)
  8077. c = md5_ii(c, d, a, b, x[i + 6], 15, -1560198380)
  8078. b = md5_ii(b, c, d, a, x[i + 13], 21, 1309151649)
  8079. a = md5_ii(a, b, c, d, x[i + 4], 6, -145523070)
  8080. d = md5_ii(d, a, b, c, x[i + 11], 10, -1120210379)
  8081. c = md5_ii(c, d, a, b, x[i + 2], 15, 718787259)
  8082. b = md5_ii(b, c, d, a, x[i + 9], 21, -343485551)
  8083. a = safe_add(a, olda)
  8084. b = safe_add(b, oldb)
  8085. c = safe_add(c, oldc)
  8086. d = safe_add(d, oldd)
  8087. }
  8088. return [a, b, c, d]
  8089. }
  8090. /*
  8091. * These functions implement the four basic operations the algorithm uses.
  8092. */
  8093. function md5_cmn (q, a, b, x, s, t) {
  8094. return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b)
  8095. }
  8096. function md5_ff (a, b, c, d, x, s, t) {
  8097. return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t)
  8098. }
  8099. function md5_gg (a, b, c, d, x, s, t) {
  8100. return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t)
  8101. }
  8102. function md5_hh (a, b, c, d, x, s, t) {
  8103. return md5_cmn(b ^ c ^ d, a, b, x, s, t)
  8104. }
  8105. function md5_ii (a, b, c, d, x, s, t) {
  8106. return md5_cmn(c ^ (b | (~d)), a, b, x, s, t)
  8107. }
  8108. /*
  8109. * Add integers, wrapping at 2^32. This uses 16-bit operations internally
  8110. * to work around bugs in some JS interpreters.
  8111. */
  8112. function safe_add (x, y) {
  8113. var lsw = (x & 0xFFFF) + (y & 0xFFFF)
  8114. var msw = (x >> 16) + (y >> 16) + (lsw >> 16)
  8115. return (msw << 16) | (lsw & 0xFFFF)
  8116. }
  8117. /*
  8118. * Bitwise rotate a 32-bit number to the left.
  8119. */
  8120. function bit_rol (num, cnt) {
  8121. return (num << cnt) | (num >>> (32 - cnt))
  8122. }
  8123. module.exports = function md5 (buf) {
  8124. return makeHash(buf, core_md5)
  8125. }
  8126. },{"./make-hash":59}],61:[function(require,module,exports){
  8127. 'use strict'
  8128. var inherits = require('inherits')
  8129. var Legacy = require('./legacy')
  8130. var Base = require('cipher-base')
  8131. var Buffer = require('safe-buffer').Buffer
  8132. var md5 = require('create-hash/md5')
  8133. var RIPEMD160 = require('ripemd160')
  8134. var sha = require('sha.js')
  8135. var ZEROS = Buffer.alloc(128)
  8136. function Hmac (alg, key) {
  8137. Base.call(this, 'digest')
  8138. if (typeof key === 'string') {
  8139. key = Buffer.from(key)
  8140. }
  8141. var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64
  8142. this._alg = alg
  8143. this._key = key
  8144. if (key.length > blocksize) {
  8145. var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)
  8146. key = hash.update(key).digest()
  8147. } else if (key.length < blocksize) {
  8148. key = Buffer.concat([key, ZEROS], blocksize)
  8149. }
  8150. var ipad = this._ipad = Buffer.allocUnsafe(blocksize)
  8151. var opad = this._opad = Buffer.allocUnsafe(blocksize)
  8152. for (var i = 0; i < blocksize; i++) {
  8153. ipad[i] = key[i] ^ 0x36
  8154. opad[i] = key[i] ^ 0x5C
  8155. }
  8156. this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)
  8157. this._hash.update(ipad)
  8158. }
  8159. inherits(Hmac, Base)
  8160. Hmac.prototype._update = function (data) {
  8161. this._hash.update(data)
  8162. }
  8163. Hmac.prototype._final = function () {
  8164. var h = this._hash.digest()
  8165. var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)
  8166. return hash.update(this._opad).update(h).digest()
  8167. }
  8168. module.exports = function createHmac (alg, key) {
  8169. alg = alg.toLowerCase()
  8170. if (alg === 'rmd160' || alg === 'ripemd160') {
  8171. return new Hmac('rmd160', key)
  8172. }
  8173. if (alg === 'md5') {
  8174. return new Legacy(md5, key)
  8175. }
  8176. return new Hmac(alg, key)
  8177. }
  8178. },{"./legacy":62,"cipher-base":55,"create-hash/md5":60,"inherits":108,"ripemd160":147,"safe-buffer":148,"sha.js":150}],62:[function(require,module,exports){
  8179. 'use strict'
  8180. var inherits = require('inherits')
  8181. var Buffer = require('safe-buffer').Buffer
  8182. var Base = require('cipher-base')
  8183. var ZEROS = Buffer.alloc(128)
  8184. var blocksize = 64
  8185. function Hmac (alg, key) {
  8186. Base.call(this, 'digest')
  8187. if (typeof key === 'string') {
  8188. key = Buffer.from(key)
  8189. }
  8190. this._alg = alg
  8191. this._key = key
  8192. if (key.length > blocksize) {
  8193. key = alg(key)
  8194. } else if (key.length < blocksize) {
  8195. key = Buffer.concat([key, ZEROS], blocksize)
  8196. }
  8197. var ipad = this._ipad = Buffer.allocUnsafe(blocksize)
  8198. var opad = this._opad = Buffer.allocUnsafe(blocksize)
  8199. for (var i = 0; i < blocksize; i++) {
  8200. ipad[i] = key[i] ^ 0x36
  8201. opad[i] = key[i] ^ 0x5C
  8202. }
  8203. this._hash = [ipad]
  8204. }
  8205. inherits(Hmac, Base)
  8206. Hmac.prototype._update = function (data) {
  8207. this._hash.push(data)
  8208. }
  8209. Hmac.prototype._final = function () {
  8210. var h = this._alg(Buffer.concat(this._hash))
  8211. return this._alg(Buffer.concat([this._opad, h]))
  8212. }
  8213. module.exports = Hmac
  8214. },{"cipher-base":55,"inherits":108,"safe-buffer":148}],63:[function(require,module,exports){
  8215. 'use strict'
  8216. exports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes')
  8217. exports.createHash = exports.Hash = require('create-hash')
  8218. exports.createHmac = exports.Hmac = require('create-hmac')
  8219. var algos = require('browserify-sign/algos')
  8220. var algoKeys = Object.keys(algos)
  8221. var hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(algoKeys)
  8222. exports.getHashes = function () {
  8223. return hashes
  8224. }
  8225. var p = require('pbkdf2')
  8226. exports.pbkdf2 = p.pbkdf2
  8227. exports.pbkdf2Sync = p.pbkdf2Sync
  8228. var aes = require('browserify-cipher')
  8229. exports.Cipher = aes.Cipher
  8230. exports.createCipher = aes.createCipher
  8231. exports.Cipheriv = aes.Cipheriv
  8232. exports.createCipheriv = aes.createCipheriv
  8233. exports.Decipher = aes.Decipher
  8234. exports.createDecipher = aes.createDecipher
  8235. exports.Decipheriv = aes.Decipheriv
  8236. exports.createDecipheriv = aes.createDecipheriv
  8237. exports.getCiphers = aes.getCiphers
  8238. exports.listCiphers = aes.listCiphers
  8239. var dh = require('diffie-hellman')
  8240. exports.DiffieHellmanGroup = dh.DiffieHellmanGroup
  8241. exports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup
  8242. exports.getDiffieHellman = dh.getDiffieHellman
  8243. exports.createDiffieHellman = dh.createDiffieHellman
  8244. exports.DiffieHellman = dh.DiffieHellman
  8245. var sign = require('browserify-sign')
  8246. exports.createSign = sign.createSign
  8247. exports.Sign = sign.Sign
  8248. exports.createVerify = sign.createVerify
  8249. exports.Verify = sign.Verify
  8250. exports.createECDH = require('create-ecdh')
  8251. var publicEncrypt = require('public-encrypt')
  8252. exports.publicEncrypt = publicEncrypt.publicEncrypt
  8253. exports.privateEncrypt = publicEncrypt.privateEncrypt
  8254. exports.publicDecrypt = publicEncrypt.publicDecrypt
  8255. exports.privateDecrypt = publicEncrypt.privateDecrypt
  8256. // the least I can do is make error messages for the rest of the node.js/crypto api.
  8257. // ;[
  8258. // 'createCredentials'
  8259. // ].forEach(function (name) {
  8260. // exports[name] = function () {
  8261. // throw new Error([
  8262. // 'sorry, ' + name + ' is not implemented yet',
  8263. // 'we accept pull requests',
  8264. // 'https://github.com/crypto-browserify/crypto-browserify'
  8265. // ].join('\n'))
  8266. // }
  8267. // })
  8268. exports.createCredentials = function () {
  8269. throw new Error([
  8270. 'sorry, createCredentials is not implemented yet',
  8271. 'we accept pull requests',
  8272. 'https://github.com/crypto-browserify/crypto-browserify'
  8273. ].join('\n'))
  8274. }
  8275. exports.constants = {
  8276. 'DH_CHECK_P_NOT_SAFE_PRIME': 2,
  8277. 'DH_CHECK_P_NOT_PRIME': 1,
  8278. 'DH_UNABLE_TO_CHECK_GENERATOR': 4,
  8279. 'DH_NOT_SUITABLE_GENERATOR': 8,
  8280. 'NPN_ENABLED': 1,
  8281. 'ALPN_ENABLED': 1,
  8282. 'RSA_PKCS1_PADDING': 1,
  8283. 'RSA_SSLV23_PADDING': 2,
  8284. 'RSA_NO_PADDING': 3,
  8285. 'RSA_PKCS1_OAEP_PADDING': 4,
  8286. 'RSA_X931_PADDING': 5,
  8287. 'RSA_PKCS1_PSS_PADDING': 6,
  8288. 'POINT_CONVERSION_COMPRESSED': 2,
  8289. 'POINT_CONVERSION_UNCOMPRESSED': 4,
  8290. 'POINT_CONVERSION_HYBRID': 6
  8291. }
  8292. },{"browserify-cipher":43,"browserify-sign":50,"browserify-sign/algos":47,"create-ecdh":57,"create-hash":58,"create-hmac":61,"diffie-hellman":70,"pbkdf2":120,"public-encrypt":127,"randombytes":133}],64:[function(require,module,exports){
  8293. 'use strict';
  8294. exports.utils = require('./des/utils');
  8295. exports.Cipher = require('./des/cipher');
  8296. exports.DES = require('./des/des');
  8297. exports.CBC = require('./des/cbc');
  8298. exports.EDE = require('./des/ede');
  8299. },{"./des/cbc":65,"./des/cipher":66,"./des/des":67,"./des/ede":68,"./des/utils":69}],65:[function(require,module,exports){
  8300. 'use strict';
  8301. var assert = require('minimalistic-assert');
  8302. var inherits = require('inherits');
  8303. var proto = {};
  8304. function CBCState(iv) {
  8305. assert.equal(iv.length, 8, 'Invalid IV length');
  8306. this.iv = new Array(8);
  8307. for (var i = 0; i < this.iv.length; i++)
  8308. this.iv[i] = iv[i];
  8309. }
  8310. function instantiate(Base) {
  8311. function CBC(options) {
  8312. Base.call(this, options);
  8313. this._cbcInit();
  8314. }
  8315. inherits(CBC, Base);
  8316. var keys = Object.keys(proto);
  8317. for (var i = 0; i < keys.length; i++) {
  8318. var key = keys[i];
  8319. CBC.prototype[key] = proto[key];
  8320. }
  8321. CBC.create = function create(options) {
  8322. return new CBC(options);
  8323. };
  8324. return CBC;
  8325. }
  8326. exports.instantiate = instantiate;
  8327. proto._cbcInit = function _cbcInit() {
  8328. var state = new CBCState(this.options.iv);
  8329. this._cbcState = state;
  8330. };
  8331. proto._update = function _update(inp, inOff, out, outOff) {
  8332. var state = this._cbcState;
  8333. var superProto = this.constructor.super_.prototype;
  8334. var iv = state.iv;
  8335. if (this.type === 'encrypt') {
  8336. for (var i = 0; i < this.blockSize; i++)
  8337. iv[i] ^= inp[inOff + i];
  8338. superProto._update.call(this, iv, 0, out, outOff);
  8339. for (var i = 0; i < this.blockSize; i++)
  8340. iv[i] = out[outOff + i];
  8341. } else {
  8342. superProto._update.call(this, inp, inOff, out, outOff);
  8343. for (var i = 0; i < this.blockSize; i++)
  8344. out[outOff + i] ^= iv[i];
  8345. for (var i = 0; i < this.blockSize; i++)
  8346. iv[i] = inp[inOff + i];
  8347. }
  8348. };
  8349. },{"inherits":108,"minimalistic-assert":112}],66:[function(require,module,exports){
  8350. 'use strict';
  8351. var assert = require('minimalistic-assert');
  8352. function Cipher(options) {
  8353. this.options = options;
  8354. this.type = this.options.type;
  8355. this.blockSize = 8;
  8356. this._init();
  8357. this.buffer = new Array(this.blockSize);
  8358. this.bufferOff = 0;
  8359. }
  8360. module.exports = Cipher;
  8361. Cipher.prototype._init = function _init() {
  8362. // Might be overrided
  8363. };
  8364. Cipher.prototype.update = function update(data) {
  8365. if (data.length === 0)
  8366. return [];
  8367. if (this.type === 'decrypt')
  8368. return this._updateDecrypt(data);
  8369. else
  8370. return this._updateEncrypt(data);
  8371. };
  8372. Cipher.prototype._buffer = function _buffer(data, off) {
  8373. // Append data to buffer
  8374. var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);
  8375. for (var i = 0; i < min; i++)
  8376. this.buffer[this.bufferOff + i] = data[off + i];
  8377. this.bufferOff += min;
  8378. // Shift next
  8379. return min;
  8380. };
  8381. Cipher.prototype._flushBuffer = function _flushBuffer(out, off) {
  8382. this._update(this.buffer, 0, out, off);
  8383. this.bufferOff = 0;
  8384. return this.blockSize;
  8385. };
  8386. Cipher.prototype._updateEncrypt = function _updateEncrypt(data) {
  8387. var inputOff = 0;
  8388. var outputOff = 0;
  8389. var count = ((this.bufferOff + data.length) / this.blockSize) | 0;
  8390. var out = new Array(count * this.blockSize);
  8391. if (this.bufferOff !== 0) {
  8392. inputOff += this._buffer(data, inputOff);
  8393. if (this.bufferOff === this.buffer.length)
  8394. outputOff += this._flushBuffer(out, outputOff);
  8395. }
  8396. // Write blocks
  8397. var max = data.length - ((data.length - inputOff) % this.blockSize);
  8398. for (; inputOff < max; inputOff += this.blockSize) {
  8399. this._update(data, inputOff, out, outputOff);
  8400. outputOff += this.blockSize;
  8401. }
  8402. // Queue rest
  8403. for (; inputOff < data.length; inputOff++, this.bufferOff++)
  8404. this.buffer[this.bufferOff] = data[inputOff];
  8405. return out;
  8406. };
  8407. Cipher.prototype._updateDecrypt = function _updateDecrypt(data) {
  8408. var inputOff = 0;
  8409. var outputOff = 0;
  8410. var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;
  8411. var out = new Array(count * this.blockSize);
  8412. // TODO(indutny): optimize it, this is far from optimal
  8413. for (; count > 0; count--) {
  8414. inputOff += this._buffer(data, inputOff);
  8415. outputOff += this._flushBuffer(out, outputOff);
  8416. }
  8417. // Buffer rest of the input
  8418. inputOff += this._buffer(data, inputOff);
  8419. return out;
  8420. };
  8421. Cipher.prototype.final = function final(buffer) {
  8422. var first;
  8423. if (buffer)
  8424. first = this.update(buffer);
  8425. var last;
  8426. if (this.type === 'encrypt')
  8427. last = this._finalEncrypt();
  8428. else
  8429. last = this._finalDecrypt();
  8430. if (first)
  8431. return first.concat(last);
  8432. else
  8433. return last;
  8434. };
  8435. Cipher.prototype._pad = function _pad(buffer, off) {
  8436. if (off === 0)
  8437. return false;
  8438. while (off < buffer.length)
  8439. buffer[off++] = 0;
  8440. return true;
  8441. };
  8442. Cipher.prototype._finalEncrypt = function _finalEncrypt() {
  8443. if (!this._pad(this.buffer, this.bufferOff))
  8444. return [];
  8445. var out = new Array(this.blockSize);
  8446. this._update(this.buffer, 0, out, 0);
  8447. return out;
  8448. };
  8449. Cipher.prototype._unpad = function _unpad(buffer) {
  8450. return buffer;
  8451. };
  8452. Cipher.prototype._finalDecrypt = function _finalDecrypt() {
  8453. assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');
  8454. var out = new Array(this.blockSize);
  8455. this._flushBuffer(out, 0);
  8456. return this._unpad(out);
  8457. };
  8458. },{"minimalistic-assert":112}],67:[function(require,module,exports){
  8459. 'use strict';
  8460. var assert = require('minimalistic-assert');
  8461. var inherits = require('inherits');
  8462. var des = require('../des');
  8463. var utils = des.utils;
  8464. var Cipher = des.Cipher;
  8465. function DESState() {
  8466. this.tmp = new Array(2);
  8467. this.keys = null;
  8468. }
  8469. function DES(options) {
  8470. Cipher.call(this, options);
  8471. var state = new DESState();
  8472. this._desState = state;
  8473. this.deriveKeys(state, options.key);
  8474. }
  8475. inherits(DES, Cipher);
  8476. module.exports = DES;
  8477. DES.create = function create(options) {
  8478. return new DES(options);
  8479. };
  8480. var shiftTable = [
  8481. 1, 1, 2, 2, 2, 2, 2, 2,
  8482. 1, 2, 2, 2, 2, 2, 2, 1
  8483. ];
  8484. DES.prototype.deriveKeys = function deriveKeys(state, key) {
  8485. state.keys = new Array(16 * 2);
  8486. assert.equal(key.length, this.blockSize, 'Invalid key length');
  8487. var kL = utils.readUInt32BE(key, 0);
  8488. var kR = utils.readUInt32BE(key, 4);
  8489. utils.pc1(kL, kR, state.tmp, 0);
  8490. kL = state.tmp[0];
  8491. kR = state.tmp[1];
  8492. for (var i = 0; i < state.keys.length; i += 2) {
  8493. var shift = shiftTable[i >>> 1];
  8494. kL = utils.r28shl(kL, shift);
  8495. kR = utils.r28shl(kR, shift);
  8496. utils.pc2(kL, kR, state.keys, i);
  8497. }
  8498. };
  8499. DES.prototype._update = function _update(inp, inOff, out, outOff) {
  8500. var state = this._desState;
  8501. var l = utils.readUInt32BE(inp, inOff);
  8502. var r = utils.readUInt32BE(inp, inOff + 4);
  8503. // Initial Permutation
  8504. utils.ip(l, r, state.tmp, 0);
  8505. l = state.tmp[0];
  8506. r = state.tmp[1];
  8507. if (this.type === 'encrypt')
  8508. this._encrypt(state, l, r, state.tmp, 0);
  8509. else
  8510. this._decrypt(state, l, r, state.tmp, 0);
  8511. l = state.tmp[0];
  8512. r = state.tmp[1];
  8513. utils.writeUInt32BE(out, l, outOff);
  8514. utils.writeUInt32BE(out, r, outOff + 4);
  8515. };
  8516. DES.prototype._pad = function _pad(buffer, off) {
  8517. var value = buffer.length - off;
  8518. for (var i = off; i < buffer.length; i++)
  8519. buffer[i] = value;
  8520. return true;
  8521. };
  8522. DES.prototype._unpad = function _unpad(buffer) {
  8523. var pad = buffer[buffer.length - 1];
  8524. for (var i = buffer.length - pad; i < buffer.length; i++)
  8525. assert.equal(buffer[i], pad);
  8526. return buffer.slice(0, buffer.length - pad);
  8527. };
  8528. DES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {
  8529. var l = lStart;
  8530. var r = rStart;
  8531. // Apply f() x16 times
  8532. for (var i = 0; i < state.keys.length; i += 2) {
  8533. var keyL = state.keys[i];
  8534. var keyR = state.keys[i + 1];
  8535. // f(r, k)
  8536. utils.expand(r, state.tmp, 0);
  8537. keyL ^= state.tmp[0];
  8538. keyR ^= state.tmp[1];
  8539. var s = utils.substitute(keyL, keyR);
  8540. var f = utils.permute(s);
  8541. var t = r;
  8542. r = (l ^ f) >>> 0;
  8543. l = t;
  8544. }
  8545. // Reverse Initial Permutation
  8546. utils.rip(r, l, out, off);
  8547. };
  8548. DES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {
  8549. var l = rStart;
  8550. var r = lStart;
  8551. // Apply f() x16 times
  8552. for (var i = state.keys.length - 2; i >= 0; i -= 2) {
  8553. var keyL = state.keys[i];
  8554. var keyR = state.keys[i + 1];
  8555. // f(r, k)
  8556. utils.expand(l, state.tmp, 0);
  8557. keyL ^= state.tmp[0];
  8558. keyR ^= state.tmp[1];
  8559. var s = utils.substitute(keyL, keyR);
  8560. var f = utils.permute(s);
  8561. var t = l;
  8562. l = (r ^ f) >>> 0;
  8563. r = t;
  8564. }
  8565. // Reverse Initial Permutation
  8566. utils.rip(l, r, out, off);
  8567. };
  8568. },{"../des":64,"inherits":108,"minimalistic-assert":112}],68:[function(require,module,exports){
  8569. 'use strict';
  8570. var assert = require('minimalistic-assert');
  8571. var inherits = require('inherits');
  8572. var des = require('../des');
  8573. var Cipher = des.Cipher;
  8574. var DES = des.DES;
  8575. function EDEState(type, key) {
  8576. assert.equal(key.length, 24, 'Invalid key length');
  8577. var k1 = key.slice(0, 8);
  8578. var k2 = key.slice(8, 16);
  8579. var k3 = key.slice(16, 24);
  8580. if (type === 'encrypt') {
  8581. this.ciphers = [
  8582. DES.create({ type: 'encrypt', key: k1 }),
  8583. DES.create({ type: 'decrypt', key: k2 }),
  8584. DES.create({ type: 'encrypt', key: k3 })
  8585. ];
  8586. } else {
  8587. this.ciphers = [
  8588. DES.create({ type: 'decrypt', key: k3 }),
  8589. DES.create({ type: 'encrypt', key: k2 }),
  8590. DES.create({ type: 'decrypt', key: k1 })
  8591. ];
  8592. }
  8593. }
  8594. function EDE(options) {
  8595. Cipher.call(this, options);
  8596. var state = new EDEState(this.type, this.options.key);
  8597. this._edeState = state;
  8598. }
  8599. inherits(EDE, Cipher);
  8600. module.exports = EDE;
  8601. EDE.create = function create(options) {
  8602. return new EDE(options);
  8603. };
  8604. EDE.prototype._update = function _update(inp, inOff, out, outOff) {
  8605. var state = this._edeState;
  8606. state.ciphers[0]._update(inp, inOff, out, outOff);
  8607. state.ciphers[1]._update(out, outOff, out, outOff);
  8608. state.ciphers[2]._update(out, outOff, out, outOff);
  8609. };
  8610. EDE.prototype._pad = DES.prototype._pad;
  8611. EDE.prototype._unpad = DES.prototype._unpad;
  8612. },{"../des":64,"inherits":108,"minimalistic-assert":112}],69:[function(require,module,exports){
  8613. 'use strict';
  8614. exports.readUInt32BE = function readUInt32BE(bytes, off) {
  8615. var res = (bytes[0 + off] << 24) |
  8616. (bytes[1 + off] << 16) |
  8617. (bytes[2 + off] << 8) |
  8618. bytes[3 + off];
  8619. return res >>> 0;
  8620. };
  8621. exports.writeUInt32BE = function writeUInt32BE(bytes, value, off) {
  8622. bytes[0 + off] = value >>> 24;
  8623. bytes[1 + off] = (value >>> 16) & 0xff;
  8624. bytes[2 + off] = (value >>> 8) & 0xff;
  8625. bytes[3 + off] = value & 0xff;
  8626. };
  8627. exports.ip = function ip(inL, inR, out, off) {
  8628. var outL = 0;
  8629. var outR = 0;
  8630. for (var i = 6; i >= 0; i -= 2) {
  8631. for (var j = 0; j <= 24; j += 8) {
  8632. outL <<= 1;
  8633. outL |= (inR >>> (j + i)) & 1;
  8634. }
  8635. for (var j = 0; j <= 24; j += 8) {
  8636. outL <<= 1;
  8637. outL |= (inL >>> (j + i)) & 1;
  8638. }
  8639. }
  8640. for (var i = 6; i >= 0; i -= 2) {
  8641. for (var j = 1; j <= 25; j += 8) {
  8642. outR <<= 1;
  8643. outR |= (inR >>> (j + i)) & 1;
  8644. }
  8645. for (var j = 1; j <= 25; j += 8) {
  8646. outR <<= 1;
  8647. outR |= (inL >>> (j + i)) & 1;
  8648. }
  8649. }
  8650. out[off + 0] = outL >>> 0;
  8651. out[off + 1] = outR >>> 0;
  8652. };
  8653. exports.rip = function rip(inL, inR, out, off) {
  8654. var outL = 0;
  8655. var outR = 0;
  8656. for (var i = 0; i < 4; i++) {
  8657. for (var j = 24; j >= 0; j -= 8) {
  8658. outL <<= 1;
  8659. outL |= (inR >>> (j + i)) & 1;
  8660. outL <<= 1;
  8661. outL |= (inL >>> (j + i)) & 1;
  8662. }
  8663. }
  8664. for (var i = 4; i < 8; i++) {
  8665. for (var j = 24; j >= 0; j -= 8) {
  8666. outR <<= 1;
  8667. outR |= (inR >>> (j + i)) & 1;
  8668. outR <<= 1;
  8669. outR |= (inL >>> (j + i)) & 1;
  8670. }
  8671. }
  8672. out[off + 0] = outL >>> 0;
  8673. out[off + 1] = outR >>> 0;
  8674. };
  8675. exports.pc1 = function pc1(inL, inR, out, off) {
  8676. var outL = 0;
  8677. var outR = 0;
  8678. // 7, 15, 23, 31, 39, 47, 55, 63
  8679. // 6, 14, 22, 30, 39, 47, 55, 63
  8680. // 5, 13, 21, 29, 39, 47, 55, 63
  8681. // 4, 12, 20, 28
  8682. for (var i = 7; i >= 5; i--) {
  8683. for (var j = 0; j <= 24; j += 8) {
  8684. outL <<= 1;
  8685. outL |= (inR >> (j + i)) & 1;
  8686. }
  8687. for (var j = 0; j <= 24; j += 8) {
  8688. outL <<= 1;
  8689. outL |= (inL >> (j + i)) & 1;
  8690. }
  8691. }
  8692. for (var j = 0; j <= 24; j += 8) {
  8693. outL <<= 1;
  8694. outL |= (inR >> (j + i)) & 1;
  8695. }
  8696. // 1, 9, 17, 25, 33, 41, 49, 57
  8697. // 2, 10, 18, 26, 34, 42, 50, 58
  8698. // 3, 11, 19, 27, 35, 43, 51, 59
  8699. // 36, 44, 52, 60
  8700. for (var i = 1; i <= 3; i++) {
  8701. for (var j = 0; j <= 24; j += 8) {
  8702. outR <<= 1;
  8703. outR |= (inR >> (j + i)) & 1;
  8704. }
  8705. for (var j = 0; j <= 24; j += 8) {
  8706. outR <<= 1;
  8707. outR |= (inL >> (j + i)) & 1;
  8708. }
  8709. }
  8710. for (var j = 0; j <= 24; j += 8) {
  8711. outR <<= 1;
  8712. outR |= (inL >> (j + i)) & 1;
  8713. }
  8714. out[off + 0] = outL >>> 0;
  8715. out[off + 1] = outR >>> 0;
  8716. };
  8717. exports.r28shl = function r28shl(num, shift) {
  8718. return ((num << shift) & 0xfffffff) | (num >>> (28 - shift));
  8719. };
  8720. var pc2table = [
  8721. // inL => outL
  8722. 14, 11, 17, 4, 27, 23, 25, 0,
  8723. 13, 22, 7, 18, 5, 9, 16, 24,
  8724. 2, 20, 12, 21, 1, 8, 15, 26,
  8725. // inR => outR
  8726. 15, 4, 25, 19, 9, 1, 26, 16,
  8727. 5, 11, 23, 8, 12, 7, 17, 0,
  8728. 22, 3, 10, 14, 6, 20, 27, 24
  8729. ];
  8730. exports.pc2 = function pc2(inL, inR, out, off) {
  8731. var outL = 0;
  8732. var outR = 0;
  8733. var len = pc2table.length >>> 1;
  8734. for (var i = 0; i < len; i++) {
  8735. outL <<= 1;
  8736. outL |= (inL >>> pc2table[i]) & 0x1;
  8737. }
  8738. for (var i = len; i < pc2table.length; i++) {
  8739. outR <<= 1;
  8740. outR |= (inR >>> pc2table[i]) & 0x1;
  8741. }
  8742. out[off + 0] = outL >>> 0;
  8743. out[off + 1] = outR >>> 0;
  8744. };
  8745. exports.expand = function expand(r, out, off) {
  8746. var outL = 0;
  8747. var outR = 0;
  8748. outL = ((r & 1) << 5) | (r >>> 27);
  8749. for (var i = 23; i >= 15; i -= 4) {
  8750. outL <<= 6;
  8751. outL |= (r >>> i) & 0x3f;
  8752. }
  8753. for (var i = 11; i >= 3; i -= 4) {
  8754. outR |= (r >>> i) & 0x3f;
  8755. outR <<= 6;
  8756. }
  8757. outR |= ((r & 0x1f) << 1) | (r >>> 31);
  8758. out[off + 0] = outL >>> 0;
  8759. out[off + 1] = outR >>> 0;
  8760. };
  8761. var sTable = [
  8762. 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1,
  8763. 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8,
  8764. 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7,
  8765. 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13,
  8766. 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14,
  8767. 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5,
  8768. 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2,
  8769. 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9,
  8770. 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10,
  8771. 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1,
  8772. 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7,
  8773. 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12,
  8774. 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3,
  8775. 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9,
  8776. 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8,
  8777. 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14,
  8778. 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1,
  8779. 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6,
  8780. 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13,
  8781. 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3,
  8782. 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5,
  8783. 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8,
  8784. 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10,
  8785. 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13,
  8786. 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10,
  8787. 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6,
  8788. 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7,
  8789. 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12,
  8790. 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4,
  8791. 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2,
  8792. 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13,
  8793. 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11
  8794. ];
  8795. exports.substitute = function substitute(inL, inR) {
  8796. var out = 0;
  8797. for (var i = 0; i < 4; i++) {
  8798. var b = (inL >>> (18 - i * 6)) & 0x3f;
  8799. var sb = sTable[i * 0x40 + b];
  8800. out <<= 4;
  8801. out |= sb;
  8802. }
  8803. for (var i = 0; i < 4; i++) {
  8804. var b = (inR >>> (18 - i * 6)) & 0x3f;
  8805. var sb = sTable[4 * 0x40 + i * 0x40 + b];
  8806. out <<= 4;
  8807. out |= sb;
  8808. }
  8809. return out >>> 0;
  8810. };
  8811. var permuteTable = [
  8812. 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22,
  8813. 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7
  8814. ];
  8815. exports.permute = function permute(num) {
  8816. var out = 0;
  8817. for (var i = 0; i < permuteTable.length; i++) {
  8818. out <<= 1;
  8819. out |= (num >>> permuteTable[i]) & 0x1;
  8820. }
  8821. return out >>> 0;
  8822. };
  8823. exports.padSplit = function padSplit(num, size, group) {
  8824. var str = num.toString(2);
  8825. while (str.length < size)
  8826. str = '0' + str;
  8827. var out = [];
  8828. for (var i = 0; i < size; i += group)
  8829. out.push(str.slice(i, i + group));
  8830. return out.join(' ');
  8831. };
  8832. },{}],70:[function(require,module,exports){
  8833. (function (Buffer){
  8834. var generatePrime = require('./lib/generatePrime')
  8835. var primes = require('./lib/primes.json')
  8836. var DH = require('./lib/dh')
  8837. function getDiffieHellman (mod) {
  8838. var prime = new Buffer(primes[mod].prime, 'hex')
  8839. var gen = new Buffer(primes[mod].gen, 'hex')
  8840. return new DH(prime, gen)
  8841. }
  8842. var ENCODINGS = {
  8843. 'binary': true, 'hex': true, 'base64': true
  8844. }
  8845. function createDiffieHellman (prime, enc, generator, genc) {
  8846. if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) {
  8847. return createDiffieHellman(prime, 'binary', enc, generator)
  8848. }
  8849. enc = enc || 'binary'
  8850. genc = genc || 'binary'
  8851. generator = generator || new Buffer([2])
  8852. if (!Buffer.isBuffer(generator)) {
  8853. generator = new Buffer(generator, genc)
  8854. }
  8855. if (typeof prime === 'number') {
  8856. return new DH(generatePrime(prime, generator), generator, true)
  8857. }
  8858. if (!Buffer.isBuffer(prime)) {
  8859. prime = new Buffer(prime, enc)
  8860. }
  8861. return new DH(prime, generator, true)
  8862. }
  8863. exports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman
  8864. exports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman
  8865. }).call(this,require("buffer").Buffer)
  8866. },{"./lib/dh":71,"./lib/generatePrime":72,"./lib/primes.json":73,"buffer":54}],71:[function(require,module,exports){
  8867. (function (Buffer){
  8868. var BN = require('bn.js');
  8869. var MillerRabin = require('miller-rabin');
  8870. var millerRabin = new MillerRabin();
  8871. var TWENTYFOUR = new BN(24);
  8872. var ELEVEN = new BN(11);
  8873. var TEN = new BN(10);
  8874. var THREE = new BN(3);
  8875. var SEVEN = new BN(7);
  8876. var primes = require('./generatePrime');
  8877. var randomBytes = require('randombytes');
  8878. module.exports = DH;
  8879. function setPublicKey(pub, enc) {
  8880. enc = enc || 'utf8';
  8881. if (!Buffer.isBuffer(pub)) {
  8882. pub = new Buffer(pub, enc);
  8883. }
  8884. this._pub = new BN(pub);
  8885. return this;
  8886. }
  8887. function setPrivateKey(priv, enc) {
  8888. enc = enc || 'utf8';
  8889. if (!Buffer.isBuffer(priv)) {
  8890. priv = new Buffer(priv, enc);
  8891. }
  8892. this._priv = new BN(priv);
  8893. return this;
  8894. }
  8895. var primeCache = {};
  8896. function checkPrime(prime, generator) {
  8897. var gen = generator.toString('hex');
  8898. var hex = [gen, prime.toString(16)].join('_');
  8899. if (hex in primeCache) {
  8900. return primeCache[hex];
  8901. }
  8902. var error = 0;
  8903. if (prime.isEven() ||
  8904. !primes.simpleSieve ||
  8905. !primes.fermatTest(prime) ||
  8906. !millerRabin.test(prime)) {
  8907. //not a prime so +1
  8908. error += 1;
  8909. if (gen === '02' || gen === '05') {
  8910. // we'd be able to check the generator
  8911. // it would fail so +8
  8912. error += 8;
  8913. } else {
  8914. //we wouldn't be able to test the generator
  8915. // so +4
  8916. error += 4;
  8917. }
  8918. primeCache[hex] = error;
  8919. return error;
  8920. }
  8921. if (!millerRabin.test(prime.shrn(1))) {
  8922. //not a safe prime
  8923. error += 2;
  8924. }
  8925. var rem;
  8926. switch (gen) {
  8927. case '02':
  8928. if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {
  8929. // unsuidable generator
  8930. error += 8;
  8931. }
  8932. break;
  8933. case '05':
  8934. rem = prime.mod(TEN);
  8935. if (rem.cmp(THREE) && rem.cmp(SEVEN)) {
  8936. // prime mod 10 needs to equal 3 or 7
  8937. error += 8;
  8938. }
  8939. break;
  8940. default:
  8941. error += 4;
  8942. }
  8943. primeCache[hex] = error;
  8944. return error;
  8945. }
  8946. function DH(prime, generator, malleable) {
  8947. this.setGenerator(generator);
  8948. this.__prime = new BN(prime);
  8949. this._prime = BN.mont(this.__prime);
  8950. this._primeLen = prime.length;
  8951. this._pub = undefined;
  8952. this._priv = undefined;
  8953. this._primeCode = undefined;
  8954. if (malleable) {
  8955. this.setPublicKey = setPublicKey;
  8956. this.setPrivateKey = setPrivateKey;
  8957. } else {
  8958. this._primeCode = 8;
  8959. }
  8960. }
  8961. Object.defineProperty(DH.prototype, 'verifyError', {
  8962. enumerable: true,
  8963. get: function () {
  8964. if (typeof this._primeCode !== 'number') {
  8965. this._primeCode = checkPrime(this.__prime, this.__gen);
  8966. }
  8967. return this._primeCode;
  8968. }
  8969. });
  8970. DH.prototype.generateKeys = function () {
  8971. if (!this._priv) {
  8972. this._priv = new BN(randomBytes(this._primeLen));
  8973. }
  8974. this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();
  8975. return this.getPublicKey();
  8976. };
  8977. DH.prototype.computeSecret = function (other) {
  8978. other = new BN(other);
  8979. other = other.toRed(this._prime);
  8980. var secret = other.redPow(this._priv).fromRed();
  8981. var out = new Buffer(secret.toArray());
  8982. var prime = this.getPrime();
  8983. if (out.length < prime.length) {
  8984. var front = new Buffer(prime.length - out.length);
  8985. front.fill(0);
  8986. out = Buffer.concat([front, out]);
  8987. }
  8988. return out;
  8989. };
  8990. DH.prototype.getPublicKey = function getPublicKey(enc) {
  8991. return formatReturnValue(this._pub, enc);
  8992. };
  8993. DH.prototype.getPrivateKey = function getPrivateKey(enc) {
  8994. return formatReturnValue(this._priv, enc);
  8995. };
  8996. DH.prototype.getPrime = function (enc) {
  8997. return formatReturnValue(this.__prime, enc);
  8998. };
  8999. DH.prototype.getGenerator = function (enc) {
  9000. return formatReturnValue(this._gen, enc);
  9001. };
  9002. DH.prototype.setGenerator = function (gen, enc) {
  9003. enc = enc || 'utf8';
  9004. if (!Buffer.isBuffer(gen)) {
  9005. gen = new Buffer(gen, enc);
  9006. }
  9007. this.__gen = gen;
  9008. this._gen = new BN(gen);
  9009. return this;
  9010. };
  9011. function formatReturnValue(bn, enc) {
  9012. var buf = new Buffer(bn.toArray());
  9013. if (!enc) {
  9014. return buf;
  9015. } else {
  9016. return buf.toString(enc);
  9017. }
  9018. }
  9019. }).call(this,require("buffer").Buffer)
  9020. },{"./generatePrime":72,"bn.js":25,"buffer":54,"miller-rabin":111,"randombytes":133}],72:[function(require,module,exports){
  9021. var randomBytes = require('randombytes');
  9022. module.exports = findPrime;
  9023. findPrime.simpleSieve = simpleSieve;
  9024. findPrime.fermatTest = fermatTest;
  9025. var BN = require('bn.js');
  9026. var TWENTYFOUR = new BN(24);
  9027. var MillerRabin = require('miller-rabin');
  9028. var millerRabin = new MillerRabin();
  9029. var ONE = new BN(1);
  9030. var TWO = new BN(2);
  9031. var FIVE = new BN(5);
  9032. var SIXTEEN = new BN(16);
  9033. var EIGHT = new BN(8);
  9034. var TEN = new BN(10);
  9035. var THREE = new BN(3);
  9036. var SEVEN = new BN(7);
  9037. var ELEVEN = new BN(11);
  9038. var FOUR = new BN(4);
  9039. var TWELVE = new BN(12);
  9040. var primes = null;
  9041. function _getPrimes() {
  9042. if (primes !== null)
  9043. return primes;
  9044. var limit = 0x100000;
  9045. var res = [];
  9046. res[0] = 2;
  9047. for (var i = 1, k = 3; k < limit; k += 2) {
  9048. var sqrt = Math.ceil(Math.sqrt(k));
  9049. for (var j = 0; j < i && res[j] <= sqrt; j++)
  9050. if (k % res[j] === 0)
  9051. break;
  9052. if (i !== j && res[j] <= sqrt)
  9053. continue;
  9054. res[i++] = k;
  9055. }
  9056. primes = res;
  9057. return res;
  9058. }
  9059. function simpleSieve(p) {
  9060. var primes = _getPrimes();
  9061. for (var i = 0; i < primes.length; i++)
  9062. if (p.modn(primes[i]) === 0) {
  9063. if (p.cmpn(primes[i]) === 0) {
  9064. return true;
  9065. } else {
  9066. return false;
  9067. }
  9068. }
  9069. return true;
  9070. }
  9071. function fermatTest(p) {
  9072. var red = BN.mont(p);
  9073. return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;
  9074. }
  9075. function findPrime(bits, gen) {
  9076. if (bits < 16) {
  9077. // this is what openssl does
  9078. if (gen === 2 || gen === 5) {
  9079. return new BN([0x8c, 0x7b]);
  9080. } else {
  9081. return new BN([0x8c, 0x27]);
  9082. }
  9083. }
  9084. gen = new BN(gen);
  9085. var num, n2;
  9086. while (true) {
  9087. num = new BN(randomBytes(Math.ceil(bits / 8)));
  9088. while (num.bitLength() > bits) {
  9089. num.ishrn(1);
  9090. }
  9091. if (num.isEven()) {
  9092. num.iadd(ONE);
  9093. }
  9094. if (!num.testn(1)) {
  9095. num.iadd(TWO);
  9096. }
  9097. if (!gen.cmp(TWO)) {
  9098. while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {
  9099. num.iadd(FOUR);
  9100. }
  9101. } else if (!gen.cmp(FIVE)) {
  9102. while (num.mod(TEN).cmp(THREE)) {
  9103. num.iadd(FOUR);
  9104. }
  9105. }
  9106. n2 = num.shrn(1);
  9107. if (simpleSieve(n2) && simpleSieve(num) &&
  9108. fermatTest(n2) && fermatTest(num) &&
  9109. millerRabin.test(n2) && millerRabin.test(num)) {
  9110. return num;
  9111. }
  9112. }
  9113. }
  9114. },{"bn.js":25,"miller-rabin":111,"randombytes":133}],73:[function(require,module,exports){
  9115. module.exports={
  9116. "modp1": {
  9117. "gen": "02",
  9118. "prime": "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"
  9119. },
  9120. "modp2": {
  9121. "gen": "02",
  9122. "prime": "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"
  9123. },
  9124. "modp5": {
  9125. "gen": "02",
  9126. "prime": "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"
  9127. },
  9128. "modp14": {
  9129. "gen": "02",
  9130. "prime": "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"
  9131. },
  9132. "modp15": {
  9133. "gen": "02",
  9134. "prime": "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"
  9135. },
  9136. "modp16": {
  9137. "gen": "02",
  9138. "prime": "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"
  9139. },
  9140. "modp17": {
  9141. "gen": "02",
  9142. "prime": "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"
  9143. },
  9144. "modp18": {
  9145. "gen": "02",
  9146. "prime": "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"
  9147. }
  9148. }
  9149. },{}],74:[function(require,module,exports){
  9150. 'use strict';
  9151. var elliptic = exports;
  9152. elliptic.version = require('../package.json').version;
  9153. elliptic.utils = require('./elliptic/utils');
  9154. elliptic.rand = require('brorand');
  9155. elliptic.curve = require('./elliptic/curve');
  9156. elliptic.curves = require('./elliptic/curves');
  9157. // Protocols
  9158. elliptic.ec = require('./elliptic/ec');
  9159. elliptic.eddsa = require('./elliptic/eddsa');
  9160. },{"../package.json":89,"./elliptic/curve":77,"./elliptic/curves":80,"./elliptic/ec":81,"./elliptic/eddsa":84,"./elliptic/utils":88,"brorand":26}],75:[function(require,module,exports){
  9161. 'use strict';
  9162. var BN = require('bn.js');
  9163. var elliptic = require('../../elliptic');
  9164. var utils = elliptic.utils;
  9165. var getNAF = utils.getNAF;
  9166. var getJSF = utils.getJSF;
  9167. var assert = utils.assert;
  9168. function BaseCurve(type, conf) {
  9169. this.type = type;
  9170. this.p = new BN(conf.p, 16);
  9171. // Use Montgomery, when there is no fast reduction for the prime
  9172. this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);
  9173. // Useful for many curves
  9174. this.zero = new BN(0).toRed(this.red);
  9175. this.one = new BN(1).toRed(this.red);
  9176. this.two = new BN(2).toRed(this.red);
  9177. // Curve configuration, optional
  9178. this.n = conf.n && new BN(conf.n, 16);
  9179. this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);
  9180. // Temporary arrays
  9181. this._wnafT1 = new Array(4);
  9182. this._wnafT2 = new Array(4);
  9183. this._wnafT3 = new Array(4);
  9184. this._wnafT4 = new Array(4);
  9185. // Generalized Greg Maxwell's trick
  9186. var adjustCount = this.n && this.p.div(this.n);
  9187. if (!adjustCount || adjustCount.cmpn(100) > 0) {
  9188. this.redN = null;
  9189. } else {
  9190. this._maxwellTrick = true;
  9191. this.redN = this.n.toRed(this.red);
  9192. }
  9193. }
  9194. module.exports = BaseCurve;
  9195. BaseCurve.prototype.point = function point() {
  9196. throw new Error('Not implemented');
  9197. };
  9198. BaseCurve.prototype.validate = function validate() {
  9199. throw new Error('Not implemented');
  9200. };
  9201. BaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {
  9202. assert(p.precomputed);
  9203. var doubles = p._getDoubles();
  9204. var naf = getNAF(k, 1);
  9205. var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);
  9206. I /= 3;
  9207. // Translate into more windowed form
  9208. var repr = [];
  9209. for (var j = 0; j < naf.length; j += doubles.step) {
  9210. var nafW = 0;
  9211. for (var k = j + doubles.step - 1; k >= j; k--)
  9212. nafW = (nafW << 1) + naf[k];
  9213. repr.push(nafW);
  9214. }
  9215. var a = this.jpoint(null, null, null);
  9216. var b = this.jpoint(null, null, null);
  9217. for (var i = I; i > 0; i--) {
  9218. for (var j = 0; j < repr.length; j++) {
  9219. var nafW = repr[j];
  9220. if (nafW === i)
  9221. b = b.mixedAdd(doubles.points[j]);
  9222. else if (nafW === -i)
  9223. b = b.mixedAdd(doubles.points[j].neg());
  9224. }
  9225. a = a.add(b);
  9226. }
  9227. return a.toP();
  9228. };
  9229. BaseCurve.prototype._wnafMul = function _wnafMul(p, k) {
  9230. var w = 4;
  9231. // Precompute window
  9232. var nafPoints = p._getNAFPoints(w);
  9233. w = nafPoints.wnd;
  9234. var wnd = nafPoints.points;
  9235. // Get NAF form
  9236. var naf = getNAF(k, w);
  9237. // Add `this`*(N+1) for every w-NAF index
  9238. var acc = this.jpoint(null, null, null);
  9239. for (var i = naf.length - 1; i >= 0; i--) {
  9240. // Count zeroes
  9241. for (var k = 0; i >= 0 && naf[i] === 0; i--)
  9242. k++;
  9243. if (i >= 0)
  9244. k++;
  9245. acc = acc.dblp(k);
  9246. if (i < 0)
  9247. break;
  9248. var z = naf[i];
  9249. assert(z !== 0);
  9250. if (p.type === 'affine') {
  9251. // J +- P
  9252. if (z > 0)
  9253. acc = acc.mixedAdd(wnd[(z - 1) >> 1]);
  9254. else
  9255. acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());
  9256. } else {
  9257. // J +- J
  9258. if (z > 0)
  9259. acc = acc.add(wnd[(z - 1) >> 1]);
  9260. else
  9261. acc = acc.add(wnd[(-z - 1) >> 1].neg());
  9262. }
  9263. }
  9264. return p.type === 'affine' ? acc.toP() : acc;
  9265. };
  9266. BaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,
  9267. points,
  9268. coeffs,
  9269. len,
  9270. jacobianResult) {
  9271. var wndWidth = this._wnafT1;
  9272. var wnd = this._wnafT2;
  9273. var naf = this._wnafT3;
  9274. // Fill all arrays
  9275. var max = 0;
  9276. for (var i = 0; i < len; i++) {
  9277. var p = points[i];
  9278. var nafPoints = p._getNAFPoints(defW);
  9279. wndWidth[i] = nafPoints.wnd;
  9280. wnd[i] = nafPoints.points;
  9281. }
  9282. // Comb small window NAFs
  9283. for (var i = len - 1; i >= 1; i -= 2) {
  9284. var a = i - 1;
  9285. var b = i;
  9286. if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {
  9287. naf[a] = getNAF(coeffs[a], wndWidth[a]);
  9288. naf[b] = getNAF(coeffs[b], wndWidth[b]);
  9289. max = Math.max(naf[a].length, max);
  9290. max = Math.max(naf[b].length, max);
  9291. continue;
  9292. }
  9293. var comb = [
  9294. points[a], /* 1 */
  9295. null, /* 3 */
  9296. null, /* 5 */
  9297. points[b] /* 7 */
  9298. ];
  9299. // Try to avoid Projective points, if possible
  9300. if (points[a].y.cmp(points[b].y) === 0) {
  9301. comb[1] = points[a].add(points[b]);
  9302. comb[2] = points[a].toJ().mixedAdd(points[b].neg());
  9303. } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {
  9304. comb[1] = points[a].toJ().mixedAdd(points[b]);
  9305. comb[2] = points[a].add(points[b].neg());
  9306. } else {
  9307. comb[1] = points[a].toJ().mixedAdd(points[b]);
  9308. comb[2] = points[a].toJ().mixedAdd(points[b].neg());
  9309. }
  9310. var index = [
  9311. -3, /* -1 -1 */
  9312. -1, /* -1 0 */
  9313. -5, /* -1 1 */
  9314. -7, /* 0 -1 */
  9315. 0, /* 0 0 */
  9316. 7, /* 0 1 */
  9317. 5, /* 1 -1 */
  9318. 1, /* 1 0 */
  9319. 3 /* 1 1 */
  9320. ];
  9321. var jsf = getJSF(coeffs[a], coeffs[b]);
  9322. max = Math.max(jsf[0].length, max);
  9323. naf[a] = new Array(max);
  9324. naf[b] = new Array(max);
  9325. for (var j = 0; j < max; j++) {
  9326. var ja = jsf[0][j] | 0;
  9327. var jb = jsf[1][j] | 0;
  9328. naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];
  9329. naf[b][j] = 0;
  9330. wnd[a] = comb;
  9331. }
  9332. }
  9333. var acc = this.jpoint(null, null, null);
  9334. var tmp = this._wnafT4;
  9335. for (var i = max; i >= 0; i--) {
  9336. var k = 0;
  9337. while (i >= 0) {
  9338. var zero = true;
  9339. for (var j = 0; j < len; j++) {
  9340. tmp[j] = naf[j][i] | 0;
  9341. if (tmp[j] !== 0)
  9342. zero = false;
  9343. }
  9344. if (!zero)
  9345. break;
  9346. k++;
  9347. i--;
  9348. }
  9349. if (i >= 0)
  9350. k++;
  9351. acc = acc.dblp(k);
  9352. if (i < 0)
  9353. break;
  9354. for (var j = 0; j < len; j++) {
  9355. var z = tmp[j];
  9356. var p;
  9357. if (z === 0)
  9358. continue;
  9359. else if (z > 0)
  9360. p = wnd[j][(z - 1) >> 1];
  9361. else if (z < 0)
  9362. p = wnd[j][(-z - 1) >> 1].neg();
  9363. if (p.type === 'affine')
  9364. acc = acc.mixedAdd(p);
  9365. else
  9366. acc = acc.add(p);
  9367. }
  9368. }
  9369. // Zeroify references
  9370. for (var i = 0; i < len; i++)
  9371. wnd[i] = null;
  9372. if (jacobianResult)
  9373. return acc;
  9374. else
  9375. return acc.toP();
  9376. };
  9377. function BasePoint(curve, type) {
  9378. this.curve = curve;
  9379. this.type = type;
  9380. this.precomputed = null;
  9381. }
  9382. BaseCurve.BasePoint = BasePoint;
  9383. BasePoint.prototype.eq = function eq(/*other*/) {
  9384. throw new Error('Not implemented');
  9385. };
  9386. BasePoint.prototype.validate = function validate() {
  9387. return this.curve.validate(this);
  9388. };
  9389. BaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
  9390. bytes = utils.toArray(bytes, enc);
  9391. var len = this.p.byteLength();
  9392. // uncompressed, hybrid-odd, hybrid-even
  9393. if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&
  9394. bytes.length - 1 === 2 * len) {
  9395. if (bytes[0] === 0x06)
  9396. assert(bytes[bytes.length - 1] % 2 === 0);
  9397. else if (bytes[0] === 0x07)
  9398. assert(bytes[bytes.length - 1] % 2 === 1);
  9399. var res = this.point(bytes.slice(1, 1 + len),
  9400. bytes.slice(1 + len, 1 + 2 * len));
  9401. return res;
  9402. } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&
  9403. bytes.length - 1 === len) {
  9404. return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);
  9405. }
  9406. throw new Error('Unknown point format');
  9407. };
  9408. BasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {
  9409. return this.encode(enc, true);
  9410. };
  9411. BasePoint.prototype._encode = function _encode(compact) {
  9412. var len = this.curve.p.byteLength();
  9413. var x = this.getX().toArray('be', len);
  9414. if (compact)
  9415. return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);
  9416. return [ 0x04 ].concat(x, this.getY().toArray('be', len)) ;
  9417. };
  9418. BasePoint.prototype.encode = function encode(enc, compact) {
  9419. return utils.encode(this._encode(compact), enc);
  9420. };
  9421. BasePoint.prototype.precompute = function precompute(power) {
  9422. if (this.precomputed)
  9423. return this;
  9424. var precomputed = {
  9425. doubles: null,
  9426. naf: null,
  9427. beta: null
  9428. };
  9429. precomputed.naf = this._getNAFPoints(8);
  9430. precomputed.doubles = this._getDoubles(4, power);
  9431. precomputed.beta = this._getBeta();
  9432. this.precomputed = precomputed;
  9433. return this;
  9434. };
  9435. BasePoint.prototype._hasDoubles = function _hasDoubles(k) {
  9436. if (!this.precomputed)
  9437. return false;
  9438. var doubles = this.precomputed.doubles;
  9439. if (!doubles)
  9440. return false;
  9441. return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);
  9442. };
  9443. BasePoint.prototype._getDoubles = function _getDoubles(step, power) {
  9444. if (this.precomputed && this.precomputed.doubles)
  9445. return this.precomputed.doubles;
  9446. var doubles = [ this ];
  9447. var acc = this;
  9448. for (var i = 0; i < power; i += step) {
  9449. for (var j = 0; j < step; j++)
  9450. acc = acc.dbl();
  9451. doubles.push(acc);
  9452. }
  9453. return {
  9454. step: step,
  9455. points: doubles
  9456. };
  9457. };
  9458. BasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {
  9459. if (this.precomputed && this.precomputed.naf)
  9460. return this.precomputed.naf;
  9461. var res = [ this ];
  9462. var max = (1 << wnd) - 1;
  9463. var dbl = max === 1 ? null : this.dbl();
  9464. for (var i = 1; i < max; i++)
  9465. res[i] = res[i - 1].add(dbl);
  9466. return {
  9467. wnd: wnd,
  9468. points: res
  9469. };
  9470. };
  9471. BasePoint.prototype._getBeta = function _getBeta() {
  9472. return null;
  9473. };
  9474. BasePoint.prototype.dblp = function dblp(k) {
  9475. var r = this;
  9476. for (var i = 0; i < k; i++)
  9477. r = r.dbl();
  9478. return r;
  9479. };
  9480. },{"../../elliptic":74,"bn.js":25}],76:[function(require,module,exports){
  9481. 'use strict';
  9482. var curve = require('../curve');
  9483. var elliptic = require('../../elliptic');
  9484. var BN = require('bn.js');
  9485. var inherits = require('inherits');
  9486. var Base = curve.base;
  9487. var assert = elliptic.utils.assert;
  9488. function EdwardsCurve(conf) {
  9489. // NOTE: Important as we are creating point in Base.call()
  9490. this.twisted = (conf.a | 0) !== 1;
  9491. this.mOneA = this.twisted && (conf.a | 0) === -1;
  9492. this.extended = this.mOneA;
  9493. Base.call(this, 'edwards', conf);
  9494. this.a = new BN(conf.a, 16).umod(this.red.m);
  9495. this.a = this.a.toRed(this.red);
  9496. this.c = new BN(conf.c, 16).toRed(this.red);
  9497. this.c2 = this.c.redSqr();
  9498. this.d = new BN(conf.d, 16).toRed(this.red);
  9499. this.dd = this.d.redAdd(this.d);
  9500. assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);
  9501. this.oneC = (conf.c | 0) === 1;
  9502. }
  9503. inherits(EdwardsCurve, Base);
  9504. module.exports = EdwardsCurve;
  9505. EdwardsCurve.prototype._mulA = function _mulA(num) {
  9506. if (this.mOneA)
  9507. return num.redNeg();
  9508. else
  9509. return this.a.redMul(num);
  9510. };
  9511. EdwardsCurve.prototype._mulC = function _mulC(num) {
  9512. if (this.oneC)
  9513. return num;
  9514. else
  9515. return this.c.redMul(num);
  9516. };
  9517. // Just for compatibility with Short curve
  9518. EdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {
  9519. return this.point(x, y, z, t);
  9520. };
  9521. EdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {
  9522. x = new BN(x, 16);
  9523. if (!x.red)
  9524. x = x.toRed(this.red);
  9525. var x2 = x.redSqr();
  9526. var rhs = this.c2.redSub(this.a.redMul(x2));
  9527. var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));
  9528. var y2 = rhs.redMul(lhs.redInvm());
  9529. var y = y2.redSqrt();
  9530. if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)
  9531. throw new Error('invalid point');
  9532. var isOdd = y.fromRed().isOdd();
  9533. if (odd && !isOdd || !odd && isOdd)
  9534. y = y.redNeg();
  9535. return this.point(x, y);
  9536. };
  9537. EdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {
  9538. y = new BN(y, 16);
  9539. if (!y.red)
  9540. y = y.toRed(this.red);
  9541. // x^2 = (y^2 - 1) / (d y^2 + 1)
  9542. var y2 = y.redSqr();
  9543. var lhs = y2.redSub(this.one);
  9544. var rhs = y2.redMul(this.d).redAdd(this.one);
  9545. var x2 = lhs.redMul(rhs.redInvm());
  9546. if (x2.cmp(this.zero) === 0) {
  9547. if (odd)
  9548. throw new Error('invalid point');
  9549. else
  9550. return this.point(this.zero, y);
  9551. }
  9552. var x = x2.redSqrt();
  9553. if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)
  9554. throw new Error('invalid point');
  9555. if (x.isOdd() !== odd)
  9556. x = x.redNeg();
  9557. return this.point(x, y);
  9558. };
  9559. EdwardsCurve.prototype.validate = function validate(point) {
  9560. if (point.isInfinity())
  9561. return true;
  9562. // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)
  9563. point.normalize();
  9564. var x2 = point.x.redSqr();
  9565. var y2 = point.y.redSqr();
  9566. var lhs = x2.redMul(this.a).redAdd(y2);
  9567. var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));
  9568. return lhs.cmp(rhs) === 0;
  9569. };
  9570. function Point(curve, x, y, z, t) {
  9571. Base.BasePoint.call(this, curve, 'projective');
  9572. if (x === null && y === null && z === null) {
  9573. this.x = this.curve.zero;
  9574. this.y = this.curve.one;
  9575. this.z = this.curve.one;
  9576. this.t = this.curve.zero;
  9577. this.zOne = true;
  9578. } else {
  9579. this.x = new BN(x, 16);
  9580. this.y = new BN(y, 16);
  9581. this.z = z ? new BN(z, 16) : this.curve.one;
  9582. this.t = t && new BN(t, 16);
  9583. if (!this.x.red)
  9584. this.x = this.x.toRed(this.curve.red);
  9585. if (!this.y.red)
  9586. this.y = this.y.toRed(this.curve.red);
  9587. if (!this.z.red)
  9588. this.z = this.z.toRed(this.curve.red);
  9589. if (this.t && !this.t.red)
  9590. this.t = this.t.toRed(this.curve.red);
  9591. this.zOne = this.z === this.curve.one;
  9592. // Use extended coordinates
  9593. if (this.curve.extended && !this.t) {
  9594. this.t = this.x.redMul(this.y);
  9595. if (!this.zOne)
  9596. this.t = this.t.redMul(this.z.redInvm());
  9597. }
  9598. }
  9599. }
  9600. inherits(Point, Base.BasePoint);
  9601. EdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
  9602. return Point.fromJSON(this, obj);
  9603. };
  9604. EdwardsCurve.prototype.point = function point(x, y, z, t) {
  9605. return new Point(this, x, y, z, t);
  9606. };
  9607. Point.fromJSON = function fromJSON(curve, obj) {
  9608. return new Point(curve, obj[0], obj[1], obj[2]);
  9609. };
  9610. Point.prototype.inspect = function inspect() {
  9611. if (this.isInfinity())
  9612. return '<EC Point Infinity>';
  9613. return '<EC Point x: ' + this.x.fromRed().toString(16, 2) +
  9614. ' y: ' + this.y.fromRed().toString(16, 2) +
  9615. ' z: ' + this.z.fromRed().toString(16, 2) + '>';
  9616. };
  9617. Point.prototype.isInfinity = function isInfinity() {
  9618. // XXX This code assumes that zero is always zero in red
  9619. return this.x.cmpn(0) === 0 &&
  9620. this.y.cmp(this.z) === 0;
  9621. };
  9622. Point.prototype._extDbl = function _extDbl() {
  9623. // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html
  9624. // #doubling-dbl-2008-hwcd
  9625. // 4M + 4S
  9626. // A = X1^2
  9627. var a = this.x.redSqr();
  9628. // B = Y1^2
  9629. var b = this.y.redSqr();
  9630. // C = 2 * Z1^2
  9631. var c = this.z.redSqr();
  9632. c = c.redIAdd(c);
  9633. // D = a * A
  9634. var d = this.curve._mulA(a);
  9635. // E = (X1 + Y1)^2 - A - B
  9636. var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);
  9637. // G = D + B
  9638. var g = d.redAdd(b);
  9639. // F = G - C
  9640. var f = g.redSub(c);
  9641. // H = D - B
  9642. var h = d.redSub(b);
  9643. // X3 = E * F
  9644. var nx = e.redMul(f);
  9645. // Y3 = G * H
  9646. var ny = g.redMul(h);
  9647. // T3 = E * H
  9648. var nt = e.redMul(h);
  9649. // Z3 = F * G
  9650. var nz = f.redMul(g);
  9651. return this.curve.point(nx, ny, nz, nt);
  9652. };
  9653. Point.prototype._projDbl = function _projDbl() {
  9654. // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
  9655. // #doubling-dbl-2008-bbjlp
  9656. // #doubling-dbl-2007-bl
  9657. // and others
  9658. // Generally 3M + 4S or 2M + 4S
  9659. // B = (X1 + Y1)^2
  9660. var b = this.x.redAdd(this.y).redSqr();
  9661. // C = X1^2
  9662. var c = this.x.redSqr();
  9663. // D = Y1^2
  9664. var d = this.y.redSqr();
  9665. var nx;
  9666. var ny;
  9667. var nz;
  9668. if (this.curve.twisted) {
  9669. // E = a * C
  9670. var e = this.curve._mulA(c);
  9671. // F = E + D
  9672. var f = e.redAdd(d);
  9673. if (this.zOne) {
  9674. // X3 = (B - C - D) * (F - 2)
  9675. nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));
  9676. // Y3 = F * (E - D)
  9677. ny = f.redMul(e.redSub(d));
  9678. // Z3 = F^2 - 2 * F
  9679. nz = f.redSqr().redSub(f).redSub(f);
  9680. } else {
  9681. // H = Z1^2
  9682. var h = this.z.redSqr();
  9683. // J = F - 2 * H
  9684. var j = f.redSub(h).redISub(h);
  9685. // X3 = (B-C-D)*J
  9686. nx = b.redSub(c).redISub(d).redMul(j);
  9687. // Y3 = F * (E - D)
  9688. ny = f.redMul(e.redSub(d));
  9689. // Z3 = F * J
  9690. nz = f.redMul(j);
  9691. }
  9692. } else {
  9693. // E = C + D
  9694. var e = c.redAdd(d);
  9695. // H = (c * Z1)^2
  9696. var h = this.curve._mulC(this.c.redMul(this.z)).redSqr();
  9697. // J = E - 2 * H
  9698. var j = e.redSub(h).redSub(h);
  9699. // X3 = c * (B - E) * J
  9700. nx = this.curve._mulC(b.redISub(e)).redMul(j);
  9701. // Y3 = c * E * (C - D)
  9702. ny = this.curve._mulC(e).redMul(c.redISub(d));
  9703. // Z3 = E * J
  9704. nz = e.redMul(j);
  9705. }
  9706. return this.curve.point(nx, ny, nz);
  9707. };
  9708. Point.prototype.dbl = function dbl() {
  9709. if (this.isInfinity())
  9710. return this;
  9711. // Double in extended coordinates
  9712. if (this.curve.extended)
  9713. return this._extDbl();
  9714. else
  9715. return this._projDbl();
  9716. };
  9717. Point.prototype._extAdd = function _extAdd(p) {
  9718. // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html
  9719. // #addition-add-2008-hwcd-3
  9720. // 8M
  9721. // A = (Y1 - X1) * (Y2 - X2)
  9722. var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));
  9723. // B = (Y1 + X1) * (Y2 + X2)
  9724. var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));
  9725. // C = T1 * k * T2
  9726. var c = this.t.redMul(this.curve.dd).redMul(p.t);
  9727. // D = Z1 * 2 * Z2
  9728. var d = this.z.redMul(p.z.redAdd(p.z));
  9729. // E = B - A
  9730. var e = b.redSub(a);
  9731. // F = D - C
  9732. var f = d.redSub(c);
  9733. // G = D + C
  9734. var g = d.redAdd(c);
  9735. // H = B + A
  9736. var h = b.redAdd(a);
  9737. // X3 = E * F
  9738. var nx = e.redMul(f);
  9739. // Y3 = G * H
  9740. var ny = g.redMul(h);
  9741. // T3 = E * H
  9742. var nt = e.redMul(h);
  9743. // Z3 = F * G
  9744. var nz = f.redMul(g);
  9745. return this.curve.point(nx, ny, nz, nt);
  9746. };
  9747. Point.prototype._projAdd = function _projAdd(p) {
  9748. // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
  9749. // #addition-add-2008-bbjlp
  9750. // #addition-add-2007-bl
  9751. // 10M + 1S
  9752. // A = Z1 * Z2
  9753. var a = this.z.redMul(p.z);
  9754. // B = A^2
  9755. var b = a.redSqr();
  9756. // C = X1 * X2
  9757. var c = this.x.redMul(p.x);
  9758. // D = Y1 * Y2
  9759. var d = this.y.redMul(p.y);
  9760. // E = d * C * D
  9761. var e = this.curve.d.redMul(c).redMul(d);
  9762. // F = B - E
  9763. var f = b.redSub(e);
  9764. // G = B + E
  9765. var g = b.redAdd(e);
  9766. // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)
  9767. var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);
  9768. var nx = a.redMul(f).redMul(tmp);
  9769. var ny;
  9770. var nz;
  9771. if (this.curve.twisted) {
  9772. // Y3 = A * G * (D - a * C)
  9773. ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));
  9774. // Z3 = F * G
  9775. nz = f.redMul(g);
  9776. } else {
  9777. // Y3 = A * G * (D - C)
  9778. ny = a.redMul(g).redMul(d.redSub(c));
  9779. // Z3 = c * F * G
  9780. nz = this.curve._mulC(f).redMul(g);
  9781. }
  9782. return this.curve.point(nx, ny, nz);
  9783. };
  9784. Point.prototype.add = function add(p) {
  9785. if (this.isInfinity())
  9786. return p;
  9787. if (p.isInfinity())
  9788. return this;
  9789. if (this.curve.extended)
  9790. return this._extAdd(p);
  9791. else
  9792. return this._projAdd(p);
  9793. };
  9794. Point.prototype.mul = function mul(k) {
  9795. if (this._hasDoubles(k))
  9796. return this.curve._fixedNafMul(this, k);
  9797. else
  9798. return this.curve._wnafMul(this, k);
  9799. };
  9800. Point.prototype.mulAdd = function mulAdd(k1, p, k2) {
  9801. return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);
  9802. };
  9803. Point.prototype.jmulAdd = function jmulAdd(k1, p, k2) {
  9804. return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);
  9805. };
  9806. Point.prototype.normalize = function normalize() {
  9807. if (this.zOne)
  9808. return this;
  9809. // Normalize coordinates
  9810. var zi = this.z.redInvm();
  9811. this.x = this.x.redMul(zi);
  9812. this.y = this.y.redMul(zi);
  9813. if (this.t)
  9814. this.t = this.t.redMul(zi);
  9815. this.z = this.curve.one;
  9816. this.zOne = true;
  9817. return this;
  9818. };
  9819. Point.prototype.neg = function neg() {
  9820. return this.curve.point(this.x.redNeg(),
  9821. this.y,
  9822. this.z,
  9823. this.t && this.t.redNeg());
  9824. };
  9825. Point.prototype.getX = function getX() {
  9826. this.normalize();
  9827. return this.x.fromRed();
  9828. };
  9829. Point.prototype.getY = function getY() {
  9830. this.normalize();
  9831. return this.y.fromRed();
  9832. };
  9833. Point.prototype.eq = function eq(other) {
  9834. return this === other ||
  9835. this.getX().cmp(other.getX()) === 0 &&
  9836. this.getY().cmp(other.getY()) === 0;
  9837. };
  9838. Point.prototype.eqXToP = function eqXToP(x) {
  9839. var rx = x.toRed(this.curve.red).redMul(this.z);
  9840. if (this.x.cmp(rx) === 0)
  9841. return true;
  9842. var xc = x.clone();
  9843. var t = this.curve.redN.redMul(this.z);
  9844. for (;;) {
  9845. xc.iadd(this.curve.n);
  9846. if (xc.cmp(this.curve.p) >= 0)
  9847. return false;
  9848. rx.redIAdd(t);
  9849. if (this.x.cmp(rx) === 0)
  9850. return true;
  9851. }
  9852. return false;
  9853. };
  9854. // Compatibility with BaseCurve
  9855. Point.prototype.toP = Point.prototype.normalize;
  9856. Point.prototype.mixedAdd = Point.prototype.add;
  9857. },{"../../elliptic":74,"../curve":77,"bn.js":25,"inherits":108}],77:[function(require,module,exports){
  9858. 'use strict';
  9859. var curve = exports;
  9860. curve.base = require('./base');
  9861. curve.short = require('./short');
  9862. curve.mont = require('./mont');
  9863. curve.edwards = require('./edwards');
  9864. },{"./base":75,"./edwards":76,"./mont":78,"./short":79}],78:[function(require,module,exports){
  9865. 'use strict';
  9866. var curve = require('../curve');
  9867. var BN = require('bn.js');
  9868. var inherits = require('inherits');
  9869. var Base = curve.base;
  9870. var elliptic = require('../../elliptic');
  9871. var utils = elliptic.utils;
  9872. function MontCurve(conf) {
  9873. Base.call(this, 'mont', conf);
  9874. this.a = new BN(conf.a, 16).toRed(this.red);
  9875. this.b = new BN(conf.b, 16).toRed(this.red);
  9876. this.i4 = new BN(4).toRed(this.red).redInvm();
  9877. this.two = new BN(2).toRed(this.red);
  9878. this.a24 = this.i4.redMul(this.a.redAdd(this.two));
  9879. }
  9880. inherits(MontCurve, Base);
  9881. module.exports = MontCurve;
  9882. MontCurve.prototype.validate = function validate(point) {
  9883. var x = point.normalize().x;
  9884. var x2 = x.redSqr();
  9885. var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);
  9886. var y = rhs.redSqrt();
  9887. return y.redSqr().cmp(rhs) === 0;
  9888. };
  9889. function Point(curve, x, z) {
  9890. Base.BasePoint.call(this, curve, 'projective');
  9891. if (x === null && z === null) {
  9892. this.x = this.curve.one;
  9893. this.z = this.curve.zero;
  9894. } else {
  9895. this.x = new BN(x, 16);
  9896. this.z = new BN(z, 16);
  9897. if (!this.x.red)
  9898. this.x = this.x.toRed(this.curve.red);
  9899. if (!this.z.red)
  9900. this.z = this.z.toRed(this.curve.red);
  9901. }
  9902. }
  9903. inherits(Point, Base.BasePoint);
  9904. MontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
  9905. return this.point(utils.toArray(bytes, enc), 1);
  9906. };
  9907. MontCurve.prototype.point = function point(x, z) {
  9908. return new Point(this, x, z);
  9909. };
  9910. MontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
  9911. return Point.fromJSON(this, obj);
  9912. };
  9913. Point.prototype.precompute = function precompute() {
  9914. // No-op
  9915. };
  9916. Point.prototype._encode = function _encode() {
  9917. return this.getX().toArray('be', this.curve.p.byteLength());
  9918. };
  9919. Point.fromJSON = function fromJSON(curve, obj) {
  9920. return new Point(curve, obj[0], obj[1] || curve.one);
  9921. };
  9922. Point.prototype.inspect = function inspect() {
  9923. if (this.isInfinity())
  9924. return '<EC Point Infinity>';
  9925. return '<EC Point x: ' + this.x.fromRed().toString(16, 2) +
  9926. ' z: ' + this.z.fromRed().toString(16, 2) + '>';
  9927. };
  9928. Point.prototype.isInfinity = function isInfinity() {
  9929. // XXX This code assumes that zero is always zero in red
  9930. return this.z.cmpn(0) === 0;
  9931. };
  9932. Point.prototype.dbl = function dbl() {
  9933. // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3
  9934. // 2M + 2S + 4A
  9935. // A = X1 + Z1
  9936. var a = this.x.redAdd(this.z);
  9937. // AA = A^2
  9938. var aa = a.redSqr();
  9939. // B = X1 - Z1
  9940. var b = this.x.redSub(this.z);
  9941. // BB = B^2
  9942. var bb = b.redSqr();
  9943. // C = AA - BB
  9944. var c = aa.redSub(bb);
  9945. // X3 = AA * BB
  9946. var nx = aa.redMul(bb);
  9947. // Z3 = C * (BB + A24 * C)
  9948. var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));
  9949. return this.curve.point(nx, nz);
  9950. };
  9951. Point.prototype.add = function add() {
  9952. throw new Error('Not supported on Montgomery curve');
  9953. };
  9954. Point.prototype.diffAdd = function diffAdd(p, diff) {
  9955. // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3
  9956. // 4M + 2S + 6A
  9957. // A = X2 + Z2
  9958. var a = this.x.redAdd(this.z);
  9959. // B = X2 - Z2
  9960. var b = this.x.redSub(this.z);
  9961. // C = X3 + Z3
  9962. var c = p.x.redAdd(p.z);
  9963. // D = X3 - Z3
  9964. var d = p.x.redSub(p.z);
  9965. // DA = D * A
  9966. var da = d.redMul(a);
  9967. // CB = C * B
  9968. var cb = c.redMul(b);
  9969. // X5 = Z1 * (DA + CB)^2
  9970. var nx = diff.z.redMul(da.redAdd(cb).redSqr());
  9971. // Z5 = X1 * (DA - CB)^2
  9972. var nz = diff.x.redMul(da.redISub(cb).redSqr());
  9973. return this.curve.point(nx, nz);
  9974. };
  9975. Point.prototype.mul = function mul(k) {
  9976. var t = k.clone();
  9977. var a = this; // (N / 2) * Q + Q
  9978. var b = this.curve.point(null, null); // (N / 2) * Q
  9979. var c = this; // Q
  9980. for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))
  9981. bits.push(t.andln(1));
  9982. for (var i = bits.length - 1; i >= 0; i--) {
  9983. if (bits[i] === 0) {
  9984. // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q
  9985. a = a.diffAdd(b, c);
  9986. // N * Q = 2 * ((N / 2) * Q + Q))
  9987. b = b.dbl();
  9988. } else {
  9989. // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)
  9990. b = a.diffAdd(b, c);
  9991. // N * Q + Q = 2 * ((N / 2) * Q + Q)
  9992. a = a.dbl();
  9993. }
  9994. }
  9995. return b;
  9996. };
  9997. Point.prototype.mulAdd = function mulAdd() {
  9998. throw new Error('Not supported on Montgomery curve');
  9999. };
  10000. Point.prototype.jumlAdd = function jumlAdd() {
  10001. throw new Error('Not supported on Montgomery curve');
  10002. };
  10003. Point.prototype.eq = function eq(other) {
  10004. return this.getX().cmp(other.getX()) === 0;
  10005. };
  10006. Point.prototype.normalize = function normalize() {
  10007. this.x = this.x.redMul(this.z.redInvm());
  10008. this.z = this.curve.one;
  10009. return this;
  10010. };
  10011. Point.prototype.getX = function getX() {
  10012. // Normalize coordinates
  10013. this.normalize();
  10014. return this.x.fromRed();
  10015. };
  10016. },{"../../elliptic":74,"../curve":77,"bn.js":25,"inherits":108}],79:[function(require,module,exports){
  10017. 'use strict';
  10018. var curve = require('../curve');
  10019. var elliptic = require('../../elliptic');
  10020. var BN = require('bn.js');
  10021. var inherits = require('inherits');
  10022. var Base = curve.base;
  10023. var assert = elliptic.utils.assert;
  10024. function ShortCurve(conf) {
  10025. Base.call(this, 'short', conf);
  10026. this.a = new BN(conf.a, 16).toRed(this.red);
  10027. this.b = new BN(conf.b, 16).toRed(this.red);
  10028. this.tinv = this.two.redInvm();
  10029. this.zeroA = this.a.fromRed().cmpn(0) === 0;
  10030. this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;
  10031. // If the curve is endomorphic, precalculate beta and lambda
  10032. this.endo = this._getEndomorphism(conf);
  10033. this._endoWnafT1 = new Array(4);
  10034. this._endoWnafT2 = new Array(4);
  10035. }
  10036. inherits(ShortCurve, Base);
  10037. module.exports = ShortCurve;
  10038. ShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {
  10039. // No efficient endomorphism
  10040. if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)
  10041. return;
  10042. // Compute beta and lambda, that lambda * P = (beta * Px; Py)
  10043. var beta;
  10044. var lambda;
  10045. if (conf.beta) {
  10046. beta = new BN(conf.beta, 16).toRed(this.red);
  10047. } else {
  10048. var betas = this._getEndoRoots(this.p);
  10049. // Choose the smallest beta
  10050. beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];
  10051. beta = beta.toRed(this.red);
  10052. }
  10053. if (conf.lambda) {
  10054. lambda = new BN(conf.lambda, 16);
  10055. } else {
  10056. // Choose the lambda that is matching selected beta
  10057. var lambdas = this._getEndoRoots(this.n);
  10058. if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {
  10059. lambda = lambdas[0];
  10060. } else {
  10061. lambda = lambdas[1];
  10062. assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);
  10063. }
  10064. }
  10065. // Get basis vectors, used for balanced length-two representation
  10066. var basis;
  10067. if (conf.basis) {
  10068. basis = conf.basis.map(function(vec) {
  10069. return {
  10070. a: new BN(vec.a, 16),
  10071. b: new BN(vec.b, 16)
  10072. };
  10073. });
  10074. } else {
  10075. basis = this._getEndoBasis(lambda);
  10076. }
  10077. return {
  10078. beta: beta,
  10079. lambda: lambda,
  10080. basis: basis
  10081. };
  10082. };
  10083. ShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {
  10084. // Find roots of for x^2 + x + 1 in F
  10085. // Root = (-1 +- Sqrt(-3)) / 2
  10086. //
  10087. var red = num === this.p ? this.red : BN.mont(num);
  10088. var tinv = new BN(2).toRed(red).redInvm();
  10089. var ntinv = tinv.redNeg();
  10090. var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);
  10091. var l1 = ntinv.redAdd(s).fromRed();
  10092. var l2 = ntinv.redSub(s).fromRed();
  10093. return [ l1, l2 ];
  10094. };
  10095. ShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {
  10096. // aprxSqrt >= sqrt(this.n)
  10097. var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));
  10098. // 3.74
  10099. // Run EGCD, until r(L + 1) < aprxSqrt
  10100. var u = lambda;
  10101. var v = this.n.clone();
  10102. var x1 = new BN(1);
  10103. var y1 = new BN(0);
  10104. var x2 = new BN(0);
  10105. var y2 = new BN(1);
  10106. // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)
  10107. var a0;
  10108. var b0;
  10109. // First vector
  10110. var a1;
  10111. var b1;
  10112. // Second vector
  10113. var a2;
  10114. var b2;
  10115. var prevR;
  10116. var i = 0;
  10117. var r;
  10118. var x;
  10119. while (u.cmpn(0) !== 0) {
  10120. var q = v.div(u);
  10121. r = v.sub(q.mul(u));
  10122. x = x2.sub(q.mul(x1));
  10123. var y = y2.sub(q.mul(y1));
  10124. if (!a1 && r.cmp(aprxSqrt) < 0) {
  10125. a0 = prevR.neg();
  10126. b0 = x1;
  10127. a1 = r.neg();
  10128. b1 = x;
  10129. } else if (a1 && ++i === 2) {
  10130. break;
  10131. }
  10132. prevR = r;
  10133. v = u;
  10134. u = r;
  10135. x2 = x1;
  10136. x1 = x;
  10137. y2 = y1;
  10138. y1 = y;
  10139. }
  10140. a2 = r.neg();
  10141. b2 = x;
  10142. var len1 = a1.sqr().add(b1.sqr());
  10143. var len2 = a2.sqr().add(b2.sqr());
  10144. if (len2.cmp(len1) >= 0) {
  10145. a2 = a0;
  10146. b2 = b0;
  10147. }
  10148. // Normalize signs
  10149. if (a1.negative) {
  10150. a1 = a1.neg();
  10151. b1 = b1.neg();
  10152. }
  10153. if (a2.negative) {
  10154. a2 = a2.neg();
  10155. b2 = b2.neg();
  10156. }
  10157. return [
  10158. { a: a1, b: b1 },
  10159. { a: a2, b: b2 }
  10160. ];
  10161. };
  10162. ShortCurve.prototype._endoSplit = function _endoSplit(k) {
  10163. var basis = this.endo.basis;
  10164. var v1 = basis[0];
  10165. var v2 = basis[1];
  10166. var c1 = v2.b.mul(k).divRound(this.n);
  10167. var c2 = v1.b.neg().mul(k).divRound(this.n);
  10168. var p1 = c1.mul(v1.a);
  10169. var p2 = c2.mul(v2.a);
  10170. var q1 = c1.mul(v1.b);
  10171. var q2 = c2.mul(v2.b);
  10172. // Calculate answer
  10173. var k1 = k.sub(p1).sub(p2);
  10174. var k2 = q1.add(q2).neg();
  10175. return { k1: k1, k2: k2 };
  10176. };
  10177. ShortCurve.prototype.pointFromX = function pointFromX(x, odd) {
  10178. x = new BN(x, 16);
  10179. if (!x.red)
  10180. x = x.toRed(this.red);
  10181. var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);
  10182. var y = y2.redSqrt();
  10183. if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)
  10184. throw new Error('invalid point');
  10185. // XXX Is there any way to tell if the number is odd without converting it
  10186. // to non-red form?
  10187. var isOdd = y.fromRed().isOdd();
  10188. if (odd && !isOdd || !odd && isOdd)
  10189. y = y.redNeg();
  10190. return this.point(x, y);
  10191. };
  10192. ShortCurve.prototype.validate = function validate(point) {
  10193. if (point.inf)
  10194. return true;
  10195. var x = point.x;
  10196. var y = point.y;
  10197. var ax = this.a.redMul(x);
  10198. var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);
  10199. return y.redSqr().redISub(rhs).cmpn(0) === 0;
  10200. };
  10201. ShortCurve.prototype._endoWnafMulAdd =
  10202. function _endoWnafMulAdd(points, coeffs, jacobianResult) {
  10203. var npoints = this._endoWnafT1;
  10204. var ncoeffs = this._endoWnafT2;
  10205. for (var i = 0; i < points.length; i++) {
  10206. var split = this._endoSplit(coeffs[i]);
  10207. var p = points[i];
  10208. var beta = p._getBeta();
  10209. if (split.k1.negative) {
  10210. split.k1.ineg();
  10211. p = p.neg(true);
  10212. }
  10213. if (split.k2.negative) {
  10214. split.k2.ineg();
  10215. beta = beta.neg(true);
  10216. }
  10217. npoints[i * 2] = p;
  10218. npoints[i * 2 + 1] = beta;
  10219. ncoeffs[i * 2] = split.k1;
  10220. ncoeffs[i * 2 + 1] = split.k2;
  10221. }
  10222. var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);
  10223. // Clean-up references to points and coefficients
  10224. for (var j = 0; j < i * 2; j++) {
  10225. npoints[j] = null;
  10226. ncoeffs[j] = null;
  10227. }
  10228. return res;
  10229. };
  10230. function Point(curve, x, y, isRed) {
  10231. Base.BasePoint.call(this, curve, 'affine');
  10232. if (x === null && y === null) {
  10233. this.x = null;
  10234. this.y = null;
  10235. this.inf = true;
  10236. } else {
  10237. this.x = new BN(x, 16);
  10238. this.y = new BN(y, 16);
  10239. // Force redgomery representation when loading from JSON
  10240. if (isRed) {
  10241. this.x.forceRed(this.curve.red);
  10242. this.y.forceRed(this.curve.red);
  10243. }
  10244. if (!this.x.red)
  10245. this.x = this.x.toRed(this.curve.red);
  10246. if (!this.y.red)
  10247. this.y = this.y.toRed(this.curve.red);
  10248. this.inf = false;
  10249. }
  10250. }
  10251. inherits(Point, Base.BasePoint);
  10252. ShortCurve.prototype.point = function point(x, y, isRed) {
  10253. return new Point(this, x, y, isRed);
  10254. };
  10255. ShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {
  10256. return Point.fromJSON(this, obj, red);
  10257. };
  10258. Point.prototype._getBeta = function _getBeta() {
  10259. if (!this.curve.endo)
  10260. return;
  10261. var pre = this.precomputed;
  10262. if (pre && pre.beta)
  10263. return pre.beta;
  10264. var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);
  10265. if (pre) {
  10266. var curve = this.curve;
  10267. var endoMul = function(p) {
  10268. return curve.point(p.x.redMul(curve.endo.beta), p.y);
  10269. };
  10270. pre.beta = beta;
  10271. beta.precomputed = {
  10272. beta: null,
  10273. naf: pre.naf && {
  10274. wnd: pre.naf.wnd,
  10275. points: pre.naf.points.map(endoMul)
  10276. },
  10277. doubles: pre.doubles && {
  10278. step: pre.doubles.step,
  10279. points: pre.doubles.points.map(endoMul)
  10280. }
  10281. };
  10282. }
  10283. return beta;
  10284. };
  10285. Point.prototype.toJSON = function toJSON() {
  10286. if (!this.precomputed)
  10287. return [ this.x, this.y ];
  10288. return [ this.x, this.y, this.precomputed && {
  10289. doubles: this.precomputed.doubles && {
  10290. step: this.precomputed.doubles.step,
  10291. points: this.precomputed.doubles.points.slice(1)
  10292. },
  10293. naf: this.precomputed.naf && {
  10294. wnd: this.precomputed.naf.wnd,
  10295. points: this.precomputed.naf.points.slice(1)
  10296. }
  10297. } ];
  10298. };
  10299. Point.fromJSON = function fromJSON(curve, obj, red) {
  10300. if (typeof obj === 'string')
  10301. obj = JSON.parse(obj);
  10302. var res = curve.point(obj[0], obj[1], red);
  10303. if (!obj[2])
  10304. return res;
  10305. function obj2point(obj) {
  10306. return curve.point(obj[0], obj[1], red);
  10307. }
  10308. var pre = obj[2];
  10309. res.precomputed = {
  10310. beta: null,
  10311. doubles: pre.doubles && {
  10312. step: pre.doubles.step,
  10313. points: [ res ].concat(pre.doubles.points.map(obj2point))
  10314. },
  10315. naf: pre.naf && {
  10316. wnd: pre.naf.wnd,
  10317. points: [ res ].concat(pre.naf.points.map(obj2point))
  10318. }
  10319. };
  10320. return res;
  10321. };
  10322. Point.prototype.inspect = function inspect() {
  10323. if (this.isInfinity())
  10324. return '<EC Point Infinity>';
  10325. return '<EC Point x: ' + this.x.fromRed().toString(16, 2) +
  10326. ' y: ' + this.y.fromRed().toString(16, 2) + '>';
  10327. };
  10328. Point.prototype.isInfinity = function isInfinity() {
  10329. return this.inf;
  10330. };
  10331. Point.prototype.add = function add(p) {
  10332. // O + P = P
  10333. if (this.inf)
  10334. return p;
  10335. // P + O = P
  10336. if (p.inf)
  10337. return this;
  10338. // P + P = 2P
  10339. if (this.eq(p))
  10340. return this.dbl();
  10341. // P + (-P) = O
  10342. if (this.neg().eq(p))
  10343. return this.curve.point(null, null);
  10344. // P + Q = O
  10345. if (this.x.cmp(p.x) === 0)
  10346. return this.curve.point(null, null);
  10347. var c = this.y.redSub(p.y);
  10348. if (c.cmpn(0) !== 0)
  10349. c = c.redMul(this.x.redSub(p.x).redInvm());
  10350. var nx = c.redSqr().redISub(this.x).redISub(p.x);
  10351. var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
  10352. return this.curve.point(nx, ny);
  10353. };
  10354. Point.prototype.dbl = function dbl() {
  10355. if (this.inf)
  10356. return this;
  10357. // 2P = O
  10358. var ys1 = this.y.redAdd(this.y);
  10359. if (ys1.cmpn(0) === 0)
  10360. return this.curve.point(null, null);
  10361. var a = this.curve.a;
  10362. var x2 = this.x.redSqr();
  10363. var dyinv = ys1.redInvm();
  10364. var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);
  10365. var nx = c.redSqr().redISub(this.x.redAdd(this.x));
  10366. var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
  10367. return this.curve.point(nx, ny);
  10368. };
  10369. Point.prototype.getX = function getX() {
  10370. return this.x.fromRed();
  10371. };
  10372. Point.prototype.getY = function getY() {
  10373. return this.y.fromRed();
  10374. };
  10375. Point.prototype.mul = function mul(k) {
  10376. k = new BN(k, 16);
  10377. if (this._hasDoubles(k))
  10378. return this.curve._fixedNafMul(this, k);
  10379. else if (this.curve.endo)
  10380. return this.curve._endoWnafMulAdd([ this ], [ k ]);
  10381. else
  10382. return this.curve._wnafMul(this, k);
  10383. };
  10384. Point.prototype.mulAdd = function mulAdd(k1, p2, k2) {
  10385. var points = [ this, p2 ];
  10386. var coeffs = [ k1, k2 ];
  10387. if (this.curve.endo)
  10388. return this.curve._endoWnafMulAdd(points, coeffs);
  10389. else
  10390. return this.curve._wnafMulAdd(1, points, coeffs, 2);
  10391. };
  10392. Point.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {
  10393. var points = [ this, p2 ];
  10394. var coeffs = [ k1, k2 ];
  10395. if (this.curve.endo)
  10396. return this.curve._endoWnafMulAdd(points, coeffs, true);
  10397. else
  10398. return this.curve._wnafMulAdd(1, points, coeffs, 2, true);
  10399. };
  10400. Point.prototype.eq = function eq(p) {
  10401. return this === p ||
  10402. this.inf === p.inf &&
  10403. (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);
  10404. };
  10405. Point.prototype.neg = function neg(_precompute) {
  10406. if (this.inf)
  10407. return this;
  10408. var res = this.curve.point(this.x, this.y.redNeg());
  10409. if (_precompute && this.precomputed) {
  10410. var pre = this.precomputed;
  10411. var negate = function(p) {
  10412. return p.neg();
  10413. };
  10414. res.precomputed = {
  10415. naf: pre.naf && {
  10416. wnd: pre.naf.wnd,
  10417. points: pre.naf.points.map(negate)
  10418. },
  10419. doubles: pre.doubles && {
  10420. step: pre.doubles.step,
  10421. points: pre.doubles.points.map(negate)
  10422. }
  10423. };
  10424. }
  10425. return res;
  10426. };
  10427. Point.prototype.toJ = function toJ() {
  10428. if (this.inf)
  10429. return this.curve.jpoint(null, null, null);
  10430. var res = this.curve.jpoint(this.x, this.y, this.curve.one);
  10431. return res;
  10432. };
  10433. function JPoint(curve, x, y, z) {
  10434. Base.BasePoint.call(this, curve, 'jacobian');
  10435. if (x === null && y === null && z === null) {
  10436. this.x = this.curve.one;
  10437. this.y = this.curve.one;
  10438. this.z = new BN(0);
  10439. } else {
  10440. this.x = new BN(x, 16);
  10441. this.y = new BN(y, 16);
  10442. this.z = new BN(z, 16);
  10443. }
  10444. if (!this.x.red)
  10445. this.x = this.x.toRed(this.curve.red);
  10446. if (!this.y.red)
  10447. this.y = this.y.toRed(this.curve.red);
  10448. if (!this.z.red)
  10449. this.z = this.z.toRed(this.curve.red);
  10450. this.zOne = this.z === this.curve.one;
  10451. }
  10452. inherits(JPoint, Base.BasePoint);
  10453. ShortCurve.prototype.jpoint = function jpoint(x, y, z) {
  10454. return new JPoint(this, x, y, z);
  10455. };
  10456. JPoint.prototype.toP = function toP() {
  10457. if (this.isInfinity())
  10458. return this.curve.point(null, null);
  10459. var zinv = this.z.redInvm();
  10460. var zinv2 = zinv.redSqr();
  10461. var ax = this.x.redMul(zinv2);
  10462. var ay = this.y.redMul(zinv2).redMul(zinv);
  10463. return this.curve.point(ax, ay);
  10464. };
  10465. JPoint.prototype.neg = function neg() {
  10466. return this.curve.jpoint(this.x, this.y.redNeg(), this.z);
  10467. };
  10468. JPoint.prototype.add = function add(p) {
  10469. // O + P = P
  10470. if (this.isInfinity())
  10471. return p;
  10472. // P + O = P
  10473. if (p.isInfinity())
  10474. return this;
  10475. // 12M + 4S + 7A
  10476. var pz2 = p.z.redSqr();
  10477. var z2 = this.z.redSqr();
  10478. var u1 = this.x.redMul(pz2);
  10479. var u2 = p.x.redMul(z2);
  10480. var s1 = this.y.redMul(pz2.redMul(p.z));
  10481. var s2 = p.y.redMul(z2.redMul(this.z));
  10482. var h = u1.redSub(u2);
  10483. var r = s1.redSub(s2);
  10484. if (h.cmpn(0) === 0) {
  10485. if (r.cmpn(0) !== 0)
  10486. return this.curve.jpoint(null, null, null);
  10487. else
  10488. return this.dbl();
  10489. }
  10490. var h2 = h.redSqr();
  10491. var h3 = h2.redMul(h);
  10492. var v = u1.redMul(h2);
  10493. var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
  10494. var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
  10495. var nz = this.z.redMul(p.z).redMul(h);
  10496. return this.curve.jpoint(nx, ny, nz);
  10497. };
  10498. JPoint.prototype.mixedAdd = function mixedAdd(p) {
  10499. // O + P = P
  10500. if (this.isInfinity())
  10501. return p.toJ();
  10502. // P + O = P
  10503. if (p.isInfinity())
  10504. return this;
  10505. // 8M + 3S + 7A
  10506. var z2 = this.z.redSqr();
  10507. var u1 = this.x;
  10508. var u2 = p.x.redMul(z2);
  10509. var s1 = this.y;
  10510. var s2 = p.y.redMul(z2).redMul(this.z);
  10511. var h = u1.redSub(u2);
  10512. var r = s1.redSub(s2);
  10513. if (h.cmpn(0) === 0) {
  10514. if (r.cmpn(0) !== 0)
  10515. return this.curve.jpoint(null, null, null);
  10516. else
  10517. return this.dbl();
  10518. }
  10519. var h2 = h.redSqr();
  10520. var h3 = h2.redMul(h);
  10521. var v = u1.redMul(h2);
  10522. var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
  10523. var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
  10524. var nz = this.z.redMul(h);
  10525. return this.curve.jpoint(nx, ny, nz);
  10526. };
  10527. JPoint.prototype.dblp = function dblp(pow) {
  10528. if (pow === 0)
  10529. return this;
  10530. if (this.isInfinity())
  10531. return this;
  10532. if (!pow)
  10533. return this.dbl();
  10534. if (this.curve.zeroA || this.curve.threeA) {
  10535. var r = this;
  10536. for (var i = 0; i < pow; i++)
  10537. r = r.dbl();
  10538. return r;
  10539. }
  10540. // 1M + 2S + 1A + N * (4S + 5M + 8A)
  10541. // N = 1 => 6M + 6S + 9A
  10542. var a = this.curve.a;
  10543. var tinv = this.curve.tinv;
  10544. var jx = this.x;
  10545. var jy = this.y;
  10546. var jz = this.z;
  10547. var jz4 = jz.redSqr().redSqr();
  10548. // Reuse results
  10549. var jyd = jy.redAdd(jy);
  10550. for (var i = 0; i < pow; i++) {
  10551. var jx2 = jx.redSqr();
  10552. var jyd2 = jyd.redSqr();
  10553. var jyd4 = jyd2.redSqr();
  10554. var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
  10555. var t1 = jx.redMul(jyd2);
  10556. var nx = c.redSqr().redISub(t1.redAdd(t1));
  10557. var t2 = t1.redISub(nx);
  10558. var dny = c.redMul(t2);
  10559. dny = dny.redIAdd(dny).redISub(jyd4);
  10560. var nz = jyd.redMul(jz);
  10561. if (i + 1 < pow)
  10562. jz4 = jz4.redMul(jyd4);
  10563. jx = nx;
  10564. jz = nz;
  10565. jyd = dny;
  10566. }
  10567. return this.curve.jpoint(jx, jyd.redMul(tinv), jz);
  10568. };
  10569. JPoint.prototype.dbl = function dbl() {
  10570. if (this.isInfinity())
  10571. return this;
  10572. if (this.curve.zeroA)
  10573. return this._zeroDbl();
  10574. else if (this.curve.threeA)
  10575. return this._threeDbl();
  10576. else
  10577. return this._dbl();
  10578. };
  10579. JPoint.prototype._zeroDbl = function _zeroDbl() {
  10580. var nx;
  10581. var ny;
  10582. var nz;
  10583. // Z = 1
  10584. if (this.zOne) {
  10585. // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html
  10586. // #doubling-mdbl-2007-bl
  10587. // 1M + 5S + 14A
  10588. // XX = X1^2
  10589. var xx = this.x.redSqr();
  10590. // YY = Y1^2
  10591. var yy = this.y.redSqr();
  10592. // YYYY = YY^2
  10593. var yyyy = yy.redSqr();
  10594. // S = 2 * ((X1 + YY)^2 - XX - YYYY)
  10595. var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
  10596. s = s.redIAdd(s);
  10597. // M = 3 * XX + a; a = 0
  10598. var m = xx.redAdd(xx).redIAdd(xx);
  10599. // T = M ^ 2 - 2*S
  10600. var t = m.redSqr().redISub(s).redISub(s);
  10601. // 8 * YYYY
  10602. var yyyy8 = yyyy.redIAdd(yyyy);
  10603. yyyy8 = yyyy8.redIAdd(yyyy8);
  10604. yyyy8 = yyyy8.redIAdd(yyyy8);
  10605. // X3 = T
  10606. nx = t;
  10607. // Y3 = M * (S - T) - 8 * YYYY
  10608. ny = m.redMul(s.redISub(t)).redISub(yyyy8);
  10609. // Z3 = 2*Y1
  10610. nz = this.y.redAdd(this.y);
  10611. } else {
  10612. // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html
  10613. // #doubling-dbl-2009-l
  10614. // 2M + 5S + 13A
  10615. // A = X1^2
  10616. var a = this.x.redSqr();
  10617. // B = Y1^2
  10618. var b = this.y.redSqr();
  10619. // C = B^2
  10620. var c = b.redSqr();
  10621. // D = 2 * ((X1 + B)^2 - A - C)
  10622. var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);
  10623. d = d.redIAdd(d);
  10624. // E = 3 * A
  10625. var e = a.redAdd(a).redIAdd(a);
  10626. // F = E^2
  10627. var f = e.redSqr();
  10628. // 8 * C
  10629. var c8 = c.redIAdd(c);
  10630. c8 = c8.redIAdd(c8);
  10631. c8 = c8.redIAdd(c8);
  10632. // X3 = F - 2 * D
  10633. nx = f.redISub(d).redISub(d);
  10634. // Y3 = E * (D - X3) - 8 * C
  10635. ny = e.redMul(d.redISub(nx)).redISub(c8);
  10636. // Z3 = 2 * Y1 * Z1
  10637. nz = this.y.redMul(this.z);
  10638. nz = nz.redIAdd(nz);
  10639. }
  10640. return this.curve.jpoint(nx, ny, nz);
  10641. };
  10642. JPoint.prototype._threeDbl = function _threeDbl() {
  10643. var nx;
  10644. var ny;
  10645. var nz;
  10646. // Z = 1
  10647. if (this.zOne) {
  10648. // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html
  10649. // #doubling-mdbl-2007-bl
  10650. // 1M + 5S + 15A
  10651. // XX = X1^2
  10652. var xx = this.x.redSqr();
  10653. // YY = Y1^2
  10654. var yy = this.y.redSqr();
  10655. // YYYY = YY^2
  10656. var yyyy = yy.redSqr();
  10657. // S = 2 * ((X1 + YY)^2 - XX - YYYY)
  10658. var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
  10659. s = s.redIAdd(s);
  10660. // M = 3 * XX + a
  10661. var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);
  10662. // T = M^2 - 2 * S
  10663. var t = m.redSqr().redISub(s).redISub(s);
  10664. // X3 = T
  10665. nx = t;
  10666. // Y3 = M * (S - T) - 8 * YYYY
  10667. var yyyy8 = yyyy.redIAdd(yyyy);
  10668. yyyy8 = yyyy8.redIAdd(yyyy8);
  10669. yyyy8 = yyyy8.redIAdd(yyyy8);
  10670. ny = m.redMul(s.redISub(t)).redISub(yyyy8);
  10671. // Z3 = 2 * Y1
  10672. nz = this.y.redAdd(this.y);
  10673. } else {
  10674. // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b
  10675. // 3M + 5S
  10676. // delta = Z1^2
  10677. var delta = this.z.redSqr();
  10678. // gamma = Y1^2
  10679. var gamma = this.y.redSqr();
  10680. // beta = X1 * gamma
  10681. var beta = this.x.redMul(gamma);
  10682. // alpha = 3 * (X1 - delta) * (X1 + delta)
  10683. var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));
  10684. alpha = alpha.redAdd(alpha).redIAdd(alpha);
  10685. // X3 = alpha^2 - 8 * beta
  10686. var beta4 = beta.redIAdd(beta);
  10687. beta4 = beta4.redIAdd(beta4);
  10688. var beta8 = beta4.redAdd(beta4);
  10689. nx = alpha.redSqr().redISub(beta8);
  10690. // Z3 = (Y1 + Z1)^2 - gamma - delta
  10691. nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);
  10692. // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2
  10693. var ggamma8 = gamma.redSqr();
  10694. ggamma8 = ggamma8.redIAdd(ggamma8);
  10695. ggamma8 = ggamma8.redIAdd(ggamma8);
  10696. ggamma8 = ggamma8.redIAdd(ggamma8);
  10697. ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);
  10698. }
  10699. return this.curve.jpoint(nx, ny, nz);
  10700. };
  10701. JPoint.prototype._dbl = function _dbl() {
  10702. var a = this.curve.a;
  10703. // 4M + 6S + 10A
  10704. var jx = this.x;
  10705. var jy = this.y;
  10706. var jz = this.z;
  10707. var jz4 = jz.redSqr().redSqr();
  10708. var jx2 = jx.redSqr();
  10709. var jy2 = jy.redSqr();
  10710. var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
  10711. var jxd4 = jx.redAdd(jx);
  10712. jxd4 = jxd4.redIAdd(jxd4);
  10713. var t1 = jxd4.redMul(jy2);
  10714. var nx = c.redSqr().redISub(t1.redAdd(t1));
  10715. var t2 = t1.redISub(nx);
  10716. var jyd8 = jy2.redSqr();
  10717. jyd8 = jyd8.redIAdd(jyd8);
  10718. jyd8 = jyd8.redIAdd(jyd8);
  10719. jyd8 = jyd8.redIAdd(jyd8);
  10720. var ny = c.redMul(t2).redISub(jyd8);
  10721. var nz = jy.redAdd(jy).redMul(jz);
  10722. return this.curve.jpoint(nx, ny, nz);
  10723. };
  10724. JPoint.prototype.trpl = function trpl() {
  10725. if (!this.curve.zeroA)
  10726. return this.dbl().add(this);
  10727. // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl
  10728. // 5M + 10S + ...
  10729. // XX = X1^2
  10730. var xx = this.x.redSqr();
  10731. // YY = Y1^2
  10732. var yy = this.y.redSqr();
  10733. // ZZ = Z1^2
  10734. var zz = this.z.redSqr();
  10735. // YYYY = YY^2
  10736. var yyyy = yy.redSqr();
  10737. // M = 3 * XX + a * ZZ2; a = 0
  10738. var m = xx.redAdd(xx).redIAdd(xx);
  10739. // MM = M^2
  10740. var mm = m.redSqr();
  10741. // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM
  10742. var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
  10743. e = e.redIAdd(e);
  10744. e = e.redAdd(e).redIAdd(e);
  10745. e = e.redISub(mm);
  10746. // EE = E^2
  10747. var ee = e.redSqr();
  10748. // T = 16*YYYY
  10749. var t = yyyy.redIAdd(yyyy);
  10750. t = t.redIAdd(t);
  10751. t = t.redIAdd(t);
  10752. t = t.redIAdd(t);
  10753. // U = (M + E)^2 - MM - EE - T
  10754. var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);
  10755. // X3 = 4 * (X1 * EE - 4 * YY * U)
  10756. var yyu4 = yy.redMul(u);
  10757. yyu4 = yyu4.redIAdd(yyu4);
  10758. yyu4 = yyu4.redIAdd(yyu4);
  10759. var nx = this.x.redMul(ee).redISub(yyu4);
  10760. nx = nx.redIAdd(nx);
  10761. nx = nx.redIAdd(nx);
  10762. // Y3 = 8 * Y1 * (U * (T - U) - E * EE)
  10763. var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));
  10764. ny = ny.redIAdd(ny);
  10765. ny = ny.redIAdd(ny);
  10766. ny = ny.redIAdd(ny);
  10767. // Z3 = (Z1 + E)^2 - ZZ - EE
  10768. var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);
  10769. return this.curve.jpoint(nx, ny, nz);
  10770. };
  10771. JPoint.prototype.mul = function mul(k, kbase) {
  10772. k = new BN(k, kbase);
  10773. return this.curve._wnafMul(this, k);
  10774. };
  10775. JPoint.prototype.eq = function eq(p) {
  10776. if (p.type === 'affine')
  10777. return this.eq(p.toJ());
  10778. if (this === p)
  10779. return true;
  10780. // x1 * z2^2 == x2 * z1^2
  10781. var z2 = this.z.redSqr();
  10782. var pz2 = p.z.redSqr();
  10783. if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)
  10784. return false;
  10785. // y1 * z2^3 == y2 * z1^3
  10786. var z3 = z2.redMul(this.z);
  10787. var pz3 = pz2.redMul(p.z);
  10788. return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;
  10789. };
  10790. JPoint.prototype.eqXToP = function eqXToP(x) {
  10791. var zs = this.z.redSqr();
  10792. var rx = x.toRed(this.curve.red).redMul(zs);
  10793. if (this.x.cmp(rx) === 0)
  10794. return true;
  10795. var xc = x.clone();
  10796. var t = this.curve.redN.redMul(zs);
  10797. for (;;) {
  10798. xc.iadd(this.curve.n);
  10799. if (xc.cmp(this.curve.p) >= 0)
  10800. return false;
  10801. rx.redIAdd(t);
  10802. if (this.x.cmp(rx) === 0)
  10803. return true;
  10804. }
  10805. return false;
  10806. };
  10807. JPoint.prototype.inspect = function inspect() {
  10808. if (this.isInfinity())
  10809. return '<EC JPoint Infinity>';
  10810. return '<EC JPoint x: ' + this.x.toString(16, 2) +
  10811. ' y: ' + this.y.toString(16, 2) +
  10812. ' z: ' + this.z.toString(16, 2) + '>';
  10813. };
  10814. JPoint.prototype.isInfinity = function isInfinity() {
  10815. // XXX This code assumes that zero is always zero in red
  10816. return this.z.cmpn(0) === 0;
  10817. };
  10818. },{"../../elliptic":74,"../curve":77,"bn.js":25,"inherits":108}],80:[function(require,module,exports){
  10819. 'use strict';
  10820. var curves = exports;
  10821. var hash = require('hash.js');
  10822. var elliptic = require('../elliptic');
  10823. var assert = elliptic.utils.assert;
  10824. function PresetCurve(options) {
  10825. if (options.type === 'short')
  10826. this.curve = new elliptic.curve.short(options);
  10827. else if (options.type === 'edwards')
  10828. this.curve = new elliptic.curve.edwards(options);
  10829. else
  10830. this.curve = new elliptic.curve.mont(options);
  10831. this.g = this.curve.g;
  10832. this.n = this.curve.n;
  10833. this.hash = options.hash;
  10834. assert(this.g.validate(), 'Invalid curve');
  10835. assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');
  10836. }
  10837. curves.PresetCurve = PresetCurve;
  10838. function defineCurve(name, options) {
  10839. Object.defineProperty(curves, name, {
  10840. configurable: true,
  10841. enumerable: true,
  10842. get: function() {
  10843. var curve = new PresetCurve(options);
  10844. Object.defineProperty(curves, name, {
  10845. configurable: true,
  10846. enumerable: true,
  10847. value: curve
  10848. });
  10849. return curve;
  10850. }
  10851. });
  10852. }
  10853. defineCurve('p192', {
  10854. type: 'short',
  10855. prime: 'p192',
  10856. p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',
  10857. a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',
  10858. b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',
  10859. n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',
  10860. hash: hash.sha256,
  10861. gRed: false,
  10862. g: [
  10863. '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',
  10864. '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811'
  10865. ]
  10866. });
  10867. defineCurve('p224', {
  10868. type: 'short',
  10869. prime: 'p224',
  10870. p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',
  10871. a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',
  10872. b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',
  10873. n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',
  10874. hash: hash.sha256,
  10875. gRed: false,
  10876. g: [
  10877. 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',
  10878. 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34'
  10879. ]
  10880. });
  10881. defineCurve('p256', {
  10882. type: 'short',
  10883. prime: null,
  10884. p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',
  10885. a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',
  10886. b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',
  10887. n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',
  10888. hash: hash.sha256,
  10889. gRed: false,
  10890. g: [
  10891. '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',
  10892. '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5'
  10893. ]
  10894. });
  10895. defineCurve('p384', {
  10896. type: 'short',
  10897. prime: null,
  10898. p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
  10899. 'fffffffe ffffffff 00000000 00000000 ffffffff',
  10900. a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
  10901. 'fffffffe ffffffff 00000000 00000000 fffffffc',
  10902. b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +
  10903. '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',
  10904. n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +
  10905. 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',
  10906. hash: hash.sha384,
  10907. gRed: false,
  10908. g: [
  10909. 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +
  10910. '5502f25d bf55296c 3a545e38 72760ab7',
  10911. '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +
  10912. '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f'
  10913. ]
  10914. });
  10915. defineCurve('p521', {
  10916. type: 'short',
  10917. prime: null,
  10918. p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
  10919. 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
  10920. 'ffffffff ffffffff ffffffff ffffffff ffffffff',
  10921. a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
  10922. 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
  10923. 'ffffffff ffffffff ffffffff ffffffff fffffffc',
  10924. b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +
  10925. '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +
  10926. '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',
  10927. n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
  10928. 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +
  10929. 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',
  10930. hash: hash.sha512,
  10931. gRed: false,
  10932. g: [
  10933. '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +
  10934. '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +
  10935. 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',
  10936. '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +
  10937. '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +
  10938. '3fad0761 353c7086 a272c240 88be9476 9fd16650'
  10939. ]
  10940. });
  10941. defineCurve('curve25519', {
  10942. type: 'mont',
  10943. prime: 'p25519',
  10944. p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
  10945. a: '76d06',
  10946. b: '1',
  10947. n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',
  10948. hash: hash.sha256,
  10949. gRed: false,
  10950. g: [
  10951. '9'
  10952. ]
  10953. });
  10954. defineCurve('ed25519', {
  10955. type: 'edwards',
  10956. prime: 'p25519',
  10957. p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
  10958. a: '-1',
  10959. c: '1',
  10960. // -121665 * (121666^(-1)) (mod P)
  10961. d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',
  10962. n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',
  10963. hash: hash.sha256,
  10964. gRed: false,
  10965. g: [
  10966. '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',
  10967. // 4/5
  10968. '6666666666666666666666666666666666666666666666666666666666666658'
  10969. ]
  10970. });
  10971. var pre;
  10972. try {
  10973. pre = require('./precomputed/secp256k1');
  10974. } catch (e) {
  10975. pre = undefined;
  10976. }
  10977. defineCurve('secp256k1', {
  10978. type: 'short',
  10979. prime: 'k256',
  10980. p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',
  10981. a: '0',
  10982. b: '7',
  10983. n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',
  10984. h: '1',
  10985. hash: hash.sha256,
  10986. // Precomputed endomorphism
  10987. beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',
  10988. lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',
  10989. basis: [
  10990. {
  10991. a: '3086d221a7d46bcde86c90e49284eb15',
  10992. b: '-e4437ed6010e88286f547fa90abfe4c3'
  10993. },
  10994. {
  10995. a: '114ca50f7a8e2f3f657c1108d9d44cfd8',
  10996. b: '3086d221a7d46bcde86c90e49284eb15'
  10997. }
  10998. ],
  10999. gRed: false,
  11000. g: [
  11001. '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',
  11002. '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',
  11003. pre
  11004. ]
  11005. });
  11006. },{"../elliptic":74,"./precomputed/secp256k1":87,"hash.js":93}],81:[function(require,module,exports){
  11007. 'use strict';
  11008. var BN = require('bn.js');
  11009. var HmacDRBG = require('hmac-drbg');
  11010. var elliptic = require('../../elliptic');
  11011. var utils = elliptic.utils;
  11012. var assert = utils.assert;
  11013. var KeyPair = require('./key');
  11014. var Signature = require('./signature');
  11015. function EC(options) {
  11016. if (!(this instanceof EC))
  11017. return new EC(options);
  11018. // Shortcut `elliptic.ec(curve-name)`
  11019. if (typeof options === 'string') {
  11020. assert(elliptic.curves.hasOwnProperty(options), 'Unknown curve ' + options);
  11021. options = elliptic.curves[options];
  11022. }
  11023. // Shortcut for `elliptic.ec(elliptic.curves.curveName)`
  11024. if (options instanceof elliptic.curves.PresetCurve)
  11025. options = { curve: options };
  11026. this.curve = options.curve.curve;
  11027. this.n = this.curve.n;
  11028. this.nh = this.n.ushrn(1);
  11029. this.g = this.curve.g;
  11030. // Point on curve
  11031. this.g = options.curve.g;
  11032. this.g.precompute(options.curve.n.bitLength() + 1);
  11033. // Hash for function for DRBG
  11034. this.hash = options.hash || options.curve.hash;
  11035. }
  11036. module.exports = EC;
  11037. EC.prototype.keyPair = function keyPair(options) {
  11038. return new KeyPair(this, options);
  11039. };
  11040. EC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {
  11041. return KeyPair.fromPrivate(this, priv, enc);
  11042. };
  11043. EC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {
  11044. return KeyPair.fromPublic(this, pub, enc);
  11045. };
  11046. EC.prototype.genKeyPair = function genKeyPair(options) {
  11047. if (!options)
  11048. options = {};
  11049. // Instantiate Hmac_DRBG
  11050. var drbg = new HmacDRBG({
  11051. hash: this.hash,
  11052. pers: options.pers,
  11053. persEnc: options.persEnc || 'utf8',
  11054. entropy: options.entropy || elliptic.rand(this.hash.hmacStrength),
  11055. entropyEnc: options.entropy && options.entropyEnc || 'utf8',
  11056. nonce: this.n.toArray()
  11057. });
  11058. var bytes = this.n.byteLength();
  11059. var ns2 = this.n.sub(new BN(2));
  11060. do {
  11061. var priv = new BN(drbg.generate(bytes));
  11062. if (priv.cmp(ns2) > 0)
  11063. continue;
  11064. priv.iaddn(1);
  11065. return this.keyFromPrivate(priv);
  11066. } while (true);
  11067. };
  11068. EC.prototype._truncateToN = function truncateToN(msg, truncOnly) {
  11069. var delta = msg.byteLength() * 8 - this.n.bitLength();
  11070. if (delta > 0)
  11071. msg = msg.ushrn(delta);
  11072. if (!truncOnly && msg.cmp(this.n) >= 0)
  11073. return msg.sub(this.n);
  11074. else
  11075. return msg;
  11076. };
  11077. EC.prototype.sign = function sign(msg, key, enc, options) {
  11078. if (typeof enc === 'object') {
  11079. options = enc;
  11080. enc = null;
  11081. }
  11082. if (!options)
  11083. options = {};
  11084. key = this.keyFromPrivate(key, enc);
  11085. msg = this._truncateToN(new BN(msg, 16));
  11086. // Zero-extend key to provide enough entropy
  11087. var bytes = this.n.byteLength();
  11088. var bkey = key.getPrivate().toArray('be', bytes);
  11089. // Zero-extend nonce to have the same byte size as N
  11090. var nonce = msg.toArray('be', bytes);
  11091. // Instantiate Hmac_DRBG
  11092. var drbg = new HmacDRBG({
  11093. hash: this.hash,
  11094. entropy: bkey,
  11095. nonce: nonce,
  11096. pers: options.pers,
  11097. persEnc: options.persEnc || 'utf8'
  11098. });
  11099. // Number of bytes to generate
  11100. var ns1 = this.n.sub(new BN(1));
  11101. for (var iter = 0; true; iter++) {
  11102. var k = options.k ?
  11103. options.k(iter) :
  11104. new BN(drbg.generate(this.n.byteLength()));
  11105. k = this._truncateToN(k, true);
  11106. if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)
  11107. continue;
  11108. var kp = this.g.mul(k);
  11109. if (kp.isInfinity())
  11110. continue;
  11111. var kpX = kp.getX();
  11112. var r = kpX.umod(this.n);
  11113. if (r.cmpn(0) === 0)
  11114. continue;
  11115. var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));
  11116. s = s.umod(this.n);
  11117. if (s.cmpn(0) === 0)
  11118. continue;
  11119. var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |
  11120. (kpX.cmp(r) !== 0 ? 2 : 0);
  11121. // Use complement of `s`, if it is > `n / 2`
  11122. if (options.canonical && s.cmp(this.nh) > 0) {
  11123. s = this.n.sub(s);
  11124. recoveryParam ^= 1;
  11125. }
  11126. return new Signature({ r: r, s: s, recoveryParam: recoveryParam });
  11127. }
  11128. };
  11129. EC.prototype.verify = function verify(msg, signature, key, enc) {
  11130. msg = this._truncateToN(new BN(msg, 16));
  11131. key = this.keyFromPublic(key, enc);
  11132. signature = new Signature(signature, 'hex');
  11133. // Perform primitive values validation
  11134. var r = signature.r;
  11135. var s = signature.s;
  11136. if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)
  11137. return false;
  11138. if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)
  11139. return false;
  11140. // Validate signature
  11141. var sinv = s.invm(this.n);
  11142. var u1 = sinv.mul(msg).umod(this.n);
  11143. var u2 = sinv.mul(r).umod(this.n);
  11144. if (!this.curve._maxwellTrick) {
  11145. var p = this.g.mulAdd(u1, key.getPublic(), u2);
  11146. if (p.isInfinity())
  11147. return false;
  11148. return p.getX().umod(this.n).cmp(r) === 0;
  11149. }
  11150. // NOTE: Greg Maxwell's trick, inspired by:
  11151. // https://git.io/vad3K
  11152. var p = this.g.jmulAdd(u1, key.getPublic(), u2);
  11153. if (p.isInfinity())
  11154. return false;
  11155. // Compare `p.x` of Jacobian point with `r`,
  11156. // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the
  11157. // inverse of `p.z^2`
  11158. return p.eqXToP(r);
  11159. };
  11160. EC.prototype.recoverPubKey = function(msg, signature, j, enc) {
  11161. assert((3 & j) === j, 'The recovery param is more than two bits');
  11162. signature = new Signature(signature, enc);
  11163. var n = this.n;
  11164. var e = new BN(msg);
  11165. var r = signature.r;
  11166. var s = signature.s;
  11167. // A set LSB signifies that the y-coordinate is odd
  11168. var isYOdd = j & 1;
  11169. var isSecondKey = j >> 1;
  11170. if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)
  11171. throw new Error('Unable to find sencond key candinate');
  11172. // 1.1. Let x = r + jn.
  11173. if (isSecondKey)
  11174. r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);
  11175. else
  11176. r = this.curve.pointFromX(r, isYOdd);
  11177. var rInv = signature.r.invm(n);
  11178. var s1 = n.sub(e).mul(rInv).umod(n);
  11179. var s2 = s.mul(rInv).umod(n);
  11180. // 1.6.1 Compute Q = r^-1 (sR - eG)
  11181. // Q = r^-1 (sR + -eG)
  11182. return this.g.mulAdd(s1, r, s2);
  11183. };
  11184. EC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {
  11185. signature = new Signature(signature, enc);
  11186. if (signature.recoveryParam !== null)
  11187. return signature.recoveryParam;
  11188. for (var i = 0; i < 4; i++) {
  11189. var Qprime;
  11190. try {
  11191. Qprime = this.recoverPubKey(e, signature, i);
  11192. } catch (e) {
  11193. continue;
  11194. }
  11195. if (Qprime.eq(Q))
  11196. return i;
  11197. }
  11198. throw new Error('Unable to find valid recovery factor');
  11199. };
  11200. },{"../../elliptic":74,"./key":82,"./signature":83,"bn.js":25,"hmac-drbg":105}],82:[function(require,module,exports){
  11201. 'use strict';
  11202. var BN = require('bn.js');
  11203. var elliptic = require('../../elliptic');
  11204. var utils = elliptic.utils;
  11205. var assert = utils.assert;
  11206. function KeyPair(ec, options) {
  11207. this.ec = ec;
  11208. this.priv = null;
  11209. this.pub = null;
  11210. // KeyPair(ec, { priv: ..., pub: ... })
  11211. if (options.priv)
  11212. this._importPrivate(options.priv, options.privEnc);
  11213. if (options.pub)
  11214. this._importPublic(options.pub, options.pubEnc);
  11215. }
  11216. module.exports = KeyPair;
  11217. KeyPair.fromPublic = function fromPublic(ec, pub, enc) {
  11218. if (pub instanceof KeyPair)
  11219. return pub;
  11220. return new KeyPair(ec, {
  11221. pub: pub,
  11222. pubEnc: enc
  11223. });
  11224. };
  11225. KeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {
  11226. if (priv instanceof KeyPair)
  11227. return priv;
  11228. return new KeyPair(ec, {
  11229. priv: priv,
  11230. privEnc: enc
  11231. });
  11232. };
  11233. KeyPair.prototype.validate = function validate() {
  11234. var pub = this.getPublic();
  11235. if (pub.isInfinity())
  11236. return { result: false, reason: 'Invalid public key' };
  11237. if (!pub.validate())
  11238. return { result: false, reason: 'Public key is not a point' };
  11239. if (!pub.mul(this.ec.curve.n).isInfinity())
  11240. return { result: false, reason: 'Public key * N != O' };
  11241. return { result: true, reason: null };
  11242. };
  11243. KeyPair.prototype.getPublic = function getPublic(compact, enc) {
  11244. // compact is optional argument
  11245. if (typeof compact === 'string') {
  11246. enc = compact;
  11247. compact = null;
  11248. }
  11249. if (!this.pub)
  11250. this.pub = this.ec.g.mul(this.priv);
  11251. if (!enc)
  11252. return this.pub;
  11253. return this.pub.encode(enc, compact);
  11254. };
  11255. KeyPair.prototype.getPrivate = function getPrivate(enc) {
  11256. if (enc === 'hex')
  11257. return this.priv.toString(16, 2);
  11258. else
  11259. return this.priv;
  11260. };
  11261. KeyPair.prototype._importPrivate = function _importPrivate(key, enc) {
  11262. this.priv = new BN(key, enc || 16);
  11263. // Ensure that the priv won't be bigger than n, otherwise we may fail
  11264. // in fixed multiplication method
  11265. this.priv = this.priv.umod(this.ec.curve.n);
  11266. };
  11267. KeyPair.prototype._importPublic = function _importPublic(key, enc) {
  11268. if (key.x || key.y) {
  11269. // Montgomery points only have an `x` coordinate.
  11270. // Weierstrass/Edwards points on the other hand have both `x` and
  11271. // `y` coordinates.
  11272. if (this.ec.curve.type === 'mont') {
  11273. assert(key.x, 'Need x coordinate');
  11274. } else if (this.ec.curve.type === 'short' ||
  11275. this.ec.curve.type === 'edwards') {
  11276. assert(key.x && key.y, 'Need both x and y coordinate');
  11277. }
  11278. this.pub = this.ec.curve.point(key.x, key.y);
  11279. return;
  11280. }
  11281. this.pub = this.ec.curve.decodePoint(key, enc);
  11282. };
  11283. // ECDH
  11284. KeyPair.prototype.derive = function derive(pub) {
  11285. return pub.mul(this.priv).getX();
  11286. };
  11287. // ECDSA
  11288. KeyPair.prototype.sign = function sign(msg, enc, options) {
  11289. return this.ec.sign(msg, this, enc, options);
  11290. };
  11291. KeyPair.prototype.verify = function verify(msg, signature) {
  11292. return this.ec.verify(msg, signature, this);
  11293. };
  11294. KeyPair.prototype.inspect = function inspect() {
  11295. return '<Key priv: ' + (this.priv && this.priv.toString(16, 2)) +
  11296. ' pub: ' + (this.pub && this.pub.inspect()) + ' >';
  11297. };
  11298. },{"../../elliptic":74,"bn.js":25}],83:[function(require,module,exports){
  11299. 'use strict';
  11300. var BN = require('bn.js');
  11301. var elliptic = require('../../elliptic');
  11302. var utils = elliptic.utils;
  11303. var assert = utils.assert;
  11304. function Signature(options, enc) {
  11305. if (options instanceof Signature)
  11306. return options;
  11307. if (this._importDER(options, enc))
  11308. return;
  11309. assert(options.r && options.s, 'Signature without r or s');
  11310. this.r = new BN(options.r, 16);
  11311. this.s = new BN(options.s, 16);
  11312. if (options.recoveryParam === undefined)
  11313. this.recoveryParam = null;
  11314. else
  11315. this.recoveryParam = options.recoveryParam;
  11316. }
  11317. module.exports = Signature;
  11318. function Position() {
  11319. this.place = 0;
  11320. }
  11321. function getLength(buf, p) {
  11322. var initial = buf[p.place++];
  11323. if (!(initial & 0x80)) {
  11324. return initial;
  11325. }
  11326. var octetLen = initial & 0xf;
  11327. var val = 0;
  11328. for (var i = 0, off = p.place; i < octetLen; i++, off++) {
  11329. val <<= 8;
  11330. val |= buf[off];
  11331. }
  11332. p.place = off;
  11333. return val;
  11334. }
  11335. function rmPadding(buf) {
  11336. var i = 0;
  11337. var len = buf.length - 1;
  11338. while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {
  11339. i++;
  11340. }
  11341. if (i === 0) {
  11342. return buf;
  11343. }
  11344. return buf.slice(i);
  11345. }
  11346. Signature.prototype._importDER = function _importDER(data, enc) {
  11347. data = utils.toArray(data, enc);
  11348. var p = new Position();
  11349. if (data[p.place++] !== 0x30) {
  11350. return false;
  11351. }
  11352. var len = getLength(data, p);
  11353. if ((len + p.place) !== data.length) {
  11354. return false;
  11355. }
  11356. if (data[p.place++] !== 0x02) {
  11357. return false;
  11358. }
  11359. var rlen = getLength(data, p);
  11360. var r = data.slice(p.place, rlen + p.place);
  11361. p.place += rlen;
  11362. if (data[p.place++] !== 0x02) {
  11363. return false;
  11364. }
  11365. var slen = getLength(data, p);
  11366. if (data.length !== slen + p.place) {
  11367. return false;
  11368. }
  11369. var s = data.slice(p.place, slen + p.place);
  11370. if (r[0] === 0 && (r[1] & 0x80)) {
  11371. r = r.slice(1);
  11372. }
  11373. if (s[0] === 0 && (s[1] & 0x80)) {
  11374. s = s.slice(1);
  11375. }
  11376. this.r = new BN(r);
  11377. this.s = new BN(s);
  11378. this.recoveryParam = null;
  11379. return true;
  11380. };
  11381. function constructLength(arr, len) {
  11382. if (len < 0x80) {
  11383. arr.push(len);
  11384. return;
  11385. }
  11386. var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);
  11387. arr.push(octets | 0x80);
  11388. while (--octets) {
  11389. arr.push((len >>> (octets << 3)) & 0xff);
  11390. }
  11391. arr.push(len);
  11392. }
  11393. Signature.prototype.toDER = function toDER(enc) {
  11394. var r = this.r.toArray();
  11395. var s = this.s.toArray();
  11396. // Pad values
  11397. if (r[0] & 0x80)
  11398. r = [ 0 ].concat(r);
  11399. // Pad values
  11400. if (s[0] & 0x80)
  11401. s = [ 0 ].concat(s);
  11402. r = rmPadding(r);
  11403. s = rmPadding(s);
  11404. while (!s[0] && !(s[1] & 0x80)) {
  11405. s = s.slice(1);
  11406. }
  11407. var arr = [ 0x02 ];
  11408. constructLength(arr, r.length);
  11409. arr = arr.concat(r);
  11410. arr.push(0x02);
  11411. constructLength(arr, s.length);
  11412. var backHalf = arr.concat(s);
  11413. var res = [ 0x30 ];
  11414. constructLength(res, backHalf.length);
  11415. res = res.concat(backHalf);
  11416. return utils.encode(res, enc);
  11417. };
  11418. },{"../../elliptic":74,"bn.js":25}],84:[function(require,module,exports){
  11419. 'use strict';
  11420. var hash = require('hash.js');
  11421. var elliptic = require('../../elliptic');
  11422. var utils = elliptic.utils;
  11423. var assert = utils.assert;
  11424. var parseBytes = utils.parseBytes;
  11425. var KeyPair = require('./key');
  11426. var Signature = require('./signature');
  11427. function EDDSA(curve) {
  11428. assert(curve === 'ed25519', 'only tested with ed25519 so far');
  11429. if (!(this instanceof EDDSA))
  11430. return new EDDSA(curve);
  11431. var curve = elliptic.curves[curve].curve;
  11432. this.curve = curve;
  11433. this.g = curve.g;
  11434. this.g.precompute(curve.n.bitLength() + 1);
  11435. this.pointClass = curve.point().constructor;
  11436. this.encodingLength = Math.ceil(curve.n.bitLength() / 8);
  11437. this.hash = hash.sha512;
  11438. }
  11439. module.exports = EDDSA;
  11440. /**
  11441. * @param {Array|String} message - message bytes
  11442. * @param {Array|String|KeyPair} secret - secret bytes or a keypair
  11443. * @returns {Signature} - signature
  11444. */
  11445. EDDSA.prototype.sign = function sign(message, secret) {
  11446. message = parseBytes(message);
  11447. var key = this.keyFromSecret(secret);
  11448. var r = this.hashInt(key.messagePrefix(), message);
  11449. var R = this.g.mul(r);
  11450. var Rencoded = this.encodePoint(R);
  11451. var s_ = this.hashInt(Rencoded, key.pubBytes(), message)
  11452. .mul(key.priv());
  11453. var S = r.add(s_).umod(this.curve.n);
  11454. return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });
  11455. };
  11456. /**
  11457. * @param {Array} message - message bytes
  11458. * @param {Array|String|Signature} sig - sig bytes
  11459. * @param {Array|String|Point|KeyPair} pub - public key
  11460. * @returns {Boolean} - true if public key matches sig of message
  11461. */
  11462. EDDSA.prototype.verify = function verify(message, sig, pub) {
  11463. message = parseBytes(message);
  11464. sig = this.makeSignature(sig);
  11465. var key = this.keyFromPublic(pub);
  11466. var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);
  11467. var SG = this.g.mul(sig.S());
  11468. var RplusAh = sig.R().add(key.pub().mul(h));
  11469. return RplusAh.eq(SG);
  11470. };
  11471. EDDSA.prototype.hashInt = function hashInt() {
  11472. var hash = this.hash();
  11473. for (var i = 0; i < arguments.length; i++)
  11474. hash.update(arguments[i]);
  11475. return utils.intFromLE(hash.digest()).umod(this.curve.n);
  11476. };
  11477. EDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {
  11478. return KeyPair.fromPublic(this, pub);
  11479. };
  11480. EDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {
  11481. return KeyPair.fromSecret(this, secret);
  11482. };
  11483. EDDSA.prototype.makeSignature = function makeSignature(sig) {
  11484. if (sig instanceof Signature)
  11485. return sig;
  11486. return new Signature(this, sig);
  11487. };
  11488. /**
  11489. * * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2
  11490. *
  11491. * EDDSA defines methods for encoding and decoding points and integers. These are
  11492. * helper convenience methods, that pass along to utility functions implied
  11493. * parameters.
  11494. *
  11495. */
  11496. EDDSA.prototype.encodePoint = function encodePoint(point) {
  11497. var enc = point.getY().toArray('le', this.encodingLength);
  11498. enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;
  11499. return enc;
  11500. };
  11501. EDDSA.prototype.decodePoint = function decodePoint(bytes) {
  11502. bytes = utils.parseBytes(bytes);
  11503. var lastIx = bytes.length - 1;
  11504. var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);
  11505. var xIsOdd = (bytes[lastIx] & 0x80) !== 0;
  11506. var y = utils.intFromLE(normed);
  11507. return this.curve.pointFromY(y, xIsOdd);
  11508. };
  11509. EDDSA.prototype.encodeInt = function encodeInt(num) {
  11510. return num.toArray('le', this.encodingLength);
  11511. };
  11512. EDDSA.prototype.decodeInt = function decodeInt(bytes) {
  11513. return utils.intFromLE(bytes);
  11514. };
  11515. EDDSA.prototype.isPoint = function isPoint(val) {
  11516. return val instanceof this.pointClass;
  11517. };
  11518. },{"../../elliptic":74,"./key":85,"./signature":86,"hash.js":93}],85:[function(require,module,exports){
  11519. 'use strict';
  11520. var elliptic = require('../../elliptic');
  11521. var utils = elliptic.utils;
  11522. var assert = utils.assert;
  11523. var parseBytes = utils.parseBytes;
  11524. var cachedProperty = utils.cachedProperty;
  11525. /**
  11526. * @param {EDDSA} eddsa - instance
  11527. * @param {Object} params - public/private key parameters
  11528. *
  11529. * @param {Array<Byte>} [params.secret] - secret seed bytes
  11530. * @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)
  11531. * @param {Array<Byte>} [params.pub] - public key point encoded as bytes
  11532. *
  11533. */
  11534. function KeyPair(eddsa, params) {
  11535. this.eddsa = eddsa;
  11536. this._secret = parseBytes(params.secret);
  11537. if (eddsa.isPoint(params.pub))
  11538. this._pub = params.pub;
  11539. else
  11540. this._pubBytes = parseBytes(params.pub);
  11541. }
  11542. KeyPair.fromPublic = function fromPublic(eddsa, pub) {
  11543. if (pub instanceof KeyPair)
  11544. return pub;
  11545. return new KeyPair(eddsa, { pub: pub });
  11546. };
  11547. KeyPair.fromSecret = function fromSecret(eddsa, secret) {
  11548. if (secret instanceof KeyPair)
  11549. return secret;
  11550. return new KeyPair(eddsa, { secret: secret });
  11551. };
  11552. KeyPair.prototype.secret = function secret() {
  11553. return this._secret;
  11554. };
  11555. cachedProperty(KeyPair, 'pubBytes', function pubBytes() {
  11556. return this.eddsa.encodePoint(this.pub());
  11557. });
  11558. cachedProperty(KeyPair, 'pub', function pub() {
  11559. if (this._pubBytes)
  11560. return this.eddsa.decodePoint(this._pubBytes);
  11561. return this.eddsa.g.mul(this.priv());
  11562. });
  11563. cachedProperty(KeyPair, 'privBytes', function privBytes() {
  11564. var eddsa = this.eddsa;
  11565. var hash = this.hash();
  11566. var lastIx = eddsa.encodingLength - 1;
  11567. var a = hash.slice(0, eddsa.encodingLength);
  11568. a[0] &= 248;
  11569. a[lastIx] &= 127;
  11570. a[lastIx] |= 64;
  11571. return a;
  11572. });
  11573. cachedProperty(KeyPair, 'priv', function priv() {
  11574. return this.eddsa.decodeInt(this.privBytes());
  11575. });
  11576. cachedProperty(KeyPair, 'hash', function hash() {
  11577. return this.eddsa.hash().update(this.secret()).digest();
  11578. });
  11579. cachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {
  11580. return this.hash().slice(this.eddsa.encodingLength);
  11581. });
  11582. KeyPair.prototype.sign = function sign(message) {
  11583. assert(this._secret, 'KeyPair can only verify');
  11584. return this.eddsa.sign(message, this);
  11585. };
  11586. KeyPair.prototype.verify = function verify(message, sig) {
  11587. return this.eddsa.verify(message, sig, this);
  11588. };
  11589. KeyPair.prototype.getSecret = function getSecret(enc) {
  11590. assert(this._secret, 'KeyPair is public only');
  11591. return utils.encode(this.secret(), enc);
  11592. };
  11593. KeyPair.prototype.getPublic = function getPublic(enc) {
  11594. return utils.encode(this.pubBytes(), enc);
  11595. };
  11596. module.exports = KeyPair;
  11597. },{"../../elliptic":74}],86:[function(require,module,exports){
  11598. 'use strict';
  11599. var BN = require('bn.js');
  11600. var elliptic = require('../../elliptic');
  11601. var utils = elliptic.utils;
  11602. var assert = utils.assert;
  11603. var cachedProperty = utils.cachedProperty;
  11604. var parseBytes = utils.parseBytes;
  11605. /**
  11606. * @param {EDDSA} eddsa - eddsa instance
  11607. * @param {Array<Bytes>|Object} sig -
  11608. * @param {Array<Bytes>|Point} [sig.R] - R point as Point or bytes
  11609. * @param {Array<Bytes>|bn} [sig.S] - S scalar as bn or bytes
  11610. * @param {Array<Bytes>} [sig.Rencoded] - R point encoded
  11611. * @param {Array<Bytes>} [sig.Sencoded] - S scalar encoded
  11612. */
  11613. function Signature(eddsa, sig) {
  11614. this.eddsa = eddsa;
  11615. if (typeof sig !== 'object')
  11616. sig = parseBytes(sig);
  11617. if (Array.isArray(sig)) {
  11618. sig = {
  11619. R: sig.slice(0, eddsa.encodingLength),
  11620. S: sig.slice(eddsa.encodingLength)
  11621. };
  11622. }
  11623. assert(sig.R && sig.S, 'Signature without R or S');
  11624. if (eddsa.isPoint(sig.R))
  11625. this._R = sig.R;
  11626. if (sig.S instanceof BN)
  11627. this._S = sig.S;
  11628. this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;
  11629. this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;
  11630. }
  11631. cachedProperty(Signature, 'S', function S() {
  11632. return this.eddsa.decodeInt(this.Sencoded());
  11633. });
  11634. cachedProperty(Signature, 'R', function R() {
  11635. return this.eddsa.decodePoint(this.Rencoded());
  11636. });
  11637. cachedProperty(Signature, 'Rencoded', function Rencoded() {
  11638. return this.eddsa.encodePoint(this.R());
  11639. });
  11640. cachedProperty(Signature, 'Sencoded', function Sencoded() {
  11641. return this.eddsa.encodeInt(this.S());
  11642. });
  11643. Signature.prototype.toBytes = function toBytes() {
  11644. return this.Rencoded().concat(this.Sencoded());
  11645. };
  11646. Signature.prototype.toHex = function toHex() {
  11647. return utils.encode(this.toBytes(), 'hex').toUpperCase();
  11648. };
  11649. module.exports = Signature;
  11650. },{"../../elliptic":74,"bn.js":25}],87:[function(require,module,exports){
  11651. module.exports = {
  11652. doubles: {
  11653. step: 4,
  11654. points: [
  11655. [
  11656. 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',
  11657. 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821'
  11658. ],
  11659. [
  11660. '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',
  11661. '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf'
  11662. ],
  11663. [
  11664. '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',
  11665. 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695'
  11666. ],
  11667. [
  11668. '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',
  11669. '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9'
  11670. ],
  11671. [
  11672. '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',
  11673. '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36'
  11674. ],
  11675. [
  11676. '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',
  11677. '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f'
  11678. ],
  11679. [
  11680. 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',
  11681. '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999'
  11682. ],
  11683. [
  11684. '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',
  11685. 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09'
  11686. ],
  11687. [
  11688. 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',
  11689. '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d'
  11690. ],
  11691. [
  11692. 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',
  11693. 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088'
  11694. ],
  11695. [
  11696. 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',
  11697. '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d'
  11698. ],
  11699. [
  11700. '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',
  11701. '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8'
  11702. ],
  11703. [
  11704. '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',
  11705. '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a'
  11706. ],
  11707. [
  11708. '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',
  11709. '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453'
  11710. ],
  11711. [
  11712. '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',
  11713. '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160'
  11714. ],
  11715. [
  11716. '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',
  11717. '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0'
  11718. ],
  11719. [
  11720. '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',
  11721. '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6'
  11722. ],
  11723. [
  11724. '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',
  11725. '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589'
  11726. ],
  11727. [
  11728. '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',
  11729. 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17'
  11730. ],
  11731. [
  11732. 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',
  11733. '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda'
  11734. ],
  11735. [
  11736. 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',
  11737. '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd'
  11738. ],
  11739. [
  11740. '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',
  11741. '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2'
  11742. ],
  11743. [
  11744. '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',
  11745. '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6'
  11746. ],
  11747. [
  11748. 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',
  11749. '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f'
  11750. ],
  11751. [
  11752. '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',
  11753. 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01'
  11754. ],
  11755. [
  11756. 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',
  11757. '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3'
  11758. ],
  11759. [
  11760. 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',
  11761. 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f'
  11762. ],
  11763. [
  11764. 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',
  11765. '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7'
  11766. ],
  11767. [
  11768. 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',
  11769. 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78'
  11770. ],
  11771. [
  11772. 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',
  11773. '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1'
  11774. ],
  11775. [
  11776. '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',
  11777. 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150'
  11778. ],
  11779. [
  11780. '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',
  11781. '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82'
  11782. ],
  11783. [
  11784. 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',
  11785. '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc'
  11786. ],
  11787. [
  11788. '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',
  11789. 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b'
  11790. ],
  11791. [
  11792. 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',
  11793. '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51'
  11794. ],
  11795. [
  11796. 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',
  11797. '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45'
  11798. ],
  11799. [
  11800. 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',
  11801. 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120'
  11802. ],
  11803. [
  11804. '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',
  11805. '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84'
  11806. ],
  11807. [
  11808. '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',
  11809. '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d'
  11810. ],
  11811. [
  11812. '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',
  11813. 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d'
  11814. ],
  11815. [
  11816. '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',
  11817. '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8'
  11818. ],
  11819. [
  11820. 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',
  11821. '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8'
  11822. ],
  11823. [
  11824. '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',
  11825. '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac'
  11826. ],
  11827. [
  11828. '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',
  11829. 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f'
  11830. ],
  11831. [
  11832. '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',
  11833. '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962'
  11834. ],
  11835. [
  11836. 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',
  11837. '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907'
  11838. ],
  11839. [
  11840. '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',
  11841. 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec'
  11842. ],
  11843. [
  11844. 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',
  11845. 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d'
  11846. ],
  11847. [
  11848. 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',
  11849. '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414'
  11850. ],
  11851. [
  11852. '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',
  11853. 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd'
  11854. ],
  11855. [
  11856. '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',
  11857. 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0'
  11858. ],
  11859. [
  11860. 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',
  11861. '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811'
  11862. ],
  11863. [
  11864. 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',
  11865. '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1'
  11866. ],
  11867. [
  11868. 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',
  11869. '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c'
  11870. ],
  11871. [
  11872. '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',
  11873. 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73'
  11874. ],
  11875. [
  11876. '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',
  11877. '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd'
  11878. ],
  11879. [
  11880. 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',
  11881. 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405'
  11882. ],
  11883. [
  11884. '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',
  11885. 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589'
  11886. ],
  11887. [
  11888. '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',
  11889. '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e'
  11890. ],
  11891. [
  11892. '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',
  11893. '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27'
  11894. ],
  11895. [
  11896. 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',
  11897. 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1'
  11898. ],
  11899. [
  11900. '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',
  11901. '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482'
  11902. ],
  11903. [
  11904. '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',
  11905. '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945'
  11906. ],
  11907. [
  11908. 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',
  11909. '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573'
  11910. ],
  11911. [
  11912. 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',
  11913. 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82'
  11914. ]
  11915. ]
  11916. },
  11917. naf: {
  11918. wnd: 7,
  11919. points: [
  11920. [
  11921. 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',
  11922. '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672'
  11923. ],
  11924. [
  11925. '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',
  11926. 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6'
  11927. ],
  11928. [
  11929. '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',
  11930. '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da'
  11931. ],
  11932. [
  11933. 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',
  11934. 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37'
  11935. ],
  11936. [
  11937. '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',
  11938. 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b'
  11939. ],
  11940. [
  11941. 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',
  11942. 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81'
  11943. ],
  11944. [
  11945. 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',
  11946. '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58'
  11947. ],
  11948. [
  11949. 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',
  11950. '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77'
  11951. ],
  11952. [
  11953. '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',
  11954. '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a'
  11955. ],
  11956. [
  11957. '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',
  11958. '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c'
  11959. ],
  11960. [
  11961. '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',
  11962. '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67'
  11963. ],
  11964. [
  11965. '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',
  11966. '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402'
  11967. ],
  11968. [
  11969. 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',
  11970. 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55'
  11971. ],
  11972. [
  11973. 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',
  11974. '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482'
  11975. ],
  11976. [
  11977. '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',
  11978. 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82'
  11979. ],
  11980. [
  11981. '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',
  11982. 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396'
  11983. ],
  11984. [
  11985. '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',
  11986. '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49'
  11987. ],
  11988. [
  11989. '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',
  11990. '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf'
  11991. ],
  11992. [
  11993. '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',
  11994. '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a'
  11995. ],
  11996. [
  11997. '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',
  11998. 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7'
  11999. ],
  12000. [
  12001. 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',
  12002. 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933'
  12003. ],
  12004. [
  12005. '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',
  12006. '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a'
  12007. ],
  12008. [
  12009. '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',
  12010. '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6'
  12011. ],
  12012. [
  12013. 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',
  12014. 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37'
  12015. ],
  12016. [
  12017. '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',
  12018. '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e'
  12019. ],
  12020. [
  12021. 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',
  12022. 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6'
  12023. ],
  12024. [
  12025. 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',
  12026. 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476'
  12027. ],
  12028. [
  12029. '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',
  12030. '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40'
  12031. ],
  12032. [
  12033. '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',
  12034. '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61'
  12035. ],
  12036. [
  12037. '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',
  12038. '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683'
  12039. ],
  12040. [
  12041. 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',
  12042. '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5'
  12043. ],
  12044. [
  12045. '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',
  12046. '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b'
  12047. ],
  12048. [
  12049. 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',
  12050. '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417'
  12051. ],
  12052. [
  12053. '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',
  12054. 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868'
  12055. ],
  12056. [
  12057. '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',
  12058. 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a'
  12059. ],
  12060. [
  12061. 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',
  12062. 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6'
  12063. ],
  12064. [
  12065. '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',
  12066. '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996'
  12067. ],
  12068. [
  12069. '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',
  12070. 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e'
  12071. ],
  12072. [
  12073. 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',
  12074. 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d'
  12075. ],
  12076. [
  12077. '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',
  12078. '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2'
  12079. ],
  12080. [
  12081. '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',
  12082. 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e'
  12083. ],
  12084. [
  12085. '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',
  12086. '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437'
  12087. ],
  12088. [
  12089. '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',
  12090. 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311'
  12091. ],
  12092. [
  12093. 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',
  12094. '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4'
  12095. ],
  12096. [
  12097. '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',
  12098. '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575'
  12099. ],
  12100. [
  12101. '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',
  12102. 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d'
  12103. ],
  12104. [
  12105. '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',
  12106. 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d'
  12107. ],
  12108. [
  12109. 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',
  12110. 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629'
  12111. ],
  12112. [
  12113. 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',
  12114. 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06'
  12115. ],
  12116. [
  12117. '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',
  12118. '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374'
  12119. ],
  12120. [
  12121. '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',
  12122. '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee'
  12123. ],
  12124. [
  12125. 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',
  12126. '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1'
  12127. ],
  12128. [
  12129. 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',
  12130. 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b'
  12131. ],
  12132. [
  12133. '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',
  12134. '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661'
  12135. ],
  12136. [
  12137. '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',
  12138. '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6'
  12139. ],
  12140. [
  12141. 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',
  12142. '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e'
  12143. ],
  12144. [
  12145. '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',
  12146. '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d'
  12147. ],
  12148. [
  12149. 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',
  12150. 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc'
  12151. ],
  12152. [
  12153. '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',
  12154. 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4'
  12155. ],
  12156. [
  12157. '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',
  12158. '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c'
  12159. ],
  12160. [
  12161. 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',
  12162. '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b'
  12163. ],
  12164. [
  12165. 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',
  12166. '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913'
  12167. ],
  12168. [
  12169. '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',
  12170. '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154'
  12171. ],
  12172. [
  12173. '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',
  12174. '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865'
  12175. ],
  12176. [
  12177. '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',
  12178. 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc'
  12179. ],
  12180. [
  12181. '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',
  12182. 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224'
  12183. ],
  12184. [
  12185. '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',
  12186. '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e'
  12187. ],
  12188. [
  12189. '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',
  12190. '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6'
  12191. ],
  12192. [
  12193. '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',
  12194. '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511'
  12195. ],
  12196. [
  12197. '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',
  12198. 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b'
  12199. ],
  12200. [
  12201. 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',
  12202. 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2'
  12203. ],
  12204. [
  12205. '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',
  12206. 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c'
  12207. ],
  12208. [
  12209. 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',
  12210. '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3'
  12211. ],
  12212. [
  12213. 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',
  12214. '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d'
  12215. ],
  12216. [
  12217. 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',
  12218. '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700'
  12219. ],
  12220. [
  12221. 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',
  12222. '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4'
  12223. ],
  12224. [
  12225. '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',
  12226. 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196'
  12227. ],
  12228. [
  12229. '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',
  12230. '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4'
  12231. ],
  12232. [
  12233. '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',
  12234. 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257'
  12235. ],
  12236. [
  12237. 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',
  12238. 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13'
  12239. ],
  12240. [
  12241. 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',
  12242. '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096'
  12243. ],
  12244. [
  12245. 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',
  12246. 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38'
  12247. ],
  12248. [
  12249. 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',
  12250. '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f'
  12251. ],
  12252. [
  12253. '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',
  12254. '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448'
  12255. ],
  12256. [
  12257. 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',
  12258. '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a'
  12259. ],
  12260. [
  12261. 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',
  12262. '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4'
  12263. ],
  12264. [
  12265. '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',
  12266. '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437'
  12267. ],
  12268. [
  12269. '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',
  12270. 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7'
  12271. ],
  12272. [
  12273. 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',
  12274. '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d'
  12275. ],
  12276. [
  12277. 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',
  12278. '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a'
  12279. ],
  12280. [
  12281. 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',
  12282. '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54'
  12283. ],
  12284. [
  12285. '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',
  12286. '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77'
  12287. ],
  12288. [
  12289. 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',
  12290. 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517'
  12291. ],
  12292. [
  12293. '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',
  12294. 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10'
  12295. ],
  12296. [
  12297. 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',
  12298. 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125'
  12299. ],
  12300. [
  12301. 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',
  12302. '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e'
  12303. ],
  12304. [
  12305. '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',
  12306. 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1'
  12307. ],
  12308. [
  12309. 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',
  12310. '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2'
  12311. ],
  12312. [
  12313. 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',
  12314. '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423'
  12315. ],
  12316. [
  12317. 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',
  12318. '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8'
  12319. ],
  12320. [
  12321. '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',
  12322. 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758'
  12323. ],
  12324. [
  12325. '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',
  12326. 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375'
  12327. ],
  12328. [
  12329. 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',
  12330. '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d'
  12331. ],
  12332. [
  12333. '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',
  12334. 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec'
  12335. ],
  12336. [
  12337. '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',
  12338. '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0'
  12339. ],
  12340. [
  12341. '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',
  12342. 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c'
  12343. ],
  12344. [
  12345. 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',
  12346. 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4'
  12347. ],
  12348. [
  12349. '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',
  12350. 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f'
  12351. ],
  12352. [
  12353. '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',
  12354. '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649'
  12355. ],
  12356. [
  12357. '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',
  12358. 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826'
  12359. ],
  12360. [
  12361. '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',
  12362. '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5'
  12363. ],
  12364. [
  12365. 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',
  12366. 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87'
  12367. ],
  12368. [
  12369. '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',
  12370. '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b'
  12371. ],
  12372. [
  12373. 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',
  12374. '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc'
  12375. ],
  12376. [
  12377. '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',
  12378. '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c'
  12379. ],
  12380. [
  12381. 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',
  12382. 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f'
  12383. ],
  12384. [
  12385. 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',
  12386. '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a'
  12387. ],
  12388. [
  12389. 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',
  12390. 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46'
  12391. ],
  12392. [
  12393. '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',
  12394. 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f'
  12395. ],
  12396. [
  12397. '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',
  12398. '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03'
  12399. ],
  12400. [
  12401. '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',
  12402. 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08'
  12403. ],
  12404. [
  12405. '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',
  12406. '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8'
  12407. ],
  12408. [
  12409. '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',
  12410. '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373'
  12411. ],
  12412. [
  12413. '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',
  12414. 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3'
  12415. ],
  12416. [
  12417. '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',
  12418. '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8'
  12419. ],
  12420. [
  12421. '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',
  12422. '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1'
  12423. ],
  12424. [
  12425. '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',
  12426. '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9'
  12427. ]
  12428. ]
  12429. }
  12430. };
  12431. },{}],88:[function(require,module,exports){
  12432. 'use strict';
  12433. var utils = exports;
  12434. var BN = require('bn.js');
  12435. var minAssert = require('minimalistic-assert');
  12436. var minUtils = require('minimalistic-crypto-utils');
  12437. utils.assert = minAssert;
  12438. utils.toArray = minUtils.toArray;
  12439. utils.zero2 = minUtils.zero2;
  12440. utils.toHex = minUtils.toHex;
  12441. utils.encode = minUtils.encode;
  12442. // Represent num in a w-NAF form
  12443. function getNAF(num, w) {
  12444. var naf = [];
  12445. var ws = 1 << (w + 1);
  12446. var k = num.clone();
  12447. while (k.cmpn(1) >= 0) {
  12448. var z;
  12449. if (k.isOdd()) {
  12450. var mod = k.andln(ws - 1);
  12451. if (mod > (ws >> 1) - 1)
  12452. z = (ws >> 1) - mod;
  12453. else
  12454. z = mod;
  12455. k.isubn(z);
  12456. } else {
  12457. z = 0;
  12458. }
  12459. naf.push(z);
  12460. // Optimization, shift by word if possible
  12461. var shift = (k.cmpn(0) !== 0 && k.andln(ws - 1) === 0) ? (w + 1) : 1;
  12462. for (var i = 1; i < shift; i++)
  12463. naf.push(0);
  12464. k.iushrn(shift);
  12465. }
  12466. return naf;
  12467. }
  12468. utils.getNAF = getNAF;
  12469. // Represent k1, k2 in a Joint Sparse Form
  12470. function getJSF(k1, k2) {
  12471. var jsf = [
  12472. [],
  12473. []
  12474. ];
  12475. k1 = k1.clone();
  12476. k2 = k2.clone();
  12477. var d1 = 0;
  12478. var d2 = 0;
  12479. while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {
  12480. // First phase
  12481. var m14 = (k1.andln(3) + d1) & 3;
  12482. var m24 = (k2.andln(3) + d2) & 3;
  12483. if (m14 === 3)
  12484. m14 = -1;
  12485. if (m24 === 3)
  12486. m24 = -1;
  12487. var u1;
  12488. if ((m14 & 1) === 0) {
  12489. u1 = 0;
  12490. } else {
  12491. var m8 = (k1.andln(7) + d1) & 7;
  12492. if ((m8 === 3 || m8 === 5) && m24 === 2)
  12493. u1 = -m14;
  12494. else
  12495. u1 = m14;
  12496. }
  12497. jsf[0].push(u1);
  12498. var u2;
  12499. if ((m24 & 1) === 0) {
  12500. u2 = 0;
  12501. } else {
  12502. var m8 = (k2.andln(7) + d2) & 7;
  12503. if ((m8 === 3 || m8 === 5) && m14 === 2)
  12504. u2 = -m24;
  12505. else
  12506. u2 = m24;
  12507. }
  12508. jsf[1].push(u2);
  12509. // Second phase
  12510. if (2 * d1 === u1 + 1)
  12511. d1 = 1 - d1;
  12512. if (2 * d2 === u2 + 1)
  12513. d2 = 1 - d2;
  12514. k1.iushrn(1);
  12515. k2.iushrn(1);
  12516. }
  12517. return jsf;
  12518. }
  12519. utils.getJSF = getJSF;
  12520. function cachedProperty(obj, name, computer) {
  12521. var key = '_' + name;
  12522. obj.prototype[name] = function cachedProperty() {
  12523. return this[key] !== undefined ? this[key] :
  12524. this[key] = computer.call(this);
  12525. };
  12526. }
  12527. utils.cachedProperty = cachedProperty;
  12528. function parseBytes(bytes) {
  12529. return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :
  12530. bytes;
  12531. }
  12532. utils.parseBytes = parseBytes;
  12533. function intFromLE(bytes) {
  12534. return new BN(bytes, 'hex', 'le');
  12535. }
  12536. utils.intFromLE = intFromLE;
  12537. },{"bn.js":25,"minimalistic-assert":112,"minimalistic-crypto-utils":113}],89:[function(require,module,exports){
  12538. module.exports={
  12539. "_from": "elliptic@^6.0.0",
  12540. "_id": "elliptic@6.4.0",
  12541. "_inBundle": false,
  12542. "_integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=",
  12543. "_location": "/browserify/elliptic",
  12544. "_phantomChildren": {},
  12545. "_requested": {
  12546. "type": "range",
  12547. "registry": true,
  12548. "raw": "elliptic@^6.0.0",
  12549. "name": "elliptic",
  12550. "escapedName": "elliptic",
  12551. "rawSpec": "^6.0.0",
  12552. "saveSpec": null,
  12553. "fetchSpec": "^6.0.0"
  12554. },
  12555. "_requiredBy": [
  12556. "/browserify/browserify-sign",
  12557. "/browserify/create-ecdh"
  12558. ],
  12559. "_resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz",
  12560. "_shasum": "cac9af8762c85836187003c8dfe193e5e2eae5df",
  12561. "_spec": "elliptic@^6.0.0",
  12562. "_where": "/usr/local/lib/node_modules/browserify/node_modules/browserify-sign",
  12563. "author": {
  12564. "name": "Fedor Indutny",
  12565. "email": "fedor@indutny.com"
  12566. },
  12567. "bugs": {
  12568. "url": "https://github.com/indutny/elliptic/issues"
  12569. },
  12570. "bundleDependencies": false,
  12571. "dependencies": {
  12572. "bn.js": "^4.4.0",
  12573. "brorand": "^1.0.1",
  12574. "hash.js": "^1.0.0",
  12575. "hmac-drbg": "^1.0.0",
  12576. "inherits": "^2.0.1",
  12577. "minimalistic-assert": "^1.0.0",
  12578. "minimalistic-crypto-utils": "^1.0.0"
  12579. },
  12580. "deprecated": false,
  12581. "description": "EC cryptography",
  12582. "devDependencies": {
  12583. "brfs": "^1.4.3",
  12584. "coveralls": "^2.11.3",
  12585. "grunt": "^0.4.5",
  12586. "grunt-browserify": "^5.0.0",
  12587. "grunt-cli": "^1.2.0",
  12588. "grunt-contrib-connect": "^1.0.0",
  12589. "grunt-contrib-copy": "^1.0.0",
  12590. "grunt-contrib-uglify": "^1.0.1",
  12591. "grunt-mocha-istanbul": "^3.0.1",
  12592. "grunt-saucelabs": "^8.6.2",
  12593. "istanbul": "^0.4.2",
  12594. "jscs": "^2.9.0",
  12595. "jshint": "^2.6.0",
  12596. "mocha": "^2.1.0"
  12597. },
  12598. "files": [
  12599. "lib"
  12600. ],
  12601. "homepage": "https://github.com/indutny/elliptic",
  12602. "keywords": [
  12603. "EC",
  12604. "Elliptic",
  12605. "curve",
  12606. "Cryptography"
  12607. ],
  12608. "license": "MIT",
  12609. "main": "lib/elliptic.js",
  12610. "name": "elliptic",
  12611. "repository": {
  12612. "type": "git",
  12613. "url": "git+ssh://git@github.com/indutny/elliptic.git"
  12614. },
  12615. "scripts": {
  12616. "jscs": "jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
  12617. "jshint": "jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
  12618. "lint": "npm run jscs && npm run jshint",
  12619. "test": "npm run lint && npm run unit",
  12620. "unit": "istanbul test _mocha --reporter=spec test/index.js",
  12621. "version": "grunt dist && git add dist/"
  12622. },
  12623. "version": "6.4.0"
  12624. }
  12625. },{}],90:[function(require,module,exports){
  12626. // Copyright Joyent, Inc. and other Node contributors.
  12627. //
  12628. // Permission is hereby granted, free of charge, to any person obtaining a
  12629. // copy of this software and associated documentation files (the
  12630. // "Software"), to deal in the Software without restriction, including
  12631. // without limitation the rights to use, copy, modify, merge, publish,
  12632. // distribute, sublicense, and/or sell copies of the Software, and to permit
  12633. // persons to whom the Software is furnished to do so, subject to the
  12634. // following conditions:
  12635. //
  12636. // The above copyright notice and this permission notice shall be included
  12637. // in all copies or substantial portions of the Software.
  12638. //
  12639. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  12640. // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  12641. // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
  12642. // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
  12643. // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
  12644. // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
  12645. // USE OR OTHER DEALINGS IN THE SOFTWARE.
  12646. function EventEmitter() {
  12647. this._events = this._events || {};
  12648. this._maxListeners = this._maxListeners || undefined;
  12649. }
  12650. module.exports = EventEmitter;
  12651. // Backwards-compat with node 0.10.x
  12652. EventEmitter.EventEmitter = EventEmitter;
  12653. EventEmitter.prototype._events = undefined;
  12654. EventEmitter.prototype._maxListeners = undefined;
  12655. // By default EventEmitters will print a warning if more than 10 listeners are
  12656. // added to it. This is a useful default which helps finding memory leaks.
  12657. EventEmitter.defaultMaxListeners = 10;
  12658. // Obviously not all Emitters should be limited to 10. This function allows
  12659. // that to be increased. Set to zero for unlimited.
  12660. EventEmitter.prototype.setMaxListeners = function(n) {
  12661. if (!isNumber(n) || n < 0 || isNaN(n))
  12662. throw TypeError('n must be a positive number');
  12663. this._maxListeners = n;
  12664. return this;
  12665. };
  12666. EventEmitter.prototype.emit = function(type) {
  12667. var er, handler, len, args, i, listeners;
  12668. if (!this._events)
  12669. this._events = {};
  12670. // If there is no 'error' event listener then throw.
  12671. if (type === 'error') {
  12672. if (!this._events.error ||
  12673. (isObject(this._events.error) && !this._events.error.length)) {
  12674. er = arguments[1];
  12675. if (er instanceof Error) {
  12676. throw er; // Unhandled 'error' event
  12677. } else {
  12678. // At least give some kind of context to the user
  12679. var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
  12680. err.context = er;
  12681. throw err;
  12682. }
  12683. }
  12684. }
  12685. handler = this._events[type];
  12686. if (isUndefined(handler))
  12687. return false;
  12688. if (isFunction(handler)) {
  12689. switch (arguments.length) {
  12690. // fast cases
  12691. case 1:
  12692. handler.call(this);
  12693. break;
  12694. case 2:
  12695. handler.call(this, arguments[1]);
  12696. break;
  12697. case 3:
  12698. handler.call(this, arguments[1], arguments[2]);
  12699. break;
  12700. // slower
  12701. default:
  12702. args = Array.prototype.slice.call(arguments, 1);
  12703. handler.apply(this, args);
  12704. }
  12705. } else if (isObject(handler)) {
  12706. args = Array.prototype.slice.call(arguments, 1);
  12707. listeners = handler.slice();
  12708. len = listeners.length;
  12709. for (i = 0; i < len; i++)
  12710. listeners[i].apply(this, args);
  12711. }
  12712. return true;
  12713. };
  12714. EventEmitter.prototype.addListener = function(type, listener) {
  12715. var m;
  12716. if (!isFunction(listener))
  12717. throw TypeError('listener must be a function');
  12718. if (!this._events)
  12719. this._events = {};
  12720. // To avoid recursion in the case that type === "newListener"! Before
  12721. // adding it to the listeners, first emit "newListener".
  12722. if (this._events.newListener)
  12723. this.emit('newListener', type,
  12724. isFunction(listener.listener) ?
  12725. listener.listener : listener);
  12726. if (!this._events[type])
  12727. // Optimize the case of one listener. Don't need the extra array object.
  12728. this._events[type] = listener;
  12729. else if (isObject(this._events[type]))
  12730. // If we've already got an array, just append.
  12731. this._events[type].push(listener);
  12732. else
  12733. // Adding the second element, need to change to array.
  12734. this._events[type] = [this._events[type], listener];
  12735. // Check for listener leak
  12736. if (isObject(this._events[type]) && !this._events[type].warned) {
  12737. if (!isUndefined(this._maxListeners)) {
  12738. m = this._maxListeners;
  12739. } else {
  12740. m = EventEmitter.defaultMaxListeners;
  12741. }
  12742. if (m && m > 0 && this._events[type].length > m) {
  12743. this._events[type].warned = true;
  12744. console.error('(node) warning: possible EventEmitter memory ' +
  12745. 'leak detected. %d listeners added. ' +
  12746. 'Use emitter.setMaxListeners() to increase limit.',
  12747. this._events[type].length);
  12748. if (typeof console.trace === 'function') {
  12749. // not supported in IE 10
  12750. console.trace();
  12751. }
  12752. }
  12753. }
  12754. return this;
  12755. };
  12756. EventEmitter.prototype.on = EventEmitter.prototype.addListener;
  12757. EventEmitter.prototype.once = function(type, listener) {
  12758. if (!isFunction(listener))
  12759. throw TypeError('listener must be a function');
  12760. var fired = false;
  12761. function g() {
  12762. this.removeListener(type, g);
  12763. if (!fired) {
  12764. fired = true;
  12765. listener.apply(this, arguments);
  12766. }
  12767. }
  12768. g.listener = listener;
  12769. this.on(type, g);
  12770. return this;
  12771. };
  12772. // emits a 'removeListener' event iff the listener was removed
  12773. EventEmitter.prototype.removeListener = function(type, listener) {
  12774. var list, position, length, i;
  12775. if (!isFunction(listener))
  12776. throw TypeError('listener must be a function');
  12777. if (!this._events || !this._events[type])
  12778. return this;
  12779. list = this._events[type];
  12780. length = list.length;
  12781. position = -1;
  12782. if (list === listener ||
  12783. (isFunction(list.listener) && list.listener === listener)) {
  12784. delete this._events[type];
  12785. if (this._events.removeListener)
  12786. this.emit('removeListener', type, listener);
  12787. } else if (isObject(list)) {
  12788. for (i = length; i-- > 0;) {
  12789. if (list[i] === listener ||
  12790. (list[i].listener && list[i].listener === listener)) {
  12791. position = i;
  12792. break;
  12793. }
  12794. }
  12795. if (position < 0)
  12796. return this;
  12797. if (list.length === 1) {
  12798. list.length = 0;
  12799. delete this._events[type];
  12800. } else {
  12801. list.splice(position, 1);
  12802. }
  12803. if (this._events.removeListener)
  12804. this.emit('removeListener', type, listener);
  12805. }
  12806. return this;
  12807. };
  12808. EventEmitter.prototype.removeAllListeners = function(type) {
  12809. var key, listeners;
  12810. if (!this._events)
  12811. return this;
  12812. // not listening for removeListener, no need to emit
  12813. if (!this._events.removeListener) {
  12814. if (arguments.length === 0)
  12815. this._events = {};
  12816. else if (this._events[type])
  12817. delete this._events[type];
  12818. return this;
  12819. }
  12820. // emit removeListener for all listeners on all events
  12821. if (arguments.length === 0) {
  12822. for (key in this._events) {
  12823. if (key === 'removeListener') continue;
  12824. this.removeAllListeners(key);
  12825. }
  12826. this.removeAllListeners('removeListener');
  12827. this._events = {};
  12828. return this;
  12829. }
  12830. listeners = this._events[type];
  12831. if (isFunction(listeners)) {
  12832. this.removeListener(type, listeners);
  12833. } else if (listeners) {
  12834. // LIFO order
  12835. while (listeners.length)
  12836. this.removeListener(type, listeners[listeners.length - 1]);
  12837. }
  12838. delete this._events[type];
  12839. return this;
  12840. };
  12841. EventEmitter.prototype.listeners = function(type) {
  12842. var ret;
  12843. if (!this._events || !this._events[type])
  12844. ret = [];
  12845. else if (isFunction(this._events[type]))
  12846. ret = [this._events[type]];
  12847. else
  12848. ret = this._events[type].slice();
  12849. return ret;
  12850. };
  12851. EventEmitter.prototype.listenerCount = function(type) {
  12852. if (this._events) {
  12853. var evlistener = this._events[type];
  12854. if (isFunction(evlistener))
  12855. return 1;
  12856. else if (evlistener)
  12857. return evlistener.length;
  12858. }
  12859. return 0;
  12860. };
  12861. EventEmitter.listenerCount = function(emitter, type) {
  12862. return emitter.listenerCount(type);
  12863. };
  12864. function isFunction(arg) {
  12865. return typeof arg === 'function';
  12866. }
  12867. function isNumber(arg) {
  12868. return typeof arg === 'number';
  12869. }
  12870. function isObject(arg) {
  12871. return typeof arg === 'object' && arg !== null;
  12872. }
  12873. function isUndefined(arg) {
  12874. return arg === void 0;
  12875. }
  12876. },{}],91:[function(require,module,exports){
  12877. (function (Buffer){
  12878. var md5 = require('create-hash/md5')
  12879. module.exports = EVP_BytesToKey
  12880. function EVP_BytesToKey (password, salt, keyLen, ivLen) {
  12881. if (!Buffer.isBuffer(password)) {
  12882. password = new Buffer(password, 'binary')
  12883. }
  12884. if (salt && !Buffer.isBuffer(salt)) {
  12885. salt = new Buffer(salt, 'binary')
  12886. }
  12887. keyLen = keyLen / 8
  12888. ivLen = ivLen || 0
  12889. var ki = 0
  12890. var ii = 0
  12891. var key = new Buffer(keyLen)
  12892. var iv = new Buffer(ivLen)
  12893. var addmd = 0
  12894. var md_buf
  12895. var i
  12896. var bufs = []
  12897. while (true) {
  12898. if (addmd++ > 0) {
  12899. bufs.push(md_buf)
  12900. }
  12901. bufs.push(password)
  12902. if (salt) {
  12903. bufs.push(salt)
  12904. }
  12905. md_buf = md5(Buffer.concat(bufs))
  12906. bufs = []
  12907. i = 0
  12908. if (keyLen > 0) {
  12909. while (true) {
  12910. if (keyLen === 0) {
  12911. break
  12912. }
  12913. if (i === md_buf.length) {
  12914. break
  12915. }
  12916. key[ki++] = md_buf[i]
  12917. keyLen--
  12918. i++
  12919. }
  12920. }
  12921. if (ivLen > 0 && i !== md_buf.length) {
  12922. while (true) {
  12923. if (ivLen === 0) {
  12924. break
  12925. }
  12926. if (i === md_buf.length) {
  12927. break
  12928. }
  12929. iv[ii++] = md_buf[i]
  12930. ivLen--
  12931. i++
  12932. }
  12933. }
  12934. if (keyLen === 0 && ivLen === 0) {
  12935. break
  12936. }
  12937. }
  12938. for (i = 0; i < md_buf.length; i++) {
  12939. md_buf[i] = 0
  12940. }
  12941. return {
  12942. key: key,
  12943. iv: iv
  12944. }
  12945. }
  12946. }).call(this,require("buffer").Buffer)
  12947. },{"buffer":54,"create-hash/md5":60}],92:[function(require,module,exports){
  12948. (function (Buffer){
  12949. 'use strict'
  12950. var Transform = require('stream').Transform
  12951. var inherits = require('inherits')
  12952. function HashBase (blockSize) {
  12953. Transform.call(this)
  12954. this._block = new Buffer(blockSize)
  12955. this._blockSize = blockSize
  12956. this._blockOffset = 0
  12957. this._length = [0, 0, 0, 0]
  12958. this._finalized = false
  12959. }
  12960. inherits(HashBase, Transform)
  12961. HashBase.prototype._transform = function (chunk, encoding, callback) {
  12962. var error = null
  12963. try {
  12964. if (encoding !== 'buffer') chunk = new Buffer(chunk, encoding)
  12965. this.update(chunk)
  12966. } catch (err) {
  12967. error = err
  12968. }
  12969. callback(error)
  12970. }
  12971. HashBase.prototype._flush = function (callback) {
  12972. var error = null
  12973. try {
  12974. this.push(this._digest())
  12975. } catch (err) {
  12976. error = err
  12977. }
  12978. callback(error)
  12979. }
  12980. HashBase.prototype.update = function (data, encoding) {
  12981. if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
  12982. if (this._finalized) throw new Error('Digest already called')
  12983. if (!Buffer.isBuffer(data)) data = new Buffer(data, encoding || 'binary')
  12984. // consume data
  12985. var block = this._block
  12986. var offset = 0
  12987. while (this._blockOffset + data.length - offset >= this._blockSize) {
  12988. for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]
  12989. this._update()
  12990. this._blockOffset = 0
  12991. }
  12992. while (offset < data.length) block[this._blockOffset++] = data[offset++]
  12993. // update length
  12994. for (var j = 0, carry = data.length * 8; carry > 0; ++j) {
  12995. this._length[j] += carry
  12996. carry = (this._length[j] / 0x0100000000) | 0
  12997. if (carry > 0) this._length[j] -= 0x0100000000 * carry
  12998. }
  12999. return this
  13000. }
  13001. HashBase.prototype._update = function (data) {
  13002. throw new Error('_update is not implemented')
  13003. }
  13004. HashBase.prototype.digest = function (encoding) {
  13005. if (this._finalized) throw new Error('Digest already called')
  13006. this._finalized = true
  13007. var digest = this._digest()
  13008. if (encoding !== undefined) digest = digest.toString(encoding)
  13009. return digest
  13010. }
  13011. HashBase.prototype._digest = function () {
  13012. throw new Error('_digest is not implemented')
  13013. }
  13014. module.exports = HashBase
  13015. }).call(this,require("buffer").Buffer)
  13016. },{"buffer":54,"inherits":108,"stream":157}],93:[function(require,module,exports){
  13017. var hash = exports;
  13018. hash.utils = require('./hash/utils');
  13019. hash.common = require('./hash/common');
  13020. hash.sha = require('./hash/sha');
  13021. hash.ripemd = require('./hash/ripemd');
  13022. hash.hmac = require('./hash/hmac');
  13023. // Proxy hash functions to the main object
  13024. hash.sha1 = hash.sha.sha1;
  13025. hash.sha256 = hash.sha.sha256;
  13026. hash.sha224 = hash.sha.sha224;
  13027. hash.sha384 = hash.sha.sha384;
  13028. hash.sha512 = hash.sha.sha512;
  13029. hash.ripemd160 = hash.ripemd.ripemd160;
  13030. },{"./hash/common":94,"./hash/hmac":95,"./hash/ripemd":96,"./hash/sha":97,"./hash/utils":104}],94:[function(require,module,exports){
  13031. 'use strict';
  13032. var utils = require('./utils');
  13033. var assert = require('minimalistic-assert');
  13034. function BlockHash() {
  13035. this.pending = null;
  13036. this.pendingTotal = 0;
  13037. this.blockSize = this.constructor.blockSize;
  13038. this.outSize = this.constructor.outSize;
  13039. this.hmacStrength = this.constructor.hmacStrength;
  13040. this.padLength = this.constructor.padLength / 8;
  13041. this.endian = 'big';
  13042. this._delta8 = this.blockSize / 8;
  13043. this._delta32 = this.blockSize / 32;
  13044. }
  13045. exports.BlockHash = BlockHash;
  13046. BlockHash.prototype.update = function update(msg, enc) {
  13047. // Convert message to array, pad it, and join into 32bit blocks
  13048. msg = utils.toArray(msg, enc);
  13049. if (!this.pending)
  13050. this.pending = msg;
  13051. else
  13052. this.pending = this.pending.concat(msg);
  13053. this.pendingTotal += msg.length;
  13054. // Enough data, try updating
  13055. if (this.pending.length >= this._delta8) {
  13056. msg = this.pending;
  13057. // Process pending data in blocks
  13058. var r = msg.length % this._delta8;
  13059. this.pending = msg.slice(msg.length - r, msg.length);
  13060. if (this.pending.length === 0)
  13061. this.pending = null;
  13062. msg = utils.join32(msg, 0, msg.length - r, this.endian);
  13063. for (var i = 0; i < msg.length; i += this._delta32)
  13064. this._update(msg, i, i + this._delta32);
  13065. }
  13066. return this;
  13067. };
  13068. BlockHash.prototype.digest = function digest(enc) {
  13069. this.update(this._pad());
  13070. assert(this.pending === null);
  13071. return this._digest(enc);
  13072. };
  13073. BlockHash.prototype._pad = function pad() {
  13074. var len = this.pendingTotal;
  13075. var bytes = this._delta8;
  13076. var k = bytes - ((len + this.padLength) % bytes);
  13077. var res = new Array(k + this.padLength);
  13078. res[0] = 0x80;
  13079. for (var i = 1; i < k; i++)
  13080. res[i] = 0;
  13081. // Append length
  13082. len <<= 3;
  13083. if (this.endian === 'big') {
  13084. for (var t = 8; t < this.padLength; t++)
  13085. res[i++] = 0;
  13086. res[i++] = 0;
  13087. res[i++] = 0;
  13088. res[i++] = 0;
  13089. res[i++] = 0;
  13090. res[i++] = (len >>> 24) & 0xff;
  13091. res[i++] = (len >>> 16) & 0xff;
  13092. res[i++] = (len >>> 8) & 0xff;
  13093. res[i++] = len & 0xff;
  13094. } else {
  13095. res[i++] = len & 0xff;
  13096. res[i++] = (len >>> 8) & 0xff;
  13097. res[i++] = (len >>> 16) & 0xff;
  13098. res[i++] = (len >>> 24) & 0xff;
  13099. res[i++] = 0;
  13100. res[i++] = 0;
  13101. res[i++] = 0;
  13102. res[i++] = 0;
  13103. for (t = 8; t < this.padLength; t++)
  13104. res[i++] = 0;
  13105. }
  13106. return res;
  13107. };
  13108. },{"./utils":104,"minimalistic-assert":112}],95:[function(require,module,exports){
  13109. 'use strict';
  13110. var utils = require('./utils');
  13111. var assert = require('minimalistic-assert');
  13112. function Hmac(hash, key, enc) {
  13113. if (!(this instanceof Hmac))
  13114. return new Hmac(hash, key, enc);
  13115. this.Hash = hash;
  13116. this.blockSize = hash.blockSize / 8;
  13117. this.outSize = hash.outSize / 8;
  13118. this.inner = null;
  13119. this.outer = null;
  13120. this._init(utils.toArray(key, enc));
  13121. }
  13122. module.exports = Hmac;
  13123. Hmac.prototype._init = function init(key) {
  13124. // Shorten key, if needed
  13125. if (key.length > this.blockSize)
  13126. key = new this.Hash().update(key).digest();
  13127. assert(key.length <= this.blockSize);
  13128. // Add padding to key
  13129. for (var i = key.length; i < this.blockSize; i++)
  13130. key.push(0);
  13131. for (i = 0; i < key.length; i++)
  13132. key[i] ^= 0x36;
  13133. this.inner = new this.Hash().update(key);
  13134. // 0x36 ^ 0x5c = 0x6a
  13135. for (i = 0; i < key.length; i++)
  13136. key[i] ^= 0x6a;
  13137. this.outer = new this.Hash().update(key);
  13138. };
  13139. Hmac.prototype.update = function update(msg, enc) {
  13140. this.inner.update(msg, enc);
  13141. return this;
  13142. };
  13143. Hmac.prototype.digest = function digest(enc) {
  13144. this.outer.update(this.inner.digest());
  13145. return this.outer.digest(enc);
  13146. };
  13147. },{"./utils":104,"minimalistic-assert":112}],96:[function(require,module,exports){
  13148. 'use strict';
  13149. var utils = require('./utils');
  13150. var common = require('./common');
  13151. var rotl32 = utils.rotl32;
  13152. var sum32 = utils.sum32;
  13153. var sum32_3 = utils.sum32_3;
  13154. var sum32_4 = utils.sum32_4;
  13155. var BlockHash = common.BlockHash;
  13156. function RIPEMD160() {
  13157. if (!(this instanceof RIPEMD160))
  13158. return new RIPEMD160();
  13159. BlockHash.call(this);
  13160. this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];
  13161. this.endian = 'little';
  13162. }
  13163. utils.inherits(RIPEMD160, BlockHash);
  13164. exports.ripemd160 = RIPEMD160;
  13165. RIPEMD160.blockSize = 512;
  13166. RIPEMD160.outSize = 160;
  13167. RIPEMD160.hmacStrength = 192;
  13168. RIPEMD160.padLength = 64;
  13169. RIPEMD160.prototype._update = function update(msg, start) {
  13170. var A = this.h[0];
  13171. var B = this.h[1];
  13172. var C = this.h[2];
  13173. var D = this.h[3];
  13174. var E = this.h[4];
  13175. var Ah = A;
  13176. var Bh = B;
  13177. var Ch = C;
  13178. var Dh = D;
  13179. var Eh = E;
  13180. for (var j = 0; j < 80; j++) {
  13181. var T = sum32(
  13182. rotl32(
  13183. sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),
  13184. s[j]),
  13185. E);
  13186. A = E;
  13187. E = D;
  13188. D = rotl32(C, 10);
  13189. C = B;
  13190. B = T;
  13191. T = sum32(
  13192. rotl32(
  13193. sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),
  13194. sh[j]),
  13195. Eh);
  13196. Ah = Eh;
  13197. Eh = Dh;
  13198. Dh = rotl32(Ch, 10);
  13199. Ch = Bh;
  13200. Bh = T;
  13201. }
  13202. T = sum32_3(this.h[1], C, Dh);
  13203. this.h[1] = sum32_3(this.h[2], D, Eh);
  13204. this.h[2] = sum32_3(this.h[3], E, Ah);
  13205. this.h[3] = sum32_3(this.h[4], A, Bh);
  13206. this.h[4] = sum32_3(this.h[0], B, Ch);
  13207. this.h[0] = T;
  13208. };
  13209. RIPEMD160.prototype._digest = function digest(enc) {
  13210. if (enc === 'hex')
  13211. return utils.toHex32(this.h, 'little');
  13212. else
  13213. return utils.split32(this.h, 'little');
  13214. };
  13215. function f(j, x, y, z) {
  13216. if (j <= 15)
  13217. return x ^ y ^ z;
  13218. else if (j <= 31)
  13219. return (x & y) | ((~x) & z);
  13220. else if (j <= 47)
  13221. return (x | (~y)) ^ z;
  13222. else if (j <= 63)
  13223. return (x & z) | (y & (~z));
  13224. else
  13225. return x ^ (y | (~z));
  13226. }
  13227. function K(j) {
  13228. if (j <= 15)
  13229. return 0x00000000;
  13230. else if (j <= 31)
  13231. return 0x5a827999;
  13232. else if (j <= 47)
  13233. return 0x6ed9eba1;
  13234. else if (j <= 63)
  13235. return 0x8f1bbcdc;
  13236. else
  13237. return 0xa953fd4e;
  13238. }
  13239. function Kh(j) {
  13240. if (j <= 15)
  13241. return 0x50a28be6;
  13242. else if (j <= 31)
  13243. return 0x5c4dd124;
  13244. else if (j <= 47)
  13245. return 0x6d703ef3;
  13246. else if (j <= 63)
  13247. return 0x7a6d76e9;
  13248. else
  13249. return 0x00000000;
  13250. }
  13251. var r = [
  13252. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
  13253. 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,
  13254. 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,
  13255. 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,
  13256. 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13
  13257. ];
  13258. var rh = [
  13259. 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,
  13260. 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,
  13261. 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,
  13262. 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,
  13263. 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11
  13264. ];
  13265. var s = [
  13266. 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,
  13267. 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,
  13268. 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,
  13269. 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,
  13270. 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6
  13271. ];
  13272. var sh = [
  13273. 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,
  13274. 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,
  13275. 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,
  13276. 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,
  13277. 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11
  13278. ];
  13279. },{"./common":94,"./utils":104}],97:[function(require,module,exports){
  13280. 'use strict';
  13281. exports.sha1 = require('./sha/1');
  13282. exports.sha224 = require('./sha/224');
  13283. exports.sha256 = require('./sha/256');
  13284. exports.sha384 = require('./sha/384');
  13285. exports.sha512 = require('./sha/512');
  13286. },{"./sha/1":98,"./sha/224":99,"./sha/256":100,"./sha/384":101,"./sha/512":102}],98:[function(require,module,exports){
  13287. 'use strict';
  13288. var utils = require('../utils');
  13289. var common = require('../common');
  13290. var shaCommon = require('./common');
  13291. var rotl32 = utils.rotl32;
  13292. var sum32 = utils.sum32;
  13293. var sum32_5 = utils.sum32_5;
  13294. var ft_1 = shaCommon.ft_1;
  13295. var BlockHash = common.BlockHash;
  13296. var sha1_K = [
  13297. 0x5A827999, 0x6ED9EBA1,
  13298. 0x8F1BBCDC, 0xCA62C1D6
  13299. ];
  13300. function SHA1() {
  13301. if (!(this instanceof SHA1))
  13302. return new SHA1();
  13303. BlockHash.call(this);
  13304. this.h = [
  13305. 0x67452301, 0xefcdab89, 0x98badcfe,
  13306. 0x10325476, 0xc3d2e1f0 ];
  13307. this.W = new Array(80);
  13308. }
  13309. utils.inherits(SHA1, BlockHash);
  13310. module.exports = SHA1;
  13311. SHA1.blockSize = 512;
  13312. SHA1.outSize = 160;
  13313. SHA1.hmacStrength = 80;
  13314. SHA1.padLength = 64;
  13315. SHA1.prototype._update = function _update(msg, start) {
  13316. var W = this.W;
  13317. for (var i = 0; i < 16; i++)
  13318. W[i] = msg[start + i];
  13319. for(; i < W.length; i++)
  13320. W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);
  13321. var a = this.h[0];
  13322. var b = this.h[1];
  13323. var c = this.h[2];
  13324. var d = this.h[3];
  13325. var e = this.h[4];
  13326. for (i = 0; i < W.length; i++) {
  13327. var s = ~~(i / 20);
  13328. var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);
  13329. e = d;
  13330. d = c;
  13331. c = rotl32(b, 30);
  13332. b = a;
  13333. a = t;
  13334. }
  13335. this.h[0] = sum32(this.h[0], a);
  13336. this.h[1] = sum32(this.h[1], b);
  13337. this.h[2] = sum32(this.h[2], c);
  13338. this.h[3] = sum32(this.h[3], d);
  13339. this.h[4] = sum32(this.h[4], e);
  13340. };
  13341. SHA1.prototype._digest = function digest(enc) {
  13342. if (enc === 'hex')
  13343. return utils.toHex32(this.h, 'big');
  13344. else
  13345. return utils.split32(this.h, 'big');
  13346. };
  13347. },{"../common":94,"../utils":104,"./common":103}],99:[function(require,module,exports){
  13348. 'use strict';
  13349. var utils = require('../utils');
  13350. var SHA256 = require('./256');
  13351. function SHA224() {
  13352. if (!(this instanceof SHA224))
  13353. return new SHA224();
  13354. SHA256.call(this);
  13355. this.h = [
  13356. 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,
  13357. 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];
  13358. }
  13359. utils.inherits(SHA224, SHA256);
  13360. module.exports = SHA224;
  13361. SHA224.blockSize = 512;
  13362. SHA224.outSize = 224;
  13363. SHA224.hmacStrength = 192;
  13364. SHA224.padLength = 64;
  13365. SHA224.prototype._digest = function digest(enc) {
  13366. // Just truncate output
  13367. if (enc === 'hex')
  13368. return utils.toHex32(this.h.slice(0, 7), 'big');
  13369. else
  13370. return utils.split32(this.h.slice(0, 7), 'big');
  13371. };
  13372. },{"../utils":104,"./256":100}],100:[function(require,module,exports){
  13373. 'use strict';
  13374. var utils = require('../utils');
  13375. var common = require('../common');
  13376. var shaCommon = require('./common');
  13377. var assert = require('minimalistic-assert');
  13378. var sum32 = utils.sum32;
  13379. var sum32_4 = utils.sum32_4;
  13380. var sum32_5 = utils.sum32_5;
  13381. var ch32 = shaCommon.ch32;
  13382. var maj32 = shaCommon.maj32;
  13383. var s0_256 = shaCommon.s0_256;
  13384. var s1_256 = shaCommon.s1_256;
  13385. var g0_256 = shaCommon.g0_256;
  13386. var g1_256 = shaCommon.g1_256;
  13387. var BlockHash = common.BlockHash;
  13388. var sha256_K = [
  13389. 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
  13390. 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
  13391. 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
  13392. 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
  13393. 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,
  13394. 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
  13395. 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,
  13396. 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
  13397. 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
  13398. 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
  13399. 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,
  13400. 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
  13401. 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,
  13402. 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
  13403. 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
  13404. 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
  13405. ];
  13406. function SHA256() {
  13407. if (!(this instanceof SHA256))
  13408. return new SHA256();
  13409. BlockHash.call(this);
  13410. this.h = [
  13411. 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,
  13412. 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19
  13413. ];
  13414. this.k = sha256_K;
  13415. this.W = new Array(64);
  13416. }
  13417. utils.inherits(SHA256, BlockHash);
  13418. module.exports = SHA256;
  13419. SHA256.blockSize = 512;
  13420. SHA256.outSize = 256;
  13421. SHA256.hmacStrength = 192;
  13422. SHA256.padLength = 64;
  13423. SHA256.prototype._update = function _update(msg, start) {
  13424. var W = this.W;
  13425. for (var i = 0; i < 16; i++)
  13426. W[i] = msg[start + i];
  13427. for (; i < W.length; i++)
  13428. W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);
  13429. var a = this.h[0];
  13430. var b = this.h[1];
  13431. var c = this.h[2];
  13432. var d = this.h[3];
  13433. var e = this.h[4];
  13434. var f = this.h[5];
  13435. var g = this.h[6];
  13436. var h = this.h[7];
  13437. assert(this.k.length === W.length);
  13438. for (i = 0; i < W.length; i++) {
  13439. var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);
  13440. var T2 = sum32(s0_256(a), maj32(a, b, c));
  13441. h = g;
  13442. g = f;
  13443. f = e;
  13444. e = sum32(d, T1);
  13445. d = c;
  13446. c = b;
  13447. b = a;
  13448. a = sum32(T1, T2);
  13449. }
  13450. this.h[0] = sum32(this.h[0], a);
  13451. this.h[1] = sum32(this.h[1], b);
  13452. this.h[2] = sum32(this.h[2], c);
  13453. this.h[3] = sum32(this.h[3], d);
  13454. this.h[4] = sum32(this.h[4], e);
  13455. this.h[5] = sum32(this.h[5], f);
  13456. this.h[6] = sum32(this.h[6], g);
  13457. this.h[7] = sum32(this.h[7], h);
  13458. };
  13459. SHA256.prototype._digest = function digest(enc) {
  13460. if (enc === 'hex')
  13461. return utils.toHex32(this.h, 'big');
  13462. else
  13463. return utils.split32(this.h, 'big');
  13464. };
  13465. },{"../common":94,"../utils":104,"./common":103,"minimalistic-assert":112}],101:[function(require,module,exports){
  13466. 'use strict';
  13467. var utils = require('../utils');
  13468. var SHA512 = require('./512');
  13469. function SHA384() {
  13470. if (!(this instanceof SHA384))
  13471. return new SHA384();
  13472. SHA512.call(this);
  13473. this.h = [
  13474. 0xcbbb9d5d, 0xc1059ed8,
  13475. 0x629a292a, 0x367cd507,
  13476. 0x9159015a, 0x3070dd17,
  13477. 0x152fecd8, 0xf70e5939,
  13478. 0x67332667, 0xffc00b31,
  13479. 0x8eb44a87, 0x68581511,
  13480. 0xdb0c2e0d, 0x64f98fa7,
  13481. 0x47b5481d, 0xbefa4fa4 ];
  13482. }
  13483. utils.inherits(SHA384, SHA512);
  13484. module.exports = SHA384;
  13485. SHA384.blockSize = 1024;
  13486. SHA384.outSize = 384;
  13487. SHA384.hmacStrength = 192;
  13488. SHA384.padLength = 128;
  13489. SHA384.prototype._digest = function digest(enc) {
  13490. if (enc === 'hex')
  13491. return utils.toHex32(this.h.slice(0, 12), 'big');
  13492. else
  13493. return utils.split32(this.h.slice(0, 12), 'big');
  13494. };
  13495. },{"../utils":104,"./512":102}],102:[function(require,module,exports){
  13496. 'use strict';
  13497. var utils = require('../utils');
  13498. var common = require('../common');
  13499. var assert = require('minimalistic-assert');
  13500. var rotr64_hi = utils.rotr64_hi;
  13501. var rotr64_lo = utils.rotr64_lo;
  13502. var shr64_hi = utils.shr64_hi;
  13503. var shr64_lo = utils.shr64_lo;
  13504. var sum64 = utils.sum64;
  13505. var sum64_hi = utils.sum64_hi;
  13506. var sum64_lo = utils.sum64_lo;
  13507. var sum64_4_hi = utils.sum64_4_hi;
  13508. var sum64_4_lo = utils.sum64_4_lo;
  13509. var sum64_5_hi = utils.sum64_5_hi;
  13510. var sum64_5_lo = utils.sum64_5_lo;
  13511. var BlockHash = common.BlockHash;
  13512. var sha512_K = [
  13513. 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,
  13514. 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,
  13515. 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,
  13516. 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,
  13517. 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,
  13518. 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,
  13519. 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,
  13520. 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,
  13521. 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,
  13522. 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,
  13523. 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,
  13524. 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,
  13525. 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,
  13526. 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,
  13527. 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,
  13528. 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,
  13529. 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,
  13530. 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,
  13531. 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,
  13532. 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,
  13533. 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,
  13534. 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,
  13535. 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,
  13536. 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,
  13537. 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,
  13538. 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,
  13539. 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,
  13540. 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,
  13541. 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,
  13542. 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,
  13543. 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,
  13544. 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,
  13545. 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,
  13546. 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,
  13547. 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,
  13548. 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,
  13549. 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,
  13550. 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,
  13551. 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,
  13552. 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817
  13553. ];
  13554. function SHA512() {
  13555. if (!(this instanceof SHA512))
  13556. return new SHA512();
  13557. BlockHash.call(this);
  13558. this.h = [
  13559. 0x6a09e667, 0xf3bcc908,
  13560. 0xbb67ae85, 0x84caa73b,
  13561. 0x3c6ef372, 0xfe94f82b,
  13562. 0xa54ff53a, 0x5f1d36f1,
  13563. 0x510e527f, 0xade682d1,
  13564. 0x9b05688c, 0x2b3e6c1f,
  13565. 0x1f83d9ab, 0xfb41bd6b,
  13566. 0x5be0cd19, 0x137e2179 ];
  13567. this.k = sha512_K;
  13568. this.W = new Array(160);
  13569. }
  13570. utils.inherits(SHA512, BlockHash);
  13571. module.exports = SHA512;
  13572. SHA512.blockSize = 1024;
  13573. SHA512.outSize = 512;
  13574. SHA512.hmacStrength = 192;
  13575. SHA512.padLength = 128;
  13576. SHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {
  13577. var W = this.W;
  13578. // 32 x 32bit words
  13579. for (var i = 0; i < 32; i++)
  13580. W[i] = msg[start + i];
  13581. for (; i < W.length; i += 2) {
  13582. var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2
  13583. var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);
  13584. var c1_hi = W[i - 14]; // i - 7
  13585. var c1_lo = W[i - 13];
  13586. var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15
  13587. var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);
  13588. var c3_hi = W[i - 32]; // i - 16
  13589. var c3_lo = W[i - 31];
  13590. W[i] = sum64_4_hi(
  13591. c0_hi, c0_lo,
  13592. c1_hi, c1_lo,
  13593. c2_hi, c2_lo,
  13594. c3_hi, c3_lo);
  13595. W[i + 1] = sum64_4_lo(
  13596. c0_hi, c0_lo,
  13597. c1_hi, c1_lo,
  13598. c2_hi, c2_lo,
  13599. c3_hi, c3_lo);
  13600. }
  13601. };
  13602. SHA512.prototype._update = function _update(msg, start) {
  13603. this._prepareBlock(msg, start);
  13604. var W = this.W;
  13605. var ah = this.h[0];
  13606. var al = this.h[1];
  13607. var bh = this.h[2];
  13608. var bl = this.h[3];
  13609. var ch = this.h[4];
  13610. var cl = this.h[5];
  13611. var dh = this.h[6];
  13612. var dl = this.h[7];
  13613. var eh = this.h[8];
  13614. var el = this.h[9];
  13615. var fh = this.h[10];
  13616. var fl = this.h[11];
  13617. var gh = this.h[12];
  13618. var gl = this.h[13];
  13619. var hh = this.h[14];
  13620. var hl = this.h[15];
  13621. assert(this.k.length === W.length);
  13622. for (var i = 0; i < W.length; i += 2) {
  13623. var c0_hi = hh;
  13624. var c0_lo = hl;
  13625. var c1_hi = s1_512_hi(eh, el);
  13626. var c1_lo = s1_512_lo(eh, el);
  13627. var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);
  13628. var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);
  13629. var c3_hi = this.k[i];
  13630. var c3_lo = this.k[i + 1];
  13631. var c4_hi = W[i];
  13632. var c4_lo = W[i + 1];
  13633. var T1_hi = sum64_5_hi(
  13634. c0_hi, c0_lo,
  13635. c1_hi, c1_lo,
  13636. c2_hi, c2_lo,
  13637. c3_hi, c3_lo,
  13638. c4_hi, c4_lo);
  13639. var T1_lo = sum64_5_lo(
  13640. c0_hi, c0_lo,
  13641. c1_hi, c1_lo,
  13642. c2_hi, c2_lo,
  13643. c3_hi, c3_lo,
  13644. c4_hi, c4_lo);
  13645. c0_hi = s0_512_hi(ah, al);
  13646. c0_lo = s0_512_lo(ah, al);
  13647. c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);
  13648. c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);
  13649. var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);
  13650. var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);
  13651. hh = gh;
  13652. hl = gl;
  13653. gh = fh;
  13654. gl = fl;
  13655. fh = eh;
  13656. fl = el;
  13657. eh = sum64_hi(dh, dl, T1_hi, T1_lo);
  13658. el = sum64_lo(dl, dl, T1_hi, T1_lo);
  13659. dh = ch;
  13660. dl = cl;
  13661. ch = bh;
  13662. cl = bl;
  13663. bh = ah;
  13664. bl = al;
  13665. ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);
  13666. al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);
  13667. }
  13668. sum64(this.h, 0, ah, al);
  13669. sum64(this.h, 2, bh, bl);
  13670. sum64(this.h, 4, ch, cl);
  13671. sum64(this.h, 6, dh, dl);
  13672. sum64(this.h, 8, eh, el);
  13673. sum64(this.h, 10, fh, fl);
  13674. sum64(this.h, 12, gh, gl);
  13675. sum64(this.h, 14, hh, hl);
  13676. };
  13677. SHA512.prototype._digest = function digest(enc) {
  13678. if (enc === 'hex')
  13679. return utils.toHex32(this.h, 'big');
  13680. else
  13681. return utils.split32(this.h, 'big');
  13682. };
  13683. function ch64_hi(xh, xl, yh, yl, zh) {
  13684. var r = (xh & yh) ^ ((~xh) & zh);
  13685. if (r < 0)
  13686. r += 0x100000000;
  13687. return r;
  13688. }
  13689. function ch64_lo(xh, xl, yh, yl, zh, zl) {
  13690. var r = (xl & yl) ^ ((~xl) & zl);
  13691. if (r < 0)
  13692. r += 0x100000000;
  13693. return r;
  13694. }
  13695. function maj64_hi(xh, xl, yh, yl, zh) {
  13696. var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);
  13697. if (r < 0)
  13698. r += 0x100000000;
  13699. return r;
  13700. }
  13701. function maj64_lo(xh, xl, yh, yl, zh, zl) {
  13702. var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);
  13703. if (r < 0)
  13704. r += 0x100000000;
  13705. return r;
  13706. }
  13707. function s0_512_hi(xh, xl) {
  13708. var c0_hi = rotr64_hi(xh, xl, 28);
  13709. var c1_hi = rotr64_hi(xl, xh, 2); // 34
  13710. var c2_hi = rotr64_hi(xl, xh, 7); // 39
  13711. var r = c0_hi ^ c1_hi ^ c2_hi;
  13712. if (r < 0)
  13713. r += 0x100000000;
  13714. return r;
  13715. }
  13716. function s0_512_lo(xh, xl) {
  13717. var c0_lo = rotr64_lo(xh, xl, 28);
  13718. var c1_lo = rotr64_lo(xl, xh, 2); // 34
  13719. var c2_lo = rotr64_lo(xl, xh, 7); // 39
  13720. var r = c0_lo ^ c1_lo ^ c2_lo;
  13721. if (r < 0)
  13722. r += 0x100000000;
  13723. return r;
  13724. }
  13725. function s1_512_hi(xh, xl) {
  13726. var c0_hi = rotr64_hi(xh, xl, 14);
  13727. var c1_hi = rotr64_hi(xh, xl, 18);
  13728. var c2_hi = rotr64_hi(xl, xh, 9); // 41
  13729. var r = c0_hi ^ c1_hi ^ c2_hi;
  13730. if (r < 0)
  13731. r += 0x100000000;
  13732. return r;
  13733. }
  13734. function s1_512_lo(xh, xl) {
  13735. var c0_lo = rotr64_lo(xh, xl, 14);
  13736. var c1_lo = rotr64_lo(xh, xl, 18);
  13737. var c2_lo = rotr64_lo(xl, xh, 9); // 41
  13738. var r = c0_lo ^ c1_lo ^ c2_lo;
  13739. if (r < 0)
  13740. r += 0x100000000;
  13741. return r;
  13742. }
  13743. function g0_512_hi(xh, xl) {
  13744. var c0_hi = rotr64_hi(xh, xl, 1);
  13745. var c1_hi = rotr64_hi(xh, xl, 8);
  13746. var c2_hi = shr64_hi(xh, xl, 7);
  13747. var r = c0_hi ^ c1_hi ^ c2_hi;
  13748. if (r < 0)
  13749. r += 0x100000000;
  13750. return r;
  13751. }
  13752. function g0_512_lo(xh, xl) {
  13753. var c0_lo = rotr64_lo(xh, xl, 1);
  13754. var c1_lo = rotr64_lo(xh, xl, 8);
  13755. var c2_lo = shr64_lo(xh, xl, 7);
  13756. var r = c0_lo ^ c1_lo ^ c2_lo;
  13757. if (r < 0)
  13758. r += 0x100000000;
  13759. return r;
  13760. }
  13761. function g1_512_hi(xh, xl) {
  13762. var c0_hi = rotr64_hi(xh, xl, 19);
  13763. var c1_hi = rotr64_hi(xl, xh, 29); // 61
  13764. var c2_hi = shr64_hi(xh, xl, 6);
  13765. var r = c0_hi ^ c1_hi ^ c2_hi;
  13766. if (r < 0)
  13767. r += 0x100000000;
  13768. return r;
  13769. }
  13770. function g1_512_lo(xh, xl) {
  13771. var c0_lo = rotr64_lo(xh, xl, 19);
  13772. var c1_lo = rotr64_lo(xl, xh, 29); // 61
  13773. var c2_lo = shr64_lo(xh, xl, 6);
  13774. var r = c0_lo ^ c1_lo ^ c2_lo;
  13775. if (r < 0)
  13776. r += 0x100000000;
  13777. return r;
  13778. }
  13779. },{"../common":94,"../utils":104,"minimalistic-assert":112}],103:[function(require,module,exports){
  13780. 'use strict';
  13781. var utils = require('../utils');
  13782. var rotr32 = utils.rotr32;
  13783. function ft_1(s, x, y, z) {
  13784. if (s === 0)
  13785. return ch32(x, y, z);
  13786. if (s === 1 || s === 3)
  13787. return p32(x, y, z);
  13788. if (s === 2)
  13789. return maj32(x, y, z);
  13790. }
  13791. exports.ft_1 = ft_1;
  13792. function ch32(x, y, z) {
  13793. return (x & y) ^ ((~x) & z);
  13794. }
  13795. exports.ch32 = ch32;
  13796. function maj32(x, y, z) {
  13797. return (x & y) ^ (x & z) ^ (y & z);
  13798. }
  13799. exports.maj32 = maj32;
  13800. function p32(x, y, z) {
  13801. return x ^ y ^ z;
  13802. }
  13803. exports.p32 = p32;
  13804. function s0_256(x) {
  13805. return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);
  13806. }
  13807. exports.s0_256 = s0_256;
  13808. function s1_256(x) {
  13809. return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);
  13810. }
  13811. exports.s1_256 = s1_256;
  13812. function g0_256(x) {
  13813. return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);
  13814. }
  13815. exports.g0_256 = g0_256;
  13816. function g1_256(x) {
  13817. return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);
  13818. }
  13819. exports.g1_256 = g1_256;
  13820. },{"../utils":104}],104:[function(require,module,exports){
  13821. 'use strict';
  13822. var assert = require('minimalistic-assert');
  13823. var inherits = require('inherits');
  13824. exports.inherits = inherits;
  13825. function toArray(msg, enc) {
  13826. if (Array.isArray(msg))
  13827. return msg.slice();
  13828. if (!msg)
  13829. return [];
  13830. var res = [];
  13831. if (typeof msg === 'string') {
  13832. if (!enc) {
  13833. for (var i = 0; i < msg.length; i++) {
  13834. var c = msg.charCodeAt(i);
  13835. var hi = c >> 8;
  13836. var lo = c & 0xff;
  13837. if (hi)
  13838. res.push(hi, lo);
  13839. else
  13840. res.push(lo);
  13841. }
  13842. } else if (enc === 'hex') {
  13843. msg = msg.replace(/[^a-z0-9]+/ig, '');
  13844. if (msg.length % 2 !== 0)
  13845. msg = '0' + msg;
  13846. for (i = 0; i < msg.length; i += 2)
  13847. res.push(parseInt(msg[i] + msg[i + 1], 16));
  13848. }
  13849. } else {
  13850. for (i = 0; i < msg.length; i++)
  13851. res[i] = msg[i] | 0;
  13852. }
  13853. return res;
  13854. }
  13855. exports.toArray = toArray;
  13856. function toHex(msg) {
  13857. var res = '';
  13858. for (var i = 0; i < msg.length; i++)
  13859. res += zero2(msg[i].toString(16));
  13860. return res;
  13861. }
  13862. exports.toHex = toHex;
  13863. function htonl(w) {
  13864. var res = (w >>> 24) |
  13865. ((w >>> 8) & 0xff00) |
  13866. ((w << 8) & 0xff0000) |
  13867. ((w & 0xff) << 24);
  13868. return res >>> 0;
  13869. }
  13870. exports.htonl = htonl;
  13871. function toHex32(msg, endian) {
  13872. var res = '';
  13873. for (var i = 0; i < msg.length; i++) {
  13874. var w = msg[i];
  13875. if (endian === 'little')
  13876. w = htonl(w);
  13877. res += zero8(w.toString(16));
  13878. }
  13879. return res;
  13880. }
  13881. exports.toHex32 = toHex32;
  13882. function zero2(word) {
  13883. if (word.length === 1)
  13884. return '0' + word;
  13885. else
  13886. return word;
  13887. }
  13888. exports.zero2 = zero2;
  13889. function zero8(word) {
  13890. if (word.length === 7)
  13891. return '0' + word;
  13892. else if (word.length === 6)
  13893. return '00' + word;
  13894. else if (word.length === 5)
  13895. return '000' + word;
  13896. else if (word.length === 4)
  13897. return '0000' + word;
  13898. else if (word.length === 3)
  13899. return '00000' + word;
  13900. else if (word.length === 2)
  13901. return '000000' + word;
  13902. else if (word.length === 1)
  13903. return '0000000' + word;
  13904. else
  13905. return word;
  13906. }
  13907. exports.zero8 = zero8;
  13908. function join32(msg, start, end, endian) {
  13909. var len = end - start;
  13910. assert(len % 4 === 0);
  13911. var res = new Array(len / 4);
  13912. for (var i = 0, k = start; i < res.length; i++, k += 4) {
  13913. var w;
  13914. if (endian === 'big')
  13915. w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];
  13916. else
  13917. w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];
  13918. res[i] = w >>> 0;
  13919. }
  13920. return res;
  13921. }
  13922. exports.join32 = join32;
  13923. function split32(msg, endian) {
  13924. var res = new Array(msg.length * 4);
  13925. for (var i = 0, k = 0; i < msg.length; i++, k += 4) {
  13926. var m = msg[i];
  13927. if (endian === 'big') {
  13928. res[k] = m >>> 24;
  13929. res[k + 1] = (m >>> 16) & 0xff;
  13930. res[k + 2] = (m >>> 8) & 0xff;
  13931. res[k + 3] = m & 0xff;
  13932. } else {
  13933. res[k + 3] = m >>> 24;
  13934. res[k + 2] = (m >>> 16) & 0xff;
  13935. res[k + 1] = (m >>> 8) & 0xff;
  13936. res[k] = m & 0xff;
  13937. }
  13938. }
  13939. return res;
  13940. }
  13941. exports.split32 = split32;
  13942. function rotr32(w, b) {
  13943. return (w >>> b) | (w << (32 - b));
  13944. }
  13945. exports.rotr32 = rotr32;
  13946. function rotl32(w, b) {
  13947. return (w << b) | (w >>> (32 - b));
  13948. }
  13949. exports.rotl32 = rotl32;
  13950. function sum32(a, b) {
  13951. return (a + b) >>> 0;
  13952. }
  13953. exports.sum32 = sum32;
  13954. function sum32_3(a, b, c) {
  13955. return (a + b + c) >>> 0;
  13956. }
  13957. exports.sum32_3 = sum32_3;
  13958. function sum32_4(a, b, c, d) {
  13959. return (a + b + c + d) >>> 0;
  13960. }
  13961. exports.sum32_4 = sum32_4;
  13962. function sum32_5(a, b, c, d, e) {
  13963. return (a + b + c + d + e) >>> 0;
  13964. }
  13965. exports.sum32_5 = sum32_5;
  13966. function sum64(buf, pos, ah, al) {
  13967. var bh = buf[pos];
  13968. var bl = buf[pos + 1];
  13969. var lo = (al + bl) >>> 0;
  13970. var hi = (lo < al ? 1 : 0) + ah + bh;
  13971. buf[pos] = hi >>> 0;
  13972. buf[pos + 1] = lo;
  13973. }
  13974. exports.sum64 = sum64;
  13975. function sum64_hi(ah, al, bh, bl) {
  13976. var lo = (al + bl) >>> 0;
  13977. var hi = (lo < al ? 1 : 0) + ah + bh;
  13978. return hi >>> 0;
  13979. }
  13980. exports.sum64_hi = sum64_hi;
  13981. function sum64_lo(ah, al, bh, bl) {
  13982. var lo = al + bl;
  13983. return lo >>> 0;
  13984. }
  13985. exports.sum64_lo = sum64_lo;
  13986. function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {
  13987. var carry = 0;
  13988. var lo = al;
  13989. lo = (lo + bl) >>> 0;
  13990. carry += lo < al ? 1 : 0;
  13991. lo = (lo + cl) >>> 0;
  13992. carry += lo < cl ? 1 : 0;
  13993. lo = (lo + dl) >>> 0;
  13994. carry += lo < dl ? 1 : 0;
  13995. var hi = ah + bh + ch + dh + carry;
  13996. return hi >>> 0;
  13997. }
  13998. exports.sum64_4_hi = sum64_4_hi;
  13999. function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {
  14000. var lo = al + bl + cl + dl;
  14001. return lo >>> 0;
  14002. }
  14003. exports.sum64_4_lo = sum64_4_lo;
  14004. function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
  14005. var carry = 0;
  14006. var lo = al;
  14007. lo = (lo + bl) >>> 0;
  14008. carry += lo < al ? 1 : 0;
  14009. lo = (lo + cl) >>> 0;
  14010. carry += lo < cl ? 1 : 0;
  14011. lo = (lo + dl) >>> 0;
  14012. carry += lo < dl ? 1 : 0;
  14013. lo = (lo + el) >>> 0;
  14014. carry += lo < el ? 1 : 0;
  14015. var hi = ah + bh + ch + dh + eh + carry;
  14016. return hi >>> 0;
  14017. }
  14018. exports.sum64_5_hi = sum64_5_hi;
  14019. function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
  14020. var lo = al + bl + cl + dl + el;
  14021. return lo >>> 0;
  14022. }
  14023. exports.sum64_5_lo = sum64_5_lo;
  14024. function rotr64_hi(ah, al, num) {
  14025. var r = (al << (32 - num)) | (ah >>> num);
  14026. return r >>> 0;
  14027. }
  14028. exports.rotr64_hi = rotr64_hi;
  14029. function rotr64_lo(ah, al, num) {
  14030. var r = (ah << (32 - num)) | (al >>> num);
  14031. return r >>> 0;
  14032. }
  14033. exports.rotr64_lo = rotr64_lo;
  14034. function shr64_hi(ah, al, num) {
  14035. return ah >>> num;
  14036. }
  14037. exports.shr64_hi = shr64_hi;
  14038. function shr64_lo(ah, al, num) {
  14039. var r = (ah << (32 - num)) | (al >>> num);
  14040. return r >>> 0;
  14041. }
  14042. exports.shr64_lo = shr64_lo;
  14043. },{"inherits":108,"minimalistic-assert":112}],105:[function(require,module,exports){
  14044. 'use strict';
  14045. var hash = require('hash.js');
  14046. var utils = require('minimalistic-crypto-utils');
  14047. var assert = require('minimalistic-assert');
  14048. function HmacDRBG(options) {
  14049. if (!(this instanceof HmacDRBG))
  14050. return new HmacDRBG(options);
  14051. this.hash = options.hash;
  14052. this.predResist = !!options.predResist;
  14053. this.outLen = this.hash.outSize;
  14054. this.minEntropy = options.minEntropy || this.hash.hmacStrength;
  14055. this._reseed = null;
  14056. this.reseedInterval = null;
  14057. this.K = null;
  14058. this.V = null;
  14059. var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');
  14060. var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');
  14061. var pers = utils.toArray(options.pers, options.persEnc || 'hex');
  14062. assert(entropy.length >= (this.minEntropy / 8),
  14063. 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
  14064. this._init(entropy, nonce, pers);
  14065. }
  14066. module.exports = HmacDRBG;
  14067. HmacDRBG.prototype._init = function init(entropy, nonce, pers) {
  14068. var seed = entropy.concat(nonce).concat(pers);
  14069. this.K = new Array(this.outLen / 8);
  14070. this.V = new Array(this.outLen / 8);
  14071. for (var i = 0; i < this.V.length; i++) {
  14072. this.K[i] = 0x00;
  14073. this.V[i] = 0x01;
  14074. }
  14075. this._update(seed);
  14076. this._reseed = 1;
  14077. this.reseedInterval = 0x1000000000000; // 2^48
  14078. };
  14079. HmacDRBG.prototype._hmac = function hmac() {
  14080. return new hash.hmac(this.hash, this.K);
  14081. };
  14082. HmacDRBG.prototype._update = function update(seed) {
  14083. var kmac = this._hmac()
  14084. .update(this.V)
  14085. .update([ 0x00 ]);
  14086. if (seed)
  14087. kmac = kmac.update(seed);
  14088. this.K = kmac.digest();
  14089. this.V = this._hmac().update(this.V).digest();
  14090. if (!seed)
  14091. return;
  14092. this.K = this._hmac()
  14093. .update(this.V)
  14094. .update([ 0x01 ])
  14095. .update(seed)
  14096. .digest();
  14097. this.V = this._hmac().update(this.V).digest();
  14098. };
  14099. HmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {
  14100. // Optional entropy enc
  14101. if (typeof entropyEnc !== 'string') {
  14102. addEnc = add;
  14103. add = entropyEnc;
  14104. entropyEnc = null;
  14105. }
  14106. entropy = utils.toArray(entropy, entropyEnc);
  14107. add = utils.toArray(add, addEnc);
  14108. assert(entropy.length >= (this.minEntropy / 8),
  14109. 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
  14110. this._update(entropy.concat(add || []));
  14111. this._reseed = 1;
  14112. };
  14113. HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {
  14114. if (this._reseed > this.reseedInterval)
  14115. throw new Error('Reseed is required');
  14116. // Optional encoding
  14117. if (typeof enc !== 'string') {
  14118. addEnc = add;
  14119. add = enc;
  14120. enc = null;
  14121. }
  14122. // Optional additional data
  14123. if (add) {
  14124. add = utils.toArray(add, addEnc || 'hex');
  14125. this._update(add);
  14126. }
  14127. var temp = [];
  14128. while (temp.length < len) {
  14129. this.V = this._hmac().update(this.V).digest();
  14130. temp = temp.concat(this.V);
  14131. }
  14132. var res = temp.slice(0, len);
  14133. this._update(add);
  14134. this._reseed++;
  14135. return utils.encode(res, enc);
  14136. };
  14137. },{"hash.js":93,"minimalistic-assert":112,"minimalistic-crypto-utils":113}],106:[function(require,module,exports){
  14138. exports.read = function (buffer, offset, isLE, mLen, nBytes) {
  14139. var e, m
  14140. var eLen = nBytes * 8 - mLen - 1
  14141. var eMax = (1 << eLen) - 1
  14142. var eBias = eMax >> 1
  14143. var nBits = -7
  14144. var i = isLE ? (nBytes - 1) : 0
  14145. var d = isLE ? -1 : 1
  14146. var s = buffer[offset + i]
  14147. i += d
  14148. e = s & ((1 << (-nBits)) - 1)
  14149. s >>= (-nBits)
  14150. nBits += eLen
  14151. for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}
  14152. m = e & ((1 << (-nBits)) - 1)
  14153. e >>= (-nBits)
  14154. nBits += mLen
  14155. for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}
  14156. if (e === 0) {
  14157. e = 1 - eBias
  14158. } else if (e === eMax) {
  14159. return m ? NaN : ((s ? -1 : 1) * Infinity)
  14160. } else {
  14161. m = m + Math.pow(2, mLen)
  14162. e = e - eBias
  14163. }
  14164. return (s ? -1 : 1) * m * Math.pow(2, e - mLen)
  14165. }
  14166. exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
  14167. var e, m, c
  14168. var eLen = nBytes * 8 - mLen - 1
  14169. var eMax = (1 << eLen) - 1
  14170. var eBias = eMax >> 1
  14171. var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)
  14172. var i = isLE ? 0 : (nBytes - 1)
  14173. var d = isLE ? 1 : -1
  14174. var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0
  14175. value = Math.abs(value)
  14176. if (isNaN(value) || value === Infinity) {
  14177. m = isNaN(value) ? 1 : 0
  14178. e = eMax
  14179. } else {
  14180. e = Math.floor(Math.log(value) / Math.LN2)
  14181. if (value * (c = Math.pow(2, -e)) < 1) {
  14182. e--
  14183. c *= 2
  14184. }
  14185. if (e + eBias >= 1) {
  14186. value += rt / c
  14187. } else {
  14188. value += rt * Math.pow(2, 1 - eBias)
  14189. }
  14190. if (value * c >= 2) {
  14191. e++
  14192. c /= 2
  14193. }
  14194. if (e + eBias >= eMax) {
  14195. m = 0
  14196. e = eMax
  14197. } else if (e + eBias >= 1) {
  14198. m = (value * c - 1) * Math.pow(2, mLen)
  14199. e = e + eBias
  14200. } else {
  14201. m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)
  14202. e = 0
  14203. }
  14204. }
  14205. for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}
  14206. e = (e << mLen) | m
  14207. eLen += mLen
  14208. for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}
  14209. buffer[offset + i - d] |= s * 128
  14210. }
  14211. },{}],107:[function(require,module,exports){
  14212. var indexOf = [].indexOf;
  14213. module.exports = function(arr, obj){
  14214. if (indexOf) return arr.indexOf(obj);
  14215. for (var i = 0; i < arr.length; ++i) {
  14216. if (arr[i] === obj) return i;
  14217. }
  14218. return -1;
  14219. };
  14220. },{}],108:[function(require,module,exports){
  14221. if (typeof Object.create === 'function') {
  14222. // implementation from standard node.js 'util' module
  14223. module.exports = function inherits(ctor, superCtor) {
  14224. ctor.super_ = superCtor
  14225. ctor.prototype = Object.create(superCtor.prototype, {
  14226. constructor: {
  14227. value: ctor,
  14228. enumerable: false,
  14229. writable: true,
  14230. configurable: true
  14231. }
  14232. });
  14233. };
  14234. } else {
  14235. // old school shim for old browsers
  14236. module.exports = function inherits(ctor, superCtor) {
  14237. ctor.super_ = superCtor
  14238. var TempCtor = function () {}
  14239. TempCtor.prototype = superCtor.prototype
  14240. ctor.prototype = new TempCtor()
  14241. ctor.prototype.constructor = ctor
  14242. }
  14243. }
  14244. },{}],109:[function(require,module,exports){
  14245. /*!
  14246. * Determine if an object is a Buffer
  14247. *
  14248. * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
  14249. * @license MIT
  14250. */
  14251. // The _isBuffer check is for Safari 5-7 support, because it's missing
  14252. // Object.prototype.constructor. Remove this eventually
  14253. module.exports = function (obj) {
  14254. return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
  14255. }
  14256. function isBuffer (obj) {
  14257. return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
  14258. }
  14259. // For Node v0.10 support. Remove this eventually.
  14260. function isSlowBuffer (obj) {
  14261. return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))
  14262. }
  14263. },{}],110:[function(require,module,exports){
  14264. var toString = {}.toString;
  14265. module.exports = Array.isArray || function (arr) {
  14266. return toString.call(arr) == '[object Array]';
  14267. };
  14268. },{}],111:[function(require,module,exports){
  14269. var bn = require('bn.js');
  14270. var brorand = require('brorand');
  14271. function MillerRabin(rand) {
  14272. this.rand = rand || new brorand.Rand();
  14273. }
  14274. module.exports = MillerRabin;
  14275. MillerRabin.create = function create(rand) {
  14276. return new MillerRabin(rand);
  14277. };
  14278. MillerRabin.prototype._rand = function _rand(n) {
  14279. var len = n.bitLength();
  14280. var buf = this.rand.generate(Math.ceil(len / 8));
  14281. // Set low bits
  14282. buf[0] |= 3;
  14283. // Mask high bits
  14284. var mask = len & 0x7;
  14285. if (mask !== 0)
  14286. buf[buf.length - 1] >>= 7 - mask;
  14287. return new bn(buf);
  14288. }
  14289. MillerRabin.prototype.test = function test(n, k, cb) {
  14290. var len = n.bitLength();
  14291. var red = bn.mont(n);
  14292. var rone = new bn(1).toRed(red);
  14293. if (!k)
  14294. k = Math.max(1, (len / 48) | 0);
  14295. // Find d and s, (n - 1) = (2 ^ s) * d;
  14296. var n1 = n.subn(1);
  14297. var n2 = n1.subn(1);
  14298. for (var s = 0; !n1.testn(s); s++) {}
  14299. var d = n.shrn(s);
  14300. var rn1 = n1.toRed(red);
  14301. var prime = true;
  14302. for (; k > 0; k--) {
  14303. var a = this._rand(n2);
  14304. if (cb)
  14305. cb(a);
  14306. var x = a.toRed(red).redPow(d);
  14307. if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)
  14308. continue;
  14309. for (var i = 1; i < s; i++) {
  14310. x = x.redSqr();
  14311. if (x.cmp(rone) === 0)
  14312. return false;
  14313. if (x.cmp(rn1) === 0)
  14314. break;
  14315. }
  14316. if (i === s)
  14317. return false;
  14318. }
  14319. return prime;
  14320. };
  14321. MillerRabin.prototype.getDivisor = function getDivisor(n, k) {
  14322. var len = n.bitLength();
  14323. var red = bn.mont(n);
  14324. var rone = new bn(1).toRed(red);
  14325. if (!k)
  14326. k = Math.max(1, (len / 48) | 0);
  14327. // Find d and s, (n - 1) = (2 ^ s) * d;
  14328. var n1 = n.subn(1);
  14329. var n2 = n1.subn(1);
  14330. for (var s = 0; !n1.testn(s); s++) {}
  14331. var d = n.shrn(s);
  14332. var rn1 = n1.toRed(red);
  14333. for (; k > 0; k--) {
  14334. var a = this._rand(n2);
  14335. var g = n.gcd(a);
  14336. if (g.cmpn(1) !== 0)
  14337. return g;
  14338. var x = a.toRed(red).redPow(d);
  14339. if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)
  14340. continue;
  14341. for (var i = 1; i < s; i++) {
  14342. x = x.redSqr();
  14343. if (x.cmp(rone) === 0)
  14344. return x.fromRed().subn(1).gcd(n);
  14345. if (x.cmp(rn1) === 0)
  14346. break;
  14347. }
  14348. if (i === s) {
  14349. x = x.redSqr();
  14350. return x.fromRed().subn(1).gcd(n);
  14351. }
  14352. }
  14353. return false;
  14354. };
  14355. },{"bn.js":25,"brorand":26}],112:[function(require,module,exports){
  14356. module.exports = assert;
  14357. function assert(val, msg) {
  14358. if (!val)
  14359. throw new Error(msg || 'Assertion failed');
  14360. }
  14361. assert.equal = function assertEqual(l, r, msg) {
  14362. if (l != r)
  14363. throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));
  14364. };
  14365. },{}],113:[function(require,module,exports){
  14366. 'use strict';
  14367. var utils = exports;
  14368. function toArray(msg, enc) {
  14369. if (Array.isArray(msg))
  14370. return msg.slice();
  14371. if (!msg)
  14372. return [];
  14373. var res = [];
  14374. if (typeof msg !== 'string') {
  14375. for (var i = 0; i < msg.length; i++)
  14376. res[i] = msg[i] | 0;
  14377. return res;
  14378. }
  14379. if (enc === 'hex') {
  14380. msg = msg.replace(/[^a-z0-9]+/ig, '');
  14381. if (msg.length % 2 !== 0)
  14382. msg = '0' + msg;
  14383. for (var i = 0; i < msg.length; i += 2)
  14384. res.push(parseInt(msg[i] + msg[i + 1], 16));
  14385. } else {
  14386. for (var i = 0; i < msg.length; i++) {
  14387. var c = msg.charCodeAt(i);
  14388. var hi = c >> 8;
  14389. var lo = c & 0xff;
  14390. if (hi)
  14391. res.push(hi, lo);
  14392. else
  14393. res.push(lo);
  14394. }
  14395. }
  14396. return res;
  14397. }
  14398. utils.toArray = toArray;
  14399. function zero2(word) {
  14400. if (word.length === 1)
  14401. return '0' + word;
  14402. else
  14403. return word;
  14404. }
  14405. utils.zero2 = zero2;
  14406. function toHex(msg) {
  14407. var res = '';
  14408. for (var i = 0; i < msg.length; i++)
  14409. res += zero2(msg[i].toString(16));
  14410. return res;
  14411. }
  14412. utils.toHex = toHex;
  14413. utils.encode = function encode(arr, enc) {
  14414. if (enc === 'hex')
  14415. return toHex(arr);
  14416. else
  14417. return arr;
  14418. };
  14419. },{}],114:[function(require,module,exports){
  14420. module.exports={"2.16.840.1.101.3.4.1.1": "aes-128-ecb",
  14421. "2.16.840.1.101.3.4.1.2": "aes-128-cbc",
  14422. "2.16.840.1.101.3.4.1.3": "aes-128-ofb",
  14423. "2.16.840.1.101.3.4.1.4": "aes-128-cfb",
  14424. "2.16.840.1.101.3.4.1.21": "aes-192-ecb",
  14425. "2.16.840.1.101.3.4.1.22": "aes-192-cbc",
  14426. "2.16.840.1.101.3.4.1.23": "aes-192-ofb",
  14427. "2.16.840.1.101.3.4.1.24": "aes-192-cfb",
  14428. "2.16.840.1.101.3.4.1.41": "aes-256-ecb",
  14429. "2.16.840.1.101.3.4.1.42": "aes-256-cbc",
  14430. "2.16.840.1.101.3.4.1.43": "aes-256-ofb",
  14431. "2.16.840.1.101.3.4.1.44": "aes-256-cfb"
  14432. }
  14433. },{}],115:[function(require,module,exports){
  14434. // from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js
  14435. // Fedor, you are amazing.
  14436. 'use strict'
  14437. var asn1 = require('asn1.js')
  14438. exports.certificate = require('./certificate')
  14439. var RSAPrivateKey = asn1.define('RSAPrivateKey', function () {
  14440. this.seq().obj(
  14441. this.key('version').int(),
  14442. this.key('modulus').int(),
  14443. this.key('publicExponent').int(),
  14444. this.key('privateExponent').int(),
  14445. this.key('prime1').int(),
  14446. this.key('prime2').int(),
  14447. this.key('exponent1').int(),
  14448. this.key('exponent2').int(),
  14449. this.key('coefficient').int()
  14450. )
  14451. })
  14452. exports.RSAPrivateKey = RSAPrivateKey
  14453. var RSAPublicKey = asn1.define('RSAPublicKey', function () {
  14454. this.seq().obj(
  14455. this.key('modulus').int(),
  14456. this.key('publicExponent').int()
  14457. )
  14458. })
  14459. exports.RSAPublicKey = RSAPublicKey
  14460. var PublicKey = asn1.define('SubjectPublicKeyInfo', function () {
  14461. this.seq().obj(
  14462. this.key('algorithm').use(AlgorithmIdentifier),
  14463. this.key('subjectPublicKey').bitstr()
  14464. )
  14465. })
  14466. exports.PublicKey = PublicKey
  14467. var AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () {
  14468. this.seq().obj(
  14469. this.key('algorithm').objid(),
  14470. this.key('none').null_().optional(),
  14471. this.key('curve').objid().optional(),
  14472. this.key('params').seq().obj(
  14473. this.key('p').int(),
  14474. this.key('q').int(),
  14475. this.key('g').int()
  14476. ).optional()
  14477. )
  14478. })
  14479. var PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () {
  14480. this.seq().obj(
  14481. this.key('version').int(),
  14482. this.key('algorithm').use(AlgorithmIdentifier),
  14483. this.key('subjectPrivateKey').octstr()
  14484. )
  14485. })
  14486. exports.PrivateKey = PrivateKeyInfo
  14487. var EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () {
  14488. this.seq().obj(
  14489. this.key('algorithm').seq().obj(
  14490. this.key('id').objid(),
  14491. this.key('decrypt').seq().obj(
  14492. this.key('kde').seq().obj(
  14493. this.key('id').objid(),
  14494. this.key('kdeparams').seq().obj(
  14495. this.key('salt').octstr(),
  14496. this.key('iters').int()
  14497. )
  14498. ),
  14499. this.key('cipher').seq().obj(
  14500. this.key('algo').objid(),
  14501. this.key('iv').octstr()
  14502. )
  14503. )
  14504. ),
  14505. this.key('subjectPrivateKey').octstr()
  14506. )
  14507. })
  14508. exports.EncryptedPrivateKey = EncryptedPrivateKeyInfo
  14509. var DSAPrivateKey = asn1.define('DSAPrivateKey', function () {
  14510. this.seq().obj(
  14511. this.key('version').int(),
  14512. this.key('p').int(),
  14513. this.key('q').int(),
  14514. this.key('g').int(),
  14515. this.key('pub_key').int(),
  14516. this.key('priv_key').int()
  14517. )
  14518. })
  14519. exports.DSAPrivateKey = DSAPrivateKey
  14520. exports.DSAparam = asn1.define('DSAparam', function () {
  14521. this.int()
  14522. })
  14523. var ECPrivateKey = asn1.define('ECPrivateKey', function () {
  14524. this.seq().obj(
  14525. this.key('version').int(),
  14526. this.key('privateKey').octstr(),
  14527. this.key('parameters').optional().explicit(0).use(ECParameters),
  14528. this.key('publicKey').optional().explicit(1).bitstr()
  14529. )
  14530. })
  14531. exports.ECPrivateKey = ECPrivateKey
  14532. var ECParameters = asn1.define('ECParameters', function () {
  14533. this.choice({
  14534. namedCurve: this.objid()
  14535. })
  14536. })
  14537. exports.signature = asn1.define('signature', function () {
  14538. this.seq().obj(
  14539. this.key('r').int(),
  14540. this.key('s').int()
  14541. )
  14542. })
  14543. },{"./certificate":116,"asn1.js":10}],116:[function(require,module,exports){
  14544. // from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js
  14545. // thanks to @Rantanen
  14546. 'use strict'
  14547. var asn = require('asn1.js')
  14548. var Time = asn.define('Time', function () {
  14549. this.choice({
  14550. utcTime: this.utctime(),
  14551. generalTime: this.gentime()
  14552. })
  14553. })
  14554. var AttributeTypeValue = asn.define('AttributeTypeValue', function () {
  14555. this.seq().obj(
  14556. this.key('type').objid(),
  14557. this.key('value').any()
  14558. )
  14559. })
  14560. var AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () {
  14561. this.seq().obj(
  14562. this.key('algorithm').objid(),
  14563. this.key('parameters').optional()
  14564. )
  14565. })
  14566. var SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () {
  14567. this.seq().obj(
  14568. this.key('algorithm').use(AlgorithmIdentifier),
  14569. this.key('subjectPublicKey').bitstr()
  14570. )
  14571. })
  14572. var RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () {
  14573. this.setof(AttributeTypeValue)
  14574. })
  14575. var RDNSequence = asn.define('RDNSequence', function () {
  14576. this.seqof(RelativeDistinguishedName)
  14577. })
  14578. var Name = asn.define('Name', function () {
  14579. this.choice({
  14580. rdnSequence: this.use(RDNSequence)
  14581. })
  14582. })
  14583. var Validity = asn.define('Validity', function () {
  14584. this.seq().obj(
  14585. this.key('notBefore').use(Time),
  14586. this.key('notAfter').use(Time)
  14587. )
  14588. })
  14589. var Extension = asn.define('Extension', function () {
  14590. this.seq().obj(
  14591. this.key('extnID').objid(),
  14592. this.key('critical').bool().def(false),
  14593. this.key('extnValue').octstr()
  14594. )
  14595. })
  14596. var TBSCertificate = asn.define('TBSCertificate', function () {
  14597. this.seq().obj(
  14598. this.key('version').explicit(0).int(),
  14599. this.key('serialNumber').int(),
  14600. this.key('signature').use(AlgorithmIdentifier),
  14601. this.key('issuer').use(Name),
  14602. this.key('validity').use(Validity),
  14603. this.key('subject').use(Name),
  14604. this.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo),
  14605. this.key('issuerUniqueID').implicit(1).bitstr().optional(),
  14606. this.key('subjectUniqueID').implicit(2).bitstr().optional(),
  14607. this.key('extensions').explicit(3).seqof(Extension).optional()
  14608. )
  14609. })
  14610. var X509Certificate = asn.define('X509Certificate', function () {
  14611. this.seq().obj(
  14612. this.key('tbsCertificate').use(TBSCertificate),
  14613. this.key('signatureAlgorithm').use(AlgorithmIdentifier),
  14614. this.key('signatureValue').bitstr()
  14615. )
  14616. })
  14617. module.exports = X509Certificate
  14618. },{"asn1.js":10}],117:[function(require,module,exports){
  14619. (function (Buffer){
  14620. // adapted from https://github.com/apatil/pemstrip
  14621. var findProc = /Proc-Type: 4,ENCRYPTED\n\r?DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)\n\r?\n\r?([0-9A-z\n\r\+\/\=]+)\n\r?/m
  14622. var startRegex = /^-----BEGIN ((?:.* KEY)|CERTIFICATE)-----\n/m
  14623. var fullRegex = /^-----BEGIN ((?:.* KEY)|CERTIFICATE)-----\n\r?([0-9A-z\n\r\+\/\=]+)\n\r?-----END \1-----$/m
  14624. var evp = require('evp_bytestokey')
  14625. var ciphers = require('browserify-aes')
  14626. module.exports = function (okey, password) {
  14627. var key = okey.toString()
  14628. var match = key.match(findProc)
  14629. var decrypted
  14630. if (!match) {
  14631. var match2 = key.match(fullRegex)
  14632. decrypted = new Buffer(match2[2].replace(/\r?\n/g, ''), 'base64')
  14633. } else {
  14634. var suite = 'aes' + match[1]
  14635. var iv = new Buffer(match[2], 'hex')
  14636. var cipherText = new Buffer(match[3].replace(/\r?\n/g, ''), 'base64')
  14637. var cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key
  14638. var out = []
  14639. var cipher = ciphers.createDecipheriv(suite, cipherKey, iv)
  14640. out.push(cipher.update(cipherText))
  14641. out.push(cipher.final())
  14642. decrypted = Buffer.concat(out)
  14643. }
  14644. var tag = key.match(startRegex)[1]
  14645. return {
  14646. tag: tag,
  14647. data: decrypted
  14648. }
  14649. }
  14650. }).call(this,require("buffer").Buffer)
  14651. },{"browserify-aes":30,"buffer":54,"evp_bytestokey":91}],118:[function(require,module,exports){
  14652. (function (Buffer){
  14653. var asn1 = require('./asn1')
  14654. var aesid = require('./aesid.json')
  14655. var fixProc = require('./fixProc')
  14656. var ciphers = require('browserify-aes')
  14657. var compat = require('pbkdf2')
  14658. module.exports = parseKeys
  14659. function parseKeys (buffer) {
  14660. var password
  14661. if (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {
  14662. password = buffer.passphrase
  14663. buffer = buffer.key
  14664. }
  14665. if (typeof buffer === 'string') {
  14666. buffer = new Buffer(buffer)
  14667. }
  14668. var stripped = fixProc(buffer, password)
  14669. var type = stripped.tag
  14670. var data = stripped.data
  14671. var subtype, ndata
  14672. switch (type) {
  14673. case 'CERTIFICATE':
  14674. ndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo
  14675. // falls through
  14676. case 'PUBLIC KEY':
  14677. if (!ndata) {
  14678. ndata = asn1.PublicKey.decode(data, 'der')
  14679. }
  14680. subtype = ndata.algorithm.algorithm.join('.')
  14681. switch (subtype) {
  14682. case '1.2.840.113549.1.1.1':
  14683. return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der')
  14684. case '1.2.840.10045.2.1':
  14685. ndata.subjectPrivateKey = ndata.subjectPublicKey
  14686. return {
  14687. type: 'ec',
  14688. data: ndata
  14689. }
  14690. case '1.2.840.10040.4.1':
  14691. ndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der')
  14692. return {
  14693. type: 'dsa',
  14694. data: ndata.algorithm.params
  14695. }
  14696. default: throw new Error('unknown key id ' + subtype)
  14697. }
  14698. throw new Error('unknown key type ' + type)
  14699. case 'ENCRYPTED PRIVATE KEY':
  14700. data = asn1.EncryptedPrivateKey.decode(data, 'der')
  14701. data = decrypt(data, password)
  14702. // falls through
  14703. case 'PRIVATE KEY':
  14704. ndata = asn1.PrivateKey.decode(data, 'der')
  14705. subtype = ndata.algorithm.algorithm.join('.')
  14706. switch (subtype) {
  14707. case '1.2.840.113549.1.1.1':
  14708. return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der')
  14709. case '1.2.840.10045.2.1':
  14710. return {
  14711. curve: ndata.algorithm.curve,
  14712. privateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey
  14713. }
  14714. case '1.2.840.10040.4.1':
  14715. ndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der')
  14716. return {
  14717. type: 'dsa',
  14718. params: ndata.algorithm.params
  14719. }
  14720. default: throw new Error('unknown key id ' + subtype)
  14721. }
  14722. throw new Error('unknown key type ' + type)
  14723. case 'RSA PUBLIC KEY':
  14724. return asn1.RSAPublicKey.decode(data, 'der')
  14725. case 'RSA PRIVATE KEY':
  14726. return asn1.RSAPrivateKey.decode(data, 'der')
  14727. case 'DSA PRIVATE KEY':
  14728. return {
  14729. type: 'dsa',
  14730. params: asn1.DSAPrivateKey.decode(data, 'der')
  14731. }
  14732. case 'EC PRIVATE KEY':
  14733. data = asn1.ECPrivateKey.decode(data, 'der')
  14734. return {
  14735. curve: data.parameters.value,
  14736. privateKey: data.privateKey
  14737. }
  14738. default: throw new Error('unknown key type ' + type)
  14739. }
  14740. }
  14741. parseKeys.signature = asn1.signature
  14742. function decrypt (data, password) {
  14743. var salt = data.algorithm.decrypt.kde.kdeparams.salt
  14744. var iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10)
  14745. var algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')]
  14746. var iv = data.algorithm.decrypt.cipher.iv
  14747. var cipherText = data.subjectPrivateKey
  14748. var keylen = parseInt(algo.split('-')[1], 10) / 8
  14749. var key = compat.pbkdf2Sync(password, salt, iters, keylen)
  14750. var cipher = ciphers.createDecipheriv(algo, key, iv)
  14751. var out = []
  14752. out.push(cipher.update(cipherText))
  14753. out.push(cipher.final())
  14754. return Buffer.concat(out)
  14755. }
  14756. }).call(this,require("buffer").Buffer)
  14757. },{"./aesid.json":114,"./asn1":115,"./fixProc":117,"browserify-aes":30,"buffer":54,"pbkdf2":120}],119:[function(require,module,exports){
  14758. (function (process){
  14759. // Copyright Joyent, Inc. and other Node contributors.
  14760. //
  14761. // Permission is hereby granted, free of charge, to any person obtaining a
  14762. // copy of this software and associated documentation files (the
  14763. // "Software"), to deal in the Software without restriction, including
  14764. // without limitation the rights to use, copy, modify, merge, publish,
  14765. // distribute, sublicense, and/or sell copies of the Software, and to permit
  14766. // persons to whom the Software is furnished to do so, subject to the
  14767. // following conditions:
  14768. //
  14769. // The above copyright notice and this permission notice shall be included
  14770. // in all copies or substantial portions of the Software.
  14771. //
  14772. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  14773. // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  14774. // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
  14775. // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
  14776. // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
  14777. // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
  14778. // USE OR OTHER DEALINGS IN THE SOFTWARE.
  14779. // resolves . and .. elements in a path array with directory names there
  14780. // must be no slashes, empty elements, or device names (c:\) in the array
  14781. // (so also no leading and trailing slashes - it does not distinguish
  14782. // relative and absolute paths)
  14783. function normalizeArray(parts, allowAboveRoot) {
  14784. // if the path tries to go above the root, `up` ends up > 0
  14785. var up = 0;
  14786. for (var i = parts.length - 1; i >= 0; i--) {
  14787. var last = parts[i];
  14788. if (last === '.') {
  14789. parts.splice(i, 1);
  14790. } else if (last === '..') {
  14791. parts.splice(i, 1);
  14792. up++;
  14793. } else if (up) {
  14794. parts.splice(i, 1);
  14795. up--;
  14796. }
  14797. }
  14798. // if the path is allowed to go above the root, restore leading ..s
  14799. if (allowAboveRoot) {
  14800. for (; up--; up) {
  14801. parts.unshift('..');
  14802. }
  14803. }
  14804. return parts;
  14805. }
  14806. // Split a filename into [root, dir, basename, ext], unix version
  14807. // 'root' is just a slash, or nothing.
  14808. var splitPathRe =
  14809. /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
  14810. var splitPath = function(filename) {
  14811. return splitPathRe.exec(filename).slice(1);
  14812. };
  14813. // path.resolve([from ...], to)
  14814. // posix version
  14815. exports.resolve = function() {
  14816. var resolvedPath = '',
  14817. resolvedAbsolute = false;
  14818. for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
  14819. var path = (i >= 0) ? arguments[i] : process.cwd();
  14820. // Skip empty and invalid entries
  14821. if (typeof path !== 'string') {
  14822. throw new TypeError('Arguments to path.resolve must be strings');
  14823. } else if (!path) {
  14824. continue;
  14825. }
  14826. resolvedPath = path + '/' + resolvedPath;
  14827. resolvedAbsolute = path.charAt(0) === '/';
  14828. }
  14829. // At this point the path should be resolved to a full absolute path, but
  14830. // handle relative paths to be safe (might happen when process.cwd() fails)
  14831. // Normalize the path
  14832. resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {
  14833. return !!p;
  14834. }), !resolvedAbsolute).join('/');
  14835. return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';
  14836. };
  14837. // path.normalize(path)
  14838. // posix version
  14839. exports.normalize = function(path) {
  14840. var isAbsolute = exports.isAbsolute(path),
  14841. trailingSlash = substr(path, -1) === '/';
  14842. // Normalize the path
  14843. path = normalizeArray(filter(path.split('/'), function(p) {
  14844. return !!p;
  14845. }), !isAbsolute).join('/');
  14846. if (!path && !isAbsolute) {
  14847. path = '.';
  14848. }
  14849. if (path && trailingSlash) {
  14850. path += '/';
  14851. }
  14852. return (isAbsolute ? '/' : '') + path;
  14853. };
  14854. // posix version
  14855. exports.isAbsolute = function(path) {
  14856. return path.charAt(0) === '/';
  14857. };
  14858. // posix version
  14859. exports.join = function() {
  14860. var paths = Array.prototype.slice.call(arguments, 0);
  14861. return exports.normalize(filter(paths, function(p, index) {
  14862. if (typeof p !== 'string') {
  14863. throw new TypeError('Arguments to path.join must be strings');
  14864. }
  14865. return p;
  14866. }).join('/'));
  14867. };
  14868. // path.relative(from, to)
  14869. // posix version
  14870. exports.relative = function(from, to) {
  14871. from = exports.resolve(from).substr(1);
  14872. to = exports.resolve(to).substr(1);
  14873. function trim(arr) {
  14874. var start = 0;
  14875. for (; start < arr.length; start++) {
  14876. if (arr[start] !== '') break;
  14877. }
  14878. var end = arr.length - 1;
  14879. for (; end >= 0; end--) {
  14880. if (arr[end] !== '') break;
  14881. }
  14882. if (start > end) return [];
  14883. return arr.slice(start, end - start + 1);
  14884. }
  14885. var fromParts = trim(from.split('/'));
  14886. var toParts = trim(to.split('/'));
  14887. var length = Math.min(fromParts.length, toParts.length);
  14888. var samePartsLength = length;
  14889. for (var i = 0; i < length; i++) {
  14890. if (fromParts[i] !== toParts[i]) {
  14891. samePartsLength = i;
  14892. break;
  14893. }
  14894. }
  14895. var outputParts = [];
  14896. for (var i = samePartsLength; i < fromParts.length; i++) {
  14897. outputParts.push('..');
  14898. }
  14899. outputParts = outputParts.concat(toParts.slice(samePartsLength));
  14900. return outputParts.join('/');
  14901. };
  14902. exports.sep = '/';
  14903. exports.delimiter = ':';
  14904. exports.dirname = function(path) {
  14905. var result = splitPath(path),
  14906. root = result[0],
  14907. dir = result[1];
  14908. if (!root && !dir) {
  14909. // No dirname whatsoever
  14910. return '.';
  14911. }
  14912. if (dir) {
  14913. // It has a dirname, strip trailing slash
  14914. dir = dir.substr(0, dir.length - 1);
  14915. }
  14916. return root + dir;
  14917. };
  14918. exports.basename = function(path, ext) {
  14919. var f = splitPath(path)[2];
  14920. // TODO: make this comparison case-insensitive on windows?
  14921. if (ext && f.substr(-1 * ext.length) === ext) {
  14922. f = f.substr(0, f.length - ext.length);
  14923. }
  14924. return f;
  14925. };
  14926. exports.extname = function(path) {
  14927. return splitPath(path)[3];
  14928. };
  14929. function filter (xs, f) {
  14930. if (xs.filter) return xs.filter(f);
  14931. var res = [];
  14932. for (var i = 0; i < xs.length; i++) {
  14933. if (f(xs[i], i, xs)) res.push(xs[i]);
  14934. }
  14935. return res;
  14936. }
  14937. // String.prototype.substr - negative index don't work in IE8
  14938. var substr = 'ab'.substr(-1) === 'b'
  14939. ? function (str, start, len) { return str.substr(start, len) }
  14940. : function (str, start, len) {
  14941. if (start < 0) start = str.length + start;
  14942. return str.substr(start, len);
  14943. }
  14944. ;
  14945. }).call(this,require('_process'))
  14946. },{"_process":126}],120:[function(require,module,exports){
  14947. exports.pbkdf2 = require('./lib/async')
  14948. exports.pbkdf2Sync = require('./lib/sync')
  14949. },{"./lib/async":121,"./lib/sync":124}],121:[function(require,module,exports){
  14950. (function (process,global){
  14951. var checkParameters = require('./precondition')
  14952. var defaultEncoding = require('./default-encoding')
  14953. var sync = require('./sync')
  14954. var Buffer = require('safe-buffer').Buffer
  14955. var ZERO_BUF
  14956. var subtle = global.crypto && global.crypto.subtle
  14957. var toBrowser = {
  14958. 'sha': 'SHA-1',
  14959. 'sha-1': 'SHA-1',
  14960. 'sha1': 'SHA-1',
  14961. 'sha256': 'SHA-256',
  14962. 'sha-256': 'SHA-256',
  14963. 'sha384': 'SHA-384',
  14964. 'sha-384': 'SHA-384',
  14965. 'sha-512': 'SHA-512',
  14966. 'sha512': 'SHA-512'
  14967. }
  14968. var checks = []
  14969. function checkNative (algo) {
  14970. if (global.process && !global.process.browser) {
  14971. return Promise.resolve(false)
  14972. }
  14973. if (!subtle || !subtle.importKey || !subtle.deriveBits) {
  14974. return Promise.resolve(false)
  14975. }
  14976. if (checks[algo] !== undefined) {
  14977. return checks[algo]
  14978. }
  14979. ZERO_BUF = ZERO_BUF || Buffer.alloc(8)
  14980. var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo)
  14981. .then(function () {
  14982. return true
  14983. }).catch(function () {
  14984. return false
  14985. })
  14986. checks[algo] = prom
  14987. return prom
  14988. }
  14989. function browserPbkdf2 (password, salt, iterations, length, algo) {
  14990. return subtle.importKey(
  14991. 'raw', password, {name: 'PBKDF2'}, false, ['deriveBits']
  14992. ).then(function (key) {
  14993. return subtle.deriveBits({
  14994. name: 'PBKDF2',
  14995. salt: salt,
  14996. iterations: iterations,
  14997. hash: {
  14998. name: algo
  14999. }
  15000. }, key, length << 3)
  15001. }).then(function (res) {
  15002. return Buffer.from(res)
  15003. })
  15004. }
  15005. function resolvePromise (promise, callback) {
  15006. promise.then(function (out) {
  15007. process.nextTick(function () {
  15008. callback(null, out)
  15009. })
  15010. }, function (e) {
  15011. process.nextTick(function () {
  15012. callback(e)
  15013. })
  15014. })
  15015. }
  15016. module.exports = function (password, salt, iterations, keylen, digest, callback) {
  15017. if (!Buffer.isBuffer(password)) password = Buffer.from(password, defaultEncoding)
  15018. if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, defaultEncoding)
  15019. checkParameters(iterations, keylen)
  15020. if (typeof digest === 'function') {
  15021. callback = digest
  15022. digest = undefined
  15023. }
  15024. if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2')
  15025. digest = digest || 'sha1'
  15026. var algo = toBrowser[digest.toLowerCase()]
  15027. if (!algo || typeof global.Promise !== 'function') {
  15028. return process.nextTick(function () {
  15029. var out
  15030. try {
  15031. out = sync(password, salt, iterations, keylen, digest)
  15032. } catch (e) {
  15033. return callback(e)
  15034. }
  15035. callback(null, out)
  15036. })
  15037. }
  15038. resolvePromise(checkNative(algo).then(function (resp) {
  15039. if (resp) {
  15040. return browserPbkdf2(password, salt, iterations, keylen, algo)
  15041. } else {
  15042. return sync(password, salt, iterations, keylen, digest)
  15043. }
  15044. }), callback)
  15045. }
  15046. }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
  15047. },{"./default-encoding":122,"./precondition":123,"./sync":124,"_process":126,"safe-buffer":148}],122:[function(require,module,exports){
  15048. (function (process){
  15049. var defaultEncoding
  15050. /* istanbul ignore next */
  15051. if (process.browser) {
  15052. defaultEncoding = 'utf-8'
  15053. } else {
  15054. var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10)
  15055. defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary'
  15056. }
  15057. module.exports = defaultEncoding
  15058. }).call(this,require('_process'))
  15059. },{"_process":126}],123:[function(require,module,exports){
  15060. var MAX_ALLOC = Math.pow(2, 30) - 1 // default in iojs
  15061. module.exports = function (iterations, keylen) {
  15062. if (typeof iterations !== 'number') {
  15063. throw new TypeError('Iterations not a number')
  15064. }
  15065. if (iterations < 0) {
  15066. throw new TypeError('Bad iterations')
  15067. }
  15068. if (typeof keylen !== 'number') {
  15069. throw new TypeError('Key length not a number')
  15070. }
  15071. if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */
  15072. throw new TypeError('Bad key length')
  15073. }
  15074. }
  15075. },{}],124:[function(require,module,exports){
  15076. var md5 = require('create-hash/md5')
  15077. var rmd160 = require('ripemd160')
  15078. var sha = require('sha.js')
  15079. var checkParameters = require('./precondition')
  15080. var defaultEncoding = require('./default-encoding')
  15081. var Buffer = require('safe-buffer').Buffer
  15082. var ZEROS = Buffer.alloc(128)
  15083. var sizes = {
  15084. md5: 16,
  15085. sha1: 20,
  15086. sha224: 28,
  15087. sha256: 32,
  15088. sha384: 48,
  15089. sha512: 64,
  15090. rmd160: 20,
  15091. ripemd160: 20
  15092. }
  15093. function Hmac (alg, key, saltLen) {
  15094. var hash = getDigest(alg)
  15095. var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64
  15096. if (key.length > blocksize) {
  15097. key = hash(key)
  15098. } else if (key.length < blocksize) {
  15099. key = Buffer.concat([key, ZEROS], blocksize)
  15100. }
  15101. var ipad = Buffer.allocUnsafe(blocksize + sizes[alg])
  15102. var opad = Buffer.allocUnsafe(blocksize + sizes[alg])
  15103. for (var i = 0; i < blocksize; i++) {
  15104. ipad[i] = key[i] ^ 0x36
  15105. opad[i] = key[i] ^ 0x5C
  15106. }
  15107. var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4)
  15108. ipad.copy(ipad1, 0, 0, blocksize)
  15109. this.ipad1 = ipad1
  15110. this.ipad2 = ipad
  15111. this.opad = opad
  15112. this.alg = alg
  15113. this.blocksize = blocksize
  15114. this.hash = hash
  15115. this.size = sizes[alg]
  15116. }
  15117. Hmac.prototype.run = function (data, ipad) {
  15118. data.copy(ipad, this.blocksize)
  15119. var h = this.hash(ipad)
  15120. h.copy(this.opad, this.blocksize)
  15121. return this.hash(this.opad)
  15122. }
  15123. function getDigest (alg) {
  15124. function shaFunc (data) {
  15125. return sha(alg).update(data).digest()
  15126. }
  15127. if (alg === 'rmd160' || alg === 'ripemd160') return rmd160
  15128. if (alg === 'md5') return md5
  15129. return shaFunc
  15130. }
  15131. function pbkdf2 (password, salt, iterations, keylen, digest) {
  15132. if (!Buffer.isBuffer(password)) password = Buffer.from(password, defaultEncoding)
  15133. if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, defaultEncoding)
  15134. checkParameters(iterations, keylen)
  15135. digest = digest || 'sha1'
  15136. var hmac = new Hmac(digest, password, salt.length)
  15137. var DK = Buffer.allocUnsafe(keylen)
  15138. var block1 = Buffer.allocUnsafe(salt.length + 4)
  15139. salt.copy(block1, 0, 0, salt.length)
  15140. var destPos = 0
  15141. var hLen = sizes[digest]
  15142. var l = Math.ceil(keylen / hLen)
  15143. for (var i = 1; i <= l; i++) {
  15144. block1.writeUInt32BE(i, salt.length)
  15145. var T = hmac.run(block1, hmac.ipad1)
  15146. var U = T
  15147. for (var j = 1; j < iterations; j++) {
  15148. U = hmac.run(U, hmac.ipad2)
  15149. for (var k = 0; k < hLen; k++) T[k] ^= U[k]
  15150. }
  15151. T.copy(DK, destPos)
  15152. destPos += hLen
  15153. }
  15154. return DK
  15155. }
  15156. module.exports = pbkdf2
  15157. },{"./default-encoding":122,"./precondition":123,"create-hash/md5":60,"ripemd160":147,"safe-buffer":148,"sha.js":150}],125:[function(require,module,exports){
  15158. (function (process){
  15159. 'use strict';
  15160. if (!process.version ||
  15161. process.version.indexOf('v0.') === 0 ||
  15162. process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {
  15163. module.exports = nextTick;
  15164. } else {
  15165. module.exports = process.nextTick;
  15166. }
  15167. function nextTick(fn, arg1, arg2, arg3) {
  15168. if (typeof fn !== 'function') {
  15169. throw new TypeError('"callback" argument must be a function');
  15170. }
  15171. var len = arguments.length;
  15172. var args, i;
  15173. switch (len) {
  15174. case 0:
  15175. case 1:
  15176. return process.nextTick(fn);
  15177. case 2:
  15178. return process.nextTick(function afterTickOne() {
  15179. fn.call(null, arg1);
  15180. });
  15181. case 3:
  15182. return process.nextTick(function afterTickTwo() {
  15183. fn.call(null, arg1, arg2);
  15184. });
  15185. case 4:
  15186. return process.nextTick(function afterTickThree() {
  15187. fn.call(null, arg1, arg2, arg3);
  15188. });
  15189. default:
  15190. args = new Array(len - 1);
  15191. i = 0;
  15192. while (i < args.length) {
  15193. args[i++] = arguments[i];
  15194. }
  15195. return process.nextTick(function afterTick() {
  15196. fn.apply(null, args);
  15197. });
  15198. }
  15199. }
  15200. }).call(this,require('_process'))
  15201. },{"_process":126}],126:[function(require,module,exports){
  15202. // shim for using process in browser
  15203. var process = module.exports = {};
  15204. // cached from whatever global is present so that test runners that stub it
  15205. // don't break things. But we need to wrap it in a try catch in case it is
  15206. // wrapped in strict mode code which doesn't define any globals. It's inside a
  15207. // function because try/catches deoptimize in certain engines.
  15208. var cachedSetTimeout;
  15209. var cachedClearTimeout;
  15210. function defaultSetTimout() {
  15211. throw new Error('setTimeout has not been defined');
  15212. }
  15213. function defaultClearTimeout () {
  15214. throw new Error('clearTimeout has not been defined');
  15215. }
  15216. (function () {
  15217. try {
  15218. if (typeof setTimeout === 'function') {
  15219. cachedSetTimeout = setTimeout;
  15220. } else {
  15221. cachedSetTimeout = defaultSetTimout;
  15222. }
  15223. } catch (e) {
  15224. cachedSetTimeout = defaultSetTimout;
  15225. }
  15226. try {
  15227. if (typeof clearTimeout === 'function') {
  15228. cachedClearTimeout = clearTimeout;
  15229. } else {
  15230. cachedClearTimeout = defaultClearTimeout;
  15231. }
  15232. } catch (e) {
  15233. cachedClearTimeout = defaultClearTimeout;
  15234. }
  15235. } ())
  15236. function runTimeout(fun) {
  15237. if (cachedSetTimeout === setTimeout) {
  15238. //normal enviroments in sane situations
  15239. return setTimeout(fun, 0);
  15240. }
  15241. // if setTimeout wasn't available but was latter defined
  15242. if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
  15243. cachedSetTimeout = setTimeout;
  15244. return setTimeout(fun, 0);
  15245. }
  15246. try {
  15247. // when when somebody has screwed with setTimeout but no I.E. maddness
  15248. return cachedSetTimeout(fun, 0);
  15249. } catch(e){
  15250. try {
  15251. // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
  15252. return cachedSetTimeout.call(null, fun, 0);
  15253. } catch(e){
  15254. // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
  15255. return cachedSetTimeout.call(this, fun, 0);
  15256. }
  15257. }
  15258. }
  15259. function runClearTimeout(marker) {
  15260. if (cachedClearTimeout === clearTimeout) {
  15261. //normal enviroments in sane situations
  15262. return clearTimeout(marker);
  15263. }
  15264. // if clearTimeout wasn't available but was latter defined
  15265. if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
  15266. cachedClearTimeout = clearTimeout;
  15267. return clearTimeout(marker);
  15268. }
  15269. try {
  15270. // when when somebody has screwed with setTimeout but no I.E. maddness
  15271. return cachedClearTimeout(marker);
  15272. } catch (e){
  15273. try {
  15274. // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
  15275. return cachedClearTimeout.call(null, marker);
  15276. } catch (e){
  15277. // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
  15278. // Some versions of I.E. have different rules for clearTimeout vs setTimeout
  15279. return cachedClearTimeout.call(this, marker);
  15280. }
  15281. }
  15282. }
  15283. var queue = [];
  15284. var draining = false;
  15285. var currentQueue;
  15286. var queueIndex = -1;
  15287. function cleanUpNextTick() {
  15288. if (!draining || !currentQueue) {
  15289. return;
  15290. }
  15291. draining = false;
  15292. if (currentQueue.length) {
  15293. queue = currentQueue.concat(queue);
  15294. } else {
  15295. queueIndex = -1;
  15296. }
  15297. if (queue.length) {
  15298. drainQueue();
  15299. }
  15300. }
  15301. function drainQueue() {
  15302. if (draining) {
  15303. return;
  15304. }
  15305. var timeout = runTimeout(cleanUpNextTick);
  15306. draining = true;
  15307. var len = queue.length;
  15308. while(len) {
  15309. currentQueue = queue;
  15310. queue = [];
  15311. while (++queueIndex < len) {
  15312. if (currentQueue) {
  15313. currentQueue[queueIndex].run();
  15314. }
  15315. }
  15316. queueIndex = -1;
  15317. len = queue.length;
  15318. }
  15319. currentQueue = null;
  15320. draining = false;
  15321. runClearTimeout(timeout);
  15322. }
  15323. process.nextTick = function (fun) {
  15324. var args = new Array(arguments.length - 1);
  15325. if (arguments.length > 1) {
  15326. for (var i = 1; i < arguments.length; i++) {
  15327. args[i - 1] = arguments[i];
  15328. }
  15329. }
  15330. queue.push(new Item(fun, args));
  15331. if (queue.length === 1 && !draining) {
  15332. runTimeout(drainQueue);
  15333. }
  15334. };
  15335. // v8 likes predictible objects
  15336. function Item(fun, array) {
  15337. this.fun = fun;
  15338. this.array = array;
  15339. }
  15340. Item.prototype.run = function () {
  15341. this.fun.apply(null, this.array);
  15342. };
  15343. process.title = 'browser';
  15344. process.browser = true;
  15345. process.env = {};
  15346. process.argv = [];
  15347. process.version = ''; // empty string to avoid regexp issues
  15348. process.versions = {};
  15349. function noop() {}
  15350. process.on = noop;
  15351. process.addListener = noop;
  15352. process.once = noop;
  15353. process.off = noop;
  15354. process.removeListener = noop;
  15355. process.removeAllListeners = noop;
  15356. process.emit = noop;
  15357. process.prependListener = noop;
  15358. process.prependOnceListener = noop;
  15359. process.listeners = function (name) { return [] }
  15360. process.binding = function (name) {
  15361. throw new Error('process.binding is not supported');
  15362. };
  15363. process.cwd = function () { return '/' };
  15364. process.chdir = function (dir) {
  15365. throw new Error('process.chdir is not supported');
  15366. };
  15367. process.umask = function() { return 0; };
  15368. },{}],127:[function(require,module,exports){
  15369. exports.publicEncrypt = require('./publicEncrypt');
  15370. exports.privateDecrypt = require('./privateDecrypt');
  15371. exports.privateEncrypt = function privateEncrypt(key, buf) {
  15372. return exports.publicEncrypt(key, buf, true);
  15373. };
  15374. exports.publicDecrypt = function publicDecrypt(key, buf) {
  15375. return exports.privateDecrypt(key, buf, true);
  15376. };
  15377. },{"./privateDecrypt":129,"./publicEncrypt":130}],128:[function(require,module,exports){
  15378. (function (Buffer){
  15379. var createHash = require('create-hash');
  15380. module.exports = function (seed, len) {
  15381. var t = new Buffer('');
  15382. var i = 0, c;
  15383. while (t.length < len) {
  15384. c = i2ops(i++);
  15385. t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()]);
  15386. }
  15387. return t.slice(0, len);
  15388. };
  15389. function i2ops(c) {
  15390. var out = new Buffer(4);
  15391. out.writeUInt32BE(c,0);
  15392. return out;
  15393. }
  15394. }).call(this,require("buffer").Buffer)
  15395. },{"buffer":54,"create-hash":58}],129:[function(require,module,exports){
  15396. (function (Buffer){
  15397. var parseKeys = require('parse-asn1');
  15398. var mgf = require('./mgf');
  15399. var xor = require('./xor');
  15400. var bn = require('bn.js');
  15401. var crt = require('browserify-rsa');
  15402. var createHash = require('create-hash');
  15403. var withPublic = require('./withPublic');
  15404. module.exports = function privateDecrypt(private_key, enc, reverse) {
  15405. var padding;
  15406. if (private_key.padding) {
  15407. padding = private_key.padding;
  15408. } else if (reverse) {
  15409. padding = 1;
  15410. } else {
  15411. padding = 4;
  15412. }
  15413. var key = parseKeys(private_key);
  15414. var k = key.modulus.byteLength();
  15415. if (enc.length > k || new bn(enc).cmp(key.modulus) >= 0) {
  15416. throw new Error('decryption error');
  15417. }
  15418. var msg;
  15419. if (reverse) {
  15420. msg = withPublic(new bn(enc), key);
  15421. } else {
  15422. msg = crt(enc, key);
  15423. }
  15424. var zBuffer = new Buffer(k - msg.length);
  15425. zBuffer.fill(0);
  15426. msg = Buffer.concat([zBuffer, msg], k);
  15427. if (padding === 4) {
  15428. return oaep(key, msg);
  15429. } else if (padding === 1) {
  15430. return pkcs1(key, msg, reverse);
  15431. } else if (padding === 3) {
  15432. return msg;
  15433. } else {
  15434. throw new Error('unknown padding');
  15435. }
  15436. };
  15437. function oaep(key, msg){
  15438. var n = key.modulus;
  15439. var k = key.modulus.byteLength();
  15440. var mLen = msg.length;
  15441. var iHash = createHash('sha1').update(new Buffer('')).digest();
  15442. var hLen = iHash.length;
  15443. var hLen2 = 2 * hLen;
  15444. if (msg[0] !== 0) {
  15445. throw new Error('decryption error');
  15446. }
  15447. var maskedSeed = msg.slice(1, hLen + 1);
  15448. var maskedDb = msg.slice(hLen + 1);
  15449. var seed = xor(maskedSeed, mgf(maskedDb, hLen));
  15450. var db = xor(maskedDb, mgf(seed, k - hLen - 1));
  15451. if (compare(iHash, db.slice(0, hLen))) {
  15452. throw new Error('decryption error');
  15453. }
  15454. var i = hLen;
  15455. while (db[i] === 0) {
  15456. i++;
  15457. }
  15458. if (db[i++] !== 1) {
  15459. throw new Error('decryption error');
  15460. }
  15461. return db.slice(i);
  15462. }
  15463. function pkcs1(key, msg, reverse){
  15464. var p1 = msg.slice(0, 2);
  15465. var i = 2;
  15466. var status = 0;
  15467. while (msg[i++] !== 0) {
  15468. if (i >= msg.length) {
  15469. status++;
  15470. break;
  15471. }
  15472. }
  15473. var ps = msg.slice(2, i - 1);
  15474. var p2 = msg.slice(i - 1, i);
  15475. if ((p1.toString('hex') !== '0002' && !reverse) || (p1.toString('hex') !== '0001' && reverse)){
  15476. status++;
  15477. }
  15478. if (ps.length < 8) {
  15479. status++;
  15480. }
  15481. if (status) {
  15482. throw new Error('decryption error');
  15483. }
  15484. return msg.slice(i);
  15485. }
  15486. function compare(a, b){
  15487. a = new Buffer(a);
  15488. b = new Buffer(b);
  15489. var dif = 0;
  15490. var len = a.length;
  15491. if (a.length !== b.length) {
  15492. dif++;
  15493. len = Math.min(a.length, b.length);
  15494. }
  15495. var i = -1;
  15496. while (++i < len) {
  15497. dif += (a[i] ^ b[i]);
  15498. }
  15499. return dif;
  15500. }
  15501. }).call(this,require("buffer").Buffer)
  15502. },{"./mgf":128,"./withPublic":131,"./xor":132,"bn.js":25,"browserify-rsa":46,"buffer":54,"create-hash":58,"parse-asn1":118}],130:[function(require,module,exports){
  15503. (function (Buffer){
  15504. var parseKeys = require('parse-asn1');
  15505. var randomBytes = require('randombytes');
  15506. var createHash = require('create-hash');
  15507. var mgf = require('./mgf');
  15508. var xor = require('./xor');
  15509. var bn = require('bn.js');
  15510. var withPublic = require('./withPublic');
  15511. var crt = require('browserify-rsa');
  15512. var constants = {
  15513. RSA_PKCS1_OAEP_PADDING: 4,
  15514. RSA_PKCS1_PADDIN: 1,
  15515. RSA_NO_PADDING: 3
  15516. };
  15517. module.exports = function publicEncrypt(public_key, msg, reverse) {
  15518. var padding;
  15519. if (public_key.padding) {
  15520. padding = public_key.padding;
  15521. } else if (reverse) {
  15522. padding = 1;
  15523. } else {
  15524. padding = 4;
  15525. }
  15526. var key = parseKeys(public_key);
  15527. var paddedMsg;
  15528. if (padding === 4) {
  15529. paddedMsg = oaep(key, msg);
  15530. } else if (padding === 1) {
  15531. paddedMsg = pkcs1(key, msg, reverse);
  15532. } else if (padding === 3) {
  15533. paddedMsg = new bn(msg);
  15534. if (paddedMsg.cmp(key.modulus) >= 0) {
  15535. throw new Error('data too long for modulus');
  15536. }
  15537. } else {
  15538. throw new Error('unknown padding');
  15539. }
  15540. if (reverse) {
  15541. return crt(paddedMsg, key);
  15542. } else {
  15543. return withPublic(paddedMsg, key);
  15544. }
  15545. };
  15546. function oaep(key, msg){
  15547. var k = key.modulus.byteLength();
  15548. var mLen = msg.length;
  15549. var iHash = createHash('sha1').update(new Buffer('')).digest();
  15550. var hLen = iHash.length;
  15551. var hLen2 = 2 * hLen;
  15552. if (mLen > k - hLen2 - 2) {
  15553. throw new Error('message too long');
  15554. }
  15555. var ps = new Buffer(k - mLen - hLen2 - 2);
  15556. ps.fill(0);
  15557. var dblen = k - hLen - 1;
  15558. var seed = randomBytes(hLen);
  15559. var maskedDb = xor(Buffer.concat([iHash, ps, new Buffer([1]), msg], dblen), mgf(seed, dblen));
  15560. var maskedSeed = xor(seed, mgf(maskedDb, hLen));
  15561. return new bn(Buffer.concat([new Buffer([0]), maskedSeed, maskedDb], k));
  15562. }
  15563. function pkcs1(key, msg, reverse){
  15564. var mLen = msg.length;
  15565. var k = key.modulus.byteLength();
  15566. if (mLen > k - 11) {
  15567. throw new Error('message too long');
  15568. }
  15569. var ps;
  15570. if (reverse) {
  15571. ps = new Buffer(k - mLen - 3);
  15572. ps.fill(0xff);
  15573. } else {
  15574. ps = nonZero(k - mLen - 3);
  15575. }
  15576. return new bn(Buffer.concat([new Buffer([0, reverse?1:2]), ps, new Buffer([0]), msg], k));
  15577. }
  15578. function nonZero(len, crypto) {
  15579. var out = new Buffer(len);
  15580. var i = 0;
  15581. var cache = randomBytes(len*2);
  15582. var cur = 0;
  15583. var num;
  15584. while (i < len) {
  15585. if (cur === cache.length) {
  15586. cache = randomBytes(len*2);
  15587. cur = 0;
  15588. }
  15589. num = cache[cur++];
  15590. if (num) {
  15591. out[i++] = num;
  15592. }
  15593. }
  15594. return out;
  15595. }
  15596. }).call(this,require("buffer").Buffer)
  15597. },{"./mgf":128,"./withPublic":131,"./xor":132,"bn.js":25,"browserify-rsa":46,"buffer":54,"create-hash":58,"parse-asn1":118,"randombytes":133}],131:[function(require,module,exports){
  15598. (function (Buffer){
  15599. var bn = require('bn.js');
  15600. function withPublic(paddedMsg, key) {
  15601. return new Buffer(paddedMsg
  15602. .toRed(bn.mont(key.modulus))
  15603. .redPow(new bn(key.publicExponent))
  15604. .fromRed()
  15605. .toArray());
  15606. }
  15607. module.exports = withPublic;
  15608. }).call(this,require("buffer").Buffer)
  15609. },{"bn.js":25,"buffer":54}],132:[function(require,module,exports){
  15610. module.exports = function xor(a, b) {
  15611. var len = a.length;
  15612. var i = -1;
  15613. while (++i < len) {
  15614. a[i] ^= b[i];
  15615. }
  15616. return a
  15617. };
  15618. },{}],133:[function(require,module,exports){
  15619. (function (process,global){
  15620. 'use strict'
  15621. function oldBrowser () {
  15622. throw new Error('secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11')
  15623. }
  15624. var Buffer = require('safe-buffer').Buffer
  15625. var crypto = global.crypto || global.msCrypto
  15626. if (crypto && crypto.getRandomValues) {
  15627. module.exports = randomBytes
  15628. } else {
  15629. module.exports = oldBrowser
  15630. }
  15631. function randomBytes (size, cb) {
  15632. // phantomjs needs to throw
  15633. if (size > 65536) throw new Error('requested too many random bytes')
  15634. // in case browserify isn't using the Uint8Array version
  15635. var rawBytes = new global.Uint8Array(size)
  15636. // This will not work in older browsers.
  15637. // See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues
  15638. if (size > 0) { // getRandomValues fails on IE if size == 0
  15639. crypto.getRandomValues(rawBytes)
  15640. }
  15641. // XXX: phantomjs doesn't like a buffer being passed here
  15642. var bytes = Buffer.from(rawBytes.buffer)
  15643. if (typeof cb === 'function') {
  15644. return process.nextTick(function () {
  15645. cb(null, bytes)
  15646. })
  15647. }
  15648. return bytes
  15649. }
  15650. }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
  15651. },{"_process":126,"safe-buffer":148}],134:[function(require,module,exports){
  15652. module.exports = require('./lib/_stream_duplex.js');
  15653. },{"./lib/_stream_duplex.js":135}],135:[function(require,module,exports){
  15654. // Copyright Joyent, Inc. and other Node contributors.
  15655. //
  15656. // Permission is hereby granted, free of charge, to any person obtaining a
  15657. // copy of this software and associated documentation files (the
  15658. // "Software"), to deal in the Software without restriction, including
  15659. // without limitation the rights to use, copy, modify, merge, publish,
  15660. // distribute, sublicense, and/or sell copies of the Software, and to permit
  15661. // persons to whom the Software is furnished to do so, subject to the
  15662. // following conditions:
  15663. //
  15664. // The above copyright notice and this permission notice shall be included
  15665. // in all copies or substantial portions of the Software.
  15666. //
  15667. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  15668. // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  15669. // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
  15670. // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
  15671. // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
  15672. // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
  15673. // USE OR OTHER DEALINGS IN THE SOFTWARE.
  15674. // a duplex stream is just a stream that is both readable and writable.
  15675. // Since JS doesn't have multiple prototypal inheritance, this class
  15676. // prototypally inherits from Readable, and then parasitically from
  15677. // Writable.
  15678. 'use strict';
  15679. /*<replacement>*/
  15680. var processNextTick = require('process-nextick-args');
  15681. /*</replacement>*/
  15682. /*<replacement>*/
  15683. var objectKeys = Object.keys || function (obj) {
  15684. var keys = [];
  15685. for (var key in obj) {
  15686. keys.push(key);
  15687. }return keys;
  15688. };
  15689. /*</replacement>*/
  15690. module.exports = Duplex;
  15691. /*<replacement>*/
  15692. var util = require('core-util-is');
  15693. util.inherits = require('inherits');
  15694. /*</replacement>*/
  15695. var Readable = require('./_stream_readable');
  15696. var Writable = require('./_stream_writable');
  15697. util.inherits(Duplex, Readable);
  15698. var keys = objectKeys(Writable.prototype);
  15699. for (var v = 0; v < keys.length; v++) {
  15700. var method = keys[v];
  15701. if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
  15702. }
  15703. function Duplex(options) {
  15704. if (!(this instanceof Duplex)) return new Duplex(options);
  15705. Readable.call(this, options);
  15706. Writable.call(this, options);
  15707. if (options && options.readable === false) this.readable = false;
  15708. if (options && options.writable === false) this.writable = false;
  15709. this.allowHalfOpen = true;
  15710. if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
  15711. this.once('end', onend);
  15712. }
  15713. // the no-half-open enforcer
  15714. function onend() {
  15715. // if we allow half-open state, or if the writable side ended,
  15716. // then we're ok.
  15717. if (this.allowHalfOpen || this._writableState.ended) return;
  15718. // no more data can be written.
  15719. // But allow more writes to happen in this tick.
  15720. processNextTick(onEndNT, this);
  15721. }
  15722. function onEndNT(self) {
  15723. self.end();
  15724. }
  15725. Object.defineProperty(Duplex.prototype, 'destroyed', {
  15726. get: function () {
  15727. if (this._readableState === undefined || this._writableState === undefined) {
  15728. return false;
  15729. }
  15730. return this._readableState.destroyed && this._writableState.destroyed;
  15731. },
  15732. set: function (value) {
  15733. // we ignore the value if the stream
  15734. // has not been initialized yet
  15735. if (this._readableState === undefined || this._writableState === undefined) {
  15736. return;
  15737. }
  15738. // backward compatibility, the user is explicitly
  15739. // managing destroyed
  15740. this._readableState.destroyed = value;
  15741. this._writableState.destroyed = value;
  15742. }
  15743. });
  15744. Duplex.prototype._destroy = function (err, cb) {
  15745. this.push(null);
  15746. this.end();
  15747. processNextTick(cb, err);
  15748. };
  15749. function forEach(xs, f) {
  15750. for (var i = 0, l = xs.length; i < l; i++) {
  15751. f(xs[i], i);
  15752. }
  15753. }
  15754. },{"./_stream_readable":137,"./_stream_writable":139,"core-util-is":56,"inherits":108,"process-nextick-args":125}],136:[function(require,module,exports){
  15755. // Copyright Joyent, Inc. and other Node contributors.
  15756. //
  15757. // Permission is hereby granted, free of charge, to any person obtaining a
  15758. // copy of this software and associated documentation files (the
  15759. // "Software"), to deal in the Software without restriction, including
  15760. // without limitation the rights to use, copy, modify, merge, publish,
  15761. // distribute, sublicense, and/or sell copies of the Software, and to permit
  15762. // persons to whom the Software is furnished to do so, subject to the
  15763. // following conditions:
  15764. //
  15765. // The above copyright notice and this permission notice shall be included
  15766. // in all copies or substantial portions of the Software.
  15767. //
  15768. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  15769. // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  15770. // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
  15771. // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
  15772. // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
  15773. // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
  15774. // USE OR OTHER DEALINGS IN THE SOFTWARE.
  15775. // a passthrough stream.
  15776. // basically just the most minimal sort of Transform stream.
  15777. // Every written chunk gets output as-is.
  15778. 'use strict';
  15779. module.exports = PassThrough;
  15780. var Transform = require('./_stream_transform');
  15781. /*<replacement>*/
  15782. var util = require('core-util-is');
  15783. util.inherits = require('inherits');
  15784. /*</replacement>*/
  15785. util.inherits(PassThrough, Transform);
  15786. function PassThrough(options) {
  15787. if (!(this instanceof PassThrough)) return new PassThrough(options);
  15788. Transform.call(this, options);
  15789. }
  15790. PassThrough.prototype._transform = function (chunk, encoding, cb) {
  15791. cb(null, chunk);
  15792. };
  15793. },{"./_stream_transform":138,"core-util-is":56,"inherits":108}],137:[function(require,module,exports){
  15794. (function (process,global){
  15795. // Copyright Joyent, Inc. and other Node contributors.
  15796. //
  15797. // Permission is hereby granted, free of charge, to any person obtaining a
  15798. // copy of this software and associated documentation files (the
  15799. // "Software"), to deal in the Software without restriction, including
  15800. // without limitation the rights to use, copy, modify, merge, publish,
  15801. // distribute, sublicense, and/or sell copies of the Software, and to permit
  15802. // persons to whom the Software is furnished to do so, subject to the
  15803. // following conditions:
  15804. //
  15805. // The above copyright notice and this permission notice shall be included
  15806. // in all copies or substantial portions of the Software.
  15807. //
  15808. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  15809. // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  15810. // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
  15811. // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
  15812. // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
  15813. // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
  15814. // USE OR OTHER DEALINGS IN THE SOFTWARE.
  15815. 'use strict';
  15816. /*<replacement>*/
  15817. var processNextTick = require('process-nextick-args');
  15818. /*</replacement>*/
  15819. module.exports = Readable;
  15820. /*<replacement>*/
  15821. var isArray = require('isarray');
  15822. /*</replacement>*/
  15823. /*<replacement>*/
  15824. var Duplex;
  15825. /*</replacement>*/
  15826. Readable.ReadableState = ReadableState;
  15827. /*<replacement>*/
  15828. var EE = require('events').EventEmitter;
  15829. var EElistenerCount = function (emitter, type) {
  15830. return emitter.listeners(type).length;
  15831. };
  15832. /*</replacement>*/
  15833. /*<replacement>*/
  15834. var Stream = require('./internal/streams/stream');
  15835. /*</replacement>*/
  15836. // TODO(bmeurer): Change this back to const once hole checks are
  15837. // properly optimized away early in Ignition+TurboFan.
  15838. /*<replacement>*/
  15839. var Buffer = require('safe-buffer').Buffer;
  15840. var OurUint8Array = global.Uint8Array || function () {};
  15841. function _uint8ArrayToBuffer(chunk) {
  15842. return Buffer.from(chunk);
  15843. }
  15844. function _isUint8Array(obj) {
  15845. return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
  15846. }
  15847. /*</replacement>*/
  15848. /*<replacement>*/
  15849. var util = require('core-util-is');
  15850. util.inherits = require('inherits');
  15851. /*</replacement>*/
  15852. /*<replacement>*/
  15853. var debugUtil = require('util');
  15854. var debug = void 0;
  15855. if (debugUtil && debugUtil.debuglog) {
  15856. debug = debugUtil.debuglog('stream');
  15857. } else {
  15858. debug = function () {};
  15859. }
  15860. /*</replacement>*/
  15861. var BufferList = require('./internal/streams/BufferList');
  15862. var destroyImpl = require('./internal/streams/destroy');
  15863. var StringDecoder;
  15864. util.inherits(Readable, Stream);
  15865. var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];
  15866. function prependListener(emitter, event, fn) {
  15867. // Sadly this is not cacheable as some libraries bundle their own
  15868. // event emitter implementation with them.
  15869. if (typeof emitter.prependListener === 'function') {
  15870. return emitter.prependListener(event, fn);
  15871. } else {
  15872. // This is a hack to make sure that our error handler is attached before any
  15873. // userland ones. NEVER DO THIS. This is here only because this code needs
  15874. // to continue to work with older versions of Node.js that do not include
  15875. // the prependListener() method. The goal is to eventually remove this hack.
  15876. if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];
  15877. }
  15878. }
  15879. function ReadableState(options, stream) {
  15880. Duplex = Duplex || require('./_stream_duplex');
  15881. options = options || {};
  15882. // object stream flag. Used to make read(n) ignore n and to
  15883. // make all the buffer merging and length checks go away
  15884. this.objectMode = !!options.objectMode;
  15885. if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
  15886. // the point at which it stops calling _read() to fill the buffer
  15887. // Note: 0 is a valid value, means "don't call _read preemptively ever"
  15888. var hwm = options.highWaterMark;
  15889. var defaultHwm = this.objectMode ? 16 : 16 * 1024;
  15890. this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;
  15891. // cast to ints.
  15892. this.highWaterMark = Math.floor(this.highWaterMark);
  15893. // A linked list is used to store data chunks instead of an array because the
  15894. // linked list can remove elements from the beginning faster than
  15895. // array.shift()
  15896. this.buffer = new BufferList();
  15897. this.length = 0;
  15898. this.pipes = null;
  15899. this.pipesCount = 0;
  15900. this.flowing = null;
  15901. this.ended = false;
  15902. this.endEmitted = false;
  15903. this.reading = false;
  15904. // a flag to be able to tell if the event 'readable'/'data' is emitted
  15905. // immediately, or on a later tick. We set this to true at first, because
  15906. // any actions that shouldn't happen until "later" should generally also
  15907. // not happen before the first read call.
  15908. this.sync = true;
  15909. // whenever we return null, then we set a flag to say
  15910. // that we're awaiting a 'readable' event emission.
  15911. this.needReadable = false;
  15912. this.emittedReadable = false;
  15913. this.readableListening = false;
  15914. this.resumeScheduled = false;
  15915. // has it been destroyed
  15916. this.destroyed = false;
  15917. // Crypto is kind of old and crusty. Historically, its default string
  15918. // encoding is 'binary' so we have to make this configurable.
  15919. // Everything else in the universe uses 'utf8', though.
  15920. this.defaultEncoding = options.defaultEncoding || 'utf8';
  15921. // the number of writers that are awaiting a drain event in .pipe()s
  15922. this.awaitDrain = 0;
  15923. // if true, a maybeReadMore has been scheduled
  15924. this.readingMore = false;
  15925. this.decoder = null;
  15926. this.encoding = null;
  15927. if (options.encoding) {
  15928. if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
  15929. this.decoder = new StringDecoder(options.encoding);
  15930. this.encoding = options.encoding;
  15931. }
  15932. }
  15933. function Readable(options) {
  15934. Duplex = Duplex || require('./_stream_duplex');
  15935. if (!(this instanceof Readable)) return new Readable(options);
  15936. this._readableState = new ReadableState(options, this);
  15937. // legacy
  15938. this.readable = true;
  15939. if (options) {
  15940. if (typeof options.read === 'function') this._read = options.read;
  15941. if (typeof options.destroy === 'function') this._destroy = options.destroy;
  15942. }
  15943. Stream.call(this);
  15944. }
  15945. Object.defineProperty(Readable.prototype, 'destroyed', {
  15946. get: function () {
  15947. if (this._readableState === undefined) {
  15948. return false;
  15949. }
  15950. return this._readableState.destroyed;
  15951. },
  15952. set: function (value) {
  15953. // we ignore the value if the stream
  15954. // has not been initialized yet
  15955. if (!this._readableState) {
  15956. return;
  15957. }
  15958. // backward compatibility, the user is explicitly
  15959. // managing destroyed
  15960. this._readableState.destroyed = value;
  15961. }
  15962. });
  15963. Readable.prototype.destroy = destroyImpl.destroy;
  15964. Readable.prototype._undestroy = destroyImpl.undestroy;
  15965. Readable.prototype._destroy = function (err, cb) {
  15966. this.push(null);
  15967. cb(err);
  15968. };
  15969. // Manually shove something into the read() buffer.
  15970. // This returns true if the highWaterMark has not been hit yet,
  15971. // similar to how Writable.write() returns true if you should
  15972. // write() some more.
  15973. Readable.prototype.push = function (chunk, encoding) {
  15974. var state = this._readableState;
  15975. var skipChunkCheck;
  15976. if (!state.objectMode) {
  15977. if (typeof chunk === 'string') {
  15978. encoding = encoding || state.defaultEncoding;
  15979. if (encoding !== state.encoding) {
  15980. chunk = Buffer.from(chunk, encoding);
  15981. encoding = '';
  15982. }
  15983. skipChunkCheck = true;
  15984. }
  15985. } else {
  15986. skipChunkCheck = true;
  15987. }
  15988. return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);
  15989. };
  15990. // Unshift should *always* be something directly out of read()
  15991. Readable.prototype.unshift = function (chunk) {
  15992. return readableAddChunk(this, chunk, null, true, false);
  15993. };
  15994. function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {
  15995. var state = stream._readableState;
  15996. if (chunk === null) {
  15997. state.reading = false;
  15998. onEofChunk(stream, state);
  15999. } else {
  16000. var er;
  16001. if (!skipChunkCheck) er = chunkInvalid(state, chunk);
  16002. if (er) {
  16003. stream.emit('error', er);
  16004. } else if (state.objectMode || chunk && chunk.length > 0) {
  16005. if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {
  16006. chunk = _uint8ArrayToBuffer(chunk);
  16007. }
  16008. if (addToFront) {
  16009. if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);
  16010. } else if (state.ended) {
  16011. stream.emit('error', new Error('stream.push() after EOF'));
  16012. } else {
  16013. state.reading = false;
  16014. if (state.decoder && !encoding) {
  16015. chunk = state.decoder.write(chunk);
  16016. if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);
  16017. } else {
  16018. addChunk(stream, state, chunk, false);
  16019. }
  16020. }
  16021. } else if (!addToFront) {
  16022. state.reading = false;
  16023. }
  16024. }
  16025. return needMoreData(state);
  16026. }
  16027. function addChunk(stream, state, chunk, addToFront) {
  16028. if (state.flowing && state.length === 0 && !state.sync) {
  16029. stream.emit('data', chunk);
  16030. stream.read(0);
  16031. } else {
  16032. // update the buffer info.
  16033. state.length += state.objectMode ? 1 : chunk.length;
  16034. if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
  16035. if (state.needReadable) emitReadable(stream);
  16036. }
  16037. maybeReadMore(stream, state);
  16038. }
  16039. function chunkInvalid(state, chunk) {
  16040. var er;
  16041. if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
  16042. er = new TypeError('Invalid non-string/buffer chunk');
  16043. }
  16044. return er;
  16045. }
  16046. // if it's past the high water mark, we can push in some more.
  16047. // Also, if we have no data yet, we can stand some
  16048. // more bytes. This is to work around cases where hwm=0,
  16049. // such as the repl. Also, if the push() triggered a
  16050. // readable event, and the user called read(largeNumber) such that
  16051. // needReadable was set, then we ought to push more, so that another
  16052. // 'readable' event will be triggered.
  16053. function needMoreData(state) {
  16054. return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);
  16055. }
  16056. Readable.prototype.isPaused = function () {
  16057. return this._readableState.flowing === false;
  16058. };
  16059. // backwards compatibility.
  16060. Readable.prototype.setEncoding = function (enc) {
  16061. if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
  16062. this._readableState.decoder = new StringDecoder(enc);
  16063. this._readableState.encoding = enc;
  16064. return this;
  16065. };
  16066. // Don't raise the hwm > 8MB
  16067. var MAX_HWM = 0x800000;
  16068. function computeNewHighWaterMark(n) {
  16069. if (n >= MAX_HWM) {
  16070. n = MAX_HWM;
  16071. } else {
  16072. // Get the next highest power of 2 to prevent increasing hwm excessively in
  16073. // tiny amounts
  16074. n--;
  16075. n |= n >>> 1;
  16076. n |= n >>> 2;
  16077. n |= n >>> 4;
  16078. n |= n >>> 8;
  16079. n |= n >>> 16;
  16080. n++;
  16081. }
  16082. return n;
  16083. }
  16084. // This function is designed to be inlinable, so please take care when making
  16085. // changes to the function body.
  16086. function howMuchToRead(n, state) {
  16087. if (n <= 0 || state.length === 0 && state.ended) return 0;
  16088. if (state.objectMode) return 1;
  16089. if (n !== n) {
  16090. // Only flow one buffer at a time
  16091. if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
  16092. }
  16093. // If we're asking for more than the current hwm, then raise the hwm.
  16094. if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
  16095. if (n <= state.length) return n;
  16096. // Don't have enough
  16097. if (!state.ended) {
  16098. state.needReadable = true;
  16099. return 0;
  16100. }
  16101. return state.length;
  16102. }
  16103. // you can override either this method, or the async _read(n) below.
  16104. Readable.prototype.read = function (n) {
  16105. debug('read', n);
  16106. n = parseInt(n, 10);
  16107. var state = this._readableState;
  16108. var nOrig = n;
  16109. if (n !== 0) state.emittedReadable = false;
  16110. // if we're doing read(0) to trigger a readable event, but we
  16111. // already have a bunch of data in the buffer, then just trigger
  16112. // the 'readable' event and move on.
  16113. if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {
  16114. debug('read: emitReadable', state.length, state.ended);
  16115. if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);
  16116. return null;
  16117. }
  16118. n = howMuchToRead(n, state);
  16119. // if we've ended, and we're now clear, then finish it up.
  16120. if (n === 0 && state.ended) {
  16121. if (state.length === 0) endReadable(this);
  16122. return null;
  16123. }
  16124. // All the actual chunk generation logic needs to be
  16125. // *below* the call to _read. The reason is that in certain
  16126. // synthetic stream cases, such as passthrough streams, _read
  16127. // may be a completely synchronous operation which may change
  16128. // the state of the read buffer, providing enough data when
  16129. // before there was *not* enough.
  16130. //
  16131. // So, the steps are:
  16132. // 1. Figure out what the state of things will be after we do
  16133. // a read from the buffer.
  16134. //
  16135. // 2. If that resulting state will trigger a _read, then call _read.
  16136. // Note that this may be asynchronous, or synchronous. Yes, it is
  16137. // deeply ugly to write APIs this way, but that still doesn't mean
  16138. // that the Readable class should behave improperly, as streams are
  16139. // designed to be sync/async agnostic.
  16140. // Take note if the _read call is sync or async (ie, if the read call
  16141. // has returned yet), so that we know whether or not it's safe to emit
  16142. // 'readable' etc.
  16143. //
  16144. // 3. Actually pull the requested chunks out of the buffer and return.
  16145. // if we need a readable event, then we need to do some reading.
  16146. var doRead = state.needReadable;
  16147. debug('need readable', doRead);
  16148. // if we currently have less than the highWaterMark, then also read some
  16149. if (state.length === 0 || state.length - n < state.highWaterMark) {
  16150. doRead = true;
  16151. debug('length less than watermark', doRead);
  16152. }
  16153. // however, if we've ended, then there's no point, and if we're already
  16154. // reading, then it's unnecessary.
  16155. if (state.ended || state.reading) {
  16156. doRead = false;
  16157. debug('reading or ended', doRead);
  16158. } else if (doRead) {
  16159. debug('do read');
  16160. state.reading = true;
  16161. state.sync = true;
  16162. // if the length is currently zero, then we *need* a readable event.
  16163. if (state.length === 0) state.needReadable = true;
  16164. // call internal read method
  16165. this._read(state.highWaterMark);
  16166. state.sync = false;
  16167. // If _read pushed data synchronously, then `reading` will be false,
  16168. // and we need to re-evaluate how much data we can return to the user.
  16169. if (!state.reading) n = howMuchToRead(nOrig, state);
  16170. }
  16171. var ret;
  16172. if (n > 0) ret = fromList(n, state);else ret = null;
  16173. if (ret === null) {
  16174. state.needReadable = true;
  16175. n = 0;
  16176. } else {
  16177. state.length -= n;
  16178. }
  16179. if (state.length === 0) {
  16180. // If we have nothing in the buffer, then we want to know
  16181. // as soon as we *do* get something into the buffer.
  16182. if (!state.ended) state.needReadable = true;
  16183. // If we tried to read() past the EOF, then emit end on the next tick.
  16184. if (nOrig !== n && state.ended) endReadable(this);
  16185. }
  16186. if (ret !== null) this.emit('data', ret);
  16187. return ret;
  16188. };
  16189. function onEofChunk(stream, state) {
  16190. if (state.ended) return;
  16191. if (state.decoder) {
  16192. var chunk = state.decoder.end();
  16193. if (chunk && chunk.length) {
  16194. state.buffer.push(chunk);
  16195. state.length += state.objectMode ? 1 : chunk.length;
  16196. }
  16197. }
  16198. state.ended = true;
  16199. // emit 'readable' now to make sure it gets picked up.
  16200. emitReadable(stream);
  16201. }
  16202. // Don't emit readable right away in sync mode, because this can trigger
  16203. // another read() call => stack overflow. This way, it might trigger
  16204. // a nextTick recursion warning, but that's not so bad.
  16205. function emitReadable(stream) {
  16206. var state = stream._readableState;
  16207. state.needReadable = false;
  16208. if (!state.emittedReadable) {
  16209. debug('emitReadable', state.flowing);
  16210. state.emittedReadable = true;
  16211. if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
  16212. }
  16213. }
  16214. function emitReadable_(stream) {
  16215. debug('emit readable');
  16216. stream.emit('readable');
  16217. flow(stream);
  16218. }
  16219. // at this point, the user has presumably seen the 'readable' event,
  16220. // and called read() to consume some data. that may have triggered
  16221. // in turn another _read(n) call, in which case reading = true if
  16222. // it's in progress.
  16223. // However, if we're not ended, or reading, and the length < hwm,
  16224. // then go ahead and try to read some more preemptively.
  16225. function maybeReadMore(stream, state) {
  16226. if (!state.readingMore) {
  16227. state.readingMore = true;
  16228. processNextTick(maybeReadMore_, stream, state);
  16229. }
  16230. }
  16231. function maybeReadMore_(stream, state) {
  16232. var len = state.length;
  16233. while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
  16234. debug('maybeReadMore read 0');
  16235. stream.read(0);
  16236. if (len === state.length)
  16237. // didn't get any data, stop spinning.
  16238. break;else len = state.length;
  16239. }
  16240. state.readingMore = false;
  16241. }
  16242. // abstract method. to be overridden in specific implementation classes.
  16243. // call cb(er, data) where data is <= n in length.
  16244. // for virtual (non-string, non-buffer) streams, "length" is somewhat
  16245. // arbitrary, and perhaps not very meaningful.
  16246. Readable.prototype._read = function (n) {
  16247. this.emit('error', new Error('_read() is not implemented'));
  16248. };
  16249. Readable.prototype.pipe = function (dest, pipeOpts) {
  16250. var src = this;
  16251. var state = this._readableState;
  16252. switch (state.pipesCount) {
  16253. case 0:
  16254. state.pipes = dest;
  16255. break;
  16256. case 1:
  16257. state.pipes = [state.pipes, dest];
  16258. break;
  16259. default:
  16260. state.pipes.push(dest);
  16261. break;
  16262. }
  16263. state.pipesCount += 1;
  16264. debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
  16265. var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
  16266. var endFn = doEnd ? onend : unpipe;
  16267. if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
  16268. dest.on('unpipe', onunpipe);
  16269. function onunpipe(readable, unpipeInfo) {
  16270. debug('onunpipe');
  16271. if (readable === src) {
  16272. if (unpipeInfo && unpipeInfo.hasUnpiped === false) {
  16273. unpipeInfo.hasUnpiped = true;
  16274. cleanup();
  16275. }
  16276. }
  16277. }
  16278. function onend() {
  16279. debug('onend');
  16280. dest.end();
  16281. }
  16282. // when the dest drains, it reduces the awaitDrain counter
  16283. // on the source. This would be more elegant with a .once()
  16284. // handler in flow(), but adding and removing repeatedly is
  16285. // too slow.
  16286. var ondrain = pipeOnDrain(src);
  16287. dest.on('drain', ondrain);
  16288. var cleanedUp = false;
  16289. function cleanup() {
  16290. debug('cleanup');
  16291. // cleanup event handlers once the pipe is broken
  16292. dest.removeListener('close', onclose);
  16293. dest.removeListener('finish', onfinish);
  16294. dest.removeListener('drain', ondrain);
  16295. dest.removeListener('error', onerror);
  16296. dest.removeListener('unpipe', onunpipe);
  16297. src.removeListener('end', onend);
  16298. src.removeListener('end', unpipe);
  16299. src.removeListener('data', ondata);
  16300. cleanedUp = true;
  16301. // if the reader is waiting for a drain event from this
  16302. // specific writer, then it would cause it to never start
  16303. // flowing again.
  16304. // So, if this is awaiting a drain, then we just call it now.
  16305. // If we don't know, then assume that we are waiting for one.
  16306. if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
  16307. }
  16308. // If the user pushes more data while we're writing to dest then we'll end up
  16309. // in ondata again. However, we only want to increase awaitDrain once because
  16310. // dest will only emit one 'drain' event for the multiple writes.
  16311. // => Introduce a guard on increasing awaitDrain.
  16312. var increasedAwaitDrain = false;
  16313. src.on('data', ondata);
  16314. function ondata(chunk) {
  16315. debug('ondata');
  16316. increasedAwaitDrain = false;
  16317. var ret = dest.write(chunk);
  16318. if (false === ret && !increasedAwaitDrain) {
  16319. // If the user unpiped during `dest.write()`, it is possible
  16320. // to get stuck in a permanently paused state if that write
  16321. // also returned false.
  16322. // => Check whether `dest` is still a piping destination.
  16323. if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {
  16324. debug('false write response, pause', src._readableState.awaitDrain);
  16325. src._readableState.awaitDrain++;
  16326. increasedAwaitDrain = true;
  16327. }
  16328. src.pause();
  16329. }
  16330. }
  16331. // if the dest has an error, then stop piping into it.
  16332. // however, don't suppress the throwing behavior for this.
  16333. function onerror(er) {
  16334. debug('onerror', er);
  16335. unpipe();
  16336. dest.removeListener('error', onerror);
  16337. if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);
  16338. }
  16339. // Make sure our error handler is attached before userland ones.
  16340. prependListener(dest, 'error', onerror);
  16341. // Both close and finish should trigger unpipe, but only once.
  16342. function onclose() {
  16343. dest.removeListener('finish', onfinish);
  16344. unpipe();
  16345. }
  16346. dest.once('close', onclose);
  16347. function onfinish() {
  16348. debug('onfinish');
  16349. dest.removeListener('close', onclose);
  16350. unpipe();
  16351. }
  16352. dest.once('finish', onfinish);
  16353. function unpipe() {
  16354. debug('unpipe');
  16355. src.unpipe(dest);
  16356. }
  16357. // tell the dest that it's being piped to
  16358. dest.emit('pipe', src);
  16359. // start the flow if it hasn't been started already.
  16360. if (!state.flowing) {
  16361. debug('pipe resume');
  16362. src.resume();
  16363. }
  16364. return dest;
  16365. };
  16366. function pipeOnDrain(src) {
  16367. return function () {
  16368. var state = src._readableState;
  16369. debug('pipeOnDrain', state.awaitDrain);
  16370. if (state.awaitDrain) state.awaitDrain--;
  16371. if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {
  16372. state.flowing = true;
  16373. flow(src);
  16374. }
  16375. };
  16376. }
  16377. Readable.prototype.unpipe = function (dest) {
  16378. var state = this._readableState;
  16379. var unpipeInfo = { hasUnpiped: false };
  16380. // if we're not piping anywhere, then do nothing.
  16381. if (state.pipesCount === 0) return this;
  16382. // just one destination. most common case.
  16383. if (state.pipesCount === 1) {
  16384. // passed in one, but it's not the right one.
  16385. if (dest && dest !== state.pipes) return this;
  16386. if (!dest) dest = state.pipes;
  16387. // got a match.
  16388. state.pipes = null;
  16389. state.pipesCount = 0;
  16390. state.flowing = false;
  16391. if (dest) dest.emit('unpipe', this, unpipeInfo);
  16392. return this;
  16393. }
  16394. // slow case. multiple pipe destinations.
  16395. if (!dest) {
  16396. // remove all.
  16397. var dests = state.pipes;
  16398. var len = state.pipesCount;
  16399. state.pipes = null;
  16400. state.pipesCount = 0;
  16401. state.flowing = false;
  16402. for (var i = 0; i < len; i++) {
  16403. dests[i].emit('unpipe', this, unpipeInfo);
  16404. }return this;
  16405. }
  16406. // try to find the right one.
  16407. var index = indexOf(state.pipes, dest);
  16408. if (index === -1) return this;
  16409. state.pipes.splice(index, 1);
  16410. state.pipesCount -= 1;
  16411. if (state.pipesCount === 1) state.pipes = state.pipes[0];
  16412. dest.emit('unpipe', this, unpipeInfo);
  16413. return this;
  16414. };
  16415. // set up data events if they are asked for
  16416. // Ensure readable listeners eventually get something
  16417. Readable.prototype.on = function (ev, fn) {
  16418. var res = Stream.prototype.on.call(this, ev, fn);
  16419. if (ev === 'data') {
  16420. // Start flowing on next tick if stream isn't explicitly paused
  16421. if (this._readableState.flowing !== false) this.resume();
  16422. } else if (ev === 'readable') {
  16423. var state = this._readableState;
  16424. if (!state.endEmitted && !state.readableListening) {
  16425. state.readableListening = state.needReadable = true;
  16426. state.emittedReadable = false;
  16427. if (!state.reading) {
  16428. processNextTick(nReadingNextTick, this);
  16429. } else if (state.length) {
  16430. emitReadable(this);
  16431. }
  16432. }
  16433. }
  16434. return res;
  16435. };
  16436. Readable.prototype.addListener = Readable.prototype.on;
  16437. function nReadingNextTick(self) {
  16438. debug('readable nexttick read 0');
  16439. self.read(0);
  16440. }
  16441. // pause() and resume() are remnants of the legacy readable stream API
  16442. // If the user uses them, then switch into old mode.
  16443. Readable.prototype.resume = function () {
  16444. var state = this._readableState;
  16445. if (!state.flowing) {
  16446. debug('resume');
  16447. state.flowing = true;
  16448. resume(this, state);
  16449. }
  16450. return this;
  16451. };
  16452. function resume(stream, state) {
  16453. if (!state.resumeScheduled) {
  16454. state.resumeScheduled = true;
  16455. processNextTick(resume_, stream, state);
  16456. }
  16457. }
  16458. function resume_(stream, state) {
  16459. if (!state.reading) {
  16460. debug('resume read 0');
  16461. stream.read(0);
  16462. }
  16463. state.resumeScheduled = false;
  16464. state.awaitDrain = 0;
  16465. stream.emit('resume');
  16466. flow(stream);
  16467. if (state.flowing && !state.reading) stream.read(0);
  16468. }
  16469. Readable.prototype.pause = function () {
  16470. debug('call pause flowing=%j', this._readableState.flowing);
  16471. if (false !== this._readableState.flowing) {
  16472. debug('pause');
  16473. this._readableState.flowing = false;
  16474. this.emit('pause');
  16475. }
  16476. return this;
  16477. };
  16478. function flow(stream) {
  16479. var state = stream._readableState;
  16480. debug('flow', state.flowing);
  16481. while (state.flowing && stream.read() !== null) {}
  16482. }
  16483. // wrap an old-style stream as the async data source.
  16484. // This is *not* part of the readable stream interface.
  16485. // It is an ugly unfortunate mess of history.
  16486. Readable.prototype.wrap = function (stream) {
  16487. var state = this._readableState;
  16488. var paused = false;
  16489. var self = this;
  16490. stream.on('end', function () {
  16491. debug('wrapped end');
  16492. if (state.decoder && !state.ended) {
  16493. var chunk = state.decoder.end();
  16494. if (chunk && chunk.length) self.push(chunk);
  16495. }
  16496. self.push(null);
  16497. });
  16498. stream.on('data', function (chunk) {
  16499. debug('wrapped data');
  16500. if (state.decoder) chunk = state.decoder.write(chunk);
  16501. // don't skip over falsy values in objectMode
  16502. if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
  16503. var ret = self.push(chunk);
  16504. if (!ret) {
  16505. paused = true;
  16506. stream.pause();
  16507. }
  16508. });
  16509. // proxy all the other methods.
  16510. // important when wrapping filters and duplexes.
  16511. for (var i in stream) {
  16512. if (this[i] === undefined && typeof stream[i] === 'function') {
  16513. this[i] = function (method) {
  16514. return function () {
  16515. return stream[method].apply(stream, arguments);
  16516. };
  16517. }(i);
  16518. }
  16519. }
  16520. // proxy certain important events.
  16521. for (var n = 0; n < kProxyEvents.length; n++) {
  16522. stream.on(kProxyEvents[n], self.emit.bind(self, kProxyEvents[n]));
  16523. }
  16524. // when we try to consume some more bytes, simply unpause the
  16525. // underlying stream.
  16526. self._read = function (n) {
  16527. debug('wrapped _read', n);
  16528. if (paused) {
  16529. paused = false;
  16530. stream.resume();
  16531. }
  16532. };
  16533. return self;
  16534. };
  16535. // exposed for testing purposes only.
  16536. Readable._fromList = fromList;
  16537. // Pluck off n bytes from an array of buffers.
  16538. // Length is the combined lengths of all the buffers in the list.
  16539. // This function is designed to be inlinable, so please take care when making
  16540. // changes to the function body.
  16541. function fromList(n, state) {
  16542. // nothing buffered
  16543. if (state.length === 0) return null;
  16544. var ret;
  16545. if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {
  16546. // read it all, truncate the list
  16547. if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);
  16548. state.buffer.clear();
  16549. } else {
  16550. // read part of list
  16551. ret = fromListPartial(n, state.buffer, state.decoder);
  16552. }
  16553. return ret;
  16554. }
  16555. // Extracts only enough buffered data to satisfy the amount requested.
  16556. // This function is designed to be inlinable, so please take care when making
  16557. // changes to the function body.
  16558. function fromListPartial(n, list, hasStrings) {
  16559. var ret;
  16560. if (n < list.head.data.length) {
  16561. // slice is the same for buffers and strings
  16562. ret = list.head.data.slice(0, n);
  16563. list.head.data = list.head.data.slice(n);
  16564. } else if (n === list.head.data.length) {
  16565. // first chunk is a perfect match
  16566. ret = list.shift();
  16567. } else {
  16568. // result spans more than one buffer
  16569. ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
  16570. }
  16571. return ret;
  16572. }
  16573. // Copies a specified amount of characters from the list of buffered data
  16574. // chunks.
  16575. // This function is designed to be inlinable, so please take care when making
  16576. // changes to the function body.
  16577. function copyFromBufferString(n, list) {
  16578. var p = list.head;
  16579. var c = 1;
  16580. var ret = p.data;
  16581. n -= ret.length;
  16582. while (p = p.next) {
  16583. var str = p.data;
  16584. var nb = n > str.length ? str.length : n;
  16585. if (nb === str.length) ret += str;else ret += str.slice(0, n);
  16586. n -= nb;
  16587. if (n === 0) {
  16588. if (nb === str.length) {
  16589. ++c;
  16590. if (p.next) list.head = p.next;else list.head = list.tail = null;
  16591. } else {
  16592. list.head = p;
  16593. p.data = str.slice(nb);
  16594. }
  16595. break;
  16596. }
  16597. ++c;
  16598. }
  16599. list.length -= c;
  16600. return ret;
  16601. }
  16602. // Copies a specified amount of bytes from the list of buffered data chunks.
  16603. // This function is designed to be inlinable, so please take care when making
  16604. // changes to the function body.
  16605. function copyFromBuffer(n, list) {
  16606. var ret = Buffer.allocUnsafe(n);
  16607. var p = list.head;
  16608. var c = 1;
  16609. p.data.copy(ret);
  16610. n -= p.data.length;
  16611. while (p = p.next) {
  16612. var buf = p.data;
  16613. var nb = n > buf.length ? buf.length : n;
  16614. buf.copy(ret, ret.length - n, 0, nb);
  16615. n -= nb;
  16616. if (n === 0) {
  16617. if (nb === buf.length) {
  16618. ++c;
  16619. if (p.next) list.head = p.next;else list.head = list.tail = null;
  16620. } else {
  16621. list.head = p;
  16622. p.data = buf.slice(nb);
  16623. }
  16624. break;
  16625. }
  16626. ++c;
  16627. }
  16628. list.length -= c;
  16629. return ret;
  16630. }
  16631. function endReadable(stream) {
  16632. var state = stream._readableState;
  16633. // If we get here before consuming all the bytes, then that is a
  16634. // bug in node. Should never happen.
  16635. if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream');
  16636. if (!state.endEmitted) {
  16637. state.ended = true;
  16638. processNextTick(endReadableNT, state, stream);
  16639. }
  16640. }
  16641. function endReadableNT(state, stream) {
  16642. // Check that we didn't get one last unshift.
  16643. if (!state.endEmitted && state.length === 0) {
  16644. state.endEmitted = true;
  16645. stream.readable = false;
  16646. stream.emit('end');
  16647. }
  16648. }
  16649. function forEach(xs, f) {
  16650. for (var i = 0, l = xs.length; i < l; i++) {
  16651. f(xs[i], i);
  16652. }
  16653. }
  16654. function indexOf(xs, x) {
  16655. for (var i = 0, l = xs.length; i < l; i++) {
  16656. if (xs[i] === x) return i;
  16657. }
  16658. return -1;
  16659. }
  16660. }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
  16661. },{"./_stream_duplex":135,"./internal/streams/BufferList":140,"./internal/streams/destroy":141,"./internal/streams/stream":142,"_process":126,"core-util-is":56,"events":90,"inherits":108,"isarray":110,"process-nextick-args":125,"safe-buffer":148,"string_decoder/":158,"util":27}],138:[function(require,module,exports){
  16662. // Copyright Joyent, Inc. and other Node contributors.
  16663. //
  16664. // Permission is hereby granted, free of charge, to any person obtaining a
  16665. // copy of this software and associated documentation files (the
  16666. // "Software"), to deal in the Software without restriction, including
  16667. // without limitation the rights to use, copy, modify, merge, publish,
  16668. // distribute, sublicense, and/or sell copies of the Software, and to permit
  16669. // persons to whom the Software is furnished to do so, subject to the
  16670. // following conditions:
  16671. //
  16672. // The above copyright notice and this permission notice shall be included
  16673. // in all copies or substantial portions of the Software.
  16674. //
  16675. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  16676. // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  16677. // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
  16678. // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
  16679. // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
  16680. // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
  16681. // USE OR OTHER DEALINGS IN THE SOFTWARE.
  16682. // a transform stream is a readable/writable stream where you do
  16683. // something with the data. Sometimes it's called a "filter",
  16684. // but that's not a great name for it, since that implies a thing where
  16685. // some bits pass through, and others are simply ignored. (That would
  16686. // be a valid example of a transform, of course.)
  16687. //
  16688. // While the output is causally related to the input, it's not a
  16689. // necessarily symmetric or synchronous transformation. For example,
  16690. // a zlib stream might take multiple plain-text writes(), and then
  16691. // emit a single compressed chunk some time in the future.
  16692. //
  16693. // Here's how this works:
  16694. //
  16695. // The Transform stream has all the aspects of the readable and writable
  16696. // stream classes. When you write(chunk), that calls _write(chunk,cb)
  16697. // internally, and returns false if there's a lot of pending writes
  16698. // buffered up. When you call read(), that calls _read(n) until
  16699. // there's enough pending readable data buffered up.
  16700. //
  16701. // In a transform stream, the written data is placed in a buffer. When
  16702. // _read(n) is called, it transforms the queued up data, calling the
  16703. // buffered _write cb's as it consumes chunks. If consuming a single
  16704. // written chunk would result in multiple output chunks, then the first
  16705. // outputted bit calls the readcb, and subsequent chunks just go into
  16706. // the read buffer, and will cause it to emit 'readable' if necessary.
  16707. //
  16708. // This way, back-pressure is actually determined by the reading side,
  16709. // since _read has to be called to start processing a new chunk. However,
  16710. // a pathological inflate type of transform can cause excessive buffering
  16711. // here. For example, imagine a stream where every byte of input is
  16712. // interpreted as an integer from 0-255, and then results in that many
  16713. // bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in
  16714. // 1kb of data being output. In this case, you could write a very small
  16715. // amount of input, and end up with a very large amount of output. In
  16716. // such a pathological inflating mechanism, there'd be no way to tell
  16717. // the system to stop doing the transform. A single 4MB write could
  16718. // cause the system to run out of memory.
  16719. //
  16720. // However, even in such a pathological case, only a single written chunk
  16721. // would be consumed, and then the rest would wait (un-transformed) until
  16722. // the results of the previous transformed chunk were consumed.
  16723. 'use strict';
  16724. module.exports = Transform;
  16725. var Duplex = require('./_stream_duplex');
  16726. /*<replacement>*/
  16727. var util = require('core-util-is');
  16728. util.inherits = require('inherits');
  16729. /*</replacement>*/
  16730. util.inherits(Transform, Duplex);
  16731. function TransformState(stream) {
  16732. this.afterTransform = function (er, data) {
  16733. return afterTransform(stream, er, data);
  16734. };
  16735. this.needTransform = false;
  16736. this.transforming = false;
  16737. this.writecb = null;
  16738. this.writechunk = null;
  16739. this.writeencoding = null;
  16740. }
  16741. function afterTransform(stream, er, data) {
  16742. var ts = stream._transformState;
  16743. ts.transforming = false;
  16744. var cb = ts.writecb;
  16745. if (!cb) {
  16746. return stream.emit('error', new Error('write callback called multiple times'));
  16747. }
  16748. ts.writechunk = null;
  16749. ts.writecb = null;
  16750. if (data !== null && data !== undefined) stream.push(data);
  16751. cb(er);
  16752. var rs = stream._readableState;
  16753. rs.reading = false;
  16754. if (rs.needReadable || rs.length < rs.highWaterMark) {
  16755. stream._read(rs.highWaterMark);
  16756. }
  16757. }
  16758. function Transform(options) {
  16759. if (!(this instanceof Transform)) return new Transform(options);
  16760. Duplex.call(this, options);
  16761. this._transformState = new TransformState(this);
  16762. var stream = this;
  16763. // start out asking for a readable event once data is transformed.
  16764. this._readableState.needReadable = true;
  16765. // we have implemented the _read method, and done the other things
  16766. // that Readable wants before the first _read call, so unset the
  16767. // sync guard flag.
  16768. this._readableState.sync = false;
  16769. if (options) {
  16770. if (typeof options.transform === 'function') this._transform = options.transform;
  16771. if (typeof options.flush === 'function') this._flush = options.flush;
  16772. }
  16773. // When the writable side finishes, then flush out anything remaining.
  16774. this.once('prefinish', function () {
  16775. if (typeof this._flush === 'function') this._flush(function (er, data) {
  16776. done(stream, er, data);
  16777. });else done(stream);
  16778. });
  16779. }
  16780. Transform.prototype.push = function (chunk, encoding) {
  16781. this._transformState.needTransform = false;
  16782. return Duplex.prototype.push.call(this, chunk, encoding);
  16783. };
  16784. // This is the part where you do stuff!
  16785. // override this function in implementation classes.
  16786. // 'chunk' is an input chunk.
  16787. //
  16788. // Call `push(newChunk)` to pass along transformed output
  16789. // to the readable side. You may call 'push' zero or more times.
  16790. //
  16791. // Call `cb(err)` when you are done with this chunk. If you pass
  16792. // an error, then that'll put the hurt on the whole operation. If you
  16793. // never call cb(), then you'll never get another chunk.
  16794. Transform.prototype._transform = function (chunk, encoding, cb) {
  16795. throw new Error('_transform() is not implemented');
  16796. };
  16797. Transform.prototype._write = function (chunk, encoding, cb) {
  16798. var ts = this._transformState;
  16799. ts.writecb = cb;
  16800. ts.writechunk = chunk;
  16801. ts.writeencoding = encoding;
  16802. if (!ts.transforming) {
  16803. var rs = this._readableState;
  16804. if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
  16805. }
  16806. };
  16807. // Doesn't matter what the args are here.
  16808. // _transform does all the work.
  16809. // That we got here means that the readable side wants more data.
  16810. Transform.prototype._read = function (n) {
  16811. var ts = this._transformState;
  16812. if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
  16813. ts.transforming = true;
  16814. this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
  16815. } else {
  16816. // mark that we need a transform, so that any data that comes in
  16817. // will get processed, now that we've asked for it.
  16818. ts.needTransform = true;
  16819. }
  16820. };
  16821. Transform.prototype._destroy = function (err, cb) {
  16822. var _this = this;
  16823. Duplex.prototype._destroy.call(this, err, function (err2) {
  16824. cb(err2);
  16825. _this.emit('close');
  16826. });
  16827. };
  16828. function done(stream, er, data) {
  16829. if (er) return stream.emit('error', er);
  16830. if (data !== null && data !== undefined) stream.push(data);
  16831. // if there's nothing in the write buffer, then that means
  16832. // that nothing more will ever be provided
  16833. var ws = stream._writableState;
  16834. var ts = stream._transformState;
  16835. if (ws.length) throw new Error('Calling transform done when ws.length != 0');
  16836. if (ts.transforming) throw new Error('Calling transform done when still transforming');
  16837. return stream.push(null);
  16838. }
  16839. },{"./_stream_duplex":135,"core-util-is":56,"inherits":108}],139:[function(require,module,exports){
  16840. (function (process,global){
  16841. // Copyright Joyent, Inc. and other Node contributors.
  16842. //
  16843. // Permission is hereby granted, free of charge, to any person obtaining a
  16844. // copy of this software and associated documentation files (the
  16845. // "Software"), to deal in the Software without restriction, including
  16846. // without limitation the rights to use, copy, modify, merge, publish,
  16847. // distribute, sublicense, and/or sell copies of the Software, and to permit
  16848. // persons to whom the Software is furnished to do so, subject to the
  16849. // following conditions:
  16850. //
  16851. // The above copyright notice and this permission notice shall be included
  16852. // in all copies or substantial portions of the Software.
  16853. //
  16854. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  16855. // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  16856. // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
  16857. // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
  16858. // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
  16859. // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
  16860. // USE OR OTHER DEALINGS IN THE SOFTWARE.
  16861. // A bit simpler than readable streams.
  16862. // Implement an async ._write(chunk, encoding, cb), and it'll handle all
  16863. // the drain event emission and buffering.
  16864. 'use strict';
  16865. /*<replacement>*/
  16866. var processNextTick = require('process-nextick-args');
  16867. /*</replacement>*/
  16868. module.exports = Writable;
  16869. /* <replacement> */
  16870. function WriteReq(chunk, encoding, cb) {
  16871. this.chunk = chunk;
  16872. this.encoding = encoding;
  16873. this.callback = cb;
  16874. this.next = null;
  16875. }
  16876. // It seems a linked list but it is not
  16877. // there will be only 2 of these for each stream
  16878. function CorkedRequest(state) {
  16879. var _this = this;
  16880. this.next = null;
  16881. this.entry = null;
  16882. this.finish = function () {
  16883. onCorkedFinish(_this, state);
  16884. };
  16885. }
  16886. /* </replacement> */
  16887. /*<replacement>*/
  16888. var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick;
  16889. /*</replacement>*/
  16890. /*<replacement>*/
  16891. var Duplex;
  16892. /*</replacement>*/
  16893. Writable.WritableState = WritableState;
  16894. /*<replacement>*/
  16895. var util = require('core-util-is');
  16896. util.inherits = require('inherits');
  16897. /*</replacement>*/
  16898. /*<replacement>*/
  16899. var internalUtil = {
  16900. deprecate: require('util-deprecate')
  16901. };
  16902. /*</replacement>*/
  16903. /*<replacement>*/
  16904. var Stream = require('./internal/streams/stream');
  16905. /*</replacement>*/
  16906. /*<replacement>*/
  16907. var Buffer = require('safe-buffer').Buffer;
  16908. var OurUint8Array = global.Uint8Array || function () {};
  16909. function _uint8ArrayToBuffer(chunk) {
  16910. return Buffer.from(chunk);
  16911. }
  16912. function _isUint8Array(obj) {
  16913. return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
  16914. }
  16915. /*</replacement>*/
  16916. var destroyImpl = require('./internal/streams/destroy');
  16917. util.inherits(Writable, Stream);
  16918. function nop() {}
  16919. function WritableState(options, stream) {
  16920. Duplex = Duplex || require('./_stream_duplex');
  16921. options = options || {};
  16922. // object stream flag to indicate whether or not this stream
  16923. // contains buffers or objects.
  16924. this.objectMode = !!options.objectMode;
  16925. if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
  16926. // the point at which write() starts returning false
  16927. // Note: 0 is a valid value, means that we always return false if
  16928. // the entire buffer is not flushed immediately on write()
  16929. var hwm = options.highWaterMark;
  16930. var defaultHwm = this.objectMode ? 16 : 16 * 1024;
  16931. this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;
  16932. // cast to ints.
  16933. this.highWaterMark = Math.floor(this.highWaterMark);
  16934. // if _final has been called
  16935. this.finalCalled = false;
  16936. // drain event flag.
  16937. this.needDrain = false;
  16938. // at the start of calling end()
  16939. this.ending = false;
  16940. // when end() has been called, and returned
  16941. this.ended = false;
  16942. // when 'finish' is emitted
  16943. this.finished = false;
  16944. // has it been destroyed
  16945. this.destroyed = false;
  16946. // should we decode strings into buffers before passing to _write?
  16947. // this is here so that some node-core streams can optimize string
  16948. // handling at a lower level.
  16949. var noDecode = options.decodeStrings === false;
  16950. this.decodeStrings = !noDecode;
  16951. // Crypto is kind of old and crusty. Historically, its default string
  16952. // encoding is 'binary' so we have to make this configurable.
  16953. // Everything else in the universe uses 'utf8', though.
  16954. this.defaultEncoding = options.defaultEncoding || 'utf8';
  16955. // not an actual buffer we keep track of, but a measurement
  16956. // of how much we're waiting to get pushed to some underlying
  16957. // socket or file.
  16958. this.length = 0;
  16959. // a flag to see when we're in the middle of a write.
  16960. this.writing = false;
  16961. // when true all writes will be buffered until .uncork() call
  16962. this.corked = 0;
  16963. // a flag to be able to tell if the onwrite cb is called immediately,
  16964. // or on a later tick. We set this to true at first, because any
  16965. // actions that shouldn't happen until "later" should generally also
  16966. // not happen before the first write call.
  16967. this.sync = true;
  16968. // a flag to know if we're processing previously buffered items, which
  16969. // may call the _write() callback in the same tick, so that we don't
  16970. // end up in an overlapped onwrite situation.
  16971. this.bufferProcessing = false;
  16972. // the callback that's passed to _write(chunk,cb)
  16973. this.onwrite = function (er) {
  16974. onwrite(stream, er);
  16975. };
  16976. // the callback that the user supplies to write(chunk,encoding,cb)
  16977. this.writecb = null;
  16978. // the amount that is being written when _write is called.
  16979. this.writelen = 0;
  16980. this.bufferedRequest = null;
  16981. this.lastBufferedRequest = null;
  16982. // number of pending user-supplied write callbacks
  16983. // this must be 0 before 'finish' can be emitted
  16984. this.pendingcb = 0;
  16985. // emit prefinish if the only thing we're waiting for is _write cbs
  16986. // This is relevant for synchronous Transform streams
  16987. this.prefinished = false;
  16988. // True if the error was already emitted and should not be thrown again
  16989. this.errorEmitted = false;
  16990. // count buffered requests
  16991. this.bufferedRequestCount = 0;
  16992. // allocate the first CorkedRequest, there is always
  16993. // one allocated and free to use, and we maintain at most two
  16994. this.corkedRequestsFree = new CorkedRequest(this);
  16995. }
  16996. WritableState.prototype.getBuffer = function getBuffer() {
  16997. var current = this.bufferedRequest;
  16998. var out = [];
  16999. while (current) {
  17000. out.push(current);
  17001. current = current.next;
  17002. }
  17003. return out;
  17004. };
  17005. (function () {
  17006. try {
  17007. Object.defineProperty(WritableState.prototype, 'buffer', {
  17008. get: internalUtil.deprecate(function () {
  17009. return this.getBuffer();
  17010. }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')
  17011. });
  17012. } catch (_) {}
  17013. })();
  17014. // Test _writableState for inheritance to account for Duplex streams,
  17015. // whose prototype chain only points to Readable.
  17016. var realHasInstance;
  17017. if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
  17018. realHasInstance = Function.prototype[Symbol.hasInstance];
  17019. Object.defineProperty(Writable, Symbol.hasInstance, {
  17020. value: function (object) {
  17021. if (realHasInstance.call(this, object)) return true;
  17022. return object && object._writableState instanceof WritableState;
  17023. }
  17024. });
  17025. } else {
  17026. realHasInstance = function (object) {
  17027. return object instanceof this;
  17028. };
  17029. }
  17030. function Writable(options) {
  17031. Duplex = Duplex || require('./_stream_duplex');
  17032. // Writable ctor is applied to Duplexes, too.
  17033. // `realHasInstance` is necessary because using plain `instanceof`
  17034. // would return false, as no `_writableState` property is attached.
  17035. // Trying to use the custom `instanceof` for Writable here will also break the
  17036. // Node.js LazyTransform implementation, which has a non-trivial getter for
  17037. // `_writableState` that would lead to infinite recursion.
  17038. if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
  17039. return new Writable(options);
  17040. }
  17041. this._writableState = new WritableState(options, this);
  17042. // legacy.
  17043. this.writable = true;
  17044. if (options) {
  17045. if (typeof options.write === 'function') this._write = options.write;
  17046. if (typeof options.writev === 'function') this._writev = options.writev;
  17047. if (typeof options.destroy === 'function') this._destroy = options.destroy;
  17048. if (typeof options.final === 'function') this._final = options.final;
  17049. }
  17050. Stream.call(this);
  17051. }
  17052. // Otherwise people can pipe Writable streams, which is just wrong.
  17053. Writable.prototype.pipe = function () {
  17054. this.emit('error', new Error('Cannot pipe, not readable'));
  17055. };
  17056. function writeAfterEnd(stream, cb) {
  17057. var er = new Error('write after end');
  17058. // TODO: defer error events consistently everywhere, not just the cb
  17059. stream.emit('error', er);
  17060. processNextTick(cb, er);
  17061. }
  17062. // Checks that a user-supplied chunk is valid, especially for the particular
  17063. // mode the stream is in. Currently this means that `null` is never accepted
  17064. // and undefined/non-string values are only allowed in object mode.
  17065. function validChunk(stream, state, chunk, cb) {
  17066. var valid = true;
  17067. var er = false;
  17068. if (chunk === null) {
  17069. er = new TypeError('May not write null values to stream');
  17070. } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
  17071. er = new TypeError('Invalid non-string/buffer chunk');
  17072. }
  17073. if (er) {
  17074. stream.emit('error', er);
  17075. processNextTick(cb, er);
  17076. valid = false;
  17077. }
  17078. return valid;
  17079. }
  17080. Writable.prototype.write = function (chunk, encoding, cb) {
  17081. var state = this._writableState;
  17082. var ret = false;
  17083. var isBuf = _isUint8Array(chunk) && !state.objectMode;
  17084. if (isBuf && !Buffer.isBuffer(chunk)) {
  17085. chunk = _uint8ArrayToBuffer(chunk);
  17086. }
  17087. if (typeof encoding === 'function') {
  17088. cb = encoding;
  17089. encoding = null;
  17090. }
  17091. if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
  17092. if (typeof cb !== 'function') cb = nop;
  17093. if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {
  17094. state.pendingcb++;
  17095. ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);
  17096. }
  17097. return ret;
  17098. };
  17099. Writable.prototype.cork = function () {
  17100. var state = this._writableState;
  17101. state.corked++;
  17102. };
  17103. Writable.prototype.uncork = function () {
  17104. var state = this._writableState;
  17105. if (state.corked) {
  17106. state.corked--;
  17107. if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
  17108. }
  17109. };
  17110. Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
  17111. // node::ParseEncoding() requires lower case.
  17112. if (typeof encoding === 'string') encoding = encoding.toLowerCase();
  17113. if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);
  17114. this._writableState.defaultEncoding = encoding;
  17115. return this;
  17116. };
  17117. function decodeChunk(state, chunk, encoding) {
  17118. if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
  17119. chunk = Buffer.from(chunk, encoding);
  17120. }
  17121. return chunk;
  17122. }
  17123. // if we're already writing something, then just put this
  17124. // in the queue, and wait our turn. Otherwise, call _write
  17125. // If we return false, then we need a drain event, so set that flag.
  17126. function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {
  17127. if (!isBuf) {
  17128. var newChunk = decodeChunk(state, chunk, encoding);
  17129. if (chunk !== newChunk) {
  17130. isBuf = true;
  17131. encoding = 'buffer';
  17132. chunk = newChunk;
  17133. }
  17134. }
  17135. var len = state.objectMode ? 1 : chunk.length;
  17136. state.length += len;
  17137. var ret = state.length < state.highWaterMark;
  17138. // we must ensure that previous needDrain will not be reset to false.
  17139. if (!ret) state.needDrain = true;
  17140. if (state.writing || state.corked) {
  17141. var last = state.lastBufferedRequest;
  17142. state.lastBufferedRequest = {
  17143. chunk: chunk,
  17144. encoding: encoding,
  17145. isBuf: isBuf,
  17146. callback: cb,
  17147. next: null
  17148. };
  17149. if (last) {
  17150. last.next = state.lastBufferedRequest;
  17151. } else {
  17152. state.bufferedRequest = state.lastBufferedRequest;
  17153. }
  17154. state.bufferedRequestCount += 1;
  17155. } else {
  17156. doWrite(stream, state, false, len, chunk, encoding, cb);
  17157. }
  17158. return ret;
  17159. }
  17160. function doWrite(stream, state, writev, len, chunk, encoding, cb) {
  17161. state.writelen = len;
  17162. state.writecb = cb;
  17163. state.writing = true;
  17164. state.sync = true;
  17165. if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
  17166. state.sync = false;
  17167. }
  17168. function onwriteError(stream, state, sync, er, cb) {
  17169. --state.pendingcb;
  17170. if (sync) {
  17171. // defer the callback if we are being called synchronously
  17172. // to avoid piling up things on the stack
  17173. processNextTick(cb, er);
  17174. // this can emit finish, and it will always happen
  17175. // after error
  17176. processNextTick(finishMaybe, stream, state);
  17177. stream._writableState.errorEmitted = true;
  17178. stream.emit('error', er);
  17179. } else {
  17180. // the caller expect this to happen before if
  17181. // it is async
  17182. cb(er);
  17183. stream._writableState.errorEmitted = true;
  17184. stream.emit('error', er);
  17185. // this can emit finish, but finish must
  17186. // always follow error
  17187. finishMaybe(stream, state);
  17188. }
  17189. }
  17190. function onwriteStateUpdate(state) {
  17191. state.writing = false;
  17192. state.writecb = null;
  17193. state.length -= state.writelen;
  17194. state.writelen = 0;
  17195. }
  17196. function onwrite(stream, er) {
  17197. var state = stream._writableState;
  17198. var sync = state.sync;
  17199. var cb = state.writecb;
  17200. onwriteStateUpdate(state);
  17201. if (er) onwriteError(stream, state, sync, er, cb);else {
  17202. // Check if we're actually ready to finish, but don't emit yet
  17203. var finished = needFinish(state);
  17204. if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
  17205. clearBuffer(stream, state);
  17206. }
  17207. if (sync) {
  17208. /*<replacement>*/
  17209. asyncWrite(afterWrite, stream, state, finished, cb);
  17210. /*</replacement>*/
  17211. } else {
  17212. afterWrite(stream, state, finished, cb);
  17213. }
  17214. }
  17215. }
  17216. function afterWrite(stream, state, finished, cb) {
  17217. if (!finished) onwriteDrain(stream, state);
  17218. state.pendingcb--;
  17219. cb();
  17220. finishMaybe(stream, state);
  17221. }
  17222. // Must force callback to be called on nextTick, so that we don't
  17223. // emit 'drain' before the write() consumer gets the 'false' return
  17224. // value, and has a chance to attach a 'drain' listener.
  17225. function onwriteDrain(stream, state) {
  17226. if (state.length === 0 && state.needDrain) {
  17227. state.needDrain = false;
  17228. stream.emit('drain');
  17229. }
  17230. }
  17231. // if there's something in the buffer waiting, then process it
  17232. function clearBuffer(stream, state) {
  17233. state.bufferProcessing = true;
  17234. var entry = state.bufferedRequest;
  17235. if (stream._writev && entry && entry.next) {
  17236. // Fast case, write everything using _writev()
  17237. var l = state.bufferedRequestCount;
  17238. var buffer = new Array(l);
  17239. var holder = state.corkedRequestsFree;
  17240. holder.entry = entry;
  17241. var count = 0;
  17242. var allBuffers = true;
  17243. while (entry) {
  17244. buffer[count] = entry;
  17245. if (!entry.isBuf) allBuffers = false;
  17246. entry = entry.next;
  17247. count += 1;
  17248. }
  17249. buffer.allBuffers = allBuffers;
  17250. doWrite(stream, state, true, state.length, buffer, '', holder.finish);
  17251. // doWrite is almost always async, defer these to save a bit of time
  17252. // as the hot path ends with doWrite
  17253. state.pendingcb++;
  17254. state.lastBufferedRequest = null;
  17255. if (holder.next) {
  17256. state.corkedRequestsFree = holder.next;
  17257. holder.next = null;
  17258. } else {
  17259. state.corkedRequestsFree = new CorkedRequest(state);
  17260. }
  17261. } else {
  17262. // Slow case, write chunks one-by-one
  17263. while (entry) {
  17264. var chunk = entry.chunk;
  17265. var encoding = entry.encoding;
  17266. var cb = entry.callback;
  17267. var len = state.objectMode ? 1 : chunk.length;
  17268. doWrite(stream, state, false, len, chunk, encoding, cb);
  17269. entry = entry.next;
  17270. // if we didn't call the onwrite immediately, then
  17271. // it means that we need to wait until it does.
  17272. // also, that means that the chunk and cb are currently
  17273. // being processed, so move the buffer counter past them.
  17274. if (state.writing) {
  17275. break;
  17276. }
  17277. }
  17278. if (entry === null) state.lastBufferedRequest = null;
  17279. }
  17280. state.bufferedRequestCount = 0;
  17281. state.bufferedRequest = entry;
  17282. state.bufferProcessing = false;
  17283. }
  17284. Writable.prototype._write = function (chunk, encoding, cb) {
  17285. cb(new Error('_write() is not implemented'));
  17286. };
  17287. Writable.prototype._writev = null;
  17288. Writable.prototype.end = function (chunk, encoding, cb) {
  17289. var state = this._writableState;
  17290. if (typeof chunk === 'function') {
  17291. cb = chunk;
  17292. chunk = null;
  17293. encoding = null;
  17294. } else if (typeof encoding === 'function') {
  17295. cb = encoding;
  17296. encoding = null;
  17297. }
  17298. if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
  17299. // .end() fully uncorks
  17300. if (state.corked) {
  17301. state.corked = 1;
  17302. this.uncork();
  17303. }
  17304. // ignore unnecessary end() calls.
  17305. if (!state.ending && !state.finished) endWritable(this, state, cb);
  17306. };
  17307. function needFinish(state) {
  17308. return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;
  17309. }
  17310. function callFinal(stream, state) {
  17311. stream._final(function (err) {
  17312. state.pendingcb--;
  17313. if (err) {
  17314. stream.emit('error', err);
  17315. }
  17316. state.prefinished = true;
  17317. stream.emit('prefinish');
  17318. finishMaybe(stream, state);
  17319. });
  17320. }
  17321. function prefinish(stream, state) {
  17322. if (!state.prefinished && !state.finalCalled) {
  17323. if (typeof stream._final === 'function') {
  17324. state.pendingcb++;
  17325. state.finalCalled = true;
  17326. processNextTick(callFinal, stream, state);
  17327. } else {
  17328. state.prefinished = true;
  17329. stream.emit('prefinish');
  17330. }
  17331. }
  17332. }
  17333. function finishMaybe(stream, state) {
  17334. var need = needFinish(state);
  17335. if (need) {
  17336. prefinish(stream, state);
  17337. if (state.pendingcb === 0) {
  17338. state.finished = true;
  17339. stream.emit('finish');
  17340. }
  17341. }
  17342. return need;
  17343. }
  17344. function endWritable(stream, state, cb) {
  17345. state.ending = true;
  17346. finishMaybe(stream, state);
  17347. if (cb) {
  17348. if (state.finished) processNextTick(cb);else stream.once('finish', cb);
  17349. }
  17350. state.ended = true;
  17351. stream.writable = false;
  17352. }
  17353. function onCorkedFinish(corkReq, state, err) {
  17354. var entry = corkReq.entry;
  17355. corkReq.entry = null;
  17356. while (entry) {
  17357. var cb = entry.callback;
  17358. state.pendingcb--;
  17359. cb(err);
  17360. entry = entry.next;
  17361. }
  17362. if (state.corkedRequestsFree) {
  17363. state.corkedRequestsFree.next = corkReq;
  17364. } else {
  17365. state.corkedRequestsFree = corkReq;
  17366. }
  17367. }
  17368. Object.defineProperty(Writable.prototype, 'destroyed', {
  17369. get: function () {
  17370. if (this._writableState === undefined) {
  17371. return false;
  17372. }
  17373. return this._writableState.destroyed;
  17374. },
  17375. set: function (value) {
  17376. // we ignore the value if the stream
  17377. // has not been initialized yet
  17378. if (!this._writableState) {
  17379. return;
  17380. }
  17381. // backward compatibility, the user is explicitly
  17382. // managing destroyed
  17383. this._writableState.destroyed = value;
  17384. }
  17385. });
  17386. Writable.prototype.destroy = destroyImpl.destroy;
  17387. Writable.prototype._undestroy = destroyImpl.undestroy;
  17388. Writable.prototype._destroy = function (err, cb) {
  17389. this.end();
  17390. cb(err);
  17391. };
  17392. }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
  17393. },{"./_stream_duplex":135,"./internal/streams/destroy":141,"./internal/streams/stream":142,"_process":126,"core-util-is":56,"inherits":108,"process-nextick-args":125,"safe-buffer":148,"util-deprecate":159}],140:[function(require,module,exports){
  17394. 'use strict';
  17395. /*<replacement>*/
  17396. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  17397. var Buffer = require('safe-buffer').Buffer;
  17398. /*</replacement>*/
  17399. function copyBuffer(src, target, offset) {
  17400. src.copy(target, offset);
  17401. }
  17402. module.exports = function () {
  17403. function BufferList() {
  17404. _classCallCheck(this, BufferList);
  17405. this.head = null;
  17406. this.tail = null;
  17407. this.length = 0;
  17408. }
  17409. BufferList.prototype.push = function push(v) {
  17410. var entry = { data: v, next: null };
  17411. if (this.length > 0) this.tail.next = entry;else this.head = entry;
  17412. this.tail = entry;
  17413. ++this.length;
  17414. };
  17415. BufferList.prototype.unshift = function unshift(v) {
  17416. var entry = { data: v, next: this.head };
  17417. if (this.length === 0) this.tail = entry;
  17418. this.head = entry;
  17419. ++this.length;
  17420. };
  17421. BufferList.prototype.shift = function shift() {
  17422. if (this.length === 0) return;
  17423. var ret = this.head.data;
  17424. if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;
  17425. --this.length;
  17426. return ret;
  17427. };
  17428. BufferList.prototype.clear = function clear() {
  17429. this.head = this.tail = null;
  17430. this.length = 0;
  17431. };
  17432. BufferList.prototype.join = function join(s) {
  17433. if (this.length === 0) return '';
  17434. var p = this.head;
  17435. var ret = '' + p.data;
  17436. while (p = p.next) {
  17437. ret += s + p.data;
  17438. }return ret;
  17439. };
  17440. BufferList.prototype.concat = function concat(n) {
  17441. if (this.length === 0) return Buffer.alloc(0);
  17442. if (this.length === 1) return this.head.data;
  17443. var ret = Buffer.allocUnsafe(n >>> 0);
  17444. var p = this.head;
  17445. var i = 0;
  17446. while (p) {
  17447. copyBuffer(p.data, ret, i);
  17448. i += p.data.length;
  17449. p = p.next;
  17450. }
  17451. return ret;
  17452. };
  17453. return BufferList;
  17454. }();
  17455. },{"safe-buffer":148}],141:[function(require,module,exports){
  17456. 'use strict';
  17457. /*<replacement>*/
  17458. var processNextTick = require('process-nextick-args');
  17459. /*</replacement>*/
  17460. // undocumented cb() API, needed for core, not for public API
  17461. function destroy(err, cb) {
  17462. var _this = this;
  17463. var readableDestroyed = this._readableState && this._readableState.destroyed;
  17464. var writableDestroyed = this._writableState && this._writableState.destroyed;
  17465. if (readableDestroyed || writableDestroyed) {
  17466. if (cb) {
  17467. cb(err);
  17468. } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {
  17469. processNextTick(emitErrorNT, this, err);
  17470. }
  17471. return;
  17472. }
  17473. // we set destroyed to true before firing error callbacks in order
  17474. // to make it re-entrance safe in case destroy() is called within callbacks
  17475. if (this._readableState) {
  17476. this._readableState.destroyed = true;
  17477. }
  17478. // if this is a duplex stream mark the writable part as destroyed as well
  17479. if (this._writableState) {
  17480. this._writableState.destroyed = true;
  17481. }
  17482. this._destroy(err || null, function (err) {
  17483. if (!cb && err) {
  17484. processNextTick(emitErrorNT, _this, err);
  17485. if (_this._writableState) {
  17486. _this._writableState.errorEmitted = true;
  17487. }
  17488. } else if (cb) {
  17489. cb(err);
  17490. }
  17491. });
  17492. }
  17493. function undestroy() {
  17494. if (this._readableState) {
  17495. this._readableState.destroyed = false;
  17496. this._readableState.reading = false;
  17497. this._readableState.ended = false;
  17498. this._readableState.endEmitted = false;
  17499. }
  17500. if (this._writableState) {
  17501. this._writableState.destroyed = false;
  17502. this._writableState.ended = false;
  17503. this._writableState.ending = false;
  17504. this._writableState.finished = false;
  17505. this._writableState.errorEmitted = false;
  17506. }
  17507. }
  17508. function emitErrorNT(self, err) {
  17509. self.emit('error', err);
  17510. }
  17511. module.exports = {
  17512. destroy: destroy,
  17513. undestroy: undestroy
  17514. };
  17515. },{"process-nextick-args":125}],142:[function(require,module,exports){
  17516. module.exports = require('events').EventEmitter;
  17517. },{"events":90}],143:[function(require,module,exports){
  17518. module.exports = require('./readable').PassThrough
  17519. },{"./readable":144}],144:[function(require,module,exports){
  17520. exports = module.exports = require('./lib/_stream_readable.js');
  17521. exports.Stream = exports;
  17522. exports.Readable = exports;
  17523. exports.Writable = require('./lib/_stream_writable.js');
  17524. exports.Duplex = require('./lib/_stream_duplex.js');
  17525. exports.Transform = require('./lib/_stream_transform.js');
  17526. exports.PassThrough = require('./lib/_stream_passthrough.js');
  17527. },{"./lib/_stream_duplex.js":135,"./lib/_stream_passthrough.js":136,"./lib/_stream_readable.js":137,"./lib/_stream_transform.js":138,"./lib/_stream_writable.js":139}],145:[function(require,module,exports){
  17528. module.exports = require('./readable').Transform
  17529. },{"./readable":144}],146:[function(require,module,exports){
  17530. module.exports = require('./lib/_stream_writable.js');
  17531. },{"./lib/_stream_writable.js":139}],147:[function(require,module,exports){
  17532. (function (Buffer){
  17533. 'use strict'
  17534. var inherits = require('inherits')
  17535. var HashBase = require('hash-base')
  17536. function RIPEMD160 () {
  17537. HashBase.call(this, 64)
  17538. // state
  17539. this._a = 0x67452301
  17540. this._b = 0xefcdab89
  17541. this._c = 0x98badcfe
  17542. this._d = 0x10325476
  17543. this._e = 0xc3d2e1f0
  17544. }
  17545. inherits(RIPEMD160, HashBase)
  17546. RIPEMD160.prototype._update = function () {
  17547. var m = new Array(16)
  17548. for (var i = 0; i < 16; ++i) m[i] = this._block.readInt32LE(i * 4)
  17549. var al = this._a
  17550. var bl = this._b
  17551. var cl = this._c
  17552. var dl = this._d
  17553. var el = this._e
  17554. // Mj = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
  17555. // K = 0x00000000
  17556. // Sj = 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8
  17557. al = fn1(al, bl, cl, dl, el, m[0], 0x00000000, 11); cl = rotl(cl, 10)
  17558. el = fn1(el, al, bl, cl, dl, m[1], 0x00000000, 14); bl = rotl(bl, 10)
  17559. dl = fn1(dl, el, al, bl, cl, m[2], 0x00000000, 15); al = rotl(al, 10)
  17560. cl = fn1(cl, dl, el, al, bl, m[3], 0x00000000, 12); el = rotl(el, 10)
  17561. bl = fn1(bl, cl, dl, el, al, m[4], 0x00000000, 5); dl = rotl(dl, 10)
  17562. al = fn1(al, bl, cl, dl, el, m[5], 0x00000000, 8); cl = rotl(cl, 10)
  17563. el = fn1(el, al, bl, cl, dl, m[6], 0x00000000, 7); bl = rotl(bl, 10)
  17564. dl = fn1(dl, el, al, bl, cl, m[7], 0x00000000, 9); al = rotl(al, 10)
  17565. cl = fn1(cl, dl, el, al, bl, m[8], 0x00000000, 11); el = rotl(el, 10)
  17566. bl = fn1(bl, cl, dl, el, al, m[9], 0x00000000, 13); dl = rotl(dl, 10)
  17567. al = fn1(al, bl, cl, dl, el, m[10], 0x00000000, 14); cl = rotl(cl, 10)
  17568. el = fn1(el, al, bl, cl, dl, m[11], 0x00000000, 15); bl = rotl(bl, 10)
  17569. dl = fn1(dl, el, al, bl, cl, m[12], 0x00000000, 6); al = rotl(al, 10)
  17570. cl = fn1(cl, dl, el, al, bl, m[13], 0x00000000, 7); el = rotl(el, 10)
  17571. bl = fn1(bl, cl, dl, el, al, m[14], 0x00000000, 9); dl = rotl(dl, 10)
  17572. al = fn1(al, bl, cl, dl, el, m[15], 0x00000000, 8); cl = rotl(cl, 10)
  17573. // Mj = 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8
  17574. // K = 0x5a827999
  17575. // Sj = 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12
  17576. el = fn2(el, al, bl, cl, dl, m[7], 0x5a827999, 7); bl = rotl(bl, 10)
  17577. dl = fn2(dl, el, al, bl, cl, m[4], 0x5a827999, 6); al = rotl(al, 10)
  17578. cl = fn2(cl, dl, el, al, bl, m[13], 0x5a827999, 8); el = rotl(el, 10)
  17579. bl = fn2(bl, cl, dl, el, al, m[1], 0x5a827999, 13); dl = rotl(dl, 10)
  17580. al = fn2(al, bl, cl, dl, el, m[10], 0x5a827999, 11); cl = rotl(cl, 10)
  17581. el = fn2(el, al, bl, cl, dl, m[6], 0x5a827999, 9); bl = rotl(bl, 10)
  17582. dl = fn2(dl, el, al, bl, cl, m[15], 0x5a827999, 7); al = rotl(al, 10)
  17583. cl = fn2(cl, dl, el, al, bl, m[3], 0x5a827999, 15); el = rotl(el, 10)
  17584. bl = fn2(bl, cl, dl, el, al, m[12], 0x5a827999, 7); dl = rotl(dl, 10)
  17585. al = fn2(al, bl, cl, dl, el, m[0], 0x5a827999, 12); cl = rotl(cl, 10)
  17586. el = fn2(el, al, bl, cl, dl, m[9], 0x5a827999, 15); bl = rotl(bl, 10)
  17587. dl = fn2(dl, el, al, bl, cl, m[5], 0x5a827999, 9); al = rotl(al, 10)
  17588. cl = fn2(cl, dl, el, al, bl, m[2], 0x5a827999, 11); el = rotl(el, 10)
  17589. bl = fn2(bl, cl, dl, el, al, m[14], 0x5a827999, 7); dl = rotl(dl, 10)
  17590. al = fn2(al, bl, cl, dl, el, m[11], 0x5a827999, 13); cl = rotl(cl, 10)
  17591. el = fn2(el, al, bl, cl, dl, m[8], 0x5a827999, 12); bl = rotl(bl, 10)
  17592. // Mj = 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12
  17593. // K = 0x6ed9eba1
  17594. // Sj = 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5
  17595. dl = fn3(dl, el, al, bl, cl, m[3], 0x6ed9eba1, 11); al = rotl(al, 10)
  17596. cl = fn3(cl, dl, el, al, bl, m[10], 0x6ed9eba1, 13); el = rotl(el, 10)
  17597. bl = fn3(bl, cl, dl, el, al, m[14], 0x6ed9eba1, 6); dl = rotl(dl, 10)
  17598. al = fn3(al, bl, cl, dl, el, m[4], 0x6ed9eba1, 7); cl = rotl(cl, 10)
  17599. el = fn3(el, al, bl, cl, dl, m[9], 0x6ed9eba1, 14); bl = rotl(bl, 10)
  17600. dl = fn3(dl, el, al, bl, cl, m[15], 0x6ed9eba1, 9); al = rotl(al, 10)
  17601. cl = fn3(cl, dl, el, al, bl, m[8], 0x6ed9eba1, 13); el = rotl(el, 10)
  17602. bl = fn3(bl, cl, dl, el, al, m[1], 0x6ed9eba1, 15); dl = rotl(dl, 10)
  17603. al = fn3(al, bl, cl, dl, el, m[2], 0x6ed9eba1, 14); cl = rotl(cl, 10)
  17604. el = fn3(el, al, bl, cl, dl, m[7], 0x6ed9eba1, 8); bl = rotl(bl, 10)
  17605. dl = fn3(dl, el, al, bl, cl, m[0], 0x6ed9eba1, 13); al = rotl(al, 10)
  17606. cl = fn3(cl, dl, el, al, bl, m[6], 0x6ed9eba1, 6); el = rotl(el, 10)
  17607. bl = fn3(bl, cl, dl, el, al, m[13], 0x6ed9eba1, 5); dl = rotl(dl, 10)
  17608. al = fn3(al, bl, cl, dl, el, m[11], 0x6ed9eba1, 12); cl = rotl(cl, 10)
  17609. el = fn3(el, al, bl, cl, dl, m[5], 0x6ed9eba1, 7); bl = rotl(bl, 10)
  17610. dl = fn3(dl, el, al, bl, cl, m[12], 0x6ed9eba1, 5); al = rotl(al, 10)
  17611. // Mj = 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2
  17612. // K = 0x8f1bbcdc
  17613. // Sj = 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12
  17614. cl = fn4(cl, dl, el, al, bl, m[1], 0x8f1bbcdc, 11); el = rotl(el, 10)
  17615. bl = fn4(bl, cl, dl, el, al, m[9], 0x8f1bbcdc, 12); dl = rotl(dl, 10)
  17616. al = fn4(al, bl, cl, dl, el, m[11], 0x8f1bbcdc, 14); cl = rotl(cl, 10)
  17617. el = fn4(el, al, bl, cl, dl, m[10], 0x8f1bbcdc, 15); bl = rotl(bl, 10)
  17618. dl = fn4(dl, el, al, bl, cl, m[0], 0x8f1bbcdc, 14); al = rotl(al, 10)
  17619. cl = fn4(cl, dl, el, al, bl, m[8], 0x8f1bbcdc, 15); el = rotl(el, 10)
  17620. bl = fn4(bl, cl, dl, el, al, m[12], 0x8f1bbcdc, 9); dl = rotl(dl, 10)
  17621. al = fn4(al, bl, cl, dl, el, m[4], 0x8f1bbcdc, 8); cl = rotl(cl, 10)
  17622. el = fn4(el, al, bl, cl, dl, m[13], 0x8f1bbcdc, 9); bl = rotl(bl, 10)
  17623. dl = fn4(dl, el, al, bl, cl, m[3], 0x8f1bbcdc, 14); al = rotl(al, 10)
  17624. cl = fn4(cl, dl, el, al, bl, m[7], 0x8f1bbcdc, 5); el = rotl(el, 10)
  17625. bl = fn4(bl, cl, dl, el, al, m[15], 0x8f1bbcdc, 6); dl = rotl(dl, 10)
  17626. al = fn4(al, bl, cl, dl, el, m[14], 0x8f1bbcdc, 8); cl = rotl(cl, 10)
  17627. el = fn4(el, al, bl, cl, dl, m[5], 0x8f1bbcdc, 6); bl = rotl(bl, 10)
  17628. dl = fn4(dl, el, al, bl, cl, m[6], 0x8f1bbcdc, 5); al = rotl(al, 10)
  17629. cl = fn4(cl, dl, el, al, bl, m[2], 0x8f1bbcdc, 12); el = rotl(el, 10)
  17630. // Mj = 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13
  17631. // K = 0xa953fd4e
  17632. // Sj = 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6
  17633. bl = fn5(bl, cl, dl, el, al, m[4], 0xa953fd4e, 9); dl = rotl(dl, 10)
  17634. al = fn5(al, bl, cl, dl, el, m[0], 0xa953fd4e, 15); cl = rotl(cl, 10)
  17635. el = fn5(el, al, bl, cl, dl, m[5], 0xa953fd4e, 5); bl = rotl(bl, 10)
  17636. dl = fn5(dl, el, al, bl, cl, m[9], 0xa953fd4e, 11); al = rotl(al, 10)
  17637. cl = fn5(cl, dl, el, al, bl, m[7], 0xa953fd4e, 6); el = rotl(el, 10)
  17638. bl = fn5(bl, cl, dl, el, al, m[12], 0xa953fd4e, 8); dl = rotl(dl, 10)
  17639. al = fn5(al, bl, cl, dl, el, m[2], 0xa953fd4e, 13); cl = rotl(cl, 10)
  17640. el = fn5(el, al, bl, cl, dl, m[10], 0xa953fd4e, 12); bl = rotl(bl, 10)
  17641. dl = fn5(dl, el, al, bl, cl, m[14], 0xa953fd4e, 5); al = rotl(al, 10)
  17642. cl = fn5(cl, dl, el, al, bl, m[1], 0xa953fd4e, 12); el = rotl(el, 10)
  17643. bl = fn5(bl, cl, dl, el, al, m[3], 0xa953fd4e, 13); dl = rotl(dl, 10)
  17644. al = fn5(al, bl, cl, dl, el, m[8], 0xa953fd4e, 14); cl = rotl(cl, 10)
  17645. el = fn5(el, al, bl, cl, dl, m[11], 0xa953fd4e, 11); bl = rotl(bl, 10)
  17646. dl = fn5(dl, el, al, bl, cl, m[6], 0xa953fd4e, 8); al = rotl(al, 10)
  17647. cl = fn5(cl, dl, el, al, bl, m[15], 0xa953fd4e, 5); el = rotl(el, 10)
  17648. bl = fn5(bl, cl, dl, el, al, m[13], 0xa953fd4e, 6); dl = rotl(dl, 10)
  17649. var ar = this._a
  17650. var br = this._b
  17651. var cr = this._c
  17652. var dr = this._d
  17653. var er = this._e
  17654. // M'j = 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12
  17655. // K' = 0x50a28be6
  17656. // S'j = 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6
  17657. ar = fn5(ar, br, cr, dr, er, m[5], 0x50a28be6, 8); cr = rotl(cr, 10)
  17658. er = fn5(er, ar, br, cr, dr, m[14], 0x50a28be6, 9); br = rotl(br, 10)
  17659. dr = fn5(dr, er, ar, br, cr, m[7], 0x50a28be6, 9); ar = rotl(ar, 10)
  17660. cr = fn5(cr, dr, er, ar, br, m[0], 0x50a28be6, 11); er = rotl(er, 10)
  17661. br = fn5(br, cr, dr, er, ar, m[9], 0x50a28be6, 13); dr = rotl(dr, 10)
  17662. ar = fn5(ar, br, cr, dr, er, m[2], 0x50a28be6, 15); cr = rotl(cr, 10)
  17663. er = fn5(er, ar, br, cr, dr, m[11], 0x50a28be6, 15); br = rotl(br, 10)
  17664. dr = fn5(dr, er, ar, br, cr, m[4], 0x50a28be6, 5); ar = rotl(ar, 10)
  17665. cr = fn5(cr, dr, er, ar, br, m[13], 0x50a28be6, 7); er = rotl(er, 10)
  17666. br = fn5(br, cr, dr, er, ar, m[6], 0x50a28be6, 7); dr = rotl(dr, 10)
  17667. ar = fn5(ar, br, cr, dr, er, m[15], 0x50a28be6, 8); cr = rotl(cr, 10)
  17668. er = fn5(er, ar, br, cr, dr, m[8], 0x50a28be6, 11); br = rotl(br, 10)
  17669. dr = fn5(dr, er, ar, br, cr, m[1], 0x50a28be6, 14); ar = rotl(ar, 10)
  17670. cr = fn5(cr, dr, er, ar, br, m[10], 0x50a28be6, 14); er = rotl(er, 10)
  17671. br = fn5(br, cr, dr, er, ar, m[3], 0x50a28be6, 12); dr = rotl(dr, 10)
  17672. ar = fn5(ar, br, cr, dr, er, m[12], 0x50a28be6, 6); cr = rotl(cr, 10)
  17673. // M'j = 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2
  17674. // K' = 0x5c4dd124
  17675. // S'j = 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11
  17676. er = fn4(er, ar, br, cr, dr, m[6], 0x5c4dd124, 9); br = rotl(br, 10)
  17677. dr = fn4(dr, er, ar, br, cr, m[11], 0x5c4dd124, 13); ar = rotl(ar, 10)
  17678. cr = fn4(cr, dr, er, ar, br, m[3], 0x5c4dd124, 15); er = rotl(er, 10)
  17679. br = fn4(br, cr, dr, er, ar, m[7], 0x5c4dd124, 7); dr = rotl(dr, 10)
  17680. ar = fn4(ar, br, cr, dr, er, m[0], 0x5c4dd124, 12); cr = rotl(cr, 10)
  17681. er = fn4(er, ar, br, cr, dr, m[13], 0x5c4dd124, 8); br = rotl(br, 10)
  17682. dr = fn4(dr, er, ar, br, cr, m[5], 0x5c4dd124, 9); ar = rotl(ar, 10)
  17683. cr = fn4(cr, dr, er, ar, br, m[10], 0x5c4dd124, 11); er = rotl(er, 10)
  17684. br = fn4(br, cr, dr, er, ar, m[14], 0x5c4dd124, 7); dr = rotl(dr, 10)
  17685. ar = fn4(ar, br, cr, dr, er, m[15], 0x5c4dd124, 7); cr = rotl(cr, 10)
  17686. er = fn4(er, ar, br, cr, dr, m[8], 0x5c4dd124, 12); br = rotl(br, 10)
  17687. dr = fn4(dr, er, ar, br, cr, m[12], 0x5c4dd124, 7); ar = rotl(ar, 10)
  17688. cr = fn4(cr, dr, er, ar, br, m[4], 0x5c4dd124, 6); er = rotl(er, 10)
  17689. br = fn4(br, cr, dr, er, ar, m[9], 0x5c4dd124, 15); dr = rotl(dr, 10)
  17690. ar = fn4(ar, br, cr, dr, er, m[1], 0x5c4dd124, 13); cr = rotl(cr, 10)
  17691. er = fn4(er, ar, br, cr, dr, m[2], 0x5c4dd124, 11); br = rotl(br, 10)
  17692. // M'j = 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13
  17693. // K' = 0x6d703ef3
  17694. // S'j = 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5
  17695. dr = fn3(dr, er, ar, br, cr, m[15], 0x6d703ef3, 9); ar = rotl(ar, 10)
  17696. cr = fn3(cr, dr, er, ar, br, m[5], 0x6d703ef3, 7); er = rotl(er, 10)
  17697. br = fn3(br, cr, dr, er, ar, m[1], 0x6d703ef3, 15); dr = rotl(dr, 10)
  17698. ar = fn3(ar, br, cr, dr, er, m[3], 0x6d703ef3, 11); cr = rotl(cr, 10)
  17699. er = fn3(er, ar, br, cr, dr, m[7], 0x6d703ef3, 8); br = rotl(br, 10)
  17700. dr = fn3(dr, er, ar, br, cr, m[14], 0x6d703ef3, 6); ar = rotl(ar, 10)
  17701. cr = fn3(cr, dr, er, ar, br, m[6], 0x6d703ef3, 6); er = rotl(er, 10)
  17702. br = fn3(br, cr, dr, er, ar, m[9], 0x6d703ef3, 14); dr = rotl(dr, 10)
  17703. ar = fn3(ar, br, cr, dr, er, m[11], 0x6d703ef3, 12); cr = rotl(cr, 10)
  17704. er = fn3(er, ar, br, cr, dr, m[8], 0x6d703ef3, 13); br = rotl(br, 10)
  17705. dr = fn3(dr, er, ar, br, cr, m[12], 0x6d703ef3, 5); ar = rotl(ar, 10)
  17706. cr = fn3(cr, dr, er, ar, br, m[2], 0x6d703ef3, 14); er = rotl(er, 10)
  17707. br = fn3(br, cr, dr, er, ar, m[10], 0x6d703ef3, 13); dr = rotl(dr, 10)
  17708. ar = fn3(ar, br, cr, dr, er, m[0], 0x6d703ef3, 13); cr = rotl(cr, 10)
  17709. er = fn3(er, ar, br, cr, dr, m[4], 0x6d703ef3, 7); br = rotl(br, 10)
  17710. dr = fn3(dr, er, ar, br, cr, m[13], 0x6d703ef3, 5); ar = rotl(ar, 10)
  17711. // M'j = 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14
  17712. // K' = 0x7a6d76e9
  17713. // S'j = 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8
  17714. cr = fn2(cr, dr, er, ar, br, m[8], 0x7a6d76e9, 15); er = rotl(er, 10)
  17715. br = fn2(br, cr, dr, er, ar, m[6], 0x7a6d76e9, 5); dr = rotl(dr, 10)
  17716. ar = fn2(ar, br, cr, dr, er, m[4], 0x7a6d76e9, 8); cr = rotl(cr, 10)
  17717. er = fn2(er, ar, br, cr, dr, m[1], 0x7a6d76e9, 11); br = rotl(br, 10)
  17718. dr = fn2(dr, er, ar, br, cr, m[3], 0x7a6d76e9, 14); ar = rotl(ar, 10)
  17719. cr = fn2(cr, dr, er, ar, br, m[11], 0x7a6d76e9, 14); er = rotl(er, 10)
  17720. br = fn2(br, cr, dr, er, ar, m[15], 0x7a6d76e9, 6); dr = rotl(dr, 10)
  17721. ar = fn2(ar, br, cr, dr, er, m[0], 0x7a6d76e9, 14); cr = rotl(cr, 10)
  17722. er = fn2(er, ar, br, cr, dr, m[5], 0x7a6d76e9, 6); br = rotl(br, 10)
  17723. dr = fn2(dr, er, ar, br, cr, m[12], 0x7a6d76e9, 9); ar = rotl(ar, 10)
  17724. cr = fn2(cr, dr, er, ar, br, m[2], 0x7a6d76e9, 12); er = rotl(er, 10)
  17725. br = fn2(br, cr, dr, er, ar, m[13], 0x7a6d76e9, 9); dr = rotl(dr, 10)
  17726. ar = fn2(ar, br, cr, dr, er, m[9], 0x7a6d76e9, 12); cr = rotl(cr, 10)
  17727. er = fn2(er, ar, br, cr, dr, m[7], 0x7a6d76e9, 5); br = rotl(br, 10)
  17728. dr = fn2(dr, er, ar, br, cr, m[10], 0x7a6d76e9, 15); ar = rotl(ar, 10)
  17729. cr = fn2(cr, dr, er, ar, br, m[14], 0x7a6d76e9, 8); er = rotl(er, 10)
  17730. // M'j = 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11
  17731. // K' = 0x00000000
  17732. // S'j = 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11
  17733. br = fn1(br, cr, dr, er, ar, m[12], 0x00000000, 8); dr = rotl(dr, 10)
  17734. ar = fn1(ar, br, cr, dr, er, m[15], 0x00000000, 5); cr = rotl(cr, 10)
  17735. er = fn1(er, ar, br, cr, dr, m[10], 0x00000000, 12); br = rotl(br, 10)
  17736. dr = fn1(dr, er, ar, br, cr, m[4], 0x00000000, 9); ar = rotl(ar, 10)
  17737. cr = fn1(cr, dr, er, ar, br, m[1], 0x00000000, 12); er = rotl(er, 10)
  17738. br = fn1(br, cr, dr, er, ar, m[5], 0x00000000, 5); dr = rotl(dr, 10)
  17739. ar = fn1(ar, br, cr, dr, er, m[8], 0x00000000, 14); cr = rotl(cr, 10)
  17740. er = fn1(er, ar, br, cr, dr, m[7], 0x00000000, 6); br = rotl(br, 10)
  17741. dr = fn1(dr, er, ar, br, cr, m[6], 0x00000000, 8); ar = rotl(ar, 10)
  17742. cr = fn1(cr, dr, er, ar, br, m[2], 0x00000000, 13); er = rotl(er, 10)
  17743. br = fn1(br, cr, dr, er, ar, m[13], 0x00000000, 6); dr = rotl(dr, 10)
  17744. ar = fn1(ar, br, cr, dr, er, m[14], 0x00000000, 5); cr = rotl(cr, 10)
  17745. er = fn1(er, ar, br, cr, dr, m[0], 0x00000000, 15); br = rotl(br, 10)
  17746. dr = fn1(dr, er, ar, br, cr, m[3], 0x00000000, 13); ar = rotl(ar, 10)
  17747. cr = fn1(cr, dr, er, ar, br, m[9], 0x00000000, 11); er = rotl(er, 10)
  17748. br = fn1(br, cr, dr, er, ar, m[11], 0x00000000, 11); dr = rotl(dr, 10)
  17749. // change state
  17750. var t = (this._b + cl + dr) | 0
  17751. this._b = (this._c + dl + er) | 0
  17752. this._c = (this._d + el + ar) | 0
  17753. this._d = (this._e + al + br) | 0
  17754. this._e = (this._a + bl + cr) | 0
  17755. this._a = t
  17756. }
  17757. RIPEMD160.prototype._digest = function () {
  17758. // create padding and handle blocks
  17759. this._block[this._blockOffset++] = 0x80
  17760. if (this._blockOffset > 56) {
  17761. this._block.fill(0, this._blockOffset, 64)
  17762. this._update()
  17763. this._blockOffset = 0
  17764. }
  17765. this._block.fill(0, this._blockOffset, 56)
  17766. this._block.writeUInt32LE(this._length[0], 56)
  17767. this._block.writeUInt32LE(this._length[1], 60)
  17768. this._update()
  17769. // produce result
  17770. var buffer = new Buffer(20)
  17771. buffer.writeInt32LE(this._a, 0)
  17772. buffer.writeInt32LE(this._b, 4)
  17773. buffer.writeInt32LE(this._c, 8)
  17774. buffer.writeInt32LE(this._d, 12)
  17775. buffer.writeInt32LE(this._e, 16)
  17776. return buffer
  17777. }
  17778. function rotl (x, n) {
  17779. return (x << n) | (x >>> (32 - n))
  17780. }
  17781. function fn1 (a, b, c, d, e, m, k, s) {
  17782. return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0
  17783. }
  17784. function fn2 (a, b, c, d, e, m, k, s) {
  17785. return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + e) | 0
  17786. }
  17787. function fn3 (a, b, c, d, e, m, k, s) {
  17788. return (rotl((a + ((b | (~c)) ^ d) + m + k) | 0, s) + e) | 0
  17789. }
  17790. function fn4 (a, b, c, d, e, m, k, s) {
  17791. return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + e) | 0
  17792. }
  17793. function fn5 (a, b, c, d, e, m, k, s) {
  17794. return (rotl((a + (b ^ (c | (~d))) + m + k) | 0, s) + e) | 0
  17795. }
  17796. module.exports = RIPEMD160
  17797. }).call(this,require("buffer").Buffer)
  17798. },{"buffer":54,"hash-base":92,"inherits":108}],148:[function(require,module,exports){
  17799. /* eslint-disable node/no-deprecated-api */
  17800. var buffer = require('buffer')
  17801. var Buffer = buffer.Buffer
  17802. // alternative to using Object.keys for old browsers
  17803. function copyProps (src, dst) {
  17804. for (var key in src) {
  17805. dst[key] = src[key]
  17806. }
  17807. }
  17808. if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {
  17809. module.exports = buffer
  17810. } else {
  17811. // Copy properties from require('buffer')
  17812. copyProps(buffer, exports)
  17813. exports.Buffer = SafeBuffer
  17814. }
  17815. function SafeBuffer (arg, encodingOrOffset, length) {
  17816. return Buffer(arg, encodingOrOffset, length)
  17817. }
  17818. // Copy static methods from Buffer
  17819. copyProps(Buffer, SafeBuffer)
  17820. SafeBuffer.from = function (arg, encodingOrOffset, length) {
  17821. if (typeof arg === 'number') {
  17822. throw new TypeError('Argument must not be a number')
  17823. }
  17824. return Buffer(arg, encodingOrOffset, length)
  17825. }
  17826. SafeBuffer.alloc = function (size, fill, encoding) {
  17827. if (typeof size !== 'number') {
  17828. throw new TypeError('Argument must be a number')
  17829. }
  17830. var buf = Buffer(size)
  17831. if (fill !== undefined) {
  17832. if (typeof encoding === 'string') {
  17833. buf.fill(fill, encoding)
  17834. } else {
  17835. buf.fill(fill)
  17836. }
  17837. } else {
  17838. buf.fill(0)
  17839. }
  17840. return buf
  17841. }
  17842. SafeBuffer.allocUnsafe = function (size) {
  17843. if (typeof size !== 'number') {
  17844. throw new TypeError('Argument must be a number')
  17845. }
  17846. return Buffer(size)
  17847. }
  17848. SafeBuffer.allocUnsafeSlow = function (size) {
  17849. if (typeof size !== 'number') {
  17850. throw new TypeError('Argument must be a number')
  17851. }
  17852. return buffer.SlowBuffer(size)
  17853. }
  17854. },{"buffer":54}],149:[function(require,module,exports){
  17855. (function (Buffer){
  17856. // prototype class for hash functions
  17857. function Hash (blockSize, finalSize) {
  17858. this._block = new Buffer(blockSize)
  17859. this._finalSize = finalSize
  17860. this._blockSize = blockSize
  17861. this._len = 0
  17862. this._s = 0
  17863. }
  17864. Hash.prototype.update = function (data, enc) {
  17865. if (typeof data === 'string') {
  17866. enc = enc || 'utf8'
  17867. data = new Buffer(data, enc)
  17868. }
  17869. var l = this._len += data.length
  17870. var s = this._s || 0
  17871. var f = 0
  17872. var buffer = this._block
  17873. while (s < l) {
  17874. var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
  17875. var ch = (t - f)
  17876. for (var i = 0; i < ch; i++) {
  17877. buffer[(s % this._blockSize) + i] = data[i + f]
  17878. }
  17879. s += ch
  17880. f += ch
  17881. if ((s % this._blockSize) === 0) {
  17882. this._update(buffer)
  17883. }
  17884. }
  17885. this._s = s
  17886. return this
  17887. }
  17888. Hash.prototype.digest = function (enc) {
  17889. // Suppose the length of the message M, in bits, is l
  17890. var l = this._len * 8
  17891. // Append the bit 1 to the end of the message
  17892. this._block[this._len % this._blockSize] = 0x80
  17893. // and then k zero bits, where k is the smallest non-negative solution to the equation (l + 1 + k) === finalSize mod blockSize
  17894. this._block.fill(0, this._len % this._blockSize + 1)
  17895. if (l % (this._blockSize * 8) >= this._finalSize * 8) {
  17896. this._update(this._block)
  17897. this._block.fill(0)
  17898. }
  17899. // to this append the block which is equal to the number l written in binary
  17900. // TODO: handle case where l is > Math.pow(2, 29)
  17901. this._block.writeInt32BE(l, this._blockSize - 4)
  17902. var hash = this._update(this._block) || this._hash()
  17903. return enc ? hash.toString(enc) : hash
  17904. }
  17905. Hash.prototype._update = function () {
  17906. throw new Error('_update must be implemented by subclass')
  17907. }
  17908. module.exports = Hash
  17909. }).call(this,require("buffer").Buffer)
  17910. },{"buffer":54}],150:[function(require,module,exports){
  17911. var exports = module.exports = function SHA (algorithm) {
  17912. algorithm = algorithm.toLowerCase()
  17913. var Algorithm = exports[algorithm]
  17914. if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
  17915. return new Algorithm()
  17916. }
  17917. exports.sha = require('./sha')
  17918. exports.sha1 = require('./sha1')
  17919. exports.sha224 = require('./sha224')
  17920. exports.sha256 = require('./sha256')
  17921. exports.sha384 = require('./sha384')
  17922. exports.sha512 = require('./sha512')
  17923. },{"./sha":151,"./sha1":152,"./sha224":153,"./sha256":154,"./sha384":155,"./sha512":156}],151:[function(require,module,exports){
  17924. (function (Buffer){
  17925. /*
  17926. * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined
  17927. * in FIPS PUB 180-1
  17928. * This source code is derived from sha1.js of the same repository.
  17929. * The difference between SHA-0 and SHA-1 is just a bitwise rotate left
  17930. * operation was added.
  17931. */
  17932. var inherits = require('inherits')
  17933. var Hash = require('./hash')
  17934. var K = [
  17935. 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0
  17936. ]
  17937. var W = new Array(80)
  17938. function Sha () {
  17939. this.init()
  17940. this._w = W
  17941. Hash.call(this, 64, 56)
  17942. }
  17943. inherits(Sha, Hash)
  17944. Sha.prototype.init = function () {
  17945. this._a = 0x67452301
  17946. this._b = 0xefcdab89
  17947. this._c = 0x98badcfe
  17948. this._d = 0x10325476
  17949. this._e = 0xc3d2e1f0
  17950. return this
  17951. }
  17952. function rotl5 (num) {
  17953. return (num << 5) | (num >>> 27)
  17954. }
  17955. function rotl30 (num) {
  17956. return (num << 30) | (num >>> 2)
  17957. }
  17958. function ft (s, b, c, d) {
  17959. if (s === 0) return (b & c) | ((~b) & d)
  17960. if (s === 2) return (b & c) | (b & d) | (c & d)
  17961. return b ^ c ^ d
  17962. }
  17963. Sha.prototype._update = function (M) {
  17964. var W = this._w
  17965. var a = this._a | 0
  17966. var b = this._b | 0
  17967. var c = this._c | 0
  17968. var d = this._d | 0
  17969. var e = this._e | 0
  17970. for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)
  17971. for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]
  17972. for (var j = 0; j < 80; ++j) {
  17973. var s = ~~(j / 20)
  17974. var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0
  17975. e = d
  17976. d = c
  17977. c = rotl30(b)
  17978. b = a
  17979. a = t
  17980. }
  17981. this._a = (a + this._a) | 0
  17982. this._b = (b + this._b) | 0
  17983. this._c = (c + this._c) | 0
  17984. this._d = (d + this._d) | 0
  17985. this._e = (e + this._e) | 0
  17986. }
  17987. Sha.prototype._hash = function () {
  17988. var H = new Buffer(20)
  17989. H.writeInt32BE(this._a | 0, 0)
  17990. H.writeInt32BE(this._b | 0, 4)
  17991. H.writeInt32BE(this._c | 0, 8)
  17992. H.writeInt32BE(this._d | 0, 12)
  17993. H.writeInt32BE(this._e | 0, 16)
  17994. return H
  17995. }
  17996. module.exports = Sha
  17997. }).call(this,require("buffer").Buffer)
  17998. },{"./hash":149,"buffer":54,"inherits":108}],152:[function(require,module,exports){
  17999. (function (Buffer){
  18000. /*
  18001. * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
  18002. * in FIPS PUB 180-1
  18003. * Version 2.1a Copyright Paul Johnston 2000 - 2002.
  18004. * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
  18005. * Distributed under the BSD License
  18006. * See http://pajhome.org.uk/crypt/md5 for details.
  18007. */
  18008. var inherits = require('inherits')
  18009. var Hash = require('./hash')
  18010. var K = [
  18011. 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0
  18012. ]
  18013. var W = new Array(80)
  18014. function Sha1 () {
  18015. this.init()
  18016. this._w = W
  18017. Hash.call(this, 64, 56)
  18018. }
  18019. inherits(Sha1, Hash)
  18020. Sha1.prototype.init = function () {
  18021. this._a = 0x67452301
  18022. this._b = 0xefcdab89
  18023. this._c = 0x98badcfe
  18024. this._d = 0x10325476
  18025. this._e = 0xc3d2e1f0
  18026. return this
  18027. }
  18028. function rotl1 (num) {
  18029. return (num << 1) | (num >>> 31)
  18030. }
  18031. function rotl5 (num) {
  18032. return (num << 5) | (num >>> 27)
  18033. }
  18034. function rotl30 (num) {
  18035. return (num << 30) | (num >>> 2)
  18036. }
  18037. function ft (s, b, c, d) {
  18038. if (s === 0) return (b & c) | ((~b) & d)
  18039. if (s === 2) return (b & c) | (b & d) | (c & d)
  18040. return b ^ c ^ d
  18041. }
  18042. Sha1.prototype._update = function (M) {
  18043. var W = this._w
  18044. var a = this._a | 0
  18045. var b = this._b | 0
  18046. var c = this._c | 0
  18047. var d = this._d | 0
  18048. var e = this._e | 0
  18049. for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)
  18050. for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])
  18051. for (var j = 0; j < 80; ++j) {
  18052. var s = ~~(j / 20)
  18053. var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0
  18054. e = d
  18055. d = c
  18056. c = rotl30(b)
  18057. b = a
  18058. a = t
  18059. }
  18060. this._a = (a + this._a) | 0
  18061. this._b = (b + this._b) | 0
  18062. this._c = (c + this._c) | 0
  18063. this._d = (d + this._d) | 0
  18064. this._e = (e + this._e) | 0
  18065. }
  18066. Sha1.prototype._hash = function () {
  18067. var H = new Buffer(20)
  18068. H.writeInt32BE(this._a | 0, 0)
  18069. H.writeInt32BE(this._b | 0, 4)
  18070. H.writeInt32BE(this._c | 0, 8)
  18071. H.writeInt32BE(this._d | 0, 12)
  18072. H.writeInt32BE(this._e | 0, 16)
  18073. return H
  18074. }
  18075. module.exports = Sha1
  18076. }).call(this,require("buffer").Buffer)
  18077. },{"./hash":149,"buffer":54,"inherits":108}],153:[function(require,module,exports){
  18078. (function (Buffer){
  18079. /**
  18080. * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined
  18081. * in FIPS 180-2
  18082. * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.
  18083. * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
  18084. *
  18085. */
  18086. var inherits = require('inherits')
  18087. var Sha256 = require('./sha256')
  18088. var Hash = require('./hash')
  18089. var W = new Array(64)
  18090. function Sha224 () {
  18091. this.init()
  18092. this._w = W // new Array(64)
  18093. Hash.call(this, 64, 56)
  18094. }
  18095. inherits(Sha224, Sha256)
  18096. Sha224.prototype.init = function () {
  18097. this._a = 0xc1059ed8
  18098. this._b = 0x367cd507
  18099. this._c = 0x3070dd17
  18100. this._d = 0xf70e5939
  18101. this._e = 0xffc00b31
  18102. this._f = 0x68581511
  18103. this._g = 0x64f98fa7
  18104. this._h = 0xbefa4fa4
  18105. return this
  18106. }
  18107. Sha224.prototype._hash = function () {
  18108. var H = new Buffer(28)
  18109. H.writeInt32BE(this._a, 0)
  18110. H.writeInt32BE(this._b, 4)
  18111. H.writeInt32BE(this._c, 8)
  18112. H.writeInt32BE(this._d, 12)
  18113. H.writeInt32BE(this._e, 16)
  18114. H.writeInt32BE(this._f, 20)
  18115. H.writeInt32BE(this._g, 24)
  18116. return H
  18117. }
  18118. module.exports = Sha224
  18119. }).call(this,require("buffer").Buffer)
  18120. },{"./hash":149,"./sha256":154,"buffer":54,"inherits":108}],154:[function(require,module,exports){
  18121. (function (Buffer){
  18122. /**
  18123. * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined
  18124. * in FIPS 180-2
  18125. * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.
  18126. * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
  18127. *
  18128. */
  18129. var inherits = require('inherits')
  18130. var Hash = require('./hash')
  18131. var K = [
  18132. 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,
  18133. 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,
  18134. 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,
  18135. 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,
  18136. 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,
  18137. 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,
  18138. 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,
  18139. 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,
  18140. 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,
  18141. 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,
  18142. 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,
  18143. 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,
  18144. 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,
  18145. 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,
  18146. 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,
  18147. 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2
  18148. ]
  18149. var W = new Array(64)
  18150. function Sha256 () {
  18151. this.init()
  18152. this._w = W // new Array(64)
  18153. Hash.call(this, 64, 56)
  18154. }
  18155. inherits(Sha256, Hash)
  18156. Sha256.prototype.init = function () {
  18157. this._a = 0x6a09e667
  18158. this._b = 0xbb67ae85
  18159. this._c = 0x3c6ef372
  18160. this._d = 0xa54ff53a
  18161. this._e = 0x510e527f
  18162. this._f = 0x9b05688c
  18163. this._g = 0x1f83d9ab
  18164. this._h = 0x5be0cd19
  18165. return this
  18166. }
  18167. function ch (x, y, z) {
  18168. return z ^ (x & (y ^ z))
  18169. }
  18170. function maj (x, y, z) {
  18171. return (x & y) | (z & (x | y))
  18172. }
  18173. function sigma0 (x) {
  18174. return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)
  18175. }
  18176. function sigma1 (x) {
  18177. return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)
  18178. }
  18179. function gamma0 (x) {
  18180. return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)
  18181. }
  18182. function gamma1 (x) {
  18183. return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)
  18184. }
  18185. Sha256.prototype._update = function (M) {
  18186. var W = this._w
  18187. var a = this._a | 0
  18188. var b = this._b | 0
  18189. var c = this._c | 0
  18190. var d = this._d | 0
  18191. var e = this._e | 0
  18192. var f = this._f | 0
  18193. var g = this._g | 0
  18194. var h = this._h | 0
  18195. for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)
  18196. for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0
  18197. for (var j = 0; j < 64; ++j) {
  18198. var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0
  18199. var T2 = (sigma0(a) + maj(a, b, c)) | 0
  18200. h = g
  18201. g = f
  18202. f = e
  18203. e = (d + T1) | 0
  18204. d = c
  18205. c = b
  18206. b = a
  18207. a = (T1 + T2) | 0
  18208. }
  18209. this._a = (a + this._a) | 0
  18210. this._b = (b + this._b) | 0
  18211. this._c = (c + this._c) | 0
  18212. this._d = (d + this._d) | 0
  18213. this._e = (e + this._e) | 0
  18214. this._f = (f + this._f) | 0
  18215. this._g = (g + this._g) | 0
  18216. this._h = (h + this._h) | 0
  18217. }
  18218. Sha256.prototype._hash = function () {
  18219. var H = new Buffer(32)
  18220. H.writeInt32BE(this._a, 0)
  18221. H.writeInt32BE(this._b, 4)
  18222. H.writeInt32BE(this._c, 8)
  18223. H.writeInt32BE(this._d, 12)
  18224. H.writeInt32BE(this._e, 16)
  18225. H.writeInt32BE(this._f, 20)
  18226. H.writeInt32BE(this._g, 24)
  18227. H.writeInt32BE(this._h, 28)
  18228. return H
  18229. }
  18230. module.exports = Sha256
  18231. }).call(this,require("buffer").Buffer)
  18232. },{"./hash":149,"buffer":54,"inherits":108}],155:[function(require,module,exports){
  18233. (function (Buffer){
  18234. var inherits = require('inherits')
  18235. var SHA512 = require('./sha512')
  18236. var Hash = require('./hash')
  18237. var W = new Array(160)
  18238. function Sha384 () {
  18239. this.init()
  18240. this._w = W
  18241. Hash.call(this, 128, 112)
  18242. }
  18243. inherits(Sha384, SHA512)
  18244. Sha384.prototype.init = function () {
  18245. this._ah = 0xcbbb9d5d
  18246. this._bh = 0x629a292a
  18247. this._ch = 0x9159015a
  18248. this._dh = 0x152fecd8
  18249. this._eh = 0x67332667
  18250. this._fh = 0x8eb44a87
  18251. this._gh = 0xdb0c2e0d
  18252. this._hh = 0x47b5481d
  18253. this._al = 0xc1059ed8
  18254. this._bl = 0x367cd507
  18255. this._cl = 0x3070dd17
  18256. this._dl = 0xf70e5939
  18257. this._el = 0xffc00b31
  18258. this._fl = 0x68581511
  18259. this._gl = 0x64f98fa7
  18260. this._hl = 0xbefa4fa4
  18261. return this
  18262. }
  18263. Sha384.prototype._hash = function () {
  18264. var H = new Buffer(48)
  18265. function writeInt64BE (h, l, offset) {
  18266. H.writeInt32BE(h, offset)
  18267. H.writeInt32BE(l, offset + 4)
  18268. }
  18269. writeInt64BE(this._ah, this._al, 0)
  18270. writeInt64BE(this._bh, this._bl, 8)
  18271. writeInt64BE(this._ch, this._cl, 16)
  18272. writeInt64BE(this._dh, this._dl, 24)
  18273. writeInt64BE(this._eh, this._el, 32)
  18274. writeInt64BE(this._fh, this._fl, 40)
  18275. return H
  18276. }
  18277. module.exports = Sha384
  18278. }).call(this,require("buffer").Buffer)
  18279. },{"./hash":149,"./sha512":156,"buffer":54,"inherits":108}],156:[function(require,module,exports){
  18280. (function (Buffer){
  18281. var inherits = require('inherits')
  18282. var Hash = require('./hash')
  18283. var K = [
  18284. 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,
  18285. 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,
  18286. 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,
  18287. 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,
  18288. 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,
  18289. 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,
  18290. 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,
  18291. 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,
  18292. 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,
  18293. 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,
  18294. 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,
  18295. 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,
  18296. 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,
  18297. 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,
  18298. 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,
  18299. 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,
  18300. 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,
  18301. 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,
  18302. 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,
  18303. 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,
  18304. 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,
  18305. 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,
  18306. 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,
  18307. 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,
  18308. 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,
  18309. 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,
  18310. 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,
  18311. 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,
  18312. 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,
  18313. 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,
  18314. 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,
  18315. 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,
  18316. 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,
  18317. 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,
  18318. 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,
  18319. 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,
  18320. 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,
  18321. 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,
  18322. 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,
  18323. 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817
  18324. ]
  18325. var W = new Array(160)
  18326. function Sha512 () {
  18327. this.init()
  18328. this._w = W
  18329. Hash.call(this, 128, 112)
  18330. }
  18331. inherits(Sha512, Hash)
  18332. Sha512.prototype.init = function () {
  18333. this._ah = 0x6a09e667
  18334. this._bh = 0xbb67ae85
  18335. this._ch = 0x3c6ef372
  18336. this._dh = 0xa54ff53a
  18337. this._eh = 0x510e527f
  18338. this._fh = 0x9b05688c
  18339. this._gh = 0x1f83d9ab
  18340. this._hh = 0x5be0cd19
  18341. this._al = 0xf3bcc908
  18342. this._bl = 0x84caa73b
  18343. this._cl = 0xfe94f82b
  18344. this._dl = 0x5f1d36f1
  18345. this._el = 0xade682d1
  18346. this._fl = 0x2b3e6c1f
  18347. this._gl = 0xfb41bd6b
  18348. this._hl = 0x137e2179
  18349. return this
  18350. }
  18351. function Ch (x, y, z) {
  18352. return z ^ (x & (y ^ z))
  18353. }
  18354. function maj (x, y, z) {
  18355. return (x & y) | (z & (x | y))
  18356. }
  18357. function sigma0 (x, xl) {
  18358. return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)
  18359. }
  18360. function sigma1 (x, xl) {
  18361. return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)
  18362. }
  18363. function Gamma0 (x, xl) {
  18364. return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)
  18365. }
  18366. function Gamma0l (x, xl) {
  18367. return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)
  18368. }
  18369. function Gamma1 (x, xl) {
  18370. return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)
  18371. }
  18372. function Gamma1l (x, xl) {
  18373. return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)
  18374. }
  18375. function getCarry (a, b) {
  18376. return (a >>> 0) < (b >>> 0) ? 1 : 0
  18377. }
  18378. Sha512.prototype._update = function (M) {
  18379. var W = this._w
  18380. var ah = this._ah | 0
  18381. var bh = this._bh | 0
  18382. var ch = this._ch | 0
  18383. var dh = this._dh | 0
  18384. var eh = this._eh | 0
  18385. var fh = this._fh | 0
  18386. var gh = this._gh | 0
  18387. var hh = this._hh | 0
  18388. var al = this._al | 0
  18389. var bl = this._bl | 0
  18390. var cl = this._cl | 0
  18391. var dl = this._dl | 0
  18392. var el = this._el | 0
  18393. var fl = this._fl | 0
  18394. var gl = this._gl | 0
  18395. var hl = this._hl | 0
  18396. for (var i = 0; i < 32; i += 2) {
  18397. W[i] = M.readInt32BE(i * 4)
  18398. W[i + 1] = M.readInt32BE(i * 4 + 4)
  18399. }
  18400. for (; i < 160; i += 2) {
  18401. var xh = W[i - 15 * 2]
  18402. var xl = W[i - 15 * 2 + 1]
  18403. var gamma0 = Gamma0(xh, xl)
  18404. var gamma0l = Gamma0l(xl, xh)
  18405. xh = W[i - 2 * 2]
  18406. xl = W[i - 2 * 2 + 1]
  18407. var gamma1 = Gamma1(xh, xl)
  18408. var gamma1l = Gamma1l(xl, xh)
  18409. // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]
  18410. var Wi7h = W[i - 7 * 2]
  18411. var Wi7l = W[i - 7 * 2 + 1]
  18412. var Wi16h = W[i - 16 * 2]
  18413. var Wi16l = W[i - 16 * 2 + 1]
  18414. var Wil = (gamma0l + Wi7l) | 0
  18415. var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0
  18416. Wil = (Wil + gamma1l) | 0
  18417. Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0
  18418. Wil = (Wil + Wi16l) | 0
  18419. Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0
  18420. W[i] = Wih
  18421. W[i + 1] = Wil
  18422. }
  18423. for (var j = 0; j < 160; j += 2) {
  18424. Wih = W[j]
  18425. Wil = W[j + 1]
  18426. var majh = maj(ah, bh, ch)
  18427. var majl = maj(al, bl, cl)
  18428. var sigma0h = sigma0(ah, al)
  18429. var sigma0l = sigma0(al, ah)
  18430. var sigma1h = sigma1(eh, el)
  18431. var sigma1l = sigma1(el, eh)
  18432. // t1 = h + sigma1 + ch + K[j] + W[j]
  18433. var Kih = K[j]
  18434. var Kil = K[j + 1]
  18435. var chh = Ch(eh, fh, gh)
  18436. var chl = Ch(el, fl, gl)
  18437. var t1l = (hl + sigma1l) | 0
  18438. var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0
  18439. t1l = (t1l + chl) | 0
  18440. t1h = (t1h + chh + getCarry(t1l, chl)) | 0
  18441. t1l = (t1l + Kil) | 0
  18442. t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0
  18443. t1l = (t1l + Wil) | 0
  18444. t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0
  18445. // t2 = sigma0 + maj
  18446. var t2l = (sigma0l + majl) | 0
  18447. var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0
  18448. hh = gh
  18449. hl = gl
  18450. gh = fh
  18451. gl = fl
  18452. fh = eh
  18453. fl = el
  18454. el = (dl + t1l) | 0
  18455. eh = (dh + t1h + getCarry(el, dl)) | 0
  18456. dh = ch
  18457. dl = cl
  18458. ch = bh
  18459. cl = bl
  18460. bh = ah
  18461. bl = al
  18462. al = (t1l + t2l) | 0
  18463. ah = (t1h + t2h + getCarry(al, t1l)) | 0
  18464. }
  18465. this._al = (this._al + al) | 0
  18466. this._bl = (this._bl + bl) | 0
  18467. this._cl = (this._cl + cl) | 0
  18468. this._dl = (this._dl + dl) | 0
  18469. this._el = (this._el + el) | 0
  18470. this._fl = (this._fl + fl) | 0
  18471. this._gl = (this._gl + gl) | 0
  18472. this._hl = (this._hl + hl) | 0
  18473. this._ah = (this._ah + ah + getCarry(this._al, al)) | 0
  18474. this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0
  18475. this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0
  18476. this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0
  18477. this._eh = (this._eh + eh + getCarry(this._el, el)) | 0
  18478. this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0
  18479. this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0
  18480. this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0
  18481. }
  18482. Sha512.prototype._hash = function () {
  18483. var H = new Buffer(64)
  18484. function writeInt64BE (h, l, offset) {
  18485. H.writeInt32BE(h, offset)
  18486. H.writeInt32BE(l, offset + 4)
  18487. }
  18488. writeInt64BE(this._ah, this._al, 0)
  18489. writeInt64BE(this._bh, this._bl, 8)
  18490. writeInt64BE(this._ch, this._cl, 16)
  18491. writeInt64BE(this._dh, this._dl, 24)
  18492. writeInt64BE(this._eh, this._el, 32)
  18493. writeInt64BE(this._fh, this._fl, 40)
  18494. writeInt64BE(this._gh, this._gl, 48)
  18495. writeInt64BE(this._hh, this._hl, 56)
  18496. return H
  18497. }
  18498. module.exports = Sha512
  18499. }).call(this,require("buffer").Buffer)
  18500. },{"./hash":149,"buffer":54,"inherits":108}],157:[function(require,module,exports){
  18501. // Copyright Joyent, Inc. and other Node contributors.
  18502. //
  18503. // Permission is hereby granted, free of charge, to any person obtaining a
  18504. // copy of this software and associated documentation files (the
  18505. // "Software"), to deal in the Software without restriction, including
  18506. // without limitation the rights to use, copy, modify, merge, publish,
  18507. // distribute, sublicense, and/or sell copies of the Software, and to permit
  18508. // persons to whom the Software is furnished to do so, subject to the
  18509. // following conditions:
  18510. //
  18511. // The above copyright notice and this permission notice shall be included
  18512. // in all copies or substantial portions of the Software.
  18513. //
  18514. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  18515. // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  18516. // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
  18517. // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
  18518. // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
  18519. // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
  18520. // USE OR OTHER DEALINGS IN THE SOFTWARE.
  18521. module.exports = Stream;
  18522. var EE = require('events').EventEmitter;
  18523. var inherits = require('inherits');
  18524. inherits(Stream, EE);
  18525. Stream.Readable = require('readable-stream/readable.js');
  18526. Stream.Writable = require('readable-stream/writable.js');
  18527. Stream.Duplex = require('readable-stream/duplex.js');
  18528. Stream.Transform = require('readable-stream/transform.js');
  18529. Stream.PassThrough = require('readable-stream/passthrough.js');
  18530. // Backwards-compat with node 0.4.x
  18531. Stream.Stream = Stream;
  18532. // old-style streams. Note that the pipe method (the only relevant
  18533. // part of this class) is overridden in the Readable class.
  18534. function Stream() {
  18535. EE.call(this);
  18536. }
  18537. Stream.prototype.pipe = function(dest, options) {
  18538. var source = this;
  18539. function ondata(chunk) {
  18540. if (dest.writable) {
  18541. if (false === dest.write(chunk) && source.pause) {
  18542. source.pause();
  18543. }
  18544. }
  18545. }
  18546. source.on('data', ondata);
  18547. function ondrain() {
  18548. if (source.readable && source.resume) {
  18549. source.resume();
  18550. }
  18551. }
  18552. dest.on('drain', ondrain);
  18553. // If the 'end' option is not supplied, dest.end() will be called when
  18554. // source gets the 'end' or 'close' events. Only dest.end() once.
  18555. if (!dest._isStdio && (!options || options.end !== false)) {
  18556. source.on('end', onend);
  18557. source.on('close', onclose);
  18558. }
  18559. var didOnEnd = false;
  18560. function onend() {
  18561. if (didOnEnd) return;
  18562. didOnEnd = true;
  18563. dest.end();
  18564. }
  18565. function onclose() {
  18566. if (didOnEnd) return;
  18567. didOnEnd = true;
  18568. if (typeof dest.destroy === 'function') dest.destroy();
  18569. }
  18570. // don't leave dangling pipes when there are errors.
  18571. function onerror(er) {
  18572. cleanup();
  18573. if (EE.listenerCount(this, 'error') === 0) {
  18574. throw er; // Unhandled stream error in pipe.
  18575. }
  18576. }
  18577. source.on('error', onerror);
  18578. dest.on('error', onerror);
  18579. // remove all the event listeners that were added.
  18580. function cleanup() {
  18581. source.removeListener('data', ondata);
  18582. dest.removeListener('drain', ondrain);
  18583. source.removeListener('end', onend);
  18584. source.removeListener('close', onclose);
  18585. source.removeListener('error', onerror);
  18586. dest.removeListener('error', onerror);
  18587. source.removeListener('end', cleanup);
  18588. source.removeListener('close', cleanup);
  18589. dest.removeListener('close', cleanup);
  18590. }
  18591. source.on('end', cleanup);
  18592. source.on('close', cleanup);
  18593. dest.on('close', cleanup);
  18594. dest.emit('pipe', source);
  18595. // Allow for unix-like usage: A.pipe(B).pipe(C)
  18596. return dest;
  18597. };
  18598. },{"events":90,"inherits":108,"readable-stream/duplex.js":134,"readable-stream/passthrough.js":143,"readable-stream/readable.js":144,"readable-stream/transform.js":145,"readable-stream/writable.js":146}],158:[function(require,module,exports){
  18599. 'use strict';
  18600. var Buffer = require('safe-buffer').Buffer;
  18601. var isEncoding = Buffer.isEncoding || function (encoding) {
  18602. encoding = '' + encoding;
  18603. switch (encoding && encoding.toLowerCase()) {
  18604. case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':
  18605. return true;
  18606. default:
  18607. return false;
  18608. }
  18609. };
  18610. function _normalizeEncoding(enc) {
  18611. if (!enc) return 'utf8';
  18612. var retried;
  18613. while (true) {
  18614. switch (enc) {
  18615. case 'utf8':
  18616. case 'utf-8':
  18617. return 'utf8';
  18618. case 'ucs2':
  18619. case 'ucs-2':
  18620. case 'utf16le':
  18621. case 'utf-16le':
  18622. return 'utf16le';
  18623. case 'latin1':
  18624. case 'binary':
  18625. return 'latin1';
  18626. case 'base64':
  18627. case 'ascii':
  18628. case 'hex':
  18629. return enc;
  18630. default:
  18631. if (retried) return; // undefined
  18632. enc = ('' + enc).toLowerCase();
  18633. retried = true;
  18634. }
  18635. }
  18636. };
  18637. // Do not cache `Buffer.isEncoding` when checking encoding names as some
  18638. // modules monkey-patch it to support additional encodings
  18639. function normalizeEncoding(enc) {
  18640. var nenc = _normalizeEncoding(enc);
  18641. if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);
  18642. return nenc || enc;
  18643. }
  18644. // StringDecoder provides an interface for efficiently splitting a series of
  18645. // buffers into a series of JS strings without breaking apart multi-byte
  18646. // characters.
  18647. exports.StringDecoder = StringDecoder;
  18648. function StringDecoder(encoding) {
  18649. this.encoding = normalizeEncoding(encoding);
  18650. var nb;
  18651. switch (this.encoding) {
  18652. case 'utf16le':
  18653. this.text = utf16Text;
  18654. this.end = utf16End;
  18655. nb = 4;
  18656. break;
  18657. case 'utf8':
  18658. this.fillLast = utf8FillLast;
  18659. nb = 4;
  18660. break;
  18661. case 'base64':
  18662. this.text = base64Text;
  18663. this.end = base64End;
  18664. nb = 3;
  18665. break;
  18666. default:
  18667. this.write = simpleWrite;
  18668. this.end = simpleEnd;
  18669. return;
  18670. }
  18671. this.lastNeed = 0;
  18672. this.lastTotal = 0;
  18673. this.lastChar = Buffer.allocUnsafe(nb);
  18674. }
  18675. StringDecoder.prototype.write = function (buf) {
  18676. if (buf.length === 0) return '';
  18677. var r;
  18678. var i;
  18679. if (this.lastNeed) {
  18680. r = this.fillLast(buf);
  18681. if (r === undefined) return '';
  18682. i = this.lastNeed;
  18683. this.lastNeed = 0;
  18684. } else {
  18685. i = 0;
  18686. }
  18687. if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);
  18688. return r || '';
  18689. };
  18690. StringDecoder.prototype.end = utf8End;
  18691. // Returns only complete characters in a Buffer
  18692. StringDecoder.prototype.text = utf8Text;
  18693. // Attempts to complete a partial non-UTF-8 character using bytes from a Buffer
  18694. StringDecoder.prototype.fillLast = function (buf) {
  18695. if (this.lastNeed <= buf.length) {
  18696. buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);
  18697. return this.lastChar.toString(this.encoding, 0, this.lastTotal);
  18698. }
  18699. buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);
  18700. this.lastNeed -= buf.length;
  18701. };
  18702. // Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a
  18703. // continuation byte.
  18704. function utf8CheckByte(byte) {
  18705. if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;
  18706. return -1;
  18707. }
  18708. // Checks at most 3 bytes at the end of a Buffer in order to detect an
  18709. // incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)
  18710. // needed to complete the UTF-8 character (if applicable) are returned.
  18711. function utf8CheckIncomplete(self, buf, i) {
  18712. var j = buf.length - 1;
  18713. if (j < i) return 0;
  18714. var nb = utf8CheckByte(buf[j]);
  18715. if (nb >= 0) {
  18716. if (nb > 0) self.lastNeed = nb - 1;
  18717. return nb;
  18718. }
  18719. if (--j < i) return 0;
  18720. nb = utf8CheckByte(buf[j]);
  18721. if (nb >= 0) {
  18722. if (nb > 0) self.lastNeed = nb - 2;
  18723. return nb;
  18724. }
  18725. if (--j < i) return 0;
  18726. nb = utf8CheckByte(buf[j]);
  18727. if (nb >= 0) {
  18728. if (nb > 0) {
  18729. if (nb === 2) nb = 0;else self.lastNeed = nb - 3;
  18730. }
  18731. return nb;
  18732. }
  18733. return 0;
  18734. }
  18735. // Validates as many continuation bytes for a multi-byte UTF-8 character as
  18736. // needed or are available. If we see a non-continuation byte where we expect
  18737. // one, we "replace" the validated continuation bytes we've seen so far with
  18738. // UTF-8 replacement characters ('\ufffd'), to match v8's UTF-8 decoding
  18739. // behavior. The continuation byte check is included three times in the case
  18740. // where all of the continuation bytes for a character exist in the same buffer.
  18741. // It is also done this way as a slight performance increase instead of using a
  18742. // loop.
  18743. function utf8CheckExtraBytes(self, buf, p) {
  18744. if ((buf[0] & 0xC0) !== 0x80) {
  18745. self.lastNeed = 0;
  18746. return '\ufffd'.repeat(p);
  18747. }
  18748. if (self.lastNeed > 1 && buf.length > 1) {
  18749. if ((buf[1] & 0xC0) !== 0x80) {
  18750. self.lastNeed = 1;
  18751. return '\ufffd'.repeat(p + 1);
  18752. }
  18753. if (self.lastNeed > 2 && buf.length > 2) {
  18754. if ((buf[2] & 0xC0) !== 0x80) {
  18755. self.lastNeed = 2;
  18756. return '\ufffd'.repeat(p + 2);
  18757. }
  18758. }
  18759. }
  18760. }
  18761. // Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.
  18762. function utf8FillLast(buf) {
  18763. var p = this.lastTotal - this.lastNeed;
  18764. var r = utf8CheckExtraBytes(this, buf, p);
  18765. if (r !== undefined) return r;
  18766. if (this.lastNeed <= buf.length) {
  18767. buf.copy(this.lastChar, p, 0, this.lastNeed);
  18768. return this.lastChar.toString(this.encoding, 0, this.lastTotal);
  18769. }
  18770. buf.copy(this.lastChar, p, 0, buf.length);
  18771. this.lastNeed -= buf.length;
  18772. }
  18773. // Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a
  18774. // partial character, the character's bytes are buffered until the required
  18775. // number of bytes are available.
  18776. function utf8Text(buf, i) {
  18777. var total = utf8CheckIncomplete(this, buf, i);
  18778. if (!this.lastNeed) return buf.toString('utf8', i);
  18779. this.lastTotal = total;
  18780. var end = buf.length - (total - this.lastNeed);
  18781. buf.copy(this.lastChar, 0, end);
  18782. return buf.toString('utf8', i, end);
  18783. }
  18784. // For UTF-8, a replacement character for each buffered byte of a (partial)
  18785. // character needs to be added to the output.
  18786. function utf8End(buf) {
  18787. var r = buf && buf.length ? this.write(buf) : '';
  18788. if (this.lastNeed) return r + '\ufffd'.repeat(this.lastTotal - this.lastNeed);
  18789. return r;
  18790. }
  18791. // UTF-16LE typically needs two bytes per character, but even if we have an even
  18792. // number of bytes available, we need to check if we end on a leading/high
  18793. // surrogate. In that case, we need to wait for the next two bytes in order to
  18794. // decode the last character properly.
  18795. function utf16Text(buf, i) {
  18796. if ((buf.length - i) % 2 === 0) {
  18797. var r = buf.toString('utf16le', i);
  18798. if (r) {
  18799. var c = r.charCodeAt(r.length - 1);
  18800. if (c >= 0xD800 && c <= 0xDBFF) {
  18801. this.lastNeed = 2;
  18802. this.lastTotal = 4;
  18803. this.lastChar[0] = buf[buf.length - 2];
  18804. this.lastChar[1] = buf[buf.length - 1];
  18805. return r.slice(0, -1);
  18806. }
  18807. }
  18808. return r;
  18809. }
  18810. this.lastNeed = 1;
  18811. this.lastTotal = 2;
  18812. this.lastChar[0] = buf[buf.length - 1];
  18813. return buf.toString('utf16le', i, buf.length - 1);
  18814. }
  18815. // For UTF-16LE we do not explicitly append special replacement characters if we
  18816. // end on a partial character, we simply let v8 handle that.
  18817. function utf16End(buf) {
  18818. var r = buf && buf.length ? this.write(buf) : '';
  18819. if (this.lastNeed) {
  18820. var end = this.lastTotal - this.lastNeed;
  18821. return r + this.lastChar.toString('utf16le', 0, end);
  18822. }
  18823. return r;
  18824. }
  18825. function base64Text(buf, i) {
  18826. var n = (buf.length - i) % 3;
  18827. if (n === 0) return buf.toString('base64', i);
  18828. this.lastNeed = 3 - n;
  18829. this.lastTotal = 3;
  18830. if (n === 1) {
  18831. this.lastChar[0] = buf[buf.length - 1];
  18832. } else {
  18833. this.lastChar[0] = buf[buf.length - 2];
  18834. this.lastChar[1] = buf[buf.length - 1];
  18835. }
  18836. return buf.toString('base64', i, buf.length - n);
  18837. }
  18838. function base64End(buf) {
  18839. var r = buf && buf.length ? this.write(buf) : '';
  18840. if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);
  18841. return r;
  18842. }
  18843. // Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)
  18844. function simpleWrite(buf) {
  18845. return buf.toString(this.encoding);
  18846. }
  18847. function simpleEnd(buf) {
  18848. return buf && buf.length ? this.write(buf) : '';
  18849. }
  18850. },{"safe-buffer":148}],159:[function(require,module,exports){
  18851. (function (global){
  18852. /**
  18853. * Module exports.
  18854. */
  18855. module.exports = deprecate;
  18856. /**
  18857. * Mark that a method should not be used.
  18858. * Returns a modified function which warns once by default.
  18859. *
  18860. * If `localStorage.noDeprecation = true` is set, then it is a no-op.
  18861. *
  18862. * If `localStorage.throwDeprecation = true` is set, then deprecated functions
  18863. * will throw an Error when invoked.
  18864. *
  18865. * If `localStorage.traceDeprecation = true` is set, then deprecated functions
  18866. * will invoke `console.trace()` instead of `console.error()`.
  18867. *
  18868. * @param {Function} fn - the function to deprecate
  18869. * @param {String} msg - the string to print to the console when `fn` is invoked
  18870. * @returns {Function} a new "deprecated" version of `fn`
  18871. * @api public
  18872. */
  18873. function deprecate (fn, msg) {
  18874. if (config('noDeprecation')) {
  18875. return fn;
  18876. }
  18877. var warned = false;
  18878. function deprecated() {
  18879. if (!warned) {
  18880. if (config('throwDeprecation')) {
  18881. throw new Error(msg);
  18882. } else if (config('traceDeprecation')) {
  18883. console.trace(msg);
  18884. } else {
  18885. console.warn(msg);
  18886. }
  18887. warned = true;
  18888. }
  18889. return fn.apply(this, arguments);
  18890. }
  18891. return deprecated;
  18892. }
  18893. /**
  18894. * Checks `localStorage` for boolean values for the given `name`.
  18895. *
  18896. * @param {String} name
  18897. * @returns {Boolean}
  18898. * @api private
  18899. */
  18900. function config (name) {
  18901. // accessing global.localStorage can trigger a DOMException in sandboxed iframes
  18902. try {
  18903. if (!global.localStorage) return false;
  18904. } catch (_) {
  18905. return false;
  18906. }
  18907. var val = global.localStorage[name];
  18908. if (null == val) return false;
  18909. return String(val).toLowerCase() === 'true';
  18910. }
  18911. }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
  18912. },{}],160:[function(require,module,exports){
  18913. var indexOf = require('indexof');
  18914. var Object_keys = function (obj) {
  18915. if (Object.keys) return Object.keys(obj)
  18916. else {
  18917. var res = [];
  18918. for (var key in obj) res.push(key)
  18919. return res;
  18920. }
  18921. };
  18922. var forEach = function (xs, fn) {
  18923. if (xs.forEach) return xs.forEach(fn)
  18924. else for (var i = 0; i < xs.length; i++) {
  18925. fn(xs[i], i, xs);
  18926. }
  18927. };
  18928. var defineProp = (function() {
  18929. try {
  18930. Object.defineProperty({}, '_', {});
  18931. return function(obj, name, value) {
  18932. Object.defineProperty(obj, name, {
  18933. writable: true,
  18934. enumerable: false,
  18935. configurable: true,
  18936. value: value
  18937. })
  18938. };
  18939. } catch(e) {
  18940. return function(obj, name, value) {
  18941. obj[name] = value;
  18942. };
  18943. }
  18944. }());
  18945. var globals = ['Array', 'Boolean', 'Date', 'Error', 'EvalError', 'Function',
  18946. 'Infinity', 'JSON', 'Math', 'NaN', 'Number', 'Object', 'RangeError',
  18947. 'ReferenceError', 'RegExp', 'String', 'SyntaxError', 'TypeError', 'URIError',
  18948. 'decodeURI', 'decodeURIComponent', 'encodeURI', 'encodeURIComponent', 'escape',
  18949. 'eval', 'isFinite', 'isNaN', 'parseFloat', 'parseInt', 'undefined', 'unescape'];
  18950. function Context() {}
  18951. Context.prototype = {};
  18952. var Script = exports.Script = function NodeScript (code) {
  18953. if (!(this instanceof Script)) return new Script(code);
  18954. this.code = code;
  18955. };
  18956. Script.prototype.runInContext = function (context) {
  18957. if (!(context instanceof Context)) {
  18958. throw new TypeError("needs a 'context' argument.");
  18959. }
  18960. var iframe = document.createElement('iframe');
  18961. if (!iframe.style) iframe.style = {};
  18962. iframe.style.display = 'none';
  18963. document.body.appendChild(iframe);
  18964. var win = iframe.contentWindow;
  18965. var wEval = win.eval, wExecScript = win.execScript;
  18966. if (!wEval && wExecScript) {
  18967. // win.eval() magically appears when this is called in IE:
  18968. wExecScript.call(win, 'null');
  18969. wEval = win.eval;
  18970. }
  18971. forEach(Object_keys(context), function (key) {
  18972. win[key] = context[key];
  18973. });
  18974. forEach(globals, function (key) {
  18975. if (context[key]) {
  18976. win[key] = context[key];
  18977. }
  18978. });
  18979. var winKeys = Object_keys(win);
  18980. var res = wEval.call(win, this.code);
  18981. forEach(Object_keys(win), function (key) {
  18982. // Avoid copying circular objects like `top` and `window` by only
  18983. // updating existing context properties or new properties in the `win`
  18984. // that was only introduced after the eval.
  18985. if (key in context || indexOf(winKeys, key) === -1) {
  18986. context[key] = win[key];
  18987. }
  18988. });
  18989. forEach(globals, function (key) {
  18990. if (!(key in context)) {
  18991. defineProp(context, key, win[key]);
  18992. }
  18993. });
  18994. document.body.removeChild(iframe);
  18995. return res;
  18996. };
  18997. Script.prototype.runInThisContext = function () {
  18998. return eval(this.code); // maybe...
  18999. };
  19000. Script.prototype.runInNewContext = function (context) {
  19001. var ctx = Script.createContext(context);
  19002. var res = this.runInContext(ctx);
  19003. forEach(Object_keys(ctx), function (key) {
  19004. context[key] = ctx[key];
  19005. });
  19006. return res;
  19007. };
  19008. forEach(Object_keys(Script.prototype), function (name) {
  19009. exports[name] = Script[name] = function (code) {
  19010. var s = Script(code);
  19011. return s[name].apply(s, [].slice.call(arguments, 1));
  19012. };
  19013. });
  19014. exports.createScript = function (code) {
  19015. return exports.Script(code);
  19016. };
  19017. exports.createContext = Script.createContext = function (context) {
  19018. var copy = new Context();
  19019. if(typeof context === 'object') {
  19020. forEach(Object_keys(context), function (key) {
  19021. copy[key] = context[key];
  19022. });
  19023. }
  19024. return copy;
  19025. };
  19026. },{"indexof":107}]},{},[1]);