12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020170211702217023170241702517026170271702817029170301703117032170331703417035170361703717038170391704017041170421704317044170451704617047170481704917050170511705217053170541705517056170571705817059170601706117062170631706417065170661706717068170691707017071170721707317074170751707617077170781707917080170811708217083170841708517086170871708817089170901709117092170931709417095170961709717098170991710017101171021710317104171051710617107171081710917110171111711217113171141711517116171171711817119171201712117122171231712417125171261712717128171291713017131171321713317134171351713617137171381713917140171411714217143171441714517146171471714817149171501715117152171531715417155171561715717158171591716017161171621716317164171651716617167171681716917170171711717217173171741717517176171771717817179171801718117182171831718417185171861718717188171891719017191171921719317194171951719617197171981719917200172011720217203172041720517206172071720817209172101721117212172131721417215172161721717218172191722017221172221722317224172251722617227172281722917230172311723217233172341723517236172371723817239172401724117242172431724417245172461724717248172491725017251172521725317254172551725617257172581725917260172611726217263172641726517266172671726817269172701727117272172731727417275172761727717278172791728017281172821728317284172851728617287172881728917290172911729217293172941729517296172971729817299173001730117302173031730417305173061730717308173091731017311173121731317314173151731617317173181731917320173211732217323173241732517326173271732817329173301733117332173331733417335173361733717338173391734017341173421734317344173451734617347173481734917350173511735217353173541735517356173571735817359173601736117362173631736417365173661736717368173691737017371173721737317374173751737617377173781737917380173811738217383173841738517386173871738817389173901739117392173931739417395173961739717398173991740017401174021740317404174051740617407174081740917410174111741217413174141741517416174171741817419174201742117422174231742417425174261742717428174291743017431174321743317434174351743617437174381743917440174411744217443174441744517446174471744817449174501745117452174531745417455174561745717458174591746017461174621746317464174651746617467174681746917470174711747217473174741747517476174771747817479174801748117482174831748417485174861748717488174891749017491174921749317494174951749617497174981749917500175011750217503175041750517506175071750817509175101751117512175131751417515175161751717518175191752017521175221752317524175251752617527175281752917530175311753217533175341753517536175371753817539175401754117542175431754417545175461754717548175491755017551175521755317554175551755617557175581755917560175611756217563175641756517566175671756817569175701757117572175731757417575175761757717578175791758017581175821758317584175851758617587175881758917590175911759217593175941759517596175971759817599176001760117602176031760417605176061760717608176091761017611176121761317614176151761617617176181761917620176211762217623176241762517626176271762817629176301763117632176331763417635176361763717638176391764017641176421764317644176451764617647176481764917650176511765217653176541765517656176571765817659176601766117662176631766417665176661766717668176691767017671176721767317674176751767617677176781767917680176811768217683176841768517686176871768817689176901769117692176931769417695176961769717698176991770017701177021770317704177051770617707177081770917710177111771217713177141771517716177171771817719177201772117722177231772417725177261772717728177291773017731177321773317734177351773617737177381773917740177411774217743177441774517746177471774817749177501775117752177531775417755177561775717758177591776017761177621776317764177651776617767177681776917770177711777217773177741777517776177771777817779177801778117782177831778417785177861778717788177891779017791177921779317794177951779617797177981779917800178011780217803178041780517806178071780817809178101781117812178131781417815178161781717818178191782017821178221782317824178251782617827178281782917830178311783217833178341783517836178371783817839178401784117842178431784417845178461784717848178491785017851178521785317854178551785617857178581785917860178611786217863178641786517866178671786817869178701787117872178731787417875178761787717878178791788017881178821788317884178851788617887178881788917890178911789217893178941789517896178971789817899179001790117902179031790417905179061790717908179091791017911179121791317914179151791617917179181791917920179211792217923179241792517926179271792817929179301793117932179331793417935179361793717938179391794017941179421794317944179451794617947179481794917950179511795217953179541795517956179571795817959179601796117962179631796417965179661796717968179691797017971179721797317974179751797617977179781797917980179811798217983179841798517986179871798817989179901799117992179931799417995179961799717998179991800018001180021800318004180051800618007180081800918010180111801218013180141801518016180171801818019180201802118022180231802418025180261802718028180291803018031180321803318034180351803618037180381803918040180411804218043180441804518046180471804818049180501805118052180531805418055180561805718058180591806018061180621806318064180651806618067180681806918070180711807218073180741807518076180771807818079180801808118082180831808418085180861808718088180891809018091180921809318094180951809618097180981809918100181011810218103181041810518106181071810818109181101811118112181131811418115181161811718118181191812018121181221812318124181251812618127181281812918130181311813218133181341813518136181371813818139181401814118142181431814418145181461814718148181491815018151181521815318154181551815618157181581815918160181611816218163181641816518166181671816818169181701817118172181731817418175181761817718178181791818018181181821818318184181851818618187181881818918190181911819218193181941819518196181971819818199182001820118202182031820418205182061820718208182091821018211182121821318214182151821618217182181821918220182211822218223182241822518226182271822818229182301823118232182331823418235182361823718238182391824018241182421824318244182451824618247182481824918250182511825218253182541825518256182571825818259182601826118262182631826418265182661826718268182691827018271182721827318274182751827618277182781827918280182811828218283182841828518286182871828818289182901829118292182931829418295182961829718298182991830018301183021830318304183051830618307183081830918310183111831218313183141831518316183171831818319183201832118322183231832418325183261832718328183291833018331183321833318334183351833618337183381833918340183411834218343183441834518346183471834818349183501835118352183531835418355183561835718358183591836018361183621836318364183651836618367183681836918370183711837218373183741837518376183771837818379183801838118382183831838418385183861838718388183891839018391183921839318394183951839618397183981839918400184011840218403184041840518406184071840818409184101841118412184131841418415184161841718418184191842018421184221842318424184251842618427184281842918430184311843218433184341843518436184371843818439184401844118442184431844418445184461844718448184491845018451184521845318454184551845618457184581845918460184611846218463184641846518466184671846818469184701847118472184731847418475184761847718478184791848018481184821848318484184851848618487184881848918490184911849218493184941849518496184971849818499185001850118502185031850418505185061850718508185091851018511185121851318514185151851618517185181851918520185211852218523185241852518526185271852818529185301853118532185331853418535185361853718538185391854018541185421854318544185451854618547185481854918550185511855218553185541855518556185571855818559185601856118562185631856418565185661856718568185691857018571185721857318574185751857618577185781857918580185811858218583185841858518586185871858818589185901859118592185931859418595185961859718598185991860018601186021860318604186051860618607186081860918610186111861218613186141861518616186171861818619186201862118622186231862418625186261862718628186291863018631186321863318634186351863618637186381863918640186411864218643186441864518646186471864818649186501865118652186531865418655186561865718658186591866018661186621866318664186651866618667186681866918670186711867218673186741867518676186771867818679186801868118682186831868418685186861868718688186891869018691186921869318694186951869618697186981869918700187011870218703187041870518706187071870818709187101871118712187131871418715187161871718718187191872018721187221872318724187251872618727187281872918730187311873218733187341873518736187371873818739187401874118742187431874418745187461874718748187491875018751187521875318754187551875618757187581875918760187611876218763187641876518766187671876818769187701877118772187731877418775187761877718778187791878018781187821878318784187851878618787187881878918790187911879218793187941879518796187971879818799188001880118802188031880418805188061880718808188091881018811188121881318814188151881618817188181881918820188211882218823188241882518826188271882818829188301883118832188331883418835188361883718838188391884018841188421884318844188451884618847188481884918850188511885218853188541885518856188571885818859188601886118862188631886418865188661886718868188691887018871188721887318874188751887618877188781887918880188811888218883188841888518886188871888818889188901889118892188931889418895188961889718898188991890018901189021890318904189051890618907189081890918910189111891218913189141891518916189171891818919189201892118922189231892418925189261892718928189291893018931189321893318934189351893618937189381893918940189411894218943189441894518946189471894818949189501895118952189531895418955189561895718958189591896018961189621896318964189651896618967189681896918970189711897218973189741897518976189771897818979189801898118982189831898418985189861898718988189891899018991189921899318994189951899618997189981899919000190011900219003190041900519006190071900819009190101901119012190131901419015190161901719018190191902019021190221902319024190251902619027190281902919030190311903219033190341903519036190371903819039190401904119042190431904419045190461904719048190491905019051190521905319054190551905619057190581905919060190611906219063190641906519066190671906819069190701907119072190731907419075190761907719078190791908019081190821908319084190851908619087190881908919090190911909219093190941909519096190971909819099191001910119102191031910419105191061910719108191091911019111191121911319114191151911619117191181911919120191211912219123191241912519126191271912819129191301913119132191331913419135191361913719138191391914019141191421914319144191451914619147191481914919150191511915219153191541915519156191571915819159191601916119162191631916419165191661916719168191691917019171191721917319174191751917619177191781917919180191811918219183191841918519186191871918819189191901919119192191931919419195191961919719198191991920019201192021920319204192051920619207192081920919210192111921219213192141921519216192171921819219192201922119222192231922419225192261922719228192291923019231192321923319234192351923619237192381923919240192411924219243192441924519246192471924819249192501925119252192531925419255192561925719258192591926019261192621926319264192651926619267192681926919270192711927219273192741927519276192771927819279192801928119282192831928419285192861928719288192891929019291192921929319294192951929619297192981929919300193011930219303193041930519306193071930819309193101931119312193131931419315193161931719318193191932019321193221932319324193251932619327193281932919330193311933219333193341933519336193371933819339193401934119342193431934419345193461934719348193491935019351193521935319354193551935619357193581935919360193611936219363193641936519366193671936819369193701937119372193731937419375193761937719378193791938019381193821938319384193851938619387193881938919390193911939219393193941939519396193971939819399194001940119402194031940419405194061940719408194091941019411194121941319414194151941619417194181941919420194211942219423194241942519426194271942819429194301943119432194331943419435194361943719438194391944019441194421944319444194451944619447194481944919450194511945219453194541945519456194571945819459194601946119462194631946419465194661946719468194691947019471194721947319474194751947619477194781947919480194811948219483194841948519486194871948819489194901949119492194931949419495194961949719498194991950019501195021950319504195051950619507195081950919510195111951219513195141951519516195171951819519195201952119522195231952419525195261952719528195291953019531195321953319534195351953619537195381953919540195411954219543195441954519546195471954819549195501955119552195531955419555195561955719558195591956019561195621956319564195651956619567195681956919570195711957219573195741957519576195771957819579195801958119582195831958419585195861958719588195891959019591195921959319594195951959619597195981959919600196011960219603196041960519606196071960819609196101961119612196131961419615196161961719618196191962019621196221962319624196251962619627196281962919630196311963219633196341963519636196371963819639196401964119642196431964419645196461964719648196491965019651196521965319654196551965619657196581965919660196611966219663196641966519666196671966819669196701967119672196731967419675196761967719678196791968019681196821968319684196851968619687196881968919690196911969219693196941969519696196971969819699197001970119702197031970419705197061970719708197091971019711197121971319714197151971619717197181971919720197211972219723197241972519726197271972819729197301973119732197331973419735197361973719738197391974019741197421974319744197451974619747197481974919750197511975219753197541975519756197571975819759197601976119762197631976419765197661976719768197691977019771197721977319774197751977619777197781977919780197811978219783197841978519786197871978819789197901979119792197931979419795197961979719798197991980019801198021980319804198051980619807198081980919810198111981219813198141981519816198171981819819198201982119822198231982419825198261982719828198291983019831198321983319834198351983619837198381983919840198411984219843198441984519846198471984819849198501985119852198531985419855198561985719858198591986019861198621986319864198651986619867198681986919870198711987219873198741987519876198771987819879198801988119882198831988419885198861988719888198891989019891198921989319894198951989619897198981989919900199011990219903199041990519906199071990819909199101991119912199131991419915199161991719918199191992019921199221992319924199251992619927199281992919930199311993219933199341993519936199371993819939199401994119942199431994419945199461994719948199491995019951199521995319954199551995619957199581995919960199611996219963199641996519966199671996819969199701997119972199731997419975199761997719978199791998019981199821998319984199851998619987199881998919990199911999219993199941999519996199971999819999200002000120002200032000420005200062000720008200092001020011200122001320014200152001620017200182001920020200212002220023200242002520026200272002820029200302003120032200332003420035200362003720038200392004020041200422004320044200452004620047200482004920050200512005220053200542005520056200572005820059200602006120062200632006420065200662006720068200692007020071200722007320074200752007620077200782007920080200812008220083200842008520086200872008820089200902009120092200932009420095200962009720098200992010020101201022010320104201052010620107201082010920110201112011220113201142011520116201172011820119201202012120122201232012420125201262012720128201292013020131201322013320134201352013620137201382013920140201412014220143201442014520146201472014820149201502015120152201532015420155201562015720158201592016020161201622016320164201652016620167201682016920170201712017220173201742017520176201772017820179201802018120182201832018420185201862018720188201892019020191201922019320194201952019620197201982019920200202012020220203202042020520206202072020820209202102021120212202132021420215202162021720218202192022020221202222022320224202252022620227202282022920230202312023220233202342023520236202372023820239202402024120242202432024420245202462024720248202492025020251202522025320254202552025620257202582025920260202612026220263202642026520266202672026820269202702027120272202732027420275202762027720278202792028020281202822028320284202852028620287202882028920290202912029220293202942029520296202972029820299203002030120302203032030420305203062030720308203092031020311203122031320314203152031620317203182031920320203212032220323203242032520326203272032820329203302033120332203332033420335203362033720338203392034020341203422034320344203452034620347203482034920350203512035220353203542035520356203572035820359203602036120362203632036420365203662036720368203692037020371203722037320374203752037620377203782037920380203812038220383203842038520386203872038820389203902039120392203932039420395203962039720398203992040020401204022040320404204052040620407204082040920410204112041220413204142041520416204172041820419204202042120422204232042420425204262042720428204292043020431204322043320434204352043620437204382043920440204412044220443204442044520446204472044820449204502045120452204532045420455204562045720458204592046020461204622046320464204652046620467204682046920470204712047220473204742047520476204772047820479204802048120482204832048420485204862048720488204892049020491204922049320494204952049620497204982049920500205012050220503205042050520506205072050820509205102051120512205132051420515205162051720518205192052020521205222052320524205252052620527205282052920530205312053220533205342053520536205372053820539205402054120542205432054420545205462054720548205492055020551205522055320554205552055620557205582055920560205612056220563205642056520566205672056820569205702057120572205732057420575205762057720578205792058020581205822058320584205852058620587205882058920590205912059220593205942059520596205972059820599206002060120602206032060420605206062060720608206092061020611206122061320614206152061620617206182061920620206212062220623206242062520626206272062820629206302063120632206332063420635206362063720638206392064020641206422064320644206452064620647206482064920650206512065220653206542065520656206572065820659206602066120662206632066420665206662066720668206692067020671206722067320674206752067620677206782067920680206812068220683206842068520686206872068820689206902069120692206932069420695206962069720698206992070020701207022070320704207052070620707207082070920710207112071220713207142071520716207172071820719207202072120722207232072420725207262072720728207292073020731207322073320734207352073620737207382073920740207412074220743207442074520746207472074820749207502075120752207532075420755207562075720758207592076020761207622076320764207652076620767207682076920770207712077220773207742077520776207772077820779207802078120782207832078420785207862078720788207892079020791207922079320794207952079620797207982079920800208012080220803208042080520806208072080820809208102081120812208132081420815208162081720818208192082020821208222082320824208252082620827208282082920830208312083220833208342083520836208372083820839208402084120842208432084420845208462084720848208492085020851208522085320854208552085620857208582085920860208612086220863208642086520866208672086820869208702087120872208732087420875208762087720878208792088020881208822088320884208852088620887208882088920890208912089220893208942089520896208972089820899209002090120902209032090420905209062090720908209092091020911209122091320914209152091620917209182091920920209212092220923209242092520926209272092820929209302093120932209332093420935209362093720938209392094020941209422094320944209452094620947209482094920950209512095220953209542095520956209572095820959209602096120962209632096420965209662096720968209692097020971209722097320974209752097620977209782097920980209812098220983209842098520986209872098820989209902099120992209932099420995209962099720998209992100021001210022100321004210052100621007210082100921010210112101221013210142101521016210172101821019210202102121022210232102421025210262102721028210292103021031210322103321034210352103621037210382103921040210412104221043210442104521046210472104821049210502105121052210532105421055210562105721058210592106021061210622106321064210652106621067210682106921070210712107221073210742107521076210772107821079210802108121082210832108421085210862108721088210892109021091210922109321094210952109621097210982109921100211012110221103211042110521106211072110821109211102111121112211132111421115211162111721118211192112021121211222112321124211252112621127211282112921130211312113221133211342113521136211372113821139211402114121142211432114421145211462114721148211492115021151211522115321154211552115621157211582115921160211612116221163211642116521166211672116821169211702117121172211732117421175211762117721178211792118021181211822118321184211852118621187211882118921190211912119221193211942119521196211972119821199212002120121202212032120421205212062120721208212092121021211212122121321214212152121621217212182121921220212212122221223212242122521226212272122821229212302123121232212332123421235212362123721238212392124021241212422124321244212452124621247212482124921250212512125221253212542125521256212572125821259212602126121262212632126421265212662126721268212692127021271212722127321274212752127621277212782127921280212812128221283212842128521286212872128821289212902129121292212932129421295212962129721298212992130021301213022130321304213052130621307213082130921310213112131221313213142131521316213172131821319213202132121322213232132421325213262132721328213292133021331213322133321334213352133621337213382133921340213412134221343213442134521346213472134821349213502135121352213532135421355213562135721358213592136021361213622136321364213652136621367213682136921370213712137221373213742137521376213772137821379213802138121382213832138421385213862138721388213892139021391213922139321394213952139621397213982139921400214012140221403214042140521406214072140821409214102141121412214132141421415214162141721418214192142021421214222142321424214252142621427214282142921430214312143221433214342143521436214372143821439214402144121442214432144421445214462144721448214492145021451214522145321454214552145621457214582145921460214612146221463214642146521466214672146821469214702147121472214732147421475214762147721478214792148021481214822148321484214852148621487214882148921490214912149221493214942149521496214972149821499215002150121502215032150421505215062150721508215092151021511215122151321514215152151621517215182151921520215212152221523215242152521526215272152821529215302153121532215332153421535215362153721538215392154021541215422154321544215452154621547215482154921550215512155221553215542155521556215572155821559215602156121562215632156421565215662156721568215692157021571215722157321574215752157621577215782157921580215812158221583215842158521586215872158821589215902159121592215932159421595215962159721598215992160021601216022160321604216052160621607216082160921610216112161221613216142161521616216172161821619216202162121622216232162421625216262162721628216292163021631216322163321634216352163621637216382163921640216412164221643216442164521646216472164821649216502165121652216532165421655216562165721658216592166021661216622166321664216652166621667216682166921670216712167221673216742167521676216772167821679216802168121682216832168421685216862168721688216892169021691216922169321694216952169621697216982169921700217012170221703217042170521706217072170821709217102171121712217132171421715217162171721718217192172021721217222172321724217252172621727217282172921730217312173221733217342173521736217372173821739217402174121742217432174421745217462174721748217492175021751217522175321754217552175621757217582175921760217612176221763217642176521766217672176821769217702177121772217732177421775217762177721778217792178021781217822178321784217852178621787217882178921790217912179221793217942179521796217972179821799218002180121802218032180421805218062180721808218092181021811218122181321814218152181621817218182181921820218212182221823218242182521826218272182821829218302183121832218332183421835218362183721838218392184021841218422184321844218452184621847218482184921850218512185221853218542185521856218572185821859218602186121862218632186421865218662186721868218692187021871218722187321874218752187621877218782187921880218812188221883218842188521886218872188821889218902189121892218932189421895218962189721898218992190021901219022190321904219052190621907219082190921910219112191221913219142191521916219172191821919219202192121922219232192421925219262192721928219292193021931219322193321934219352193621937219382193921940219412194221943219442194521946219472194821949219502195121952219532195421955219562195721958219592196021961219622196321964219652196621967219682196921970219712197221973219742197521976219772197821979219802198121982219832198421985219862198721988219892199021991219922199321994219952199621997219982199922000220012200222003220042200522006220072200822009220102201122012220132201422015220162201722018220192202022021220222202322024220252202622027220282202922030220312203222033220342203522036220372203822039220402204122042220432204422045220462204722048220492205022051220522205322054220552205622057220582205922060220612206222063220642206522066220672206822069220702207122072220732207422075220762207722078220792208022081220822208322084220852208622087220882208922090220912209222093220942209522096220972209822099221002210122102221032210422105221062210722108221092211022111221122211322114221152211622117221182211922120221212212222123221242212522126221272212822129221302213122132221332213422135221362213722138221392214022141221422214322144221452214622147221482214922150221512215222153221542215522156221572215822159221602216122162221632216422165221662216722168221692217022171221722217322174221752217622177221782217922180221812218222183221842218522186221872218822189221902219122192221932219422195221962219722198221992220022201222022220322204222052220622207222082220922210222112221222213222142221522216222172221822219222202222122222222232222422225222262222722228222292223022231222322223322234222352223622237222382223922240222412224222243222442224522246222472224822249222502225122252222532225422255222562225722258222592226022261222622226322264222652226622267222682226922270222712227222273222742227522276222772227822279222802228122282222832228422285222862228722288222892229022291222922229322294222952229622297222982229922300223012230222303223042230522306223072230822309223102231122312223132231422315223162231722318223192232022321223222232322324223252232622327223282232922330223312233222333223342233522336223372233822339223402234122342223432234422345223462234722348223492235022351223522235322354223552235622357223582235922360223612236222363223642236522366223672236822369223702237122372223732237422375223762237722378223792238022381223822238322384223852238622387223882238922390223912239222393223942239522396223972239822399224002240122402224032240422405224062240722408224092241022411224122241322414224152241622417224182241922420224212242222423224242242522426224272242822429224302243122432224332243422435224362243722438224392244022441224422244322444224452244622447224482244922450224512245222453224542245522456224572245822459224602246122462224632246422465224662246722468224692247022471224722247322474224752247622477224782247922480224812248222483224842248522486224872248822489224902249122492224932249422495224962249722498224992250022501225022250322504225052250622507225082250922510225112251222513225142251522516225172251822519225202252122522225232252422525225262252722528225292253022531225322253322534225352253622537225382253922540225412254222543225442254522546225472254822549225502255122552225532255422555225562255722558225592256022561225622256322564225652256622567225682256922570225712257222573225742257522576225772257822579225802258122582225832258422585225862258722588225892259022591225922259322594225952259622597225982259922600226012260222603226042260522606226072260822609226102261122612226132261422615226162261722618226192262022621226222262322624226252262622627226282262922630226312263222633226342263522636226372263822639226402264122642226432264422645226462264722648226492265022651226522265322654226552265622657226582265922660226612266222663226642266522666226672266822669226702267122672226732267422675226762267722678226792268022681226822268322684226852268622687226882268922690226912269222693226942269522696226972269822699227002270122702227032270422705227062270722708227092271022711227122271322714227152271622717227182271922720227212272222723227242272522726227272272822729227302273122732227332273422735227362273722738227392274022741227422274322744227452274622747227482274922750227512275222753227542275522756227572275822759227602276122762227632276422765227662276722768227692277022771227722277322774227752277622777227782277922780227812278222783227842278522786227872278822789227902279122792227932279422795227962279722798227992280022801228022280322804228052280622807228082280922810228112281222813228142281522816228172281822819228202282122822228232282422825228262282722828228292283022831228322283322834228352283622837228382283922840228412284222843228442284522846228472284822849228502285122852228532285422855228562285722858228592286022861228622286322864228652286622867228682286922870228712287222873228742287522876228772287822879228802288122882228832288422885228862288722888228892289022891228922289322894228952289622897228982289922900229012290222903229042290522906229072290822909229102291122912229132291422915229162291722918229192292022921229222292322924229252292622927229282292922930229312293222933229342293522936229372293822939229402294122942229432294422945229462294722948229492295022951229522295322954229552295622957229582295922960229612296222963229642296522966229672296822969229702297122972229732297422975229762297722978229792298022981229822298322984229852298622987229882298922990229912299222993229942299522996229972299822999230002300123002230032300423005230062300723008230092301023011230122301323014230152301623017230182301923020230212302223023230242302523026230272302823029230302303123032230332303423035230362303723038230392304023041230422304323044230452304623047230482304923050230512305223053230542305523056230572305823059230602306123062230632306423065230662306723068230692307023071230722307323074230752307623077230782307923080230812308223083230842308523086230872308823089230902309123092230932309423095230962309723098230992310023101231022310323104231052310623107231082310923110231112311223113231142311523116231172311823119231202312123122231232312423125231262312723128231292313023131231322313323134231352313623137231382313923140231412314223143231442314523146231472314823149231502315123152231532315423155231562315723158231592316023161231622316323164231652316623167231682316923170231712317223173231742317523176231772317823179231802318123182231832318423185231862318723188231892319023191231922319323194231952319623197231982319923200232012320223203232042320523206232072320823209232102321123212232132321423215232162321723218232192322023221232222322323224232252322623227232282322923230232312323223233232342323523236232372323823239232402324123242232432324423245232462324723248232492325023251232522325323254232552325623257232582325923260232612326223263232642326523266232672326823269232702327123272232732327423275232762327723278232792328023281232822328323284232852328623287232882328923290232912329223293232942329523296232972329823299233002330123302233032330423305233062330723308233092331023311233122331323314233152331623317233182331923320233212332223323233242332523326233272332823329233302333123332233332333423335233362333723338233392334023341233422334323344233452334623347233482334923350233512335223353233542335523356233572335823359233602336123362233632336423365233662336723368233692337023371233722337323374233752337623377233782337923380233812338223383233842338523386233872338823389233902339123392233932339423395233962339723398233992340023401234022340323404234052340623407234082340923410234112341223413234142341523416234172341823419234202342123422234232342423425234262342723428234292343023431234322343323434234352343623437234382343923440234412344223443234442344523446234472344823449234502345123452234532345423455234562345723458234592346023461234622346323464234652346623467234682346923470234712347223473234742347523476234772347823479234802348123482234832348423485234862348723488234892349023491234922349323494234952349623497234982349923500235012350223503235042350523506235072350823509235102351123512235132351423515235162351723518235192352023521235222352323524235252352623527235282352923530235312353223533235342353523536235372353823539235402354123542235432354423545235462354723548235492355023551235522355323554235552355623557235582355923560235612356223563235642356523566235672356823569235702357123572235732357423575235762357723578235792358023581235822358323584235852358623587235882358923590235912359223593235942359523596235972359823599236002360123602236032360423605236062360723608236092361023611236122361323614236152361623617236182361923620236212362223623236242362523626236272362823629236302363123632236332363423635236362363723638236392364023641236422364323644236452364623647236482364923650236512365223653236542365523656236572365823659236602366123662236632366423665236662366723668236692367023671236722367323674236752367623677236782367923680236812368223683236842368523686236872368823689236902369123692236932369423695236962369723698236992370023701237022370323704237052370623707237082370923710237112371223713237142371523716237172371823719237202372123722237232372423725237262372723728237292373023731237322373323734237352373623737237382373923740237412374223743237442374523746237472374823749237502375123752237532375423755237562375723758237592376023761237622376323764237652376623767237682376923770237712377223773237742377523776237772377823779237802378123782237832378423785237862378723788237892379023791237922379323794237952379623797237982379923800238012380223803238042380523806238072380823809238102381123812238132381423815238162381723818238192382023821238222382323824238252382623827238282382923830238312383223833238342383523836238372383823839238402384123842238432384423845238462384723848238492385023851238522385323854238552385623857238582385923860238612386223863238642386523866238672386823869238702387123872238732387423875238762387723878238792388023881238822388323884238852388623887238882388923890238912389223893238942389523896238972389823899239002390123902239032390423905239062390723908239092391023911239122391323914239152391623917239182391923920239212392223923239242392523926239272392823929239302393123932239332393423935239362393723938239392394023941239422394323944239452394623947239482394923950239512395223953239542395523956239572395823959239602396123962239632396423965239662396723968239692397023971239722397323974239752397623977239782397923980239812398223983239842398523986239872398823989239902399123992239932399423995239962399723998239992400024001240022400324004240052400624007240082400924010240112401224013240142401524016240172401824019240202402124022240232402424025240262402724028240292403024031240322403324034240352403624037240382403924040240412404224043240442404524046240472404824049240502405124052240532405424055240562405724058240592406024061240622406324064240652406624067240682406924070240712407224073240742407524076240772407824079240802408124082240832408424085240862408724088240892409024091240922409324094240952409624097240982409924100241012410224103241042410524106241072410824109241102411124112241132411424115241162411724118241192412024121241222412324124241252412624127241282412924130241312413224133241342413524136241372413824139241402414124142241432414424145241462414724148241492415024151241522415324154241552415624157241582415924160241612416224163241642416524166241672416824169241702417124172241732417424175241762417724178241792418024181241822418324184241852418624187241882418924190241912419224193241942419524196241972419824199242002420124202242032420424205242062420724208242092421024211242122421324214242152421624217242182421924220242212422224223242242422524226242272422824229242302423124232242332423424235242362423724238242392424024241242422424324244242452424624247242482424924250242512425224253242542425524256242572425824259242602426124262242632426424265242662426724268242692427024271242722427324274242752427624277242782427924280242812428224283242842428524286242872428824289242902429124292242932429424295242962429724298242992430024301243022430324304243052430624307243082430924310243112431224313243142431524316243172431824319243202432124322243232432424325243262432724328243292433024331243322433324334243352433624337243382433924340243412434224343243442434524346243472434824349243502435124352243532435424355243562435724358243592436024361243622436324364243652436624367243682436924370243712437224373243742437524376243772437824379243802438124382243832438424385243862438724388243892439024391243922439324394243952439624397243982439924400244012440224403244042440524406244072440824409244102441124412244132441424415244162441724418244192442024421244222442324424244252442624427244282442924430244312443224433244342443524436244372443824439244402444124442244432444424445244462444724448244492445024451244522445324454244552445624457244582445924460244612446224463244642446524466244672446824469244702447124472244732447424475244762447724478244792448024481244822448324484244852448624487244882448924490244912449224493244942449524496244972449824499245002450124502245032450424505245062450724508245092451024511245122451324514245152451624517245182451924520245212452224523245242452524526245272452824529245302453124532245332453424535245362453724538245392454024541245422454324544245452454624547245482454924550245512455224553245542455524556245572455824559245602456124562245632456424565245662456724568245692457024571245722457324574245752457624577245782457924580245812458224583245842458524586245872458824589245902459124592245932459424595245962459724598245992460024601246022460324604246052460624607246082460924610246112461224613246142461524616246172461824619246202462124622246232462424625246262462724628246292463024631246322463324634246352463624637246382463924640246412464224643246442464524646246472464824649246502465124652246532465424655246562465724658246592466024661246622466324664246652466624667246682466924670246712467224673246742467524676246772467824679246802468124682246832468424685246862468724688246892469024691246922469324694246952469624697246982469924700247012470224703247042470524706247072470824709247102471124712247132471424715247162471724718247192472024721247222472324724247252472624727247282472924730247312473224733247342473524736247372473824739247402474124742247432474424745247462474724748247492475024751247522475324754247552475624757247582475924760247612476224763247642476524766247672476824769247702477124772247732477424775247762477724778247792478024781247822478324784247852478624787247882478924790247912479224793247942479524796247972479824799248002480124802248032480424805248062480724808248092481024811248122481324814248152481624817248182481924820248212482224823248242482524826248272482824829248302483124832248332483424835248362483724838248392484024841248422484324844248452484624847248482484924850248512485224853248542485524856248572485824859248602486124862248632486424865248662486724868248692487024871248722487324874248752487624877248782487924880248812488224883248842488524886248872488824889248902489124892248932489424895248962489724898248992490024901249022490324904249052490624907249082490924910249112491224913249142491524916249172491824919249202492124922249232492424925249262492724928249292493024931249322493324934249352493624937249382493924940249412494224943249442494524946249472494824949249502495124952249532495424955249562495724958249592496024961249622496324964249652496624967249682496924970249712497224973249742497524976249772497824979249802498124982249832498424985249862498724988249892499024991249922499324994249952499624997249982499925000250012500225003250042500525006250072500825009250102501125012250132501425015250162501725018250192502025021250222502325024250252502625027250282502925030250312503225033250342503525036250372503825039250402504125042250432504425045250462504725048250492505025051250522505325054250552505625057250582505925060250612506225063250642506525066250672506825069250702507125072250732507425075250762507725078250792508025081250822508325084250852508625087250882508925090250912509225093250942509525096250972509825099251002510125102251032510425105251062510725108251092511025111251122511325114251152511625117251182511925120251212512225123251242512525126251272512825129251302513125132251332513425135251362513725138251392514025141251422514325144251452514625147251482514925150251512515225153251542515525156251572515825159251602516125162251632516425165251662516725168251692517025171251722517325174251752517625177251782517925180251812518225183251842518525186251872518825189251902519125192251932519425195251962519725198251992520025201252022520325204252052520625207252082520925210252112521225213252142521525216252172521825219252202522125222252232522425225252262522725228252292523025231252322523325234252352523625237252382523925240252412524225243252442524525246252472524825249252502525125252252532525425255 |
- (function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global = global || self, global.BenzAMRRecorder = factory());
- }(this, function () {
- var commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
- function createCommonjsModule(fn, module) {
- return module = { exports: {} }, fn(module, module.exports), module.exports;
- }
- var recorder_build = createCommonjsModule(function (module, exports) {
- (function (global, factory) {
- module.exports = factory();
- }(commonjsGlobal, (function () {
- var recorderWorker = function () {
- var recLength = 0,
- recBuffersL = [],
- recBuffersR = [],
- sampleRate;
- self.onmessage = function (e) {
- switch (e.data.command) {
- case 'init':
- init(e.data.config);
- break;
- case 'record':
- record(e.data.buffer);
- break;
- case 'exportWAV':
- exportWAV(e.data.type);
- break;
- case 'getBuffer':
- getBuffer();
- break;
- case 'clear':
- clear();
- break;
- }
- };
- function init(config) {
- sampleRate = config.sampleRate;
- }
- function record(inputBuffer) {
- recBuffersL.push(inputBuffer[0]);
- recBuffersR.push(inputBuffer[1]);
- recLength += inputBuffer[0].length;
- }
- function exportWAV(type) {
- var bufferL = mergeBuffers(recBuffersL, recLength);
- var bufferR = mergeBuffers(recBuffersR, recLength);
- var interleaved = interleave(bufferL, bufferR);
- var dataview = encodeWAV(interleaved);
- var audioBlob = new Blob([dataview], {type: type});
- self.postMessage({
- type: 'blob',
- data: audioBlob
- });
- }
- function getBuffer() {
- var buffers = [];
- buffers.push(mergeBuffers(recBuffersL, recLength));
- buffers.push(mergeBuffers(recBuffersR, recLength));
- self.postMessage({
- type: 'buffer',
- data: buffers
- });
- }
- function clear() {
- recLength = 0;
- recBuffersL = [];
- recBuffersR = [];
- }
- function mergeBuffers(recBuffers, recLength) {
- var result = new Float32Array(recLength);
- var offset = 0;
- for (var i = 0; i < recBuffers.length; i++) {
- result.set(recBuffers[i], offset);
- offset += recBuffers[i].length;
- }
- return result;
- }
- function interleave(inputL, inputR) {
- var length = inputL.length + inputR.length;
- var result = new Float32Array(length);
- var index = 0,
- inputIndex = 0;
- while (index < length) {
- result[index++] = inputL[inputIndex];
- result[index++] = inputR[inputIndex];
- inputIndex++;
- }
- return result;
- }
- function floatTo16BitPCM(output, offset, input) {
- for (var i = 0; i < input.length; i++, offset += 2) {
- var s = Math.max(-1, Math.min(1, input[i]));
- output.setInt16(offset, s < 0 ? s * 0x8000 : s * 0x7FFF, true);
- }
- }
- function writeString(view, offset, string) {
- for (var i = 0; i < string.length; i++) {
- view.setUint8(offset + i, string.charCodeAt(i));
- }
- }
- function encodeWAV(samples) {
- var buffer = new ArrayBuffer(44 + samples.length * 2);
- var view = new DataView(buffer);
- /* RIFF identifier */
- writeString(view, 0, 'RIFF');
- /* RIFF chunk length */
- view.setUint32(4, 36 + samples.length * 2, true);
- /* RIFF type */
- writeString(view, 8, 'WAVE');
- /* format chunk identifier */
- writeString(view, 12, 'fmt ');
- /* format chunk length */
- view.setUint32(16, 16, true);
- /* sample format (raw) */
- view.setUint16(20, 1, true);
- /* channel count */
- view.setUint16(22, 2, true);
- /* sample rate */
- view.setUint32(24, sampleRate, true);
- /* byte rate (sample rate * block align) */
- view.setUint32(28, sampleRate * 4, true);
- /* block align (channel count * bytes per sample) */
- view.setUint16(32, 4, true);
- /* bits per sample */
- view.setUint16(34, 16, true);
- /* data chunk identifier */
- writeString(view, 36, 'data');
- /* data chunk length */
- view.setUint32(40, samples.length * 2, true);
- floatTo16BitPCM(view, 44, samples);
- return view;
- }
- };
- var recorderWorkerStr = recorderWorker.toString()
- .replace(/^\s*function.*?\(\)\s*{/, '')
- .replace(/}\s*$/, '');
- // var WORKER_PATH = './recorderWorker.js';
- var Recorder = function(source, cfg){
- var config = cfg || {};
- var bufferLen = config.bufferLen || 4096;
- this.context = source.context;
- this.node = (this.context.createScriptProcessor ||
- this.context.createJavaScriptNode).call(this.context,
- bufferLen, 2, 2);
- var worker = new Worker((window.URL || window.webkitURL).createObjectURL(new Blob([recorderWorkerStr], {type:"text/javascript"})));
- worker.onmessage = function(e){
- if (e.data.type === 'blob') {
- currCallbackWithBlob(e.data.data);
- } else {
- currCallbackWithBuffer(e.data.data);
- }
- };
- worker.postMessage({
- command: 'init',
- config: {
- sampleRate: this.context.sampleRate
- }
- });
- var recording = false,
- currCallbackWithBuffer,
- currCallbackWithBlob;
- this.node.onaudioprocess = function(e){
- if (!recording) return;
- worker.postMessage({
- command: 'record',
- buffer: [
- e.inputBuffer.getChannelData(0),
- e.inputBuffer.getChannelData(1)
- ]
- });
- };
- this.configure = function(cfg){
- for (var prop in cfg){
- if (cfg.hasOwnProperty(prop)){
- config[prop] = cfg[prop];
- }
- }
- };
- this.record = function(){
- recording = true;
- };
- this.stop = function(){
- recording = false;
- };
- this.clear = function(){
- worker.postMessage({ command: 'clear' });
- };
- this.getBuffer = function(cb) {
- currCallbackWithBuffer = cb || config.callback;
- worker.postMessage({ command: 'getBuffer' });
- };
- this.exportWAV = function(cb, type){
- currCallbackWithBlob = cb || config.callback;
- type = type || config.type || 'audio/wav';
- if (!currCallbackWithBlob) throw new Error('Callback not set');
- worker.postMessage({
- command: 'exportWAV',
- type: type
- });
- };
- this.release = function() {
- this.stop();
- this.clear();
- this.configure = this.record = this.stop = this.clear = this.getBuffer = this.exportWAV = function () {};
- source.disconnect(this.node);
- this.node.onaudioprocess = null;
- this.node.disconnect();
- worker.terminate();
- };
- source.connect(this.node);
- this.node.connect(this.context.destination); //this should not be necessary
- };
- Recorder.forceDownload = function(blob, filename){
- var url = (window.URL || window.webkitURL).createObjectURL(blob);
- var link = window.document.createElement('a');
- link.href = url;
- link.download = filename || 'output.wav';
- var click = document.createEvent("Event");
- click.initEvent("click", true, true);
- link.dispatchEvent(click);
- };
- var recorder = Recorder;
- return recorder;
- })));
- });
- /**
- * @file 公共的 Web Audio API Context
- * @author BenzLeung(https://github.com/BenzLeung)
- * @date 2017/11/12
- * Created by JetBrains PhpStorm.
- *
- * 每位工程师都有保持代码优雅的义务
- * each engineer has a duty to keep the code elegant
- */
- const AudioContext = window.AudioContext || window.webkitAudioContext || window.mozAudioContext;
- let ctx = null;
- if (AudioContext) {
- ctx = new AudioContext();
- } else {
- console.error(new Error('Web Audio API is Unsupported.'));
- }
- class RecorderControl {
- constructor() {
- this._recorderStream = null;
- this._recorderStreamSourceNode = null;
- this._recorder = null;
- this._isRecording = false;
- this._curSourceNode = null;
- }
- playPcm(samples, sampleRate, onEnded) {
- sampleRate = sampleRate || 8000;
- this.stopPcm();
- this._curSourceNode = ctx['createBufferSource']();
- let _samples = samples;
- let buffer, channelBuffer;
- try {
- buffer = ctx['createBuffer'](1, samples.length, sampleRate);
- } catch (e) {
- // iOS 不支持 22050 以下的采样率,于是先提升采样率,然后用慢速播放
- if (sampleRate < 11025) {
- /*buffer = ctx['createBuffer'](1, samples.length * 3, sampleRate * 3);
- _samples = this._increaseSampleRate(samples, 3);*/
- buffer = ctx['createBuffer'](1, samples.length, sampleRate * 4);
- this._curSourceNode['playbackRate'].value = 0.25;
- } else {
- /*buffer = ctx['createBuffer'](1, samples.length * 2, sampleRate * 2);
- _samples = this._increaseSampleRate(samples, 2);*/
- buffer = ctx['createBuffer'](1, samples.length, sampleRate * 2);
- this._curSourceNode['playbackRate'].value = 0.5;
- }
- }
- if (buffer['copyToChannel']) {
- buffer['copyToChannel'](_samples, 0, 0);
- } else {
- channelBuffer = buffer['getChannelData'](0);
- channelBuffer.set(_samples);
- }
- this._curSourceNode['buffer'] = buffer;
- this._curSourceNode['loop'] = false;
- this._curSourceNode['connect'](ctx['destination']);
- this._curSourceNode.onended = onEnded;
- this._curSourceNode.start();
- }
- stopPcm() {
- if (this._curSourceNode) {
- this._curSourceNode.stop();
- this._curSourceNode = null;
- }
- }
- initRecorder() {
- return new Promise((resolve, reject) => {
- let s = stream => {
- this._recorderStream = stream;
- this._recorderStreamSourceNode = ctx.createMediaStreamSource(stream);
- this._recorder = new recorder_build(this._recorderStreamSourceNode);
- this._isRecording = false;
- resolve();
- };
- let j = e => {
- reject(e);
- };
- if (!this._recorder) {
- if (window.navigator.mediaDevices && window.navigator.mediaDevices.getUserMedia) {
- window.navigator.mediaDevices.getUserMedia({
- audio: true
- }).then(s).catch(j);
- } else if (window.navigator.getUserMedia) {
- window.navigator.getUserMedia({
- audio: true
- }, s, j);
- } else {
- j();
- }
- } else {
- resolve();
- }
- });
- }
- isRecording() {
- return this._recorder && this._isRecording;
- }
- startRecord() {
- if (this._recorder) {
- this._recorder.clear();
- this._recorder.record();
- this._isRecording = true;
- }
- }
- stopRecord() {
- if (this._recorder) {
- this._recorder.stop();
- this._isRecording = false;
- }
- }
- generateRecordSamples() {
- return new Promise(resolve => {
- if (this._recorder) {
- this._recorder.getBuffer(buffers => {
- resolve(buffers[0]);
- });
- }
- });
- }
- releaseRecord() {
- if (this._recorderStream && this._recorderStream.getTracks) {
- this._recorderStream.getTracks().forEach(track => {
- track.stop();
- });
- this._recorderStream = null;
- }
- if (this._recorder) {
- this._recorder.release();
- this._recorder = null;
- }
- }
- static getCtxSampleRate() {
- return ctx.sampleRate;
- }
- static decodeAudioArrayBufferByContext(array) {
- return new Promise((resolve, reject) => {
- ctx['decodeAudioData'](array, audioBuf => {
- // 把多声道音频 mix 成单声道
- const numberOfChannels = audioBuf.numberOfChannels;
- let dest = new Float32Array(audioBuf.length);
- switch (numberOfChannels) {
- default:
- case 1:
- {
- dest = audioBuf.getChannelData(0);
- break;
- }
- case 2:
- {
- const left = audioBuf.getChannelData(0);
- const right = audioBuf.getChannelData(1);
- for (let i = 0, l = dest.length; i < l; i++) {
- dest[i] = .5 * (left[i] + right[i]);
- }
- break;
- }
- case 4:
- {
- const left = audioBuf.getChannelData(0);
- const right = audioBuf.getChannelData(1);
- const sLeft = audioBuf.getChannelData(2);
- const sRight = audioBuf.getChannelData(3);
- for (let i = 0, l = dest.length; i < l; i++) {
- dest[i] = .25 * (left[i] + right[i] + sLeft[i] + sRight[i]);
- }
- break;
- }
- case 6:
- {
- const left = audioBuf.getChannelData(0);
- const right = audioBuf.getChannelData(1);
- const center = audioBuf.getChannelData(2);
- const sLeft = audioBuf.getChannelData(4);
- const sRight = audioBuf.getChannelData(5);
- for (let i = 0, l = dest.length; i < l; i++) {
- dest[i] = 0.7071 * (left[i] + right[i]) + center[i] + 0.5 * (sLeft[i] + sRight[i]);
- }
- break;
- }
- }
- resolve(dest);
- }, reject);
- });
- }
- /*
- static _increaseSampleRate(samples, multiple) {
- let sampleLen = samples.length;
- let newSamples = new Float32Array(sampleLen * multiple);
- for (let i = 0; i < sampleLen; i ++) {
- for (let j = 0; j < multiple; j ++) {
- newSamples[i * multiple + j] = samples[i];
- }
- }
- return newSamples;
- };
- */
- }
- var amrnb = function() {
- var AMR = (function () {
- var AMR = {
- toWAV: (function (amr) {
- var decoded = this._decode(amr);
- if (!decoded) {
- return null
- }
- var raw = new Uint8Array(decoded.buffer, decoded.byteOffset, decoded.byteLength);
- var out = new Uint8Array(raw.length + this.WAV_HEADER_SIZE);
- var offset = 0;
- var write_int16 = (function (value) {
- var a = new Uint8Array(2);
- (new Int16Array(a.buffer))[0] = value;
- out.set(a, offset);
- offset += 2;
- });
- var write_int32 = (function (value) {
- var a = new Uint8Array(4);
- (new Int32Array(a.buffer))[0] = value;
- out.set(a, offset);
- offset += 4;
- });
- var write_string = (function (value) {
- var d = (new TextEncoder("utf-8")).encode(value);
- out.set(d, offset);
- offset += d.length;
- });
- write_string("RIFF");
- write_int32(4 + 8 + 16 + 8 + raw.length);
- write_string("WAVEfmt ");
- write_int32(16);
- var bits_per_sample = 16;
- var sample_rate = 8e3;
- var channels = 1;
- var bytes_per_frame = bits_per_sample / 8 * channels;
- var bytes_per_sec = bytes_per_frame * sample_rate;
- write_int16(1);
- write_int16(1);
- write_int32(sample_rate);
- write_int32(bytes_per_sec);
- write_int16(bytes_per_frame);
- write_int16(bits_per_sample);
- write_string("data");
- write_int32(raw.length);
- out.set(raw, offset);
- return out
- }),
- decode: (function (amr) {
- var raw = this._decode(amr);
- if (!raw) {
- return null
- }
- var out = new Float32Array(raw.length);
- for (var i = 0; i < out.length; i++) {
- out[i] = raw[i] / 32768;
- }
- return out
- }),
- _decode: (function (amr) {
- if (String.fromCharCode.apply(null, amr.subarray(0, this.AMR_HEADER.length)) !== this.AMR_HEADER) {
- return null
- }
- var decoder = this.Decoder_Interface_init();
- if (!decoder) {
- return null
- }
- var out = new Int16Array(Math.floor(amr.length / 6 * this.PCM_BUFFER_COUNT));
- var buf = Module._malloc(this.AMR_BUFFER_COUNT);
- var decodeInBuffer = new Uint8Array(Module.HEAPU8.buffer, buf, this.AMR_BUFFER_COUNT);
- buf = Module._malloc(this.PCM_BUFFER_COUNT * 2);
- var decodeOutBuffer = new Int16Array(Module.HEAPU8.buffer, buf, this.PCM_BUFFER_COUNT);
- var inOffset = 6;
- var outOffset = 0;
- while (inOffset + 1 < amr.length && outOffset + 1 < out.length) {
- var size = this.SIZES[amr[inOffset] >> 3 & 15];
- if (inOffset + size + 1 > amr.length) {
- break
- }
- decodeInBuffer.set(amr.subarray(inOffset, inOffset + size + 1));
- this.Decoder_Interface_Decode(decoder, decodeInBuffer.byteOffset, decodeOutBuffer.byteOffset, 0);
- if (outOffset + this.PCM_BUFFER_COUNT > out.length) {
- var newOut = new Int16Array(out.length * 2);
- newOut.set(out.subarray(0, outOffset));
- out = newOut;
- }
- out.set(decodeOutBuffer, outOffset);
- outOffset += this.PCM_BUFFER_COUNT;
- inOffset += size + 1;
- }
- Module._free(decodeInBuffer.byteOffset);
- Module._free(decodeOutBuffer.byteOffset);
- this.Decoder_Interface_exit(decoder);
- return out.subarray(0, outOffset)
- }),
- encode: (function (pcm, pcmSampleRate, mode) {
- if (pcmSampleRate < 8e3) {
- console.error("pcmSampleRate should not be less than 8000.");
- return null
- }
- if (typeof mode === "undefined") {
- mode = this.Mode.MR795;
- }
- var encoder = this.Encoder_Interface_init();
- if (!encoder) {
- return null
- }
- var buf = Module._malloc(this.PCM_BUFFER_COUNT * 2);
- var encodeInBuffer = new Int16Array(Module.HEAPU8.buffer, buf, this.PCM_BUFFER_COUNT);
- buf = Module._malloc(this.AMR_BUFFER_COUNT);
- var encodeOutBuffer = new Uint8Array(Module.HEAPU8.buffer, buf, this.AMR_BUFFER_COUNT);
- var ratio = pcmSampleRate / 8e3;
- var inLength = Math.floor(pcm.length / ratio);
- var inData = new Int16Array(inLength);
- for (var i = 0; i < inLength; i++) {
- inData[i] = pcm[Math.floor(i * ratio)] * (32768 - 1);
- }
- var blockSize = this.SIZES[mode] + 1;
- var out = new Uint8Array(Math.ceil(inLength / this.PCM_BUFFER_COUNT * blockSize) + this.AMR_HEADER.length);
- out.set((new TextEncoder("utf-8")).encode(this.AMR_HEADER));
- var inOffset = 0;
- var outOffset = this.AMR_HEADER.length;
- while (inOffset + this.PCM_BUFFER_COUNT < inData.length && outOffset + blockSize < out.length) {
- encodeInBuffer.set(inData.subarray(inOffset, inOffset + this.PCM_BUFFER_COUNT));
- var n = this.Encoder_Interface_Encode(encoder, mode, encodeInBuffer.byteOffset, encodeOutBuffer.byteOffset, 0);
- if (n != blockSize) {
- console.error([n, blockSize]);
- break
- }
- out.set(encodeOutBuffer.subarray(0, n), outOffset);
- inOffset += this.PCM_BUFFER_COUNT;
- outOffset += n;
- }
- Module._free(encodeInBuffer.byteOffset);
- Module._free(encodeOutBuffer.byteOffset);
- this.Encoder_Interface_exit(encoder);
- return out.subarray(0, outOffset)
- }),
- Decoder_Interface_init: (function () {
- console.warn("Decoder_Interface_init not initialized.");
- return 0
- }),
- Decoder_Interface_exit: (function (state) {
- console.warn("Decoder_Interface_exit not initialized.");
- }),
- Decoder_Interface_Decode: (function (state, inBuffer, outBuffer, bfi) {
- console.warn("Decoder_Interface_Decode not initialized.");
- }),
- Encoder_Interface_init: (function (dtx) {
- console.warn("Encoder_Interface_init not initialized.");
- return 0
- }),
- Encoder_Interface_exit: (function (state) {
- console.warn("Encoder_Interface_exit not initialized.");
- }),
- Encoder_Interface_Encode: (function (state, mode, speech, out, forceSpeech) {
- console.warn("Encoder_Interface_Encode not initialized.");
- }),
- Mode: {MR475: 0, MR515: 1, MR59: 2, MR67: 3, MR74: 4, MR795: 5, MR102: 6, MR122: 7, MRDTX: 8},
- SIZES: [12, 13, 15, 17, 19, 20, 26, 31, 5, 6, 5, 5, 0, 0, 0, 0],
- AMR_BUFFER_COUNT: 32,
- PCM_BUFFER_COUNT: 160,
- AMR_HEADER: "#!AMR\n",
- WAV_HEADER_SIZE: 44
- };
- var Module = {
- canvas: {}, print: (function (text) {
- console.log(text);
- }), _main: (function () {
- AMR.Decoder_Interface_init = Module._Decoder_Interface_init;
- AMR.Decoder_Interface_exit = Module._Decoder_Interface_exit;
- AMR.Decoder_Interface_Decode = Module._Decoder_Interface_Decode;
- AMR.Encoder_Interface_init = Module._Encoder_Interface_init;
- AMR.Encoder_Interface_exit = Module._Encoder_Interface_exit;
- AMR.Encoder_Interface_Encode = Module._Encoder_Interface_Encode;
- return 0
- })
- };
- var Module;
- if (!Module) Module = (typeof Module !== "undefined" ? Module : null) || {};
- var moduleOverrides = {};
- for (var key in Module) {
- if (Module.hasOwnProperty(key)) {
- moduleOverrides[key] = Module[key];
- }
- }
- var ENVIRONMENT_IS_WEB = typeof window === "object";
- var ENVIRONMENT_IS_WORKER = typeof importScripts === "function";
- var ENVIRONMENT_IS_NODE = false;/*typeof process === "object" && typeof require === "function" && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER;*/
- var ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER;
- if (ENVIRONMENT_IS_SHELL) {
- if (!Module["print"]) Module["print"] = print;
- if (typeof printErr != "undefined") Module["printErr"] = printErr;
- if (typeof read != "undefined") {
- Module["read"] = read;
- } else {
- Module["read"] = function read() {
- throw"no read() available (jsc?)"
- };
- }
- Module["readBinary"] = function readBinary(f) {
- if (typeof readbuffer === "function") {
- return new Uint8Array(readbuffer(f))
- }
- var data = read(f, "binary");
- assert(typeof data === "object");
- return data
- };
- if (typeof scriptArgs != "undefined") {
- Module["arguments"] = scriptArgs;
- } else if (typeof arguments != "undefined") {
- Module["arguments"] = arguments;
- }
- } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
- Module["read"] = function read(url) {
- var xhr = new XMLHttpRequest;
- xhr.open("GET", url, false);
- xhr.send(null);
- return xhr.responseText
- };
- if (typeof arguments != "undefined") {
- Module["arguments"] = arguments;
- }
- if (typeof console !== "undefined") {
- if (!Module["print"]) Module["print"] = function print(x) {
- console.log(x);
- };
- if (!Module["printErr"]) Module["printErr"] = function printErr(x) {
- console.log(x);
- };
- } else {
- var TRY_USE_DUMP = false;
- if (!Module["print"]) Module["print"] = TRY_USE_DUMP && typeof dump !== "undefined" ? (function (x) {
- dump(x);
- }) : (function (x) {
- });
- }
- if (ENVIRONMENT_IS_WORKER) {
- Module["load"] = importScripts;
- }
- if (typeof Module["setWindowTitle"] === "undefined") {
- Module["setWindowTitle"] = (function (title) {
- document.title = title;
- });
- }
- } else {
- throw"Unknown runtime environment. Where are we?"
- }
- function globalEval(x) {
- eval.call(null, x);
- }
- if (!Module["load"] && Module["read"]) {
- Module["load"] = function load(f) {
- globalEval(Module["read"](f));
- };
- }
- if (!Module["print"]) {
- Module["print"] = (function () {
- });
- }
- if (!Module["printErr"]) {
- Module["printErr"] = Module["print"];
- }
- if (!Module["arguments"]) {
- Module["arguments"] = [];
- }
- if (!Module["thisProgram"]) {
- Module["thisProgram"] = "./this.program";
- }
- Module.print = Module["print"];
- Module.printErr = Module["printErr"];
- Module["preRun"] = [];
- Module["postRun"] = [];
- for (var key in moduleOverrides) {
- if (moduleOverrides.hasOwnProperty(key)) {
- Module[key] = moduleOverrides[key];
- }
- }
- var Runtime = {
- setTempRet0: (function (value) {
- tempRet0 = value;
- }), getTempRet0: (function () {
- return tempRet0
- }), stackSave: (function () {
- return STACKTOP
- }), stackRestore: (function (stackTop) {
- STACKTOP = stackTop;
- }), getNativeTypeSize: (function (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 Runtime.QUANTUM_SIZE
- } else if (type[0] === "i") {
- var bits = parseInt(type.substr(1));
- assert(bits % 8 === 0);
- return bits / 8
- } else {
- return 0
- }
- }
- }
- }), getNativeFieldSize: (function (type) {
- return Math.max(Runtime.getNativeTypeSize(type), Runtime.QUANTUM_SIZE)
- }), STACK_ALIGN: 16, prepVararg: (function (ptr, type) {
- if (type === "double" || type === "i64") {
- if (ptr & 7) {
- assert((ptr & 7) === 4);
- ptr += 4;
- }
- } else {
- assert((ptr & 3) === 0);
- }
- return ptr
- }), getAlignSize: (function (type, size, vararg) {
- if (!vararg && (type == "i64" || type == "double")) return 8;
- if (!type) return Math.min(size, 8);
- return Math.min(size || (type ? Runtime.getNativeFieldSize(type) : 0), Runtime.QUANTUM_SIZE)
- }), dynCall: (function (sig, ptr, args) {
- if (args && args.length) {
- if (!args.splice) args = Array.prototype.slice.call(args);
- args.splice(0, 0, ptr);
- return Module["dynCall_" + sig].apply(null, args)
- } else {
- return Module["dynCall_" + sig].call(null, ptr)
- }
- }), functionPointers: [], addFunction: (function (func) {
- for (var i = 0; i < Runtime.functionPointers.length; i++) {
- if (!Runtime.functionPointers[i]) {
- Runtime.functionPointers[i] = func;
- return 2 * (1 + i)
- }
- }
- throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."
- }), removeFunction: (function (index) {
- Runtime.functionPointers[(index - 2) / 2] = null;
- }), warnOnce: (function (text) {
- if (!Runtime.warnOnce.shown) Runtime.warnOnce.shown = {};
- if (!Runtime.warnOnce.shown[text]) {
- Runtime.warnOnce.shown[text] = 1;
- Module.printErr(text);
- }
- }), funcWrappers: {}, getFuncWrapper: (function (func, sig) {
- assert(sig);
- if (!Runtime.funcWrappers[sig]) {
- Runtime.funcWrappers[sig] = {};
- }
- var sigCache = Runtime.funcWrappers[sig];
- if (!sigCache[func]) {
- sigCache[func] = function dynCall_wrapper() {
- return Runtime.dynCall(sig, func, arguments)
- };
- }
- return sigCache[func]
- }), getCompilerSetting: (function (name) {
- throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"
- }), stackAlloc: (function (size) {
- var ret = STACKTOP;
- STACKTOP = STACKTOP + size | 0;
- STACKTOP = STACKTOP + 15 & -16;
- return ret
- }), staticAlloc: (function (size) {
- var ret = STATICTOP;
- STATICTOP = STATICTOP + size | 0;
- STATICTOP = STATICTOP + 15 & -16;
- return ret
- }), dynamicAlloc: (function (size) {
- var ret = DYNAMICTOP;
- DYNAMICTOP = DYNAMICTOP + size | 0;
- DYNAMICTOP = DYNAMICTOP + 15 & -16;
- if (DYNAMICTOP >= TOTAL_MEMORY) {
- var success = enlargeMemory();
- if (!success) {
- DYNAMICTOP = ret;
- return 0
- }
- }
- return ret
- }), alignMemory: (function (size, quantum) {
- var ret = size = Math.ceil(size / (quantum ? quantum : 16)) * (quantum ? quantum : 16);
- return ret
- }), makeBigInt: (function (low, high, unsigned) {
- var ret = unsigned ? +(low >>> 0) + +(high >>> 0) * +4294967296 : +(low >>> 0) + +(high | 0) * +4294967296;
- return ret
- }), GLOBAL_BASE: 8, QUANTUM_SIZE: 4, __dummy__: 0
- };
- Module["Runtime"] = Runtime;
- var ABORT = false;
- var tempDouble;
- var tempI64;
- var tempRet0;
- function assert(condition, text) {
- if (!condition) {
- abort("Assertion failed: " + text);
- }
- }
- function getCFunc(ident) {
- var func = Module["_" + ident];
- if (!func) {
- try {
- func = [eval][0]("_" + ident);
- } catch (e) {
- }
- }
- assert(func, "Cannot call unknown function " + ident + " (perhaps LLVM optimizations or closure removed it?)");
- return func
- }
- var cwrap, ccall;
- ((function () {
- var JSfuncs = {
- "stackSave": (function () {
- Runtime.stackSave();
- }), "stackRestore": (function () {
- Runtime.stackRestore();
- }), "arrayToC": (function (arr) {
- var ret = Runtime.stackAlloc(arr.length);
- writeArrayToMemory(arr, ret);
- return ret
- }), "stringToC": (function (str) {
- var ret = 0;
- if (str !== null && str !== undefined && str !== 0) {
- ret = Runtime.stackAlloc((str.length << 2) + 1);
- writeStringToMemory(str, ret);
- }
- return ret
- })
- };
- var toC = {"string": JSfuncs["stringToC"], "array": JSfuncs["arrayToC"]};
- ccall = function ccallFunc(ident, returnType, argTypes, args, opts) {
- 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 = Runtime.stackSave();
- cArgs[i] = converter(args[i]);
- } else {
- cArgs[i] = args[i];
- }
- }
- }
- var ret = func.apply(null, cArgs);
- if (returnType === "string") ret = Pointer_stringify(ret);
- if (stack !== 0) {
- if (opts && opts.async) {
- EmterpreterAsync.asyncFinalizers.push((function () {
- Runtime.stackRestore(stack);
- }));
- return
- }
- Runtime.stackRestore(stack);
- }
- return ret
- };
- var sourceRegex = /^function\s\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/;
- function parseJSFunc(jsfunc) {
- // Match the body and the return value of a javascript function source
- var parsed = jsfunc.toString().match(sourceRegex);
- if (!parsed) { return {}; }
- parsed = parsed.slice(1);
- return {arguments: parsed[0], body: parsed[1], returnValue: parsed[2]}
- }
- var JSsource = {};
- for (var fun in JSfuncs) {
- if (JSfuncs.hasOwnProperty(fun)) {
- JSsource[fun] = parseJSFunc(JSfuncs[fun]);
- }
- }
- cwrap = function cwrap(ident, returnType, argTypes) {
- argTypes = argTypes || [];
- var cfunc = getCFunc(ident);
- var numericArgs = argTypes.every((function (type) {
- return type === "number"
- }));
- var numericRet = returnType !== "string";
- if (numericRet && numericArgs) {
- return cfunc
- }
- var argNames = argTypes.map((function (x, i) {
- return "$" + i
- }));
- var funcstr = "(function(" + argNames.join(",") + ") {";
- var nargs = argTypes.length;
- if (!numericArgs) {
- funcstr += "var stack = " + JSsource["stackSave"].body + ";";
- for (var i = 0; i < nargs; i++) {
- var arg = argNames[i], type = argTypes[i];
- if (type === "number") continue;
- var convertCode = JSsource[type + "ToC"];
- funcstr += "var " + convertCode.arguments + " = " + arg + ";";
- funcstr += convertCode.body + ";";
- funcstr += arg + "=" + convertCode.returnValue + ";";
- }
- }
- var cfuncname = parseJSFunc((function () {
- return cfunc
- })).returnValue;
- funcstr += "var ret = " + cfuncname + "(" + argNames.join(",") + ");";
- if (!numericRet) {
- var strgfy = parseJSFunc((function () {
- return Pointer_stringify
- })).returnValue;
- funcstr += "ret = " + strgfy + "(ret);";
- }
- if (!numericArgs) {
- funcstr += JSsource["stackRestore"].body.replace("()", "(stack)") + ";";
- }
- funcstr += "return ret})";
- return [eval][0](funcstr)
- };
- }))();
- Module["ccall"] = ccall;
- Module["cwrap"] = cwrap;
- 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);
- }
- }
- Module["setValue"] = setValue;
- function getValue(ptr, type, noSafe) {
- type = type || "i8";
- if (type.charAt(type.length - 1) === "*") type = "i32";
- switch (type) {
- case"i1":
- return HEAP8[ptr >> 0];
- case"i8":
- return HEAP8[ptr >> 0];
- case"i16":
- return HEAP16[ptr >> 1];
- case"i32":
- return HEAP32[ptr >> 2];
- case"i64":
- return HEAP32[ptr >> 2];
- case"float":
- return HEAPF32[ptr >> 2];
- case"double":
- return HEAPF64[ptr >> 3];
- default:
- abort("invalid type for setValue: " + type);
- }
- return null
- }
- Module["getValue"] = getValue;
- var ALLOC_NORMAL = 0;
- var ALLOC_STACK = 1;
- var ALLOC_STATIC = 2;
- var ALLOC_DYNAMIC = 3;
- var ALLOC_NONE = 4;
- Module["ALLOC_NORMAL"] = ALLOC_NORMAL;
- Module["ALLOC_STACK"] = ALLOC_STACK;
- Module["ALLOC_STATIC"] = ALLOC_STATIC;
- Module["ALLOC_DYNAMIC"] = ALLOC_DYNAMIC;
- Module["ALLOC_NONE"] = ALLOC_NONE;
- function allocate(slab, types, allocator, ptr) {
- var zeroinit, size;
- if (typeof slab === "number") {
- zeroinit = true;
- size = slab;
- } else {
- zeroinit = false;
- size = slab.length;
- }
- var singleType = typeof types === "string" ? types : null;
- var ret;
- if (allocator == ALLOC_NONE) {
- ret = ptr;
- } else {
- ret = [_malloc, Runtime.stackAlloc, Runtime.staticAlloc, Runtime.dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length));
- }
- if (zeroinit) {
- var ptr = ret, stop;
- assert((ret & 3) == 0);
- stop = ret + (size & ~3);
- for (; ptr < stop; ptr += 4) {
- HEAP32[ptr >> 2] = 0;
- }
- stop = ret + size;
- while (ptr < stop) {
- HEAP8[ptr++ >> 0] = 0;
- }
- return ret
- }
- if (singleType === "i8") {
- if (slab.subarray || slab.slice) {
- HEAPU8.set(slab, ret);
- } else {
- HEAPU8.set(new Uint8Array(slab), ret);
- }
- return ret
- }
- var i = 0, type, typeSize, previousType;
- while (i < size) {
- var curr = slab[i];
- if (typeof curr === "function") {
- curr = Runtime.getFunctionIndex(curr);
- }
- type = singleType || types[i];
- if (type === 0) {
- i++;
- continue
- }
- if (type == "i64") type = "i32";
- setValue(ret + i, curr, type);
- if (previousType !== type) {
- typeSize = Runtime.getNativeTypeSize(type);
- previousType = type;
- }
- i += typeSize;
- }
- return ret
- }
- Module["allocate"] = allocate;
- function getMemory(size) {
- if (!staticSealed) return Runtime.staticAlloc(size);
- if (typeof _sbrk !== "undefined" && !_sbrk.called || !runtimeInitialized) return Runtime.dynamicAlloc(size);
- return _malloc(size)
- }
- Module["getMemory"] = getMemory;
- 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 Module["UTF8ToString"](ptr)
- }
- Module["Pointer_stringify"] = Pointer_stringify;
- function AsciiToString(ptr) {
- var str = "";
- while (1) {
- var ch = HEAP8[ptr++ >> 0];
- if (!ch) return str;
- str += String.fromCharCode(ch);
- }
- }
- Module["AsciiToString"] = AsciiToString;
- function stringToAscii(str, outPtr) {
- return writeAsciiToMemory(str, outPtr, false)
- }
- Module["stringToAscii"] = stringToAscii;
- function UTF8ArrayToString(u8Array, idx) {
- 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);
- }
- }
- }
- Module["UTF8ArrayToString"] = UTF8ArrayToString;
- function UTF8ToString(ptr) {
- return UTF8ArrayToString(HEAPU8, ptr)
- }
- Module["UTF8ToString"] = UTF8ToString;
- 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) u = 65536 + ((u & 1023) << 10) | str.charCodeAt(++i) & 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
- }
- Module["stringToUTF8Array"] = stringToUTF8Array;
- function stringToUTF8(str, outPtr, maxBytesToWrite) {
- return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite)
- }
- Module["stringToUTF8"] = stringToUTF8;
- 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
- }
- Module["lengthBytesUTF8"] = lengthBytesUTF8;
- function UTF16ToString(ptr) {
- var i = 0;
- var str = "";
- while (1) {
- var codeUnit = HEAP16[ptr + i * 2 >> 1];
- if (codeUnit == 0) return str;
- ++i;
- str += String.fromCharCode(codeUnit);
- }
- }
- Module["UTF16ToString"] = UTF16ToString;
- function stringToUTF16(str, outPtr, maxBytesToWrite) {
- if (maxBytesToWrite === undefined) {
- maxBytesToWrite = 2147483647;
- }
- if (maxBytesToWrite < 2) return 0;
- maxBytesToWrite -= 2;
- var startPtr = outPtr;
- var numCharsToWrite = maxBytesToWrite < str.length * 2 ? maxBytesToWrite / 2 : str.length;
- for (var i = 0; i < numCharsToWrite; ++i) {
- var codeUnit = str.charCodeAt(i);
- HEAP16[outPtr >> 1] = codeUnit;
- outPtr += 2;
- }
- HEAP16[outPtr >> 1] = 0;
- return outPtr - startPtr
- }
- Module["stringToUTF16"] = stringToUTF16;
- function lengthBytesUTF16(str) {
- return str.length * 2
- }
- Module["lengthBytesUTF16"] = lengthBytesUTF16;
- function UTF32ToString(ptr) {
- var i = 0;
- var str = "";
- while (1) {
- var utf32 = HEAP32[ptr + i * 4 >> 2];
- if (utf32 == 0) return str;
- ++i;
- if (utf32 >= 65536) {
- var ch = utf32 - 65536;
- str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);
- } else {
- str += String.fromCharCode(utf32);
- }
- }
- }
- Module["UTF32ToString"] = UTF32ToString;
- function stringToUTF32(str, outPtr, maxBytesToWrite) {
- if (maxBytesToWrite === undefined) {
- maxBytesToWrite = 2147483647;
- }
- if (maxBytesToWrite < 4) return 0;
- var startPtr = outPtr;
- var endPtr = startPtr + maxBytesToWrite - 4;
- for (var i = 0; i < str.length; ++i) {
- var codeUnit = str.charCodeAt(i);
- if (codeUnit >= 55296 && codeUnit <= 57343) {
- var trailSurrogate = str.charCodeAt(++i);
- codeUnit = 65536 + ((codeUnit & 1023) << 10) | trailSurrogate & 1023;
- }
- HEAP32[outPtr >> 2] = codeUnit;
- outPtr += 4;
- if (outPtr + 4 > endPtr) break
- }
- HEAP32[outPtr >> 2] = 0;
- return outPtr - startPtr
- }
- Module["stringToUTF32"] = stringToUTF32;
- function lengthBytesUTF32(str) {
- var len = 0;
- for (var i = 0; i < str.length; ++i) {
- var codeUnit = str.charCodeAt(i);
- if (codeUnit >= 55296 && codeUnit <= 57343) ++i;
- len += 4;
- }
- return len
- }
- Module["lengthBytesUTF32"] = lengthBytesUTF32;
- function demangle(func) {
- var hasLibcxxabi = !!Module["___cxa_demangle"];
- if (hasLibcxxabi) {
- try {
- var buf = _malloc(func.length);
- writeStringToMemory(func.substr(1), buf);
- var status = _malloc(4);
- var ret = Module["___cxa_demangle"](buf, 0, 0, status);
- if (getValue(status, "i32") === 0 && ret) {
- return Pointer_stringify(ret)
- }
- } catch (e) {
- } finally {
- if (buf) _free(buf);
- if (status) _free(status);
- if (ret) _free(ret);
- }
- }
- var i = 3;
- var basicTypes = {
- "v": "void",
- "b": "bool",
- "c": "char",
- "s": "short",
- "i": "int",
- "l": "long",
- "f": "float",
- "d": "double",
- "w": "wchar_t",
- "a": "signed char",
- "h": "unsigned char",
- "t": "unsigned short",
- "j": "unsigned int",
- "m": "unsigned long",
- "x": "long long",
- "y": "unsigned long long",
- "z": "..."
- };
- var subs = [];
- var first = true;
- function parseNested() {
- i++;
- if (func[i] === "K") i++;
- var parts = [];
- while (func[i] !== "E") {
- if (func[i] === "S") {
- i++;
- var next = func.indexOf("_", i);
- var num = func.substring(i, next) || 0;
- parts.push(subs[num] || "?");
- i = next + 1;
- continue
- }
- if (func[i] === "C") {
- parts.push(parts[parts.length - 1]);
- i += 2;
- continue
- }
- var size = parseInt(func.substr(i));
- var pre = size.toString().length;
- if (!size || !pre) {
- i--;
- break
- }
- var curr = func.substr(i + pre, size);
- parts.push(curr);
- subs.push(curr);
- i += pre + size;
- }
- i++;
- return parts
- }
- function parse(rawList, limit, allowVoid) {
- limit = limit || Infinity;
- var ret = "", list = [];
- function flushList() {
- return "(" + list.join(", ") + ")"
- }
- var name;
- if (func[i] === "N") {
- name = parseNested().join("::");
- limit--;
- if (limit === 0) return rawList ? [name] : name
- } else {
- if (func[i] === "K" || first && func[i] === "L") i++;
- var size = parseInt(func.substr(i));
- if (size) {
- var pre = size.toString().length;
- name = func.substr(i + pre, size);
- i += pre + size;
- }
- }
- first = false;
- if (func[i] === "I") {
- i++;
- var iList = parse(true);
- var iRet = parse(true, 1, true);
- ret += iRet[0] + " " + name + "<" + iList.join(", ") + ">";
- } else {
- ret = name;
- }
- paramLoop:while (i < func.length && limit-- > 0) {
- var c = func[i++];
- if (c in basicTypes) {
- list.push(basicTypes[c]);
- } else {
- switch (c) {
- case"P":
- list.push(parse(true, 1, true)[0] + "*");
- break;
- case"R":
- list.push(parse(true, 1, true)[0] + "&");
- break;
- case"L": {
- i++;
- var end = func.indexOf("E", i);
- var size = end - i;
- list.push(func.substr(i, size));
- i += size + 2;
- break
- }
- case"A": {
- var size = parseInt(func.substr(i));
- i += size.toString().length;
- if (func[i] !== "_") throw"?";
- i++;
- list.push(parse(true, 1, true)[0] + " [" + size + "]");
- break
- }
- case"E":
- break paramLoop;
- default:
- ret += "?" + c;
- break paramLoop
- }
- }
- }
- if (!allowVoid && list.length === 1 && list[0] === "void") list = [];
- if (rawList) {
- if (ret) {
- list.push(ret + "?");
- }
- return list
- } else {
- return ret + flushList()
- }
- }
- var parsed = func;
- try {
- if (func == "Object._main" || func == "_main") {
- return "main()"
- }
- if (typeof func === "number") func = Pointer_stringify(func);
- if (func[0] !== "_") return func;
- if (func[1] !== "_") return func;
- if (func[2] !== "Z") return func;
- switch (func[3]) {
- case"n":
- return "operator new()";
- case"d":
- return "operator delete()"
- }
- parsed = parse();
- } catch (e) {
- parsed += "?";
- }
- if (parsed.indexOf("?") >= 0 && !hasLibcxxabi) {
- Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");
- }
- return parsed
- }
- function demangleAll(text) {
- return text.replace(/__Z[\w\d_]+/g, (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() {
- return demangleAll(jsStackTrace())
- }
- Module["stackTrace"] = stackTrace;
- var PAGE_SIZE = 4096;
- function alignMemoryPage(x) {
- if (x % 4096 > 0) {
- x += 4096 - x % 4096;
- }
- return x
- }
- var HEAP;
- var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;
- var STATIC_BASE = 0, STATICTOP = 0, staticSealed = false;
- var STACK_BASE = 0, STACKTOP = 0, STACK_MAX = 0;
- var DYNAMIC_BASE = 0, DYNAMICTOP = 0;
- function enlargeMemory() {
- 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 ALLOW_MEMORY_GROWTH which adjusts the size at runtime but prevents some optimizations, or (3) set Module.TOTAL_MEMORY before the program runs.");
- }
- var TOTAL_STACK = Module["TOTAL_STACK"] || 65536;
- var TOTAL_MEMORY = Module["TOTAL_MEMORY"] || 524288;
- var totalMemory = 64 * 1024;
- while (totalMemory < TOTAL_MEMORY || totalMemory < 2 * TOTAL_STACK) {
- if (totalMemory < 16 * 1024 * 1024) {
- totalMemory *= 2;
- } else {
- totalMemory += 16 * 1024 * 1024;
- }
- }
- if (totalMemory !== TOTAL_MEMORY) {
- Module.printErr("increasing TOTAL_MEMORY to " + totalMemory + " to be compliant with the asm.js spec (and given that TOTAL_STACK=" + TOTAL_STACK + ")");
- TOTAL_MEMORY = totalMemory;
- }
- assert(typeof Int32Array !== "undefined" && typeof Float64Array !== "undefined" && !!(new Int32Array(1))["subarray"] && !!(new Int32Array(1))["set"], "JS engine does not provide full typed array support");
- var buffer;
- buffer = new ArrayBuffer(TOTAL_MEMORY);
- HEAP8 = new Int8Array(buffer);
- HEAP16 = new Int16Array(buffer);
- HEAP32 = new Int32Array(buffer);
- HEAPU8 = new Uint8Array(buffer);
- HEAPU16 = new Uint16Array(buffer);
- HEAPU32 = new Uint32Array(buffer);
- HEAPF32 = new Float32Array(buffer);
- HEAPF64 = new Float64Array(buffer);
- HEAP32[0] = 255;
- assert(HEAPU8[0] === 255 && HEAPU8[3] === 0, "Typed arrays 2 must be run on a little-endian system");
- Module["HEAP"] = HEAP;
- Module["buffer"] = buffer;
- Module["HEAP8"] = HEAP8;
- Module["HEAP16"] = HEAP16;
- Module["HEAP32"] = HEAP32;
- Module["HEAPU8"] = HEAPU8;
- Module["HEAPU16"] = HEAPU16;
- Module["HEAPU32"] = HEAPU32;
- Module["HEAPF32"] = HEAPF32;
- Module["HEAPF64"] = HEAPF64;
- 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) {
- Runtime.dynCall("v", func);
- } else {
- Runtime.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;
- 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__);
- }
- 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);
- }
- Module["addOnPreRun"] = addOnPreRun;
- function addOnInit(cb) {
- __ATINIT__.unshift(cb);
- }
- Module["addOnInit"] = addOnInit;
- function addOnPreMain(cb) {
- __ATMAIN__.unshift(cb);
- }
- Module["addOnPreMain"] = addOnPreMain;
- function addOnExit(cb) {
- __ATEXIT__.unshift(cb);
- }
- Module["addOnExit"] = addOnExit;
- function addOnPostRun(cb) {
- __ATPOSTRUN__.unshift(cb);
- }
- Module["addOnPostRun"] = addOnPostRun;
- 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
- }
- Module["intArrayFromString"] = intArrayFromString;
- function intArrayToString(array) {
- var ret = [];
- for (var i = 0; i < array.length; i++) {
- var chr = array[i];
- if (chr > 255) {
- chr &= 255;
- }
- ret.push(String.fromCharCode(chr));
- }
- return ret.join("")
- }
- Module["intArrayToString"] = intArrayToString;
- function writeStringToMemory(string, buffer, dontAddNull) {
- var array = intArrayFromString(string, dontAddNull);
- var i = 0;
- while (i < array.length) {
- var chr = array[i];
- HEAP8[buffer + i >> 0] = chr;
- i = i + 1;
- }
- }
- Module["writeStringToMemory"] = writeStringToMemory;
- function writeArrayToMemory(array, buffer) {
- for (var i = 0; i < array.length; i++) {
- HEAP8[buffer++ >> 0] = array[i];
- }
- }
- Module["writeArrayToMemory"] = writeArrayToMemory;
- 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;
- }
- Module["writeAsciiToMemory"] = writeAsciiToMemory;
- if (!Math["imul"] || Math["imul"](4294967295, 5) !== -5) Math["imul"] = function imul(a, b) {
- var ah = a >>> 16;
- var al = a & 65535;
- var bh = b >>> 16;
- var bl = b & 65535;
- return al * bl + (ah * bl + al * bh << 16) | 0
- };
- Math.imul = Math["imul"];
- if (!Math["clz32"]) Math["clz32"] = (function (x) {
- x = x >>> 0;
- for (var i = 0; i < 32; i++) {
- if (x & 1 << 31 - i) return i
- }
- return 32
- });
- Math.clz32 = Math["clz32"];
- 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);
- }
- }
- Module["addRunDependency"] = addRunDependency;
- 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["removeRunDependency"] = removeRunDependency;
- Module["preloadedImages"] = {};
- Module["preloadedAudios"] = {};
- STATIC_BASE = 8;
- STATICTOP = STATIC_BASE + 31776;
- __ATINIT__.push();
- allocate([154, 14, 0, 0, 188, 14, 0, 0, 226, 14, 0, 0, 8, 15, 0, 0, 46, 15, 0, 0, 84, 15, 0, 0, 130, 15, 0, 0, 208, 15, 0, 0, 66, 16, 0, 0, 108, 16, 0, 0, 42, 17, 0, 0, 248, 17, 0, 0, 228, 18, 0, 0, 240, 19, 0, 0, 24, 21, 0, 0, 86, 22, 0, 0, 238, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 13, 0, 15, 0, 17, 0, 19, 0, 20, 0, 26, 0, 31, 0, 5, 0, 6, 0, 5, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 252, 146, 252, 36, 253, 182, 253, 72, 254, 218, 254, 108, 255, 0, 0, 0, 0, 32, 78, 32, 78, 32, 78, 32, 78, 32, 78, 80, 70, 0, 64, 0, 32, 0, 0, 0, 0, 255, 127, 112, 125, 112, 125, 112, 125, 112, 125, 112, 125, 153, 89, 255, 127, 112, 125, 112, 125, 102, 102, 102, 38, 153, 25, 153, 25, 154, 89, 185, 62, 232, 43, 188, 30, 132, 21, 16, 15, 139, 10, 97, 7, 42, 5, 157, 3, 0, 96, 0, 72, 0, 54, 128, 40, 96, 30, 200, 22, 22, 17, 209, 12, 157, 9, 54, 7, 102, 70, 184, 38, 75, 21, 182, 11, 113, 6, 139, 3, 243, 1, 18, 1, 151, 0, 83, 0, 154, 89, 185, 62, 232, 43, 188, 30, 132, 21, 16, 15, 139, 10, 97, 7, 42, 5, 157, 3, 44, 3, 128, 0, 30, 2, 140, 0, 57, 11, 111, 4, 218, 8, 74, 13, 19, 8, 51, 2, 133, 49, 135, 2, 36, 16, 6, 7, 225, 21, 165, 20, 9, 30, 118, 1, 151, 14, 185, 1, 160, 42, 78, 10, 31, 46, 190, 9, 10, 80, 29, 3, 98, 20, 163, 2, 68, 26, 162, 32, 162, 20, 160, 6, 208, 5, 172, 1, 250, 22, 196, 1, 212, 20, 232, 15, 255, 13, 244, 4, 165, 9, 133, 3, 22, 62, 237, 3, 134, 58, 199, 12, 91, 40, 250, 18, 51, 14, 229, 7, 36, 10, 67, 3, 72, 48, 28, 19, 174, 47, 168, 6, 120, 52, 68, 6, 158, 35, 37, 9, 128, 15, 2, 6, 103, 21, 208, 38, 211, 14, 161, 1, 79, 5, 158, 1, 56, 14, 33, 6, 59, 31, 213, 13, 141, 44, 133, 2, 104, 33, 123, 2, 216, 15, 97, 5, 224, 64, 236, 23, 156, 44, 188, 2, 215, 7, 95, 2, 127, 48, 42, 6, 111, 43, 46, 18, 112, 53, 172, 6, 214, 46, 205, 4, 60, 31, 129, 28, 175, 51, 83, 22, 124, 9, 135, 4, 25, 8, 149, 7, 74, 24, 233, 23, 218, 13, 12, 7, 221, 34, 10, 7, 231, 33, 44, 6, 111, 54, 248, 13, 1, 52, 93, 24, 254, 23, 106, 4, 106, 23, 198, 6, 61, 55, 54, 18, 7, 44, 249, 12, 194, 47, 15, 6, 107, 54, 199, 11, 217, 19, 224, 40, 228, 36, 50, 26, 153, 6, 171, 2, 156, 5, 26, 5, 44, 28, 93, 15, 242, 15, 153, 10, 113, 30, 192, 2, 222, 58, 34, 3, 155, 24, 92, 20, 241, 16, 237, 20, 20, 26, 29, 2, 174, 23, 114, 2, 83, 53, 116, 14, 234, 44, 104, 9, 28, 63, 204, 2, 145, 47, 239, 2, 129, 31, 225, 44, 170, 24, 208, 8, 114, 17, 240, 1, 125, 28, 11, 2, 229, 39, 249, 14, 202, 32, 221, 11, 211, 32, 198, 3, 148, 55, 88, 7, 255, 33, 33, 21, 11, 64, 255, 18, 252, 28, 187, 7, 201, 23, 206, 4, 155, 36, 46, 17, 222, 56, 35, 13, 247, 52, 57, 11, 107, 51, 185, 5, 158, 21, 142, 6, 82, 51, 179, 57, 170, 28, 88, 2, 38, 5, 36, 2, 156, 16, 211, 13, 60, 39, 60, 9, 91, 41, 110, 2, 32, 51, 157, 2, 46, 55, 198, 13, 175, 19, 56, 38, 234, 59, 107, 2, 43, 12, 78, 2, 58, 64, 197, 11, 182, 60, 72, 16, 177, 60, 75, 6, 45, 60, 204, 4, 151, 62, 83, 36, 110, 29, 112, 19, 198, 7, 189, 4, 183, 44, 133, 4, 224, 48, 143, 21, 3, 37, 84, 10, 36, 30, 242, 7, 224, 51, 191, 8, 139, 62, 229, 19, 130, 31, 105, 26, 99, 39, 133, 5, 138, 19, 43, 9, 235, 48, 87, 23, 22, 59, 83, 11, 88, 71, 241, 8, 211, 61, 223, 9, 137, 63, 14, 40, 59, 57, 55, 44, 5, 7, 81, 1, 43, 12, 141, 1, 182, 13, 112, 11, 240, 17, 110, 10, 95, 29, 116, 2, 151, 44, 144, 2, 58, 23, 131, 9, 144, 25, 199, 28, 46, 32, 61, 3, 160, 15, 95, 3, 48, 39, 188, 9, 185, 62, 223, 13, 28, 71, 30, 4, 215, 23, 174, 5, 252, 22, 220, 30, 64, 73, 140, 13, 72, 7, 32, 2, 238, 35, 171, 2, 103, 45, 64, 16, 242, 17, 108, 6, 86, 12, 133, 4, 81, 62, 0, 10, 61, 48, 149, 14, 12, 68, 140, 20, 218, 23, 212, 7, 101, 11, 206, 6, 83, 64, 137, 20, 147, 65, 144, 6, 53, 67, 223, 6, 165, 18, 159, 12, 218, 28, 147, 23, 6, 56, 28, 39, 195, 15, 186, 1, 98, 16, 202, 1, 254, 35, 194, 8, 3, 29, 121, 16, 60, 50, 33, 3, 178, 43, 57, 3, 104, 49, 36, 8, 156, 50, 154, 25, 33, 37, 228, 3, 229, 25, 217, 3, 41, 41, 198, 9, 185, 59, 142, 19, 58, 49, 7, 8, 124, 60, 117, 6, 66, 63, 9, 27, 151, 55, 158, 22, 66, 10, 60, 3, 239, 21, 150, 6, 95, 53, 146, 22, 84, 14, 18, 6, 49, 44, 73, 10, 42, 38, 179, 5, 179, 54, 125, 18, 25, 62, 147, 24, 134, 24, 78, 7, 230, 30, 237, 8, 82, 66, 219, 17, 192, 64, 9, 15, 144, 59, 7, 9, 151, 62, 172, 12, 123, 56, 144, 69, 71, 46, 203, 10, 189, 7, 127, 5, 120, 5, 108, 3, 239, 16, 219, 13, 39, 17, 114, 16, 29, 21, 168, 2, 53, 68, 13, 3, 101, 25, 254, 19, 155, 31, 253, 29, 187, 28, 26, 3, 141, 32, 158, 4, 193, 58, 88, 12, 80, 58, 223, 11, 197, 79, 112, 3, 209, 56, 84, 3, 49, 48, 116, 57, 248, 26, 128, 7, 129, 16, 165, 3, 26, 32, 63, 4, 163, 41, 244, 15, 98, 39, 181, 17, 175, 10, 72, 3, 177, 80, 57, 4, 71, 65, 78, 23, 1, 62, 226, 17, 119, 42, 14, 10, 189, 14, 142, 4, 183, 56, 204, 15, 219, 80, 67, 10, 115, 59, 174, 10, 170, 59, 138, 8, 113, 24, 154, 12, 69, 51, 24, 76, 28, 28, 162, 3, 158, 9, 82, 6, 163, 17, 20, 12, 28, 54, 181, 16, 220, 40, 65, 3, 187, 67, 42, 3, 251, 65, 241, 8, 186, 60, 25, 32, 35, 53, 148, 6, 125, 12, 42, 7, 76, 62, 4, 11, 196, 61, 207, 20, 110, 66, 134, 9, 148, 65, 46, 5, 55, 61, 220, 31, 206, 45, 108, 33, 178, 14, 5, 8, 91, 37, 37, 5, 249, 52, 134, 26, 195, 47, 144, 7, 244, 31, 222, 13, 231, 51, 242, 6, 171, 63, 199, 25, 163, 63, 78, 30, 73, 33, 247, 9, 57, 28, 85, 10, 93, 71, 65, 29, 245, 65, 200, 8, 218, 69, 68, 11, 113, 67, 0, 13, 201, 36, 194, 78, 34, 43, 128, 32, 6, 5, 108, 2, 151, 5, 71, 2, 105, 23, 241, 8, 138, 15, 42, 14, 24, 20, 240, 2, 97, 52, 62, 3, 177, 21, 44, 11, 244, 45, 20, 23, 241, 41, 48, 2, 70, 21, 52, 2, 9, 52, 192, 11, 170, 46, 99, 14, 175, 77, 30, 3, 97, 38, 216, 2, 95, 53, 44, 34, 223, 28, 237, 11, 211, 9, 10, 3, 162, 23, 65, 3, 69, 25, 210, 19, 113, 32, 159, 9, 253, 23, 73, 7, 204, 59, 238, 4, 72, 56, 195, 17, 95, 53, 163, 17, 65, 12, 167, 11, 175, 9, 235, 4, 240, 58, 39, 18, 22, 60, 47, 10, 156, 56, 88, 9, 174, 48, 233, 9, 115, 29, 133, 11, 109, 50, 28, 47, 92, 21, 172, 2, 69, 12, 210, 2, 217, 19, 250, 4, 188, 49, 104, 16, 198, 59, 169, 2, 139, 30, 80, 2, 134, 25, 229, 7, 94, 64, 33, 34, 52, 52, 114, 3, 21, 21, 131, 3, 64, 57, 130, 8, 149, 57, 131, 16, 190, 55, 18, 5, 105, 54, 237, 7, 117, 60, 58, 29, 199, 61, 220, 17, 217, 9, 221, 7, 198, 19, 12, 7, 39, 20, 182, 25, 218, 27, 13, 14, 168, 42, 75, 6, 209, 45, 172, 6, 7, 66, 127, 13, 140, 63, 240, 25, 90, 36, 239, 3, 153, 36, 58, 8, 238, 74, 173, 19, 153, 48, 173, 16, 47, 62, 52, 5, 253, 59, 184, 13, 122, 46, 61, 55, 229, 62, 198, 26, 218, 7, 225, 2, 195, 14, 93, 3, 190, 44, 64, 11, 236, 13, 212, 13, 97, 35, 217, 4, 103, 48, 128, 3, 98, 33, 21, 18, 41, 45, 144, 22, 193, 31, 77, 2, 26, 32, 76, 2, 40, 73, 171, 14, 173, 50, 77, 12, 113, 61, 246, 2, 250, 64, 242, 2, 118, 59, 130, 43, 255, 61, 160, 8, 65, 18, 98, 2, 234, 39, 166, 2, 153, 59, 50, 16, 97, 22, 255, 12, 185, 32, 134, 6, 150, 77, 17, 9, 90, 60, 135, 21, 230, 54, 105, 21, 96, 22, 72, 11, 156, 29, 66, 5, 48, 56, 205, 20, 108, 63, 110, 15, 14, 59, 160, 14, 202, 59, 155, 5, 5, 57, 230, 15, 13, 48, 80, 61, 193, 29, 163, 6, 122, 8, 116, 3, 107, 17, 215, 17, 174, 70, 234, 12, 198, 49, 47, 3, 78, 58, 139, 3, 168, 58, 185, 16, 158, 60, 176, 32, 74, 70, 63, 4, 54, 9, 97, 3, 153, 63, 203, 14, 63, 61, 244, 17, 228, 63, 254, 5, 200, 64, 162, 8, 193, 65, 225, 37, 57, 62, 161, 17, 205, 12, 61, 4, 171, 37, 139, 8, 197, 46, 180, 23, 239, 35, 110, 17, 251, 34, 93, 6, 49, 40, 246, 11, 97, 64, 35, 20, 106, 60, 154, 27, 110, 53, 239, 9, 153, 20, 229, 8, 106, 65, 69, 24, 15, 65, 80, 13, 80, 79, 35, 13, 0, 73, 193, 7, 92, 55, 67, 50, 50, 59, 87, 61, 121, 17, 252, 3, 145, 6, 118, 3, 215, 16, 205, 16, 248, 34, 73, 14, 5, 23, 123, 4, 127, 45, 172, 5, 14, 62, 179, 8, 230, 17, 244, 25, 17, 27, 181, 4, 76, 24, 31, 3, 127, 48, 81, 13, 96, 62, 37, 15, 147, 77, 61, 8, 217, 37, 93, 8, 150, 57, 126, 34, 144, 56, 39, 10, 25, 7, 214, 4, 91, 30, 45, 3, 135, 74, 58, 17, 178, 21, 16, 8, 103, 14, 28, 11, 27, 68, 208, 8, 57, 65, 134, 17, 71, 63, 12, 21, 92, 31, 203, 10, 77, 13, 71, 8, 18, 68, 101, 21, 130, 53, 226, 10, 167, 77, 160, 10, 138, 35, 40, 15, 252, 70, 225, 18, 184, 67, 175, 47, 252, 19, 228, 3, 71, 19, 220, 3, 160, 38, 9, 12, 126, 23, 251, 20, 9, 62, 131, 6, 213, 32, 159, 4, 239, 58, 62, 9, 65, 77, 90, 27, 187, 46, 26, 6, 111, 28, 104, 4, 219, 65, 252, 5, 146, 61, 5, 21, 116, 57, 17, 8, 137, 78, 107, 8, 6, 67, 53, 32, 247, 69, 174, 24, 91, 21, 224, 5, 4, 16, 14, 10, 13, 68, 154, 26, 41, 22, 72, 11, 252, 64, 54, 13, 15, 35, 39, 7, 191, 78, 129, 18, 94, 76, 126, 28, 2, 26, 221, 10, 208, 44, 249, 12, 197, 75, 190, 19, 190, 73, 114, 18, 55, 64, 69, 9, 206, 79, 34, 17, 89, 44, 158, 103, 73, 45, 252, 11, 50, 11, 30, 6, 244, 19, 46, 4, 142, 37, 51, 19, 75, 19, 208, 13, 117, 29, 110, 3, 237, 80, 83, 3, 26, 27, 43, 17, 159, 65, 53, 30, 153, 39, 251, 3, 117, 38, 196, 3, 134, 60, 115, 15, 99, 60, 102, 13, 175, 73, 214, 3, 152, 78, 195, 3, 236, 65, 87, 50, 254, 55, 104, 16, 199, 25, 196, 4, 6, 36, 46, 3, 46, 66, 14, 20, 29, 22, 34, 19, 112, 21, 6, 7, 34, 79, 122, 15, 109, 66, 34, 24, 9, 70, 41, 23, 149, 36, 92, 13, 50, 29, 179, 7, 81, 76, 57, 20, 59, 74, 190, 11, 70, 64, 204, 14, 198, 62, 63, 9, 216, 33, 183, 10, 229, 36, 246, 102, 104, 42, 7, 5, 227, 13, 241, 3, 230, 21, 38, 14, 253, 75, 136, 21, 165, 48, 29, 3, 154, 80, 143, 3, 67, 60, 250, 11, 141, 66, 35, 40, 195, 73, 73, 10, 73, 15, 244, 4, 63, 76, 43, 13, 132, 70, 110, 20, 91, 75, 142, 6, 52, 76, 100, 12, 152, 70, 2, 42, 241, 64, 189, 26, 62, 12, 250, 8, 117, 42, 133, 9, 220, 60, 1, 27, 53, 49, 53, 13, 108, 43, 225, 12, 122, 65, 120, 9, 165, 73, 59, 26, 19, 67, 159, 38, 199, 49, 45, 10, 233, 34, 68, 12, 89, 74, 84, 30, 171, 71, 40, 15, 251, 79, 98, 14, 146, 76, 52, 13, 244, 50, 173, 75, 30, 41, 84, 90, 1, 0, 3, 0, 0, 0, 1, 0, 2, 0, 4, 0, 82, 120, 26, 113, 81, 106, 240, 99, 241, 93, 78, 88, 2, 83, 7, 78, 89, 73, 242, 68, 51, 115, 174, 103, 80, 93, 251, 83, 149, 75, 6, 68, 56, 61, 25, 55, 150, 49, 161, 44, 205, 76, 21, 46, 166, 27, 151, 16, 244, 9, 249, 5, 149, 3, 38, 2, 74, 1, 198, 0, 249, 79, 26, 80, 59, 80, 92, 80, 125, 80, 164, 80, 197, 80, 236, 80, 13, 81, 52, 81, 85, 81, 124, 81, 157, 81, 196, 81, 236, 81, 19, 82, 58, 82, 97, 82, 137, 82, 176, 82, 215, 82, 255, 82, 38, 83, 84, 83, 123, 83, 169, 83, 208, 83, 254, 83, 38, 84, 84, 84, 129, 84, 175, 84, 221, 84, 11, 85, 57, 85, 103, 85, 149, 85, 201, 85, 247, 85, 43, 86, 89, 86, 142, 86, 194, 86, 247, 86, 43, 87, 95, 87, 148, 87, 200, 87, 3, 88, 56, 88, 115, 88, 174, 88, 233, 88, 36, 89, 95, 89, 154, 89, 219, 89, 22, 90, 88, 90, 153, 90, 212, 90, 28, 91, 94, 91, 159, 91, 231, 91, 48, 92, 113, 92, 192, 92, 8, 93, 80, 93, 159, 93, 237, 93, 60, 94, 138, 94, 224, 94, 46, 95, 131, 95, 217, 95, 52, 96, 138, 96, 229, 96, 72, 97, 163, 97, 6, 98, 104, 98, 209, 98, 51, 99, 156, 99, 11, 100, 123, 100, 234, 100, 96, 101, 214, 101, 76, 102, 201, 102, 76, 103, 207, 103, 82, 104, 220, 104, 108, 105, 252, 105, 147, 106, 48, 107, 205, 107, 113, 108, 27, 109, 204, 109, 125, 110, 59, 111, 249, 111, 197, 112, 150, 113, 111, 114, 84, 115, 64, 116, 50, 117, 50, 118, 63, 119, 88, 120, 225, 122, 255, 127, 255, 127, 255, 127, 255, 127, 255, 127, 255, 127, 255, 127, 225, 122, 88, 120, 63, 119, 50, 118, 50, 117, 64, 116, 84, 115, 111, 114, 150, 113, 197, 112, 249, 111, 59, 111, 125, 110, 204, 109, 27, 109, 113, 108, 205, 107, 48, 107, 147, 106, 252, 105, 108, 105, 220, 104, 82, 104, 207, 103, 76, 103, 201, 102, 76, 102, 214, 101, 96, 101, 234, 100, 123, 100, 11, 100, 156, 99, 51, 99, 209, 98, 104, 98, 6, 98, 163, 97, 72, 97, 229, 96, 138, 96, 52, 96, 217, 95, 131, 95, 46, 95, 224, 94, 138, 94, 60, 94, 237, 93, 159, 93, 80, 93, 8, 93, 192, 92, 113, 92, 48, 92, 231, 91, 159, 91, 94, 91, 28, 91, 212, 90, 153, 90, 88, 90, 22, 90, 219, 89, 154, 89, 95, 89, 36, 89, 233, 88, 174, 88, 115, 88, 56, 88, 3, 88, 200, 87, 148, 87, 95, 87, 43, 87, 247, 86, 194, 86, 142, 86, 89, 86, 43, 86, 247, 85, 201, 85, 149, 85, 103, 85, 57, 85, 11, 85, 221, 84, 175, 84, 129, 84, 84, 84, 38, 84, 254, 83, 208, 83, 169, 83, 123, 83, 84, 83, 38, 83, 255, 82, 215, 82, 176, 82, 137, 82, 97, 82, 58, 82, 19, 82, 236, 81, 196, 81, 157, 81, 124, 81, 85, 81, 52, 81, 13, 81, 236, 80, 197, 80, 164, 80, 125, 80, 92, 80, 59, 80, 26, 80, 249, 79, 210, 79, 177, 79, 145, 79, 112, 79, 13, 0, 14, 0, 16, 0, 18, 0, 20, 0, 21, 0, 27, 0, 32, 0, 6, 0, 7, 0, 6, 0, 6, 0, 0, 0, 0, 0, 0, 0, 1, 0, 13, 0, 14, 0, 16, 0, 18, 0, 19, 0, 21, 0, 26, 0, 31, 0, 6, 0, 6, 0, 6, 0, 6, 0, 0, 0, 0, 0, 0, 0, 1, 0, 79, 115, 156, 110, 74, 97, 126, 77, 72, 54, 9, 31, 195, 10, 153, 251, 125, 242, 48, 239, 127, 240, 173, 244, 231, 249, 176, 254, 22, 2, 202, 3, 255, 3, 55, 3, 4, 2, 220, 0, 0, 0, 125, 255, 62, 255, 41, 255, 0, 0, 216, 127, 107, 127, 182, 126, 187, 125, 123, 124, 248, 122, 53, 121, 53, 119, 250, 116, 137, 114, 128, 46, 128, 67, 0, 120, 0, 101, 128, 94, 64, 113, 64, 95, 192, 28, 64, 76, 192, 57, 84, 0, 1, 0, 254, 255, 2, 0, 5, 0, 10, 0, 5, 0, 9, 0, 20, 0, 84, 0, 1, 0, 254, 255, 2, 0, 5, 0, 10, 0, 5, 0, 9, 0, 20, 0, 84, 0, 1, 0, 254, 255, 2, 0, 3, 0, 6, 0, 5, 0, 9, 0, 20, 0, 84, 0, 1, 0, 254, 255, 2, 0, 3, 0, 6, 0, 5, 0, 9, 0, 20, 0, 84, 0, 1, 0, 254, 255, 2, 0, 3, 0, 6, 0, 5, 0, 9, 0, 20, 0, 84, 0, 1, 0, 254, 255, 2, 0, 3, 0, 6, 0, 10, 0, 19, 0, 20, 0, 84, 0, 1, 0, 254, 255, 2, 0, 3, 0, 6, 0, 5, 0, 9, 0, 20, 0, 94, 0, 0, 0, 253, 255, 3, 0, 3, 0, 6, 0, 5, 0, 9, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 19, 0, 19, 0, 19, 0, 19, 0, 23, 0, 39, 0, 57, 0, 5, 0, 8, 0, 8, 0, 7, 0, 8, 0, 7, 0, 2, 0, 8, 0, 4, 0, 7, 0, 2, 0, 4, 0, 7, 0, 2, 0, 8, 0, 4, 0, 7, 0, 2, 0, 8, 0, 8, 0, 7, 0, 8, 0, 7, 0, 2, 0, 6, 0, 4, 0, 7, 0, 2, 0, 6, 0, 4, 0, 7, 0, 2, 0, 6, 0, 4, 0, 7, 0, 2, 0, 6, 0, 8, 0, 9, 0, 9, 0, 8, 0, 9, 0, 2, 0, 6, 0, 4, 0, 9, 0, 2, 0, 6, 0, 8, 0, 9, 0, 2, 0, 6, 0, 4, 0, 9, 0, 2, 0, 6, 0, 8, 0, 9, 0, 9, 0, 8, 0, 11, 0, 3, 0, 7, 0, 4, 0, 11, 0, 3, 0, 7, 0, 8, 0, 11, 0, 3, 0, 7, 0, 4, 0, 11, 0, 3, 0, 7, 0, 8, 0, 9, 0, 9, 0, 8, 0, 13, 0, 4, 0, 7, 0, 5, 0, 13, 0, 4, 0, 7, 0, 8, 0, 13, 0, 4, 0, 7, 0, 5, 0, 13, 0, 4, 0, 7, 0, 9, 0, 9, 0, 9, 0, 8, 0, 13, 0, 4, 0, 4, 0, 5, 0, 6, 0, 13, 0, 4, 0, 4, 0, 5, 0, 8, 0, 13, 0, 4, 0, 4, 0, 5, 0, 6, 0, 13, 0, 4, 0, 4, 0, 5, 0, 8, 0, 9, 0, 9, 0, 8, 0, 1, 0, 1, 0, 1, 0, 1, 0, 10, 0, 10, 0, 7, 0, 7, 0, 5, 0, 1, 0, 1, 0, 1, 0, 1, 0, 10, 0, 10, 0, 7, 0, 7, 0, 8, 0, 1, 0, 1, 0, 1, 0, 1, 0, 10, 0, 10, 0, 7, 0, 7, 0, 5, 0, 1, 0, 1, 0, 1, 0, 1, 0, 10, 0, 10, 0, 7, 0, 7, 0, 7, 0, 8, 0, 9, 0, 8, 0, 6, 0, 9, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 5, 0, 6, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 5, 0, 9, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 5, 0, 6, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 5, 0, 3, 0, 8, 0, 9, 0, 9, 0, 6, 0, 95, 0, 103, 0, 118, 0, 134, 0, 148, 0, 159, 0, 204, 0, 244, 0, 39, 0, 43, 0, 38, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 9, 0, 10, 0, 11, 0, 12, 0, 13, 0, 14, 0, 15, 0, 23, 0, 24, 0, 25, 0, 26, 0, 27, 0, 28, 0, 48, 0, 49, 0, 61, 0, 62, 0, 82, 0, 83, 0, 47, 0, 46, 0, 45, 0, 44, 0, 81, 0, 80, 0, 79, 0, 78, 0, 17, 0, 18, 0, 20, 0, 22, 0, 77, 0, 76, 0, 75, 0, 74, 0, 29, 0, 30, 0, 43, 0, 42, 0, 41, 0, 40, 0, 38, 0, 39, 0, 16, 0, 19, 0, 21, 0, 50, 0, 51, 0, 59, 0, 60, 0, 63, 0, 64, 0, 72, 0, 73, 0, 84, 0, 85, 0, 93, 0, 94, 0, 32, 0, 33, 0, 35, 0, 36, 0, 53, 0, 54, 0, 56, 0, 57, 0, 66, 0, 67, 0, 69, 0, 70, 0, 87, 0, 88, 0, 90, 0, 91, 0, 34, 0, 55, 0, 68, 0, 89, 0, 37, 0, 58, 0, 71, 0, 92, 0, 31, 0, 52, 0, 65, 0, 86, 0, 7, 0, 6, 0, 5, 0, 4, 0, 3, 0, 2, 0, 1, 0, 0, 0, 15, 0, 14, 0, 13, 0, 12, 0, 11, 0, 10, 0, 9, 0, 8, 0, 23, 0, 24, 0, 25, 0, 26, 0, 27, 0, 46, 0, 65, 0, 84, 0, 45, 0, 44, 0, 43, 0, 64, 0, 63, 0, 62, 0, 83, 0, 82, 0, 81, 0, 102, 0, 101, 0, 100, 0, 42, 0, 61, 0, 80, 0, 99, 0, 28, 0, 47, 0, 66, 0, 85, 0, 18, 0, 41, 0, 60, 0, 79, 0, 98, 0, 29, 0, 48, 0, 67, 0, 17, 0, 20, 0, 22, 0, 40, 0, 59, 0, 78, 0, 97, 0, 21, 0, 30, 0, 49, 0, 68, 0, 86, 0, 19, 0, 16, 0, 87, 0, 39, 0, 38, 0, 58, 0, 57, 0, 77, 0, 35, 0, 54, 0, 73, 0, 92, 0, 76, 0, 96, 0, 95, 0, 36, 0, 55, 0, 74, 0, 93, 0, 32, 0, 51, 0, 33, 0, 52, 0, 70, 0, 71, 0, 89, 0, 90, 0, 31, 0, 50, 0, 69, 0, 88, 0, 37, 0, 56, 0, 75, 0, 94, 0, 34, 0, 53, 0, 72, 0, 91, 0, 0, 0, 1, 0, 4, 0, 5, 0, 3, 0, 6, 0, 7, 0, 2, 0, 13, 0, 15, 0, 8, 0, 9, 0, 11, 0, 12, 0, 14, 0, 10, 0, 16, 0, 28, 0, 74, 0, 29, 0, 75, 0, 27, 0, 73, 0, 26, 0, 72, 0, 30, 0, 76, 0, 51, 0, 97, 0, 50, 0, 71, 0, 96, 0, 117, 0, 31, 0, 77, 0, 52, 0, 98, 0, 49, 0, 70, 0, 95, 0, 116, 0, 53, 0, 99, 0, 32, 0, 78, 0, 33, 0, 79, 0, 48, 0, 69, 0, 94, 0, 115, 0, 47, 0, 68, 0, 93, 0, 114, 0, 46, 0, 67, 0, 92, 0, 113, 0, 19, 0, 21, 0, 23, 0, 22, 0, 18, 0, 17, 0, 20, 0, 24, 0, 111, 0, 43, 0, 89, 0, 110, 0, 64, 0, 65, 0, 44, 0, 90, 0, 25, 0, 45, 0, 66, 0, 91, 0, 112, 0, 54, 0, 100, 0, 40, 0, 61, 0, 86, 0, 107, 0, 39, 0, 60, 0, 85, 0, 106, 0, 36, 0, 57, 0, 82, 0, 103, 0, 35, 0, 56, 0, 81, 0, 102, 0, 34, 0, 55, 0, 80, 0, 101, 0, 42, 0, 63, 0, 88, 0, 109, 0, 41, 0, 62, 0, 87, 0, 108, 0, 38, 0, 59, 0, 84, 0, 105, 0, 37, 0, 58, 0, 83, 0, 104, 0, 0, 0, 1, 0, 4, 0, 3, 0, 5, 0, 6, 0, 13, 0, 7, 0, 2, 0, 8, 0, 9, 0, 11, 0, 15, 0, 12, 0, 14, 0, 10, 0, 28, 0, 82, 0, 29, 0, 83, 0, 27, 0, 81, 0, 26, 0, 80, 0, 30, 0, 84, 0, 16, 0, 55, 0, 109, 0, 56, 0, 110, 0, 31, 0, 85, 0, 57, 0, 111, 0, 48, 0, 73, 0, 102, 0, 127, 0, 32, 0, 86, 0, 51, 0, 76, 0, 105, 0, 130, 0, 52, 0, 77, 0, 106, 0, 131, 0, 58, 0, 112, 0, 33, 0, 87, 0, 19, 0, 23, 0, 53, 0, 78, 0, 107, 0, 132, 0, 21, 0, 22, 0, 18, 0, 17, 0, 20, 0, 24, 0, 25, 0, 50, 0, 75, 0, 104, 0, 129, 0, 47, 0, 72, 0, 101, 0, 126, 0, 54, 0, 79, 0, 108, 0, 133, 0, 46, 0, 71, 0, 100, 0, 125, 0, 128, 0, 103, 0, 74, 0, 49, 0, 45, 0, 70, 0, 99, 0, 124, 0, 42, 0, 67, 0, 96, 0, 121, 0, 39, 0, 64, 0, 93, 0, 118, 0, 38, 0, 63, 0, 92, 0, 117, 0, 35, 0, 60, 0, 89, 0, 114, 0, 34, 0, 59, 0, 88, 0, 113, 0, 44, 0, 69, 0, 98, 0, 123, 0, 43, 0, 68, 0, 97, 0, 122, 0, 41, 0, 66, 0, 95, 0, 120, 0, 40, 0, 65, 0, 94, 0, 119, 0, 37, 0, 62, 0, 91, 0, 116, 0, 36, 0, 61, 0, 90, 0, 115, 0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 9, 0, 10, 0, 11, 0, 12, 0, 13, 0, 14, 0, 15, 0, 16, 0, 26, 0, 87, 0, 27, 0, 88, 0, 28, 0, 89, 0, 29, 0, 90, 0, 30, 0, 91, 0, 51, 0, 80, 0, 112, 0, 141, 0, 52, 0, 81, 0, 113, 0, 142, 0, 54, 0, 83, 0, 115, 0, 144, 0, 55, 0, 84, 0, 116, 0, 145, 0, 58, 0, 119, 0, 59, 0, 120, 0, 21, 0, 22, 0, 23, 0, 17, 0, 18, 0, 19, 0, 31, 0, 60, 0, 92, 0, 121, 0, 56, 0, 85, 0, 117, 0, 146, 0, 20, 0, 24, 0, 25, 0, 50, 0, 79, 0, 111, 0, 140, 0, 57, 0, 86, 0, 118, 0, 147, 0, 49, 0, 78, 0, 110, 0, 139, 0, 48, 0, 77, 0, 53, 0, 82, 0, 114, 0, 143, 0, 109, 0, 138, 0, 47, 0, 76, 0, 108, 0, 137, 0, 32, 0, 33, 0, 61, 0, 62, 0, 93, 0, 94, 0, 122, 0, 123, 0, 41, 0, 42, 0, 43, 0, 44, 0, 45, 0, 46, 0, 70, 0, 71, 0, 72, 0, 73, 0, 74, 0, 75, 0, 102, 0, 103, 0, 104, 0, 105, 0, 106, 0, 107, 0, 131, 0, 132, 0, 133, 0, 134, 0, 135, 0, 136, 0, 34, 0, 63, 0, 95, 0, 124, 0, 35, 0, 64, 0, 96, 0, 125, 0, 36, 0, 65, 0, 97, 0, 126, 0, 37, 0, 66, 0, 98, 0, 127, 0, 38, 0, 67, 0, 99, 0, 128, 0, 39, 0, 68, 0, 100, 0, 129, 0, 40, 0, 69, 0, 101, 0, 130, 0, 8, 0, 7, 0, 6, 0, 5, 0, 4, 0, 3, 0, 2, 0, 14, 0, 16, 0, 9, 0, 10, 0, 12, 0, 13, 0, 15, 0, 11, 0, 17, 0, 20, 0, 22, 0, 24, 0, 23, 0, 19, 0, 18, 0, 21, 0, 56, 0, 88, 0, 122, 0, 154, 0, 57, 0, 89, 0, 123, 0, 155, 0, 58, 0, 90, 0, 124, 0, 156, 0, 52, 0, 84, 0, 118, 0, 150, 0, 53, 0, 85, 0, 119, 0, 151, 0, 27, 0, 93, 0, 28, 0, 94, 0, 29, 0, 95, 0, 30, 0, 96, 0, 31, 0, 97, 0, 61, 0, 127, 0, 62, 0, 128, 0, 63, 0, 129, 0, 59, 0, 91, 0, 125, 0, 157, 0, 32, 0, 98, 0, 64, 0, 130, 0, 1, 0, 0, 0, 25, 0, 26, 0, 33, 0, 99, 0, 34, 0, 100, 0, 65, 0, 131, 0, 66, 0, 132, 0, 54, 0, 86, 0, 120, 0, 152, 0, 60, 0, 92, 0, 126, 0, 158, 0, 55, 0, 87, 0, 121, 0, 153, 0, 117, 0, 116, 0, 115, 0, 46, 0, 78, 0, 112, 0, 144, 0, 43, 0, 75, 0, 109, 0, 141, 0, 40, 0, 72, 0, 106, 0, 138, 0, 36, 0, 68, 0, 102, 0, 134, 0, 114, 0, 149, 0, 148, 0, 147, 0, 146, 0, 83, 0, 82, 0, 81, 0, 80, 0, 51, 0, 50, 0, 49, 0, 48, 0, 47, 0, 45, 0, 44, 0, 42, 0, 39, 0, 35, 0, 79, 0, 77, 0, 76, 0, 74, 0, 71, 0, 67, 0, 113, 0, 111, 0, 110, 0, 108, 0, 105, 0, 101, 0, 145, 0, 143, 0, 142, 0, 140, 0, 137, 0, 133, 0, 41, 0, 73, 0, 107, 0, 139, 0, 37, 0, 69, 0, 103, 0, 135, 0, 38, 0, 70, 0, 104, 0, 136, 0, 7, 0, 6, 0, 5, 0, 4, 0, 3, 0, 2, 0, 1, 0, 0, 0, 16, 0, 15, 0, 14, 0, 13, 0, 12, 0, 11, 0, 10, 0, 9, 0, 8, 0, 26, 0, 27, 0, 28, 0, 29, 0, 30, 0, 31, 0, 115, 0, 116, 0, 117, 0, 118, 0, 119, 0, 120, 0, 72, 0, 73, 0, 161, 0, 162, 0, 65, 0, 68, 0, 69, 0, 108, 0, 111, 0, 112, 0, 154, 0, 157, 0, 158, 0, 197, 0, 200, 0, 201, 0, 32, 0, 33, 0, 121, 0, 122, 0, 74, 0, 75, 0, 163, 0, 164, 0, 66, 0, 109, 0, 155, 0, 198, 0, 19, 0, 23, 0, 21, 0, 22, 0, 18, 0, 17, 0, 20, 0, 24, 0, 25, 0, 37, 0, 36, 0, 35, 0, 34, 0, 80, 0, 79, 0, 78, 0, 77, 0, 126, 0, 125, 0, 124, 0, 123, 0, 169, 0, 168, 0, 167, 0, 166, 0, 70, 0, 67, 0, 71, 0, 113, 0, 110, 0, 114, 0, 159, 0, 156, 0, 160, 0, 202, 0, 199, 0, 203, 0, 76, 0, 165, 0, 81, 0, 82, 0, 92, 0, 91, 0, 93, 0, 83, 0, 95, 0, 85, 0, 84, 0, 94, 0, 101, 0, 102, 0, 96, 0, 104, 0, 86, 0, 103, 0, 87, 0, 97, 0, 127, 0, 128, 0, 138, 0, 137, 0, 139, 0, 129, 0, 141, 0, 131, 0, 130, 0, 140, 0, 147, 0, 148, 0, 142, 0, 150, 0, 132, 0, 149, 0, 133, 0, 143, 0, 170, 0, 171, 0, 181, 0, 180, 0, 182, 0, 172, 0, 184, 0, 174, 0, 173, 0, 183, 0, 190, 0, 191, 0, 185, 0, 193, 0, 175, 0, 192, 0, 176, 0, 186, 0, 38, 0, 39, 0, 49, 0, 48, 0, 50, 0, 40, 0, 52, 0, 42, 0, 41, 0, 51, 0, 58, 0, 59, 0, 53, 0, 61, 0, 43, 0, 60, 0, 44, 0, 54, 0, 194, 0, 179, 0, 189, 0, 196, 0, 177, 0, 195, 0, 178, 0, 187, 0, 188, 0, 151, 0, 136, 0, 146, 0, 153, 0, 134, 0, 152, 0, 135, 0, 144, 0, 145, 0, 105, 0, 90, 0, 100, 0, 107, 0, 88, 0, 106, 0, 89, 0, 98, 0, 99, 0, 62, 0, 47, 0, 57, 0, 64, 0, 45, 0, 63, 0, 46, 0, 55, 0, 56, 0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 9, 0, 10, 0, 11, 0, 12, 0, 13, 0, 14, 0, 23, 0, 15, 0, 16, 0, 17, 0, 18, 0, 19, 0, 20, 0, 21, 0, 22, 0, 24, 0, 25, 0, 26, 0, 27, 0, 28, 0, 38, 0, 141, 0, 39, 0, 142, 0, 40, 0, 143, 0, 41, 0, 144, 0, 42, 0, 145, 0, 43, 0, 146, 0, 44, 0, 147, 0, 45, 0, 148, 0, 46, 0, 149, 0, 47, 0, 97, 0, 150, 0, 200, 0, 48, 0, 98, 0, 151, 0, 201, 0, 49, 0, 99, 0, 152, 0, 202, 0, 86, 0, 136, 0, 189, 0, 239, 0, 87, 0, 137, 0, 190, 0, 240, 0, 88, 0, 138, 0, 191, 0, 241, 0, 91, 0, 194, 0, 92, 0, 195, 0, 93, 0, 196, 0, 94, 0, 197, 0, 95, 0, 198, 0, 29, 0, 30, 0, 31, 0, 32, 0, 33, 0, 34, 0, 35, 0, 50, 0, 100, 0, 153, 0, 203, 0, 89, 0, 139, 0, 192, 0, 242, 0, 51, 0, 101, 0, 154, 0, 204, 0, 55, 0, 105, 0, 158, 0, 208, 0, 90, 0, 140, 0, 193, 0, 243, 0, 59, 0, 109, 0, 162, 0, 212, 0, 63, 0, 113, 0, 166, 0, 216, 0, 67, 0, 117, 0, 170, 0, 220, 0, 36, 0, 37, 0, 54, 0, 53, 0, 52, 0, 58, 0, 57, 0, 56, 0, 62, 0, 61, 0, 60, 0, 66, 0, 65, 0, 64, 0, 70, 0, 69, 0, 68, 0, 104, 0, 103, 0, 102, 0, 108, 0, 107, 0, 106, 0, 112, 0, 111, 0, 110, 0, 116, 0, 115, 0, 114, 0, 120, 0, 119, 0, 118, 0, 157, 0, 156, 0, 155, 0, 161, 0, 160, 0, 159, 0, 165, 0, 164, 0, 163, 0, 169, 0, 168, 0, 167, 0, 173, 0, 172, 0, 171, 0, 207, 0, 206, 0, 205, 0, 211, 0, 210, 0, 209, 0, 215, 0, 214, 0, 213, 0, 219, 0, 218, 0, 217, 0, 223, 0, 222, 0, 221, 0, 73, 0, 72, 0, 71, 0, 76, 0, 75, 0, 74, 0, 79, 0, 78, 0, 77, 0, 82, 0, 81, 0, 80, 0, 85, 0, 84, 0, 83, 0, 123, 0, 122, 0, 121, 0, 126, 0, 125, 0, 124, 0, 129, 0, 128, 0, 127, 0, 132, 0, 131, 0, 130, 0, 135, 0, 134, 0, 133, 0, 176, 0, 175, 0, 174, 0, 179, 0, 178, 0, 177, 0, 182, 0, 181, 0, 180, 0, 185, 0, 184, 0, 183, 0, 188, 0, 187, 0, 186, 0, 226, 0, 225, 0, 224, 0, 229, 0, 228, 0, 227, 0, 232, 0, 231, 0, 230, 0, 235, 0, 234, 0, 233, 0, 238, 0, 237, 0, 236, 0, 96, 0, 199, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 3, 0, 1, 0, 3, 0, 2, 0, 4, 0, 1, 0, 4, 0, 1, 0, 4, 0, 0, 0, 205, 12, 156, 25, 0, 32, 102, 38, 205, 44, 0, 48, 51, 51, 102, 54, 154, 57, 205, 60, 0, 64, 51, 67, 102, 70, 154, 73, 205, 76, 159, 0, 64, 241, 53, 167, 206, 0, 190, 242, 52, 176, 12, 1, 67, 244, 88, 185, 93, 1, 201, 245, 133, 194, 163, 1, 215, 246, 223, 200, 226, 1, 166, 247, 189, 205, 42, 2, 116, 248, 147, 210, 125, 2, 66, 249, 109, 215, 221, 2, 18, 250, 77, 220, 74, 3, 222, 250, 30, 225, 201, 3, 174, 251, 0, 230, 90, 4, 124, 252, 216, 234, 1, 5, 74, 253, 179, 239, 193, 5, 25, 254, 141, 244, 158, 6, 231, 254, 104, 249, 156, 7, 181, 255, 67, 254, 193, 8, 133, 0, 33, 3, 17, 10, 83, 1, 252, 7, 147, 11, 33, 2, 213, 12, 80, 13, 240, 2, 178, 17, 79, 15, 190, 3, 140, 22, 155, 17, 141, 4, 104, 27, 63, 20, 91, 5, 67, 32, 72, 23, 41, 6, 29, 37, 199, 26, 248, 6, 249, 41, 203, 30, 199, 7, 212, 46, 105, 35, 149, 8, 175, 51, 185, 40, 100, 9, 138, 56, 222, 48, 113, 10, 224, 62, 135, 63, 244, 11, 253, 71, 150, 82, 120, 13, 27, 81, 93, 107, 252, 14, 57, 90, 93, 107, 252, 14, 57, 90, 0, 0, 1, 0, 3, 0, 2, 0, 6, 0, 4, 0, 5, 0, 7, 0, 0, 0, 1, 0, 3, 0, 2, 0, 5, 0, 6, 0, 4, 0, 7, 0, 248, 127, 211, 127, 76, 127, 108, 126, 51, 125, 163, 123, 188, 121, 127, 119, 239, 116, 12, 114, 217, 110, 89, 107, 141, 103, 121, 99, 31, 95, 130, 90, 166, 85, 141, 80, 60, 75, 182, 69, 0, 64, 28, 58, 15, 52, 223, 45, 141, 39, 32, 33, 156, 26, 6, 20, 97, 13, 178, 6, 0, 0, 78, 249, 159, 242, 250, 235, 100, 229, 224, 222, 115, 216, 33, 210, 241, 203, 228, 197, 0, 192, 74, 186, 196, 180, 115, 175, 90, 170, 126, 165, 225, 160, 135, 156, 115, 152, 167, 148, 39, 145, 244, 141, 17, 139, 129, 136, 68, 134, 93, 132, 205, 130, 148, 129, 180, 128, 45, 128, 8, 128, 255, 127, 46, 124, 174, 120, 118, 117, 125, 114, 186, 111, 41, 109, 194, 106, 131, 104, 102, 102, 105, 100, 137, 98, 194, 96, 19, 95, 122, 93, 245, 91, 130, 90, 33, 89, 207, 87, 139, 86, 85, 85, 44, 84, 15, 83, 252, 81, 244, 80, 246, 79, 1, 79, 20, 78, 48, 77, 83, 76, 126, 75, 175, 74, 231, 73, 37, 73, 104, 72, 178, 71, 0, 71, 84, 70, 173, 69, 10, 69, 107, 68, 209, 67, 59, 67, 168, 66, 25, 66, 142, 65, 6, 65, 130, 64, 0, 64, 0, 0, 175, 5, 50, 11, 140, 16, 192, 21, 207, 26, 188, 31, 136, 36, 53, 41, 196, 45, 55, 50, 143, 54, 206, 58, 245, 62, 4, 67, 252, 70, 223, 74, 174, 78, 105, 82, 17, 86, 167, 89, 44, 93, 159, 96, 3, 100, 87, 103, 155, 106, 209, 109, 250, 112, 20, 116, 33, 119, 34, 122, 23, 125, 255, 127, 255, 127, 217, 127, 98, 127, 157, 126, 138, 125, 42, 124, 125, 122, 133, 120, 66, 118, 182, 115, 227, 112, 202, 109, 110, 106, 208, 102, 242, 98, 215, 94, 130, 90, 246, 85, 52, 81, 64, 76, 29, 71, 206, 65, 87, 60, 186, 54, 252, 48, 31, 43, 40, 37, 26, 31, 249, 24, 200, 18, 140, 12, 72, 6, 0, 0, 184, 249, 116, 243, 56, 237, 7, 231, 230, 224, 216, 218, 225, 212, 4, 207, 70, 201, 169, 195, 50, 190, 227, 184, 192, 179, 204, 174, 10, 170, 126, 165, 41, 161, 14, 157, 48, 153, 146, 149, 54, 146, 29, 143, 74, 140, 190, 137, 123, 135, 131, 133, 214, 131, 118, 130, 99, 129, 158, 128, 39, 128, 0, 128, 249, 150, 148, 221, 53, 235, 27, 241, 93, 244, 116, 246, 223, 247, 237, 248, 184, 249, 86, 250, 214, 250, 61, 251, 148, 251, 221, 251, 26, 252, 78, 252, 123, 252, 163, 252, 197, 252, 227, 252, 252, 252, 18, 253, 38, 253, 55, 253, 69, 253, 81, 253, 91, 253, 100, 253, 106, 253, 111, 253, 114, 253, 116, 253, 116, 253, 114, 253, 111, 253, 106, 253, 100, 253, 91, 253, 81, 253, 69, 253, 55, 253, 38, 253, 18, 253, 252, 252, 227, 252, 197, 252, 163, 252, 123, 252, 78, 252, 26, 252, 221, 251, 148, 251, 61, 251, 214, 250, 86, 250, 184, 249, 237, 248, 223, 247, 116, 246, 93, 244, 27, 241, 53, 235, 148, 221, 249, 150, 48, 117, 144, 101, 8, 82, 152, 58, 64, 31, 0, 0, 192, 224, 104, 197, 248, 173, 112, 154, 153, 104, 33, 3, 201, 9, 85, 253, 154, 250, 70, 2, 92, 2, 6, 251, 183, 13, 250, 232, 182, 17, 13, 254, 108, 248, 195, 11, 62, 236, 238, 21, 58, 248, 219, 251, 77, 250, 90, 17, 68, 253, 41, 235, 1, 18, 196, 1, 179, 253, 232, 242, 137, 11, 243, 4, 68, 251, 226, 245, 195, 6, 86, 14, 133, 238, 49, 252, 39, 17, 23, 246, 181, 3, 173, 250, 45, 252, 102, 22, 66, 118, 247, 14, 60, 240, 156, 11, 232, 251, 22, 252, 173, 9, 29, 244, 255, 10, 73, 247, 217, 6, 181, 249, 178, 6, 17, 249, 7, 6, 16, 252, 173, 1, 87, 255, 216, 1, 16, 251, 128, 8, 110, 245, 219, 9, 171, 249, 88, 1, 58, 3, 7, 250, 188, 6, 135, 249, 165, 6, 241, 247, 84, 10, 12, 244, 81, 11, 70, 248, 45, 2, 12, 3, 167, 250, 74, 3, 143, 2, 98, 57, 254, 44, 244, 4, 55, 245, 217, 233, 90, 29, 221, 255, 9, 245, 32, 244, 215, 18, 136, 11, 24, 223, 201, 14, 175, 5, 131, 8, 67, 222, 115, 31, 201, 247, 82, 250, 9, 3, 84, 4, 175, 246, 206, 8, 149, 254, 94, 253, 201, 247, 158, 23, 207, 233, 48, 4, 51, 12, 62, 236, 192, 20, 231, 246, 112, 241, 12, 27, 207, 240, 163, 2, 17, 249, 29, 0, 161, 39, 66, 118, 247, 14, 60, 240, 156, 11, 232, 251, 22, 252, 173, 9, 29, 244, 255, 10, 73, 247, 217, 6, 181, 249, 178, 6, 17, 249, 7, 6, 16, 252, 173, 1, 87, 255, 216, 1, 16, 251, 128, 8, 110, 245, 219, 9, 171, 249, 88, 1, 58, 3, 7, 250, 188, 6, 135, 249, 165, 6, 241, 247, 84, 10, 12, 244, 81, 11, 70, 248, 45, 2, 12, 3, 167, 250, 74, 3, 143, 2, 0, 64, 103, 65, 213, 66, 76, 68, 203, 69, 82, 71, 226, 72, 122, 74, 28, 76, 199, 77, 123, 79, 56, 81, 255, 82, 209, 84, 172, 86, 146, 88, 130, 90, 126, 92, 132, 94, 150, 96, 180, 98, 221, 100, 18, 103, 84, 105, 162, 107, 254, 109, 102, 112, 221, 114, 96, 117, 242, 119, 147, 122, 66, 125, 255, 127, 3, 115, 186, 110, 119, 98, 225, 79, 109, 57, 245, 33, 71, 12, 184, 250, 206, 238, 23, 233, 38, 233, 191, 237, 33, 245, 96, 253, 187, 4, 232, 9, 58, 12, 175, 11, 211, 8, 146, 4, 0, 0, 23, 252, 140, 249, 180, 248, 126, 249, 133, 251, 48, 254, 218, 0, 244, 2, 36, 4, 75, 4, 136, 3, 38, 2, 135, 0, 11, 255, 254, 253, 134, 253, 166, 253, 61, 254, 25, 255, 0, 0, 191, 0, 52, 1, 84, 1, 40, 1, 198, 0, 78, 0, 220, 255, 136, 255, 93, 255, 91, 255, 124, 255, 177, 255, 237, 255, 34, 0, 73, 0, 91, 0, 89, 0, 70, 0, 38, 0, 0, 0, 254, 254, 194, 254, 73, 254, 134, 253, 112, 253, 251, 252, 57, 253, 10, 254, 244, 254, 63, 255, 254, 255, 125, 0, 122, 0, 217, 255, 247, 255, 105, 0, 129, 0, 27, 1, 116, 1, 63, 2, 235, 254, 188, 254, 59, 255, 25, 254, 67, 254, 150, 254, 220, 254, 229, 255, 177, 0, 31, 2, 86, 1, 5, 2, 4, 2, 130, 0, 27, 0, 152, 255, 136, 255, 116, 255, 182, 255, 200, 255, 204, 253, 81, 252, 16, 250, 59, 252, 210, 252, 242, 253, 190, 254, 254, 255, 159, 0, 145, 2, 200, 254, 228, 254, 126, 254, 171, 253, 19, 254, 242, 253, 94, 254, 27, 255, 105, 0, 193, 1, 211, 253, 154, 252, 205, 251, 105, 252, 74, 252, 16, 253, 59, 253, 196, 254, 62, 0, 230, 1, 198, 254, 65, 255, 53, 255, 182, 254, 96, 255, 153, 255, 205, 255, 131, 0, 82, 1, 3, 2, 10, 6, 224, 8, 194, 14, 112, 21, 60, 27, 190, 32, 63, 39, 221, 43, 222, 49, 146, 53, 84, 37, 17, 42, 27, 49, 236, 51, 45, 56, 131, 45, 92, 41, 39, 38, 145, 33, 84, 25, 6, 0, 82, 0, 125, 255, 154, 0, 200, 255, 33, 253, 183, 0, 191, 255, 247, 254, 9, 0, 46, 255, 151, 254, 113, 0, 206, 2, 25, 7, 242, 3, 190, 4, 37, 6, 89, 3, 53, 5, 228, 8, 59, 3, 32, 6, 141, 7, 205, 2, 197, 7, 158, 8, 70, 3, 148, 4, 31, 7, 209, 2, 232, 3, 106, 8, 30, 1, 220, 1, 229, 5, 9, 255, 237, 253, 230, 0, 147, 0, 174, 255, 57, 2, 26, 0, 79, 255, 80, 252, 229, 255, 239, 254, 180, 2, 92, 255, 248, 254, 73, 255, 224, 0, 22, 3, 15, 4, 131, 3, 178, 3, 89, 2, 229, 1, 3, 3, 126, 4, 12, 2, 165, 2, 135, 3, 116, 255, 119, 1, 10, 3, 154, 1, 164, 2, 173, 1, 45, 1, 18, 2, 241, 3, 207, 2, 134, 2, 38, 0, 226, 0, 111, 1, 40, 0, 145, 0, 211, 255, 7, 254, 34, 1, 121, 0, 135, 255, 46, 1, 127, 0, 166, 0, 132, 255, 129, 254, 68, 252, 154, 254, 57, 254, 47, 252, 203, 2, 110, 3, 126, 3, 210, 3, 155, 3, 211, 0, 221, 1, 16, 1, 64, 0, 188, 0, 178, 255, 17, 0, 113, 255, 191, 255, 38, 0, 131, 2, 74, 2, 109, 2, 122, 255, 86, 254, 117, 253, 91, 1, 33, 2, 4, 11, 164, 4, 166, 10, 138, 9, 142, 0, 176, 255, 199, 6, 27, 1, 130, 0, 205, 1, 250, 254, 113, 254, 135, 251, 101, 254, 155, 0, 174, 1, 73, 1, 119, 1, 11, 3, 53, 0, 30, 255, 117, 255, 127, 255, 20, 255, 146, 6, 29, 1, 232, 2, 47, 5, 226, 2, 185, 2, 128, 6, 56, 1, 153, 1, 10, 1, 69, 1, 208, 2, 135, 0, 1, 0, 221, 0, 197, 1, 8, 0, 203, 0, 145, 0, 43, 1, 128, 2, 248, 2, 29, 0, 212, 1, 126, 2, 103, 0, 173, 1, 123, 1, 164, 1, 186, 3, 164, 3, 46, 5, 186, 4, 234, 4, 192, 2, 244, 3, 128, 4, 90, 255, 68, 254, 246, 254, 196, 254, 126, 255, 136, 254, 191, 0, 127, 4, 112, 7, 16, 255, 225, 253, 20, 251, 144, 255, 12, 1, 183, 4, 70, 0, 38, 4, 47, 6, 22, 1, 80, 5, 38, 6, 254, 254, 240, 254, 0, 253, 19, 0, 51, 2, 192, 8, 253, 255, 247, 254, 135, 0, 217, 254, 177, 253, 124, 254, 140, 0, 98, 1, 50, 255, 252, 254, 8, 254, 229, 252, 79, 254, 50, 253, 217, 250, 109, 0, 75, 1, 194, 3, 83, 254, 169, 255, 140, 2, 216, 254, 170, 1, 251, 3, 17, 255, 7, 3, 83, 3, 233, 1, 54, 5, 49, 4, 178, 254, 180, 254, 25, 0, 31, 2, 182, 4, 15, 7, 70, 1, 61, 0, 215, 2, 66, 2, 81, 3, 125, 5, 48, 255, 235, 254, 73, 1, 104, 255, 64, 0, 157, 2, 78, 254, 90, 253, 41, 253, 58, 254, 185, 255, 251, 0, 93, 2, 224, 1, 254, 0, 30, 254, 11, 0, 228, 3, 223, 254, 139, 1, 230, 1, 210, 2, 25, 4, 160, 5, 226, 255, 196, 254, 238, 252, 150, 255, 141, 255, 149, 253, 93, 3, 194, 5, 132, 5, 31, 4, 86, 5, 160, 4, 44, 3, 213, 4, 157, 3, 42, 0, 5, 255, 192, 253, 86, 1, 141, 0, 58, 254, 88, 255, 176, 255, 79, 5, 170, 254, 112, 253, 29, 249, 100, 0, 53, 3, 213, 2, 222, 3, 235, 2, 32, 3, 76, 1, 184, 1, 56, 2, 151, 2, 123, 1, 84, 3, 112, 0, 165, 0, 143, 254, 85, 2, 142, 3, 26, 1, 248, 255, 66, 3, 1, 5, 160, 254, 60, 2, 183, 2, 206, 1, 198, 8, 14, 7, 89, 1, 190, 0, 94, 5, 160, 1, 147, 3, 118, 8, 168, 0, 174, 255, 24, 1, 252, 253, 66, 254, 72, 3, 47, 0, 21, 2, 44, 0, 150, 254, 57, 253, 137, 251, 22, 0, 193, 0, 192, 5, 171, 255, 233, 0, 21, 7, 194, 255, 67, 2, 224, 5, 38, 2, 176, 3, 213, 6, 211, 2, 138, 2, 124, 4, 204, 3, 116, 3, 115, 5, 87, 254, 131, 2, 0, 0, 232, 3, 184, 3, 74, 4, 249, 0, 166, 5, 160, 2, 178, 254, 169, 255, 124, 8, 214, 253, 90, 7, 112, 10, 140, 0, 34, 7, 61, 7, 152, 3, 213, 6, 30, 10, 52, 4, 141, 7, 246, 7, 119, 255, 69, 254, 237, 249, 245, 4, 150, 4, 212, 1, 19, 254, 134, 255, 241, 5, 61, 254, 9, 4, 190, 4, 226, 1, 159, 6, 94, 4, 47, 3, 137, 2, 128, 1, 66, 254, 76, 253, 107, 0, 193, 254, 163, 253, 138, 255, 49, 255, 7, 254, 13, 2, 44, 254, 244, 255, 176, 10, 75, 0, 142, 7, 25, 5, 112, 3, 54, 9, 219, 8, 5, 5, 39, 6, 212, 7, 208, 255, 208, 254, 94, 251, 77, 254, 51, 254, 5, 255, 146, 254, 108, 254, 221, 253, 223, 254, 163, 253, 171, 253, 230, 253, 214, 252, 91, 255, 136, 255, 3, 0, 100, 1, 127, 2, 217, 4, 222, 5, 96, 0, 177, 0, 238, 2, 77, 254, 183, 253, 106, 251, 156, 254, 109, 0, 177, 255, 27, 254, 32, 1, 213, 7, 9, 0, 92, 4, 219, 2, 112, 3, 86, 8, 178, 3, 247, 254, 49, 6, 41, 4, 133, 4, 186, 4, 75, 3, 14, 254, 100, 253, 175, 1, 118, 1, 65, 1, 27, 255, 160, 5, 53, 8, 101, 5, 193, 1, 205, 1, 131, 4, 151, 255, 39, 0, 128, 254, 249, 254, 111, 1, 182, 0, 141, 254, 108, 253, 5, 3, 68, 255, 127, 4, 203, 3, 53, 5, 96, 6, 155, 5, 6, 3, 243, 4, 197, 4, 30, 254, 192, 252, 47, 250, 19, 255, 46, 255, 92, 3, 122, 3, 79, 6, 40, 4, 216, 1, 38, 4, 168, 4, 185, 0, 53, 4, 221, 3, 200, 253, 32, 252, 88, 249, 63, 254, 122, 252, 5, 248, 114, 255, 135, 254, 54, 254, 46, 255, 214, 253, 251, 251, 245, 255, 109, 4, 217, 8, 183, 254, 93, 253, 131, 252, 6, 255, 145, 2, 163, 4, 7, 2, 230, 5, 243, 6, 8, 2, 27, 2, 123, 5, 15, 2, 141, 5, 22, 5, 205, 253, 153, 252, 32, 251, 109, 255, 49, 254, 111, 3, 180, 255, 30, 9, 24, 11, 51, 2, 13, 10, 81, 9, 120, 2, 134, 7, 104, 11, 207, 2, 231, 7, 48, 7, 223, 253, 45, 253, 84, 4, 129, 0, 131, 255, 116, 3, 137, 5, 96, 6, 157, 3, 162, 255, 30, 6, 215, 6, 171, 254, 253, 5, 15, 6, 79, 2, 139, 1, 238, 254, 180, 255, 213, 3, 15, 11, 153, 0, 169, 11, 52, 7, 8, 4, 5, 10, 189, 10, 228, 5, 16, 11, 87, 7, 23, 3, 175, 4, 26, 2, 66, 255, 59, 254, 209, 5, 234, 254, 220, 253, 134, 4, 11, 255, 149, 7, 252, 7, 0, 4, 24, 6, 114, 6, 0, 2, 253, 0, 210, 1, 194, 255, 189, 254, 127, 4, 39, 254, 136, 254, 251, 1, 79, 254, 100, 5, 114, 8, 131, 3, 151, 7, 165, 5, 134, 0, 192, 2, 184, 1, 204, 1, 13, 2, 228, 255, 62, 254, 23, 1, 58, 5, 0, 0, 203, 3, 252, 0, 67, 254, 141, 253, 33, 252, 164, 254, 166, 253, 112, 250, 142, 1, 200, 2, 120, 6, 149, 255, 58, 1, 78, 255, 93, 0, 178, 8, 190, 8, 6, 2, 81, 3, 144, 2, 50, 254, 57, 253, 65, 254, 174, 0, 222, 255, 167, 4, 137, 255, 42, 0, 237, 3, 140, 254, 18, 1, 246, 2, 12, 4, 48, 9, 46, 7, 163, 2, 188, 6, 218, 5, 174, 1, 6, 5, 85, 8, 127, 255, 73, 254, 0, 0, 139, 254, 32, 3, 96, 8, 6, 0, 51, 6, 174, 9, 222, 1, 84, 2, 80, 8, 84, 254, 32, 253, 225, 5, 129, 1, 178, 0, 212, 3, 139, 0, 193, 1, 201, 4, 242, 253, 182, 252, 42, 252, 145, 0, 18, 6, 218, 4, 111, 2, 168, 5, 144, 2, 93, 1, 248, 3, 202, 5, 31, 0, 232, 254, 159, 1, 196, 254, 212, 2, 105, 6, 104, 1, 34, 4, 44, 2, 76, 254, 154, 254, 177, 4, 157, 254, 99, 4, 147, 7, 145, 1, 48, 6, 200, 8, 241, 253, 12, 252, 99, 1, 233, 0, 238, 0, 185, 8, 218, 253, 127, 252, 129, 253, 147, 254, 11, 254, 165, 7, 133, 1, 68, 7, 85, 6, 162, 0, 108, 4, 240, 4, 19, 255, 150, 4, 110, 5, 128, 253, 101, 254, 116, 0, 28, 255, 158, 6, 250, 8, 103, 6, 138, 8, 219, 8, 50, 2, 249, 4, 98, 10, 67, 1, 82, 1, 238, 6, 66, 2, 83, 4, 84, 3, 22, 0, 82, 2, 166, 3, 113, 255, 206, 2, 190, 1, 50, 0, 71, 0, 247, 255, 174, 254, 70, 253, 129, 250, 102, 0, 118, 255, 204, 252, 202, 254, 43, 254, 133, 251, 158, 1, 67, 0, 245, 254, 36, 4, 46, 3, 161, 5, 12, 6, 80, 5, 248, 4, 218, 6, 103, 7, 125, 6, 227, 7, 85, 8, 28, 7, 16, 7, 14, 9, 53, 7, 132, 2, 163, 255, 198, 1, 90, 3, 73, 1, 120, 255, 233, 1, 254, 254, 128, 255, 58, 255, 23, 253, 215, 255, 204, 255, 247, 254, 39, 252, 90, 1, 137, 0, 223, 1, 51, 249, 20, 253, 84, 253, 117, 251, 67, 249, 145, 254, 129, 252, 135, 251, 240, 252, 24, 254, 78, 252, 56, 252, 171, 255, 122, 254, 43, 253, 215, 0, 172, 254, 85, 255, 252, 3, 148, 3, 177, 7, 52, 2, 179, 0, 234, 2, 150, 2, 209, 3, 198, 6, 119, 3, 110, 2, 146, 3, 171, 3, 88, 3, 141, 4, 53, 1, 176, 2, 35, 3, 149, 3, 161, 0, 58, 2, 118, 0, 236, 255, 229, 254, 208, 252, 214, 255, 204, 0, 52, 251, 187, 254, 50, 254, 61, 252, 54, 255, 113, 255, 36, 252, 28, 254, 151, 254, 66, 253, 46, 252, 35, 254, 210, 254, 234, 252, 92, 251, 156, 255, 238, 252, 192, 251, 226, 251, 77, 252, 108, 249, 54, 255, 181, 252, 242, 252, 241, 251, 158, 250, 123, 252, 144, 253, 146, 255, 171, 255, 100, 1, 213, 0, 246, 255, 19, 254, 108, 1, 6, 3, 169, 1, 54, 3, 223, 1, 173, 255, 45, 2, 8, 2, 32, 252, 232, 249, 196, 253, 165, 253, 27, 253, 230, 255, 10, 254, 130, 253, 121, 252, 209, 0, 50, 1, 147, 0, 196, 254, 175, 253, 172, 253, 171, 255, 45, 255, 31, 255, 106, 252, 239, 253, 117, 0, 233, 0, 73, 254, 30, 253, 77, 4, 239, 2, 121, 2, 177, 5, 180, 6, 231, 5, 229, 6, 177, 5, 142, 3, 98, 4, 132, 4, 81, 3, 74, 5, 100, 3, 214, 1, 153, 252, 130, 251, 252, 248, 153, 252, 163, 252, 32, 252, 138, 255, 155, 0, 212, 0, 229, 251, 175, 252, 162, 253, 163, 251, 199, 248, 66, 245, 5, 252, 109, 250, 179, 248, 114, 1, 72, 255, 98, 254, 191, 3, 237, 1, 104, 0, 190, 3, 15, 4, 31, 2, 154, 0, 141, 2, 201, 0, 225, 4, 251, 1, 150, 0, 151, 2, 247, 1, 230, 0, 111, 2, 9, 3, 163, 2, 147, 2, 88, 0, 146, 255, 75, 3, 244, 0, 224, 0, 126, 1, 29, 2, 46, 1, 212, 2, 177, 1, 154, 2, 142, 4, 222, 2, 85, 1, 118, 255, 20, 0, 115, 254, 97, 251, 88, 254, 210, 255, 191, 254, 160, 254, 132, 255, 53, 5, 253, 3, 56, 4, 6, 1, 110, 1, 211, 2, 154, 3, 27, 1, 217, 253, 31, 0, 132, 253, 157, 253, 79, 253, 71, 253, 97, 254, 72, 252, 245, 252, 55, 255, 207, 250, 170, 253, 153, 254, 71, 252, 251, 250, 166, 0, 237, 1, 49, 1, 221, 0, 78, 3, 191, 2], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE);
- allocate([98, 2, 72, 3, 168, 3, 6, 3, 45, 253, 212, 250, 19, 251, 155, 254, 255, 251, 148, 250, 184, 251, 160, 250, 147, 254, 120, 250, 167, 248, 160, 253, 250, 248, 65, 249, 94, 253, 223, 253, 107, 251, 65, 253, 166, 2, 18, 3, 148, 0, 133, 255, 184, 2, 8, 5, 132, 2, 94, 1, 246, 255, 158, 1, 102, 2, 15, 0, 137, 0, 88, 1, 45, 255, 210, 252, 24, 250, 205, 252, 121, 254, 94, 252, 180, 253, 47, 0, 177, 253, 126, 252, 115, 252, 183, 251, 93, 255, 8, 251, 113, 251, 99, 255, 72, 250, 11, 250, 123, 254, 6, 251, 92, 251, 144, 253, 159, 2, 213, 0, 198, 1, 124, 0, 238, 254, 243, 253, 39, 253, 16, 254, 104, 255, 192, 250, 122, 0, 135, 0, 167, 244, 179, 253, 118, 254, 64, 249, 185, 1, 206, 255, 196, 5, 136, 3, 19, 3, 60, 1, 236, 0, 72, 254, 165, 254, 217, 0, 157, 1, 113, 252, 107, 252, 121, 0, 57, 254, 92, 252, 202, 0, 164, 255, 47, 254, 137, 254, 232, 1, 134, 1, 218, 1, 108, 3, 217, 2, 60, 1, 233, 248, 224, 250, 99, 253, 87, 0, 194, 3, 176, 1, 51, 2, 7, 255, 222, 251, 250, 0, 29, 1, 81, 4, 117, 4, 171, 1, 184, 2, 242, 251, 128, 249, 210, 249, 76, 252, 90, 1, 160, 0, 203, 254, 240, 254, 166, 252, 158, 2, 112, 2, 226, 4, 80, 252, 104, 254, 102, 253, 162, 253, 192, 254, 128, 254, 20, 254, 230, 0, 65, 0, 78, 1, 206, 255, 240, 255, 240, 255, 78, 253, 139, 250, 255, 6, 180, 6, 119, 5, 174, 9, 15, 8, 124, 5, 221, 4, 191, 5, 146, 5, 130, 254, 243, 251, 254, 255, 173, 0, 114, 254, 121, 4, 211, 5, 232, 7, 9, 7, 4, 3, 250, 4, 226, 5, 149, 5, 199, 6, 209, 7, 55, 4, 194, 4, 249, 4, 126, 251, 197, 248, 207, 250, 216, 252, 147, 251, 184, 251, 61, 254, 247, 251, 70, 249, 65, 0, 66, 2, 172, 255, 60, 250, 126, 246, 14, 249, 3, 253, 170, 250, 18, 254, 38, 255, 174, 253, 93, 252, 81, 1, 20, 255, 50, 2, 53, 9, 102, 10, 146, 7, 209, 5, 252, 4, 106, 3, 189, 0, 102, 1, 118, 1, 17, 250, 23, 247, 214, 246, 57, 252, 9, 251, 209, 247, 140, 253, 92, 251, 250, 249, 125, 6, 19, 4, 34, 2, 53, 2, 37, 4, 220, 2, 192, 255, 188, 252, 78, 254, 76, 254, 160, 255, 203, 0, 54, 4, 192, 4, 100, 6, 139, 3, 254, 5, 218, 3, 70, 1, 197, 3, 77, 3, 142, 0, 172, 255, 197, 0, 214, 1, 75, 9, 34, 6, 109, 4, 214, 1, 190, 4, 139, 1, 96, 5, 176, 4, 101, 4, 18, 4, 92, 1, 225, 253, 46, 251, 136, 254, 41, 255, 75, 255, 225, 1, 101, 248, 171, 249, 46, 255, 18, 253, 95, 251, 134, 1, 29, 0, 113, 254, 27, 0, 52, 3, 212, 4, 243, 2, 183, 2, 211, 3, 153, 1, 82, 255, 173, 4, 11, 4, 144, 3, 76, 5, 54, 7, 32, 252, 99, 250, 228, 1, 51, 250, 92, 249, 208, 0, 100, 254, 180, 4, 152, 5, 241, 254, 128, 3, 120, 4, 96, 254, 241, 6, 154, 5, 96, 249, 172, 245, 52, 255, 3, 249, 241, 249, 9, 4, 136, 249, 233, 249, 23, 5, 27, 251, 203, 249, 57, 4, 99, 253, 185, 251, 190, 255, 86, 253, 64, 1, 167, 254, 147, 2, 49, 1, 45, 4, 244, 250, 220, 252, 237, 255, 157, 249, 245, 250, 29, 0, 109, 249, 15, 254, 71, 0, 225, 254, 249, 255, 156, 255, 18, 254, 62, 252, 19, 255, 84, 3, 89, 7, 204, 6, 63, 251, 149, 250, 227, 0, 108, 253, 46, 1, 117, 1, 96, 0, 63, 4, 233, 4, 206, 251, 123, 249, 160, 0, 229, 1, 28, 8, 6, 7, 90, 252, 36, 255, 40, 2, 172, 253, 156, 253, 237, 0, 80, 1, 184, 6, 111, 3, 131, 2, 117, 2, 178, 1, 243, 4, 10, 2, 97, 6, 15, 0, 244, 0, 71, 254, 195, 5, 205, 2, 184, 0, 27, 7, 54, 6, 173, 6, 220, 3, 5, 1, 169, 3, 45, 8, 41, 9, 240, 5, 91, 8, 66, 7, 70, 6, 191, 253, 189, 253, 77, 251, 68, 252, 135, 0, 24, 254, 48, 254, 51, 0, 174, 254, 139, 253, 164, 254, 45, 253, 122, 4, 25, 8, 162, 5, 144, 8, 186, 5, 143, 3, 92, 250, 220, 249, 26, 247, 120, 5, 198, 2, 17, 5, 55, 5, 121, 2, 160, 3, 154, 5, 146, 8, 34, 10, 118, 9, 156, 8, 89, 7, 214, 3, 194, 8, 62, 7, 124, 1, 24, 3, 121, 4, 193, 255, 229, 253, 158, 1, 4, 255, 60, 252, 198, 254, 19, 251, 85, 253, 244, 252, 193, 252, 242, 253, 19, 252, 126, 249, 145, 251, 88, 254, 181, 249, 60, 254, 213, 254, 244, 4, 24, 4, 130, 2, 123, 4, 85, 3, 88, 3, 93, 253, 176, 254, 139, 0, 220, 8, 63, 5, 138, 5, 29, 0, 0, 3, 29, 3, 56, 251, 167, 1, 52, 2, 218, 250, 198, 251, 245, 0, 234, 250, 212, 252, 61, 2, 238, 250, 175, 249, 134, 2, 56, 252, 66, 3, 211, 2, 225, 3, 116, 6, 235, 7, 65, 255, 207, 252, 176, 1, 150, 2, 60, 0, 198, 0, 114, 2, 229, 3, 50, 5, 112, 6, 171, 7, 9, 5, 195, 249, 163, 255, 211, 255, 192, 251, 37, 0, 172, 255, 117, 6, 47, 10, 33, 9, 41, 4, 248, 7, 73, 9, 115, 4, 22, 9, 70, 8, 91, 3, 101, 1, 230, 5, 152, 2, 203, 4, 75, 4, 223, 1, 80, 5, 144, 3, 105, 7, 218, 6, 227, 7, 144, 4, 117, 7, 248, 6, 143, 1, 34, 0, 0, 1, 175, 253, 208, 254, 227, 251, 35, 2, 158, 6, 127, 5, 135, 2, 157, 255, 171, 254, 212, 5, 111, 6, 166, 4, 38, 0, 124, 253, 44, 255, 139, 1, 78, 3, 222, 0, 64, 253, 3, 253, 52, 253, 44, 253, 84, 248, 12, 245, 106, 255, 35, 1, 174, 255, 209, 4, 179, 5, 239, 3, 116, 255, 101, 255, 153, 0, 183, 1, 41, 1, 32, 6, 7, 250, 102, 254, 132, 253, 0, 6, 199, 1, 19, 255, 208, 250, 117, 255, 252, 254, 19, 2, 42, 2, 100, 3, 13, 1, 240, 4, 94, 2, 23, 255, 115, 3, 207, 1, 230, 2, 88, 2, 136, 255, 183, 255, 165, 1, 212, 0, 73, 254, 198, 255, 36, 3, 250, 250, 39, 251, 216, 2, 38, 1, 22, 254, 50, 0, 177, 253, 119, 252, 26, 251, 42, 0, 81, 253, 147, 0, 231, 255, 17, 1, 84, 2, 201, 254, 189, 4, 89, 2, 14, 253, 81, 3, 72, 2, 173, 1, 95, 2, 75, 2, 166, 253, 90, 255, 205, 1, 228, 252, 201, 252, 9, 3, 100, 5, 142, 3, 219, 6, 119, 0, 137, 5, 204, 3, 37, 255, 144, 252, 196, 249, 231, 251, 14, 252, 182, 1, 55, 253, 157, 250, 78, 0, 0, 0, 65, 254, 101, 251, 144, 251, 217, 250, 219, 249, 200, 8, 231, 6, 29, 5, 178, 3, 47, 6, 152, 5, 126, 4, 226, 1, 180, 1, 43, 254, 172, 251, 106, 2, 65, 254, 58, 252, 64, 4, 28, 251, 21, 250, 142, 255, 176, 251, 40, 248, 189, 253, 210, 0, 101, 2, 241, 1, 73, 248, 99, 250, 130, 2, 11, 251, 168, 252, 243, 3, 146, 249, 95, 251, 39, 4, 237, 249, 96, 253, 180, 4, 100, 249, 166, 251, 111, 2, 45, 252, 210, 250, 3, 251, 27, 2, 109, 255, 126, 3, 182, 250, 127, 252, 78, 254, 120, 3, 219, 1, 172, 1, 153, 0, 128, 254, 82, 1, 44, 250, 1, 254, 103, 1, 50, 252, 165, 251, 42, 254, 105, 0, 218, 253, 165, 2, 87, 252, 135, 251, 109, 3, 124, 1, 252, 254, 210, 0, 149, 6, 156, 3, 232, 4, 239, 6, 166, 4, 71, 4, 139, 5, 119, 2, 21, 2, 115, 2, 43, 1, 165, 254, 101, 254, 234, 253, 135, 2, 118, 253, 29, 0, 173, 253, 134, 254, 169, 250, 27, 6, 122, 5, 97, 4, 185, 5, 65, 4, 130, 5, 136, 2, 208, 247, 190, 251, 250, 255, 55, 1, 62, 255, 155, 252, 129, 253, 193, 252, 160, 1, 118, 251, 56, 251, 69, 5, 33, 251, 83, 252, 21, 7, 111, 247, 61, 248, 197, 1, 149, 253, 169, 250, 68, 252, 186, 249, 76, 248, 29, 250, 105, 251, 223, 251, 176, 251, 135, 254, 89, 2, 201, 0, 84, 7, 57, 3, 118, 1, 82, 254, 213, 250, 29, 0, 139, 250, 31, 251, 205, 250, 17, 252, 32, 250, 192, 3, 135, 250, 39, 248, 197, 0, 157, 250, 99, 248, 20, 255, 203, 251, 123, 0, 166, 1, 103, 2, 245, 4, 34, 2, 206, 254, 246, 5, 136, 3, 170, 4, 252, 6, 153, 4, 142, 253, 140, 252, 10, 250, 199, 0, 254, 2, 224, 5, 215, 251, 94, 3, 197, 0, 246, 251, 19, 249, 137, 252, 224, 252, 145, 0, 87, 2, 146, 251, 249, 253, 114, 2, 75, 251, 122, 248, 244, 1, 114, 252, 239, 251, 141, 250, 60, 250, 225, 249, 55, 252, 245, 253, 74, 3, 34, 0, 2, 7, 134, 2, 94, 3, 73, 251, 160, 248, 22, 252, 178, 255, 247, 255, 96, 253, 20, 4, 247, 2, 80, 0, 168, 253, 115, 4, 251, 3, 57, 0, 208, 7, 142, 5, 191, 252, 134, 5, 97, 4, 78, 251, 94, 6, 236, 4, 51, 254, 140, 5, 220, 4, 1, 6, 207, 3, 253, 0, 229, 254, 68, 1, 153, 254, 87, 2, 61, 255, 106, 0, 76, 2, 62, 0, 181, 253, 11, 253, 133, 2, 205, 0, 51, 0, 177, 4, 246, 2, 71, 251, 161, 2, 122, 254, 144, 253, 45, 6, 173, 3, 105, 255, 255, 3, 223, 2, 4, 11, 21, 5, 178, 2, 210, 254, 12, 2, 157, 255, 124, 252, 204, 249, 91, 251, 60, 4, 251, 0, 238, 0, 222, 7, 0, 7, 242, 3, 221, 4, 97, 6, 205, 6, 53, 251, 252, 249, 72, 251, 147, 253, 200, 1, 147, 255, 40, 0, 191, 255, 20, 3, 219, 252, 69, 253, 186, 250, 185, 253, 136, 3, 64, 3, 223, 252, 20, 2, 82, 2, 180, 7, 128, 5, 71, 5, 103, 251, 168, 248, 190, 247, 251, 252, 56, 2, 180, 3, 9, 252, 55, 4, 236, 4, 169, 251, 226, 1, 126, 255, 242, 6, 20, 4, 12, 3, 45, 250, 245, 0, 144, 3, 196, 254, 139, 251, 107, 252, 232, 253, 94, 250, 214, 246, 239, 252, 246, 249, 60, 248, 45, 248, 1, 1, 141, 3, 199, 248, 135, 253, 71, 251, 254, 249, 130, 248, 226, 251, 70, 6, 191, 8, 40, 6, 201, 253, 36, 250, 248, 249, 1, 251, 195, 0, 89, 5, 207, 252, 37, 1, 195, 4, 243, 253, 118, 2, 173, 4, 94, 249, 135, 246, 208, 248, 209, 254, 219, 2, 235, 2, 111, 251, 5, 255, 13, 1, 74, 252, 181, 255, 148, 6, 98, 251, 59, 254, 237, 3, 193, 249, 73, 2, 122, 1, 229, 247, 197, 253, 85, 254, 239, 253, 121, 251, 109, 251, 229, 254, 51, 255, 204, 253, 228, 252, 222, 4, 205, 2, 229, 8, 159, 3, 27, 2, 58, 254, 47, 2, 184, 1, 51, 253, 180, 5, 79, 6, 250, 251, 28, 4, 74, 6, 111, 251, 118, 255, 79, 3, 226, 0, 39, 0, 156, 253, 29, 251, 150, 255, 39, 253, 117, 253, 200, 3, 22, 5, 54, 253, 132, 253, 191, 6, 97, 1, 45, 4, 154, 1, 226, 252, 100, 255, 75, 4, 194, 253, 150, 3, 190, 1, 226, 250, 244, 3, 210, 1, 128, 5, 55, 6, 253, 2, 149, 5, 100, 5, 221, 6, 157, 7, 164, 7, 74, 9, 42, 6, 255, 7, 100, 8, 148, 3, 98, 0, 249, 255, 101, 7, 138, 5, 93, 8, 92, 1, 125, 5, 43, 6, 152, 0, 110, 4, 9, 7, 245, 254, 154, 0, 115, 5, 114, 251, 213, 1, 30, 4, 138, 251, 107, 254, 207, 251, 195, 250, 40, 247, 211, 249, 148, 254, 101, 3, 170, 6, 118, 251, 37, 2, 14, 6, 55, 251, 116, 248, 126, 249, 51, 250, 71, 248, 249, 247, 65, 249, 118, 252, 158, 255, 151, 248, 233, 0, 212, 5, 124, 3, 108, 0, 181, 254, 64, 249, 110, 251, 92, 249, 220, 251, 188, 7, 254, 6, 210, 251, 51, 249, 139, 248, 245, 255, 3, 6, 37, 5, 192, 249, 94, 0, 241, 1, 165, 1, 187, 1, 59, 255, 214, 249, 163, 254, 30, 252, 169, 253, 229, 253, 116, 4, 59, 252, 117, 250, 127, 255, 195, 250, 175, 0, 65, 254, 137, 254, 31, 5, 7, 8, 141, 254, 118, 253, 205, 254, 207, 251, 93, 2, 109, 1, 247, 247, 143, 255, 174, 1, 140, 2, 146, 3, 199, 3, 12, 252, 206, 249, 237, 246, 225, 5, 224, 4, 47, 2, 6, 1, 26, 254, 111, 254, 65, 249, 62, 5, 10, 6, 50, 0, 56, 0, 176, 1, 182, 254, 119, 0, 164, 253, 19, 250, 200, 251, 214, 252, 178, 3, 103, 4, 31, 4, 136, 250, 89, 249, 80, 249, 10, 251, 64, 253, 219, 250, 39, 3, 29, 7, 119, 4, 200, 10, 70, 6, 123, 8, 96, 4, 153, 1, 106, 255, 109, 255, 148, 1, 191, 3, 135, 9, 119, 7, 141, 8, 118, 252, 115, 255, 158, 252, 120, 252, 114, 255, 54, 254, 211, 253, 60, 253, 113, 249, 194, 252, 105, 250, 209, 249, 206, 248, 190, 250, 194, 251, 188, 249, 240, 254, 147, 3, 84, 251, 4, 3, 32, 4, 130, 253, 46, 251, 151, 248, 12, 254, 175, 255, 202, 252, 247, 250, 179, 249, 33, 253, 139, 255, 17, 3, 168, 0, 190, 251, 109, 4, 154, 3, 184, 251, 22, 253, 104, 5, 31, 1, 221, 253, 217, 251, 160, 250, 103, 247, 76, 251, 128, 247, 222, 249, 35, 249, 25, 250, 63, 247, 253, 252, 55, 249, 75, 4, 62, 3, 204, 249, 212, 2, 219, 4, 250, 249, 181, 2, 37, 3, 102, 249, 16, 255, 129, 6, 92, 249, 252, 255, 100, 253, 101, 8, 48, 3, 18, 4, 206, 252, 207, 248, 22, 0, 4, 253, 5, 254, 193, 1, 129, 251, 151, 253, 33, 1, 181, 252, 196, 249, 16, 255, 242, 1, 22, 255, 111, 253, 16, 253, 224, 1, 142, 6, 193, 254, 31, 254, 193, 0, 213, 252, 171, 0, 137, 255, 176, 247, 54, 255, 176, 252, 181, 6, 116, 4, 164, 6, 67, 0, 239, 255, 66, 0, 244, 255, 102, 249, 187, 253, 152, 255, 240, 254, 204, 251, 94, 251, 203, 248, 136, 254, 140, 251, 98, 252, 92, 254, 198, 255, 253, 254, 112, 253, 146, 251, 215, 253, 252, 6, 203, 4, 199, 1, 129, 0, 206, 1, 185, 1, 16, 255, 240, 253, 72, 3, 2, 2, 130, 0, 181, 255, 90, 4, 111, 2, 153, 0, 216, 0, 44, 4, 52, 2, 250, 255, 236, 254, 95, 4, 215, 2, 190, 0, 188, 255, 192, 2, 50, 1, 119, 0, 248, 254, 73, 1, 61, 0, 156, 255, 156, 0, 108, 1, 123, 0, 183, 0, 48, 255, 85, 255, 133, 255, 220, 0, 191, 255, 206, 254, 194, 255, 146, 1, 17, 0, 108, 253, 86, 252, 246, 254, 0, 0, 129, 1, 235, 0, 20, 1, 29, 1, 64, 1, 12, 1, 176, 254, 56, 255, 44, 253, 17, 0, 172, 255, 125, 1, 224, 253, 173, 1, 238, 1, 7, 2, 139, 255, 32, 1, 48, 1, 73, 1, 131, 2, 157, 0, 189, 2, 252, 1, 176, 4, 113, 2, 28, 3, 96, 2, 230, 3, 165, 1, 236, 1, 120, 2, 180, 4, 12, 3, 190, 1, 132, 0, 233, 4, 76, 3, 35, 2, 193, 1, 61, 3, 146, 2, 29, 2, 214, 1, 108, 4, 234, 4, 150, 3, 127, 2, 35, 2, 51, 0, 167, 1, 23, 1, 9, 0, 136, 1, 83, 0, 94, 0, 30, 2, 31, 2, 229, 0, 109, 255, 58, 255, 129, 0, 194, 0, 71, 255, 161, 252, 215, 250, 210, 254, 30, 0, 171, 253, 139, 253, 237, 255, 114, 0, 124, 252, 199, 251, 210, 1, 97, 1, 53, 250, 219, 249, 15, 0, 113, 255, 84, 249, 245, 247, 17, 253, 196, 0, 172, 248, 237, 247, 126, 253, 254, 254, 225, 246, 66, 250, 62, 254, 204, 253, 184, 253, 70, 255, 152, 252, 98, 254, 243, 248, 36, 252, 155, 251, 226, 250, 42, 253, 151, 251, 28, 0, 169, 0, 241, 251, 160, 252, 50, 253, 10, 255, 228, 1, 36, 0, 23, 255, 207, 255, 9, 1, 67, 0, 33, 1, 211, 1, 178, 0, 31, 2, 42, 3, 28, 2, 84, 0, 26, 1, 160, 2, 191, 2, 49, 252, 247, 252, 129, 0, 31, 1, 86, 252, 29, 255, 187, 3, 83, 2, 175, 249, 223, 254, 68, 3, 137, 2, 201, 248, 41, 255, 82, 4, 206, 2, 14, 248, 195, 251, 138, 2, 184, 1, 203, 247, 239, 253, 139, 3, 63, 2, 37, 248, 176, 254, 158, 2, 204, 0, 171, 246, 76, 253, 104, 1, 137, 0, 148, 247, 100, 247, 247, 255, 24, 1, 246, 254, 119, 0, 39, 0, 193, 0, 78, 0, 197, 255, 136, 255, 226, 0, 49, 252, 166, 252, 243, 252, 185, 251, 149, 253, 99, 254, 61, 254, 182, 252, 64, 251, 215, 250, 211, 252, 141, 252, 160, 250, 177, 249, 118, 254, 84, 254, 31, 253, 167, 251, 219, 253, 234, 252, 144, 252, 49, 252, 57, 252, 126, 253, 39, 252, 138, 252, 7, 251, 175, 250, 39, 254, 220, 252, 135, 250, 129, 250, 160, 0, 247, 254, 105, 252, 237, 254, 8, 255, 6, 255, 50, 253, 132, 254, 97, 0, 153, 255, 137, 254, 27, 255, 97, 254, 63, 255, 121, 255, 213, 253, 116, 2, 105, 1, 119, 0, 216, 0, 67, 2, 108, 1, 135, 1, 209, 0, 122, 2, 10, 2, 102, 255, 108, 255, 14, 2, 133, 1, 170, 0, 33, 0, 105, 0, 11, 1, 64, 0, 124, 1, 33, 250, 24, 252, 226, 255, 143, 254, 210, 251, 58, 0, 135, 2, 223, 0, 16, 250, 221, 254, 109, 2, 51, 1, 5, 250, 156, 0, 250, 2, 148, 1, 19, 248, 141, 0, 222, 2, 243, 1, 199, 248, 118, 253, 50, 1, 0, 2, 69, 255, 152, 255, 197, 255, 182, 1, 134, 0, 26, 255, 156, 0, 70, 255, 195, 255, 252, 254, 240, 255, 10, 0, 199, 253, 253, 255, 91, 254, 215, 254, 67, 249, 247, 253, 166, 254, 178, 0, 174, 250, 197, 255, 212, 255, 157, 0, 158, 247, 51, 254, 42, 254, 163, 254, 134, 247, 255, 255, 143, 254, 135, 255, 213, 249, 139, 254, 124, 252, 9, 252, 163, 251, 177, 253, 155, 253, 240, 252, 207, 253, 122, 0, 181, 255, 63, 254, 252, 255, 85, 255, 133, 255, 140, 254, 192, 0, 168, 0, 180, 255, 124, 255, 252, 0, 149, 255, 84, 1, 210, 0, 136, 1, 253, 1, 16, 1, 181, 0, 147, 255, 145, 0, 218, 0, 119, 0, 96, 254, 249, 254, 229, 1, 9, 1, 75, 255, 248, 255, 226, 254, 226, 0, 12, 255, 38, 255, 69, 0, 222, 254, 98, 255, 191, 0, 255, 255, 192, 255, 176, 253, 166, 255, 213, 0, 160, 255, 255, 0, 179, 1, 178, 0, 176, 255, 143, 254, 238, 255, 223, 255, 176, 255, 214, 255, 159, 1, 140, 0, 34, 255, 119, 4, 139, 2, 137, 2, 73, 1, 255, 2, 44, 2, 249, 0, 235, 0, 180, 3, 157, 1, 186, 1, 23, 1, 141, 0, 83, 1, 100, 1, 45, 2, 42, 254, 86, 255, 99, 0, 237, 0, 199, 253, 224, 252, 96, 1, 53, 2, 26, 1, 217, 1, 214, 1, 76, 1, 57, 255, 78, 253, 252, 250, 107, 252, 63, 255, 86, 254, 224, 252, 158, 251, 230, 255, 141, 254, 22, 254, 63, 255, 125, 2, 83, 2, 7, 2, 74, 1, 152, 1, 141, 255, 79, 0, 12, 0, 221, 1, 87, 0, 153, 255, 136, 254, 102, 253, 165, 254, 235, 254, 221, 254, 2, 254, 31, 254, 169, 0, 41, 1, 195, 252, 30, 253, 51, 255, 85, 255, 192, 254, 228, 253, 72, 1, 27, 1, 165, 252, 66, 252, 186, 1, 254, 255, 44, 2, 174, 2, 130, 0, 56, 0, 103, 5, 244, 3, 243, 2, 171, 1, 100, 2, 229, 2, 116, 2, 41, 2, 173, 254, 228, 252, 134, 0, 21, 1, 135, 253, 195, 251, 254, 255, 10, 255, 144, 252, 245, 251, 185, 249, 216, 251, 30, 252, 38, 254, 142, 251, 24, 254, 98, 254, 229, 252, 73, 0, 50, 255, 248, 255, 117, 255, 183, 1, 204, 0, 80, 255, 190, 253, 23, 0, 131, 0, 243, 254, 11, 253, 65, 255, 245, 0, 147, 255, 174, 254, 112, 0, 60, 1, 120, 0, 106, 254, 138, 255, 99, 2, 76, 255, 70, 255, 123, 253, 115, 0, 83, 255, 34, 0, 250, 253, 23, 254, 105, 255, 61, 0, 185, 253, 180, 252, 220, 0, 118, 255, 87, 253, 4, 252, 135, 1, 239, 255, 170, 253, 191, 254, 157, 0, 217, 254, 129, 0, 155, 0, 98, 252, 149, 252, 37, 252, 29, 1, 241, 0, 173, 255, 131, 255, 131, 255, 108, 2, 85, 2, 176, 1, 92, 0, 137, 1, 78, 0, 153, 1, 61, 0, 119, 254, 29, 253, 99, 254, 20, 253, 83, 0, 54, 0, 105, 1, 27, 0, 196, 251, 130, 0, 175, 254, 74, 253, 227, 249, 41, 1, 62, 1, 237, 255, 175, 248, 36, 0, 51, 0, 195, 254, 237, 246, 10, 255, 231, 0, 172, 255, 254, 246, 241, 252, 40, 0, 77, 255, 71, 247, 94, 252, 38, 254, 50, 254, 14, 253, 170, 255, 224, 254, 142, 253, 149, 246, 57, 254, 193, 255, 171, 0, 181, 251, 186, 251, 230, 255, 113, 255, 87, 251, 57, 254, 106, 254, 131, 254, 163, 253, 46, 255, 160, 255, 205, 255, 188, 253, 36, 254, 236, 254, 241, 255, 85, 251, 134, 253, 77, 251, 143, 252, 134, 254, 35, 255, 99, 253, 72, 252, 82, 2, 178, 0, 109, 254, 92, 253, 251, 2, 71, 1, 89, 2, 34, 1, 172, 0, 44, 1, 203, 0, 157, 0, 200, 255, 176, 254, 100, 1, 24, 0, 28, 255, 216, 254, 253, 254, 227, 255, 70, 255, 7, 1, 160, 1, 14, 0, 159, 254, 117, 1, 244, 255, 40, 255, 1, 1, 96, 0, 174, 0, 57, 0, 10, 250, 152, 253, 70, 252, 13, 254, 15, 254, 104, 255, 179, 254, 125, 0, 105, 0, 200, 0, 179, 0, 159, 255, 181, 254, 32, 255, 253, 2, 185, 2, 248, 2, 0, 1, 45, 1, 59, 0, 199, 1, 171, 255, 204, 0, 32, 1, 254, 253, 240, 0, 251, 0, 147, 255, 0, 1, 161, 1, 222, 255, 99, 254, 101, 0, 174, 1, 128, 1, 156, 0, 225, 255, 246, 255, 206, 0, 170, 1, 77, 2, 145, 0, 143, 0, 71, 0, 40, 3, 138, 3, 77, 1, 93, 1, 218, 3, 170, 3, 77, 2, 75, 1, 20, 5, 56, 3, 187, 0, 253, 1, 38, 4, 141, 2, 123, 1, 210, 1, 182, 5, 169, 3, 145, 1, 18, 1, 19, 3, 93, 3, 9, 1, 2, 0, 97, 2, 41, 2, 28, 0, 49, 1, 158, 3, 84, 1, 106, 0, 130, 1, 241, 0, 245, 254, 109, 255, 225, 0, 78, 255, 234, 253, 91, 1, 246, 1, 125, 253, 131, 254, 141, 1, 30, 0, 117, 253, 35, 253, 77, 254, 142, 1, 105, 254, 42, 253, 28, 254, 8, 255, 235, 252, 110, 252, 74, 254, 36, 254, 14, 254, 122, 254, 75, 0, 217, 254, 60, 252, 178, 253, 162, 253, 150, 0, 135, 255, 207, 255, 101, 255, 178, 255, 167, 3, 38, 2, 133, 1, 38, 0, 191, 254, 127, 0, 168, 1, 59, 1, 227, 254, 143, 255, 27, 1, 3, 1, 146, 2, 203, 0, 66, 1, 230, 1, 135, 3, 249, 1, 236, 2, 161, 1, 99, 2, 167, 1, 43, 2, 0, 2, 239, 0, 173, 255, 190, 253, 237, 255, 173, 254, 37, 253, 93, 1, 13, 0, 90, 252, 137, 250, 142, 255, 152, 254, 107, 0, 180, 2, 182, 0, 90, 0, 37, 251, 254, 249, 241, 249, 43, 253, 200, 253, 121, 252, 173, 250, 243, 253, 251, 253, 171, 252, 163, 252, 20, 252, 88, 255, 78, 253, 189, 252, 63, 0, 119, 255, 212, 253, 221, 253, 144, 0, 226, 254, 207, 252, 229, 1, 63, 1, 109, 255, 104, 254, 14, 2, 246, 0, 165, 254, 78, 254, 41, 1, 228, 255, 222, 254, 41, 254, 170, 251, 251, 250, 52, 254, 153, 254, 36, 252, 230, 252, 67, 5, 19, 5, 178, 2, 11, 2, 192, 4, 44, 4, 70, 4, 245, 2, 57, 3, 116, 4, 240, 2, 238, 1, 228, 4, 85, 5, 171, 4, 130, 3, 9, 2, 29, 4, 20, 2, 176, 1, 178, 254, 40, 255, 199, 254, 249, 254, 96, 255, 52, 0, 40, 254, 101, 255, 127, 0, 136, 0, 132, 254, 44, 0, 83, 3, 154, 1, 94, 255, 23, 254, 123, 0, 1, 255, 228, 252, 101, 253, 66, 4, 149, 3, 21, 3, 237, 1, 117, 5, 173, 4, 46, 2, 202, 0, 205, 255, 138, 255, 170, 254, 67, 253, 83, 0, 108, 0, 214, 255, 71, 254, 61, 0, 95, 0, 31, 1, 0, 1, 229, 255, 89, 0, 12, 2, 19, 2, 95, 1, 227, 0, 80, 2, 33, 2, 185, 2, 155, 0, 92, 255, 51, 1, 126, 2, 18, 1, 23, 254, 206, 255, 242, 2, 240, 0, 90, 255, 132, 255, 140, 255, 189, 253, 68, 251, 193, 255, 190, 0, 217, 254, 240, 251, 240, 250, 147, 0, 136, 254, 79, 255, 143, 255, 73, 3, 217, 4, 27, 4, 156, 2, 2, 0, 37, 1, 39, 2, 48, 1, 184, 251, 71, 252, 8, 255, 120, 1, 18, 253, 59, 252, 87, 0, 4, 2, 237, 254, 252, 253, 177, 2, 135, 1, 133, 254, 125, 253, 108, 3, 82, 2, 122, 254, 11, 252, 123, 253, 61, 2, 149, 255, 200, 253, 79, 253, 198, 252, 255, 251, 229, 255, 184, 254, 53, 255, 93, 3, 237, 2, 36, 2, 233, 0, 132, 249, 237, 251, 195, 1, 108, 0, 108, 253, 148, 253, 174, 1, 236, 0, 21, 0, 116, 254, 122, 251, 137, 253, 92, 5, 18, 5, 199, 3, 65, 2, 101, 4, 101, 4, 77, 2, 198, 1, 189, 254, 159, 252, 45, 254, 153, 0, 44, 254, 69, 253, 220, 252, 3, 254, 120, 254, 50, 253, 52, 255, 221, 255, 165, 253, 187, 251, 201, 253, 94, 255, 7, 254, 20, 252, 154, 255, 94, 1, 219, 0, 224, 0, 167, 1, 252, 0, 139, 1, 79, 2, 96, 2, 107, 1, 22, 253, 160, 255, 117, 1, 172, 0, 171, 0, 39, 1, 202, 2, 83, 1, 233, 0, 77, 0, 107, 0, 21, 1, 157, 0, 153, 0, 13, 254, 156, 254, 11, 6, 49, 4, 64, 2, 238, 1, 220, 254, 173, 254, 8, 254, 176, 253, 121, 252, 184, 255, 149, 253, 31, 254, 198, 249, 163, 251, 201, 253, 2, 255, 231, 252, 5, 254, 204, 253, 221, 254, 20, 254, 236, 253, 246, 1, 48, 2, 130, 254, 171, 1, 88, 2, 230, 0, 29, 255, 221, 1, 251, 0, 75, 0, 29, 1, 74, 3, 45, 3, 220, 1, 226, 250, 203, 250, 186, 0, 121, 1, 181, 253, 107, 252, 131, 2, 125, 1, 94, 251, 215, 253, 155, 1, 82, 0, 153, 251, 204, 252, 82, 255, 228, 253, 164, 253, 119, 0, 31, 2, 205, 0, 132, 254, 145, 2, 141, 3, 55, 2, 112, 0, 214, 254, 138, 254, 114, 0, 167, 252, 5, 255, 56, 0, 159, 0, 145, 1, 89, 1, 222, 255, 116, 255, 145, 255, 161, 253, 41, 0, 102, 2, 99, 1, 142, 255, 179, 255, 218, 1, 66, 2, 56, 0, 170, 5, 156, 3, 74, 4, 140, 5, 229, 2, 144, 1, 246, 0, 22, 0, 76, 2, 57, 1, 135, 255, 71, 1, 63, 3, 216, 1, 142, 251, 160, 253, 88, 3, 40, 2, 39, 251, 208, 251, 126, 2, 88, 2, 154, 254, 254, 0, 179, 254, 209, 254, 122, 253, 227, 2, 102, 1, 74, 0, 202, 4, 135, 6, 197, 4, 81, 3, 193, 8, 88, 6, 215, 3, 124, 2, 49, 7, 197, 5, 237, 2, 128, 1, 94, 1, 7, 1, 87, 0, 128, 0, 146, 248, 83, 252, 112, 255, 192, 255, 58, 249, 1, 255, 32, 1, 225, 255, 172, 245, 42, 251, 110, 1, 235, 0, 149, 249, 188, 251, 192, 250, 208, 254, 227, 253, 205, 251, 164, 251, 123, 0, 102, 251, 4, 255, 208, 252, 76, 255, 8, 252, 21, 2, 53, 2, 233, 0, 25, 254, 82, 254, 68, 255, 78, 1, 99, 3, 212, 4, 22, 2, 171, 0, 202, 249, 185, 249, 123, 2, 118, 2, 108, 247, 54, 1, 156, 3, 156, 1, 202, 246, 184, 254, 188, 3, 17, 2, 177, 245, 135, 254, 118, 2, 22, 1, 214, 245, 61, 1, 31, 3, 43, 1, 154, 246, 133, 0, 84, 1, 31, 0, 148, 247, 68, 250, 131, 0, 125, 0, 96, 251, 22, 254, 117, 255, 46, 0, 24, 253, 191, 1, 123, 3, 52, 2, 67, 0, 61, 254, 134, 2, 92, 2, 215, 253, 83, 254, 148, 252, 140, 1, 162, 0, 190, 255, 25, 5, 147, 3, 223, 1, 67, 2, 64, 4, 26, 3, 194, 1, 22, 1, 54, 2, 68, 1, 223, 251, 102, 255, 148, 0, 79, 255, 15, 246, 168, 0, 46, 4, 80, 2, 209, 246, 214, 255, 51, 3, 89, 1, 216, 246, 61, 253, 209, 2, 250, 0, 129, 247, 39, 250, 203, 254, 122, 0, 178, 255, 183, 255, 120, 0, 173, 0, 252, 255, 6, 1, 249, 254, 251, 254, 81, 254, 192, 255, 107, 254, 36, 253, 207, 245, 116, 0, 173, 255, 63, 255, 11, 250, 80, 252, 35, 254, 43, 253, 4, 254, 51, 1, 170, 0, 172, 0, 64, 3, 161, 1, 64, 3, 174, 2, 31, 255, 177, 0, 126, 3, 50, 3, 30, 254, 123, 254, 255, 4, 15, 4, 129, 254, 201, 0, 162, 254, 40, 0, 218, 2, 123, 2, 226, 0, 14, 2, 247, 1, 206, 1, 82, 1, 142, 1, 23, 2, 202, 2, 40, 0, 230, 254, 202, 5, 191, 5, 61, 4, 219, 2, 25, 6, 48, 4, 141, 3, 181, 2, 139, 5, 2, 5, 121, 3, 111, 3, 129, 4, 216, 2, 162, 4, 72, 3, 30, 255, 106, 4, 181, 3, 177, 2, 18, 254, 38, 252, 236, 249, 128, 255, 200, 253, 47, 253, 55, 253, 230, 255, 61, 1, 12, 2, 70, 0, 135, 0, 107, 254, 159, 252, 26, 249, 116, 253, 82, 255, 223, 252, 117, 3, 5, 3, 103, 255, 165, 255, 75, 4, 239, 2, 6, 254, 131, 251, 85, 3, 134, 2, 241, 0, 14, 3, 7, 2, 27, 2, 61, 7, 164, 6, 77, 4, 172, 2, 31, 251, 50, 250, 48, 254, 188, 0, 131, 252, 127, 250, 224, 250, 171, 254, 121, 255, 182, 1, 81, 255, 18, 0, 87, 4, 208, 3, 63, 1, 208, 0, 106, 250, 24, 249, 83, 0, 202, 1, 238, 253, 24, 252, 51, 1, 129, 0, 184, 252, 241, 255, 227, 255, 156, 254, 113, 252, 100, 252, 133, 251, 14, 255, 137, 255, 240, 253, 127, 0, 123, 255, 7, 253, 3, 253, 190, 0, 173, 255, 197, 254, 127, 3, 10, 2, 231, 0, 34, 255, 102, 0, 193, 255, 84, 254, 60, 1, 187, 2, 123, 1, 70, 0, 25, 0, 204, 2, 58, 1, 148, 255, 251, 1, 106, 3, 54, 2, 238, 0, 108, 0, 173, 3, 7, 2, 195, 0, 169, 1, 196, 255, 85, 254, 1, 1, 139, 0, 153, 255, 138, 253, 190, 1, 78, 1, 114, 1, 156, 1, 48, 0, 84, 255, 78, 253, 229, 254, 45, 2, 187, 0, 226, 254, 158, 0, 227, 1, 140, 0, 14, 1, 168, 254, 137, 253, 156, 3, 67, 2, 140, 255, 132, 0, 142, 0, 210, 1, 188, 255, 192, 255, 230, 0, 111, 255, 210, 254, 226, 253, 221, 252, 112, 252, 250, 3, 225, 2, 251, 252, 247, 3, 118, 2, 41, 1, 220, 245, 95, 0, 189, 1, 80, 1, 182, 247, 235, 1, 254, 1, 191, 0, 27, 251, 161, 0, 254, 255, 188, 254, 86, 250, 135, 253, 56, 253, 151, 255, 182, 252, 2, 255, 101, 254, 100, 0, 128, 253, 222, 254, 242, 3, 251, 2, 118, 253, 57, 1, 145, 4, 218, 2, 140, 0, 249, 1, 6, 4, 254, 2, 4, 3, 31, 1, 43, 4, 55, 3, 239, 1, 237, 2, 49, 1, 67, 1, 92, 255, 206, 1, 78, 0, 143, 1, 170, 254, 150, 252, 69, 0, 85, 2, 240, 255, 108, 2, 109, 2, 81, 1, 118, 255, 68, 254, 247, 254, 218, 0, 84, 0, 62, 254, 185, 3, 154, 2, 34, 255, 221, 252, 29, 2, 92, 2, 103, 252, 160, 250, 244, 0, 116, 0, 183, 252, 45, 253, 118, 2, 76, 2, 140, 0, 151, 2, 38, 1, 112, 1, 167, 3, 22, 4, 113, 3, 247, 2, 210, 6, 184, 5, 148, 3, 116, 2, 180, 1, 195, 3, 25, 1, 1, 0, 137, 255, 74, 0, 30, 2, 213, 0, 1, 0, 201, 253, 45, 1, 241, 0, 4, 1, 179, 1, 222, 0, 140, 1, 168, 3, 189, 3, 84, 4, 191, 2, 254, 1, 250, 1, 40, 3, 222, 1, 89, 2, 182, 2, 192, 3, 108, 2, 204, 3, 229, 2, 212, 3, 88, 2, 66, 3, 205, 2, 255, 2, 172, 2, 131, 2, 204, 3, 167, 3, 126, 2, 245, 1, 149, 2, 208, 2, 83, 3, 151, 255, 136, 253, 209, 254, 139, 255, 83, 254, 130, 0, 21, 3, 186, 1, 246, 253, 68, 255, 192, 2, 117, 1, 9, 253, 42, 0, 46, 3, 11, 2, 237, 253, 143, 251, 117, 1, 66, 2, 86, 253, 77, 251, 57, 254, 29, 1, 117, 251, 215, 249, 182, 251, 44, 0, 81, 0, 174, 255, 200, 2, 107, 1, 221, 1, 246, 0, 186, 3, 110, 2, 68, 6, 86, 6, 253, 4, 123, 3, 129, 5, 91, 3, 156, 3, 124, 3, 6, 3, 17, 4, 179, 3, 118, 4, 40, 0, 222, 253, 181, 255, 32, 1, 152, 253, 150, 255, 71, 253, 230, 255, 87, 255, 96, 255, 133, 252, 29, 253, 233, 254, 128, 254, 251, 251, 162, 254, 245, 6, 28, 5, 22, 4, 48, 3, 44, 6, 253, 5, 192, 5, 154, 4, 225, 5, 52, 4, 192, 4, 131, 3, 122, 3, 136, 3, 52, 2, 142, 2, 152, 3, 180, 2, 253, 3, 88, 3, 19, 254, 132, 0, 177, 0, 249, 1, 71, 0, 195, 0, 228, 255, 97, 0, 200, 1, 95, 1, 92, 255, 88, 0, 183, 1, 22, 1, 216, 255, 94, 1, 115, 5, 181, 3, 234, 0, 161, 255, 219, 252, 40, 254, 38, 0, 93, 255, 111, 1, 158, 255, 233, 1, 11, 2, 1, 4, 154, 4, 188, 4, 138, 3, 63, 1, 34, 5, 46, 3, 205, 1, 133, 255, 225, 253, 220, 252, 191, 1, 20, 253, 188, 254, 127, 252, 153, 251, 31, 253, 11, 254, 235, 252, 55, 253, 203, 2, 9, 3, 215, 4, 154, 3, 157, 7, 147, 7, 88, 5, 97, 3, 218, 2, 112, 3, 246, 2, 132, 1, 153, 252, 198, 1, 17, 0, 5, 255, 131, 254, 214, 252, 209, 249, 239, 0, 247, 253, 58, 252, 232, 252, 3, 1, 134, 252, 178, 250, 254, 252, 183, 255, 166, 0, 93, 1, 44, 255, 67, 1, 184, 252, 211, 254, 217, 1, 179, 1, 89, 253, 48, 254, 216, 2, 95, 1, 100, 255, 57, 255, 155, 2, 176, 1, 29, 0, 4, 255, 159, 1, 224, 1, 37, 253, 133, 254, 145, 0, 47, 2, 240, 253, 137, 253, 122, 251, 97, 255, 189, 1, 17, 1, 123, 0, 127, 2, 117, 1, 130, 255, 32, 3, 56, 2, 84, 0, 94, 255, 208, 2, 200, 2, 194, 252, 232, 253, 71, 255, 222, 0, 152, 1, 196, 1, 245, 1, 3, 3, 127, 252, 181, 250, 189, 255, 186, 1, 232, 252, 130, 250, 54, 2, 90, 2, 167, 0, 186, 254, 253, 1, 74, 1, 161, 255, 142, 253, 38, 253, 168, 254, 132, 6, 193, 4, 11, 3, 199, 1, 36, 5, 60, 3, 72, 2, 207, 2, 148, 1, 225, 255, 245, 3, 21, 3, 89, 0, 107, 0, 123, 3, 37, 2, 103, 3, 45, 6, 149, 3, 159, 2, 98, 3, 199, 5, 9, 5, 86, 3, 135, 1, 44, 4, 98, 4, 44, 3, 78, 0, 206, 253, 89, 1, 51, 2, 173, 1, 153, 255, 161, 1, 19, 3, 134, 255, 75, 254, 155, 1, 20, 3, 111, 252, 95, 254, 90, 2, 242, 2, 30, 255, 240, 255, 151, 0, 248, 2, 68, 253, 118, 0, 152, 255, 242, 255, 152, 251, 48, 0, 28, 1, 137, 1, 122, 254, 93, 254, 129, 253, 140, 255, 114, 252, 50, 1, 60, 1, 243, 255, 183, 4, 216, 3, 53, 3, 157, 2, 85, 251, 75, 253, 140, 0, 43, 255, 140, 252, 96, 254, 57, 255, 210, 253, 152, 253, 245, 0, 108, 254, 104, 253, 6, 1, 56, 0, 151, 253, 44, 253, 171, 255, 21, 254, 192, 254, 112, 253, 198, 253, 193, 252, 127, 255, 240, 253, 30, 250, 193, 255, 145, 254, 127, 254, 154, 254, 191, 254, 4, 0, 51, 0, 146, 254, 42, 255, 63, 1, 255, 1, 146, 0, 159, 2, 239, 255, 221, 254, 146, 255, 208, 1, 117, 255, 16, 254, 54, 255, 220, 0, 200, 254, 137, 253, 108, 253, 183, 255, 113, 253, 204, 252, 106, 253, 115, 253, 248, 250, 167, 252, 82, 254, 71, 252, 65, 252, 248, 254, 207, 255, 44, 254, 184, 255, 131, 254, 162, 254, 205, 253, 63, 255, 105, 254, 55, 0, 104, 254, 221, 252, 11, 0, 203, 254, 137, 2, 188, 0, 58, 255, 0, 254, 205, 1, 177, 255, 54, 254, 218, 250, 249, 254, 122, 255, 245, 253, 135, 249, 77, 254, 17, 254, 3, 253, 57, 0, 165, 254, 98, 254, 178, 1, 139, 251, 14, 255, 104, 253, 167, 252, 34, 0, 188, 255, 61, 253, 174, 254, 163, 1, 163, 0, 226, 255, 250, 254, 57, 254, 235, 252, 106, 250, 47, 253, 238, 3, 152, 2, 13, 1, 25, 0, 107, 2, 4, 1, 183, 0, 96, 0, 56, 252, 178, 250, 124, 254, 135, 0, 75, 253, 67, 3, 200, 1, 154, 0, 81, 4, 191, 2, 57, 2, 107, 1, 89, 6, 46, 5, 217, 3, 236, 2, 36, 255, 219, 0, 76, 0, 48, 255, 81, 250, 130, 249, 49, 0, 149, 0, 60, 252, 84, 255, 16, 253, 176, 254, 113, 2, 209, 0, 6, 255, 190, 255, 7, 252, 186, 252, 254, 255, 61, 1, 136, 247, 51, 250, 118, 255, 123, 0, 172, 248, 205, 247, 247, 253, 85, 0, 57, 252, 146, 254, 73, 253, 143, 252, 103, 252, 13, 252, 5, 253, 75, 252, 132, 255, 0, 255, 160, 254, 108, 253, 178, 0, 207, 1, 98, 1, 48, 1, 48, 249, 177, 253, 230, 254, 79, 0, 55, 247, 175, 0, 99, 3, 243, 1, 118, 255, 76, 255, 75, 255, 235, 255, 13, 247, 39, 251, 52, 254, 248, 253, 253, 252, 195, 1, 246, 255, 204, 254, 15, 1, 191, 255, 4, 0, 214, 0, 233, 254, 77, 254, 213, 255, 164, 254, 98, 253, 35, 0, 191, 255, 45, 255, 38, 3, 23, 2, 85, 0, 41, 1, 57, 0, 239, 0, 210, 2, 237, 1, 225, 0, 149, 2, 72, 3, 35, 2, 228, 253, 136, 254, 14, 0, 93, 1, 213, 1, 209, 2, 75, 1, 162, 0, 224, 253, 16, 253, 194, 255, 246, 255, 142, 1, 168, 255, 212, 2, 189, 2, 237, 255, 235, 253, 162, 255, 89, 2, 136, 0, 185, 255, 87, 253, 21, 253, 90, 255, 168, 254, 5, 1, 206, 255, 161, 0, 204, 255, 229, 1, 81, 1, 117, 249, 50, 0, 190, 0, 163, 255, 22, 247, 25, 255, 62, 255, 174, 255, 161, 255, 173, 253, 102, 255, 128, 0, 126, 3, 245, 1, 76, 2, 201, 1, 167, 254, 206, 0, 122, 0, 110, 0, 137, 253, 29, 255, 199, 253, 3, 0, 152, 1, 239, 0, 141, 1, 226, 0, 59, 255, 254, 255, 128, 0, 235, 1, 1, 5, 136, 3, 36, 1, 215, 0, 26, 2, 50, 1, 3, 1, 253, 1, 91, 253, 233, 251, 13, 0, 65, 1, 89, 253, 180, 253, 154, 254, 44, 255, 210, 253, 243, 0, 134, 2, 223, 1, 230, 1, 86, 1, 122, 2, 20, 2, 107, 0, 34, 3, 75, 1, 136, 0, 144, 255, 114, 254, 249, 251, 226, 254, 186, 254, 63, 253, 32, 1, 16, 1, 19, 5, 120, 4, 154, 4, 92, 3, 89, 254, 121, 0, 127, 254, 108, 255, 217, 254, 210, 254, 190, 252, 205, 252, 16, 0, 232, 255, 55, 255, 36, 254, 43, 2, 91, 0, 11, 255, 38, 1, 218, 255, 133, 254, 62, 252, 59, 251, 89, 251, 18, 250, 239, 254, 117, 254, 122, 254, 11, 252, 123, 253, 61, 2, 205, 248, 250, 251, 249, 1, 212, 1, 232, 2, 179, 3, 97, 2, 237, 1, 79, 253, 108, 251, 140, 253, 121, 255, 254, 251, 195, 0, 155, 1, 196, 0, 46, 6, 123, 4, 63, 2, 81, 1, 41, 251, 247, 252, 120, 253, 114, 255, 83, 2, 57, 3, 199, 3, 223, 2, 74, 251, 54, 252, 175, 255, 170, 254, 23, 253, 13, 0, 184, 255, 119, 1, 198, 1, 19, 0, 127, 5, 153, 3, 145, 249, 84, 255, 93, 3, 50, 2, 160, 3, 1, 6, 39, 4, 228, 2, 88, 246, 72, 252, 8, 1, 82, 0, 10, 254, 59, 252, 202, 250, 123, 0, 99, 3, 212, 4, 22, 2, 171, 0, 240, 246, 52, 254, 12, 3, 107, 1, 90, 251, 151, 253, 252, 0, 195, 255, 82, 255, 34, 0, 243, 3, 20, 3, 227, 246, 247, 0, 167, 1, 153, 0, 240, 255, 157, 254, 6, 1, 193, 1, 216, 249, 207, 251, 224, 253, 141, 254, 153, 253, 207, 254, 27, 4, 37, 3, 175, 2, 16, 2, 6, 0, 74, 255, 167, 3, 107, 3, 234, 3, 41, 3, 199, 0, 1, 1, 126, 0, 76, 0, 184, 253, 142, 251, 87, 2, 44, 2, 175, 251, 145, 250, 201, 249, 249, 253, 47, 252, 211, 250, 108, 0, 91, 1, 46, 253, 49, 252, 109, 1, 101, 0, 111, 255, 169, 2, 249, 0, 103, 255, 0, 0, 178, 254, 198, 253, 159, 0, 156, 1, 29, 1, 176, 254, 151, 253, 71, 252, 58, 252, 119, 3, 177, 2, 29, 251, 84, 0, 71, 255, 114, 254, 176, 253, 177, 1, 20, 4, 141, 2, 85, 0, 73, 1, 216, 255, 105, 1, 79, 254, 63, 253, 210, 1, 62, 2, 102, 255, 142, 2, 80, 2, 34, 1, 89, 255, 72, 0, 93, 1, 175, 0, 162, 2, 41, 1, 209, 3, 208, 2, 211, 4, 180, 4, 245, 2, 232, 1, 112, 254, 243, 254, 26, 2, 116, 1, 186, 250, 149, 250, 86, 251, 165, 255, 238, 4, 108, 3, 7, 3, 188, 2, 169, 253, 218, 255, 82, 254, 46, 253, 184, 7, 94, 6, 223, 3, 96, 2, 111, 0, 20, 1, 30, 255, 160, 255, 77, 252, 124, 254, 245, 255, 249, 255, 209, 254, 237, 253, 185, 252, 82, 1, 198, 6, 174, 6, 125, 5, 245, 3, 252, 253, 169, 252, 123, 253, 210, 0, 80, 253, 96, 254, 1, 2, 230, 0, 202, 252, 131, 253, 134, 251, 192, 254, 72, 252, 110, 253, 74, 253, 183, 0, 142, 255, 145, 253, 50, 3, 162, 2, 65, 255, 52, 255, 219, 2, 123, 2, 51, 0, 197, 4, 115, 3, 64, 2, 70, 252, 81, 254, 58, 3, 86, 2, 170, 254, 13, 253, 124, 252, 105, 254, 154, 251, 158, 254, 50, 255, 0, 254, 221, 253, 214, 252, 155, 254, 148, 253, 66, 0, 3, 2, 183, 255, 102, 254, 152, 252, 79, 252, 92, 250, 53, 251, 191, 0, 239, 255, 224, 253, 25, 255, 252, 249, 224, 253, 123, 252, 138, 252, 134, 252, 242, 249, 19, 246, 205, 252, 54, 252, 175, 0, 198, 252, 46, 251, 6, 253, 169, 253, 234, 255, 122, 2, 213, 252, 37, 252, 122, 252, 189, 254, 203, 0, 26, 0, 129, 254, 21, 255, 243, 252, 113, 254, 238, 4, 138, 3, 92, 252, 137, 250, 156, 250, 144, 253, 93, 0, 87, 0, 98, 254, 229, 253, 77, 253, 37, 0, 121, 2, 254, 1, 125, 254, 36, 254, 206, 250, 143, 1, 66, 0, 7, 1, 105, 254, 207, 255, 177, 254, 95, 254, 17, 4, 73, 7, 245, 252, 191, 251, 96, 250, 22, 253, 166, 252, 64, 3, 187, 253, 9, 253, 141, 254, 95, 253, 6, 254, 40, 8, 208, 253, 134, 253, 101, 251, 15, 1, 241, 0, 14, 0, 74, 254, 12, 255, 115, 254, 207, 1, 178, 4, 23, 4, 162, 253, 227, 252, 98, 250, 205, 255, 189, 254, 225, 1, 32, 255, 184, 253, 241, 253, 238, 1, 113, 3, 170, 2, 79, 254, 206, 254, 22, 252, 42, 2, 147, 2, 222, 0, 171, 0, 96, 255, 159, 254, 169, 2, 6, 7, 29, 6, 172, 252, 99, 251, 97, 249, 176, 254, 102, 253, 114, 0, 187, 253, 12, 253, 24, 253, 61, 255, 119, 1, 241, 1, 47, 254, 220, 252, 182, 251, 154, 0, 26, 1, 125, 255, 206, 255, 65, 255, 49, 253, 67, 1, 220, 2, 6, 6, 46, 253, 205, 252, 132, 250, 105, 0, 6, 255, 185, 0, 78, 255, 10, 254, 26, 253, 65, 1, 254, 1, 87, 4, 189, 254, 201, 253, 58, 252, 127, 0, 228, 1, 82, 1, 96, 255, 52, 0, 174, 254, 220, 2, 87, 5, 18, 6, 142, 253, 222, 252, 96, 249, 226, 254, 182, 253, 164, 2, 73, 253, 169, 254, 142, 254, 22, 254, 39, 1, 101, 7, 138, 253, 194, 253, 10, 252, 176, 255, 133, 2, 187, 255, 250, 255, 194, 254, 148, 254, 14, 3, 170, 5, 14, 4, 199, 254, 35, 253, 141, 250, 120, 0, 60, 0, 221, 1, 248, 254, 183, 253, 133, 255, 199, 2, 221, 4, 121, 2, 165, 255, 157, 254, 8, 252, 3, 3, 246, 2, 5, 1, 253, 0, 81, 0, 38, 254, 162, 3, 167, 8, 184, 6, 216, 252, 181, 251, 123, 248, 208, 253, 242, 252, 169, 0, 220, 252, 206, 251, 68, 255, 142, 253, 201, 255, 125, 5, 74, 253, 52, 253, 86, 251, 108, 253, 98, 1, 73, 1, 254, 253, 201, 255, 225, 253, 110, 1, 9, 4, 158, 4, 110, 253, 65, 252, 179, 250, 201, 255, 72, 255, 93, 0, 163, 253, 226, 254, 106, 253, 148, 1, 193, 1, 59, 3, 226, 254, 162, 254, 17, 251, 116, 2, 50, 1, 227, 0, 240, 255, 147, 0, 145, 253, 186, 0, 155, 3, 98, 8, 94, 253, 134, 252, 186, 249, 69, 254, 28, 255, 83, 1, 143, 254, 234, 252, 103, 254, 231, 0, 86, 0, 189, 5, 64, 254, 187, 253, 219, 251, 82, 2, 194, 1, 79, 255, 132, 255, 86, 255, 65, 254, 159, 2, 135, 4, 124, 5, 36, 254, 101, 253, 25, 250, 179, 255, 118, 255, 204, 2, 79, 255, 140, 254, 131, 254, 195, 1, 166, 3, 147, 3, 6, 255, 80, 254, 202, 252, 16, 1, 60, 3, 190, 1, 26, 0, 19, 0, 225, 255, 186, 2, 156, 6, 120, 8, 122, 253, 47, 252, 124, 248, 77, 255, 39, 254, 12, 1, 133, 254, 23, 253, 77, 253, 11, 0, 127, 0, 9, 4, 24, 254, 107, 252, 199, 252, 61, 0, 67, 1, 135, 0, 147, 0, 111, 255, 82, 253, 173, 2, 18, 3, 146, 6, 6, 254, 176, 252, 239, 250, 35, 0, 90, 0, 222, 0, 233, 255, 166, 254, 98, 253, 199, 1, 79, 2, 7, 5, 53, 255, 175, 253, 194, 251, 140, 2, 96, 1, 181, 1, 39, 0, 63, 0, 55, 254, 73, 3, 241, 4, 57, 8, 248, 253, 142, 252, 208, 249, 184, 254, 57, 253, 141, 5, 172, 253, 170, 254, 186, 255, 209, 0, 173, 0, 136, 7, 89, 254, 170, 253, 103, 252, 165, 1, 93, 2, 218, 255, 254, 255, 11, 255, 129, 255, 128, 3, 177, 7, 111, 4, 133, 254, 250, 253, 213, 249, 173, 0, 118, 0, 241, 2, 201, 255, 131, 254, 204, 255, 217, 3, 253, 3, 241, 2, 254, 255, 221, 254, 133, 252, 241, 2, 224, 3, 167, 1, 8, 1, 131, 0, 60, 255, 127, 3, 226, 8, 239, 9, 133, 253, 192, 251, 61, 246, 239, 253, 42, 252, 14, 2, 4, 253, 194, 252, 220, 253, 76, 254, 60, 1, 87, 2, 93, 253, 84, 252, 22, 253, 199, 255, 236, 0, 245, 255, 55, 255, 175, 255, 226, 252, 16, 0, 77, 3, 22, 6, 31, 253, 39, 252, 68, 251, 44, 254, 17, 0, 34, 1, 233, 254, 184, 253, 68, 253, 183, 0, 54, 3, 193, 2, 247, 254, 20, 254, 93, 251, 165, 1, 152, 0, 212, 1, 122, 254, 166, 0, 244, 254, 39, 0, 14, 6, 76, 7, 133, 253, 58, 252, 221, 249, 59, 254, 20, 254, 142, 3, 228, 254, 253, 251, 181, 255, 75, 255, 123, 255, 60, 7, 67, 254, 144, 253, 106, 251, 164, 1, 111, 1, 207, 255, 123, 254, 44, 255, 87, 255, 195, 2, 49, 4, 184, 4, 229, 253, 58, 253, 87, 250, 83, 0, 93, 255, 228, 1, 20, 255, 225, 253, 157, 254, 82, 1, 151, 4, 46, 3, 10, 255, 203, 254, 66, 252, 94, 2, 248, 2, 60, 0, 166, 0, 248, 255, 93, 255, 206, 254, 57, 7, 3, 10, 21, 253, 255, 251, 9, 249, 93, 254, 66, 254, 209, 0, 50, 253, 202, 253, 234, 253, 6, 254, 181, 2, 89, 3, 49, 254, 71, 253, 198, 251, 69, 1, 175, 1, 50, 255, 241, 255, 248, 255, 5, 253, 33, 2, 151, 3, 238, 5, 157, 253, 241, 252, 223, 250, 0, 1, 201, 255, 208, 0, 91, 255, 164, 254, 106, 253, 65, 1, 168, 2, 162, 3, 186, 254, 83, 254, 73, 252, 228, 1, 190, 1, 58, 2, 59, 255, 72, 0, 183, 255, 141, 3, 175, 5, 205, 6, 205, 253, 31, 253, 74, 248, 132, 255, 96, 254, 206, 2, 34, 254, 108, 254, 198, 254, 240, 255, 190, 1, 100, 6, 217, 253, 231, 253, 18, 253, 198, 255, 126, 2, 214, 0, 55, 0, 71, 255, 241, 254, 124, 4, 21, 5, 188, 4, 29, 254, 97, 253, 16, 251, 117, 0, 29, 1, 31, 2, 52, 255, 121, 254, 145, 255, 1, 2, 2, 6, 86, 3, 142, 255, 66, 255, 46, 252, 109, 3, 83, 2, 208, 1, 4, 1, 4, 1, 201, 254, 236, 2, 235, 8, 168, 8, 251, 253, 79, 252, 133, 247, 186, 254, 60, 253, 122, 1, 212, 252, 77, 253, 24, 255, 208, 253, 175, 2, 129, 5, 36, 253, 78, 253, 188, 252, 153, 254, 133, 2, 130, 1, 247, 254, 62, 0, 90, 253, 145, 0, 108, 6, 184, 4, 213, 253, 36, 252, 47, 251, 178, 255, 14, 0, 114, 0, 185, 254, 154, 254, 23, 254, 136, 1, 165, 2, 185, 2, 55, 255, 20, 255, 140, 251, 181, 2, 193, 1, 178, 0, 13, 255, 0, 1, 79, 254, 99, 2, 105, 5, 152, 9, 156, 253, 123, 252, 72, 250, 205, 254, 239, 255, 243, 1, 197, 254, 101, 253, 2, 255, 0, 1, 172, 1, 183, 5, 26, 254, 90, 254, 224, 251, 143, 2, 114, 1, 18, 0, 154, 255, 71, 255, 236, 254, 243, 2, 42, 6, 55, 5, 24, 254, 165, 253, 118, 250, 182, 0, 163, 255, 102, 3, 183, 255, 54, 254, 164, 254, 67, 3, 94, 3, 189, 3, 230, 254, 179, 254, 22, 253, 35, 2, 71, 3, 172, 1, 17, 1, 167, 255, 13, 0, 172, 3, 172, 6, 16, 10, 94, 254, 196, 251, 34, 249, 212, 255, 154, 254, 3, 1, 15, 254, 125, 253, 208, 253, 99, 0, 45, 2, 193, 3, 91, 254, 2, 253, 107, 252, 39, 1, 70, 1, 184, 0, 175, 0, 15, 0, 142, 253, 20, 2, 110, 3, 189, 7, 69, 254, 0, 253, 5, 251, 221, 0, 156, 0, 12, 1, 39, 0, 149, 254, 7, 254, 183, 2, 4, 3, 116, 4, 94, 255, 53, 254, 112, 252, 197, 2, 188, 1, 146, 2, 25, 0, 47, 1, 200, 254, 244, 4, 130, 5, 179, 6, 215, 254, 2, 253, 212, 248, 249, 254, 148, 255, 46, 4, 106, 254, 243, 255, 127, 255, 57, 0, 182, 1, 174, 10, 138, 254, 25, 254, 189, 252, 48, 1, 184, 2, 164, 0, 104, 0, 21, 255, 5, 0, 75, 6, 108, 7, 119, 5, 27, 255, 186, 253, 211, 250, 149, 1, 192, 0, 49, 3, 169, 255, 74, 254, 111, 0, 4, 4, 175, 4, 225, 3, 68, 0, 81, 255, 90, 252, 9, 4, 93, 4, 195, 1, 222, 1, 200, 0, 8, 255, 79, 8, 136, 10, 250, 7, 189, 252, 213, 250, 173, 247, 225, 252, 76, 253, 210, 1, 212, 252, 248, 251, 43, 254, 146, 253, 32, 1, 152, 3, 67, 253, 183, 252, 210, 251, 101, 254, 0, 2, 8, 0, 122, 254, 165, 255, 24, 253, 226, 255, 19, 4, 137, 4, 202, 252, 132, 251, 124, 251, 218, 254, 210, 255, 110, 0, 101, 254, 138, 254, 90, 253, 214, 0, 19, 2, 156, 2, 106, 254, 92, 254, 86, 251, 231, 1, 232, 0, 47, 1, 194, 254, 91, 0, 40, 254, 123, 0, 208, 4, 141, 9, 46, 253, 72, 252, 41, 250, 30, 253, 93, 253, 52, 5, 225, 253, 162, 253, 45, 255, 161, 255, 158, 255, 228, 5, 219, 253, 254, 253, 87, 251, 217, 1, 211, 0, 73, 0, 224, 254, 144, 255, 123, 254, 25, 2, 52, 5, 234, 4, 201, 253, 13, 253, 247, 249, 71, 0, 229, 254, 120, 2, 86, 255, 31, 254, 19, 254, 169, 2, 234, 3, 49, 3, 156, 254, 181, 254, 147, 252, 163, 1, 194, 2, 90, 1, 241, 0, 222, 255, 186, 254, 121, 1, 158, 7, 91, 7, 41, 253, 205, 251, 167, 249, 23, 255, 225, 253, 116, 0, 244, 253, 218, 252, 183, 253, 183, 255, 222, 1, 217, 2, 224, 254, 99, 252, 137, 251, 173, 0, 191, 1, 204, 255, 68, 0, 27, 255, 162, 253, 193, 1, 17, 2, 5, 7, 177, 253, 149, 252, 173, 250, 183, 0, 112, 255, 68, 1, 153, 255, 60, 254, 102, 253, 111, 2, 232, 1, 152, 4, 18, 255, 1, 254, 20, 252, 70, 1, 40, 2, 202, 1, 136, 0, 108, 0, 193, 254, 114, 2, 63, 5, 91, 7, 22, 254, 122, 253, 62, 249, 70, 255, 63, 254, 216, 3, 30, 253, 180, 255, 86, 255, 218, 253, 243, 2, 0, 10, 16, 254, 2, 254, 77, 252, 210, 0, 182, 2, 204, 255, 84, 0, 190, 254, 57, 255, 66, 4, 89, 6, 200, 4, 136, 254, 165, 253, 140, 250, 87, 1, 74, 0, 120, 2, 81, 255, 10, 254, 224, 255, 204, 3, 52, 5, 222, 2, 52, 0, 217, 254, 167, 251, 41, 4, 150, 3, 160, 0, 137, 1, 107, 0, 115, 254, 190, 4, 89, 10, 205, 6, 136, 253, 79, 251, 157, 248, 49, 253, 235, 254, 97, 1, 117, 253, 144, 252, 134, 255, 45, 255, 209, 0, 58, 5, 206, 253, 54, 253, 221, 251, 48, 255, 132, 1, 159, 0, 192, 254, 195, 255, 217, 253, 37, 1, 68, 4, 163, 5, 120, 253, 159, 252, 27, 251, 207, 255, 113, 255, 49, 1, 111, 254, 29, 255, 183, 253, 49, 2, 20, 2, 159, 3, 139, 255, 69, 254, 92, 251, 251, 1, 180, 1, 36, 1, 177, 255, 233, 0, 54, 254, 159, 2, 1, 4, 92, 9, 135, 253, 182, 252, 11, 250, 204, 254, 226, 254, 128, 2, 139, 254, 147, 253, 105, 254, 162, 1, 253, 0, 25, 5, 197, 254, 187, 253, 143, 251, 60, 2, 173, 2, 231, 254, 61, 0, 188, 255, 141, 254, 223, 3, 77, 4, 218, 5, 19, 254, 85, 253, 174, 250, 209, 255, 164, 0, 192, 2, 0, 255, 198, 254, 244, 254, 119, 2, 181, 3, 28, 4, 138, 255, 164, 254, 191, 252, 68, 0, 156, 4, 56, 2, 152, 0, 117, 0, 34, 0, 89, 4, 110, 7, 191, 8, 167, 253, 65, 252, 86, 249, 113, 255, 23, 254, 224, 1, 180, 254, 113, 253, 194, 253, 54, 0, 97, 1, 168, 4, 50, 254, 116, 253, 228, 252, 150, 0, 37, 2, 112, 0, 195, 0, 145, 255, 253, 253, 167, 2, 84, 4, 111, 6, 210, 253, 19, 253, 63, 251, 247, 255, 16, 1, 85, 1, 203, 255, 247, 254, 233, 253, 233, 1, 75, 3, 18, 5, 136, 255, 30, 254, 248, 251, 120, 2, 31, 2, 152, 1, 179, 0, 50, 1, 242, 253, 100, 4, 184, 5, 196, 8, 95, 254, 238, 252, 230, 249, 32, 255, 128, 254, 84, 5, 135, 254, 53, 254, 231, 255, 129, 1, 233, 1, 126, 8, 180, 254, 117, 253, 195, 252, 32, 2, 41, 2, 61, 0, 22, 0, 143, 255, 167, 255, 104, 4, 189, 6, 244, 5, 40, 255, 139, 254, 139, 249, 161, 0, 60, 1, 140, 3, 91, 255, 34, 255, 189, 255, 82, 5, 151, 4, 21, 3, 73, 0, 4, 255, 1, 253, 226, 2, 164, 3, 104, 2, 106, 1, 246, 0, 130, 255, 19, 3, 94, 10, 211, 11, 77, 253, 174, 251, 114, 247, 203, 253, 180, 253, 12, 2, 178, 253, 45, 252, 22, 254, 249, 254, 141, 1, 214, 3, 191, 253, 187, 252, 79, 252, 234, 255, 179, 1, 207, 255, 66, 255, 138, 255, 139, 253, 168, 255, 216, 4, 233, 5, 132, 253, 229, 251, 5, 252, 221, 254, 189, 0, 3, 1, 255, 254, 42, 254, 139, 253, 145, 0, 177, 3, 126, 3, 186, 254, 148, 254, 186, 251, 31, 2, 4, 1, 118, 2, 54, 255, 189, 0, 47, 255, 101, 1, 99, 5, 43, 8, 199, 253, 205, 251, 87, 250, 54, 253, 17, 255, 151, 3, 92, 254, 63, 253, 172, 255, 147, 255, 142, 255, 103, 9, 99, 254, 239, 253, 103, 251, 226, 1, 112, 1, 131, 0, 70, 255, 184, 255, 125, 255, 93, 3, 231, 4, 196, 4, 157, 253, 110, 253, 195, 250, 227, 0, 135, 255, 119, 2, 80, 255, 23, 254, 38, 255, 233, 2, 151, 4, 189, 3, 191, 254, 108, 255, 88, 252, 159, 2, 198, 3, 216, 0, 84, 1, 253, 255, 113, 255, 213, 1, 56, 7, 133, 9, 39, 253, 63, 252, 109, 249, 43, 255, 2, 255, 65, 1, 1, 254, 74, 254, 247, 253, 130, 255, 213, 2, 135, 3, 172, 254, 83, 253, 248, 251, 60, 1, 224, 1, 20, 0, 23, 0, 167, 255, 217, 253, 97, 1, 27, 4, 253, 6, 224, 253, 11, 253, 172, 250, 42, 1, 231, 255, 180, 1, 156, 255, 120, 254, 249, 253, 211, 1, 242, 2, 54, 4, 46, 255, 114, 254, 202, 251, 108, 2, 146, 2, 118, 2], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE + 10240);
- allocate([33, 0, 147, 0, 78, 255, 153, 3, 151, 6, 129, 7, 187, 254, 240, 253, 70, 248, 2, 0, 227, 254, 142, 3, 141, 254, 22, 254, 26, 255, 0, 0, 85, 2, 218, 7, 16, 254, 117, 254, 190, 252, 37, 0, 177, 3, 245, 0, 181, 0, 96, 255, 112, 255, 201, 5, 93, 5, 77, 5, 157, 254, 167, 253, 10, 251, 42, 1, 66, 1, 160, 2, 63, 255, 176, 254, 77, 0, 65, 4, 253, 5, 154, 3, 177, 0, 217, 255, 155, 251, 228, 3, 13, 3, 24, 2, 200, 1, 110, 1, 80, 254, 135, 5, 136, 9, 231, 8, 46, 254, 10, 253, 235, 246, 209, 254, 3, 254, 131, 1, 41, 253, 211, 253, 66, 0, 111, 255, 131, 2, 224, 4, 224, 253, 92, 253, 108, 252, 31, 255, 94, 3, 76, 2, 104, 255, 40, 0, 235, 253, 167, 1, 143, 5, 22, 6, 196, 253, 181, 252, 135, 251, 128, 255, 85, 0, 205, 1, 18, 255, 255, 254, 184, 253, 93, 2, 236, 2, 93, 3, 24, 0, 54, 255, 127, 250, 29, 3, 231, 1, 47, 1, 75, 255, 108, 1, 74, 255, 104, 2, 98, 5, 126, 11, 18, 254, 172, 252, 95, 250, 220, 254, 61, 0, 44, 3, 172, 255, 45, 253, 74, 255, 43, 2, 20, 2, 226, 5, 147, 254, 19, 254, 223, 251, 54, 3, 76, 2, 11, 0, 242, 255, 238, 255, 26, 255, 233, 3, 121, 5, 171, 5, 38, 254, 199, 253, 244, 250, 46, 1, 62, 0, 38, 4, 186, 255, 136, 254, 34, 255, 214, 3, 206, 3, 125, 4, 60, 255, 22, 255, 229, 252, 223, 1, 74, 4, 243, 1, 106, 1, 58, 0, 70, 0, 123, 4, 21, 8, 41, 11, 25, 254, 146, 252, 224, 248, 73, 0, 224, 254, 92, 1, 154, 254, 12, 254, 4, 254, 199, 0, 209, 2, 218, 4, 178, 255, 71, 253, 229, 252, 105, 1, 24, 2, 196, 0, 118, 1, 110, 0, 33, 253, 79, 3, 27, 4, 104, 7, 146, 254, 55, 253, 98, 251, 59, 1, 64, 1, 173, 1, 72, 0, 41, 255, 62, 254, 247, 2, 118, 3, 83, 5, 226, 255, 84, 254, 190, 252, 93, 3, 115, 2, 28, 3, 118, 0, 212, 1, 233, 254, 75, 5, 91, 7, 101, 7, 68, 255, 126, 253, 180, 249, 63, 0, 81, 255, 174, 4, 94, 254, 45, 255, 51, 0, 158, 1, 75, 2, 41, 10, 22, 255, 211, 253, 166, 252, 168, 1, 121, 3, 222, 0, 136, 0, 155, 255, 83, 0, 133, 5, 230, 8, 103, 5, 172, 255, 67, 254, 147, 250, 158, 1, 57, 1, 21, 4, 29, 0, 169, 254, 65, 0, 16, 6, 111, 6, 212, 3, 183, 0, 165, 255, 195, 252, 249, 4, 133, 5, 104, 1, 41, 2, 16, 1, 149, 255, 51, 6, 77, 12, 43, 10, 104, 5, 29, 8, 92, 13, 244, 19, 86, 26, 186, 31, 135, 38, 84, 43, 170, 49, 133, 53, 61, 254, 215, 251, 239, 253, 231, 250, 62, 254, 12, 253, 15, 254, 161, 252, 128, 254, 149, 253, 99, 254, 99, 253, 195, 254, 230, 253, 181, 254, 212, 253, 98, 254, 4, 254, 88, 254, 134, 254, 238, 254, 188, 254, 78, 254, 154, 253, 30, 255, 12, 254, 24, 255, 254, 253, 249, 254, 135, 254, 214, 254, 102, 254, 105, 255, 58, 253, 82, 255, 206, 252, 107, 255, 100, 254, 100, 255, 83, 254, 224, 254, 50, 254, 70, 255, 53, 255, 86, 255, 210, 254, 65, 255, 191, 254, 125, 255, 109, 255, 215, 254, 117, 254, 28, 255, 42, 255, 11, 255, 64, 255, 189, 255, 196, 254, 185, 255, 185, 254, 152, 255, 51, 255, 162, 255, 73, 255, 113, 255, 218, 255, 63, 255, 161, 255, 16, 0, 180, 255, 132, 255, 8, 255, 23, 0, 19, 255, 24, 0, 12, 255, 18, 0, 120, 255, 44, 0, 145, 255, 223, 255, 232, 255, 231, 255, 0, 0, 149, 0, 19, 0, 23, 0, 113, 255, 158, 0, 87, 255, 174, 0, 75, 255, 133, 0, 201, 255, 165, 0, 230, 255, 111, 0, 84, 0, 98, 0, 75, 0, 87, 0, 183, 0, 141, 255, 245, 255, 248, 255, 130, 0, 11, 0, 170, 0, 254, 0, 77, 0, 205, 0, 17, 0, 183, 0, 112, 0, 6, 1, 194, 0, 202, 0, 31, 1, 95, 0, 189, 0, 214, 255, 151, 255, 234, 0, 179, 0, 39, 0, 186, 0, 163, 0, 89, 1, 76, 1, 199, 0, 43, 1, 161, 0, 202, 255, 29, 1, 178, 255, 25, 1, 123, 255, 141, 0, 74, 255, 111, 0, 249, 0, 85, 1, 15, 1, 108, 1, 93, 0, 147, 1, 75, 0, 135, 1, 92, 0, 254, 1, 118, 255, 220, 0, 71, 255, 227, 255, 222, 255, 105, 1, 141, 255, 64, 1, 3, 0, 42, 2, 99, 0, 30, 1, 218, 0, 79, 2, 11, 255, 150, 1, 244, 254, 197, 1, 0, 0, 68, 2, 25, 0, 94, 2, 19, 1, 20, 2, 148, 0, 194, 1, 183, 255, 227, 2, 227, 254, 6, 2, 224, 254, 94, 0, 53, 255, 162, 2, 116, 255, 182, 255, 205, 0, 202, 2, 142, 255, 43, 1, 176, 0, 155, 3, 182, 0, 45, 2, 240, 0, 193, 2, 240, 255, 1, 2, 229, 1, 81, 2, 37, 1, 128, 1, 195, 1, 105, 2, 218, 255, 50, 0, 51, 2, 17, 2, 47, 1, 209, 0, 203, 1, 107, 1, 177, 1, 196, 1, 194, 1, 198, 1, 111, 1, 94, 2, 221, 1, 229, 2, 176, 1, 97, 1, 112, 1, 11, 1, 105, 1, 204, 2, 17, 1, 71, 2, 197, 1, 166, 0, 254, 1, 172, 0, 201, 0, 117, 2, 18, 1, 191, 0, 56, 2, 127, 2, 46, 1, 42, 1, 122, 2, 131, 1, 131, 2, 94, 1, 75, 2, 48, 2, 100, 2, 53, 2, 88, 2, 20, 3, 231, 1, 160, 2, 0, 2, 247, 3, 65, 1, 77, 1, 101, 1, 86, 3, 131, 255, 157, 1, 218, 1, 200, 2, 17, 0, 105, 255, 52, 2, 29, 1, 14, 1, 15, 255, 203, 3, 121, 3, 233, 1, 220, 0, 254, 1, 128, 3, 37, 2, 156, 3, 71, 1, 57, 3, 34, 1, 143, 3, 28, 2, 84, 4, 158, 0, 37, 3, 199, 0, 189, 3, 255, 1, 218, 2, 100, 0, 106, 3, 13, 0, 23, 3, 179, 1, 120, 2, 164, 2, 204, 3, 249, 0, 132, 3, 211, 1, 194, 4, 13, 3, 50, 4, 73, 2, 17, 3, 233, 255, 157, 2, 11, 1, 19, 4, 107, 2, 60, 4, 103, 2, 121, 4, 110, 2, 137, 3, 148, 3, 25, 4, 80, 0, 75, 1, 72, 2, 51, 4, 89, 0, 127, 2, 220, 3, 193, 3, 2, 3, 208, 2, 30, 3, 187, 2, 236, 1, 191, 1, 131, 3, 115, 2, 15, 1, 164, 4, 213, 2, 53, 5, 87, 0, 91, 2, 64, 3, 67, 6, 104, 2, 103, 4, 122, 3, 225, 5, 232, 3, 132, 4, 98, 3, 241, 3, 227, 3, 59, 3, 125, 4, 90, 3, 49, 3, 170, 5, 5, 3, 40, 5, 244, 1, 109, 5, 56, 1, 129, 4, 236, 255, 60, 4, 64, 0, 3, 5, 2, 0, 148, 4, 143, 1, 77, 7, 2, 2, 170, 6, 246, 1, 100, 6, 118, 3, 242, 5, 160, 1, 88, 2, 107, 4, 70, 5, 251, 4, 110, 5, 121, 3, 3, 7, 146, 3, 230, 6, 227, 0, 159, 4, 226, 4, 34, 7, 249, 1, 62, 7, 151, 3, 49, 9, 57, 255, 175, 1, 152, 0, 199, 6, 43, 255, 228, 255, 136, 1, 54, 5, 103, 255, 204, 255, 210, 3, 127, 4, 189, 254, 112, 254, 45, 3, 167, 6, 120, 255, 84, 0, 169, 5, 223, 7, 181, 254, 113, 255, 119, 255, 168, 4, 0, 255, 22, 2, 99, 255, 7, 4, 205, 254, 73, 254, 30, 2, 219, 2, 183, 254, 92, 254, 159, 255, 104, 2, 150, 254, 88, 255, 190, 254, 110, 1, 9, 255, 146, 255, 45, 255, 89, 0, 60, 255, 203, 254, 20, 0, 59, 0, 148, 254, 49, 254, 226, 254, 89, 0, 176, 254, 175, 0, 80, 254, 141, 0, 133, 254, 66, 255, 78, 254, 60, 255, 177, 255, 150, 0, 234, 254, 29, 255, 232, 254, 166, 0, 213, 253, 90, 254, 101, 255, 29, 2, 146, 254, 54, 0, 227, 255, 173, 255, 211, 254, 250, 252, 186, 0, 116, 2, 115, 254, 248, 254, 242, 0, 37, 1, 59, 255, 183, 253, 124, 0, 154, 1, 53, 0, 123, 255, 10, 0, 84, 1, 198, 253, 215, 251, 65, 0, 66, 254, 68, 0, 19, 254, 127, 1, 169, 3, 155, 254, 57, 253, 153, 254, 6, 255, 91, 253, 212, 251, 36, 1, 230, 255, 107, 1, 6, 0, 95, 2, 33, 5, 129, 255, 246, 255, 233, 5, 94, 7, 201, 2, 204, 3, 189, 5, 133, 8, 163, 5, 224, 7, 161, 249, 192, 249, 252, 248, 14, 247, 253, 251, 22, 249, 180, 251, 23, 248, 3, 251, 148, 250, 169, 250, 2, 250, 77, 252, 75, 250, 52, 252, 12, 250, 25, 252, 58, 251, 4, 252, 108, 251, 209, 252, 37, 252, 32, 252, 165, 250, 64, 251, 18, 252, 247, 250, 186, 251, 24, 253, 12, 251, 13, 253, 243, 250, 162, 252, 101, 252, 119, 252, 40, 252, 90, 253, 229, 251, 83, 253, 230, 251, 193, 251, 39, 252, 218, 251, 89, 253, 35, 252, 127, 253, 153, 251, 48, 252, 6, 253, 114, 253, 134, 252, 218, 252, 191, 252, 189, 251, 62, 253, 139, 253, 147, 253, 218, 252, 128, 253, 212, 252, 249, 252, 134, 253, 245, 252, 225, 253, 28, 252, 203, 253, 205, 251, 188, 253, 222, 253, 157, 253, 196, 253, 149, 253, 8, 253, 222, 254, 145, 252, 242, 253, 201, 252, 50, 254, 229, 252, 3, 255, 215, 253, 97, 254, 179, 253, 73, 254, 235, 253, 172, 254, 76, 253, 89, 252, 7, 254, 252, 252, 66, 253, 149, 251, 249, 254, 206, 254, 53, 252, 29, 254, 67, 254, 182, 255, 213, 253, 220, 253, 154, 253, 127, 255, 75, 253, 22, 255, 116, 254, 10, 255, 37, 254, 6, 255, 247, 254, 108, 254, 136, 254, 254, 253, 95, 254, 2, 254, 212, 254, 199, 254, 178, 254, 104, 253, 49, 254, 210, 252, 126, 254, 64, 253, 175, 254, 153, 253, 22, 255, 55, 255, 23, 255, 17, 255, 89, 255, 201, 253, 53, 255, 149, 253, 109, 255, 97, 254, 141, 255, 160, 254, 90, 255, 18, 253, 85, 255, 7, 253, 242, 254, 145, 252, 248, 254, 121, 252, 145, 254, 24, 253, 43, 0, 37, 254, 14, 0, 115, 253, 43, 0, 98, 253, 11, 0, 64, 254, 197, 255, 247, 253, 130, 255, 137, 255, 101, 255, 155, 253, 214, 255, 161, 252, 229, 255, 93, 252, 136, 0, 29, 254, 183, 0, 44, 254, 55, 0, 214, 254, 55, 0, 208, 254, 57, 1, 159, 253, 57, 1, 48, 253, 66, 1, 89, 255, 100, 0, 227, 253, 253, 255, 137, 255, 145, 255, 69, 255, 233, 0, 20, 255, 4, 1, 22, 255, 26, 0, 91, 255, 134, 0, 211, 255, 216, 255, 219, 253, 104, 1, 53, 255, 122, 1, 124, 254, 194, 1, 129, 254, 19, 1, 20, 0, 182, 0, 153, 255, 246, 0, 145, 255, 175, 1, 37, 0, 206, 1, 110, 255, 231, 1, 99, 255, 228, 254, 197, 255, 247, 1, 72, 255, 24, 0, 53, 0, 253, 255, 54, 0, 122, 0, 3, 1, 77, 1, 66, 0, 228, 1, 104, 0, 180, 1, 68, 0, 195, 0, 116, 0, 190, 0, 206, 0, 13, 1, 247, 255, 226, 1, 96, 1, 126, 1, 29, 1, 143, 1, 21, 1, 196, 1, 0, 1, 69, 0, 186, 0, 13, 0, 41, 1, 243, 255, 3, 1, 161, 255, 30, 0, 56, 0, 138, 1, 196, 0, 169, 1, 205, 0, 200, 1, 25, 1, 65, 2, 15, 0, 191, 0, 119, 1, 34, 1, 151, 1, 64, 2, 200, 255, 227, 0, 32, 2, 149, 1, 0, 0, 37, 2, 164, 255, 16, 2, 27, 255, 95, 1, 11, 255, 82, 1, 150, 254, 179, 1, 167, 0, 15, 2, 181, 255, 46, 1, 91, 0, 56, 3, 129, 0, 87, 2, 240, 1, 167, 2, 186, 0, 237, 2, 153, 0, 225, 2, 231, 254, 88, 2, 164, 254, 103, 2, 20, 255, 1, 3, 41, 0, 113, 3, 38, 0, 122, 3, 36, 255, 73, 3, 155, 254, 115, 3, 119, 254, 135, 3, 134, 253, 218, 1, 68, 254, 82, 3, 81, 255, 166, 2, 19, 254, 242, 0, 249, 253, 17, 3, 54, 253, 70, 2, 227, 253, 110, 1, 225, 253, 178, 1, 171, 253, 244, 1, 3, 253, 222, 0, 66, 253, 149, 3, 25, 253, 194, 3, 155, 252, 245, 1, 125, 252, 36, 2, 133, 254, 200, 0, 77, 254, 157, 0, 205, 252, 214, 0, 163, 252, 157, 0, 154, 253, 40, 0, 136, 253, 94, 0, 141, 252, 202, 255, 27, 253, 4, 2, 11, 254, 42, 1, 154, 253, 85, 255, 154, 252, 95, 255, 159, 252, 233, 255, 206, 252, 93, 0, 9, 252, 245, 254, 106, 253, 153, 254, 219, 253, 2, 0, 70, 254, 135, 255, 135, 254, 0, 0, 29, 255, 33, 0, 98, 254, 130, 255, 127, 255, 212, 0, 90, 252, 34, 0, 198, 251, 230, 254, 161, 251, 244, 254, 58, 253, 199, 252, 92, 254, 65, 255, 204, 251, 96, 252, 107, 252, 163, 255, 140, 253, 154, 254, 97, 0, 7, 0, 50, 255, 119, 254, 155, 255, 24, 0, 53, 255, 38, 0, 88, 255, 83, 0, 169, 253, 89, 254, 233, 254, 170, 1, 68, 253, 118, 0, 181, 255, 206, 0, 43, 252, 95, 253, 88, 253, 161, 1, 145, 254, 37, 0, 233, 254, 218, 1, 127, 255, 194, 254, 63, 1, 40, 1, 142, 253, 217, 255, 87, 1, 90, 2, 72, 253, 217, 255, 209, 254, 172, 3, 104, 0, 233, 0, 132, 254, 137, 0, 220, 255, 13, 1, 181, 255, 42, 255, 120, 0, 43, 0, 239, 253, 35, 254, 203, 1, 164, 0, 54, 255, 27, 255, 207, 255, 89, 255, 97, 2, 24, 3, 98, 0, 36, 255, 147, 3, 148, 0, 37, 1, 27, 1, 101, 3, 91, 0, 63, 2, 138, 1, 70, 1, 178, 255, 205, 2, 67, 0, 109, 1, 189, 254, 104, 2, 220, 255, 219, 2, 27, 0, 107, 2, 238, 0, 120, 2, 17, 1, 192, 1, 99, 0, 33, 3, 220, 1, 101, 3, 17, 1, 173, 2, 64, 0, 21, 3, 72, 0, 253, 3, 217, 0, 25, 3, 203, 1, 222, 2, 104, 1, 134, 2, 224, 1, 104, 1, 66, 1, 173, 1, 208, 1, 126, 2, 174, 1, 244, 2, 107, 1, 232, 3, 148, 1, 171, 2, 16, 2, 90, 2, 103, 2, 143, 2, 157, 1, 178, 3, 175, 2, 169, 3, 90, 2, 136, 3, 92, 2, 43, 2, 225, 2, 18, 3, 150, 2, 211, 1, 142, 2, 106, 1, 77, 2, 161, 3, 198, 2, 242, 1, 222, 1, 159, 1, 164, 1, 181, 2, 115, 3, 45, 3, 171, 2, 13, 3, 157, 3, 145, 3, 171, 3, 214, 2, 220, 2, 235, 1, 85, 3, 19, 2, 180, 3, 222, 2, 195, 3, 59, 1, 40, 3, 249, 2, 243, 2, 120, 4, 248, 2, 143, 2, 52, 4, 58, 3, 33, 4, 67, 4, 70, 3, 235, 3, 40, 3, 23, 4, 109, 4, 147, 2, 77, 4, 224, 3, 26, 4, 50, 4, 51, 4, 203, 3, 182, 2, 202, 4, 30, 4, 59, 2, 73, 3, 116, 3, 124, 5, 99, 5, 72, 4, 56, 4, 93, 3, 207, 4, 223, 2, 4, 5, 248, 2, 248, 4, 223, 3, 87, 5, 29, 4, 233, 4, 188, 2, 26, 4, 22, 2, 220, 3, 197, 1, 240, 4, 87, 2, 116, 4, 167, 2, 85, 6, 47, 3, 104, 5, 9, 2, 37, 5, 137, 1, 28, 6, 37, 3, 168, 5, 174, 2, 44, 4, 136, 2, 107, 3, 51, 1, 59, 4, 105, 1, 23, 4, 61, 1, 137, 5, 196, 3, 163, 2, 59, 2, 128, 4, 79, 0, 90, 4, 209, 255, 250, 5, 55, 1, 185, 6, 58, 1, 142, 4, 177, 2, 2, 2, 162, 255, 93, 1, 26, 1, 132, 5, 72, 1, 1, 4, 231, 1, 191, 255, 57, 0, 37, 3, 202, 3, 36, 0, 62, 0, 1, 3, 249, 254, 23, 3, 166, 254, 125, 2, 187, 2, 119, 255, 108, 2, 22, 2, 29, 2, 33, 253, 194, 0, 199, 2, 44, 1, 244, 254, 161, 252, 158, 3, 1, 3, 60, 253, 84, 254, 250, 1, 174, 0, 132, 252, 138, 253, 179, 1, 35, 2, 101, 250, 254, 254, 109, 2, 215, 1, 6, 252, 168, 250, 119, 254, 9, 2, 104, 252, 82, 253, 231, 255, 20, 0, 42, 252, 124, 251, 84, 1, 9, 0, 234, 249, 145, 251, 160, 254, 48, 0, 213, 249, 110, 254, 137, 252, 6, 0, 124, 251, 136, 252, 220, 253, 160, 254, 149, 249, 112, 251, 97, 255, 98, 2, 24, 248, 61, 252, 31, 255, 193, 0, 136, 249, 88, 248, 11, 255, 19, 254, 60, 252, 112, 249, 88, 252, 133, 253, 237, 250, 48, 249, 148, 250, 164, 253, 252, 249, 189, 252, 139, 250, 121, 255, 204, 249, 222, 254, 122, 249, 56, 253, 37, 248, 160, 249, 129, 249, 229, 255, 46, 247, 213, 252, 123, 251, 184, 0, 15, 251, 189, 0, 169, 250, 74, 2, 37, 248, 201, 0, 234, 252, 200, 2, 70, 251, 3, 0, 247, 251, 40, 3, 29, 251, 62, 3, 145, 255, 123, 2, 156, 249, 191, 1, 49, 254, 75, 252, 67, 254, 96, 252, 8, 254, 118, 251, 11, 254, 69, 251, 144, 0, 161, 254, 140, 254, 228, 251, 229, 254, 221, 251, 233, 254, 157, 251, 193, 253, 98, 250, 181, 253, 178, 249, 89, 252, 40, 252, 229, 0, 178, 2, 103, 252, 49, 253, 109, 254, 82, 5, 83, 253, 47, 254, 106, 3, 141, 1, 3, 254, 210, 255, 61, 1, 54, 5, 27, 254, 200, 1, 45, 3, 183, 1, 101, 254, 83, 1, 130, 3, 43, 4, 87, 254, 46, 0, 161, 5, 241, 1, 115, 252, 224, 252, 185, 5, 22, 4, 2, 255, 191, 254, 150, 5, 141, 4, 68, 0, 94, 1, 10, 4, 154, 2, 114, 1, 11, 0, 31, 5, 22, 3, 143, 0, 232, 0, 17, 4, 26, 6, 142, 255, 151, 2, 80, 6, 54, 4, 198, 1, 67, 2, 251, 4, 16, 4, 180, 255, 141, 3, 240, 2, 43, 4, 153, 0, 0, 2, 92, 1, 190, 4, 102, 2, 129, 1, 51, 7, 40, 3, 13, 1, 10, 4, 203, 0, 62, 4, 140, 2, 249, 3, 247, 6, 106, 4, 173, 1, 47, 5, 131, 1, 104, 5, 207, 255, 159, 4, 184, 255, 191, 4, 96, 254, 233, 3, 32, 2, 213, 6, 160, 254, 199, 4, 10, 254, 175, 4, 179, 253, 57, 2, 29, 255, 94, 6, 114, 255, 42, 6, 26, 255, 179, 6, 54, 253, 8, 5, 186, 252, 118, 5, 107, 4, 77, 5, 48, 255, 208, 4, 181, 1, 197, 3, 95, 252, 50, 3, 43, 3, 130, 5, 91, 3, 227, 5, 164, 0, 188, 4, 107, 5, 1, 7, 228, 1, 82, 7, 200, 1, 15, 8, 228, 3, 146, 4, 46, 5, 122, 5, 36, 5, 80, 5, 111, 4, 238, 4, 210, 4, 82, 6, 81, 5, 232, 6, 141, 5, 203, 4, 48, 6, 67, 5, 86, 3, 160, 2, 149, 6, 30, 6, 115, 4, 246, 4, 224, 7, 33, 7, 237, 6, 45, 6, 252, 5, 180, 5, 207, 5, 178, 3, 123, 6, 253, 3, 208, 6, 188, 4, 112, 5, 209, 3, 236, 6, 137, 4, 34, 7, 140, 4, 182, 6, 149, 5, 181, 7, 55, 6, 161, 4, 96, 3, 84, 8, 37, 4, 7, 7, 46, 3, 46, 7, 245, 2, 56, 8, 35, 5, 6, 8, 234, 4, 65, 8, 147, 3, 27, 9, 162, 3, 187, 5, 123, 4, 30, 10, 159, 5, 197, 8, 208, 6, 42, 8, 84, 6, 54, 9, 174, 5, 106, 10, 226, 5, 84, 7, 45, 7, 22, 8, 183, 7, 203, 6, 41, 6, 170, 2, 9, 5, 48, 6, 253, 7, 174, 5, 50, 8, 194, 9, 212, 7, 151, 10, 18, 8, 214, 2, 52, 6, 196, 10, 32, 9, 228, 0, 79, 3, 152, 9, 123, 6, 36, 0, 45, 1, 150, 7, 165, 7, 66, 254, 160, 255, 106, 8, 116, 5, 253, 5, 77, 4, 14, 0, 96, 2, 101, 252, 36, 253, 103, 5, 190, 7, 65, 5, 184, 3, 88, 253, 65, 1, 1, 5, 244, 4, 198, 249, 109, 1, 173, 3, 178, 3, 55, 249, 202, 252, 70, 9, 227, 10, 29, 7, 228, 10, 236, 248, 29, 247, 169, 248, 23, 246, 152, 249, 200, 248, 97, 249, 44, 248, 60, 251, 136, 248, 59, 251, 198, 247, 233, 249, 204, 249, 219, 249, 236, 249, 85, 251, 177, 249, 56, 251, 65, 249, 177, 250, 129, 251, 176, 249, 100, 248, 6, 251, 145, 250, 231, 250, 133, 250, 185, 249, 101, 251, 116, 249, 225, 250, 93, 250, 58, 250, 169, 250, 126, 252, 24, 251, 221, 251, 205, 250, 146, 251, 42, 252, 147, 251, 131, 251, 32, 250, 200, 251, 228, 250, 4, 252, 97, 251, 44, 252, 50, 250, 57, 252, 41, 250, 36, 252, 102, 252, 233, 251, 203, 251, 186, 252, 101, 251, 166, 252, 58, 251, 149, 251, 239, 251, 216, 251, 1, 253, 152, 252, 123, 251, 67, 253, 144, 252, 62, 253, 118, 252, 250, 252, 8, 252, 190, 253, 200, 251, 223, 252, 58, 250, 177, 253, 169, 251, 176, 253, 134, 251, 55, 253, 148, 250, 128, 253, 160, 250, 171, 253, 221, 251, 96, 254, 121, 252, 82, 253, 192, 252, 107, 253, 60, 253, 68, 254, 156, 252, 22, 254, 103, 252, 138, 254, 248, 252, 149, 253, 110, 251, 183, 253, 219, 253, 255, 252, 229, 252, 77, 254, 109, 253, 238, 253, 27, 253, 14, 254, 187, 252, 155, 254, 171, 253, 233, 254, 153, 252, 13, 255, 137, 252, 230, 254, 103, 253, 232, 254, 101, 253, 91, 255, 208, 253, 118, 254, 121, 252, 150, 254, 102, 254, 64, 254, 185, 253, 103, 254, 194, 253, 199, 254, 155, 254, 131, 253, 220, 253, 198, 253, 76, 254, 128, 252, 8, 254, 130, 254, 11, 253, 198, 255, 31, 254, 91, 255, 150, 253, 65, 255, 138, 254, 22, 255, 130, 254, 34, 255, 85, 253, 231, 255, 32, 254, 94, 254, 153, 254, 38, 253, 159, 254, 188, 254, 99, 255, 80, 254, 190, 254, 118, 254, 209, 254, 228, 254, 152, 255, 167, 253, 223, 254, 212, 253, 60, 255, 180, 253, 106, 255, 109, 253, 160, 253, 39, 254, 232, 255, 188, 255, 64, 254, 38, 254, 248, 255, 6, 254, 211, 255, 20, 253, 72, 255, 180, 252, 4, 255, 123, 252, 165, 255, 184, 253, 159, 255, 116, 253, 138, 0, 4, 253, 125, 255, 90, 253, 244, 255, 98, 253, 165, 0, 253, 254, 253, 255, 184, 252, 149, 255, 115, 252, 37, 0, 32, 252, 44, 0, 170, 252, 97, 254, 185, 252, 13, 0, 23, 252, 241, 254, 254, 251, 203, 254, 226, 252, 34, 254, 192, 252, 24, 254, 81, 252, 168, 0, 168, 251, 125, 254, 95, 251, 155, 255, 97, 251, 216, 255, 83, 252, 196, 254, 250, 251, 254, 252, 236, 251, 143, 253, 199, 251, 230, 253, 56, 251, 213, 254, 224, 250, 76, 254, 83, 251, 105, 253, 113, 251, 95, 255, 64, 251, 78, 253, 43, 251, 193, 252, 104, 250, 48, 253, 133, 250, 19, 254, 126, 252, 28, 253, 102, 252, 223, 252, 178, 251, 110, 254, 213, 249, 60, 252, 219, 251, 130, 253, 11, 251, 98, 250, 37, 250, 90, 252, 34, 250, 129, 252, 194, 249, 204, 253, 69, 249, 51, 253, 162, 253, 171, 253, 114, 251, 195, 251, 167, 250, 44, 254, 102, 248, 43, 250, 210, 248, 71, 252, 116, 248, 93, 252, 37, 250, 68, 255, 157, 249, 91, 254, 79, 250, 174, 254, 88, 250, 234, 255, 106, 248, 90, 254, 42, 248, 7, 255, 16, 254, 142, 255, 138, 248, 13, 253, 247, 250, 174, 0, 85, 250, 147, 255, 30, 254, 255, 254, 59, 251, 4, 254, 175, 249, 151, 0, 98, 249, 208, 0, 114, 253, 107, 0, 141, 249, 29, 0, 139, 251, 23, 1, 65, 251, 50, 1, 52, 251, 6, 254, 38, 253, 81, 255, 44, 251, 155, 255, 55, 252, 39, 2, 154, 252, 22, 1, 201, 252, 59, 1, 205, 253, 120, 1, 229, 251, 228, 0, 5, 254, 24, 1, 169, 253, 25, 1, 10, 253, 253, 0, 207, 254, 123, 1, 13, 253, 122, 255, 157, 253, 148, 2, 200, 252, 24, 2, 207, 252, 134, 2, 99, 254, 49, 0, 171, 254, 177, 0, 59, 254, 14, 2, 30, 254, 77, 2, 185, 255, 83, 1, 111, 253, 8, 1, 12, 255, 39, 1, 19, 255, 59, 1, 125, 254, 57, 2, 6, 254, 247, 255, 135, 254, 14, 0, 96, 255, 149, 2, 40, 255, 40, 0, 204, 254, 210, 255, 95, 0, 214, 0, 14, 255, 167, 0, 170, 255, 192, 0, 200, 255, 27, 0, 180, 255, 31, 0, 36, 0, 53, 1, 150, 255, 74, 255, 143, 255, 74, 0, 71, 254, 234, 255, 23, 0, 139, 0, 81, 0, 245, 255, 44, 0, 15, 0, 169, 255, 119, 255, 138, 255, 49, 255, 98, 255, 198, 255, 16, 1, 164, 255, 100, 255, 71, 254, 8, 0, 120, 255, 128, 0, 35, 255, 101, 0, 38, 255, 40, 0, 59, 255, 180, 255, 56, 254, 9, 0, 67, 254, 33, 0, 89, 254, 226, 0, 60, 0, 73, 0, 34, 255, 156, 0, 113, 254, 24, 1, 194, 254, 245, 0, 171, 254, 166, 0, 13, 254, 83, 1, 66, 255, 71, 1, 37, 255, 69, 1, 119, 255, 167, 255, 172, 253, 100, 0, 141, 253, 144, 0, 91, 253, 231, 1, 28, 0, 252, 0, 121, 254, 214, 0, 215, 255, 26, 1, 228, 255, 99, 0, 226, 254, 75, 1, 49, 0, 203, 1, 124, 254, 53, 2, 143, 254, 180, 1, 28, 0, 80, 1, 247, 255, 141, 1, 89, 255, 106, 2, 34, 0, 84, 2, 239, 255, 49, 2, 116, 255, 43, 1, 79, 0, 10, 2, 125, 0, 203, 0, 2, 0, 244, 0, 32, 1, 255, 0, 211, 0, 175, 0, 82, 0, 84, 2, 187, 0, 5, 2, 108, 0, 125, 1, 255, 0, 109, 1, 41, 1, 241, 1, 96, 1, 71, 1, 174, 255, 25, 0, 210, 0, 115, 1, 245, 0, 5, 1, 3, 0, 33, 2, 193, 1, 140, 0, 38, 1, 44, 0, 39, 1, 212, 0, 91, 1, 244, 0, 238, 1, 75, 1, 16, 2, 201, 0, 51, 1, 93, 1, 155, 1, 101, 2, 28, 1, 102, 2, 157, 1, 208, 1, 66, 1, 112, 2, 141, 1, 97, 0, 200, 0, 96, 255, 128, 1, 149, 0, 106, 1, 239, 1, 13, 2, 13, 1, 73, 2, 33, 0, 235, 1, 135, 255, 177, 1, 171, 1, 99, 2, 242, 1, 4, 2, 171, 0, 187, 1, 241, 1, 154, 2, 184, 1, 19, 1, 54, 2, 63, 2, 146, 0, 127, 2, 155, 0, 158, 2, 223, 255, 173, 0, 212, 0, 184, 2, 90, 255, 89, 2, 65, 255, 183, 2, 23, 254, 247, 1, 175, 0, 230, 2, 214, 0, 220, 1, 116, 1, 59, 4, 66, 2, 18, 2, 74, 2, 9, 3, 169, 1, 106, 3, 59, 1, 73, 3, 118, 1, 80, 3, 91, 255, 53, 2, 35, 0, 223, 3, 217, 255, 38, 4, 73, 1, 200, 2, 18, 3, 72, 3, 133, 2, 27, 3, 149, 2, 164, 2, 59, 2, 150, 3, 120, 2, 55, 4, 161, 2, 49, 3, 62, 1, 132, 1, 106, 3, 244, 3, 52, 2, 80, 3, 112, 3, 108, 2, 45, 2, 223, 1, 159, 2, 197, 1, 180, 2, 212, 1, 72, 3, 130, 2, 76, 3, 133, 2, 250, 1, 172, 1, 129, 3, 55, 2, 69, 3, 131, 1, 194, 3, 243, 1, 179, 2, 49, 2, 171, 3, 158, 3, 15, 3, 40, 1, 22, 3, 12, 1, 4, 4, 18, 2, 106, 3, 73, 1, 36, 2, 143, 0, 163, 2, 35, 1, 247, 1, 66, 0, 17, 4, 103, 1, 18, 3, 97, 0, 37, 3, 33, 0, 69, 3, 214, 1, 255, 1, 49, 0, 68, 4, 71, 1, 150, 4, 67, 1, 3, 0, 242, 0, 104, 3, 218, 1, 177, 2, 173, 1, 49, 5, 166, 2, 18, 4, 108, 2, 85, 4, 152, 2, 65, 1, 193, 0, 121, 3, 182, 3, 129, 4, 106, 3, 125, 3, 123, 2, 109, 3, 94, 3, 180, 3, 145, 3, 13, 5, 153, 2, 40, 5, 127, 2, 229, 3, 25, 3, 122, 5, 6, 4, 152, 4, 244, 3, 86, 4, 191, 3, 130, 5, 157, 3, 123, 5, 147, 3, 31, 2, 94, 3, 92, 4, 198, 4, 67, 3, 166, 4, 67, 3, 166, 4, 191, 3, 124, 4, 123, 4, 96, 5, 20, 5, 169, 4, 135, 5, 207, 4, 55, 5, 61, 5, 234, 2, 68, 4, 175, 6, 3, 5, 109, 5, 49, 4, 54, 5, 30, 6, 129, 4, 195, 5, 109, 6, 113, 4, 33, 7, 196, 4, 32, 4, 102, 5, 241, 5, 194, 6, 96, 6, 9, 6, 84, 6, 6, 6, 87, 3, 60, 6, 97, 3, 131, 6, 181, 2, 117, 3, 180, 6, 239, 5, 143, 4, 16, 5, 161, 8, 224, 6, 160, 7, 213, 5, 228, 7, 202, 5, 254, 5, 74, 7, 158, 6, 216, 7, 30, 6, 236, 2, 225, 6, 57, 3, 38, 1, 112, 5, 60, 4, 10, 8, 109, 2, 35, 5, 109, 1, 7, 5, 198, 0, 4, 4, 232, 1, 128, 5, 249, 0, 147, 1, 246, 3, 25, 6, 68, 1, 107, 1, 109, 6, 20, 4, 193, 0, 111, 1, 242, 7, 67, 7, 5, 255, 67, 2, 238, 2, 226, 3, 13, 255, 30, 0, 45, 5, 111, 3, 228, 255, 87, 255, 112, 2, 149, 3, 59, 254, 159, 0, 186, 0, 90, 5, 154, 253, 6, 0, 25, 2, 136, 1, 162, 255, 221, 254, 13, 3, 229, 0, 128, 255, 214, 254, 245, 0, 235, 1, 67, 253, 120, 253, 204, 3, 21, 3, 11, 254, 128, 253, 178, 0, 255, 0, 147, 254, 122, 254, 1, 255, 61, 1, 66, 252, 218, 254, 65, 255, 228, 0, 249, 252, 65, 254, 157, 0, 19, 255, 111, 253, 48, 253, 105, 254, 92, 0, 139, 255, 157, 253, 78, 1, 26, 255, 89, 253, 196, 251, 112, 255, 195, 254, 123, 252, 163, 252, 30, 253, 152, 254, 171, 255, 41, 253, 166, 255, 237, 252, 100, 0, 234, 255, 121, 254, 249, 254, 200, 255, 183, 255, 175, 254, 14, 253, 5, 0, 67, 255, 62, 253, 144, 253, 89, 0, 168, 254, 121, 255, 167, 251, 159, 254, 19, 255, 84, 253, 145, 251, 237, 254, 178, 251, 243, 254, 77, 251, 152, 0, 145, 0, 46, 253, 48, 251, 49, 0, 80, 0, 32, 251, 248, 252, 8, 255, 135, 1, 36, 253, 221, 253, 213, 1, 218, 0, 1, 255, 160, 252, 69, 0, 110, 1, 90, 255, 27, 254, 80, 253, 191, 0, 68, 251, 84, 251, 86, 255, 87, 255, 228, 250, 161, 249, 65, 1, 214, 1, 117, 250, 37, 251, 192, 255, 16, 1, 175, 250, 8, 255, 236, 1, 53, 2, 47, 253, 159, 253, 195, 0, 229, 1, 195, 253, 123, 255, 171, 1, 202, 0, 85, 255, 138, 255, 199, 0, 63, 2, 2, 0, 225, 255, 182, 2, 243, 2, 170, 250, 217, 255, 40, 2, 45, 2, 23, 254, 15, 1, 168, 2, 25, 2, 13, 0, 59, 254, 87, 3, 186, 3, 123, 255, 204, 255, 175, 255, 226, 2, 111, 251, 125, 2, 31, 4, 35, 4, 161, 255, 164, 2, 235, 4, 57, 4, 233, 1, 49, 1, 63, 254, 186, 3, 234, 253, 228, 3, 55, 252, 98, 3, 222, 251, 35, 4, 242, 250, 106, 2, 120, 250, 105, 2, 54, 254, 86, 5, 97, 255, 29, 7, 250, 252, 240, 253, 242, 255, 86, 4, 78, 251, 123, 252, 252, 252, 177, 1, 24, 251, 25, 251, 13, 252, 210, 254, 166, 253, 183, 253, 9, 253, 174, 249, 8, 253, 243, 249, 184, 252, 127, 248, 208, 252, 229, 253, 23, 249, 69, 247, 29, 255, 220, 255, 14, 248, 217, 248, 197, 247, 154, 251, 89, 246, 232, 248, 66, 250, 252, 0, 115, 245, 97, 254, 197, 253, 45, 254, 229, 5, 18, 6, 132, 8, 183, 7, 22, 9, 228, 7, 191, 248, 111, 249, 191, 248, 37, 249, 248, 247, 130, 251, 170, 247, 138, 249, 173, 249, 181, 251, 88, 249, 149, 251, 191, 250, 184, 249, 177, 250, 154, 249, 198, 250, 243, 250, 211, 250, 15, 251, 128, 249, 143, 249, 49, 250, 173, 252, 190, 250, 216, 248, 123, 250, 116, 247, 254, 250, 87, 253, 7, 249, 143, 249, 58, 252, 198, 251, 97, 251, 116, 249, 226, 251, 207, 251, 138, 251, 122, 251, 73, 251, 24, 253, 6, 251, 27, 252, 90, 252, 153, 250, 97, 252, 120, 250, 14, 252, 231, 250, 241, 252, 69, 252, 231, 251, 124, 252, 31, 252, 207, 252, 31, 253, 201, 252, 52, 252, 91, 251, 30, 253, 186, 251, 30, 253, 126, 251, 240, 252, 223, 252, 214, 252, 238, 252, 132, 252, 248, 253, 24, 252, 206, 252, 124, 253, 59, 252, 191, 253, 142, 252, 227, 253, 74, 253, 97, 253, 107, 252, 173, 253, 126, 253, 122, 253, 153, 253, 68, 252, 147, 253, 99, 252, 253, 253, 41, 253, 29, 254, 209, 252, 27, 254, 184, 252, 190, 253, 72, 254, 55, 253, 190, 253, 187, 254, 111, 253, 98, 253, 126, 254, 198, 253, 71, 254, 102, 253, 254, 253, 237, 252, 120, 254, 239, 253, 246, 253, 59, 254, 25, 254, 89, 254, 152, 253, 183, 253, 151, 253, 99, 255, 106, 253, 244, 254, 88, 253, 164, 254, 190, 254, 189, 254, 136, 253, 68, 254, 208, 254, 82, 254, 180, 254, 54, 254, 235, 254, 44, 254, 109, 253, 231, 252, 193, 254, 132, 253, 29, 255, 214, 253, 139, 254, 165, 254, 178, 254, 46, 255, 56, 254, 64, 255, 238, 253, 14, 255, 40, 255, 58, 255, 146, 254, 142, 254, 174, 254, 95, 255, 103, 254, 20, 253, 149, 255, 132, 254, 218, 254, 125, 253, 33, 255, 103, 253, 22, 255, 27, 253, 115, 255, 16, 254, 126, 255, 2, 254, 117, 255, 185, 254, 84, 255, 207, 254, 206, 254, 188, 253, 92, 255, 249, 254, 250, 254, 84, 255, 189, 255, 110, 254, 31, 0, 146, 254, 246, 255, 76, 254, 170, 255, 241, 253, 71, 0, 135, 254, 234, 255, 159, 253, 244, 255, 90, 253, 189, 255, 193, 254, 63, 0, 65, 255, 35, 0, 75, 255, 217, 255, 14, 255, 126, 0, 89, 255, 116, 255, 224, 253, 155, 0, 215, 254, 174, 0, 215, 254, 38, 0, 248, 255, 117, 0, 132, 254, 197, 0, 60, 254, 240, 0, 246, 253, 223, 0, 153, 255, 110, 0, 69, 255, 87, 0, 101, 255, 169, 0, 209, 255, 157, 0, 26, 0, 173, 255, 156, 255, 128, 0, 80, 0, 209, 0, 194, 255, 6, 0, 7, 0, 22, 0, 5, 0, 62, 1, 236, 255, 248, 0, 211, 255, 56, 255, 193, 255, 156, 0, 187, 255, 250, 0, 73, 255, 113, 1, 130, 255, 143, 255, 180, 255, 114, 255, 134, 255, 192, 255, 2, 255, 225, 255, 35, 0, 79, 255, 185, 255, 249, 255, 171, 0, 93, 0, 27, 0, 108, 0, 212, 0, 182, 254, 47, 255, 133, 255, 186, 255, 233, 254, 95, 0, 160, 255, 20, 0, 68, 255, 195, 255, 198, 254, 87, 0, 212, 254, 178, 255, 158, 254, 122, 255, 11, 0, 122, 0, 116, 255, 122, 0, 237, 254, 152, 0, 219, 254, 140, 0, 174, 255, 138, 0, 191, 254, 145, 255, 32, 254, 100, 255, 153, 254, 76, 0, 2, 255, 216, 255, 133, 253, 160, 255, 246, 253, 79, 0, 5, 254, 8, 0, 244, 254, 47, 1, 229, 253, 68, 0, 66, 254, 61, 0, 246, 253, 50, 1, 111, 0, 189, 0, 77, 254, 122, 0, 133, 254, 166, 0, 197, 253, 114, 254, 136, 253, 182, 255, 21, 253, 161, 255, 57, 254, 194, 0, 72, 252, 83, 0, 226, 252, 192, 0, 13, 253, 192, 0, 243, 252, 94, 255, 149, 253, 234, 0, 105, 253, 215, 254, 24, 254, 147, 255, 60, 252, 124, 255, 186, 252, 188, 255, 181, 252, 58, 0, 168, 251, 170, 255, 219, 252, 213, 254, 80, 252, 3, 255, 246, 252, 206, 255, 59, 252, 219, 253, 160, 254, 158, 255, 32, 252, 169, 254, 163, 251, 197, 254, 163, 251, 205, 254, 125, 251, 138, 254, 131, 253, 26, 255, 114, 251, 213, 255, 237, 250, 156, 255, 99, 252, 119, 254, 6, 251, 168, 253, 79, 253, 126, 255, 57, 250, 200, 254, 215, 250, 2, 255, 72, 250, 70, 254, 244, 250, 155, 253, 19, 251, 9, 254, 35, 250, 144, 254, 214, 250, 26, 0, 104, 250, 190, 255, 49, 249, 95, 255, 148, 249, 45, 254, 32, 249, 220, 253, 143, 250, 200, 253, 236, 249, 153, 252, 41, 250, 246, 251, 149, 250, 197, 253, 131, 248, 240, 253, 9, 249, 133, 255, 151, 248, 25, 255, 250, 247, 189, 254, 252, 247, 118, 252, 72, 248, 201, 253, 131, 248, 148, 253, 1, 248, 35, 252, 203, 251, 142, 254, 17, 248, 64, 253, 205, 246, 19, 253, 76, 245, 191, 251, 139, 248, 159, 0, 36, 248, 248, 0, 142, 253, 133, 255, 221, 246, 62, 252, 99, 253, 104, 254, 157, 250, 106, 251, 60, 254, 148, 254, 236, 251, 33, 253, 124, 255, 183, 0, 172, 249, 16, 253, 221, 253, 205, 254, 247, 252, 19, 251, 158, 255, 41, 0, 144, 252, 189, 251, 255, 254, 97, 0, 190, 249, 215, 248, 31, 0, 230, 255, 124, 253, 207, 253, 76, 255, 222, 253, 127, 254, 185, 251, 102, 254, 222, 252, 98, 254, 197, 252, 55, 254, 54, 252, 22, 254, 171, 251, 41, 255, 108, 252, 112, 255, 87, 252, 19, 254, 11, 251, 251, 253, 29, 250, 181, 0, 101, 0, 180, 254, 135, 252, 188, 252, 87, 252, 209, 253, 83, 254, 139, 253, 221, 253, 73, 255, 175, 254, 223, 253, 174, 255, 6, 255, 226, 254, 5, 0, 124, 255, 164, 254, 4, 255, 219, 254, 40, 254, 98, 255, 100, 0, 227, 255, 197, 0, 20, 255, 88, 254, 163, 252, 43, 255, 116, 255, 249, 255, 85, 254, 69, 254, 187, 0, 159, 255, 84, 253, 32, 253, 219, 254, 2, 1, 144, 254, 104, 255, 106, 255, 136, 1, 159, 253, 175, 0, 114, 255, 43, 1, 118, 255, 152, 0, 137, 255, 73, 1, 26, 254, 204, 255, 37, 1, 198, 0, 73, 255, 117, 0, 175, 0, 75, 1, 198, 255, 238, 254, 231, 0, 44, 1, 224, 254, 74, 1, 207, 254, 116, 1, 145, 255, 153, 1, 247, 255, 167, 1, 83, 0, 0, 1, 67, 0, 111, 1, 237, 255, 248, 0, 91, 0, 113, 0, 221, 255, 150, 1, 65, 255, 154, 0, 238, 0, 40, 1, 5, 0, 197, 0, 141, 0, 221, 0, 57, 1, 198, 0, 211, 0, 165, 1, 244, 0, 78, 1, 88, 0, 170, 1, 13, 255, 198, 1, 202, 0, 40, 2, 251, 255, 147, 1, 35, 1, 185, 0, 219, 0, 45, 1, 251, 0, 138, 0, 128, 0, 69, 0, 197, 0, 32, 1, 116, 255, 195, 255, 188, 0, 105, 1, 197, 0, 86, 2, 186, 1, 17, 1, 34, 1, 143, 0, 216, 1, 226, 1, 157, 0, 114, 1, 159, 1, 65, 1, 116, 1, 129, 1, 146, 1, 40, 2, 155, 0, 24, 0, 38, 2, 7, 1, 245, 255, 21, 0, 104, 1, 227, 0, 147, 0, 2, 255, 168, 1, 97, 0, 110, 1, 243, 255, 119, 1, 141, 0, 193, 1, 232, 0, 140, 1, 251, 1, 218, 1, 16, 1, 189, 2, 68, 1, 106, 1, 209, 255, 75, 2, 148, 0, 31, 2, 69, 0, 144, 1, 205, 255, 49, 2, 59, 0, 220, 0, 246, 255, 96, 1, 147, 0, 206, 0, 211, 0, 141, 2, 185, 0, 51, 2, 41, 1, 53, 2, 28, 1, 82, 2, 121, 0, 254, 2, 192, 0, 142, 1, 118, 0, 130, 2, 178, 1, 233, 0, 8, 1, 225, 1, 211, 1, 129, 0, 91, 255, 187, 2, 239, 0, 90, 0, 26, 0, 86, 1, 218, 1, 201, 255, 27, 0, 132, 1, 94, 0, 84, 255, 0, 0, 213, 2, 123, 1, 196, 255, 81, 1, 114, 1, 209, 1, 95, 0, 63, 1, 38, 3, 83, 2, 78, 0, 4, 1, 241, 1, 83, 3, 210, 0, 48, 2, 202, 1, 62, 2, 48, 254, 202, 0, 241, 1, 113, 2, 54, 255, 152, 0, 48, 0, 200, 2, 236, 255, 54, 2, 100, 0, 203, 2, 199, 1, 212, 1, 155, 1, 93, 2, 63, 1, 134, 2, 195, 0, 103, 2, 145, 1, 26, 2, 168, 2, 227, 2, 201, 0, 155, 2, 178, 1, 186, 3, 198, 1, 169, 1, 134, 2, 235, 1, 94, 2, 169, 2, 160, 1, 252, 1, 241, 1, 54, 3, 170, 1, 47, 3, 148, 2, 135, 2, 116, 2, 204, 2, 185, 2, 210, 1, 106, 2, 201, 1, 173, 2, 204, 1, 109, 1, 53, 1, 209, 2, 55, 2, 68, 3, 89, 2, 97, 2, 44, 1, 57, 3, 203, 1, 175, 3, 175, 2, 169, 2, 21, 2, 147, 3, 86, 2, 79, 2, 243, 0, 108, 3, 195, 1, 106, 3, 164, 1, 18, 3, 61, 1, 220, 2, 220, 0, 154, 3, 61, 1, 84, 4, 111, 1, 19, 2, 210, 1, 4, 4, 137, 2, 29, 4, 103, 2, 10, 4, 41, 2, 61, 3, 90, 2, 253, 3, 31, 3, 159, 3, 35, 3, 110, 3, 251, 2, 31, 3, 240, 1, 93, 5, 5, 3, 73, 2, 2, 3, 35, 3, 162, 3, 75, 4, 25, 3, 198, 4, 94, 3, 185, 4, 127, 3, 1, 4, 215, 2, 4, 3, 77, 3, 148, 4, 91, 4, 99, 3, 253, 3, 62, 3, 245, 3, 73, 3, 142, 3, 250, 1, 191, 2, 215, 4, 53, 4, 108, 2, 51, 3, 172, 4, 59, 4, 131, 4, 57, 4, 118, 4, 139, 3, 11, 6, 97, 4, 29, 5, 136, 2, 63, 5, 100, 2, 204, 5, 220, 3, 199, 5, 169, 3, 217, 3, 48, 5, 187, 3, 61, 5, 173, 1, 142, 3, 73, 3, 58, 5, 52, 2, 155, 4, 156, 1, 132, 4, 147, 5, 40, 5, 154, 5, 50, 5, 128, 2, 248, 2, 190, 6, 130, 5, 190, 0, 43, 2, 49, 4, 237, 3, 170, 1, 1, 1, 71, 3, 212, 3, 235, 0, 231, 0, 240, 5, 143, 4, 109, 0, 37, 1, 246, 3, 33, 6, 49, 1, 142, 0, 124, 4, 27, 2, 221, 254, 148, 255, 189, 4, 204, 3, 22, 0, 40, 255, 155, 2, 60, 3, 30, 254, 182, 1, 197, 1, 151, 5, 187, 253, 90, 254, 21, 3, 131, 1, 154, 254, 58, 254, 174, 0, 12, 3, 220, 255, 140, 254, 134, 1, 122, 255, 139, 253, 160, 0, 206, 254, 239, 2, 22, 251, 181, 254, 177, 0, 10, 2, 8, 255, 62, 2, 5, 255, 127, 2, 237, 253, 151, 1, 172, 253, 138, 1, 93, 254, 21, 3, 151, 253, 33, 3, 38, 252, 143, 1, 167, 252, 215, 2, 249, 255, 6, 2, 65, 253, 54, 1, 137, 251, 232, 255, 22, 252, 31, 1, 64, 252, 107, 1, 237, 250, 56, 1, 2, 250, 245, 0, 235, 249, 49, 1, 28, 0, 153, 0, 165, 252, 81, 255, 223, 255, 76, 1, 138, 250, 102, 255, 212, 0, 154, 1, 175, 253, 59, 255, 188, 251, 64, 253, 120, 252, 191, 255, 26, 1, 111, 1, 106, 252, 82, 253, 89, 1, 93, 0, 254, 254, 155, 254, 184, 2, 132, 2, 75, 253, 228, 255, 192, 1, 237, 1, 239, 254, 193, 0, 15, 2, 34, 2, 13, 255, 255, 253, 128, 1, 120, 255, 17, 1, 159, 254, 0, 2, 114, 255, 25, 2, 58, 255, 173, 3, 238, 2, 83, 0, 248, 0, 66, 2, 93, 3, 200, 255, 80, 2, 74, 3, 44, 0, 124, 3, 24, 0, 33, 0, 122, 3, 240, 255, 214, 3, 63, 3, 118, 5, 255, 5, 106, 7, 180, 6, 96, 5, 156, 7, 185, 5, 22, 252, 95, 252, 184, 251, 77, 251, 127, 253, 93, 252, 164, 253, 63, 252, 245, 252, 95, 253, 189, 252, 236, 252, 96, 254, 104, 253, 54, 254, 2, 253, 116, 253, 247, 253, 106, 253, 17, 254, 1, 252, 3, 254, 1, 252, 84, 254, 68, 254, 216, 253, 144, 254, 63, 254, 33, 254, 45, 255, 226, 251, 121, 252, 196, 254, 7, 255, 199, 253, 177, 253, 199, 253, 237, 254, 227, 253, 65, 255, 52, 253, 68, 255, 182, 252, 248, 254, 179, 254, 8, 255, 194, 254, 28, 255, 237, 254, 1, 0, 201, 253, 28, 255, 141, 255, 35, 255, 18, 255, 138, 254, 59, 255, 5, 254, 34, 255, 189, 253, 254, 254, 80, 254, 195, 255, 12, 255, 167, 254, 2, 0, 174, 254, 39, 0, 41, 255, 87, 255, 198, 255, 0, 0, 200, 255, 250, 255, 53, 255, 125, 255, 1, 0, 70, 255, 251, 255, 45, 255, 6, 0, 132, 254, 11, 0, 94, 254, 140, 255, 131, 0, 122, 255, 113, 0, 89, 0, 252, 255, 71, 0, 254, 255, 237, 255, 64, 255, 6, 1, 24, 0, 189, 0, 151, 0, 123, 255, 147, 255, 186, 0, 103, 255, 166, 0, 37, 255, 37, 0, 139, 0, 193, 0, 171, 0, 81, 1, 124, 0, 158, 0, 195, 255, 141, 0, 226, 0, 243, 255, 190, 0, 231, 0, 34, 0, 98, 1, 109, 0, 60, 1, 201, 0, 244, 0, 164, 0, 74, 1, 171, 255, 134, 1, 172, 255, 254, 0, 71, 1, 1, 1, 79, 1, 235, 1, 147, 0, 220, 1, 105, 0, 54, 0, 77, 0, 181, 1, 114, 1, 165, 1, 58, 1, 193, 1, 86, 1, 73, 1, 126, 0, 161, 2, 36, 1, 59, 2, 132, 1, 243, 0, 193, 0, 141, 2, 64, 1, 109, 2, 24, 1, 194, 0, 124, 1, 5, 2, 69, 2, 45, 0, 67, 1, 111, 0, 166, 1, 233, 1, 139, 1, 222, 2, 22, 2, 110, 2, 34, 2, 230, 1, 246, 1, 62, 1, 60, 2, 189, 0, 38, 2, 129, 1, 166, 1, 99, 255, 153, 0, 131, 255, 126, 1, 59, 255, 130, 1, 249, 254, 78, 1, 228, 0, 185, 2, 68, 255, 1, 0, 51, 0, 41, 1, 5, 254, 213, 0, 136, 254, 141, 1, 232, 255, 255, 0, 221, 253, 89, 0, 10, 254, 162, 255, 131, 1, 179, 0, 148, 253, 68, 0, 84, 253, 112, 0, 126, 253, 162, 254, 252, 254, 172, 0, 74, 254, 188, 254, 8, 1, 136, 2, 60, 252, 252, 255, 159, 251, 7, 0, 122, 255, 134, 0, 147, 251, 206, 254, 143, 0, 96, 0, 92, 254, 15, 254, 59, 251, 162, 254, 9, 250, 83, 253, 95, 255, 72, 0, 105, 3, 179, 2, 220, 2, 27, 1, 153, 3, 97, 1, 78, 1, 219, 1, 71, 4, 53, 3, 96, 3, 12, 2, 75, 3, 241, 1, 202, 2, 199, 2, 20, 3, 238, 2, 52, 4, 202, 2, 180, 4, 241, 2, 65, 2, 150, 2, 124, 245, 170, 192, 38, 3, 44, 7, 95, 251, 33, 228, 37, 12, 28, 4, 40, 248, 202, 208, 85, 16, 107, 5, 192, 249, 99, 218, 69, 9, 145, 5, 232, 249, 78, 219, 176, 12, 193, 7, 210, 251, 214, 230, 35, 7, 16, 9, 184, 252, 64, 236, 173, 3, 242, 12, 199, 254, 163, 248, 47, 9, 161, 11, 41, 254, 234, 244, 32, 14, 116, 9, 247, 252, 183, 237, 123, 13, 24, 12, 98, 254, 70, 246, 139, 11, 205, 16, 72, 0, 178, 1, 56, 7, 148, 17, 139, 0, 68, 3, 44, 15, 40, 21, 157, 1, 180, 9, 163, 4, 42, 28, 67, 3, 166, 19, 11, 12, 40, 35, 139, 4, 90, 27, 216, 28, 115, 3, 37, 247, 177, 202, 74, 23, 226, 5, 58, 250, 60, 221, 35, 20, 86, 8, 61, 252, 88, 233, 8, 31, 217, 7, 228, 251, 65, 231, 107, 25, 202, 8, 139, 252, 49, 235, 246, 29, 192, 10, 180, 253, 47, 242, 64, 23, 200, 11, 60, 254, 92, 245, 34, 19, 180, 14, 131, 255, 17, 253, 77, 27, 4, 14, 60, 255, 103, 251, 238, 31, 138, 15, 213, 255, 252, 254, 176, 23, 52, 17, 107, 0, 133, 2, 29, 30, 223, 19, 64, 1, 136, 7, 147, 21, 133, 23, 57, 2, 98, 13, 89, 30, 214, 27, 50, 3, 62, 19, 172, 23, 2, 31, 209, 3, 253, 22, 218, 21, 223, 44, 243, 5, 212, 35, 85, 41, 76, 5, 159, 249, 153, 217, 89, 35, 61, 6, 145, 250, 68, 223, 66, 38, 243, 7, 247, 251, 180, 231, 242, 34, 111, 9, 244, 252, 164, 237, 56, 40, 24, 10, 87, 253, 253, 239, 191, 36, 174, 10, 171, 253, 245, 241, 252, 33, 146, 12, 156, 254, 160, 247, 29, 38, 67, 13, 235, 254, 123, 249, 193, 39, 52, 15, 181, 255, 58, 254, 210, 35, 176, 17, 148, 0, 123, 3, 168, 39, 140, 19, 40, 1, 245, 6, 154, 35, 103, 22, 241, 1, 177, 11, 4, 41, 122, 24, 116, 2, 198, 14, 126, 39, 207, 29, 151, 3, 158, 21, 140, 34, 23, 34, 93, 4, 72, 26, 252, 34, 208, 48, 112, 6, 193, 38, 124, 50, 208, 3, 185, 247, 47, 206, 171, 44, 219, 6, 28, 251, 141, 226, 106, 47, 24, 9, 189, 252, 96, 236, 124, 44, 64, 9, 214, 252, 248, 236, 204, 41, 248, 11, 83, 254, 236, 245, 44, 48, 45, 11, 238, 253, 136, 243, 202, 45, 255, 12, 205, 254, 200, 248, 6, 44, 116, 14, 106, 255, 120, 252, 109, 42, 61, 17, 110, 0, 151, 2, 50, 47, 181, 17, 150, 0, 134, 3, 19, 44, 85, 20, 98, 1, 84, 8, 184, 46, 161, 24, 125, 2, 253, 14, 159, 43, 110, 29, 132, 3, 44, 21, 96, 47, 137, 32, 25, 4, 168, 24, 217, 42, 25, 42, 149, 5, 156, 33, 60, 40, 224, 67, 87, 8, 53, 50, 75, 54, 145, 6, 220, 250, 15, 225, 36, 49, 253, 7, 254, 251, 221, 231, 209, 51, 135, 9, 2, 253, 254, 237, 209, 54, 173, 11, 47, 254, 14, 245, 140, 52, 26, 12, 99, 254, 78, 246, 108, 48, 74, 14, 89, 255, 18, 252, 198, 52, 196, 14, 137, 255, 55, 253, 80, 50, 176, 16, 62, 0, 118, 1, 221, 52, 253, 18, 253, 0, 243, 5, 123, 49, 81, 21, 168, 1, 248, 9, 30, 54, 218, 23, 78, 2, 223, 13, 231, 50, 83, 25, 166, 2, 244, 15, 245, 52, 41, 30, 169, 3, 7, 22, 157, 50, 95, 36, 189, 4, 136, 28, 146, 53, 31, 45, 252, 5, 5, 36, 47, 49, 102, 59, 146, 7, 147, 45, 9, 59, 4, 6, 91, 250, 4, 222, 224, 58, 29, 9, 192, 252, 113, 236, 191, 56, 207, 9, 45, 253, 0, 239, 100, 57, 127, 12, 147, 254, 107, 247, 22, 60, 232, 13, 49, 255, 33, 251, 53, 55, 120, 15, 206, 255, 212, 254, 254, 58, 140, 16, 50, 0, 42, 1, 252, 55, 216, 18, 242, 0, 174, 5, 254, 57, 75, 21, 166, 1, 238, 9, 202, 59, 195, 23, 72, 2, 190, 13, 249, 55, 232, 26, 0, 3, 15, 18, 212, 58, 9, 30, 162, 3, 226, 21, 70, 56, 210, 36, 207, 4, 245, 28, 27, 60, 13, 38, 0, 5, 26, 30, 232, 57, 191, 55, 52, 7, 94, 43, 32, 53, 107, 97, 109, 10, 195, 62, 12, 64, 177, 7, 198, 251, 139, 230, 177, 65, 16, 11, 223, 253, 45, 243, 97, 61, 27, 11, 229, 253, 80, 243, 232, 62, 8, 13, 209, 254, 223, 248, 0, 64, 123, 15, 207, 255, 218, 254, 44, 66, 227, 17, 165, 0, 224, 3, 95, 61, 247, 17, 171, 0, 6, 4, 94, 63, 72, 21, 165, 1, 233, 9, 192, 65, 238, 24, 143, 2, 105, 15, 129, 61, 229, 27, 53, 3, 80, 19, 198, 63, 45, 29, 120, 3, 223, 20, 227, 64, 176, 33, 76, 4, 222, 25, 132, 66, 178, 40, 99, 5, 111, 32, 33, 62, 41, 46, 29, 6, 207, 36, 238, 65, 98, 57, 95, 7, 96, 44, 131, 64, 134, 81, 102, 9, 147, 56, 222, 70, 35, 8, 25, 252, 131, 232, 201, 75, 106, 12, 137, 254, 47, 247, 100, 68, 98, 13, 248, 254, 203, 249, 86, 78, 187, 15, 231, 255, 105, 255, 149, 70, 153, 16, 54, 0, 70, 1, 8, 74, 202, 19, 58, 1, 98, 7, 47, 69, 26, 21, 153, 1, 157, 9, 123, 77, 48, 24, 98, 2, 92, 14, 30, 70, 102, 27, 27, 3, 176, 18, 70, 83, 197, 30, 198, 3, 184, 22, 246, 69, 73, 36, 186, 4, 115, 28, 200, 74, 74, 36, 186, 4, 116, 28, 37, 80, 117, 44, 230, 5, 129, 35, 155, 70, 149, 56, 74, 7, 226, 43, 31, 78, 218, 69, 129, 8, 52, 51, 154, 73, 252, 127, 0, 12, 62, 72, 61, 42, 81, 112, 63, 11, 181, 67, 0, 80, 225, 10, 198, 253, 153, 242, 153, 73, 194, 25, 191, 2, 139, 16, 81, 24, 245, 28, 108, 3, 156, 20, 51, 67, 204, 40, 103, 5, 133, 32, 122, 84, 245, 4, 61, 249, 74, 215, 143, 82, 71, 17, 113, 0, 171, 2, 40, 44, 20, 6, 106, 250, 95, 222, 61, 74, 20, 50, 150, 6, 164, 39, 215, 67, 194, 9, 37, 253, 210, 238, 194, 69, 225, 18, 244, 0, 192, 5, 10, 39, 194, 9, 37, 253, 210, 238, 122, 68, 184, 30, 196, 3, 170, 22, 174, 55, 92, 7, 133, 251, 5, 229, 20, 62, 81, 12, 125, 254, 233, 246, 61, 26, 10, 7, 67, 251, 121, 227, 10, 71, 225, 78, 53, 9, 109, 55, 102, 70, 215, 11, 67, 254, 138, 245, 71, 65, 225, 22, 16, 2, 109, 12, 143, 34, 174, 15, 226, 255, 76, 255, 20, 62, 10, 35, 134, 4, 60, 27, 102, 70, 112, 5, 198, 249, 129, 218, 71, 65, 0, 16, 0, 0, 0, 0, 0, 32, 143, 2, 108, 245, 79, 192, 133, 59, 102, 54, 16, 7, 132, 42, 174, 55, 40, 12, 106, 254, 116, 246, 10, 55, 61, 18, 193, 0, 141, 4, 30, 21, 143, 10, 154, 253, 143, 241, 122, 52, 153, 25, 182, 2, 84, 16, 163, 48, 133, 3, 67, 247, 100, 203, 163, 48, 102, 10, 131, 253, 7, 241, 184, 14, 143, 2, 108, 245, 79, 192, 153, 57, 215, 91, 22, 10, 183, 60, 225, 74, 153, 9, 13, 253, 62, 238, 184, 78, 215, 19, 62, 1, 121, 7, 225, 26, 0, 16, 0, 0, 0, 0, 0, 80, 112, 33, 65, 4, 156, 25, 204, 76, 225, 2, 26, 246, 105, 196, 61, 74, 163, 16, 58, 0, 91, 1, 184, 30, 40, 8, 29, 252, 151, 232, 204, 44, 0, 48, 87, 6, 43, 38, 20, 62, 194, 5, 26, 250, 126, 220, 112, 61, 20, 18, 180, 0, 62, 4, 215, 35, 153, 5, 240, 249, 131, 219, 184, 62, 92, 27, 25, 3, 164, 18, 235, 57, 225, 2, 26, 246, 105, 196, 225, 58, 204, 8, 140, 252, 55, 235, 215, 19, 204, 4, 12, 249, 38, 214, 215, 51, 174, 67, 83, 8, 27, 50, 163, 64, 30, 9, 193, 252, 118, 236, 225, 58, 184, 22, 6, 2, 46, 12, 92, 15, 102, 14, 100, 255, 86, 252, 174, 55, 153, 33, 72, 4, 198, 25, 235, 65, 10, 3, 106, 246, 74, 198, 225, 58, 225, 14, 149, 255, 122, 253, 174, 23, 102, 2, 12, 245, 17, 190, 122, 36, 40, 36, 180, 4, 83, 28, 215, 51, 225, 6, 33, 251, 172, 226, 215, 51, 194, 13, 33, 255, 193, 250, 153, 9, 174, 7, 196, 251, 127, 230, 204, 44, 153, 21, 187, 1, 108, 10, 245, 40, 225, 2, 26, 246, 105, 196, 112, 45, 122, 12, 145, 254, 92, 247, 194, 5, 10, 3, 106, 246, 74, 198, 0, 64, 248, 65, 226, 67, 190, 69, 142, 71, 82, 73, 12, 75, 188, 76, 98, 78, 0, 80, 150, 81, 35, 83, 170, 84, 42, 86, 163, 87, 22, 89, 130, 90, 234, 91, 76, 93, 168, 94, 0, 96, 83, 97, 161, 98, 236, 99, 49, 101, 115, 102, 177, 103, 235, 104, 34, 106, 85, 107, 132, 108, 177, 109, 218, 110, 0, 112, 35, 113, 67, 114, 97, 115, 123, 116, 147, 117, 169, 118, 188, 119, 204, 120, 218, 121, 230, 122, 239, 123, 247, 124, 252, 125, 255, 126, 255, 127, 255, 127, 61, 10, 63, 10, 69, 10, 78, 10, 91, 10, 108, 10, 129, 10, 153, 10, 181, 10, 212, 10, 248, 10, 31, 11, 74, 11, 120, 11, 170, 11, 224, 11, 25, 12, 86, 12, 151, 12, 219, 12, 35, 13, 110, 13, 189, 13, 15, 14, 101, 14, 190, 14, 27, 15, 123, 15, 223, 15, 70, 16, 176, 16, 30, 17, 143, 17, 3, 18, 123, 18, 245, 18, 115, 19, 244, 19, 120, 20, 0, 21, 138, 21, 23, 22, 168, 22, 59, 23, 209, 23, 106, 24, 6, 25, 165, 25, 70, 26, 234, 26, 145, 27, 59, 28, 231, 28, 149, 29, 70, 30, 250, 30, 176, 31, 104, 32, 35, 33, 224, 33, 159, 34, 97, 35, 36, 36, 234, 36, 178, 37, 124, 38, 71, 39, 21, 40, 228, 40, 181, 41, 136, 42, 93, 43, 51, 44, 11, 45, 228, 45, 191, 46, 155, 47, 121, 48, 88, 49, 56, 50, 26, 51, 252, 51, 224, 52, 196, 53, 170, 54, 145, 55, 120, 56, 96, 57, 73, 58, 51, 59, 29, 60, 8, 61, 243, 61, 223, 62, 203, 63, 184, 64, 165, 65, 146, 66, 127, 67, 108, 68, 90, 69, 71, 70, 52, 71, 33, 72, 14, 73, 251, 73, 231, 74, 211, 75, 191, 76, 170, 77, 149, 78, 126, 79, 104, 80, 80, 81, 56, 82, 31, 83, 5, 84, 234, 84, 207, 85, 178, 86, 148, 87, 116, 88, 84, 89, 50, 90, 15, 91, 235, 91, 197, 92, 157, 93, 117, 94, 74, 95, 30, 96, 240, 96, 192, 97, 143, 98, 91, 99, 38, 100, 239, 100, 181, 101, 122, 102, 60, 103, 253, 103, 187, 104, 119, 105, 48, 106, 232, 106, 156, 107, 79, 108, 255, 108, 172, 109, 87, 110, 255, 110, 165, 111, 71, 112, 231, 112, 133, 113, 31, 114, 183, 114, 75, 115, 221, 115, 108, 116, 248, 116, 129, 117, 6, 118, 137, 118, 8, 119, 133, 119, 254, 119, 116, 120, 230, 120, 86, 121, 194, 121, 42, 122, 144, 122, 242, 122, 80, 123, 171, 123, 3, 124, 87, 124, 167, 124, 244, 124, 62, 125, 132, 125, 198, 125, 5, 126, 64, 126, 120, 126, 172, 126, 220, 126, 9, 127, 49, 127, 87, 127, 120, 127, 150, 127, 176, 127, 199, 127, 217, 127, 232, 127, 243, 127, 251, 127, 255, 127, 255, 127, 229, 127, 153, 127, 25, 127, 103, 126, 129, 125], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE + 20480);
- allocate([106, 124, 33, 123, 167, 121, 252, 119, 34, 118, 24, 116, 223, 113, 122, 111, 231, 108, 41, 106, 65, 103, 47, 100, 245, 96, 149, 93, 15, 90, 101, 86, 153, 82, 171, 78, 158, 74, 116, 70, 45, 66, 204, 61, 82, 57, 193, 52, 27, 48, 98, 43, 151, 38, 189, 33, 213, 28, 226, 23, 230, 18, 226, 13, 216, 8, 203, 3, 61, 10, 64, 10, 73, 10, 88, 10, 108, 10, 135, 10, 167, 10, 205, 10, 249, 10, 43, 11, 99, 11, 160, 11, 227, 11, 44, 12, 122, 12, 207, 12, 40, 13, 136, 13, 237, 13, 87, 14, 199, 14, 60, 15, 183, 15, 55, 16, 189, 16, 71, 17, 215, 17, 108, 18, 6, 19, 165, 19, 73, 20, 242, 20, 159, 21, 82, 22, 9, 23, 196, 23, 133, 24, 73, 25, 18, 26, 224, 26, 177, 27, 135, 28, 97, 29, 62, 30, 32, 31, 5, 32, 238, 32, 219, 33, 203, 34, 191, 35, 182, 36, 176, 37, 174, 38, 174, 39, 177, 40, 184, 41, 193, 42, 204, 43, 218, 44, 235, 45, 254, 46, 19, 48, 42, 49, 67, 50, 94, 51, 123, 52, 154, 53, 186, 54, 219, 55, 254, 56, 34, 58, 71, 59, 109, 60, 148, 61, 188, 62, 228, 63, 13, 65, 54, 66, 96, 67, 138, 68, 180, 69, 221, 70, 7, 72, 48, 73, 89, 74, 130, 75, 169, 76, 208, 77, 246, 78, 27, 80, 63, 81, 98, 82, 132, 83, 164, 84, 194, 85, 223, 86, 250, 87, 19, 89, 43, 90, 64, 91, 83, 92, 99, 93, 113, 94, 125, 95, 134, 96, 140, 97, 143, 98, 144, 99, 141, 100, 135, 101, 126, 102, 114, 103, 98, 104, 79, 105, 56, 106, 30, 107, 255, 107, 221, 108, 183, 109, 140, 110, 94, 111, 43, 112, 244, 112, 185, 113, 121, 114, 53, 115, 236, 115, 158, 116, 76, 117, 245, 117, 153, 118, 55, 119, 209, 119, 102, 120, 246, 120, 129, 121, 6, 122, 134, 122, 1, 123, 118, 123, 230, 123, 81, 124, 182, 124, 21, 125, 111, 125, 195, 125, 17, 126, 90, 126, 157, 126, 219, 126, 18, 127, 68, 127, 112, 127, 150, 127, 183, 127, 209, 127, 230, 127, 244, 127, 253, 127, 255, 127, 255, 127, 244, 127, 208, 127, 149, 127, 66, 127, 215, 126, 85, 126, 188, 125, 12, 125, 69, 124, 104, 123, 117, 122, 108, 121, 78, 120, 28, 119, 213, 117, 122, 116, 13, 115, 140, 113, 250, 111, 87, 110, 162, 108, 222, 106, 11, 105, 40, 103, 57, 101, 60, 99, 51, 97, 30, 95, 255, 92, 215, 90, 165, 88, 108, 86, 44, 84, 229, 81, 154, 79, 74, 77, 247, 74, 161, 72, 74, 70, 243, 67, 156, 65, 71, 63, 244, 60, 164, 58, 88, 56, 18, 54, 209, 51, 152, 49, 103, 47, 62, 45, 31, 43, 11, 41, 2, 39, 5, 37, 21, 35, 51, 33, 95, 31, 155, 29, 231, 27, 67, 26, 177, 24, 49, 23, 195, 21, 105, 20, 34, 19, 239, 17, 209, 16, 201, 15, 214, 14, 249, 13, 50, 13, 130, 12, 232, 11, 102, 11, 252, 10, 169, 10, 109, 10, 73, 10, 61, 10, 61, 10, 63, 10, 67, 10, 74, 10, 84, 10, 96, 10, 111, 10, 129, 10, 150, 10, 174, 10, 200, 10, 229, 10, 5, 11, 39, 11, 77, 11, 117, 11, 159, 11, 205, 11, 253, 11, 48, 12, 101, 12, 157, 12, 216, 12, 22, 13, 86, 13, 153, 13, 222, 13, 38, 14, 113, 14, 190, 14, 13, 15, 96, 15, 181, 15, 12, 16, 102, 16, 194, 16, 33, 17, 130, 17, 230, 17, 76, 18, 180, 18, 31, 19, 140, 19, 252, 19, 110, 20, 226, 20, 88, 21, 209, 21, 76, 22, 201, 22, 72, 23, 202, 23, 77, 24, 211, 24, 91, 25, 229, 25, 113, 26, 254, 26, 142, 27, 32, 28, 180, 28, 74, 29, 225, 29, 123, 30, 22, 31, 179, 31, 82, 32, 242, 32, 149, 33, 57, 34, 222, 34, 133, 35, 46, 36, 216, 36, 132, 37, 50, 38, 224, 38, 145, 39, 66, 40, 245, 40, 169, 41, 95, 42, 22, 43, 206, 43, 135, 44, 66, 45, 253, 45, 186, 46, 120, 47, 54, 48, 246, 48, 183, 49, 120, 50, 59, 51, 254, 51, 194, 52, 135, 53, 77, 54, 19, 55, 218, 55, 161, 56, 106, 57, 50, 58, 252, 58, 197, 59, 144, 60, 90, 61, 37, 62, 240, 62, 188, 63, 136, 64, 84, 65, 32, 66, 236, 66, 185, 67, 133, 68, 82, 69, 30, 70, 235, 70, 183, 71, 132, 72, 80, 73, 28, 74, 231, 74, 179, 75, 126, 76, 73, 77, 19, 78, 221, 78, 166, 79, 111, 80, 56, 81, 0, 82, 199, 82, 142, 83, 84, 84, 25, 85, 221, 85, 161, 86, 100, 87, 38, 88, 231, 88, 167, 89, 103, 90, 37, 91, 226, 91, 158, 92, 89, 93, 19, 94, 204, 94, 131, 95, 57, 96, 238, 96, 162, 97, 84, 98, 5, 99, 181, 99, 99, 100, 15, 101, 186, 101, 100, 102, 12, 103, 178, 103, 87, 104, 250, 104, 155, 105, 59, 106, 217, 106, 117, 107, 16, 108, 168, 108, 63, 109, 211, 109, 102, 110, 247, 110, 134, 111, 19, 112, 158, 112, 39, 113, 174, 113, 50, 114, 181, 114, 53, 115, 179, 115, 47, 116, 169, 116, 33, 117, 150, 117, 9, 118, 122, 118, 232, 118, 84, 119, 190, 119, 37, 120, 138, 120, 236, 120, 76, 121, 170, 121, 5, 122, 94, 122, 180, 122, 7, 123, 88, 123, 167, 123, 242, 123, 60, 124, 130, 124, 198, 124, 8, 125, 71, 125, 131, 125, 188, 125, 243, 125, 39, 126, 89, 126, 136, 126, 180, 126, 221, 126, 4, 127, 40, 127, 73, 127, 103, 127, 131, 127, 156, 127, 178, 127, 197, 127, 214, 127, 228, 127, 239, 127, 247, 127, 253, 127, 255, 127, 255, 127, 97, 125, 160, 117, 15, 105, 48, 88, 181, 67, 116, 44, 98, 19, 68, 101, 99, 111, 100, 101, 114, 0, 101, 110, 99, 111, 100, 101, 114, 0], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE + 30720);
- var tempDoublePtr = Runtime.alignMemory(allocate(12, "i8", ALLOC_STATIC), 8);
- assert(tempDoublePtr % 8 == 0);
- function _sbrk(bytes) {
- var self = _sbrk;
- if (!self.called) {
- DYNAMICTOP = alignMemoryPage(DYNAMICTOP);
- self.called = true;
- assert(Runtime.dynamicAlloc);
- self.alloc = Runtime.dynamicAlloc;
- Runtime.dynamicAlloc = (function () {
- abort("cannot dynamically allocate, sbrk now has control");
- });
- }
- var ret = DYNAMICTOP;
- if (bytes != 0) {
- var success = self.alloc(bytes);
- if (!success) return -1 >>> 0
- }
- return ret
- }
- function ___setErrNo(value) {
- if (Module["___errno_location"]) HEAP32[Module["___errno_location"]() >> 2] = value;
- return value
- }
- 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
- };
- function _sysconf(name) {
- switch (name) {
- case 30:
- return PAGE_SIZE;
- case 85:
- return totalMemory / PAGE_SIZE;
- case 132:
- case 133:
- case 12:
- case 137:
- case 138:
- case 15:
- case 235:
- case 16:
- case 17:
- case 18:
- case 19:
- case 20:
- case 149:
- case 13:
- case 10:
- case 236:
- case 153:
- case 9:
- case 21:
- case 22:
- case 159:
- case 154:
- case 14:
- case 77:
- case 78:
- case 139:
- case 80:
- case 81:
- case 82:
- case 68:
- case 67:
- case 164:
- case 11:
- case 29:
- case 47:
- case 48:
- case 95:
- case 52:
- case 51:
- case 46:
- return 200809;
- case 79:
- return 0;
- case 27:
- case 246:
- case 127:
- case 128:
- case 23:
- case 24:
- case 160:
- case 161:
- case 181:
- case 182:
- case 242:
- case 183:
- case 184:
- case 243:
- case 244:
- case 245:
- case 165:
- case 178:
- case 179:
- case 49:
- case 50:
- case 168:
- case 169:
- case 175:
- case 170:
- case 171:
- case 172:
- case 97:
- case 76:
- case 32:
- case 173:
- case 35:
- return -1;
- case 176:
- case 177:
- case 7:
- case 155:
- case 8:
- case 157:
- case 125:
- case 126:
- case 92:
- case 93:
- case 129:
- case 130:
- case 131:
- case 94:
- case 91:
- return 1;
- case 74:
- case 60:
- case 69:
- case 70:
- case 4:
- return 1024;
- case 31:
- case 42:
- case 72:
- return 32;
- case 87:
- case 26:
- case 33:
- return 2147483647;
- case 34:
- case 1:
- return 47839;
- case 38:
- case 36:
- return 99;
- case 43:
- case 37:
- return 2048;
- case 0:
- return 2097152;
- case 3:
- return 65536;
- case 28:
- return 32768;
- case 44:
- return 32767;
- case 75:
- return 16384;
- case 39:
- return 1e3;
- case 89:
- return 700;
- case 71:
- return 256;
- case 40:
- return 255;
- case 2:
- return 100;
- case 180:
- return 64;
- case 25:
- return 20;
- case 5:
- return 16;
- case 6:
- return 6;
- case 73:
- return 4;
- case 84: {
- if (typeof navigator === "object") return navigator["hardwareConcurrency"] || 1;
- return 1
- }
- }
- ___setErrNo(ERRNO_CODES.EINVAL);
- return -1
- }
- function _emscripten_memcpy_big(dest, src, num) {
- HEAPU8.set(HEAPU8.subarray(src, src + num), dest);
- return dest
- }
- Module["_memcpy"] = _memcpy;
- Module["_memmove"] = _memmove;
- Module["_memset"] = _memset;
- function _abort() {
- Module["abort"]();
- }
- 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"
- };
- var TTY = {
- ttys: [], init: (function () {
- }), shutdown: (function () {
- }), register: (function (dev, ops) {
- TTY.ttys[dev] = {input: [], output: [], ops: ops};
- FS.registerDevice(dev, TTY.stream_ops);
- }), stream_ops: {
- open: (function (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 (stream) {
- stream.tty.ops.flush(stream.tty);
- }), flush: (function (stream) {
- stream.tty.ops.flush(stream.tty);
- }), read: (function (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 (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 (tty) {
- if (!tty.input.length) {
- var result = null;
- 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 (tty, val) {
- if (val === null || val === 10) {
- Module["print"](UTF8ArrayToString(tty.output, 0));
- tty.output = [];
- } else {
- if (val != 0) tty.output.push(val);
- }
- }), flush: (function (tty) {
- if (tty.output && tty.output.length > 0) {
- Module["print"](UTF8ArrayToString(tty.output, 0));
- tty.output = [];
- }
- })
- }, default_tty1_ops: {
- put_char: (function (tty, val) {
- if (val === null || val === 10) {
- Module["printErr"](UTF8ArrayToString(tty.output, 0));
- tty.output = [];
- } else {
- if (val != 0) tty.output.push(val);
- }
- }), flush: (function (tty) {
- if (tty.output && tty.output.length > 0) {
- Module["printErr"](UTF8ArrayToString(tty.output, 0));
- tty.output = [];
- }
- })
- }
- };
- var MEMFS = {
- ops_table: null, mount: (function (mount) {
- return MEMFS.createNode(null, "/", 16384 | 511, 0)
- }), createNode: (function (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 (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 (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 (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.buffer.byteLength : 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 (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 (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 (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 (parent, name) {
- throw FS.genericErrors[ERRNO_CODES.ENOENT]
- }), mknod: (function (parent, name, mode, dev) {
- return MEMFS.createNode(parent, name, mode, dev)
- }), rename: (function (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 (parent, name) {
- delete parent.contents[name];
- }), rmdir: (function (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 (node) {
- var entries = [".", ".."];
- for (var key in node.contents) {
- if (!node.contents.hasOwnProperty(key)) {
- continue
- }
- entries.push(key);
- }
- return entries
- }), symlink: (function (parent, newname, oldpath) {
- var node = MEMFS.createNode(parent, newname, 511 | 40960, 0);
- node.link = oldpath;
- return node
- }), readlink: (function (node) {
- if (!FS.isLink(node.mode)) {
- throw new FS.ErrnoError(ERRNO_CODES.EINVAL)
- }
- return node.link
- })
- }, stream_ops: {
- read: (function (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 (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 (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 (stream, offset, length) {
- MEMFS.expandFileStorage(stream.node, offset + length);
- stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length);
- }), mmap: (function (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 (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 () {
- if (typeof indexedDB !== "undefined") return indexedDB;
- var ret = null;
- if (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) {
- return MEMFS.mount.apply(null, arguments)
- }), syncfs: (function (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 (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)
- }
- 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 (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 (mount, callback) {
- var entries = {};
- IDBFS.getDB(mount.mountpoint, (function (err, db) {
- if (err) return callback(err);
- 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();
- });
- }));
- }), loadLocalEntry: (function (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 (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, {encoding: "binary", 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 (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 (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 (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 (store, path, callback) {
- var req = store.delete(path);
- req.onsuccess = (function () {
- callback(null);
- });
- req.onerror = (function (e) {
- callback(this.error);
- e.preventDefault();
- });
- }), reconcile: (function (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 WORKERFS = {
- DIR_MODE: 16895, FILE_MODE: 33279, reader: null, mount: (function (mount) {
- 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, curr, 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(mount.opts["files"] || [], (function (file) {
- WORKERFS.createNode(ensureParent(file.name), base(file.name), WORKERFS.FILE_MODE, 0, file, file.lastModifiedDate);
- }));
- (mount.opts["blobs"] || []).forEach((function (obj) {
- WORKERFS.createNode(ensureParent(obj["name"]), base(obj["name"]), WORKERFS.FILE_MODE, 0, obj["data"]);
- }));
- (mount.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 (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 (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 (node, attr) {
- if (attr.mode !== undefined) {
- node.mode = attr.mode;
- }
- if (attr.timestamp !== undefined) {
- node.timestamp = attr.timestamp;
- }
- }), lookup: (function (parent, name) {
- throw new FS.ErrnoError(ERRNO_CODES.ENOENT)
- }), mknod: (function (parent, name, mode, dev) {
- throw new FS.ErrnoError(ERRNO_CODES.EPERM)
- }), rename: (function (oldNode, newDir, newName) {
- throw new FS.ErrnoError(ERRNO_CODES.EPERM)
- }), unlink: (function (parent, name) {
- throw new FS.ErrnoError(ERRNO_CODES.EPERM)
- }), rmdir: (function (parent, name) {
- throw new FS.ErrnoError(ERRNO_CODES.EPERM)
- }), readdir: (function (node) {
- throw new FS.ErrnoError(ERRNO_CODES.EPERM)
- }), symlink: (function (parent, newName, oldPath) {
- throw new FS.ErrnoError(ERRNO_CODES.EPERM)
- }), readlink: (function (node) {
- throw new FS.ErrnoError(ERRNO_CODES.EPERM)
- })
- }, stream_ops: {
- read: (function (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 (stream, buffer, offset, length, position) {
- throw new FS.ErrnoError(ERRNO_CODES.EIO)
- }), llseek: (function (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
- })
- }
- };
- var _stdin = allocate(1, "i32*", ALLOC_STATIC);
- var _stdout = allocate(1, "i32*", ALLOC_STATIC);
- var _stderr = allocate(1, "i32*", ALLOC_STATIC);
- var FS = {
- root: null,
- mounts: [],
- devices: [null],
- streams: [],
- nextInode: 1,
- nameTable: null,
- currentPath: "/",
- initialized: false,
- ignorePermissions: true,
- trackingDelegate: {},
- tracking: {openFlags: {READ: 1, WRITE: 2}},
- ErrnoError: null,
- genericErrors: {},
- filesystems: null,
- handleFSError: (function (e) {
- if (!(e instanceof FS.ErrnoError)) throw e + " : " + stackTrace();
- return ___setErrNo(e.errno)
- }),
- lookupPath: (function (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 (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 (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 (node) {
- var hash = FS.hashName(node.parent.id, node.name);
- node.name_next = FS.nameTable[hash];
- FS.nameTable[hash] = node;
- }),
- hashRemoveNode: (function (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 (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 (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 () {
- return (this.mode & readMode) === readMode
- }), set: (function (val) {
- val ? this.mode |= readMode : this.mode &= ~readMode;
- })
- }, write: {
- get: (function () {
- return (this.mode & writeMode) === writeMode
- }), set: (function (val) {
- val ? this.mode |= writeMode : this.mode &= ~writeMode;
- })
- }, isFolder: {
- get: (function () {
- return FS.isDir(this.mode)
- })
- }, isDevice: {
- get: (function () {
- return FS.isChrdev(this.mode)
- })
- }
- });
- }
- var node = new FS.FSNode(parent, name, mode, rdev);
- FS.hashAddNode(node);
- return node
- }),
- destroyNode: (function (node) {
- FS.hashRemoveNode(node);
- }),
- isRoot: (function (node) {
- return node === node.parent
- }),
- isMountpoint: (function (node) {
- return !!node.mounted
- }),
- isFile: (function (mode) {
- return (mode & 61440) === 32768
- }),
- isDir: (function (mode) {
- return (mode & 61440) === 16384
- }),
- isLink: (function (mode) {
- return (mode & 61440) === 40960
- }),
- isChrdev: (function (mode) {
- return (mode & 61440) === 8192
- }),
- isBlkdev: (function (mode) {
- return (mode & 61440) === 24576
- }),
- isFIFO: (function (mode) {
- return (mode & 61440) === 4096
- }),
- isSocket: (function (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 (str) {
- var flags = FS.flagModes[str];
- if (typeof flags === "undefined") {
- throw new Error("Unknown file open mode: " + str)
- }
- return flags
- }),
- flagsToPermissionString: (function (flag) {
- var perms = ["r", "w", "rw"][flag & 3];
- if (flag & 512) {
- perms += "w";
- }
- return perms
- }),
- nodePermissions: (function (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 (dir) {
- var err = FS.nodePermissions(dir, "x");
- if (err) return err;
- if (!dir.node_ops.lookup) return ERRNO_CODES.EACCES;
- return 0
- }),
- mayCreate: (function (dir, name) {
- try {
- var node = FS.lookupNode(dir, name);
- return ERRNO_CODES.EEXIST
- } catch (e) {
- }
- return FS.nodePermissions(dir, "wx")
- }),
- mayDelete: (function (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 (node, flags) {
- if (!node) {
- return ERRNO_CODES.ENOENT
- }
- if (FS.isLink(node.mode)) {
- return ERRNO_CODES.ELOOP
- } else if (FS.isDir(node.mode)) {
- if ((flags & 2097155) !== 0 || flags & 512) {
- return ERRNO_CODES.EISDIR
- }
- }
- return FS.nodePermissions(node, FS.flagsToPermissionString(flags))
- }),
- MAX_OPEN_FDS: 4096,
- nextfd: (function (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 (fd) {
- return FS.streams[fd]
- }),
- createStream: (function (stream, fd_start, fd_end) {
- if (!FS.FSStream) {
- FS.FSStream = (function () {
- });
- FS.FSStream.prototype = {};
- Object.defineProperties(FS.FSStream.prototype, {
- object: {
- get: (function () {
- return this.node
- }), set: (function (val) {
- this.node = val;
- })
- }, isRead: {
- get: (function () {
- return (this.flags & 2097155) !== 1
- })
- }, isWrite: {
- get: (function () {
- return (this.flags & 2097155) !== 0
- })
- }, isAppend: {
- get: (function () {
- 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 (fd) {
- FS.streams[fd] = null;
- }),
- chrdev_stream_ops: {
- open: (function (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 () {
- throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)
- })
- },
- major: (function (dev) {
- return dev >> 8
- }),
- minor: (function (dev) {
- return dev & 255
- }),
- makedev: (function (ma, mi) {
- return ma << 8 | mi
- }),
- registerDevice: (function (dev, ops) {
- FS.devices[dev] = {stream_ops: ops};
- }),
- getDevice: (function (dev) {
- return FS.devices[dev]
- }),
- getMounts: (function (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 (populate, callback) {
- if (typeof populate === "function") {
- callback = populate;
- populate = false;
- }
- var mounts = FS.getMounts(FS.root.mount);
- var completed = 0;
- function done(err) {
- if (err) {
- if (!done.errored) {
- done.errored = true;
- return callback(err)
- }
- return
- }
- if (++completed >= mounts.length) {
- callback(null);
- }
- }
- mounts.forEach((function (mount) {
- if (!mount.type.syncfs) {
- return done(null)
- }
- mount.type.syncfs(mount, populate, done);
- }));
- }),
- mount: (function (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 (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 (parent, name) {
- return parent.node_ops.lookup(parent, name)
- }),
- mknod: (function (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 (path, mode) {
- mode = mode !== undefined ? mode : 438;
- mode &= 4095;
- mode |= 32768;
- return FS.mknod(path, mode, 0)
- }),
- mkdir: (function (path, mode) {
- mode = mode !== undefined ? mode : 511;
- mode &= 511 | 512;
- mode |= 16384;
- return FS.mknod(path, mode, 0)
- }),
- mkdev: (function (path, mode, dev) {
- if (typeof dev === "undefined") {
- dev = mode;
- mode = 438;
- }
- mode |= 8192;
- return FS.mknod(path, mode, dev)
- }),
- symlink: (function (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 (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 {
- } 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 {
- } catch (e) {
- console.log("FS.trackingDelegate['onMovePath']('" + old_path + "', '" + new_path + "') threw an exception: " + e.message);
- }
- }),
- rmdir: (function (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 {
- } catch (e) {
- console.log("FS.trackingDelegate['willDeletePath']('" + path + "') threw an exception: " + e.message);
- }
- parent.node_ops.rmdir(parent, name);
- FS.destroyNode(node);
- try {
- } catch (e) {
- console.log("FS.trackingDelegate['onDeletePath']('" + path + "') threw an exception: " + e.message);
- }
- }),
- readdir: (function (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 (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) {
- if (err === ERRNO_CODES.EISDIR) err = ERRNO_CODES.EPERM;
- 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 {
- } catch (e) {
- console.log("FS.trackingDelegate['willDeletePath']('" + path + "') threw an exception: " + e.message);
- }
- parent.node_ops.unlink(parent, name);
- FS.destroyNode(node);
- try {
- } catch (e) {
- console.log("FS.trackingDelegate['onDeletePath']('" + path + "') threw an exception: " + e.message);
- }
- }),
- readlink: (function (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 (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 (path) {
- return FS.stat(path, true)
- }),
- chmod: (function (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 (path, mode) {
- FS.chmod(path, mode, true);
- }),
- fchmod: (function (fd, mode) {
- var stream = FS.getStream(fd);
- if (!stream) {
- throw new FS.ErrnoError(ERRNO_CODES.EBADF)
- }
- FS.chmod(stream.node, mode);
- }),
- chown: (function (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 (path, uid, gid) {
- FS.chown(path, uid, gid, true);
- }),
- fchown: (function (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 (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 (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 (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 (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 === "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;
- Module["printErr"]("read file: " + path);
- }
- }
- try {
- } catch (e) {
- console.log("FS.trackingDelegate['onOpenFile']('" + path + "', flags) threw an exception: " + e.message);
- }
- return stream
- }),
- close: (function (stream) {
- 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);
- }
- }),
- llseek: (function (stream, offset, whence) {
- 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 (stream, buffer, offset, length, position) {
- if (length < 0 || position < 0) {
- throw new FS.ErrnoError(ERRNO_CODES.EINVAL)
- }
- 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 = true;
- if (typeof position === "undefined") {
- position = stream.position;
- seeking = false;
- } 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 (stream, buffer, offset, length, position, canOwn) {
- if (length < 0 || position < 0) {
- throw new FS.ErrnoError(ERRNO_CODES.EINVAL)
- }
- 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 = true;
- if (typeof position === "undefined") {
- position = stream.position;
- seeking = false;
- } 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 (stream, offset, length) {
- 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(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 (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 (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 (stream) {
- return 0
- }),
- ioctl: (function (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 (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 (path, data, opts) {
- opts = opts || {};
- opts.flags = opts.flags || "w";
- opts.encoding = opts.encoding || "utf8";
- if (opts.encoding !== "utf8" && opts.encoding !== "binary") {
- throw new Error('Invalid encoding type "' + opts.encoding + '"')
- }
- var stream = FS.open(path, opts.flags, opts.mode);
- if (opts.encoding === "utf8") {
- var buf = new Uint8Array(lengthBytesUTF8(data) + 1);
- var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length);
- FS.write(stream, buf, 0, actualNumBytes, 0, opts.canOwn);
- } else if (opts.encoding === "binary") {
- FS.write(stream, data, 0, data.length, 0, opts.canOwn);
- }
- FS.close(stream);
- }),
- cwd: (function () {
- return FS.currentPath
- }),
- chdir: (function (path) {
- var lookup = FS.lookupPath(path, {follow: true});
- 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 () {
- FS.mkdir("/tmp");
- FS.mkdir("/home");
- FS.mkdir("/home/web_user");
- }),
- createDefaultDevices: (function () {
- FS.mkdir("/dev");
- FS.registerDevice(FS.makedev(1, 3), {
- read: (function () {
- return 0
- }), write: (function (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 () {
- crypto.getRandomValues(randomBuffer);
- return randomBuffer[0]
- });
- } else {
- random_device = (function () {
- 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 () {
- FS.mkdir("/proc");
- FS.mkdir("/proc/self");
- FS.mkdir("/proc/self/fd");
- FS.mount({
- mount: (function () {
- var node = FS.createNode("/proc/self", "fd", 16384 | 511, 73);
- node.node_ops = {
- lookup: (function (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 () {
- return stream.path
- })
- }
- };
- ret.parent = ret;
- return ret
- })
- };
- return node
- })
- }, {}, "/proc/self/fd");
- }),
- createStandardStreams: (function () {
- 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 () {
- 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];
- };
- 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 () {
- FS.ensureErrnoError();
- FS.nameTable = new Array(4096);
- FS.mount(MEMFS, {}, "/");
- FS.createDefaultDirectories();
- FS.createDefaultDevices();
- FS.createSpecialDirectories();
- FS.filesystems = {"MEMFS": MEMFS, "IDBFS": IDBFS, "NODEFS": {}, "WORKERFS": WORKERFS};
- }),
- init: (function (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 () {
- 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 (canRead, canWrite) {
- var mode = 0;
- if (canRead) mode |= 292 | 73;
- if (canWrite) mode |= 146;
- return mode
- }),
- joinPath: (function (parts, forceRelative) {
- var path = PATH.join.apply(null, parts);
- if (forceRelative && path[0] == "/") path = path.substr(1);
- return path
- }),
- absolutePath: (function (relative, base) {
- return PATH.resolve(base, relative)
- }),
- standardizePath: (function (path) {
- return PATH.normalize(path)
- }),
- findObject: (function (path, dontResolveLastLink) {
- var ret = FS.analyzePath(path, dontResolveLastLink);
- if (ret.exists) {
- return ret.object
- } else {
- ___setErrNo(ret.error);
- return null
- }
- }),
- analyzePath: (function (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 (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 (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 (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 (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 (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 (stream) {
- stream.seekable = false;
- }), close: (function (stream) {
- if (output && output.buffer && output.buffer.length) {
- output(10);
- }
- }), read: (function (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 (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 (parent, name, target, canRead, canWrite) {
- var path = PATH.join2(typeof parent === "string" ? parent : FS.getPath(parent), name);
- return FS.symlink(target, path)
- }),
- forceLoadFile: (function (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 (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 chunkSize = 1024 * 1024;
- if (!hasByteServing) chunkSize = datalength;
- var doXHR = (function (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]
- }));
- 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.defineProperty(lazyArray, "length", {
- get: (function () {
- if (!this.lengthKnown) {
- this.cacheLength();
- }
- return this._length
- })
- });
- Object.defineProperty(lazyArray, "chunkSize", {
- get: (function () {
- 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.defineProperty(node, "usedBytes", {
- get: (function () {
- 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 (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 () {
- return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB
- }),
- DB_NAME: (function () {
- return "EM_FS_" + window.location.pathname
- }),
- DB_VERSION: 20,
- DB_STORE_NAME: "FILE_DATA",
- saveFilesToDB: (function (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 (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 PATH = {
- splitPath: (function (filename) {
- var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
- return splitPathRe.exec(filename).slice(1)
- }), normalizeArray: (function (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 (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 (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 (path) {
- if (path === "/") return "/";
- var lastSlash = path.lastIndexOf("/");
- if (lastSlash === -1) return path;
- return path.substr(lastSlash + 1)
- }), extname: (function (path) {
- return PATH.splitPath(path)[3]
- }), join: (function () {
- var paths = Array.prototype.slice.call(arguments, 0);
- return PATH.normalize(paths.join("/"))
- }), join2: (function (l, r) {
- return PATH.normalize(l + "/" + r)
- }), resolve: (function () {
- 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 (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("/")
- })
- };
- function _emscripten_set_main_loop_timing(mode, value) {
- Browser.mainLoop.timingMode = mode;
- Browser.mainLoop.timingValue = value;
- if (!Browser.mainLoop.func) {
- return 1
- }
- if (mode == 0) {
- Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setTimeout() {
- setTimeout(Browser.mainLoop.runner, value);
- };
- Browser.mainLoop.method = "timeout";
- } else if (mode == 1) {
- Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_rAF() {
- Browser.requestAnimationFrame(Browser.mainLoop.runner);
- };
- Browser.mainLoop.method = "rAF";
- } else if (mode == 2) {
- if (!window["setImmediate"]) {
- var setImmediates = [];
- var emscriptenMainLoopMessageId = "__emcc";
- function Browser_setImmediate_messageHandler(event) {
- if (event.source === window && event.data === emscriptenMainLoopMessageId) {
- event.stopPropagation();
- setImmediates.shift()();
- }
- }
- window.addEventListener("message", Browser_setImmediate_messageHandler, true);
- window["setImmediate"] = function Browser_emulated_setImmediate(func) {
- setImmediates.push(func);
- window.postMessage(emscriptenMainLoopMessageId, "*");
- };
- }
- Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setImmediate() {
- window["setImmediate"](Browser.mainLoop.runner);
- };
- Browser.mainLoop.method = "immediate";
- }
- return 0
- }
- function _emscripten_set_main_loop(func, fps, simulateInfiniteLoop, arg, noSetTiming) {
- Module["noExitRuntime"] = true;
- assert(!Browser.mainLoop.func, "emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");
- Browser.mainLoop.func = func;
- Browser.mainLoop.arg = arg;
- var thisMainLoopId = Browser.mainLoop.currentlyRunningMainloop;
- Browser.mainLoop.runner = function Browser_mainLoop_runner() {
- if (ABORT) return;
- if (Browser.mainLoop.queue.length > 0) {
- var start = Date.now();
- var blocker = Browser.mainLoop.queue.shift();
- blocker.func(blocker.arg);
- if (Browser.mainLoop.remainingBlockers) {
- var remaining = Browser.mainLoop.remainingBlockers;
- var next = remaining % 1 == 0 ? remaining - 1 : Math.floor(remaining);
- if (blocker.counted) {
- Browser.mainLoop.remainingBlockers = next;
- } else {
- next = next + .5;
- Browser.mainLoop.remainingBlockers = (8 * remaining + next) / 9;
- }
- }
- console.log('main loop blocker "' + blocker.name + '" took ' + (Date.now() - start) + " ms");
- Browser.mainLoop.updateStatus();
- setTimeout(Browser.mainLoop.runner, 0);
- return
- }
- if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return;
- Browser.mainLoop.currentFrameNumber = Browser.mainLoop.currentFrameNumber + 1 | 0;
- if (Browser.mainLoop.timingMode == 1 && Browser.mainLoop.timingValue > 1 && Browser.mainLoop.currentFrameNumber % Browser.mainLoop.timingValue != 0) {
- Browser.mainLoop.scheduler();
- return
- }
- if (Browser.mainLoop.method === "timeout" && Module.ctx) {
- Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!");
- Browser.mainLoop.method = "";
- }
- Browser.mainLoop.runIter((function () {
- if (typeof arg !== "undefined") {
- Runtime.dynCall("vi", func, [arg]);
- } else {
- Runtime.dynCall("v", func);
- }
- }));
- if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return;
- if (typeof SDL === "object" && SDL.audio && SDL.audio.queueNewAudioData) SDL.audio.queueNewAudioData();
- Browser.mainLoop.scheduler();
- };
- if (!noSetTiming) {
- if (fps && fps > 0) _emscripten_set_main_loop_timing(0, 1e3 / fps); else _emscripten_set_main_loop_timing(1, 1);
- Browser.mainLoop.scheduler();
- }
- if (simulateInfiniteLoop) {
- throw"SimulateInfiniteLoop"
- }
- }
- var Browser = {
- mainLoop: {
- scheduler: null,
- method: "",
- currentlyRunningMainloop: 0,
- func: null,
- arg: 0,
- timingMode: 0,
- timingValue: 0,
- currentFrameNumber: 0,
- queue: [],
- pause: (function () {
- Browser.mainLoop.scheduler = null;
- Browser.mainLoop.currentlyRunningMainloop++;
- }),
- resume: (function () {
- Browser.mainLoop.currentlyRunningMainloop++;
- var timingMode = Browser.mainLoop.timingMode;
- var timingValue = Browser.mainLoop.timingValue;
- var func = Browser.mainLoop.func;
- Browser.mainLoop.func = null;
- _emscripten_set_main_loop(func, 0, false, Browser.mainLoop.arg, true);
- _emscripten_set_main_loop_timing(timingMode, timingValue);
- Browser.mainLoop.scheduler();
- }),
- updateStatus: (function () {
- if (Module["setStatus"]) {
- var message = Module["statusMessage"] || "Please wait...";
- var remaining = Browser.mainLoop.remainingBlockers;
- var expected = Browser.mainLoop.expectedBlockers;
- if (remaining) {
- if (remaining < expected) {
- Module["setStatus"](message + " (" + (expected - remaining) + "/" + expected + ")");
- } else {
- Module["setStatus"](message);
- }
- } else {
- Module["setStatus"]("");
- }
- }
- }),
- runIter: (function (func) {
- if (ABORT) return;
- if (Module["preMainLoop"]) {
- var preRet = Module["preMainLoop"]();
- if (preRet === false) {
- return
- }
- }
- try {
- func();
- } catch (e) {
- if (e instanceof ExitStatus) {
- return
- } else {
- if (e && typeof e === "object" && e.stack) Module.printErr("exception thrown: " + [e, e.stack]);
- throw e
- }
- }
- if (Module["postMainLoop"]) Module["postMainLoop"]();
- })
- },
- isFullScreen: false,
- pointerLock: false,
- moduleContextCreatedCallbacks: [],
- workers: [],
- init: (function () {
- if (!Module["preloadPlugins"]) Module["preloadPlugins"] = [];
- if (Browser.initted) return;
- Browser.initted = true;
- try {
- new Blob;
- Browser.hasBlobConstructor = true;
- } catch (e) {
- Browser.hasBlobConstructor = false;
- console.log("warning: no blob constructor, cannot create blobs with mimetypes");
- }
- Browser.BlobBuilder = typeof MozBlobBuilder != "undefined" ? MozBlobBuilder : typeof WebKitBlobBuilder != "undefined" ? WebKitBlobBuilder : !Browser.hasBlobConstructor ? console.log("warning: no BlobBuilder") : null;
- Browser.URLObject = typeof window != "undefined" ? window.URL ? window.URL : window.webkitURL : undefined;
- if (!Module.noImageDecoding && typeof Browser.URLObject === "undefined") {
- console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available.");
- Module.noImageDecoding = true;
- }
- var imagePlugin = {};
- imagePlugin["canHandle"] = function imagePlugin_canHandle(name) {
- return !Module.noImageDecoding && /\.(jpg|jpeg|png|bmp)$/i.test(name)
- };
- imagePlugin["handle"] = function imagePlugin_handle(byteArray, name, onload, onerror) {
- var b = null;
- if (Browser.hasBlobConstructor) {
- try {
- b = new Blob([byteArray], {type: Browser.getMimetype(name)});
- if (b.size !== byteArray.length) {
- b = new Blob([(new Uint8Array(byteArray)).buffer], {type: Browser.getMimetype(name)});
- }
- } catch (e) {
- Runtime.warnOnce("Blob constructor present but fails: " + e + "; falling back to blob builder");
- }
- }
- if (!b) {
- var bb = new Browser.BlobBuilder;
- bb.append((new Uint8Array(byteArray)).buffer);
- b = bb.getBlob();
- }
- var url = Browser.URLObject.createObjectURL(b);
- var img = new Image;
- img.onload = function img_onload() {
- assert(img.complete, "Image " + name + " could not be decoded");
- var canvas = document.createElement("canvas");
- canvas.width = img.width;
- canvas.height = img.height;
- var ctx = canvas.getContext("2d");
- ctx.drawImage(img, 0, 0);
- Module["preloadedImages"][name] = canvas;
- Browser.URLObject.revokeObjectURL(url);
- if (onload) onload(byteArray);
- };
- img.onerror = function img_onerror(event) {
- console.log("Image " + url + " could not be decoded");
- if (onerror) onerror();
- };
- img.src = url;
- };
- Module["preloadPlugins"].push(imagePlugin);
- var audioPlugin = {};
- audioPlugin["canHandle"] = function audioPlugin_canHandle(name) {
- return !Module.noAudioDecoding && name.substr(-4) in {".ogg": 1, ".wav": 1, ".mp3": 1}
- };
- audioPlugin["handle"] = function audioPlugin_handle(byteArray, name, onload, onerror) {
- var done = false;
- function finish(audio) {
- if (done) return;
- done = true;
- Module["preloadedAudios"][name] = audio;
- if (onload) onload(byteArray);
- }
- function fail() {
- if (done) return;
- done = true;
- Module["preloadedAudios"][name] = new Audio;
- if (onerror) onerror();
- }
- if (Browser.hasBlobConstructor) {
- try {
- var b = new Blob([byteArray], {type: Browser.getMimetype(name)});
- } catch (e) {
- return fail()
- }
- var url = Browser.URLObject.createObjectURL(b);
- var audio = new Audio;
- audio.addEventListener("canplaythrough", (function () {
- finish(audio);
- }), false);
- audio.onerror = function audio_onerror(event) {
- if (done) return;
- console.log("warning: browser could not fully decode audio " + name + ", trying slower base64 approach");
- function encode64(data) {
- var BASE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
- var PAD = "=";
- var ret = "";
- var leftchar = 0;
- var leftbits = 0;
- for (var i = 0; i < data.length; i++) {
- leftchar = leftchar << 8 | data[i];
- leftbits += 8;
- while (leftbits >= 6) {
- var curr = leftchar >> leftbits - 6 & 63;
- leftbits -= 6;
- ret += BASE[curr];
- }
- }
- if (leftbits == 2) {
- ret += BASE[(leftchar & 3) << 4];
- ret += PAD + PAD;
- } else if (leftbits == 4) {
- ret += BASE[(leftchar & 15) << 2];
- ret += PAD;
- }
- return ret
- }
- audio.src = "data:audio/x-" + name.substr(-3) + ";base64," + encode64(byteArray);
- finish(audio);
- };
- audio.src = url;
- Browser.safeSetTimeout((function () {
- finish(audio);
- }), 1e4);
- } else {
- return fail()
- }
- };
- Module["preloadPlugins"].push(audioPlugin);
- var canvas = Module["canvas"];
- function pointerLockChange() {
- Browser.pointerLock = document["pointerLockElement"] === canvas || document["mozPointerLockElement"] === canvas || document["webkitPointerLockElement"] === canvas || document["msPointerLockElement"] === canvas;
- }
- if (canvas) {
- canvas.requestPointerLock = canvas["requestPointerLock"] || canvas["mozRequestPointerLock"] || canvas["webkitRequestPointerLock"] || canvas["msRequestPointerLock"] || (function () {
- });
- canvas.exitPointerLock = document["exitPointerLock"] || document["mozExitPointerLock"] || document["webkitExitPointerLock"] || document["msExitPointerLock"] || (function () {
- });
- canvas.exitPointerLock = canvas.exitPointerLock.bind(document);
- document.addEventListener("pointerlockchange", pointerLockChange, false);
- document.addEventListener("mozpointerlockchange", pointerLockChange, false);
- document.addEventListener("webkitpointerlockchange", pointerLockChange, false);
- document.addEventListener("mspointerlockchange", pointerLockChange, false);
- if (Module["elementPointerLock"]) {
- canvas.addEventListener("click", (function (ev) {
- if (!Browser.pointerLock && canvas.requestPointerLock) {
- canvas.requestPointerLock();
- ev.preventDefault();
- }
- }), false);
- }
- }
- }),
- createContext: (function (canvas, useWebGL, setInModule, webGLContextAttributes) {
- if (useWebGL && Module.ctx && canvas == Module.canvas) return Module.ctx;
- var ctx;
- var contextHandle;
- if (useWebGL) {
- var contextAttributes = {antialias: false, alpha: false};
- if (webGLContextAttributes) {
- for (var attribute in webGLContextAttributes) {
- contextAttributes[attribute] = webGLContextAttributes[attribute];
- }
- }
- contextHandle = GL.createContext(canvas, contextAttributes);
- if (contextHandle) {
- ctx = GL.getContext(contextHandle).GLctx;
- }
- canvas.style.backgroundColor = "black";
- } else {
- ctx = canvas.getContext("2d");
- }
- if (!ctx) return null;
- if (setInModule) {
- if (!useWebGL) assert(typeof GLctx === "undefined", "cannot set in module if GLctx is used, but we are a non-GL context that would replace it");
- Module.ctx = ctx;
- if (useWebGL) GL.makeContextCurrent(contextHandle);
- Module.useWebGL = useWebGL;
- Browser.moduleContextCreatedCallbacks.forEach((function (callback) {
- callback();
- }));
- Browser.init();
- }
- return ctx
- }),
- destroyContext: (function (canvas, useWebGL, setInModule) {
- }),
- fullScreenHandlersInstalled: false,
- lockPointer: undefined,
- resizeCanvas: undefined,
- requestFullScreen: (function (lockPointer, resizeCanvas, vrDevice) {
- Browser.lockPointer = lockPointer;
- Browser.resizeCanvas = resizeCanvas;
- Browser.vrDevice = vrDevice;
- if (typeof Browser.lockPointer === "undefined") Browser.lockPointer = true;
- if (typeof Browser.resizeCanvas === "undefined") Browser.resizeCanvas = false;
- if (typeof Browser.vrDevice === "undefined") Browser.vrDevice = null;
- var canvas = Module["canvas"];
- function fullScreenChange() {
- Browser.isFullScreen = false;
- var canvasContainer = canvas.parentNode;
- if ((document["webkitFullScreenElement"] || document["webkitFullscreenElement"] || document["mozFullScreenElement"] || document["mozFullscreenElement"] || document["fullScreenElement"] || document["fullscreenElement"] || document["msFullScreenElement"] || document["msFullscreenElement"] || document["webkitCurrentFullScreenElement"]) === canvasContainer) {
- canvas.cancelFullScreen = document["cancelFullScreen"] || document["mozCancelFullScreen"] || document["webkitCancelFullScreen"] || document["msExitFullscreen"] || document["exitFullscreen"] || (function () {
- });
- canvas.cancelFullScreen = canvas.cancelFullScreen.bind(document);
- if (Browser.lockPointer) canvas.requestPointerLock();
- Browser.isFullScreen = true;
- if (Browser.resizeCanvas) Browser.setFullScreenCanvasSize();
- } else {
- canvasContainer.parentNode.insertBefore(canvas, canvasContainer);
- canvasContainer.parentNode.removeChild(canvasContainer);
- if (Browser.resizeCanvas) Browser.setWindowedCanvasSize();
- }
- if (Module["onFullScreen"]) Module["onFullScreen"](Browser.isFullScreen);
- Browser.updateCanvasDimensions(canvas);
- }
- if (!Browser.fullScreenHandlersInstalled) {
- Browser.fullScreenHandlersInstalled = true;
- document.addEventListener("fullscreenchange", fullScreenChange, false);
- document.addEventListener("mozfullscreenchange", fullScreenChange, false);
- document.addEventListener("webkitfullscreenchange", fullScreenChange, false);
- document.addEventListener("MSFullscreenChange", fullScreenChange, false);
- }
- var canvasContainer = document.createElement("div");
- canvas.parentNode.insertBefore(canvasContainer, canvas);
- canvasContainer.appendChild(canvas);
- canvasContainer.requestFullScreen = canvasContainer["requestFullScreen"] || canvasContainer["mozRequestFullScreen"] || canvasContainer["msRequestFullscreen"] || (canvasContainer["webkitRequestFullScreen"] ? (function () {
- canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"]);
- }) : null);
- if (vrDevice) {
- canvasContainer.requestFullScreen({vrDisplay: vrDevice});
- } else {
- canvasContainer.requestFullScreen();
- }
- }),
- nextRAF: 0,
- fakeRequestAnimationFrame: (function (func) {
- var now = Date.now();
- if (Browser.nextRAF === 0) {
- Browser.nextRAF = now + 1e3 / 60;
- } else {
- while (now + 2 >= Browser.nextRAF) {
- Browser.nextRAF += 1e3 / 60;
- }
- }
- var delay = Math.max(Browser.nextRAF - now, 0);
- setTimeout(func, delay);
- }),
- requestAnimationFrame: function requestAnimationFrame(func) {
- if (typeof window === "undefined") {
- Browser.fakeRequestAnimationFrame(func);
- } else {
- if (!window.requestAnimationFrame) {
- window.requestAnimationFrame = window["requestAnimationFrame"] || window["mozRequestAnimationFrame"] || window["webkitRequestAnimationFrame"] || window["msRequestAnimationFrame"] || window["oRequestAnimationFrame"] || Browser.fakeRequestAnimationFrame;
- }
- window.requestAnimationFrame(func);
- }
- },
- safeCallback: (function (func) {
- return (function () {
- if (!ABORT) return func.apply(null, arguments)
- })
- }),
- allowAsyncCallbacks: true,
- queuedAsyncCallbacks: [],
- pauseAsyncCallbacks: (function () {
- Browser.allowAsyncCallbacks = false;
- }),
- resumeAsyncCallbacks: (function () {
- Browser.allowAsyncCallbacks = true;
- if (Browser.queuedAsyncCallbacks.length > 0) {
- var callbacks = Browser.queuedAsyncCallbacks;
- Browser.queuedAsyncCallbacks = [];
- callbacks.forEach((function (func) {
- func();
- }));
- }
- }),
- safeRequestAnimationFrame: (function (func) {
- return Browser.requestAnimationFrame((function () {
- if (ABORT) return;
- if (Browser.allowAsyncCallbacks) {
- func();
- } else {
- Browser.queuedAsyncCallbacks.push(func);
- }
- }))
- }),
- safeSetTimeout: (function (func, timeout) {
- Module["noExitRuntime"] = true;
- return setTimeout((function () {
- if (ABORT) return;
- if (Browser.allowAsyncCallbacks) {
- func();
- } else {
- Browser.queuedAsyncCallbacks.push(func);
- }
- }), timeout)
- }),
- safeSetInterval: (function (func, timeout) {
- Module["noExitRuntime"] = true;
- return setInterval((function () {
- if (ABORT) return;
- if (Browser.allowAsyncCallbacks) {
- func();
- }
- }), timeout)
- }),
- getMimetype: (function (name) {
- return {
- "jpg": "image/jpeg",
- "jpeg": "image/jpeg",
- "png": "image/png",
- "bmp": "image/bmp",
- "ogg": "audio/ogg",
- "wav": "audio/wav",
- "mp3": "audio/mpeg"
- }[name.substr(name.lastIndexOf(".") + 1)]
- }),
- getUserMedia: (function (func) {
- if (!window.getUserMedia) {
- window.getUserMedia = navigator["getUserMedia"] || navigator["mozGetUserMedia"];
- }
- window.getUserMedia(func);
- }),
- getMovementX: (function (event) {
- return event["movementX"] || event["mozMovementX"] || event["webkitMovementX"] || 0
- }),
- getMovementY: (function (event) {
- return event["movementY"] || event["mozMovementY"] || event["webkitMovementY"] || 0
- }),
- getMouseWheelDelta: (function (event) {
- var delta = 0;
- switch (event.type) {
- case"DOMMouseScroll":
- delta = event.detail;
- break;
- case"mousewheel":
- delta = event.wheelDelta;
- break;
- case"wheel":
- delta = event["deltaY"];
- break;
- default:
- throw"unrecognized mouse wheel event: " + event.type
- }
- return delta
- }),
- mouseX: 0,
- mouseY: 0,
- mouseMovementX: 0,
- mouseMovementY: 0,
- touches: {},
- lastTouches: {},
- calculateMouseEvent: (function (event) {
- if (Browser.pointerLock) {
- if (event.type != "mousemove" && "mozMovementX" in event) {
- Browser.mouseMovementX = Browser.mouseMovementY = 0;
- } else {
- Browser.mouseMovementX = Browser.getMovementX(event);
- Browser.mouseMovementY = Browser.getMovementY(event);
- }
- if (typeof SDL != "undefined") {
- Browser.mouseX = SDL.mouseX + Browser.mouseMovementX;
- Browser.mouseY = SDL.mouseY + Browser.mouseMovementY;
- } else {
- Browser.mouseX += Browser.mouseMovementX;
- Browser.mouseY += Browser.mouseMovementY;
- }
- } else {
- var rect = Module["canvas"].getBoundingClientRect();
- var cw = Module["canvas"].width;
- var ch = Module["canvas"].height;
- var scrollX = typeof window.scrollX !== "undefined" ? window.scrollX : window.pageXOffset;
- var scrollY = typeof window.scrollY !== "undefined" ? window.scrollY : window.pageYOffset;
- if (event.type === "touchstart" || event.type === "touchend" || event.type === "touchmove") {
- var touch = event.touch;
- if (touch === undefined) {
- return
- }
- var adjustedX = touch.pageX - (scrollX + rect.left);
- var adjustedY = touch.pageY - (scrollY + rect.top);
- adjustedX = adjustedX * (cw / rect.width);
- adjustedY = adjustedY * (ch / rect.height);
- var coords = {x: adjustedX, y: adjustedY};
- if (event.type === "touchstart") {
- Browser.lastTouches[touch.identifier] = coords;
- Browser.touches[touch.identifier] = coords;
- } else if (event.type === "touchend" || event.type === "touchmove") {
- var last = Browser.touches[touch.identifier];
- if (!last) last = coords;
- Browser.lastTouches[touch.identifier] = last;
- Browser.touches[touch.identifier] = coords;
- }
- return
- }
- var x = event.pageX - (scrollX + rect.left);
- var y = event.pageY - (scrollY + rect.top);
- x = x * (cw / rect.width);
- y = y * (ch / rect.height);
- Browser.mouseMovementX = x - Browser.mouseX;
- Browser.mouseMovementY = y - Browser.mouseY;
- Browser.mouseX = x;
- Browser.mouseY = y;
- }
- }),
- xhrLoad: (function (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);
- } else {
- onerror();
- }
- };
- xhr.onerror = onerror;
- xhr.send(null);
- }),
- asyncLoad: (function (url, onload, onerror, noRunDep) {
- Browser.xhrLoad(url, (function (arrayBuffer) {
- assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).');
- onload(new Uint8Array(arrayBuffer));
- if (!noRunDep) removeRunDependency("al " + url);
- }), (function (event) {
- if (onerror) {
- onerror();
- } else {
- throw'Loading data file "' + url + '" failed.'
- }
- }));
- if (!noRunDep) addRunDependency("al " + url);
- }),
- resizeListeners: [],
- updateResizeListeners: (function () {
- var canvas = Module["canvas"];
- Browser.resizeListeners.forEach((function (listener) {
- listener(canvas.width, canvas.height);
- }));
- }),
- setCanvasSize: (function (width, height, noUpdates) {
- var canvas = Module["canvas"];
- Browser.updateCanvasDimensions(canvas, width, height);
- if (!noUpdates) Browser.updateResizeListeners();
- }),
- windowedWidth: 0,
- windowedHeight: 0,
- setFullScreenCanvasSize: (function () {
- if (typeof SDL != "undefined") {
- var flags = HEAPU32[SDL.screen + Runtime.QUANTUM_SIZE * 0 >> 2];
- flags = flags | 8388608;
- HEAP32[SDL.screen + Runtime.QUANTUM_SIZE * 0 >> 2] = flags;
- }
- Browser.updateResizeListeners();
- }),
- setWindowedCanvasSize: (function () {
- if (typeof SDL != "undefined") {
- var flags = HEAPU32[SDL.screen + Runtime.QUANTUM_SIZE * 0 >> 2];
- flags = flags & ~8388608;
- HEAP32[SDL.screen + Runtime.QUANTUM_SIZE * 0 >> 2] = flags;
- }
- Browser.updateResizeListeners();
- }),
- updateCanvasDimensions: (function (canvas, wNative, hNative) {
- if (wNative && hNative) {
- canvas.widthNative = wNative;
- canvas.heightNative = hNative;
- } else {
- wNative = canvas.widthNative;
- hNative = canvas.heightNative;
- }
- var w = wNative;
- var h = hNative;
- if (Module["forcedAspectRatio"] && Module["forcedAspectRatio"] > 0) {
- if (w / h < Module["forcedAspectRatio"]) {
- w = Math.round(h * Module["forcedAspectRatio"]);
- } else {
- h = Math.round(w / Module["forcedAspectRatio"]);
- }
- }
- if ((document["webkitFullScreenElement"] || document["webkitFullscreenElement"] || document["mozFullScreenElement"] || document["mozFullscreenElement"] || document["fullScreenElement"] || document["fullscreenElement"] || document["msFullScreenElement"] || document["msFullscreenElement"] || document["webkitCurrentFullScreenElement"]) === canvas.parentNode && typeof screen != "undefined") {
- var factor = Math.min(screen.width / w, screen.height / h);
- w = Math.round(w * factor);
- h = Math.round(h * factor);
- }
- if (Browser.resizeCanvas) {
- if (canvas.width != w) canvas.width = w;
- if (canvas.height != h) canvas.height = h;
- if (typeof canvas.style != "undefined") {
- canvas.style.removeProperty("width");
- canvas.style.removeProperty("height");
- }
- } else {
- if (canvas.width != wNative) canvas.width = wNative;
- if (canvas.height != hNative) canvas.height = hNative;
- if (typeof canvas.style != "undefined") {
- if (w != wNative || h != hNative) {
- canvas.style.setProperty("width", w + "px", "important");
- canvas.style.setProperty("height", h + "px", "important");
- } else {
- canvas.style.removeProperty("width");
- canvas.style.removeProperty("height");
- }
- }
- }
- }),
- wgetRequests: {},
- nextWgetRequestHandle: 0,
- getNextWgetRequestHandle: (function () {
- var handle = Browser.nextWgetRequestHandle;
- Browser.nextWgetRequestHandle++;
- return handle
- })
- };
- function _time(ptr) {
- var ret = Date.now() / 1e3 | 0;
- if (ptr) {
- HEAP32[ptr >> 2] = ret;
- }
- return ret
- }
- function _pthread_self() {
- return 0
- }
- Module["requestFullScreen"] = function Module_requestFullScreen(lockPointer, resizeCanvas, vrDevice) {
- Browser.requestFullScreen(lockPointer, resizeCanvas, vrDevice);
- };
- Module["requestAnimationFrame"] = function Module_requestAnimationFrame(func) {
- Browser.requestAnimationFrame(func);
- };
- Module["setCanvasSize"] = function Module_setCanvasSize(width, height, noUpdates) {
- Browser.setCanvasSize(width, height, noUpdates);
- };
- Module["pauseMainLoop"] = function Module_pauseMainLoop() {
- Browser.mainLoop.pause();
- };
- Module["resumeMainLoop"] = function Module_resumeMainLoop() {
- Browser.mainLoop.resume();
- };
- Module["getUserMedia"] = function Module_getUserMedia() {
- Browser.getUserMedia();
- };
- Module["createContext"] = function Module_createContext(canvas, useWebGL, setInModule, webGLContextAttributes) {
- return Browser.createContext(canvas, useWebGL, setInModule, webGLContextAttributes)
- };
- FS.staticInit();
- __ATINIT__.unshift((function () {
- if (!Module["noFSInit"] && !FS.init.initialized) FS.init();
- }));
- __ATMAIN__.push((function () {
- FS.ignorePermissions = false;
- }));
- __ATEXIT__.push((function () {
- FS.quit();
- }));
- Module["FS_createFolder"] = FS.createFolder;
- Module["FS_createPath"] = FS.createPath;
- Module["FS_createDataFile"] = FS.createDataFile;
- Module["FS_createPreloadedFile"] = FS.createPreloadedFile;
- Module["FS_createLazyFile"] = FS.createLazyFile;
- Module["FS_createLink"] = FS.createLink;
- Module["FS_createDevice"] = FS.createDevice;
- Module["FS_unlink"] = FS.unlink;
- __ATINIT__.unshift((function () {
- }));
- __ATEXIT__.push((function () {
- }));
- STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP);
- staticSealed = true;
- STACK_MAX = STACK_BASE + TOTAL_STACK;
- DYNAMIC_BASE = DYNAMICTOP = Runtime.alignMemory(STACK_MAX);
- assert(DYNAMIC_BASE < TOTAL_MEMORY, "TOTAL_MEMORY not big enough for stack");
- 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,
- "_sysconf": _sysconf,
- "_pthread_self": _pthread_self,
- "_abort": _abort,
- "___setErrNo": ___setErrNo,
- "_sbrk": _sbrk,
- "_time": _time,
- "_emscripten_set_main_loop_timing": _emscripten_set_main_loop_timing,
- "_emscripten_memcpy_big": _emscripten_memcpy_big,
- "_emscripten_set_main_loop": _emscripten_set_main_loop,
- "STACKTOP": STACKTOP,
- "STACK_MAX": STACK_MAX,
- "tempDoublePtr": tempDoublePtr,
- "ABORT": ABORT
- };// EMSCRIPTEN_START_ASM
- var asm = (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.STACKTOP | 0;
- var j = env.STACK_MAX | 0;
- var k = env.tempDoublePtr | 0;
- var l = env.ABORT | 0;
- var q = global.NaN, r = global.Infinity;
- var B = 0;
- var L = global.Math.floor;
- var M = global.Math.abs;
- var N = global.Math.sqrt;
- var O = global.Math.pow;
- var P = global.Math.cos;
- var Q = global.Math.sin;
- var R = global.Math.tan;
- var S = global.Math.acos;
- var T = global.Math.asin;
- var U = global.Math.atan;
- var V = global.Math.atan2;
- var W = global.Math.exp;
- var X = global.Math.log;
- var Y = global.Math.ceil;
- var Z = global.Math.imul;
- var _ = global.Math.min;
- var $ = global.Math.clz32;
- var aa = env.abort;
- var ba = env.assert;
- var ca = env._sysconf;
- var da = env._pthread_self;
- var ea = env._abort;
- var fa = env.___setErrNo;
- var ga = env._sbrk;
- var ha = env._time;
- var ia = env._emscripten_set_main_loop_timing;
- var ja = env._emscripten_memcpy_big;
- var ka = env._emscripten_set_main_loop;
- // EMSCRIPTEN_START_FUNCS
- function ma(a) {
- a = a | 0;
- var b = 0;
- b = i;
- i = i + a | 0;
- i = i + 15 & -16;
- return b | 0
- }
- function na() {
- return i | 0
- }
- function oa(a) {
- a = a | 0;
- i = a;
- }
- function pa(a, b) {
- a = a | 0;
- b = b | 0;
- i = a;
- j = b;
- }
- function qa(a, b) {
- a = a | 0;
- b = b | 0;
- }
- function ta(a) {
- a = a | 0;
- B = a;
- }
- function ua() {
- return B | 0
- }
- function va() {
- var a = 0, b = 0;
- b = i;
- i = i + 16 | 0;
- a = b;
- c[a >> 2] = 0;
- Db(a, 31756) | 0;
- i = b;
- return c[a >> 2] | 0
- }
- function wa(a) {
- a = a | 0;
- var b = 0, d = 0;
- b = i;
- i = i + 16 | 0;
- d = b;
- c[d >> 2] = a;
- Eb(d);
- i = b;
- return
- }
- function xa(a, b, c, e) {
- a = a | 0;
- b = b | 0;
- c = c | 0;
- e = e | 0;
- Ea(a, (e | 0) == 0 ? (d[b >> 0] | 0) >>> 3 & 15 : 15, b + 1 | 0, c, 2) | 0;
- return
- }
- function ya(a) {
- a = a | 0;
- var b = 0;
- b = Je(8) | 0;
- Hb(b, b + 4 | 0, a) | 0;
- return b | 0
- }
- function za(a) {
- a = a | 0;
- Ib(a, a + 4 | 0);
- Ke(a);
- return
- }
- function Aa(b, e, f, g, h) {
- b = b | 0;
- e = e | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- var j = 0;
- h = i;
- i = i + 16 | 0;
- j = h;
- c[j >> 2] = e;
- f = (Jb(c[b >> 2] | 0, c[b + 4 >> 2] | 0, e, f, g, j, 3) | 0) << 16 >> 16;
- a[g >> 0] = d[g >> 0] | 0 | 4;
- i = h;
- return f | 0
- }
- function Ba(a) {
- a = a | 0;
- if (!a) a = -1; else {
- b[a >> 1] = 4096;
- a = 0;
- }
- return a | 0
- }
- function Ca(a, d, e, f, g, h) {
- a = a | 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;
- m = c[h >> 2] | 0;
- q = g << 16 >> 16 > 0;
- if (q) {
- i = 0;
- j = 0;
- do {
- l = b[e + (i << 1) >> 1] | 0;
- l = Z(l, l) | 0;
- if ((l | 0) != 1073741824) {
- k = (l << 1) + j | 0;
- if ((l ^ j | 0) > 0 & (k ^ j | 0) < 0) {
- c[h >> 2] = 1;
- j = (j >>> 31) + 2147483647 | 0;
- } else j = k;
- } else {
- c[h >> 2] = 1;
- j = 2147483647;
- }
- i = i + 1 | 0;
- } while ((i & 65535) << 16 >> 16 != g << 16 >> 16);
- if ((j | 0) == 2147483647) {
- c[h >> 2] = m;
- l = 0;
- k = 0;
- do {
- j = b[e + (l << 1) >> 1] >> 2;
- j = Z(j, j) | 0;
- if ((j | 0) != 1073741824) {
- i = (j << 1) + k | 0;
- if ((j ^ k | 0) > 0 & (i ^ k | 0) < 0) {
- c[h >> 2] = 1;
- k = (k >>> 31) + 2147483647 | 0;
- } else k = i;
- } else {
- c[h >> 2] = 1;
- k = 2147483647;
- }
- l = l + 1 | 0;
- } while ((l & 65535) << 16 >> 16 != g << 16 >> 16)
- } else p = 8;
- } else {
- j = 0;
- p = 8;
- }
- if ((p | 0) == 8) k = j >> 4;
- if (!k) {
- b[a >> 1] = 0;
- return
- }
- o = ((pe(k) | 0) & 65535) + 65535 | 0;
- j = o << 16 >> 16;
- if ((o & 65535) << 16 >> 16 > 0) {
- i = k << j;
- if ((i >> j | 0) == (k | 0)) k = i; else k = k >> 31 ^ 2147483647;
- } else {
- j = 0 - j << 16;
- if ((j | 0) < 2031616) k = k >> (j >> 16); else k = 0;
- }
- n = Ce(k, h) | 0;
- i = c[h >> 2] | 0;
- if (q) {
- j = 0;
- k = 0;
- do {
- m = b[d + (j << 1) >> 1] | 0;
- m = Z(m, m) | 0;
- if ((m | 0) != 1073741824) {
- l = (m << 1) + k | 0;
- if ((m ^ k | 0) > 0 & (l ^ k | 0) < 0) {
- c[h >> 2] = 1;
- k = (k >>> 31) + 2147483647 | 0;
- } else k = l;
- } else {
- c[h >> 2] = 1;
- k = 2147483647;
- }
- j = j + 1 | 0;
- } while ((j & 65535) << 16 >> 16 != g << 16 >> 16);
- if ((k | 0) == 2147483647) {
- c[h >> 2] = i;
- m = 0;
- k = 0;
- do {
- l = b[d + (m << 1) >> 1] >> 2;
- l = Z(l, l) | 0;
- if ((l | 0) != 1073741824) {
- j = (l << 1) + k | 0;
- if ((l ^ k | 0) > 0 & (j ^ k | 0) < 0) {
- c[h >> 2] = 1;
- k = (k >>> 31) + 2147483647 | 0;
- } else k = j;
- } else {
- c[h >> 2] = 1;
- k = 2147483647;
- }
- m = m + 1 | 0;
- } while ((m & 65535) << 16 >> 16 != g << 16 >> 16)
- } else p = 29;
- } else {
- k = 0;
- p = 29;
- }
- if ((p | 0) == 29) k = k >> 4;
- if (!k) l = 0; else {
- j = (pe(k) | 0) << 16 >> 16;
- i = o - j | 0;
- l = i & 65535;
- k = (Td(n, Ce(k << j, h) | 0) | 0) << 16 >> 16;
- j = k << 7;
- i = i << 16 >> 16;
- if (l << 16 >> 16 > 0) i = l << 16 >> 16 < 31 ? j >> i : 0; else {
- p = 0 - i << 16 >> 16;
- i = j << p;
- i = (i >> p | 0) == (j | 0) ? i : k >> 24 ^ 2147483647;
- }
- l = (Z(((ce(i, h) | 0) << 9) + 32768 >> 16, 32767 - (f & 65535) << 16 >> 16) | 0) >>> 15 << 16 >> 16;
- }
- i = b[a >> 1] | 0;
- if (q) {
- k = f << 16 >> 16;
- j = 0;
- while (1) {
- f = ((Z(i << 16 >> 16, k) | 0) >>> 15 & 65535) + l | 0;
- i = f & 65535;
- b[e >> 1] = (Z(b[e >> 1] | 0, f << 16 >> 16) | 0) >>> 12;
- j = j + 1 << 16 >> 16;
- if (j << 16 >> 16 >= g << 16 >> 16) break; else e = e + 2 | 0;
- }
- }
- b[a >> 1] = i;
- return
- }
- function Da(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, l = 0, m = 0, n = 0, o = 0;
- i = c[f >> 2] | 0;
- g = e << 16 >> 16 > 0;
- if (g) {
- j = 0;
- h = 0;
- do {
- l = b[d + (j << 1) >> 1] | 0;
- l = Z(l, l) | 0;
- if ((l | 0) != 1073741824) {
- k = (l << 1) + h | 0;
- if ((l ^ h | 0) > 0 & (k ^ h | 0) < 0) {
- c[f >> 2] = 1;
- h = (h >>> 31) + 2147483647 | 0;
- } else h = k;
- } else {
- c[f >> 2] = 1;
- h = 2147483647;
- }
- j = j + 1 | 0;
- } while ((j & 65535) << 16 >> 16 != e << 16 >> 16);
- if ((h | 0) == 2147483647) {
- c[f >> 2] = i;
- l = 0;
- i = 0;
- do {
- k = b[d + (l << 1) >> 1] >> 2;
- k = Z(k, k) | 0;
- if ((k | 0) != 1073741824) {
- j = (k << 1) + i | 0;
- if ((k ^ i | 0) > 0 & (j ^ i | 0) < 0) {
- c[f >> 2] = 1;
- i = (i >>> 31) + 2147483647 | 0;
- } else i = j;
- } else {
- c[f >> 2] = 1;
- i = 2147483647;
- }
- l = l + 1 | 0;
- } while ((l & 65535) << 16 >> 16 != e << 16 >> 16)
- } else o = 8;
- } else {
- h = 0;
- o = 8;
- }
- if ((o | 0) == 8) i = h >> 4;
- if (!i) return;
- n = ((pe(i) | 0) & 65535) + 65535 | 0;
- k = n << 16 >> 16;
- if ((n & 65535) << 16 >> 16 > 0) {
- j = i << k;
- if ((j >> k | 0) == (i | 0)) i = j; else i = i >> 31 ^ 2147483647;
- } else {
- k = 0 - k << 16;
- if ((k | 0) < 2031616) i = i >> (k >> 16); else i = 0;
- }
- m = Ce(i, f) | 0;
- i = c[f >> 2] | 0;
- if (g) {
- j = 0;
- h = 0;
- do {
- l = b[a + (j << 1) >> 1] | 0;
- l = Z(l, l) | 0;
- if ((l | 0) != 1073741824) {
- k = (l << 1) + h | 0;
- if ((l ^ h | 0) > 0 & (k ^ h | 0) < 0) {
- c[f >> 2] = 1;
- h = (h >>> 31) + 2147483647 | 0;
- } else h = k;
- } else {
- c[f >> 2] = 1;
- h = 2147483647;
- }
- j = j + 1 | 0;
- } while ((j & 65535) << 16 >> 16 != e << 16 >> 16);
- if ((h | 0) == 2147483647) {
- c[f >> 2] = i;
- i = 0;
- j = 0;
- do {
- l = b[a + (i << 1) >> 1] >> 2;
- l = Z(l, l) | 0;
- if ((l | 0) != 1073741824) {
- k = (l << 1) + j | 0;
- if ((l ^ j | 0) > 0 & (k ^ j | 0) < 0) {
- c[f >> 2] = 1;
- j = (j >>> 31) + 2147483647 | 0;
- } else j = k;
- } else {
- c[f >> 2] = 1;
- j = 2147483647;
- }
- i = i + 1 | 0;
- } while ((i & 65535) << 16 >> 16 != e << 16 >> 16)
- } else o = 28;
- } else {
- h = 0;
- o = 28;
- }
- if ((o | 0) == 28) j = h >> 4;
- if (!j) g = 0; else {
- l = pe(j) | 0;
- k = l << 16 >> 16;
- if (l << 16 >> 16 > 0) {
- i = j << k;
- if ((i >> k | 0) == (j | 0)) j = i; else j = j >> 31 ^ 2147483647;
- } else {
- k = 0 - k << 16;
- if ((k | 0) < 2031616) j = j >> (k >> 16); else j = 0;
- }
- i = n - (l & 65535) | 0;
- k = i & 65535;
- h = (Td(m, Ce(j, f) | 0) | 0) << 16 >> 16;
- g = h << 7;
- i = i << 16 >> 16;
- if (k << 16 >> 16 > 0) g = k << 16 >> 16 < 31 ? g >> i : 0; else {
- n = 0 - i << 16 >> 16;
- a = g << n;
- g = (a >> n | 0) == (g | 0) ? a : h >> 24 ^ 2147483647;
- }
- g = ce(g, f) | 0;
- if ((g | 0) > 4194303) g = 2147483647; else g = (g | 0) < -4194304 ? -2147483648 : g << 9;
- g = Ce(g, f) | 0;
- }
- h = (e & 65535) + 65535 & 65535;
- if (h << 16 >> 16 <= -1) return;
- l = g << 16 >> 16;
- k = e + -1 << 16 >> 16 << 16 >> 16;
- while (1) {
- i = d + (k << 1) | 0;
- g = Z(b[i >> 1] | 0, l) | 0;
- do if ((g | 0) != 1073741824) {
- j = g << 1;
- if ((j | 0) <= 268435455) if ((j | 0) < -268435456) {
- b[i >> 1] = -32768;
- break
- } else {
- b[i >> 1] = g >>> 12;
- break
- } else o = 52;
- } else {
- c[f >> 2] = 1;
- o = 52;
- } while (0);
- if ((o | 0) == 52) {
- o = 0;
- b[i >> 1] = 32767;
- }
- h = h + -1 << 16 >> 16;
- if (h << 16 >> 16 <= -1) break; else k = k + -1 | 0;
- }
- return
- }
- function Ea(a, d, e, f, g) {
- a = a | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- g = g | 0;
- var h = 0, j = 0, k = 0, l = 0;
- l = i;
- i = i + 496 | 0;
- k = l;
- j = (g | 0) == 2;
- do if (!(j & 1 | (g | 0) == 4)) {
- if (g) {
- a = -1;
- i = l;
- return a | 0
- }
- j = b[e >> 1] | 0;
- d = e + 490 | 0;
- g = e + 2 | 0;
- h = 0;
- while (1) {
- b[k + (h << 1) >> 1] = b[g >> 1] | 0;
- h = h + 1 | 0;
- if ((h | 0) == 244) break; else g = g + 2 | 0;
- }
- h = j << 16 >> 16;
- if (j << 16 >> 16 == 7) {
- g = 492;
- d = c[a + 1760 >> 2] | 0;
- break
- } else {
- g = 492;
- d = b[d >> 1] | 0;
- break
- }
- } else {
- h = a + 1168 | 0;
- if (j) {
- Gb(d, e, k, h);
- h = 604;
- } else {
- pb(d, e, k, h);
- h = 3436;
- }
- g = b[h + (d << 1) >> 1] | 0;
- do if (d >>> 0 >= 8) {
- if ((d | 0) == 8) {
- d = b[k + 76 >> 1] << 2 | (b[k + 74 >> 1] << 1 | b[k + 72 >> 1]);
- h = (b[k + 70 >> 1] | 0) == 0 ? 4 : 5;
- break
- }
- if (d >>> 0 < 15) {
- a = -1;
- i = l;
- return a | 0
- } else {
- d = c[a + 1760 >> 2] | 0;
- h = 7;
- break
- }
- } else h = 0; while (0);
- if (g << 16 >> 16 == -1) {
- a = -1;
- i = l;
- return a | 0
- }
- } while (0);
- Fb(a, d, k, h, f);
- c[a + 1760 >> 2] = d;
- a = g;
- i = l;
- return a | 0
- }
- function Fa(a, d, f) {
- a = a | 0;
- d = d | 0;
- f = f | 0;
- var g = 0, h = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0;
- t = i;
- i = i + 48 | 0;
- r = t + 20 | 0;
- s = t;
- h = r;
- g = h + 20 | 0;
- do {
- b[h >> 1] = b[a >> 1] | 0;
- h = h + 2 | 0;
- a = a + 2 | 0;
- } while ((h | 0) < (g | 0));
- a = b[r + 18 >> 1] | 0;
- q = (a & 65535) - ((a & 65535) >>> 15 & 65535) | 0;
- a:do if (((q << 16 >> 31 ^ q) & 65535) << 16 >> 16 <= 4095) {
- g = 9;
- q = 9;
- while (1) {
- a = a << 16 >> 16;
- a = (a << 19 >> 19 | 0) == (a | 0) ? a << 3 : a >>> 15 ^ 32767;
- p = d + (g << 1) | 0;
- b[p >> 1] = a;
- a = a << 16 >> 16;
- a = Z(a, a) | 0;
- if ((a | 0) == 1073741824) {
- c[f >> 2] = 1;
- h = 2147483647;
- } else h = a << 1;
- a = 2147483647 - h | 0;
- if ((a & h | 0) < 0) {
- c[f >> 2] = 1;
- a = 2147483647;
- }
- n = pe(a) | 0;
- o = 15 - (n & 65535) & 65535;
- j = n << 16 >> 16;
- if (n << 16 >> 16 > 0) {
- h = a << j;
- if ((h >> j | 0) != (a | 0)) h = a >> 31 ^ 2147483647;
- } else {
- h = 0 - j << 16;
- if ((h | 0) < 2031616) h = a >> (h >> 16); else h = 0;
- }
- h = Td(16384, Ce(h, f) | 0) | 0;
- do if (q << 16 >> 16 > 0) {
- n = g + -1 | 0;
- k = h << 16 >> 16;
- l = q << 16 >> 16;
- m = 0;
- while (1) {
- g = e[r + (m << 1) >> 1] | 0;
- a = g << 16;
- j = Z(b[r + (n - m << 1) >> 1] | 0, b[p >> 1] | 0) | 0;
- if ((j | 0) == 1073741824) {
- c[f >> 2] = 1;
- h = 2147483647;
- } else h = j << 1;
- j = a - h | 0;
- if (((j ^ a) & (h ^ a) | 0) < 0) {
- c[f >> 2] = 1;
- j = (g >>> 15) + 2147483647 | 0;
- }
- j = Z((Ce(j, f) | 0) << 16 >> 16, k) | 0;
- if ((j | 0) == 1073741824) {
- c[f >> 2] = 1;
- j = 2147483647;
- } else j = j << 1;
- j = ge(j, o, f) | 0;
- h = j - (j >>> 31) | 0;
- if ((h >> 31 ^ h | 0) > 32767) {
- j = 24;
- break
- }
- b[s + (m << 1) >> 1] = j;
- m = m + 1 | 0;
- if ((l | 0) <= (m | 0)) {
- j = 26;
- break
- }
- }
- if ((j | 0) == 24) {
- j = 0;
- h = d;
- g = h + 20 | 0;
- do {
- b[h >> 1] = 0;
- h = h + 2 | 0;
- } while ((h | 0) < (g | 0));
- a = 10;
- } else if ((j | 0) == 26) {
- j = 0;
- if (q << 16 >> 16 > 0) a = q; else {
- j = 28;
- break
- }
- }
- h = a + -1 << 16 >> 16;
- Oe(r | 0, s | 0, ((h & 65535) << 1) + 2 | 0) | 0;
- g = h << 16 >> 16;
- } else j = 28; while (0);
- if ((j | 0) == 28) {
- a = q + -1 << 16 >> 16;
- if (a << 16 >> 16 > -1) {
- g = a << 16 >> 16;
- h = 32767;
- } else break
- }
- a = b[r + (g << 1) >> 1] | 0;
- q = (a & 65535) - ((a & 65535) >>> 15 & 65535) | 0;
- if (((q << 16 >> 31 ^ q) & 65535) << 16 >> 16 > 4095) break a; else q = h;
- }
- i = t;
- return
- } while (0);
- h = d;
- g = h + 20 | 0;
- do {
- b[h >> 1] = 0;
- h = h + 2 | 0;
- } while ((h | 0) < (g | 0));
- i = t;
- return
- }
- function Ga(a, b) {
- a = a | 0;
- b = b | 0;
- var d = 0, e = 0, f = 0, g = 0, h = 0;
- if (b << 16 >> 16 <= 0) {
- a = 0;
- return a | 0
- }
- e = c[a >> 2] | 0;
- f = 0;
- d = 0;
- do {
- h = e & 1;
- d = h | d << 1 & 131070;
- g = e >> 1;
- e = (h | 0) == (e >>> 28 & 1 | 0) ? g : g | 1073741824;
- f = f + 1 << 16 >> 16;
- } while (f << 16 >> 16 < b << 16 >> 16);
- c[a >> 2] = e;
- h = d & 65535;
- return h | 0
- }
- function Ha(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;
- g = d;
- f = g + 80 | 0;
- do {
- b[g >> 1] = 0;
- g = g + 2 | 0;
- } while ((g | 0) < (f | 0));
- f = 0;
- g = c[a >> 2] | 0;
- do {
- k = g & 1;
- j = g >> 1;
- j = (k | 0) == (g >>> 28 & 1 | 0) ? j : j | 1073741824;
- h = j & 1;
- i = j >> 1;
- c[a >> 2] = (h | 0) == (j >>> 28 & 1 | 0) ? i : i | 1073741824;
- h = Rd((Z(k << 1 | h, 1310720) | 0) >>> 17 & 65535, f, e) | 0;
- k = c[a >> 2] | 0;
- i = k & 1;
- j = k >> 1;
- g = (i | 0) == (k >>> 28 & 1 | 0) ? j : j | 1073741824;
- c[a >> 2] = g;
- b[d + (h << 16 >> 16 << 1) >> 1] = ((i & 65535) << 13 & 65535) + -4096 << 16 >> 16;
- f = f + 1 << 16 >> 16;
- } while (f << 16 >> 16 < 10);
- return
- }
- function Ia(a, d, f, g, h, i) {
- a = a | 0;
- d = d | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- i = i | 0;
- var j = 0, k = 0;
- j = b[a >> 1] | 0;
- if ((j * 31821 | 0) == 1073741824) {
- c[i >> 2] = 1;
- k = 1073741823;
- } else k = j * 63642 >> 1;
- j = k + 13849 | 0;
- if ((k | 0) > -1 & (j ^ k | 0) < 0) {
- c[i >> 2] = 1;
- j = (k >>> 31) + 2147483647 | 0;
- }
- b[a >> 1] = j;
- if (d << 16 >> 16 <= 0) return;
- k = 0;
- j = h + ((j & 127) << 1) | 0;
- while (1) {
- b[g + (k << 1) >> 1] = (-65536 << b[f + (k << 1) >> 1] >>> 16 ^ 65535) & e[j >> 1];
- k = k + 1 | 0;
- if ((k & 65535) << 16 >> 16 == d << 16 >> 16) break; else j = j + 2 | 0;
- }
- return
- }
- function Ja(a) {
- a = a | 0;
- var c = 0;
- if (!a) {
- c = -1;
- return c | 0
- }
- c = a + 122 | 0;
- do {
- b[a >> 1] = 0;
- a = a + 2 | 0;
- } while ((a | 0) < (c | 0));
- c = 0;
- return c | 0
- }
- function Ka(a, d, f, g, h) {
- a = a | 0;
- d = d | 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;
- k = 159;
- j = 0;
- while (1) {
- m = b[f + (k << 1) >> 1] | 0;
- m = Z(m, m) | 0;
- m = (m | 0) == 1073741824 ? 2147483647 : m << 1;
- i = m + j | 0;
- if ((m ^ j | 0) > -1 & (i ^ j | 0) < 0) {
- c[h >> 2] = 1;
- j = (j >>> 31) + 2147483647 | 0;
- } else j = i;
- if ((k | 0) > 0) k = k + -1 | 0; else {
- k = j;
- break
- }
- }
- h = k >>> 14 & 65535;
- j = 32767;
- i = 59;
- while (1) {
- m = b[a + (i << 1) >> 1] | 0;
- j = m << 16 >> 16 < j << 16 >> 16 ? m : j;
- if ((i | 0) > 0) i = i + -1 | 0; else break
- }
- m = (k | 0) > 536870911 ? 32767 : h;
- h = j << 16 >> 16;
- i = h << 20 >> 16;
- k = j << 16 >> 16 > 0 ? 32767 : -32768;
- f = 55;
- j = b[a >> 1] | 0;
- while (1) {
- l = b[a + (f << 1) >> 1] | 0;
- j = j << 16 >> 16 < l << 16 >> 16 ? l : j;
- if ((f | 0) > 1) f = f + -1 | 0; else break
- }
- f = b[a + 80 >> 1] | 0;
- l = b[a + 82 >> 1] | 0;
- f = f << 16 >> 16 < l << 16 >> 16 ? l : f;
- l = b[a + 84 >> 1] | 0;
- f = f << 16 >> 16 < l << 16 >> 16 ? l : f;
- l = b[a + 86 >> 1] | 0;
- f = f << 16 >> 16 < l << 16 >> 16 ? l : f;
- l = b[a + 88 >> 1] | 0;
- f = f << 16 >> 16 < l << 16 >> 16 ? l : f;
- l = b[a + 90 >> 1] | 0;
- f = f << 16 >> 16 < l << 16 >> 16 ? l : f;
- l = b[a + 92 >> 1] | 0;
- f = f << 16 >> 16 < l << 16 >> 16 ? l : f;
- l = b[a + 94 >> 1] | 0;
- f = f << 16 >> 16 < l << 16 >> 16 ? l : f;
- l = b[a + 96 >> 1] | 0;
- f = f << 16 >> 16 < l << 16 >> 16 ? l : f;
- l = b[a + 98 >> 1] | 0;
- f = f << 16 >> 16 < l << 16 >> 16 ? l : f;
- l = b[a + 100 >> 1] | 0;
- f = f << 16 >> 16 < l << 16 >> 16 ? l : f;
- l = b[a + 102 >> 1] | 0;
- f = f << 16 >> 16 < l << 16 >> 16 ? l : f;
- l = b[a + 104 >> 1] | 0;
- f = f << 16 >> 16 < l << 16 >> 16 ? l : f;
- l = b[a + 106 >> 1] | 0;
- f = f << 16 >> 16 < l << 16 >> 16 ? l : f;
- l = b[a + 108 >> 1] | 0;
- f = f << 16 >> 16 < l << 16 >> 16 ? l : f;
- l = b[a + 110 >> 1] | 0;
- f = f << 16 >> 16 < l << 16 >> 16 ? l : f;
- l = b[a + 112 >> 1] | 0;
- f = f << 16 >> 16 < l << 16 >> 16 ? l : f;
- l = b[a + 114 >> 1] | 0;
- f = f << 16 >> 16 < l << 16 >> 16 ? l : f;
- l = b[a + 116 >> 1] | 0;
- f = f << 16 >> 16 < l << 16 >> 16 ? l : f;
- l = a + 118 | 0;
- o = b[l >> 1] | 0;
- do if ((m + -21 & 65535) < 17557 & j << 16 >> 16 > 20 ? ((m << 16 >> 16 | 0) < (((h << 4 | 0) == (i | 0) ? i : k) | 0) ? 1 : (f << 16 >> 16 < o << 16 >> 16 ? o : f) << 16 >> 16 < 1953) : 0) {
- j = a + 120 | 0;
- i = b[j >> 1] | 0;
- if (i << 16 >> 16 > 29) {
- b[j >> 1] = 30;
- f = j;
- k = 1;
- break
- } else {
- k = (i & 65535) + 1 & 65535;
- b[j >> 1] = k;
- f = j;
- k = k << 16 >> 16 > 1 & 1;
- break
- }
- } else n = 14; while (0);
- if ((n | 0) == 14) {
- f = a + 120 | 0;
- b[f >> 1] = 0;
- k = 0;
- }
- j = 0;
- do {
- o = j;
- j = j + 1 | 0;
- b[a + (o << 1) >> 1] = b[a + (j << 1) >> 1] | 0;
- } while ((j | 0) != 59);
- b[l >> 1] = m;
- j = b[f >> 1] | 0;
- j = j << 16 >> 16 > 15 ? 16383 : j << 16 >> 16 > 8 ? 15565 : 13926;
- i = Zd(d + 8 | 0, 5) | 0;
- if ((b[f >> 1] | 0) > 20) {
- if (((Zd(d, 9) | 0) << 16 >> 16 | 0) > (j | 0)) n = 20;
- } else if ((i << 16 >> 16 | 0) > (j | 0)) n = 20;
- if ((n | 0) == 20) {
- b[g >> 1] = 0;
- return k | 0
- }
- i = (e[g >> 1] | 0) + 1 & 65535;
- if (i << 16 >> 16 > 10) {
- b[g >> 1] = 10;
- return k | 0
- } else {
- b[g >> 1] = i;
- return k | 0
- }
- return 0
- }
- function La(a) {
- a = a | 0;
- var c = 0;
- if (!a) {
- c = -1;
- return c | 0
- }
- c = a + 18 | 0;
- do {
- b[a >> 1] = 0;
- a = a + 2 | 0;
- } while ((a | 0) < (c | 0));
- c = 0;
- return c | 0
- }
- function Ma(a, d, f, g, h, i, j, k, l, m, n, o) {
- a = a | 0;
- d = d | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- i = i | 0;
- j = j | 0;
- k = k | 0;
- l = l | 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;
- y = a + 2 | 0;
- b[a >> 1] = b[y >> 1] | 0;
- z = a + 4 | 0;
- b[y >> 1] = b[z >> 1] | 0;
- A = a + 6 | 0;
- b[z >> 1] = b[A >> 1] | 0;
- B = a + 8 | 0;
- b[A >> 1] = b[B >> 1] | 0;
- C = a + 10 | 0;
- b[B >> 1] = b[C >> 1] | 0;
- D = a + 12 | 0;
- b[C >> 1] = b[D >> 1] | 0;
- b[D >> 1] = f;
- t = 0;
- x = 0;
- do {
- p = h + (x << 1) | 0;
- r = Ge(b[p >> 1] | 0, b[g + (x << 1) >> 1] | 0, o) | 0;
- r = (r & 65535) - ((r & 65535) >>> 15 & 65535) | 0;
- r = r << 16 >> 31 ^ r;
- w = ((qe(r & 65535) | 0) & 65535) + 65535 | 0;
- q = w << 16 >> 16;
- if ((w & 65535) << 16 >> 16 < 0) {
- s = 0 - q << 16;
- if ((s | 0) < 983040) u = r << 16 >> 16 >> (s >> 16) & 65535; else u = 0;
- } else {
- s = r << 16 >> 16;
- r = s << q;
- if ((r << 16 >> 16 >> q | 0) == (s | 0)) u = r & 65535; else u = (s >>> 15 ^ 32767) & 65535;
- }
- v = qe(b[p >> 1] | 0) | 0;
- r = b[p >> 1] | 0;
- q = v << 16 >> 16;
- if (v << 16 >> 16 < 0) {
- s = 0 - q << 16;
- if ((s | 0) < 983040) s = r << 16 >> 16 >> (s >> 16) & 65535; else s = 0;
- } else {
- s = r << 16 >> 16;
- r = s << q;
- if ((r << 16 >> 16 >> q | 0) == (s | 0)) s = r & 65535; else s = (s >>> 15 ^ 32767) & 65535;
- }
- q = Td(u, s) | 0;
- s = (w & 65535) + 2 - (v & 65535) | 0;
- r = s & 65535;
- do if (s & 32768) {
- if (r << 16 >> 16 != -32768) {
- w = 0 - s | 0;
- s = w << 16 >> 16;
- if ((w & 65535) << 16 >> 16 < 0) {
- s = 0 - s << 16;
- if ((s | 0) >= 983040) {
- s = 0;
- break
- }
- s = q << 16 >> 16 >> (s >> 16) & 65535;
- break
- }
- } else s = 32767;
- r = q << 16 >> 16;
- q = r << s;
- if ((q << 16 >> 16 >> s | 0) == (r | 0)) s = q & 65535; else s = (r >>> 15 ^ 32767) & 65535;
- } else s = De(q, r, o) | 0; while (0);
- t = Rd(t, s, o) | 0;
- x = x + 1 | 0;
- } while ((x | 0) != 10);
- s = t & 65535;
- r = t << 16 >> 16 > 5325;
- t = a + 14 | 0;
- if (r) {
- h = (e[t >> 1] | 0) + 1 & 65535;
- b[t >> 1] = h;
- if (h << 16 >> 16 > 10) b[a + 16 >> 1] = 0;
- } else b[t >> 1] = 0;
- switch (d | 0) {
- case 0:
- case 1:
- case 2:
- case 3:
- case 6:
- break;
- default: {
- D = a + 16 | 0;
- o = f;
- f = b[D >> 1] | 0;
- f = f & 65535;
- f = f + 1 | 0;
- f = f & 65535;
- b[D >> 1] = f;
- return o | 0
- }
- }
- u = (j | i) << 16 >> 16 == 0;
- v = m << 16 >> 16 == 0;
- w = d >>> 0 < 3;
- t = s + (w & ((v | (u & (k << 16 >> 16 == 0 | l << 16 >> 16 == 0) | n << 16 >> 16 < 2)) ^ 1) ? 61030 : 62259) & 65535;
- t = t << 16 >> 16 > 0 ? t : 0;
- if (t << 16 >> 16 <= 2048) {
- t = t << 16 >> 16;
- if ((t << 18 >> 18 | 0) == (t | 0)) l = t << 2; else l = t >>> 15 ^ 32767;
- } else l = 8192;
- k = a + 16 | 0;
- n = r | (b[k >> 1] | 0) < 40;
- t = b[z >> 1] | 0;
- if ((t * 6554 | 0) == 1073741824) {
- c[o >> 2] = 1;
- r = 2147483647;
- } else r = t * 13108 | 0;
- t = b[A >> 1] | 0;
- s = t * 6554 | 0;
- if ((s | 0) != 1073741824) {
- t = (t * 13108 | 0) + r | 0;
- if ((s ^ r | 0) > 0 & (t ^ r | 0) < 0) {
- c[o >> 2] = 1;
- t = (r >>> 31) + 2147483647 | 0;
- }
- } else {
- c[o >> 2] = 1;
- t = 2147483647;
- }
- s = b[B >> 1] | 0;
- r = s * 6554 | 0;
- if ((r | 0) != 1073741824) {
- s = (s * 13108 | 0) + t | 0;
- if ((r ^ t | 0) > 0 & (s ^ t | 0) < 0) {
- c[o >> 2] = 1;
- s = (t >>> 31) + 2147483647 | 0;
- }
- } else {
- c[o >> 2] = 1;
- s = 2147483647;
- }
- t = b[C >> 1] | 0;
- r = t * 6554 | 0;
- if ((r | 0) != 1073741824) {
- t = (t * 13108 | 0) + s | 0;
- if ((r ^ s | 0) > 0 & (t ^ s | 0) < 0) {
- c[o >> 2] = 1;
- r = (s >>> 31) + 2147483647 | 0;
- } else r = t;
- } else {
- c[o >> 2] = 1;
- r = 2147483647;
- }
- t = b[D >> 1] | 0;
- s = t * 6554 | 0;
- if ((s | 0) != 1073741824) {
- t = (t * 13108 | 0) + r | 0;
- if ((s ^ r | 0) > 0 & (t ^ r | 0) < 0) {
- c[o >> 2] = 1;
- t = (r >>> 31) + 2147483647 | 0;
- }
- } else {
- c[o >> 2] = 1;
- t = 2147483647;
- }
- r = Ce(t, o) | 0;
- if (w & ((u | v) ^ 1)) {
- t = b[a >> 1] | 0;
- if ((t * 4681 | 0) == 1073741824) {
- c[o >> 2] = 1;
- r = 2147483647;
- } else r = t * 9362 | 0;
- t = b[y >> 1] | 0;
- s = t * 4681 | 0;
- if ((s | 0) != 1073741824) {
- t = (t * 9362 | 0) + r | 0;
- if ((s ^ r | 0) > 0 & (t ^ r | 0) < 0) {
- c[o >> 2] = 1;
- r = (r >>> 31) + 2147483647 | 0;
- } else r = t;
- } else {
- c[o >> 2] = 1;
- r = 2147483647;
- }
- t = b[z >> 1] | 0;
- s = t * 4681 | 0;
- if ((s | 0) != 1073741824) {
- t = (t * 9362 | 0) + r | 0;
- if ((s ^ r | 0) > 0 & (t ^ r | 0) < 0) {
- c[o >> 2] = 1;
- r = (r >>> 31) + 2147483647 | 0;
- } else r = t;
- } else {
- c[o >> 2] = 1;
- r = 2147483647;
- }
- t = b[A >> 1] | 0;
- s = t * 4681 | 0;
- if ((s | 0) != 1073741824) {
- t = (t * 9362 | 0) + r | 0;
- if ((s ^ r | 0) > 0 & (t ^ r | 0) < 0) {
- c[o >> 2] = 1;
- t = (r >>> 31) + 2147483647 | 0;
- }
- } else {
- c[o >> 2] = 1;
- t = 2147483647;
- }
- s = b[B >> 1] | 0;
- r = s * 4681 | 0;
- if ((r | 0) != 1073741824) {
- s = (s * 9362 | 0) + t | 0;
- if ((r ^ t | 0) > 0 & (s ^ t | 0) < 0) {
- c[o >> 2] = 1;
- t = (t >>> 31) + 2147483647 | 0;
- } else t = s;
- } else {
- c[o >> 2] = 1;
- t = 2147483647;
- }
- s = b[C >> 1] | 0;
- r = s * 4681 | 0;
- if ((r | 0) != 1073741824) {
- s = (s * 9362 | 0) + t | 0;
- if ((r ^ t | 0) > 0 & (s ^ t | 0) < 0) {
- c[o >> 2] = 1;
- s = (t >>> 31) + 2147483647 | 0;
- }
- } else {
- c[o >> 2] = 1;
- s = 2147483647;
- }
- r = b[D >> 1] | 0;
- p = r * 4681 | 0;
- if ((p | 0) != 1073741824) {
- q = (r * 9362 | 0) + s | 0;
- if ((p ^ s | 0) > 0 & (q ^ s | 0) < 0) {
- c[o >> 2] = 1;
- q = (s >>> 31) + 2147483647 | 0;
- }
- } else {
- c[o >> 2] = 1;
- q = 2147483647;
- }
- r = Ce(q, o) | 0;
- }
- t = n ? 8192 : l << 16 >> 16;
- p = Z(t, f << 16 >> 16) | 0;
- if ((p | 0) == 1073741824) {
- c[o >> 2] = 1;
- s = 2147483647;
- } else s = p << 1;
- r = r << 16 >> 16;
- q = r << 13;
- if ((q | 0) != 1073741824) {
- p = s + (r << 14) | 0;
- if ((s ^ q | 0) > 0 & (p ^ s | 0) < 0) {
- c[o >> 2] = 1;
- s = (s >>> 31) + 2147483647 | 0;
- } else s = p;
- } else {
- c[o >> 2] = 1;
- s = 2147483647;
- }
- p = Z(r, t) | 0;
- if ((p | 0) == 1073741824) {
- c[o >> 2] = 1;
- q = 2147483647;
- } else q = p << 1;
- p = s - q | 0;
- if (((p ^ s) & (q ^ s) | 0) < 0) {
- c[o >> 2] = 1;
- p = (s >>> 31) + 2147483647 | 0;
- }
- D = p << 2;
- f = k;
- o = Ce((D >> 2 | 0) == (p | 0) ? D : p >> 31 ^ 2147483647, o) | 0;
- D = b[f >> 1] | 0;
- D = D & 65535;
- D = D + 1 | 0;
- D = D & 65535;
- b[f >> 1] = D;
- return o | 0
- }
- function Na(a, c, d) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- var f = 0, g = 0, h = 0, i = 0;
- f = c;
- g = f + 80 | 0;
- do {
- b[f >> 1] = 0;
- f = f + 2 | 0;
- } while ((f | 0) < (g | 0));
- f = 0;
- do {
- i = b[a + (f << 1) >> 1] | 0;
- g = ((i & 8) << 10 & 65535 ^ 8192) + -4096 << 16 >> 16;
- h = f << 16;
- i = ((b[d + ((i & 7) << 1) >> 1] | 0) * 327680 | 0) + h >> 16;
- b[c + (i << 1) >> 1] = g;
- h = ((b[d + ((e[a + (f + 5 << 1) >> 1] & 7) << 1) >> 1] | 0) * 327680 | 0) + h >> 16;
- if ((h | 0) < (i | 0)) g = 0 - (g & 65535) & 65535;
- i = c + (h << 1) | 0;
- b[i >> 1] = (e[i >> 1] | 0) + (g & 65535);
- f = f + 1 | 0;
- } while ((f | 0) != 5);
- return
- }
- function Oa(a, c, d) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- var e = 0, f = 0, g = 0;
- f = c << 16 >> 16;
- e = (f << 1 & 2 | 1) + ((f >>> 1 & 7) * 5 | 0) | 0;
- c = f >>> 4 & 3;
- c = ((f >>> 6 & 7) * 5 | 0) + ((c | 0) == 3 ? 4 : c) | 0;
- f = d;
- g = f + 80 | 0;
- do {
- b[f >> 1] = 0;
- f = f + 2 | 0;
- } while ((f | 0) < (g | 0));
- a = a << 16 >> 16;
- b[d + (e << 1) >> 1] = (0 - (a & 1) & 16383) + 57344;
- b[d + (c << 1) >> 1] = (0 - (a >>> 1 & 1) & 16383) + 57344;
- return
- }
- function Pa(a, c, d, f, g, h) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- var i = 0, j = 0;
- h = d << 16 >> 16;
- j = h >>> 3;
- a = a << 16 >> 16;
- a = ((a << 17 >> 17 | 0) == (a | 0) ? a << 1 : a >>> 15 ^ 32767) + (j & 8) << 16;
- j = (e[f + (a + 65536 >> 16 << 1) >> 1] | 0) + ((j & 7) * 5 | 0) | 0;
- d = c << 16 >> 16;
- i = (0 - (d & 1) & 16383) + 57344 & 65535;
- a = g + ((e[f + (a >> 16 << 1) >> 1] | 0) + ((h & 7) * 5 | 0) << 16 >> 16 << 1) | 0;
- c = g;
- h = c + 80 | 0;
- do {
- b[c >> 1] = 0;
- c = c + 2 | 0;
- } while ((c | 0) < (h | 0));
- b[a >> 1] = i;
- b[g + (j << 16 >> 16 << 1) >> 1] = (0 - (d >>> 1 & 1) & 16383) + 57344;
- return
- }
- function Qa(a, c, d) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- var e = 0, f = 0, g = 0, h = 0;
- c = c << 16 >> 16;
- e = (c & 7) * 5 | 0;
- f = (c >>> 2 & 2 | 1) + ((c >>> 4 & 7) * 5 | 0) | 0;
- c = (c >>> 6 & 2) + 2 + ((c >>> 8 & 7) * 5 | 0) | 0;
- g = d;
- h = g + 80 | 0;
- do {
- b[g >> 1] = 0;
- g = g + 2 | 0;
- } while ((g | 0) < (h | 0));
- a = a << 16 >> 16;
- b[d + (e << 1) >> 1] = (0 - (a & 1) & 16383) + 57344;
- b[d + (f << 1) >> 1] = (0 - (a >>> 1 & 1) & 16383) + 57344;
- b[d + (c << 1) >> 1] = (0 - (a >>> 2 & 1) & 16383) + 57344;
- return
- }
- function Ra(a, c, d, e) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- e = e | 0;
- var f = 0, g = 0, h = 0, i = 0;
- c = c << 16 >> 16;
- h = b[d + ((c & 7) << 1) >> 1] | 0;
- i = b[d + ((c >>> 3 & 7) << 1) >> 1] | 0;
- g = b[d + ((c >>> 6 & 7) << 1) >> 1] | 0;
- d = (c >>> 9 & 1) + 3 + ((b[d + ((c >>> 10 & 7) << 1) >> 1] | 0) * 5 | 0) | 0;
- c = e;
- f = c + 80 | 0;
- do {
- b[c >> 1] = 0;
- c = c + 2 | 0;
- } while ((c | 0) < (f | 0));
- a = a << 16 >> 16;
- b[e + (h * 327680 >> 16 << 1) >> 1] = (0 - (a & 1) & 16383) + 57344;
- b[e + ((i * 327680 | 0) + 65536 >> 16 << 1) >> 1] = (0 - (a >>> 1 & 1) & 16383) + 57344;
- b[e + ((g * 327680 | 0) + 131072 >> 16 << 1) >> 1] = (0 - (a >>> 2 & 1) & 16383) + 57344;
- b[e + (d << 16 >> 16 << 1) >> 1] = (0 - (a >>> 3 & 1) & 16383) + 57344;
- return
- }
- function Sa(a, d, f) {
- a = a | 0;
- d = d | 0;
- f = f | 0;
- var g = 0, h = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0;
- q = i;
- i = i + 32 | 0;
- p = q + 16 | 0;
- o = q;
- j = d;
- h = j + 80 | 0;
- do {
- b[j >> 1] = 0;
- j = j + 2 | 0;
- } while ((j | 0) < (h | 0));
- h = b[a >> 1] | 0;
- b[p >> 1] = h;
- b[p + 2 >> 1] = b[a + 2 >> 1] | 0;
- b[p + 4 >> 1] = b[a + 4 >> 1] | 0;
- b[p + 6 >> 1] = b[a + 6 >> 1] | 0;
- m = b[a + 8 >> 1] | 0;
- Ta(m >>> 3 & 65535, m & 7, 0, 4, 1, o, f);
- m = b[a + 10 >> 1] | 0;
- Ta(m >>> 3 & 65535, m & 7, 2, 6, 5, o, f);
- m = b[a + 12 >> 1] | 0;
- g = m >> 2;
- do if ((g * 25 | 0) != 1073741824) {
- j = (Z(g, 1638400) | 0) + 786432 >> 21;
- g = j * 6554 >> 15;
- if ((g | 0) > 32767) {
- c[f >> 2] = 1;
- k = 1;
- l = 1;
- a = 163835;
- n = 6;
- break
- }
- a = (g << 16 >> 16) * 5 | 0;
- k = g & 1;
- if ((a | 0) == 1073741824) {
- c[f >> 2] = 1;
- l = 0;
- a = 65535;
- } else {
- l = 0;
- n = 6;
- }
- } else {
- c[f >> 2] = 1;
- k = 0;
- g = 0;
- l = 0;
- j = 0;
- a = 0;
- n = 6;
- } while (0);
- if ((n | 0) == 6) a = a & 65535;
- n = j - a | 0;
- k = k << 16 >> 16 == 0 ? n : 4 - n | 0;
- n = k << 16 >> 16;
- b[o + 6 >> 1] = Rd(((k << 17 >> 17 | 0) == (n | 0) ? k << 1 : n >>> 15 ^ 32767) & 65535, m & 1, f) | 0;
- if (l) {
- c[f >> 2] = 1;
- g = 32767;
- }
- n = g << 16 >> 16;
- b[o + 14 >> 1] = ((g << 17 >> 17 | 0) == (n | 0) ? g << 1 : n >>> 15 ^ 32767) + (m >>> 1 & 1);
- g = 0;
- while (1) {
- h = h << 16 >> 16 == 0 ? 8191 : -8191;
- n = (b[o + (g << 1) >> 1] << 2) + g << 16;
- j = n >> 16;
- if ((n | 0) < 2621440) b[d + (j << 1) >> 1] = h;
- k = (b[o + (g + 4 << 1) >> 1] << 2) + g << 16;
- a = k >> 16;
- if ((a | 0) < (j | 0)) h = 0 - (h & 65535) & 65535;
- if ((k | 0) < 2621440) {
- n = d + (a << 1) | 0;
- b[n >> 1] = (e[n >> 1] | 0) + (h & 65535);
- }
- g = g + 1 | 0;
- if ((g | 0) == 4) break;
- h = b[p + (g << 1) >> 1] | 0;
- }
- i = q;
- return
- }
- function Ta(a, d, e, f, g, h, i) {
- a = a | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- i = i | 0;
- var j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0;
- k = a << 16 >> 16 > 124 ? 124 : a;
- a = (k << 16 >> 16) * 1311 >> 15;
- p = (a | 0) > 32767;
- if (!p) {
- j = a << 16 >> 16;
- if ((j * 25 | 0) == 1073741824) {
- c[i >> 2] = 1;
- j = 1073741823;
- } else o = 4;
- } else {
- c[i >> 2] = 1;
- j = 32767;
- o = 4;
- }
- if ((o | 0) == 4) j = (j * 50 | 0) >>> 1;
- m = (k & 65535) - j | 0;
- j = (m << 16 >> 16) * 6554 >> 15;
- n = (j | 0) > 32767;
- if (!n) {
- k = j << 16 >> 16;
- if ((k * 5 | 0) == 1073741824) {
- c[i >> 2] = 1;
- l = 1073741823;
- } else o = 9;
- } else {
- c[i >> 2] = 1;
- k = 32767;
- o = 9;
- }
- if ((o | 0) == 9) l = (k * 10 | 0) >>> 1;
- m = m - l | 0;
- o = m << 16 >> 16;
- k = d << 16 >> 16;
- l = k >> 2;
- k = k - (l << 2) | 0;
- b[h + (e << 16 >> 16 << 1) >> 1] = ((m << 17 >> 17 | 0) == (o | 0) ? m << 1 : o >>> 15 ^ 32767) + (k & 1);
- if (n) {
- c[i >> 2] = 1;
- j = 32767;
- }
- e = j << 16 >> 16;
- b[h + (f << 16 >> 16 << 1) >> 1] = ((j << 17 >> 17 | 0) == (e | 0) ? j << 1 : e >>> 15 ^ 32767) + (k << 16 >> 17);
- if (p) {
- c[i >> 2] = 1;
- a = 32767;
- }
- f = a << 16 >> 16;
- b[h + (g << 16 >> 16 << 1) >> 1] = Rd(l & 65535, ((a << 17 >> 17 | 0) == (f | 0) ? a << 1 : f >>> 15 ^ 32767) & 65535, i) | 0;
- return
- }
- function Ua(a) {
- a = a | 0;
- var d = 0, e = 0, f = 0, g = 0;
- if (!a) {
- g = -1;
- return g | 0
- }
- Yd(a + 1168 | 0);
- b[a + 460 >> 1] = 40;
- c[a + 1164 >> 2] = 0;
- d = a + 646 | 0;
- e = a + 1216 | 0;
- f = a + 462 | 0;
- g = f + 22 | 0;
- do {
- b[f >> 1] = 0;
- f = f + 2 | 0;
- } while ((f | 0) < (g | 0));
- db(d, c[e >> 2] | 0) | 0;
- mb(a + 686 | 0) | 0;
- ib(a + 700 | 0) | 0;
- La(a + 608 | 0) | 0;
- rb(a + 626 | 0, c[e >> 2] | 0) | 0;
- Ja(a + 484 | 0) | 0;
- tb(a + 730 | 0) | 0;
- eb(a + 748 | 0) | 0;
- Ud(a + 714 | 0) | 0;
- Va(a, 0) | 0;
- g = 0;
- return g | 0
- }
- function Va(a, d) {
- a = a | 0;
- d = d | 0;
- var e = 0, f = 0;
- if (!a) {
- a = -1;
- return a | 0
- }
- c[a + 388 >> 2] = a + 308;
- Qe(a | 0, 0, 308) | 0;
- d = (d | 0) != 8;
- if (d) {
- e = a + 412 | 0;
- f = e + 20 | 0;
- do {
- b[e >> 1] = 0;
- e = e + 2 | 0;
- } while ((e | 0) < (f | 0));
- b[a + 392 >> 1] = 3e4;
- b[a + 394 >> 1] = 26e3;
- b[a + 396 >> 1] = 21e3;
- b[a + 398 >> 1] = 15e3;
- b[a + 400 >> 1] = 8e3;
- b[a + 402 >> 1] = 0;
- b[a + 404 >> 1] = -8e3;
- b[a + 406 >> 1] = -15e3;
- b[a + 408 >> 1] = -21e3;
- b[a + 410 >> 1] = -26e3;
- }
- b[a + 432 >> 1] = 0;
- b[a + 434 >> 1] = 40;
- c[a + 1164 >> 2] = 0;
- b[a + 436 >> 1] = 0;
- b[a + 438 >> 1] = 0;
- b[a + 440 >> 1] = 0;
- b[a + 460 >> 1] = 40;
- b[a + 462 >> 1] = 0;
- b[a + 464 >> 1] = 0;
- if (d) {
- e = a + 442 | 0;
- f = e + 18 | 0;
- do {
- b[e >> 1] = 0;
- e = e + 2 | 0;
- } while ((e | 0) < (f | 0));
- e = a + 466 | 0;
- f = e + 18 | 0;
- do {
- b[e >> 1] = 0;
- e = e + 2 | 0;
- } while ((e | 0) < (f | 0));
- La(a + 608 | 0) | 0;
- f = a + 1216 | 0;
- rb(a + 626 | 0, c[f >> 2] | 0) | 0;
- db(a + 646 | 0, c[f >> 2] | 0) | 0;
- mb(a + 686 | 0) | 0;
- ib(a + 700 | 0) | 0;
- Ud(a + 714 | 0) | 0;
- } else {
- e = a + 466 | 0;
- f = e + 18 | 0;
- do {
- b[e >> 1] = 0;
- e = e + 2 | 0;
- } while ((e | 0) < (f | 0));
- La(a + 608 | 0) | 0;
- db(a + 646 | 0, c[a + 1216 >> 2] | 0) | 0;
- mb(a + 686 | 0) | 0;
- ib(a + 700 | 0) | 0;
- }
- Ja(a + 484 | 0) | 0;
- b[a + 606 >> 1] = 21845;
- tb(a + 730 | 0) | 0;
- if (!d) {
- a = 0;
- return a | 0
- }
- eb(a + 748 | 0) | 0;
- a = 0;
- return a | 0
- }
- function Wa(d, f, g, h, j, k) {
- d = d | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- k = k | 0;
- var 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, 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, _ = 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, Ea = 0, Fa = 0, Ga = 0, Ha = 0, Ja = 0, La = 0, Ta = 0, Ua = 0, Wa = 0, bb = 0, db = 0, eb = 0,
- ib = 0, mb = 0, pb = 0, rb = 0, tb = 0, xb = 0, yb = 0, zb = 0, Ab = 0, Bb = 0;
- Bb = i;
- i = i + 336 | 0;
- r = Bb + 236 | 0;
- q = Bb + 216 | 0;
- zb = Bb + 112 | 0;
- yb = Bb + 12 | 0;
- mb = Bb + 256 | 0;
- rb = Bb + 136 | 0;
- pb = Bb + 32 | 0;
- eb = Bb + 8 | 0;
- ib = Bb + 6 | 0;
- xb = Bb + 4 | 0;
- tb = Bb + 2 | 0;
- Ab = Bb;
- Ta = d + 1164 | 0;
- Ua = d + 748 | 0;
- Wa = hb(Ua, h, Ta) | 0;
- if (Wa) {
- Va(d, 8) | 0;
- fb(Ua, d + 412 | 0, d + 646 | 0, d + 714 | 0, d + 608 | 0, Wa, f, g, d + 1168 | 0, j, k, Ta);
- Ab = d + 666 | 0;
- me(Ab, d + 392 | 0, 10, Ta);
- sb(d + 626 | 0, Ab, Ta);
- Ab = d + 1156 | 0;
- c[Ab >> 2] = Wa;
- i = Bb;
- return
- }
- switch (h | 0) {
- case 1: {
- l = 1;
- x = 6;
- break
- }
- case 2:
- case 7: {
- Ia(d + 606 | 0, b[(c[d + 1256 >> 2] | 0) + (f << 1) >> 1] | 0, c[(c[d + 1260 >> 2] | 0) + (f << 2) >> 2] | 0, g, c[d + 1276 >> 2] | 0, Ta);
- x = 9;
- break
- }
- case 3: {
- x = 9;
- break
- }
- default: {
- l = 0;
- x = 6;
- }
- }
- do if ((x | 0) == 6) {
- h = d + 440 | 0;
- if ((b[h >> 1] | 0) == 6) {
- b[h >> 1] = 5;
- Ja = 0;
- La = 0;
- break
- } else {
- b[h >> 1] = 0;
- Ja = 0;
- La = 0;
- break
- }
- } else if ((x | 0) == 9) {
- h = d + 440 | 0;
- Ja = (e[h >> 1] | 0) + 1 & 65535;
- b[h >> 1] = Ja << 16 >> 16 > 6 ? 6 : Ja;
- Ja = 1;
- La = 1;
- l = 0;
- } while (0);
- Ea = d + 1156 | 0;
- switch (c[Ea >> 2] | 0) {
- case 1: {
- b[h >> 1] = 5;
- b[d + 436 >> 1] = 0;
- break
- }
- case 2: {
- b[h >> 1] = 5;
- b[d + 436 >> 1] = 1;
- break
- }
- default:
- }
- n = d + 646 | 0;
- Fa = d + 666 | 0;
- m = zb;
- o = Fa;
- p = m + 20 | 0;
- do {
- a[m >> 0] = a[o >> 0] | 0;
- m = m + 1 | 0;
- o = o + 1 | 0;
- } while ((m | 0) < (p | 0));
- Ga = (f | 0) != 7;
- Ha = d + 1168 | 0;
- if (Ga) {
- ab(n, f, La, g, Ha, r, Ta);
- m = d + 392 | 0;
- ae(m, r, k, Ta);
- g = g + 6 | 0;
- } else {
- cb(n, La, g, Ha, q, r, Ta);
- m = d + 392 | 0;
- _d(m, q, r, k, Ta);
- g = g + 10 | 0;
- }
- o = r;
- p = m + 20 | 0;
- do {
- b[m >> 1] = b[o >> 1] | 0;
- m = m + 2 | 0;
- o = o + 2 | 0;
- } while ((m | 0) < (p | 0));
- Ca = f >>> 0 > 1;
- B = f >>> 0 < 4 & 1;
- Ba = (f | 0) == 5;
- Aa = Ba ? 10 : 5;
- Ba = Ba ? 19 : 9;
- E = d + 434 | 0;
- F = 143 - Ba & 65535;
- G = d + 460 | 0;
- H = d + 462 | 0;
- I = d + 464 | 0;
- C = f >>> 0 > 2;
- J = d + 388 | 0;
- K = (f | 0) == 0;
- L = f >>> 0 < 2;
- M = d + 1244 | 0;
- N = d + 432 | 0;
- O = f >>> 0 < 6;
- P = d + 1168 | 0;
- Q = (f | 0) == 6;
- R = La << 16 >> 16 == 0;
- S = d + 714 | 0;
- T = d + 686 | 0;
- U = d + 436 | 0;
- V = d + 700 | 0;
- W = (f | 0) == 7;
- X = d + 482 | 0;
- Y = f >>> 0 < 3;
- _ = d + 608 | 0;
- $ = d + 626 | 0;
- aa = d + 438 | 0;
- ba = f >>> 0 < 7;
- ca = d + 730 | 0;
- D = Ja ^ 1;
- da = l << 16 >> 16 != 0;
- za = da ? La ^ 1 : 0;
- ea = d + 442 | 0;
- fa = d + 458 | 0;
- ga = d + 412 | 0;
- ha = d + 80 | 0;
- ia = d + 1236 | 0;
- ja = d + 1240 | 0;
- ka = d + 468 | 0;
- la = d + 466 | 0;
- ma = d + 470 | 0;
- na = d + 472 | 0;
- oa = d + 474 | 0;
- pa = d + 476 | 0;
- qa = d + 478 | 0;
- ra = d + 480 | 0;
- sa = d + 444 | 0;
- ta = d + 446 | 0;
- ua = d + 448 | 0;
- va = d + 450 | 0;
- wa = d + 452 | 0;
- xa = d + 454 | 0;
- ya = d + 456 | 0;
- y = 0;
- z = 0;
- s = 0;
- t = 0;
- A = -1;
- while (1) {
- A = (A << 16 >> 16) + 1 | 0;
- p = A & 65535;
- z = 1 - (z << 16 >> 16) | 0;
- v = z & 65535;
- q = Ca & s << 16 >> 16 == 80 ? 0 : s;
- u = g + 2 | 0;
- r = b[g >> 1] | 0;
- a:do if (Ga) {
- w = b[E >> 1] | 0;
- m = (w & 65535) - Aa & 65535;
- m = m << 16 >> 16 < 20 ? 20 : m;
- o = (m & 65535) + Ba & 65535;
- n = o << 16 >> 16 > 143;
- Ya(r, n ? F : m, n ? 143 : o, q, w, eb, ib, B, Ta);
- q = b[eb >> 1] | 0;
- b[G >> 1] = q;
- if (Ja) {
- r = b[E >> 1] | 0;
- if (r << 16 >> 16 < 143) {
- r = (r & 65535) + 1 & 65535;
- b[E >> 1] = r;
- }
- b[eb >> 1] = r;
- b[ib >> 1] = 0;
- if ((b[H >> 1] | 0) != 0 ? !(C | (b[I >> 1] | 0) < 5) : 0) {
- b[eb >> 1] = q;
- r = q;
- q = 0;
- } else q = 0;
- } else {
- r = q;
- q = b[ib >> 1] | 0;
- }
- se(c[J >> 2] | 0, r, q, 40, 1, Ta);
- if (L) {
- q = g + 6 | 0;
- Pa(p, b[g + 4 >> 1] | 0, b[u >> 1] | 0, c[M >> 2] | 0, mb, Ta);
- g = b[N >> 1] | 0;
- w = g << 16 >> 16;
- r = w << 1;
- if ((r | 0) == (w << 17 >> 16 | 0)) {
- o = K;
- break
- }
- o = K;
- r = g << 16 >> 16 > 0 ? 32767 : -32768;
- break
- }
- switch (f | 0) {
- case 2: {
- q = g + 6 | 0;
- Oa(b[g + 4 >> 1] | 0, b[u >> 1] | 0, mb);
- g = b[N >> 1] | 0;
- w = g << 16 >> 16;
- r = w << 1;
- if ((r | 0) == (w << 17 >> 16 | 0)) {
- o = K;
- break a
- }
- o = K;
- r = g << 16 >> 16 > 0 ? 32767 : -32768;
- break a
- }
- case 3: {
- q = g + 6 | 0;
- Qa(b[g + 4 >> 1] | 0, b[u >> 1] | 0, mb);
- g = b[N >> 1] | 0;
- w = g << 16 >> 16;
- r = w << 1;
- if ((r | 0) == (w << 17 >> 16 | 0)) {
- o = K;
- break a
- }
- o = K;
- r = g << 16 >> 16 > 0 ? 32767 : -32768;
- break a
- }
- default: {
- if (O) {
- q = g + 6 | 0;
- Ra(b[g + 4 >> 1] | 0, b[u >> 1] | 0, c[P >> 2] | 0, mb);
- g = b[N >> 1] | 0;
- w = g << 16 >> 16;
- r = w << 1;
- if ((r | 0) == (w << 17 >> 16 | 0)) {
- o = K;
- break a
- }
- o = K;
- r = g << 16 >> 16 > 0 ? 32767 : -32768;
- break a
- }
- if (!Q) {
- o = K;
- x = 44;
- break a
- }
- Sa(u, mb, Ta);
- r = g + 16 | 0;
- g = b[N >> 1] | 0;
- w = g << 16 >> 16;
- p = w << 1;
- if ((p | 0) == (w << 17 >> 16 | 0)) {
- q = r;
- o = K;
- r = p;
- break a
- }
- q = r;
- o = K;
- r = g << 16 >> 16 > 0 ? 32767 : -32768;
- break a
- }
- }
- } else {
- Za(r, 18, 143, q, eb, ib, Ta);
- if (R ? q << 16 >> 16 == 0 | r << 16 >> 16 < 61 : 0) {
- r = b[eb >> 1] | 0;
- q = b[ib >> 1] | 0;
- } else {
- b[G >> 1] = b[eb >> 1] | 0;
- r = b[E >> 1] | 0;
- b[eb >> 1] = r;
- b[ib >> 1] = 0;
- q = 0;
- }
- se(c[J >> 2] | 0, r, q, 40, 0, Ta);
- o = 0;
- x = 44;
- } while (0);
- if ((x | 0) == 44) {
- x = 0;
- if (Ja) lb(T, b[h >> 1] | 0, xb, Ta); else b[xb >> 1] = $a(f, b[u >> 1] | 0, c[ja >> 2] | 0) | 0;
- nb(T, La, b[U >> 1] | 0, xb, Ta);
- Na(g + 4 | 0, mb, c[P >> 2] | 0);
- r = g + 24 | 0;
- g = b[xb >> 1] | 0;
- w = g << 16 >> 16;
- p = w << 1;
- if ((p | 0) == (w << 17 >> 16 | 0)) {
- q = r;
- r = p;
- } else {
- q = r;
- r = g << 16 >> 16 > 0 ? 32767 : -32768;
- }
- }
- g = b[eb >> 1] | 0;
- b:do if (g << 16 >> 16 < 40) {
- m = r << 16 >> 16;
- n = g;
- r = g << 16 >> 16;
- while (1) {
- p = mb + (r << 1) | 0;
- g = (Z(b[mb + (r - (n << 16 >> 16) << 1) >> 1] | 0, m) | 0) >> 15;
- if ((g | 0) > 32767) {
- c[Ta >> 2] = 1;
- g = 32767;
- }
- w = g & 65535;
- b[Ab >> 1] = w;
- b[p >> 1] = Rd(b[p >> 1] | 0, w, Ta) | 0;
- r = r + 1 | 0;
- if ((r & 65535) << 16 >> 16 == 40) break b;
- n = b[eb >> 1] | 0;
- }
- } while (0);
- c:do if (o) {
- o = (z & 65535 | 0) == 0;
- if (o) {
- g = q;
- p = t;
- } else {
- g = q + 2 | 0;
- p = b[q >> 1] | 0;
- }
- if (R) Xa(S, f, p, mb, v, xb, tb, Ha, Ta); else {
- lb(T, b[h >> 1] | 0, xb, Ta);
- jb(V, S, b[h >> 1] | 0, tb, Ta);
- }
- nb(T, La, b[U >> 1] | 0, xb, Ta);
- kb(V, La, b[U >> 1] | 0, tb, Ta);
- q = b[xb >> 1] | 0;
- r = q << 16 >> 16 > 13017 ? 13017 : q;
- if (o) x = 80; else w = p;
- } else {
- g = q + 2 | 0;
- r = b[q >> 1] | 0;
- switch (f | 0) {
- case 1:
- case 2:
- case 3:
- case 4:
- case 6: {
- if (R) Xa(S, f, r, mb, v, xb, tb, Ha, Ta); else {
- lb(T, b[h >> 1] | 0, xb, Ta);
- jb(V, S, b[h >> 1] | 0, tb, Ta);
- }
- nb(T, La, b[U >> 1] | 0, xb, Ta);
- kb(V, La, b[U >> 1] | 0, tb, Ta);
- q = b[xb >> 1] | 0;
- r = q << 16 >> 16 > 13017 ? 13017 : q;
- if (!Q) {
- p = t;
- x = 80;
- break c
- }
- if ((b[E >> 1] | 0) <= 45) {
- p = t;
- x = 80;
- break c
- }
- p = t;
- r = r << 16 >> 16 >>> 2 & 65535;
- x = 80;
- break c
- }
- case 5: {
- if (Ja) lb(T, b[h >> 1] | 0, xb, Ta); else b[xb >> 1] = $a(5, r, c[ja >> 2] | 0) | 0;
- nb(T, La, b[U >> 1] | 0, xb, Ta);
- if (R) _a(S, 5, b[g >> 1] | 0, mb, c[ia >> 2] | 0, tb, Ta); else jb(V, S, b[h >> 1] | 0, tb, Ta);
- kb(V, La, b[U >> 1] | 0, tb, Ta);
- r = b[xb >> 1] | 0;
- g = q + 4 | 0;
- q = r;
- p = t;
- r = r << 16 >> 16 > 13017 ? 13017 : r;
- x = 80;
- break c
- }
- default: {
- if (R) _a(S, f, r, mb, c[ia >> 2] | 0, tb, Ta); else jb(V, S, b[h >> 1] | 0, tb, Ta);
- kb(V, La, b[U >> 1] | 0, tb, Ta);
- r = b[xb >> 1] | 0;
- q = r;
- p = t;
- x = 80;
- break c
- }
- }
- } while (0);
- if ((x | 0) == 80) {
- x = 0;
- b[N >> 1] = q << 16 >> 16 > 13017 ? 13017 : q;
- w = p;
- }
- r = r << 16 >> 16;
- r = (r << 17 >> 17 | 0) == (r | 0) ? r << 1 : r >>> 15 ^ 32767;
- v = (r & 65535) << 16 >> 16 > 16384;
- d:do if (v) {
- u = r << 16 >> 16;
- if (W) q = 0; else {
- q = 0;
- while (1) {
- r = (Z(b[(c[J >> 2] | 0) + (q << 1) >> 1] | 0, u) | 0) >> 15;
- if ((r | 0) > 32767) {
- c[Ta >> 2] = 1;
- r = 32767;
- }
- b[Ab >> 1] = r;
- r = Z(b[xb >> 1] | 0, r << 16 >> 16) | 0;
- if ((r | 0) == 1073741824) {
- c[Ta >> 2] = 1;
- r = 2147483647;
- } else r = r << 1;
- b[rb + (q << 1) >> 1] = Ce(r, Ta) | 0;
- q = q + 1 | 0;
- if ((q | 0) == 40) break d
- }
- }
- do {
- r = (Z(b[(c[J >> 2] | 0) + (q << 1) >> 1] | 0, u) | 0) >> 15;
- if ((r | 0) > 32767) {
- c[Ta >> 2] = 1;
- r = 32767;
- }
- b[Ab >> 1] = r;
- r = Z(b[xb >> 1] | 0, r << 16 >> 16) | 0;
- if ((r | 0) != 1073741824) {
- r = r << 1;
- if ((r | 0) < 0) r = ~((r ^ -2) >> 1); else x = 88;
- } else {
- c[Ta >> 2] = 1;
- r = 2147483647;
- x = 88;
- }
- if ((x | 0) == 88) {
- x = 0;
- r = r >> 1;
- }
- b[rb + (q << 1) >> 1] = Ce(r, Ta) | 0;
- q = q + 1 | 0;
- } while ((q | 0) != 40)
- } while (0);
- if (R) {
- b[la >> 1] = b[ka >> 1] | 0;
- b[ka >> 1] = b[ma >> 1] | 0;
- b[ma >> 1] = b[na >> 1] | 0;
- b[na >> 1] = b[oa >> 1] | 0;
- b[oa >> 1] = b[pa >> 1] | 0;
- b[pa >> 1] = b[qa >> 1] | 0;
- b[qa >> 1] = b[ra >> 1] | 0;
- b[ra >> 1] = b[X >> 1] | 0;
- b[X >> 1] = b[xb >> 1] | 0;
- }
- if ((Ja | (b[U >> 1] | 0) != 0 ? Y & (b[H >> 1] | 0) != 0 : 0) ? (bb = b[xb >> 1] | 0, bb << 16 >> 16 > 12288) : 0) {
- x = (((bb << 16 >> 16) + 118784 | 0) >>> 1) + 12288 & 65535;
- b[xb >> 1] = x << 16 >> 16 > 14745 ? 14745 : x;
- }
- qb(zb, Fa, s, yb, Ta);
- r = Ma(_, f, b[tb >> 1] | 0, yb, $, La, b[U >> 1] | 0, l, b[aa >> 1] | 0, b[H >> 1] | 0, b[I >> 1] | 0, Ta) | 0;
- switch (f | 0) {
- case 0:
- case 1:
- case 2:
- case 3:
- case 6: {
- p = b[xb >> 1] | 0;
- u = 1;
- break
- }
- default: {
- r = b[tb >> 1] | 0;
- p = b[xb >> 1] | 0;
- if (ba) u = 1; else {
- q = p << 16 >> 16;
- if (p << 16 >> 16 < 0) q = ~((q ^ -2) >> 1); else q = q >>> 1;
- p = q & 65535;
- u = 2;
- }
- }
- }
- m = p << 16 >> 16;
- s = u & 65535;
- q = c[J >> 2] | 0;
- t = 0;
- do {
- q = q + (t << 1) | 0;
- b[pb + (t << 1) >> 1] = b[q >> 1] | 0;
- q = Z(b[q >> 1] | 0, m) | 0;
- if ((q | 0) == 1073741824) {
- c[Ta >> 2] = 1;
- n = 2147483647;
- } else n = q << 1;
- o = Z(b[tb >> 1] | 0, b[mb + (t << 1) >> 1] | 0) | 0;
- if ((o | 0) != 1073741824) {
- q = (o << 1) + n | 0;
- if ((o ^ n | 0) > 0 & (q ^ n | 0) < 0) {
- c[Ta >> 2] = 1;
- q = (n >>> 31) + 2147483647 | 0;
- }
- } else {
- c[Ta >> 2] = 1;
- q = 2147483647;
- }
- x = q << s;
- x = Ce((x >> s | 0) == (q | 0) ? x : q >> 31 ^ 2147483647, Ta) | 0;
- q = c[J >> 2] | 0;
- b[q + (t << 1) >> 1] = x;
- t = t + 1 | 0;
- } while ((t | 0) != 40);
- vb(ca);
- if ((Y ? (b[I >> 1] | 0) > 3 : 0) ? !((b[H >> 1] | 0) == 0 | D) : 0) ub(ca);
- wb(ca, f, pb, r, b[xb >> 1] | 0, mb, p, u, Ha, Ta);
- r = 0;
- o = 0;
- do {
- q = b[pb + (o << 1) >> 1] | 0;
- q = Z(q, q) | 0;
- if ((q | 0) != 1073741824) {
- p = (q << 1) + r | 0;
- if ((q ^ r | 0) > 0 & (p ^ r | 0) < 0) {
- c[Ta >> 2] = 1;
- r = (r >>> 31) + 2147483647 | 0;
- } else r = p;
- } else {
- c[Ta >> 2] = 1;
- r = 2147483647;
- }
- o = o + 1 | 0;
- } while ((o | 0) != 40);
- if ((r | 0) < 0) r = ~((r ^ -2) >> 1); else r = r >> 1;
- r = Fe(r, Ab, Ta) | 0;
- p = ((b[Ab >> 1] | 0) >>> 1) + 15 | 0;
- q = p & 65535;
- p = p << 16 >> 16;
- if (q << 16 >> 16 > 0) if (q << 16 >> 16 < 31) {
- r = r >> p;
- x = 135;
- } else {
- r = 0;
- x = 137;
- } else {
- u = 0 - p << 16 >> 16;
- x = r << u;
- r = (x >> u | 0) == (r | 0) ? x : r >> 31 ^ 2147483647;
- x = 135;
- }
- if ((x | 0) == 135) {
- x = 0;
- if ((r | 0) < 0) r = ~((r ^ -4) >> 2); else x = 137;
- }
- if ((x | 0) == 137) {
- x = 0;
- r = r >>> 2;
- }
- r = r & 65535;
- do if (Y ? (db = b[I >> 1] | 0, db << 16 >> 16 > 5) : 0) if (b[H >> 1] | 0) if ((b[h >> 1] | 0) < 4) {
- if (da) {
- if (!(Ja | (b[aa >> 1] | 0) != 0)) x = 145;
- } else if (!Ja) x = 145;
- if ((x | 0) == 145 ? ((b[U >> 1] | 0) == 0) : 0) {
- x = 147;
- break
- }
- ob(pb, r, ea, db, b[U >> 1] | 0, za, Ta) | 0;
- x = 147;
- } else x = 147; else x = 151; else x = 147; while (0);
- do if ((x | 0) == 147) {
- x = 0;
- if (b[H >> 1] | 0) {
- if (!Ja ? (b[U >> 1] | 0) == 0 : 0) {
- x = 151;
- break
- }
- if ((b[h >> 1] | 0) >= 4) x = 151;
- } else x = 151;
- } while (0);
- if ((x | 0) == 151) {
- x = 0;
- b[ea >> 1] = b[sa >> 1] | 0;
- b[sa >> 1] = b[ta >> 1] | 0;
- b[ta >> 1] = b[ua >> 1] | 0;
- b[ua >> 1] = b[va >> 1] | 0;
- b[va >> 1] = b[wa >> 1] | 0;
- b[wa >> 1] = b[xa >> 1] | 0;
- b[xa >> 1] = b[ya >> 1] | 0;
- b[ya >> 1] = b[fa >> 1] | 0;
- b[fa >> 1] = r;
- }
- if (v) {
- r = 0;
- do {
- v = rb + (r << 1) | 0;
- b[v >> 1] = Rd(b[v >> 1] | 0, b[pb + (r << 1) >> 1] | 0, Ta) | 0;
- r = r + 1 | 0;
- } while ((r | 0) != 40);
- Da(pb, rb, 40, Ta);
- c[Ta >> 2] = 0;
- He(k, rb, j + (y << 1) | 0, 40, ga, 0);
- } else {
- c[Ta >> 2] = 0;
- He(k, pb, j + (y << 1) | 0, 40, ga, 0);
- }
- if (!(c[Ta >> 2] | 0)) Pe(ga | 0, j + (y + 30 << 1) | 0, 20) | 0; else {
- p = 193;
- while (1) {
- q = d + (p << 1) | 0;
- v = b[q >> 1] | 0;
- r = v << 16 >> 16;
- if (v << 16 >> 16 < 0) r = ~((r ^ -4) >> 2); else r = r >>> 2;
- b[q >> 1] = r;
- if ((p | 0) > 0) p = p + -1 | 0; else {
- p = 39;
- break
- }
- }
- while (1) {
- q = pb + (p << 1) | 0;
- v = b[q >> 1] | 0;
- r = v << 16 >> 16;
- if (v << 16 >> 16 < 0) r = ~((r ^ -4) >> 2); else r = r >>> 2;
- b[q >> 1] = r;
- if ((p | 0) > 0) p = p + -1 | 0; else break
- }
- He(k, pb, j + (y << 1) | 0, 40, ga, 1);
- }
- Pe(d | 0, ha | 0, 308) | 0;
- b[E >> 1] = b[eb >> 1] | 0;
- r = y + 40 | 0;
- s = r & 65535;
- if (s << 16 >> 16 >= 160) break; else {
- y = r << 16 >> 16;
- k = k + 22 | 0;
- t = w;
- }
- }
- b[H >> 1] = Ka(d + 484 | 0, d + 466 | 0, j, I, Ta) | 0;
- gb(Ua, Fa, j, Ta);
- b[U >> 1] = La;
- b[aa >> 1] = l;
- sb(d + 626 | 0, Fa, Ta);
- Ab = Ea;
- c[Ab >> 2] = Wa;
- i = Bb;
- return
- }
- function Xa(a, d, f, g, h, j, k, l, m) {
- a = a | 0;
- d = d | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- k = k | 0;
- l = l | 0;
- m = m | 0;
- var n = 0, o = 0, p = 0, q = 0, r = 0;
- r = i;
- i = i + 16 | 0;
- p = r + 2 | 0;
- q = r;
- f = f << 16 >> 16;
- f = (f << 18 >> 18 | 0) == (f | 0) ? f << 2 : f >>> 15 ^ 32767;
- switch (d | 0) {
- case 3:
- case 4:
- case 6: {
- o = f << 16 >> 16;
- f = c[l + 84 >> 2] | 0;
- b[j >> 1] = b[f + (o << 1) >> 1] | 0;
- l = b[f + (o + 1 << 1) >> 1] | 0;
- n = b[f + (o + 3 << 1) >> 1] | 0;
- j = b[f + (o + 2 << 1) >> 1] | 0;
- break
- }
- case 0: {
- l = (f & 65535) + (h << 16 >> 16 << 1 ^ 2) | 0;
- l = (l & 65535) << 16 >> 16 > 1022 ? 1022 : l << 16 >> 16;
- b[j >> 1] = b[782 + (l << 1) >> 1] | 0;
- j = b[782 + (l + 1 << 1) >> 1] | 0;
- de(j << 16 >> 16, q, p, m);
- b[q >> 1] = (e[q >> 1] | 0) + 65524;
- l = Ee(b[p >> 1] | 0, 5, m) | 0;
- o = b[q >> 1] | 0;
- o = Rd(l, ((o << 26 >> 26 | 0) == (o | 0) ? o << 10 : o >>> 15 ^ 32767) & 65535, m) | 0;
- l = b[p >> 1] | 0;
- f = b[q >> 1] | 0;
- if ((f * 24660 | 0) == 1073741824) {
- c[m >> 2] = 1;
- h = 2147483647;
- } else h = f * 49320 | 0;
- n = (l << 16 >> 16) * 24660 >> 15;
- f = h + (n << 1) | 0;
- if ((h ^ n | 0) > 0 & (f ^ h | 0) < 0) {
- c[m >> 2] = 1;
- f = (h >>> 31) + 2147483647 | 0;
- }
- n = f << 13;
- l = j;
- n = Ce((n >> 13 | 0) == (f | 0) ? n : f >> 31 ^ 2147483647, m) | 0;
- j = o;
- break
- }
- default: {
- o = f << 16 >> 16;
- f = c[l + 80 >> 2] | 0;
- b[j >> 1] = b[f + (o << 1) >> 1] | 0;
- l = b[f + (o + 1 << 1) >> 1] | 0;
- n = b[f + (o + 3 << 1) >> 1] | 0;
- j = b[f + (o + 2 << 1) >> 1] | 0;
- }
- }
- Vd(a, d, g, q, p, 0, 0, m);
- h = Z((re(14, b[p >> 1] | 0, m) | 0) << 16 >> 16, l << 16 >> 16) | 0;
- if ((h | 0) == 1073741824) {
- c[m >> 2] = 1;
- f = 2147483647;
- } else f = h << 1;
- l = 10 - (e[q >> 1] | 0) | 0;
- h = l & 65535;
- l = l << 16 >> 16;
- if (h << 16 >> 16 > 0) {
- q = h << 16 >> 16 < 31 ? f >> l : 0;
- q = q >>> 16;
- q = q & 65535;
- b[k >> 1] = q;
- Wd(a, j, n);
- i = r;
- return
- } else {
- m = 0 - l << 16 >> 16;
- q = f << m;
- q = (q >> m | 0) == (f | 0) ? q : f >> 31 ^ 2147483647;
- q = q >>> 16;
- q = q & 65535;
- b[k >> 1] = q;
- Wd(a, j, n);
- i = r;
- return
- }
- }
- function Ya(a, d, e, f, g, h, i, j, k) {
- a = a | 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;
- if (!(f << 16 >> 16)) {
- j = a << 16 >> 16;
- if (a << 16 >> 16 >= 197) {
- b[h >> 1] = j + 65424;
- b[i >> 1] = 0;
- return
- }
- g = ((j << 16) + 131072 >> 16) * 10923 >> 15;
- if ((g | 0) > 32767) {
- c[k >> 2] = 1;
- g = 32767;
- }
- a = (g & 65535) + 19 | 0;
- b[h >> 1] = a;
- b[i >> 1] = j + 58 - ((a * 196608 | 0) >>> 16);
- return
- }
- if (!(j << 16 >> 16)) {
- k = a << 16 >> 16 << 16;
- a = ((k + 131072 >> 16) * 21846 | 0) + -65536 >> 16;
- b[h >> 1] = a + (d & 65535);
- b[i >> 1] = ((k + -131072 | 0) >>> 16) - ((a * 196608 | 0) >>> 16);
- return
- }
- if ((Ge(g, d, k) | 0) << 16 >> 16 > 5) g = (d & 65535) + 5 & 65535;
- j = e << 16 >> 16;
- j = (j - (g & 65535) & 65535) << 16 >> 16 > 4 ? j + 65532 & 65535 : g;
- g = a << 16 >> 16;
- if (a << 16 >> 16 < 4) {
- b[h >> 1] = ((((j & 65535) << 16) + -327680 | 0) >>> 16) + g;
- b[i >> 1] = 0;
- return
- }
- g = g << 16;
- if (a << 16 >> 16 < 12) {
- k = (((g + -327680 >> 16) * 10923 | 0) >>> 15 << 16) + -65536 | 0;
- a = k >> 16;
- b[h >> 1] = (j & 65535) + a;
- b[i >> 1] = ((g + -589824 | 0) >>> 16) - (k >>> 15) - a;
- return
- } else {
- b[h >> 1] = ((g + -786432 + ((j & 65535) << 16) | 0) >>> 16) + 1;
- b[i >> 1] = 0;
- return
- }
- }
- function Za(a, c, d, f, g, h, i) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- i = i | 0;
- if (f << 16 >> 16) {
- i = (e[g >> 1] | 0) + 65531 | 0;
- i = (i << 16 >> 16 | 0) < (c << 16 >> 16 | 0) ? c : i & 65535;
- d = d << 16 >> 16;
- c = a << 16 >> 16 << 16;
- a = ((c + 327680 >> 16) * 10924 | 0) + -65536 >> 16;
- b[g >> 1] = (((((i & 65535) << 16) + 589824 >> 16 | 0) > (d | 0) ? d + 65527 & 65535 : i) & 65535) + a;
- b[h >> 1] = ((c + -196608 | 0) >>> 16) - ((a * 393216 | 0) >>> 16);
- return
- }
- f = a << 16 >> 16;
- if (a << 16 >> 16 < 463) {
- a = ((((f << 16) + 327680 >> 16) * 10924 | 0) >>> 16) + 17 | 0;
- b[g >> 1] = a;
- b[h >> 1] = f + 105 - ((a * 393216 | 0) >>> 16);
- return
- } else {
- b[g >> 1] = f + 65168;
- b[h >> 1] = 0;
- return
- }
- }
- function _a(a, d, e, f, g, h, j) {
- a = a | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- var k = 0, l = 0, m = 0, n = 0;
- n = i;
- i = i + 16 | 0;
- l = n + 6 | 0;
- k = n + 4 | 0;
- Vd(a, d, f, l, k, n + 2 | 0, n, j);
- m = (e & 31) * 3 | 0;
- f = g + (m << 1) | 0;
- if (!((Ge(d & 65535, 7, j) | 0) << 16 >> 16)) {
- l = re(b[l >> 1] | 0, b[k >> 1] | 0, j) | 0;
- k = l << 16 >> 16;
- k = (Z(((l << 20 >> 20 | 0) == (k | 0) ? l << 4 : k >>> 15 ^ 32767) << 16 >> 16, b[f >> 1] | 0) | 0) >> 15;
- if ((k | 0) > 32767) {
- c[j >> 2] = 1;
- k = 32767;
- }
- f = k << 16;
- e = f >> 16;
- if ((k << 17 >> 17 | 0) == (e | 0)) k = f >> 15; else k = e >>> 15 ^ 32767;
- } else {
- e = re(14, b[k >> 1] | 0, j) | 0;
- e = Z(e << 16 >> 16, b[f >> 1] | 0) | 0;
- if ((e | 0) == 1073741824) {
- c[j >> 2] = 1;
- f = 2147483647;
- } else f = e << 1;
- e = Ge(9, b[l >> 1] | 0, j) | 0;
- k = e << 16 >> 16;
- if (e << 16 >> 16 > 0) k = e << 16 >> 16 < 31 ? f >> k : 0; else {
- j = 0 - k << 16 >> 16;
- k = f << j;
- k = (k >> j | 0) == (f | 0) ? k : f >> 31 ^ 2147483647;
- }
- k = k >>> 16;
- }
- b[h >> 1] = k;
- Wd(a, b[g + (m + 1 << 1) >> 1] | 0, b[g + (m + 2 << 1) >> 1] | 0);
- i = n;
- return
- }
- function $a(a, c, d) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- c = b[d + (c << 16 >> 16 << 1) >> 1] | 0;
- if ((a | 0) != 7) {
- a = c;
- return a | 0
- }
- a = c & 65532;
- return a | 0
- }
- function ab(d, e, f, g, h, j, k) {
- d = d | 0;
- e = e | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- k = k | 0;
- var l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0;
- v = i;
- i = i + 48 | 0;
- r = v + 20 | 0;
- u = v;
- t = c[h + 44 >> 2] | 0;
- s = c[h + 64 >> 2] | 0;
- l = c[h + 4 >> 2] | 0;
- q = c[h + 12 >> 2] | 0;
- n = c[h + 20 >> 2] | 0;
- m = c[h + 56 >> 2] | 0;
- if (!(f << 16 >> 16)) {
- o = e >>> 0 < 2;
- if (o) {
- f = 765;
- p = 508;
- n = c[h + 52 >> 2] | 0;
- } else {
- h = (e | 0) == 5;
- f = h ? 1533 : 765;
- p = 2044;
- l = h ? m : l;
- }
- m = b[g >> 1] | 0;
- f = ((m * 196608 >> 16 | 0) > (f & 65535 | 0) ? f : m * 3 & 65535) << 16 >> 16;
- m = b[l + (f << 1) >> 1] | 0;
- b[r >> 1] = m;
- b[r + 2 >> 1] = b[l + (f + 1 << 1) >> 1] | 0;
- b[r + 4 >> 1] = b[l + (f + 2 << 1) >> 1] | 0;
- f = b[g + 2 >> 1] | 0;
- if (o) f = f << 16 >> 16 << 1 & 65535;
- o = (f << 16 >> 16) * 196608 | 0;
- o = (o | 0) > 100466688 ? 1533 : o >> 16;
- b[r + 6 >> 1] = b[q + (o << 1) >> 1] | 0;
- b[r + 8 >> 1] = b[q + (o + 1 << 1) >> 1] | 0;
- b[r + 10 >> 1] = b[q + (o + 2 << 1) >> 1] | 0;
- g = b[g + 4 >> 1] | 0;
- g = ((g << 18 >> 16 | 0) > (p & 65535 | 0) ? p : g << 2 & 65535) << 16 >> 16;
- b[r + 12 >> 1] = b[n + (g << 1) >> 1] | 0;
- b[r + 14 >> 1] = b[n + ((g | 1) << 1) >> 1] | 0;
- b[r + 16 >> 1] = b[n + ((g | 2) << 1) >> 1] | 0;
- b[r + 18 >> 1] = b[n + ((g | 3) << 1) >> 1] | 0;
- if ((e | 0) == 8) {
- f = 0;
- while (1) {
- s = d + (f << 1) | 0;
- b[u + (f << 1) >> 1] = Rd(m, Rd(b[t + (f << 1) >> 1] | 0, b[s >> 1] | 0, k) | 0, k) | 0;
- b[s >> 1] = m;
- f = f + 1 | 0;
- if ((f | 0) == 10) break;
- m = b[r + (f << 1) >> 1] | 0;
- }
- Ae(u, 205, 10, k);
- l = d + 20 | 0;
- m = u;
- f = l + 20 | 0;
- do {
- a[l >> 0] = a[m >> 0] | 0;
- l = l + 1 | 0;
- m = m + 1 | 0;
- } while ((l | 0) < (f | 0));
- me(u, j, 10, k);
- i = v;
- return
- } else l = 0;
- do {
- m = d + (l << 1) | 0;
- f = (Z(b[s + (l << 1) >> 1] | 0, b[m >> 1] | 0) | 0) >> 15;
- if ((f | 0) > 32767) {
- c[k >> 2] = 1;
- f = 32767;
- }
- g = Rd(b[t + (l << 1) >> 1] | 0, f & 65535, k) | 0;
- e = b[r + (l << 1) >> 1] | 0;
- b[u + (l << 1) >> 1] = Rd(e, g, k) | 0;
- b[m >> 1] = e;
- l = l + 1 | 0;
- } while ((l | 0) != 10);
- Ae(u, 205, 10, k);
- l = d + 20 | 0;
- m = u;
- f = l + 20 | 0;
- do {
- a[l >> 0] = a[m >> 0] | 0;
- l = l + 1 | 0;
- m = m + 1 | 0;
- } while ((l | 0) < (f | 0));
- me(u, j, 10, k);
- i = v;
- return
- } else {
- l = 0;
- do {
- f = (b[d + 20 + (l << 1) >> 1] | 0) * 29491 >> 15;
- if ((f | 0) > 32767) {
- c[k >> 2] = 1;
- f = 32767;
- }
- m = (b[t + (l << 1) >> 1] | 0) * 3277 >> 15;
- if ((m | 0) > 32767) {
- c[k >> 2] = 1;
- m = 32767;
- }
- b[u + (l << 1) >> 1] = Rd(m & 65535, f & 65535, k) | 0;
- l = l + 1 | 0;
- } while ((l | 0) != 10);
- if ((e | 0) == 8) {
- l = 0;
- do {
- s = d + (l << 1) | 0;
- r = Rd(b[t + (l << 1) >> 1] | 0, b[s >> 1] | 0, k) | 0;
- b[s >> 1] = Ge(b[u + (l << 1) >> 1] | 0, r, k) | 0;
- l = l + 1 | 0;
- } while ((l | 0) != 10);
- Ae(u, 205, 10, k);
- l = d + 20 | 0;
- m = u;
- f = l + 20 | 0;
- do {
- a[l >> 0] = a[m >> 0] | 0;
- l = l + 1 | 0;
- m = m + 1 | 0;
- } while ((l | 0) < (f | 0));
- me(u, j, 10, k);
- i = v;
- return
- } else l = 0;
- do {
- m = d + (l << 1) | 0;
- f = (Z(b[s + (l << 1) >> 1] | 0, b[m >> 1] | 0) | 0) >> 15;
- if ((f | 0) > 32767) {
- c[k >> 2] = 1;
- f = 32767;
- }
- r = Rd(b[t + (l << 1) >> 1] | 0, f & 65535, k) | 0;
- b[m >> 1] = Ge(b[u + (l << 1) >> 1] | 0, r, k) | 0;
- l = l + 1 | 0;
- } while ((l | 0) != 10);
- Ae(u, 205, 10, k);
- l = d + 20 | 0;
- m = u;
- f = l + 20 | 0;
- do {
- a[l >> 0] = a[m >> 0] | 0;
- l = l + 1 | 0;
- m = m + 1 | 0;
- } while ((l | 0) < (f | 0));
- me(u, j, 10, k);
- i = v;
- return
- }
- }
- function bb(a, b, c) {
- a = a | 0;
- b = b | 0;
- c = c | 0;
- Pe(a | 0, c + ((b << 16 >> 16) * 10 << 1) | 0, 20) | 0;
- return
- }
- function cb(d, e, f, g, h, j, k) {
- d = d | 0;
- e = e | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- k = k | 0;
- var l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0;
- v = i;
- i = i + 80 | 0;
- q = v + 60 | 0;
- r = v + 40 | 0;
- t = v + 20 | 0;
- u = v;
- s = c[g + 48 >> 2] | 0;
- n = c[g + 24 >> 2] | 0;
- o = c[g + 28 >> 2] | 0;
- p = c[g + 32 >> 2] | 0;
- if (e << 16 >> 16) {
- l = 0;
- do {
- q = s + (l << 1) | 0;
- f = Rd(((b[q >> 1] | 0) * 1639 | 0) >>> 15 & 65535, ((b[d + 20 + (l << 1) >> 1] | 0) * 31128 | 0) >>> 15 & 65535, k) | 0;
- b[t + (l << 1) >> 1] = f;
- b[u + (l << 1) >> 1] = f;
- r = d + (l << 1) | 0;
- b[r >> 1] = Ge(f, Rd(b[q >> 1] | 0, ((b[r >> 1] | 0) * 21299 | 0) >>> 15 & 65535, k) | 0, k) | 0;
- l = l + 1 | 0;
- } while ((l | 0) != 10);
- Ae(t, 205, 10, k);
- Ae(u, 205, 10, k);
- l = d + 20 | 0;
- g = u;
- e = l + 20 | 0;
- do {
- a[l >> 0] = a[g >> 0] | 0;
- l = l + 1 | 0;
- g = g + 1 | 0;
- } while ((l | 0) < (e | 0));
- me(t, h, 10, k);
- me(u, j, 10, k);
- i = v;
- return
- }
- e = c[g + 16 >> 2] | 0;
- g = c[g + 8 >> 2] | 0;
- m = b[f >> 1] | 0;
- m = ((m << 18 >> 18 | 0) == (m | 0) ? m << 2 : m >>> 15 ^ 32767) << 16 >> 16;
- b[q >> 1] = b[g + (m << 1) >> 1] | 0;
- b[q + 2 >> 1] = b[g + (m + 1 << 1) >> 1] | 0;
- b[r >> 1] = b[g + (m + 2 << 1) >> 1] | 0;
- b[r + 2 >> 1] = b[g + (m + 3 << 1) >> 1] | 0;
- m = b[f + 2 >> 1] | 0;
- m = ((m << 18 >> 18 | 0) == (m | 0) ? m << 2 : m >>> 15 ^ 32767) << 16 >> 16;
- b[q + 4 >> 1] = b[e + (m << 1) >> 1] | 0;
- b[q + 6 >> 1] = b[e + (m + 1 << 1) >> 1] | 0;
- b[r + 4 >> 1] = b[e + (m + 2 << 1) >> 1] | 0;
- b[r + 6 >> 1] = b[e + (m + 3 << 1) >> 1] | 0;
- m = b[f + 4 >> 1] | 0;
- g = m << 16 >> 16;
- if (m << 16 >> 16 < 0) e = ~((g ^ -2) >> 1); else e = g >>> 1;
- m = e << 16 >> 16;
- m = ((e << 18 >> 18 | 0) == (m | 0) ? e << 2 : m >>> 15 ^ 32767) << 16 >> 16;
- l = n + (m + 1 << 1) | 0;
- e = b[n + (m << 1) >> 1] | 0;
- if (!(g & 1)) {
- b[q + 8 >> 1] = e;
- b[q + 10 >> 1] = b[l >> 1] | 0;
- b[r + 8 >> 1] = b[n + (m + 2 << 1) >> 1] | 0;
- b[r + 10 >> 1] = b[n + (m + 3 << 1) >> 1] | 0;
- } else {
- if (e << 16 >> 16 == -32768) e = 32767; else e = 0 - (e & 65535) & 65535;
- b[q + 8 >> 1] = e;
- e = b[l >> 1] | 0;
- if (e << 16 >> 16 == -32768) e = 32767; else e = 0 - (e & 65535) & 65535;
- b[q + 10 >> 1] = e;
- e = b[n + (m + 2 << 1) >> 1] | 0;
- if (e << 16 >> 16 == -32768) e = 32767; else e = 0 - (e & 65535) & 65535;
- b[r + 8 >> 1] = e;
- e = b[n + (m + 3 << 1) >> 1] | 0;
- if (e << 16 >> 16 == -32768) e = 32767; else e = 0 - (e & 65535) & 65535;
- b[r + 10 >> 1] = e;
- }
- l = b[f + 6 >> 1] | 0;
- l = ((l << 18 >> 18 | 0) == (l | 0) ? l << 2 : l >>> 15 ^ 32767) << 16 >> 16;
- b[q + 12 >> 1] = b[o + (l << 1) >> 1] | 0;
- b[q + 14 >> 1] = b[o + (l + 1 << 1) >> 1] | 0;
- b[r + 12 >> 1] = b[o + (l + 2 << 1) >> 1] | 0;
- b[r + 14 >> 1] = b[o + (l + 3 << 1) >> 1] | 0;
- l = b[f + 8 >> 1] | 0;
- l = ((l << 18 >> 18 | 0) == (l | 0) ? l << 2 : l >>> 15 ^ 32767) << 16 >> 16;
- b[q + 16 >> 1] = b[p + (l << 1) >> 1] | 0;
- b[q + 18 >> 1] = b[p + (l + 1 << 1) >> 1] | 0;
- b[r + 16 >> 1] = b[p + (l + 2 << 1) >> 1] | 0;
- b[r + 18 >> 1] = b[p + (l + 3 << 1) >> 1] | 0;
- l = 0;
- do {
- g = d + (l << 1) | 0;
- e = (b[g >> 1] | 0) * 21299 >> 15;
- if ((e | 0) > 32767) {
- c[k >> 2] = 1;
- e = 32767;
- }
- p = Rd(b[s + (l << 1) >> 1] | 0, e & 65535, k) | 0;
- b[t + (l << 1) >> 1] = Rd(b[q + (l << 1) >> 1] | 0, p, k) | 0;
- f = b[r + (l << 1) >> 1] | 0;
- b[u + (l << 1) >> 1] = Rd(f, p, k) | 0;
- b[g >> 1] = f;
- l = l + 1 | 0;
- } while ((l | 0) != 10);
- Ae(t, 205, 10, k);
- Ae(u, 205, 10, k);
- l = d + 20 | 0;
- g = u;
- e = l + 20 | 0;
- do {
- a[l >> 0] = a[g >> 0] | 0;
- l = l + 1 | 0;
- g = g + 1 | 0;
- } while ((l | 0) < (e | 0));
- me(t, h, 10, k);
- me(u, j, 10, k);
- i = v;
- return
- }
- function db(a, c) {
- a = a | 0;
- c = c | 0;
- var d = 0, e = 0;
- if (!a) {
- e = -1;
- return e | 0
- }
- d = a;
- e = d + 20 | 0;
- do {
- b[d >> 1] = 0;
- d = d + 2 | 0;
- } while ((d | 0) < (e | 0));
- Pe(a + 20 | 0, c | 0, 20) | 0;
- e = 0;
- return e | 0
- }
- function eb(d) {
- d = d | 0;
- var e = 0, f = 0, g = 0, h = 0, i = 0;
- if (!d) {
- i = -1;
- return i | 0
- }
- b[d >> 1] = 0;
- b[d + 2 >> 1] = 8192;
- e = d + 4 | 0;
- b[e >> 1] = 3500;
- b[d + 6 >> 1] = 3500;
- c[d + 8 >> 2] = 1887529304;
- b[d + 12 >> 1] = 3e4;
- b[d + 14 >> 1] = 26e3;
- b[d + 16 >> 1] = 21e3;
- b[d + 18 >> 1] = 15e3;
- b[d + 20 >> 1] = 8e3;
- b[d + 22 >> 1] = 0;
- b[d + 24 >> 1] = -8e3;
- b[d + 26 >> 1] = -15e3;
- b[d + 28 >> 1] = -21e3;
- b[d + 30 >> 1] = -26e3;
- b[d + 32 >> 1] = 3e4;
- b[d + 34 >> 1] = 26e3;
- b[d + 36 >> 1] = 21e3;
- b[d + 38 >> 1] = 15e3;
- b[d + 40 >> 1] = 8e3;
- b[d + 42 >> 1] = 0;
- b[d + 44 >> 1] = -8e3;
- b[d + 46 >> 1] = -15e3;
- b[d + 48 >> 1] = -21e3;
- b[d + 50 >> 1] = -26e3;
- b[d + 212 >> 1] = 0;
- b[d + 374 >> 1] = 0;
- b[d + 392 >> 1] = 0;
- f = d + 52 | 0;
- b[f >> 1] = 1384;
- b[d + 54 >> 1] = 2077;
- b[d + 56 >> 1] = 3420;
- b[d + 58 >> 1] = 5108;
- b[d + 60 >> 1] = 6742;
- b[d + 62 >> 1] = 8122;
- b[d + 64 >> 1] = 9863;
- b[d + 66 >> 1] = 11092;
- b[d + 68 >> 1] = 12714;
- b[d + 70 >> 1] = 13701;
- g = d + 72 | 0;
- h = f;
- i = g + 20 | 0;
- do {
- a[g >> 0] = a[h >> 0] | 0;
- g = g + 1 | 0;
- h = h + 1 | 0;
- } while ((g | 0) < (i | 0));
- g = d + 92 | 0;
- h = f;
- i = g + 20 | 0;
- do {
- a[g >> 0] = a[h >> 0] | 0;
- g = g + 1 | 0;
- h = h + 1 | 0;
- } while ((g | 0) < (i | 0));
- g = d + 112 | 0;
- h = f;
- i = g + 20 | 0;
- do {
- a[g >> 0] = a[h >> 0] | 0;
- g = g + 1 | 0;
- h = h + 1 | 0;
- } while ((g | 0) < (i | 0));
- g = d + 132 | 0;
- h = f;
- i = g + 20 | 0;
- do {
- a[g >> 0] = a[h >> 0] | 0;
- g = g + 1 | 0;
- h = h + 1 | 0;
- } while ((g | 0) < (i | 0));
- g = d + 152 | 0;
- h = f;
- i = g + 20 | 0;
- do {
- a[g >> 0] = a[h >> 0] | 0;
- g = g + 1 | 0;
- h = h + 1 | 0;
- } while ((g | 0) < (i | 0));
- g = d + 172 | 0;
- h = f;
- i = g + 20 | 0;
- do {
- a[g >> 0] = a[h >> 0] | 0;
- g = g + 1 | 0;
- h = h + 1 | 0;
- } while ((g | 0) < (i | 0));
- g = d + 192 | 0;
- h = f;
- i = g + 20 | 0;
- do {
- a[g >> 0] = a[h >> 0] | 0;
- g = g + 1 | 0;
- h = h + 1 | 0;
- } while ((g | 0) < (i | 0));
- Qe(d + 214 | 0, 0, 160) | 0;
- b[d + 376 >> 1] = 3500;
- b[d + 378 >> 1] = 3500;
- i = b[e >> 1] | 0;
- b[d + 380 >> 1] = i;
- b[d + 382 >> 1] = i;
- b[d + 384 >> 1] = i;
- b[d + 386 >> 1] = i;
- b[d + 388 >> 1] = i;
- b[d + 390 >> 1] = i;
- b[d + 394 >> 1] = 0;
- b[d + 396 >> 1] = 7;
- b[d + 398 >> 1] = 32767;
- b[d + 400 >> 1] = 0;
- b[d + 402 >> 1] = 0;
- b[d + 404 >> 1] = 0;
- c[d + 408 >> 2] = 1;
- b[d + 412 >> 1] = 0;
- i = 0;
- return i | 0
- }
- function fb(d, f, g, h, j, k, l, m, n, o, p, q) {
- d = d | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- k = k | 0;
- l = l | 0;
- m = m | 0;
- n = n | 0;
- o = o | 0;
- p = p | 0;
- q = q | 0;
- var 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, _ = 0;
- _ = i;
- i = i + 304 | 0;
- Q = _ + 192 | 0;
- N = _ + 168 | 0;
- S = _ + 148 | 0;
- W = _ + 216 | 0;
- T = _ + 146 | 0;
- U = _ + 144 | 0;
- O = _ + 124 | 0;
- P = _ + 104 | 0;
- R = _ + 84 | 0;
- V = _ + 60 | 0;
- L = _ + 40 | 0;
- K = _;
- Y = d + 404 | 0;
- X = d + 400 | 0;
- if ((b[Y >> 1] | 0) != 0 ? (b[X >> 1] | 0) != 0 : 0) {
- J = d + 394 | 0;
- b[J >> 1] = b[636 + (l << 1) >> 1] | 0;
- z = b[d + 212 >> 1] | 0;
- y = z + 10 | 0;
- Pe(d + 52 + (((y & 65535 | 0) == 80 ? 0 : y << 16 >> 16) << 1) | 0, d + 52 + (z << 1) | 0, 20) | 0;
- z = b[d + 392 >> 1] | 0;
- y = z + 1 | 0;
- b[d + 376 + (((y & 65535 | 0) == 8 ? 0 : y << 16 >> 16) << 1) >> 1] = b[d + 376 + (z << 1) >> 1] | 0;
- y = d + 4 | 0;
- b[y >> 1] = 0;
- z = K + 36 | 0;
- A = K + 32 | 0;
- B = K + 28 | 0;
- C = K + 24 | 0;
- D = K + 20 | 0;
- E = K + 16 | 0;
- F = K + 12 | 0;
- G = K + 8 | 0;
- H = K + 4 | 0;
- I = d + 52 | 0;
- t = K;
- M = t + 40 | 0;
- do {
- c[t >> 2] = 0;
- t = t + 4 | 0;
- } while ((t | 0) < (M | 0));
- s = 0;
- r = 7;
- while (1) {
- M = b[d + 376 + (r << 1) >> 1] | 0;
- x = M << 16 >> 16;
- if (M << 16 >> 16 < 0) x = ~((x ^ -8) >> 3); else x = x >>> 3;
- s = Rd(s, x & 65535, q) | 0;
- b[y >> 1] = s;
- v = r * 10 | 0;
- t = 9;
- while (1) {
- u = K + (t << 2) | 0;
- w = c[u >> 2] | 0;
- M = b[d + 52 + (t + v << 1) >> 1] | 0;
- x = M + w | 0;
- if ((M ^ w | 0) > -1 & (x ^ w | 0) < 0) {
- c[q >> 2] = 1;
- x = (w >>> 31) + 2147483647 | 0;
- }
- c[u >> 2] = x;
- if ((t | 0) > 0) t = t + -1 | 0; else break
- }
- if ((r | 0) <= 0) break; else r = r + -1 | 0;
- }
- b[L + 18 >> 1] = (c[z >> 2] | 0) >>> 3;
- b[L + 16 >> 1] = (c[A >> 2] | 0) >>> 3;
- b[L + 14 >> 1] = (c[B >> 2] | 0) >>> 3;
- b[L + 12 >> 1] = (c[C >> 2] | 0) >>> 3;
- b[L + 10 >> 1] = (c[D >> 2] | 0) >>> 3;
- b[L + 8 >> 1] = (c[E >> 2] | 0) >>> 3;
- b[L + 6 >> 1] = (c[F >> 2] | 0) >>> 3;
- b[L + 4 >> 1] = (c[G >> 2] | 0) >>> 3;
- b[L + 2 >> 1] = (c[H >> 2] | 0) >>> 3;
- b[L >> 1] = (c[K >> 2] | 0) >>> 3;
- me(L, d + 12 | 0, 10, q);
- b[y >> 1] = Ge(b[y >> 1] | 0, b[J >> 1] | 0, q) | 0;
- Oe(d + 214 | 0, I | 0, 160) | 0;
- L = 9;
- while (1) {
- M = b[d + 214 + (L + 70 << 1) >> 1] | 0;
- u = M << 16 >> 16;
- K = b[d + 214 + (L + 60 << 1) >> 1] | 0;
- t = (K << 16 >> 16) + u | 0;
- if ((K ^ M) << 16 >> 16 > -1 & (t ^ u | 0) < 0) {
- c[q >> 2] = 1;
- t = (u >>> 31) + 2147483647 | 0;
- }
- M = b[d + 214 + (L + 50 << 1) >> 1] | 0;
- u = M + t | 0;
- if ((M ^ t | 0) > -1 & (u ^ t | 0) < 0) {
- c[q >> 2] = 1;
- u = (t >>> 31) + 2147483647 | 0;
- }
- M = b[d + 214 + (L + 40 << 1) >> 1] | 0;
- t = M + u | 0;
- if ((M ^ u | 0) > -1 & (t ^ u | 0) < 0) {
- c[q >> 2] = 1;
- t = (u >>> 31) + 2147483647 | 0;
- }
- M = b[d + 214 + (L + 30 << 1) >> 1] | 0;
- u = M + t | 0;
- if ((M ^ t | 0) > -1 & (u ^ t | 0) < 0) {
- c[q >> 2] = 1;
- u = (t >>> 31) + 2147483647 | 0;
- }
- M = b[d + 214 + (L + 20 << 1) >> 1] | 0;
- t = M + u | 0;
- if ((M ^ u | 0) > -1 & (t ^ u | 0) < 0) {
- c[q >> 2] = 1;
- t = (u >>> 31) + 2147483647 | 0;
- }
- M = b[d + 214 + (L + 10 << 1) >> 1] | 0;
- u = M + t | 0;
- if ((M ^ t | 0) > -1 & (u ^ t | 0) < 0) {
- c[q >> 2] = 1;
- t = (t >>> 31) + 2147483647 | 0;
- } else t = u;
- M = b[d + 214 + (L << 1) >> 1] | 0;
- u = M + t | 0;
- if ((M ^ t | 0) > -1 & (u ^ t | 0) < 0) {
- c[q >> 2] = 1;
- u = (t >>> 31) + 2147483647 | 0;
- }
- if ((u | 0) < 0) u = ~((u ^ -8) >> 3); else u = u >>> 3;
- x = u & 65535;
- v = b[654 + (L << 1) >> 1] | 0;
- w = 7;
- while (1) {
- r = d + 214 + ((w * 10 | 0) + L << 1) | 0;
- u = Ge(b[r >> 1] | 0, x, q) | 0;
- b[r >> 1] = u;
- u = (Z(v, u << 16 >> 16) | 0) >> 15;
- if ((u | 0) > 32767) {
- c[q >> 2] = 1;
- u = 32767;
- }
- b[r >> 1] = u;
- s = (u & 65535) - (u >>> 15 & 1) | 0;
- s = s << 16 >> 31 ^ s;
- t = s & 65535;
- if (t << 16 >> 16 > 655) t = (((s << 16 >> 16) + 261489 | 0) >>> 2) + 655 & 65535;
- t = t << 16 >> 16 > 1310 ? 1310 : t;
- if (!(u & 32768)) u = t; else u = 0 - (t & 65535) & 65535;
- b[r >> 1] = u;
- if ((w | 0) > 0) w = w + -1 | 0; else break
- }
- if ((L | 0) > 0) L = L + -1 | 0; else break
- }
- }
- if (b[X >> 1] | 0) {
- x = d + 32 | 0;
- w = d + 12 | 0;
- t = x;
- v = w;
- M = t + 20 | 0;
- do {
- a[t >> 0] = a[v >> 0] | 0;
- t = t + 1 | 0;
- v = v + 1 | 0;
- } while ((t | 0) < (M | 0));
- v = d + 4 | 0;
- s = b[v >> 1] | 0;
- r = d + 6 | 0;
- b[r >> 1] = s;
- do if (b[d + 402 >> 1] | 0) {
- t = b[d >> 1] | 0;
- b[d >> 1] = 0;
- t = t << 16 >> 16 < 32 ? t : 32;
- M = t << 16 >> 16;
- u = M << 10;
- if ((u | 0) != (M << 26 >> 16 | 0)) {
- c[q >> 2] = 1;
- u = t << 16 >> 16 > 0 ? 32767 : -32768;
- }
- if (t << 16 >> 16 > 1) u = Td(1024, u & 65535) | 0; else u = 16384;
- b[d + 2 >> 1] = u;
- bb(g, b[m >> 1] | 0, c[n + 60 >> 2] | 0);
- ab(g, 8, 0, m + 2 | 0, n, w, q);
- t = g;
- M = t + 20 | 0;
- do {
- a[t >> 0] = 0;
- t = t + 1 | 0;
- } while ((t | 0) < (M | 0));
- s = b[m + 8 >> 1] | 0;
- s = s << 16 >> 16 == 0 ? -32768 : ((s + 64 & 65535) > 127 ? (s << 16 >> 16 > 0 ? 32767 : 32768) : s << 16 >> 16 << 9) + 60416 & 65535;
- b[v >> 1] = s;
- if ((b[d + 412 >> 1] | 0) != 0 ? (c[d + 408 >> 2] | 0) != 0 : 0) break;
- t = x;
- v = w;
- M = t + 20 | 0;
- do {
- a[t >> 0] = a[v >> 0] | 0;
- t = t + 1 | 0;
- v = v + 1 | 0;
- } while ((t | 0) < (M | 0));
- b[r >> 1] = s;
- } while (0);
- t = s << 16 >> 16;
- if (s << 16 >> 16 < 0) t = ~((t ^ -2) >> 1); else t = t >>> 1;
- t = t + 56536 | 0;
- u = t << 16;
- if ((u | 0) > 0) t = 0; else t = (u | 0) < -946077696 ? -14436 : t & 65535;
- b[h >> 1] = t;
- b[h + 2 >> 1] = t;
- b[h + 4 >> 1] = t;
- b[h + 6 >> 1] = t;
- m = ((t << 16 >> 16) * 5443 | 0) >>> 15 & 65535;
- b[h + 8 >> 1] = m;
- b[h + 10 >> 1] = m;
- b[h + 12 >> 1] = m;
- b[h + 14 >> 1] = m;
- }
- t = ((b[636 + (l << 1) >> 1] | 0) * 104864 | 0) >>> 15 << 16;
- if ((t | 0) < 0) t = ~((t >> 16 ^ -32) >> 5); else t = t >> 21;
- l = d + 394 | 0;
- b[l >> 1] = Rd(((b[l >> 1] | 0) * 29491 | 0) >>> 15 & 65535, t & 65535, q) | 0;
- h = (e[d >> 1] << 16) + 65536 | 0;
- t = h >> 16;
- n = d + 2 | 0;
- t = (Z(((h << 10 >> 26 | 0) == (t | 0) ? h >>> 6 : t >>> 15 ^ 32767) << 16 >> 16, b[n >> 1] | 0) | 0) >> 15;
- if ((t | 0) > 32767) {
- c[q >> 2] = 1;
- t = 32767;
- }
- s = t & 65535;
- if (s << 16 >> 16 <= 1024) if (s << 16 >> 16 < -2048) w = -32768; else w = t << 4 & 65535; else w = 16384;
- m = d + 4 | 0;
- x = w << 16 >> 16;
- u = Z(b[m >> 1] | 0, x) | 0;
- if ((u | 0) == 1073741824) {
- c[q >> 2] = 1;
- L = 2147483647;
- } else L = u << 1;
- u = (Z(b[d + 30 >> 1] | 0, x) | 0) >> 15;
- if ((u | 0) > 32767) {
- c[q >> 2] = 1;
- u = 32767;
- }
- y = u & 65535;
- b[Q + 18 >> 1] = y;
- u = (Z(b[d + 28 >> 1] | 0, x) | 0) >> 15;
- if ((u | 0) > 32767) {
- c[q >> 2] = 1;
- u = 32767;
- }
- b[Q + 16 >> 1] = u;
- u = (Z(b[d + 26 >> 1] | 0, x) | 0) >> 15;
- if ((u | 0) > 32767) {
- c[q >> 2] = 1;
- u = 32767;
- }
- b[Q + 14 >> 1] = u;
- u = (Z(b[d + 24 >> 1] | 0, x) | 0) >> 15;
- if ((u | 0) > 32767) {
- c[q >> 2] = 1;
- u = 32767;
- }
- b[Q + 12 >> 1] = u;
- u = (Z(b[d + 22 >> 1] | 0, x) | 0) >> 15;
- if ((u | 0) > 32767) {
- c[q >> 2] = 1;
- u = 32767;
- }
- b[Q + 10 >> 1] = u;
- u = (Z(b[d + 20 >> 1] | 0, x) | 0) >> 15;
- if ((u | 0) > 32767) {
- c[q >> 2] = 1;
- u = 32767;
- }
- b[Q + 8 >> 1] = u;
- u = (Z(b[d + 18 >> 1] | 0, x) | 0) >> 15;
- if ((u | 0) > 32767) {
- c[q >> 2] = 1;
- u = 32767;
- }
- b[Q + 6 >> 1] = u;
- u = (Z(b[d + 16 >> 1] | 0, x) | 0) >> 15;
- if ((u | 0) > 32767) {
- c[q >> 2] = 1;
- u = 32767;
- }
- b[Q + 4 >> 1] = u;
- u = (Z(b[d + 14 >> 1] | 0, x) | 0) >> 15;
- if ((u | 0) > 32767) {
- c[q >> 2] = 1;
- u = 32767;
- }
- b[Q + 2 >> 1] = u;
- u = (Z(b[d + 12 >> 1] | 0, x) | 0) >> 15;
- if ((u | 0) > 32767) {
- c[q >> 2] = 1;
- u = 32767;
- }
- b[Q >> 1] = u;
- h = d + 6 | 0;
- x = 16384 - (w & 65535) << 16 >> 16;
- u = Z(b[h >> 1] | 0, x) | 0;
- if ((u | 0) != 1073741824) {
- t = (u << 1) + L | 0;
- if ((u ^ L | 0) > 0 & (t ^ L | 0) < 0) {
- c[q >> 2] = 1;
- K = (L >>> 31) + 2147483647 | 0;
- } else K = t;
- } else {
- c[q >> 2] = 1;
- K = 2147483647;
- }
- t = y;
- v = 9;
- while (1) {
- s = Q + (v << 1) | 0;
- u = (Z(b[d + 32 + (v << 1) >> 1] | 0, x) | 0) >> 15;
- if ((u | 0) > 32767) {
- c[q >> 2] = 1;
- u = 32767;
- }
- t = Rd(t, u & 65535, q) | 0;
- b[s >> 1] = t;
- M = t << 16 >> 16;
- u = M << 1;
- if ((u | 0) != (M << 17 >> 16 | 0)) {
- c[q >> 2] = 1;
- u = t << 16 >> 16 > 0 ? 32767 : -32768;
- }
- b[s >> 1] = u;
- u = v + -1 | 0;
- if ((v | 0) <= 0) break;
- t = b[Q + (u << 1) >> 1] | 0;
- v = u;
- }
- L = d + 374 | 0;
- u = ((e[L >> 1] << 16) + -161021952 >> 16) * 9830 >> 15;
- if ((u | 0) > 32767) {
- c[q >> 2] = 1;
- u = 32767;
- }
- u = 4096 - (u & 65535) | 0;
- t = u << 16;
- if ((t | 0) > 268369920) x = 32767; else x = (t | 0) < 0 ? 0 : u << 19 >> 16;
- J = d + 8 | 0;
- u = Ga(J, 3) | 0;
- ne(Q, O, 10, q);
- t = P;
- v = O;
- M = t + 20 | 0;
- do {
- b[t >> 1] = b[v >> 1] | 0;
- t = t + 2 | 0;
- v = v + 2 | 0;
- } while ((t | 0) < (M | 0));
- t = (u << 16 >> 16) * 10 | 0;
- v = 9;
- while (1) {
- s = P + (v << 1) | 0;
- r = b[s >> 1] | 0;
- u = (Z(b[d + 214 + (v + t << 1) >> 1] | 0, x) | 0) >> 15;
- if ((u | 0) > 32767) {
- c[q >> 2] = 1;
- u = 32767;
- }
- b[s >> 1] = Rd(r, u & 65535, q) | 0;
- if ((v | 0) > 0) v = v + -1 | 0; else break
- }
- Ae(O, 205, 10, q);
- Ae(P, 205, 10, q);
- t = g + 20 | 0;
- v = O;
- M = t + 20 | 0;
- do {
- a[t >> 0] = a[v >> 0] | 0;
- t = t + 1 | 0;
- v = v + 1 | 0;
- } while ((t | 0) < (M | 0));
- me(O, Q, 10, q);
- me(P, R, 10, q);
- he(Q, N, q);
- he(R, V, q);
- t = p;
- v = N;
- M = t + 22 | 0;
- do {
- a[t >> 0] = a[v >> 0] | 0;
- t = t + 1 | 0;
- v = v + 1 | 0;
- } while ((t | 0) < (M | 0));
- t = p + 22 | 0;
- v = N;
- M = t + 22 | 0;
- do {
- a[t >> 0] = a[v >> 0] | 0;
- t = t + 1 | 0;
- v = v + 1 | 0;
- } while ((t | 0) < (M | 0));
- t = p + 44 | 0;
- v = N;
- M = t + 22 | 0;
- do {
- a[t >> 0] = a[v >> 0] | 0;
- t = t + 1 | 0;
- v = v + 1 | 0;
- } while ((t | 0) < (M | 0));
- t = p + 66 | 0;
- v = N;
- M = t + 22 | 0;
- do {
- a[t >> 0] = a[v >> 0] | 0;
- t = t + 1 | 0;
- v = v + 1 | 0;
- } while ((t | 0) < (M | 0));
- Fa(N + 2 | 0, S, q);
- u = 0;
- t = 32767;
- do {
- s = b[S + (u << 1) >> 1] | 0;
- s = Z(s, s) | 0;
- if (s >>> 0 < 1073741824) s = 32767 - (s >>> 15) | 0; else {
- c[q >> 2] = 1;
- s = 0;
- }
- t = (Z(s << 16 >> 16, t << 16 >> 16) | 0) >> 15;
- if ((t | 0) > 32767) {
- c[q >> 2] = 1;
- t = 32767;
- }
- u = u + 1 | 0;
- } while ((u | 0) != 10);
- de(t << 16 >> 16, T, U, q);
- t = (e[T >> 1] << 16) + -983040 | 0;
- s = t >> 16;
- s = De(Ge(0, Rd(((t << 12 >> 28 | 0) == (s | 0) ? t >>> 4 : s >>> 15 ^ 32767) & 65535, De(b[U >> 1] | 0, 3, q) | 0, q) | 0, q) | 0, 1, q) | 0;
- t = (b[L >> 1] | 0) * 29491 >> 15;
- if ((t | 0) > 32767) {
- c[q >> 2] = 1;
- t = 32767;
- }
- u = s << 16 >> 16;
- s = u * 3277 >> 15;
- if ((s | 0) > 32767) {
- c[q >> 2] = 1;
- s = 32767;
- }
- b[L >> 1] = Rd(t & 65535, s & 65535, q) | 0;
- s = K >> 10;
- r = s + 262144 | 0;
- if ((s | 0) > -1 & (r ^ s | 0) < 0) {
- c[q >> 2] = 1;
- r = (s >>> 31) + 2147483647 | 0;
- }
- U = u << 4;
- s = r - U | 0;
- if (((s ^ r) & (r ^ U) | 0) < 0) {
- c[q >> 2] = 1;
- r = (r >>> 31) + 2147483647 | 0;
- } else r = s;
- U = b[l >> 1] << 5;
- s = U + r | 0;
- if ((U ^ r | 0) > -1 & (s ^ r | 0) < 0) {
- c[q >> 2] = 1;
- s = (r >>> 31) + 2147483647 | 0;
- }
- u = (re(s >>> 16 & 65535, s >>> 1 & 32767, q) | 0) << 16 >> 16;
- Ha(J, W, q);
- r = 39;
- while (1) {
- t = W + (r << 1) | 0;
- s = (Z(b[t >> 1] | 0, u) | 0) >> 15;
- if ((s | 0) > 32767) {
- c[q >> 2] = 1;
- s = 32767;
- }
- b[t >> 1] = s;
- if ((r | 0) > 0) r = r + -1 | 0; else break
- }
- He(V, W, o, 40, f, 1);
- Ha(J, W, q);
- r = 39;
- while (1) {
- t = W + (r << 1) | 0;
- s = (Z(b[t >> 1] | 0, u) | 0) >> 15;
- if ((s | 0) > 32767) {
- c[q >> 2] = 1;
- s = 32767;
- }
- b[t >> 1] = s;
- if ((r | 0) > 0) r = r + -1 | 0; else break
- }
- He(V, W, o + 80 | 0, 40, f, 1);
- Ha(J, W, q);
- r = 39;
- while (1) {
- t = W + (r << 1) | 0;
- s = (Z(b[t >> 1] | 0, u) | 0) >> 15;
- if ((s | 0) > 32767) {
- c[q >> 2] = 1;
- s = 32767;
- }
- b[t >> 1] = s;
- if ((r | 0) > 0) r = r + -1 | 0; else break
- }
- He(V, W, o + 160 | 0, 40, f, 1);
- Ha(J, W, q);
- t = 39;
- while (1) {
- r = W + (t << 1) | 0;
- s = (Z(b[r >> 1] | 0, u) | 0) >> 15;
- if ((s | 0) > 32767) {
- c[q >> 2] = 1;
- s = 32767;
- }
- b[r >> 1] = s;
- if ((t | 0) > 0) t = t + -1 | 0; else break
- }
- He(V, W, o + 240 | 0, 40, f, 1);
- b[j + 14 >> 1] = 20;
- b[j + 16 >> 1] = 0;
- if ((k | 0) == 2) {
- s = b[d >> 1] | 0;
- s = s << 16 >> 16 > 32 ? 32 : s << 16 >> 16 < 1 ? 8 : s;
- o = s << 16 >> 16;
- r = o << 10;
- if ((r | 0) != (o << 26 >> 16 | 0)) {
- c[q >> 2] = 1;
- r = s << 16 >> 16 > 0 ? 32767 : -32768;
- }
- b[n >> 1] = Td(1024, r & 65535) | 0;
- b[d >> 1] = 0;
- t = d + 32 | 0;
- v = d + 12 | 0;
- M = t + 20 | 0;
- do {
- a[t >> 0] = a[v >> 0] | 0;
- t = t + 1 | 0;
- v = v + 1 | 0;
- } while ((t | 0) < (M | 0));
- q = b[m >> 1] | 0;
- b[h >> 1] = q;
- b[m >> 1] = (q & 65535) + 65280;
- }
- if (!(b[X >> 1] | 0)) {
- i = _;
- return
- }
- do if (!(b[d + 402 >> 1] | 0)) {
- if (b[Y >> 1] | 0) break;
- i = _;
- return
- } while (0);
- b[d >> 1] = 0;
- b[d + 412 >> 1] = 1;
- i = _;
- return
- }
- function gb(a, d, f, g) {
- a = a | 0;
- d = d | 0;
- f = f | 0;
- g = g | 0;
- var h = 0, j = 0, k = 0, l = 0, m = 0, n = 0;
- m = i;
- i = i + 16 | 0;
- k = m + 2 | 0;
- l = m;
- b[l >> 1] = 0;
- j = a + 212 | 0;
- h = (e[j >> 1] | 0) + 10 | 0;
- h = (h & 65535 | 0) == 80 ? 0 : h & 65535;
- b[j >> 1] = h;
- Pe(a + 52 + (h << 16 >> 16 << 1) | 0, d | 0, 20) | 0;
- h = 0;
- j = 159;
- while (1) {
- n = b[f + (j << 1) >> 1] | 0;
- n = Z(n, n) | 0;
- n = (n | 0) == 1073741824 ? 2147483647 : n << 1;
- d = n + h | 0;
- if ((n ^ h | 0) > -1 & (d ^ h | 0) < 0) {
- c[g >> 2] = 1;
- h = (h >>> 31) + 2147483647 | 0;
- } else h = d;
- if ((j | 0) > 0) j = j + -1 | 0; else break
- }
- de(h, k, l, g);
- h = b[k >> 1] | 0;
- n = h << 16 >> 16;
- d = n << 10;
- if ((d | 0) != (n << 26 >> 16 | 0)) {
- c[g >> 2] = 1;
- d = h << 16 >> 16 > 0 ? 32767 : -32768;
- }
- b[k >> 1] = d;
- n = b[l >> 1] | 0;
- h = n << 16 >> 16;
- if (n << 16 >> 16 < 0) h = ~((h ^ -32) >> 5); else h = h >>> 5;
- l = a + 392 | 0;
- n = (e[l >> 1] | 0) + 1 | 0;
- n = (n & 65535 | 0) == 8 ? 0 : n & 65535;
- b[l >> 1] = n;
- b[a + 376 + (n << 16 >> 16 << 1) >> 1] = h + 57015 + d;
- i = m;
- return
- }
- function hb(a, d, f) {
- a = a | 0;
- d = d | 0;
- f = f | 0;
- var g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0;
- l = (d | 0) == 4;
- m = (d | 0) == 5;
- n = (d | 0) == 6;
- g = c[a + 408 >> 2] | 0;
- a:do if ((d + -4 | 0) >>> 0 < 3) k = 4; else {
- if ((g + -1 | 0) >>> 0 < 2) switch (d | 0) {
- case 2:
- case 3:
- case 7: {
- k = 4;
- break a
- }
- default:
- }
- b[a >> 1] = 0;
- j = 0;
- } while (0);
- if ((k | 0) == 4) {
- b:do if ((g | 0) == 2) {
- switch (d | 0) {
- case 2:
- case 4:
- case 6:
- case 7:
- break;
- default: {
- h = 1;
- break b
- }
- }
- h = 2;
- } else h = 1; while (0);
- j = (e[a >> 1] | 0) + 1 & 65535;
- b[a >> 1] = j;
- j = (d | 0) != 5 & j << 16 >> 16 > 50 ? 2 : h;
- }
- i = a + 398 | 0;
- if (m & (b[a + 412 >> 1] | 0) == 0) {
- b[i >> 1] = 0;
- h = 0;
- } else h = b[i >> 1] | 0;
- h = Rd(h, 1, f) | 0;
- b[i >> 1] = h;
- f = a + 404 | 0;
- b[f >> 1] = 0;
- c:do switch (d | 0) {
- case 2:
- case 4:
- case 5:
- case 6:
- case 7: {
- if (!((d | 0) == 7 & (j | 0) == 0)) {
- if (h << 16 >> 16 > 30) {
- b[f >> 1] = 1;
- b[i >> 1] = 0;
- b[a + 396 >> 1] = 0;
- break c
- }
- h = a + 396 | 0;
- g = b[h >> 1] | 0;
- if (!(g << 16 >> 16)) {
- b[i >> 1] = 0;
- break c
- } else {
- b[h >> 1] = (g & 65535) + 65535;
- break c
- }
- } else k = 14;
- break
- }
- default:
- k = 14;
- } while (0);
- if ((k | 0) == 14) b[a + 396 >> 1] = 7;
- if (!j) return j | 0;
- h = a + 400 | 0;
- b[h >> 1] = 0;
- g = a + 402 | 0;
- b[g >> 1] = 0;
- if (l) {
- b[h >> 1] = 1;
- return j | 0
- }
- if (m) {
- b[h >> 1] = 1;
- b[g >> 1] = 1;
- return j | 0
- }
- if (!n) return j | 0;
- b[h >> 1] = 1;
- b[f >> 1] = 0;
- return j | 0
- }
- function ib(a) {
- a = a | 0;
- if (!a) {
- a = -1;
- return a | 0
- }
- b[a >> 1] = 1;
- b[a + 2 >> 1] = 1;
- b[a + 4 >> 1] = 1;
- b[a + 6 >> 1] = 1;
- b[a + 8 >> 1] = 1;
- b[a + 10 >> 1] = 0;
- b[a + 12 >> 1] = 1;
- a = 0;
- return a | 0
- }
- function jb(a, d, e, f, g) {
- a = a | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- g = g | 0;
- var h = 0, j = 0, k = 0, l = 0;
- l = i;
- i = i + 16 | 0;
- k = l + 2 | 0;
- j = l;
- h = Zd(a, 5) | 0;
- a = a + 10 | 0;
- if ((Ge(h, b[a >> 1] | 0, g) | 0) << 16 >> 16 > 0) h = b[a >> 1] | 0;
- h = (Z(b[674 + (e << 16 >> 16 << 1) >> 1] | 0, h << 16 >> 16) | 0) >> 15;
- if ((h | 0) > 32767) {
- c[g >> 2] = 1;
- h = 32767;
- }
- b[f >> 1] = h;
- Xd(d, k, j, g);
- Wd(d, b[k >> 1] | 0, b[j >> 1] | 0);
- i = l;
- return
- }
- function kb(a, c, d, e, f) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- if (!(c << 16 >> 16)) {
- if (d << 16 >> 16) {
- c = a + 12 | 0;
- if ((Ge(b[e >> 1] | 0, b[c >> 1] | 0, f) | 0) << 16 >> 16 > 0) b[e >> 1] = b[c >> 1] | 0;
- } else c = a + 12 | 0;
- b[c >> 1] = b[e >> 1] | 0;
- }
- b[a + 10 >> 1] = b[e >> 1] | 0;
- f = a + 2 | 0;
- b[a >> 1] = b[f >> 1] | 0;
- d = a + 4 | 0;
- b[f >> 1] = b[d >> 1] | 0;
- f = a + 6 | 0;
- b[d >> 1] = b[f >> 1] | 0;
- a = a + 8 | 0;
- b[f >> 1] = b[a >> 1] | 0;
- b[a >> 1] = b[e >> 1] | 0;
- return
- }
- function lb(a, d, e, f) {
- a = a | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- var g = 0;
- g = Zd(a, 5) | 0;
- a = a + 10 | 0;
- if ((Ge(g, b[a >> 1] | 0, f) | 0) << 16 >> 16 > 0) g = b[a >> 1] | 0;
- g = (Z(b[688 + (d << 16 >> 16 << 1) >> 1] | 0, g << 16 >> 16) | 0) >> 15;
- if ((g | 0) <= 32767) {
- f = g;
- f = f & 65535;
- b[e >> 1] = f;
- return
- }
- c[f >> 2] = 1;
- f = 32767;
- f = f & 65535;
- b[e >> 1] = f;
- return
- }
- function mb(a) {
- a = a | 0;
- if (!a) {
- a = -1;
- return a | 0
- }
- b[a >> 1] = 1640;
- b[a + 2 >> 1] = 1640;
- b[a + 4 >> 1] = 1640;
- b[a + 6 >> 1] = 1640;
- b[a + 8 >> 1] = 1640;
- b[a + 10 >> 1] = 0;
- b[a + 12 >> 1] = 16384;
- a = 0;
- return a | 0
- }
- function nb(a, c, d, e, f) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- if (!(c << 16 >> 16)) {
- if (d << 16 >> 16) {
- c = a + 12 | 0;
- if ((Ge(b[e >> 1] | 0, b[c >> 1] | 0, f) | 0) << 16 >> 16 > 0) b[e >> 1] = b[c >> 1] | 0;
- } else c = a + 12 | 0;
- b[c >> 1] = b[e >> 1] | 0;
- }
- e = b[e >> 1] | 0;
- c = a + 10 | 0;
- b[c >> 1] = e;
- if ((Ge(e, 16384, f) | 0) << 16 >> 16 > 0) {
- b[c >> 1] = 16384;
- c = 16384;
- } else c = b[c >> 1] | 0;
- f = a + 2 | 0;
- b[a >> 1] = b[f >> 1] | 0;
- e = a + 4 | 0;
- b[f >> 1] = b[e >> 1] | 0;
- f = a + 6 | 0;
- b[e >> 1] = b[f >> 1] | 0;
- a = a + 8 | 0;
- b[f >> 1] = b[a >> 1] | 0;
- b[a >> 1] = c;
- return
- }
- function ob(a, d, e, f, g, h, i) {
- a = a | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- i = i | 0;
- var j = 0, k = 0, l = 0;
- k = Zd(e, 9) | 0;
- l = b[e + 16 >> 1] | 0;
- j = l << 16 >> 16;
- e = (j + (b[e + 14 >> 1] | 0) | 0) >>> 1;
- e = (j | 0) < (e << 16 >> 16 | 0) ? l : e & 65535;
- if (!(d << 16 >> 16 > 5 ? k << 16 >> 16 > d << 16 >> 16 : 0)) return 0;
- j = e << 16 >> 16;
- j = ((j << 18 >> 18 | 0) == (j | 0) ? j << 2 : j >>> 15 ^ 32767) & 65535;
- if (!(f << 16 >> 16 > 6 & g << 16 >> 16 == 0)) j = Ge(j, e, i) | 0;
- k = k << 16 >> 16 > j << 16 >> 16 ? j : k;
- l = qe(d) | 0;
- j = l << 16 >> 16;
- if (l << 16 >> 16 < 0) {
- e = 0 - j << 16;
- if ((e | 0) < 983040) j = d << 16 >> 16 >> (e >> 16) & 65535; else j = 0;
- } else {
- e = d << 16 >> 16;
- g = e << j;
- if ((g << 16 >> 16 >> j | 0) == (e | 0)) j = g & 65535; else j = (e >>> 15 ^ 32767) & 65535;
- }
- f = Z((Td(16383, j) | 0) << 16 >> 16, k << 16 >> 16) | 0;
- if ((f | 0) == 1073741824) {
- c[i >> 2] = 1;
- g = 2147483647;
- } else g = f << 1;
- f = Ge(20, l, i) | 0;
- j = f << 16 >> 16;
- if (f << 16 >> 16 > 0) f = f << 16 >> 16 < 31 ? g >> j : 0; else {
- d = 0 - j << 16 >> 16;
- f = g << d;
- f = (f >> d | 0) == (g | 0) ? f : g >> 31 ^ 2147483647;
- }
- f = (f | 0) > 32767 ? 32767 : f & 65535;
- f = h << 16 >> 16 != 0 & f << 16 >> 16 > 3072 ? 3072 : f << 16 >> 16;
- e = 0;
- do {
- g = a + (e << 1) | 0;
- j = Z(b[g >> 1] | 0, f) | 0;
- if ((j | 0) == 1073741824) {
- c[i >> 2] = 1;
- j = 2147483647;
- } else j = j << 1;
- b[g >> 1] = j >>> 11;
- e = e + 1 | 0;
- } while ((e | 0) != 40);
- return 0
- }
- function pb(a, e, f, g) {
- a = a | 0;
- e = e | 0;
- f = f | 0;
- g = g | 0;
- var h = 0, i = 0, j = 0, k = 0;
- h = c[g + 104 >> 2] | 0;
- i = c[g + 96 >> 2] | 0;
- if (a >>> 0 >= 8) {
- b[f >> 1] = (d[e >> 0] | 0) >>> 4 & 1;
- b[f + 2 >> 1] = (d[e >> 0] | 0) >>> 5 & 1;
- b[f + 4 >> 1] = (d[e >> 0] | 0) >>> 6 & 1;
- b[f + 6 >> 1] = (d[e >> 0] | 0) >>> 7 & 255;
- h = h + (a << 1) | 0;
- if ((b[h >> 1] | 0) > 1) {
- a = 1;
- g = 1;
- i = 4;
- } else return;
- while (1) {
- j = e + a | 0;
- a = i | 1;
- b[f + (i << 16 >> 16 << 1) >> 1] = d[j >> 0] & 1;
- b[f + (a << 16 >> 16 << 1) >> 1] = (d[j >> 0] | 0) >>> 1 & 1;
- k = i | 3;
- b[f + (a + 1 << 16 >> 16 << 16 >> 16 << 1) >> 1] = (d[j >> 0] | 0) >>> 2 & 1;
- b[f + (k << 16 >> 16 << 1) >> 1] = (d[j >> 0] | 0) >>> 3 & 1;
- b[f + (k + 1 << 16 >> 16 << 16 >> 16 << 1) >> 1] = (d[j >> 0] | 0) >>> 4 & 1;
- b[f + (k + 2 << 16 >> 16 << 16 >> 16 << 1) >> 1] = (d[j >> 0] | 0) >>> 5 & 1;
- b[f + (k + 3 << 16 >> 16 << 16 >> 16 << 1) >> 1] = (d[j >> 0] | 0) >>> 6 & 1;
- b[f + (k + 4 << 16 >> 16 << 16 >> 16 << 1) >> 1] = (d[j >> 0] | 0) >>> 7 & 255;
- g = g + 1 << 16 >> 16;
- if (g << 16 >> 16 < (b[h >> 1] | 0)) {
- a = g << 16 >> 16;
- i = i + 8 << 16 >> 16;
- } else break
- }
- return
- }
- k = c[(c[g + 100 >> 2] | 0) + (a << 2) >> 2] | 0;
- b[f + (b[k >> 1] << 1) >> 1] = (d[e >> 0] | 0) >>> 4 & 1;
- b[f + (b[k + 2 >> 1] << 1) >> 1] = (d[e >> 0] | 0) >>> 5 & 1;
- b[f + (b[k + 4 >> 1] << 1) >> 1] = (d[e >> 0] | 0) >>> 6 & 1;
- b[f + (b[k + 6 >> 1] << 1) >> 1] = (d[e >> 0] | 0) >>> 7 & 255;
- j = h + (a << 1) | 0;
- if ((b[j >> 1] | 0) <= 1) return;
- g = i + (a << 1) | 0;
- h = 1;
- a = 1;
- i = 4;
- while (1) {
- h = e + h | 0;
- i = i << 16 >> 16;
- if ((i | 0) < (b[g >> 1] | 0)) {
- b[f + (b[k + (i << 1) >> 1] << 1) >> 1] = d[h >> 0] & 1;
- i = i + 1 | 0;
- if ((i | 0) < (b[g >> 1] | 0)) {
- b[f + (b[k + (i << 1) >> 1] << 1) >> 1] = (d[h >> 0] | 0) >>> 1 & 1;
- i = i + 1 | 0;
- if ((i | 0) < (b[g >> 1] | 0)) {
- b[f + (b[k + (i << 1) >> 1] << 1) >> 1] = (d[h >> 0] | 0) >>> 2 & 1;
- i = i + 1 | 0;
- if ((i | 0) < (b[g >> 1] | 0)) {
- b[f + (b[k + (i << 1) >> 1] << 1) >> 1] = (d[h >> 0] | 0) >>> 3 & 1;
- i = i + 1 | 0;
- if ((i | 0) < (b[g >> 1] | 0)) {
- b[f + (b[k + (i << 1) >> 1] << 1) >> 1] = (d[h >> 0] | 0) >>> 4 & 1;
- i = i + 1 | 0;
- if ((i | 0) < (b[g >> 1] | 0)) {
- b[f + (b[k + (i << 1) >> 1] << 1) >> 1] = (d[h >> 0] | 0) >>> 5 & 1;
- i = i + 1 | 0;
- if ((i | 0) < (b[g >> 1] | 0)) {
- b[f + (b[k + (i << 1) >> 1] << 1) >> 1] = (d[h >> 0] | 0) >>> 6 & 1;
- i = i + 1 | 0;
- if ((i | 0) < (b[g >> 1] | 0)) {
- b[f + (b[k + (i << 1) >> 1] << 1) >> 1] = (d[h >> 0] | 0) >>> 7 & 1;
- i = i + 1 | 0;
- }
- }
- }
- }
- }
- }
- }
- }
- a = a + 1 << 16 >> 16;
- if (a << 16 >> 16 < (b[j >> 1] | 0)) h = a << 16 >> 16; else break
- }
- return
- }
- function qb(a, c, d, e, f) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- var g = 0, h = 0, i = 0, j = 0;
- switch (d << 16 >> 16) {
- case 0: {
- j = 9;
- while (1) {
- i = b[a + (j << 1) >> 1] | 0;
- d = i << 16 >> 16;
- if (i << 16 >> 16 < 0) d = ~((d ^ -4) >> 2); else d = d >>> 2;
- h = b[c + (j << 1) >> 1] | 0;
- g = h << 16 >> 16;
- if (h << 16 >> 16 < 0) h = ~((g ^ -4) >> 2); else h = g >>> 2;
- b[e + (j << 1) >> 1] = Rd((i & 65535) - d & 65535, h & 65535, f) | 0;
- if ((j | 0) > 0) j = j + -1 | 0; else break
- }
- return
- }
- case 40: {
- h = 9;
- while (1) {
- f = b[a + (h << 1) >> 1] | 0;
- d = f << 16 >> 16;
- if (f << 16 >> 16 < 0) g = ~((d ^ -2) >> 1); else g = d >>> 1;
- f = b[c + (h << 1) >> 1] | 0;
- d = f << 16 >> 16;
- if (f << 16 >> 16 < 0) d = ~((d ^ -2) >> 1); else d = d >>> 1;
- b[e + (h << 1) >> 1] = d + g;
- if ((h | 0) > 0) h = h + -1 | 0; else break
- }
- return
- }
- case 80: {
- j = 9;
- while (1) {
- i = b[a + (j << 1) >> 1] | 0;
- d = i << 16 >> 16;
- if (i << 16 >> 16 < 0) i = ~((d ^ -4) >> 2); else i = d >>> 2;
- d = b[c + (j << 1) >> 1] | 0;
- g = d << 16 >> 16;
- if (d << 16 >> 16 < 0) h = ~((g ^ -4) >> 2); else h = g >>> 2;
- b[e + (j << 1) >> 1] = Rd(i & 65535, (d & 65535) - h & 65535, f) | 0;
- if ((j | 0) > 0) j = j + -1 | 0; else break
- }
- return
- }
- case 120: {
- b[e + 18 >> 1] = b[c + 18 >> 1] | 0;
- b[e + 16 >> 1] = b[c + 16 >> 1] | 0;
- b[e + 14 >> 1] = b[c + 14 >> 1] | 0;
- b[e + 12 >> 1] = b[c + 12 >> 1] | 0;
- b[e + 10 >> 1] = b[c + 10 >> 1] | 0;
- b[e + 8 >> 1] = b[c + 8 >> 1] | 0;
- b[e + 6 >> 1] = b[c + 6 >> 1] | 0;
- b[e + 4 >> 1] = b[c + 4 >> 1] | 0;
- b[e + 2 >> 1] = b[c + 2 >> 1] | 0;
- b[e >> 1] = b[c >> 1] | 0;
- return
- }
- default:
- return
- }
- }
- function rb(a, b) {
- a = a | 0;
- b = b | 0;
- if (!a) {
- a = -1;
- return a | 0
- }
- Pe(a | 0, b | 0, 20) | 0;
- a = 0;
- return a | 0
- }
- function sb(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, l = 0;
- l = 0;
- do {
- k = a + (l << 1) | 0;
- f = b[k >> 1] | 0;
- i = f & 65535;
- j = i << 16;
- f = f << 16 >> 16;
- if ((f * 5243 | 0) == 1073741824) {
- c[e >> 2] = 1;
- h = 2147483647;
- } else h = f * 10486 | 0;
- g = j - h | 0;
- if (((g ^ j) & (h ^ j) | 0) < 0) {
- c[e >> 2] = 1;
- h = (i >>> 15) + 2147483647 | 0;
- } else h = g;
- f = b[d + (l << 1) >> 1] | 0;
- g = f * 5243 | 0;
- if ((g | 0) != 1073741824) {
- f = (f * 10486 | 0) + h | 0;
- if ((g ^ h | 0) > 0 & (f ^ h | 0) < 0) {
- c[e >> 2] = 1;
- f = (h >>> 31) + 2147483647 | 0;
- }
- } else {
- c[e >> 2] = 1;
- f = 2147483647;
- }
- b[k >> 1] = Ce(f, e) | 0;
- l = l + 1 | 0;
- } while ((l | 0) != 10);
- return
- }
- function tb(a) {
- a = a | 0;
- var c = 0;
- if (!a) {
- c = -1;
- return c | 0
- }
- c = a + 18 | 0;
- do {
- b[a >> 1] = 0;
- a = a + 2 | 0;
- } while ((a | 0) < (c | 0));
- c = 0;
- return c | 0
- }
- function ub(a) {
- a = a | 0;
- b[a + 14 >> 1] = 1;
- return
- }
- function vb(a) {
- a = a | 0;
- b[a + 14 >> 1] = 0;
- return
- }
- function wb(a, d, e, f, g, h, j, k, l, m) {
- a = a | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- k = k | 0;
- l = l | 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;
- C = i;
- i = i + 160 | 0;
- z = C + 80 | 0;
- A = C;
- v = c[l + 120 >> 2] | 0;
- w = c[l + 124 >> 2] | 0;
- x = c[l + 128 >> 2] | 0;
- u = c[l + 132 >> 2] | 0;
- o = a + 6 | 0;
- t = a + 8 | 0;
- b[t >> 1] = b[o >> 1] | 0;
- r = a + 4 | 0;
- b[o >> 1] = b[r >> 1] | 0;
- s = a + 2 | 0;
- b[r >> 1] = b[s >> 1] | 0;
- b[s >> 1] = b[a >> 1] | 0;
- b[a >> 1] = g;
- l = g << 16 >> 16 < 14746 ? g << 16 >> 16 > 9830 & 1 : 2;
- n = a + 12 | 0;
- g = b[n >> 1] | 0;
- p = g << 15;
- do if ((p | 0) <= 536870911) if ((p | 0) < -536870912) {
- c[m >> 2] = 1;
- g = -2147483648;
- break
- } else {
- g = g << 17;
- break
- } else {
- c[m >> 2] = 1;
- g = 2147483647;
- } while (0);
- y = f << 16 >> 16;
- q = a + 16 | 0;
- if ((Ce(g, m) | 0) << 16 >> 16 >= f << 16 >> 16) {
- p = b[q >> 1] | 0;
- if (p << 16 >> 16 > 0) {
- p = (p & 65535) + 65535 & 65535;
- b[q >> 1] = p;
- }
- if (!(p << 16 >> 16)) {
- g = (b[a >> 1] | 0) < 9830;
- g = (b[s >> 1] | 0) < 9830 ? (g ? 2 : 1) : g & 1;
- if ((b[r >> 1] | 0) < 9830) g = (g & 65535) + 1 & 65535;
- if ((b[o >> 1] | 0) < 9830) g = (g & 65535) + 1 & 65535;
- if ((b[t >> 1] | 0) < 9830) g = (g & 65535) + 1 & 65535;
- p = 0;
- l = g << 16 >> 16 > 2 ? 0 : l;
- }
- } else {
- b[q >> 1] = 2;
- p = 2;
- }
- s = l << 16 >> 16;
- t = a + 10 | 0;
- s = (p << 16 >> 16 == 0 ? (s | 0) > ((b[t >> 1] | 0) + 1 | 0) : 0) ? s + 65535 & 65535 : l;
- a = (b[a + 14 >> 1] | 0) == 1 ? 0 : f << 16 >> 16 < 10 ? 2 : s << 16 >> 16 < 2 & p << 16 >> 16 > 0 ? (s & 65535) + 1 & 65535 : s;
- b[t >> 1] = a;
- b[n >> 1] = f;
- switch (d | 0) {
- case 4:
- case 6:
- case 7:
- break;
- default:
- if (a << 16 >> 16 < 2) {
- p = 0;
- l = 0;
- o = h;
- n = z;
- while (1) {
- if (!(b[o >> 1] | 0)) g = 0; else {
- l = l << 16 >> 16;
- b[A + (l << 1) >> 1] = p;
- g = b[o >> 1] | 0;
- l = l + 1 & 65535;
- }
- b[n >> 1] = g;
- b[o >> 1] = 0;
- p = p + 1 << 16 >> 16;
- if (p << 16 >> 16 >= 40) {
- t = l;
- break
- } else {
- o = o + 2 | 0;
- n = n + 2 | 0;
- }
- }
- s = a << 16 >> 16 == 0;
- s = (d | 0) == 5 ? (s ? v : w) : s ? x : u;
- if (t << 16 >> 16 > 0) {
- r = 0;
- do {
- q = b[A + (r << 1) >> 1] | 0;
- l = q << 16 >> 16;
- a = b[z + (l << 1) >> 1] | 0;
- if (q << 16 >> 16 < 40) {
- p = a << 16 >> 16;
- o = 39 - q & 65535;
- n = q;
- l = h + (l << 1) | 0;
- g = s;
- while (1) {
- d = (Z(b[g >> 1] | 0, p) | 0) >>> 15 & 65535;
- b[l >> 1] = Rd(b[l >> 1] | 0, d, m) | 0;
- n = n + 1 << 16 >> 16;
- if (n << 16 >> 16 >= 40) break; else {
- l = l + 2 | 0;
- g = g + 2 | 0;
- }
- }
- if (q << 16 >> 16 > 0) {
- l = s + (o + 1 << 1) | 0;
- B = 36;
- }
- } else {
- l = s;
- B = 36;
- }
- if ((B | 0) == 36) {
- B = 0;
- g = a << 16 >> 16;
- p = 0;
- o = h;
- while (1) {
- d = (Z(b[l >> 1] | 0, g) | 0) >>> 15 & 65535;
- b[o >> 1] = Rd(b[o >> 1] | 0, d, m) | 0;
- p = p + 1 << 16 >> 16;
- if (p << 16 >> 16 >= q << 16 >> 16) break; else {
- o = o + 2 | 0;
- l = l + 2 | 0;
- }
- }
- }
- r = r + 1 | 0;
- } while ((r & 65535) << 16 >> 16 != t << 16 >> 16)
- }
- }
- }
- r = j << 16 >> 16;
- s = y << 1;
- g = k << 16 >> 16;
- n = 0 - g << 16;
- l = n >> 16;
- if (k << 16 >> 16 > 0) {
- p = 0;
- o = e;
- while (1) {
- a = Z(b[e + (p << 1) >> 1] | 0, r) | 0;
- if ((a | 0) == 1073741824) {
- c[m >> 2] = 1;
- n = 2147483647;
- } else n = a << 1;
- k = Z(s, b[h >> 1] | 0) | 0;
- a = k + n | 0;
- if ((k ^ n | 0) > -1 & (a ^ n | 0) < 0) {
- c[m >> 2] = 1;
- a = (n >>> 31) + 2147483647 | 0;
- }
- k = a << g;
- b[o >> 1] = Ce((k >> g | 0) == (a | 0) ? k : a >> 31 ^ 2147483647, m) | 0;
- p = p + 1 | 0;
- if ((p | 0) == 40) break; else {
- h = h + 2 | 0;
- o = o + 2 | 0;
- }
- }
- i = C;
- return
- }
- if ((n | 0) < 2031616) {
- p = 0;
- o = e;
- while (1) {
- a = Z(b[e + (p << 1) >> 1] | 0, r) | 0;
- if ((a | 0) == 1073741824) {
- c[m >> 2] = 1;
- n = 2147483647;
- } else n = a << 1;
- k = Z(s, b[h >> 1] | 0) | 0;
- a = k + n | 0;
- if ((k ^ n | 0) > -1 & (a ^ n | 0) < 0) {
- c[m >> 2] = 1;
- a = (n >>> 31) + 2147483647 | 0;
- }
- b[o >> 1] = Ce(a >> l, m) | 0;
- p = p + 1 | 0;
- if ((p | 0) == 40) break; else {
- h = h + 2 | 0;
- o = o + 2 | 0;
- }
- }
- i = C;
- return
- } else {
- o = 0;
- n = e;
- while (1) {
- a = Z(b[e + (o << 1) >> 1] | 0, r) | 0;
- if ((a | 0) == 1073741824) {
- c[m >> 2] = 1;
- a = 2147483647;
- } else a = a << 1;
- k = Z(s, b[h >> 1] | 0) | 0;
- if ((k ^ a | 0) > -1 & (k + a ^ a | 0) < 0) c[m >> 2] = 1;
- b[n >> 1] = Ce(0, m) | 0;
- o = o + 1 | 0;
- if ((o | 0) == 40) break; else {
- h = h + 2 | 0;
- n = n + 2 | 0;
- }
- }
- i = C;
- return
- }
- }
- function xb(a) {
- a = a | 0;
- if (!a) {
- a = -1;
- return a | 0
- }
- b[a >> 1] = 0;
- b[a + 2 >> 1] = 0;
- b[a + 4 >> 1] = 0;
- b[a + 6 >> 1] = 0;
- b[a + 8 >> 1] = 0;
- b[a + 10 >> 1] = 0;
- a = 0;
- return a | 0
- }
- function yb(a, c, d, e) {
- a = a | 0;
- c = c | 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;
- if (d << 16 >> 16 <= 0) return;
- f = a + 10 | 0;
- j = a + 8 | 0;
- l = a + 4 | 0;
- m = a + 6 | 0;
- n = a + 2 | 0;
- g = b[l >> 1] | 0;
- h = b[m >> 1] | 0;
- i = b[a >> 1] | 0;
- k = b[n >> 1] | 0;
- o = 0;
- while (1) {
- p = b[f >> 1] | 0;
- q = b[j >> 1] | 0;
- b[f >> 1] = q;
- r = b[c >> 1] | 0;
- b[j >> 1] = r;
- p = ((r << 16 >> 16) * 7699 | 0) + ((Z(i << 16 >> 16, -7667) | 0) + (((g << 16 >> 16) * 15836 | 0) + ((h << 16 >> 16) * 15836 >> 15)) + ((Z(k << 16 >> 16, -7667) | 0) >> 15)) + (Z(q << 16 >> 16, -15398) | 0) + ((p << 16 >> 16) * 7699 | 0) | 0;
- q = p << 3;
- p = (q >> 3 | 0) == (p | 0) ? q : p >> 31 ^ 2147483647;
- q = p << 1;
- b[c >> 1] = Ce((q >> 1 | 0) == (p | 0) ? q : p >> 31 ^ 2147483647, e) | 0;
- i = b[l >> 1] | 0;
- b[a >> 1] = i;
- k = b[m >> 1] | 0;
- b[n >> 1] = k;
- g = p >>> 16 & 65535;
- b[l >> 1] = g;
- h = (p >>> 1) - (p >> 16 << 15) & 65535;
- b[m >> 1] = h;
- o = o + 1 << 16 >> 16;
- if (o << 16 >> 16 >= d << 16 >> 16) break; else c = c + 2 | 0;
- }
- return
- }
- function zb(a) {
- a = a | 0;
- if (!a) a = -1; else {
- b[a >> 1] = 0;
- a = 0;
- }
- return a | 0
- }
- function Ab(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;
- j = f << 16 >> 16;
- h = d + (j + -1 << 1) | 0;
- j = j + -2 | 0;
- k = b[h >> 1] | 0;
- if (f << 16 >> 16 < 2) f = e << 16 >> 16; else {
- f = e << 16 >> 16;
- i = 0;
- d = d + (j << 1) | 0;
- while (1) {
- e = (Z(b[d >> 1] | 0, f) | 0) >> 15;
- if ((e | 0) > 32767) {
- c[g >> 2] = 1;
- e = 32767;
- }
- b[h >> 1] = Ge(b[h >> 1] | 0, e & 65535, g) | 0;
- h = h + -2 | 0;
- i = i + 1 << 16 >> 16;
- if ((i << 16 >> 16 | 0) > (j | 0)) break; else d = d + -2 | 0;
- }
- }
- f = (Z(b[a >> 1] | 0, f) | 0) >> 15;
- if ((f | 0) <= 32767) {
- j = f;
- j = j & 65535;
- i = b[h >> 1] | 0;
- g = Ge(i, j, g) | 0;
- b[h >> 1] = g;
- b[a >> 1] = k;
- return
- }
- c[g >> 2] = 1;
- j = 32767;
- j = j & 65535;
- i = b[h >> 1] | 0;
- g = Ge(i, j, g) | 0;
- b[h >> 1] = g;
- b[a >> 1] = k;
- return
- }
- function Bb(a) {
- a = a | 0;
- var c = 0, d = 0, e = 0;
- if (!a) {
- e = -1;
- return e | 0
- }
- Qe(a + 104 | 0, 0, 340) | 0;
- c = a + 102 | 0;
- d = a;
- e = d + 100 | 0;
- do {
- b[d >> 1] = 0;
- d = d + 2 | 0;
- } while ((d | 0) < (e | 0));
- Ba(c) | 0;
- zb(a + 100 | 0) | 0;
- e = 0;
- return e | 0
- }
- function Cb(d, e, f, g, h) {
- d = d | 0;
- e = e | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- var 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;
- w = i;
- i = i + 96 | 0;
- s = w + 22 | 0;
- t = w;
- u = w + 44 | 0;
- Pe(d + 124 | 0, f | 0, 320) | 0;
- o = u + 22 | 0;
- p = d + 100 | 0;
- q = d + 80 | 0;
- r = d + 102 | 0;
- if ((e & -2 | 0) == 6) {
- n = 0;
- while (1) {
- Ie(g, 702, s);
- Ie(g, 722, t);
- m = d + 104 + (n + 10 << 1) | 0;
- Be(s, m, d, 40);
- k = u;
- j = s;
- e = k + 22 | 0;
- do {
- b[k >> 1] = b[j >> 1] | 0;
- k = k + 2 | 0;
- j = j + 2 | 0;
- } while ((k | 0) < (e | 0));
- k = o;
- e = k + 22 | 0;
- do {
- b[k >> 1] = 0;
- k = k + 2 | 0;
- } while ((k | 0) < (e | 0));
- He(t, u, u, 22, o, 0);
- e = 0;
- k = 21;
- do {
- j = b[u + (k << 16 >> 16 << 1) >> 1] | 0;
- j = Z(j, j) | 0;
- if ((j | 0) == 1073741824) {
- v = 7;
- break
- }
- l = j << 1;
- j = l + e | 0;
- if ((l ^ e | 0) > -1 & (j ^ e | 0) < 0) {
- c[h >> 2] = 1;
- e = (e >>> 31) + 2147483647 | 0;
- } else e = j;
- k = k + -1 << 16 >> 16;
- } while (k << 16 >> 16 > -1);
- if ((v | 0) == 7) {
- v = 0;
- c[h >> 2] = 1;
- }
- l = e >>> 16 & 65535;
- j = 20;
- e = 0;
- k = 20;
- while (1) {
- j = Z(b[u + (j + 1 << 1) >> 1] | 0, b[u + (j << 1) >> 1] | 0) | 0;
- if ((j | 0) == 1073741824) {
- v = 13;
- break
- }
- x = j << 1;
- j = x + e | 0;
- if ((x ^ e | 0) > -1 & (j ^ e | 0) < 0) {
- c[h >> 2] = 1;
- e = (e >>> 31) + 2147483647 | 0;
- } else e = j;
- j = (k & 65535) + -1 << 16 >> 16;
- if (j << 16 >> 16 > -1) {
- j = j << 16 >> 16;
- k = k + -1 | 0;
- } else break
- }
- if ((v | 0) == 13) {
- v = 0;
- c[h >> 2] = 1;
- }
- e = e >> 16;
- if ((e | 0) < 1) e = 0; else e = Td((e * 26214 | 0) >>> 15 & 65535, l) | 0;
- Ab(p, d, e, 40, h);
- e = f + (n << 1) | 0;
- He(t, d, e, 40, q, 1);
- Ca(r, m, e, 29491, 40, h);
- e = (n << 16) + 2621440 | 0;
- if ((e | 0) < 10485760) {
- n = e >> 16;
- g = g + 22 | 0;
- } else break
- }
- k = d + 104 | 0;
- j = d + 424 | 0;
- e = k + 20 | 0;
- do {
- a[k >> 0] = a[j >> 0] | 0;
- k = k + 1 | 0;
- j = j + 1 | 0;
- } while ((k | 0) < (e | 0));
- i = w;
- return
- } else {
- n = 0;
- while (1) {
- Ie(g, 742, s);
- Ie(g, 762, t);
- m = d + 104 + (n + 10 << 1) | 0;
- Be(s, m, d, 40);
- k = u;
- j = s;
- e = k + 22 | 0;
- do {
- b[k >> 1] = b[j >> 1] | 0;
- k = k + 2 | 0;
- j = j + 2 | 0;
- } while ((k | 0) < (e | 0));
- k = o;
- e = k + 22 | 0;
- do {
- b[k >> 1] = 0;
- k = k + 2 | 0;
- } while ((k | 0) < (e | 0));
- He(t, u, u, 22, o, 0);
- e = 0;
- k = 21;
- do {
- j = b[u + (k << 16 >> 16 << 1) >> 1] | 0;
- j = Z(j, j) | 0;
- if ((j | 0) == 1073741824) {
- v = 22;
- break
- }
- x = j << 1;
- j = x + e | 0;
- if ((x ^ e | 0) > -1 & (j ^ e | 0) < 0) {
- c[h >> 2] = 1;
- e = (e >>> 31) + 2147483647 | 0;
- } else e = j;
- k = k + -1 << 16 >> 16;
- } while (k << 16 >> 16 > -1);
- if ((v | 0) == 22) {
- v = 0;
- c[h >> 2] = 1;
- }
- l = e >>> 16 & 65535;
- j = 20;
- e = 0;
- k = 20;
- while (1) {
- j = Z(b[u + (j + 1 << 1) >> 1] | 0, b[u + (j << 1) >> 1] | 0) | 0;
- if ((j | 0) == 1073741824) {
- v = 28;
- break
- }
- x = j << 1;
- j = x + e | 0;
- if ((x ^ e | 0) > -1 & (j ^ e | 0) < 0) {
- c[h >> 2] = 1;
- e = (e >>> 31) + 2147483647 | 0;
- } else e = j;
- j = (k & 65535) + -1 << 16 >> 16;
- if (j << 16 >> 16 > -1) {
- j = j << 16 >> 16;
- k = k + -1 | 0;
- } else break
- }
- if ((v | 0) == 28) {
- v = 0;
- c[h >> 2] = 1;
- }
- e = e >> 16;
- if ((e | 0) < 1) e = 0; else e = Td((e * 26214 | 0) >>> 15 & 65535, l) | 0;
- Ab(p, d, e, 40, h);
- e = f + (n << 1) | 0;
- He(t, d, e, 40, q, 1);
- Ca(r, m, e, 29491, 40, h);
- e = (n << 16) + 2621440 | 0;
- if ((e | 0) < 10485760) {
- n = e >> 16;
- g = g + 22 | 0;
- } else break
- }
- k = d + 104 | 0;
- j = d + 424 | 0;
- e = k + 20 | 0;
- do {
- a[k >> 0] = a[j >> 0] | 0;
- k = k + 1 | 0;
- j = j + 1 | 0;
- } while ((k | 0) < (e | 0));
- i = w;
- return
- }
- }
- function Db(a, b) {
- a = a | 0;
- b = b | 0;
- var d = 0, e = 0;
- if (!a) {
- a = -1;
- return a | 0
- }
- c[a >> 2] = 0;
- d = Je(1764) | 0;
- if (!d) {
- a = -1;
- return a | 0
- }
- if ((Ua(d) | 0) << 16 >> 16 == 0 ? (e = d + 1748 | 0, (xb(e) | 0) << 16 >> 16 == 0) : 0) {
- Va(d, 0) | 0;
- Bb(d + 1304 | 0) | 0;
- xb(e) | 0;
- c[d + 1760 >> 2] = 0;
- c[a >> 2] = d;
- a = 0;
- return a | 0
- }
- b = c[d >> 2] | 0;
- if (!b) {
- a = -1;
- return a | 0
- }
- Ke(b);
- c[d >> 2] = 0;
- a = -1;
- return a | 0
- }
- function Eb(a) {
- a = a | 0;
- var b = 0;
- if (!a) return;
- b = c[a >> 2] | 0;
- if (!b) return;
- Ke(b);
- c[a >> 2] = 0;
- return
- }
- function Fb(a, d, f, g, h) {
- a = a | 0;
- d = d | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- var 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;
- v = i;
- i = i + 208 | 0;
- u = v + 88 | 0;
- t = v;
- s = a + 1164 | 0;
- j = c[a + 1256 >> 2] | 0;
- if ((g + -5 | 0) >>> 0 < 2) {
- r = j + 16 | 0;
- if ((b[r >> 1] | 0) > 0) {
- q = c[(c[a + 1260 >> 2] | 0) + 32 >> 2] | 0;
- p = 0;
- j = 0;
- while (1) {
- o = q + (p << 1) | 0;
- m = b[o >> 1] | 0;
- if (m << 16 >> 16 > 0) {
- l = f;
- n = 0;
- k = 0;
- while (1) {
- k = e[l >> 1] | k << 1 & 131070;
- n = n + 1 << 16 >> 16;
- if (n << 16 >> 16 >= m << 16 >> 16) break; else l = l + 2 | 0;
- }
- k = k & 65535;
- } else k = 0;
- b[u + (p << 1) >> 1] = k;
- j = j + 1 << 16 >> 16;
- if (j << 16 >> 16 < (b[r >> 1] | 0)) {
- f = f + (b[o >> 1] << 1) | 0;
- p = j << 16 >> 16;
- } else break
- }
- }
- } else {
- q = j + (d << 1) | 0;
- if ((b[q >> 1] | 0) > 0) {
- r = c[(c[a + 1260 >> 2] | 0) + (d << 2) >> 2] | 0;
- o = 0;
- j = 0;
- while (1) {
- p = r + (o << 1) | 0;
- m = b[p >> 1] | 0;
- if (m << 16 >> 16 > 0) {
- l = f;
- n = 0;
- k = 0;
- while (1) {
- k = e[l >> 1] | k << 1 & 131070;
- n = n + 1 << 16 >> 16;
- if (n << 16 >> 16 >= m << 16 >> 16) break; else l = l + 2 | 0;
- }
- k = k & 65535;
- } else k = 0;
- b[u + (o << 1) >> 1] = k;
- j = j + 1 << 16 >> 16;
- if (j << 16 >> 16 < (b[q >> 1] | 0)) {
- f = f + (b[p >> 1] << 1) | 0;
- o = j << 16 >> 16;
- } else break
- }
- }
- }
- Wa(a, d, u, g, h, t);
- Cb(a + 1304 | 0, d, h, t, s);
- yb(a + 1748 | 0, h, 160, s);
- j = 0;
- do {
- a = h + (j << 1) | 0;
- b[a >> 1] = e[a >> 1] & 65528;
- j = j + 1 | 0;
- } while ((j | 0) != 160);
- i = v;
- return
- }
- function Gb(a, f, g, h) {
- a = a | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- var i = 0, j = 0, k = 0;
- j = c[h + 100 >> 2] | 0;
- k = (e[(c[h + 96 >> 2] | 0) + (a << 1) >> 1] | 0) + 65535 | 0;
- h = k & 65535;
- i = h << 16 >> 16 > -1;
- if (a >>> 0 < 8) {
- if (!i) return;
- j = c[j + (a << 2) >> 2] | 0;
- i = k << 16 >> 16;
- while (1) {
- b[g + (b[j + (i << 1) >> 1] << 1) >> 1] = (d[f + (i >> 3) >> 0] | 0) >>> (i & 7 ^ 7) & 1;
- h = h + -1 << 16 >> 16;
- if (h << 16 >> 16 > -1) i = h << 16 >> 16; else break
- }
- return
- } else {
- if (!i) return;
- i = k << 16 >> 16;
- while (1) {
- b[g + (i << 1) >> 1] = (d[f + (i >> 3) >> 0] | 0) >>> (i & 7 ^ 7) & 1;
- h = h + -1 << 16 >> 16;
- if (h << 16 >> 16 > -1) i = h << 16 >> 16; else break
- }
- return
- }
- }
- function Hb(a, b, c) {
- a = a | 0;
- b = b | 0;
- c = c | 0;
- a = vd(a, c, 31764) | 0;
- return ((sd(b) | 0 | a) << 16 >> 16 != 0) << 31 >> 31 | 0
- }
- function Ib(a, b) {
- a = a | 0;
- b = b | 0;
- wd(a);
- td(b);
- return
- }
- function Jb(d, f, g, h, j, k, l) {
- d = d | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- k = k | 0;
- l = l | 0;
- var m = 0, n = 0, o = 0, p = 0, q = 0;
- q = i;
- i = i + 512 | 0;
- m = q + 8 | 0;
- n = q + 4 | 0;
- o = q;
- c[o >> 2] = 0;
- p = l << 16 >> 16 == 3;
- if (!((l & 65535) < 2 | p & 1)) {
- if (l << 16 >> 16 != 2) {
- j = -1;
- i = q;
- return j | 0
- }
- xd(d, g, h, m + 2 | 0, o);
- d = c[o >> 2] | 0;
- c[k >> 2] = d;
- ud(f, d, n);
- f = c[n >> 2] | 0;
- b[m >> 1] = f;
- b[m + 490 >> 1] = (f | 0) == 3 ? -1 : g & 65535;
- a[j >> 0] = f;
- f = 1;
- do {
- m = m + 1 | 0;
- a[j + f >> 0] = a[m >> 0] | 0;
- f = f + 1 | 0;
- } while ((f | 0) != 492);
- m = 492;
- i = q;
- return m | 0
- }
- xd(d, g, h, m, o);
- ud(f, c[o >> 2] | 0, n);
- h = c[n >> 2] | 0;
- if ((h | 0) != 3) {
- f = c[o >> 2] | 0;
- c[k >> 2] = f;
- if ((f | 0) == 8) {
- switch (h | 0) {
- case 1: {
- b[m + 70 >> 1] = 0;
- break
- }
- case 2: {
- o = m + 70 | 0;
- b[o >> 1] = e[o >> 1] | 0 | 1;
- break
- }
- default:
- }
- b[m + 72 >> 1] = g & 1;
- b[m + 74 >> 1] = g >>> 1 & 1;
- b[m + 76 >> 1] = g >>> 2 & 1;
- f = 8;
- }
- } else {
- c[k >> 2] = 15;
- f = 15;
- }
- if (p) {
- tc(f, m, j, (c[d + 4 >> 2] | 0) + 2392 | 0);
- j = b[3404 + (c[k >> 2] << 16 >> 16 << 1) >> 1] | 0;
- i = q;
- return j | 0
- }
- switch (l << 16 >> 16) {
- case 0: {
- sc(f, m, j, (c[d + 4 >> 2] | 0) + 2392 | 0);
- j = b[3404 + (c[k >> 2] << 16 >> 16 << 1) >> 1] | 0;
- i = q;
- return j | 0
- }
- case 1: {
- rc(f, m, j, (c[d + 4 >> 2] | 0) + 2392 | 0);
- j = b[3436 + (c[k >> 2] << 16 >> 16 << 1) >> 1] | 0;
- i = q;
- return j | 0
- }
- default: {
- j = -1;
- i = q;
- return j | 0
- }
- }
- return 0
- }
- function Kb(a, c, d, e, f, g) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- g = g | 0;
- var h = 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;
- y = i;
- i = i + 480 | 0;
- x = y;
- g = 240;
- l = f;
- k = a;
- j = x;
- h = 0;
- while (1) {
- w = ((Z(b[l >> 1] | 0, b[k >> 1] | 0) | 0) + 16384 | 0) >>> 15;
- b[j >> 1] = w;
- w = w << 16;
- h = (Z(w >> 15, w >> 16) | 0) + h | 0;
- if ((h | 0) < 0) {
- m = 4;
- break
- }
- g = g + -1 | 0;
- if (!((g & 65535) << 16 >> 16)) {
- g = 0;
- break
- } else {
- l = l + 2 | 0;
- k = k + 2 | 0;
- j = j + 2 | 0;
- }
- }
- if ((m | 0) == 4) {
- h = g & 65535;
- j = 240 - g | 0;
- if (!(h << 16 >> 16)) g = 0; else {
- l = h;
- k = f + (j << 1) | 0;
- g = a + (j << 1) | 0;
- h = x + (j << 1) | 0;
- while (1) {
- b[h >> 1] = ((Z(b[k >> 1] | 0, b[g >> 1] | 0) | 0) + 16384 | 0) >>> 15;
- l = l + -1 << 16 >> 16;
- if (!(l << 16 >> 16)) {
- g = 0;
- break
- } else {
- k = k + 2 | 0;
- g = g + 2 | 0;
- h = h + 2 | 0;
- }
- }
- }
- do {
- k = g & 65535;
- g = 120;
- j = x;
- h = 0;
- while (1) {
- w = (b[j >> 1] | 0) >>> 2;
- u = j + 2 | 0;
- b[j >> 1] = w;
- w = w << 16 >> 16;
- w = Z(w, w) | 0;
- v = (b[u >> 1] | 0) >>> 2;
- b[u >> 1] = v;
- v = v << 16 >> 16;
- h = ((Z(v, v) | 0) + w << 1) + h | 0;
- g = g + -1 << 16 >> 16;
- if (!(g << 16 >> 16)) break; else j = j + 4 | 0;
- }
- g = k + 4 | 0;
- } while ((h | 0) < 1)
- }
- w = h + 1 | 0;
- v = (pe(w) | 0) << 16 >> 16;
- w = w << v;
- b[d >> 1] = w >>> 16;
- b[e >> 1] = (w >>> 1) - (w >> 16 << 15);
- w = x + 478 | 0;
- l = c << 16 >> 16;
- if (c << 16 >> 16 <= 0) {
- x = v - g | 0;
- x = x & 65535;
- i = y;
- return x | 0
- }
- r = x + 476 | 0;
- s = v + 1 | 0;
- t = 239 - l | 0;
- u = x + (236 - l << 1) | 0;
- c = l;
- d = d + (l << 1) | 0;
- e = e + (l << 1) | 0;
- while (1) {
- m = Z((t >>> 1) + 65535 & 65535, -2) | 0;
- k = x + (m + 236 << 1) | 0;
- m = u + (m << 1) | 0;
- f = 240 - c | 0;
- q = f + -1 | 0;
- j = x + (q << 1) | 0;
- a = q >>> 1 & 65535;
- f = x + (f + -2 << 1) | 0;
- l = Z(b[w >> 1] | 0, b[j >> 1] | 0) | 0;
- if (!(a << 16 >> 16)) {
- m = f;
- k = r;
- } else {
- p = r;
- o = w;
- while (1) {
- h = j + -4 | 0;
- n = o + -4 | 0;
- l = (Z(b[p >> 1] | 0, b[f >> 1] | 0) | 0) + l | 0;
- a = a + -1 << 16 >> 16;
- l = (Z(b[n >> 1] | 0, b[h >> 1] | 0) | 0) + l | 0;
- if (!(a << 16 >> 16)) break; else {
- f = j + -6 | 0;
- p = o + -6 | 0;
- j = h;
- o = n;
- }
- }
- }
- if (q & 1) l = (Z(b[k >> 1] | 0, b[m >> 1] | 0) | 0) + l | 0;
- q = l << s;
- b[d >> 1] = q >>> 16;
- b[e >> 1] = (q >>> 1) - (q >> 16 << 15);
- if ((c & 65535) + -1 << 16 >> 16 << 16 >> 16 > 0) {
- t = t + 1 | 0;
- u = u + 2 | 0;
- c = c + -1 | 0;
- d = d + -2 | 0;
- e = e + -2 | 0;
- } else break
- }
- x = v - g | 0;
- x = x & 65535;
- i = y;
- return x | 0
- }
- function Lb(a, c, d, f, g, h, j, k) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- k = k | 0;
- var 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, J = 0, K = 0;
- E = i;
- i = i + 3440 | 0;
- D = E + 3420 | 0;
- z = E + 3400 | 0;
- A = E + 3224 | 0;
- C = E;
- x = E + 3320 | 0;
- B = E + 3240 | 0;
- y = E + 24 | 0;
- hc(d, a, x, 2, k);
- rd(x, c, B, A, 5, z, 5, k);
- fc(d, B, y, k);
- pd(10, 5, 5, x, y, z, A, C, k);
- c = f;
- k = c + 80 | 0;
- do {
- b[c >> 1] = 0;
- c = c + 2 | 0;
- } while ((c | 0) < (k | 0));
- b[h >> 1] = 65535;
- b[h + 2 >> 1] = 65535;
- b[h + 4 >> 1] = 65535;
- b[h + 6 >> 1] = 65535;
- b[h + 8 >> 1] = 65535;
- p = 0;
- q = C;
- r = D;
- do {
- a = b[q >> 1] | 0;
- q = q + 2 | 0;
- l = (a * 6554 | 0) >>> 15;
- m = l << 16 >> 16;
- c = f + (a << 1) | 0;
- k = b[c >> 1] | 0;
- if ((b[B + (a << 1) >> 1] | 0) > 0) {
- b[c >> 1] = k + 4096;
- b[r >> 1] = 8192;
- n = l;
- } else {
- b[c >> 1] = k + 61440;
- b[r >> 1] = -8192;
- n = m + 8 | 0;
- }
- r = r + 2 | 0;
- o = n & 65535;
- c = a - (l << 2) - m << 16 >> 16;
- l = h + (c << 1) | 0;
- k = b[l >> 1] | 0;
- a = k << 16 >> 16;
- do if (k << 16 >> 16 >= 0) {
- m = n << 16 >> 16;
- if (!((m ^ a) & 8)) {
- c = h + (c + 5 << 1) | 0;
- if ((a | 0) > (m | 0)) {
- b[c >> 1] = k;
- b[l >> 1] = o;
- break
- } else {
- b[c >> 1] = o;
- break
- }
- } else {
- c = h + (c + 5 << 1) | 0;
- if ((a & 7) >>> 0 > (m & 7) >>> 0) {
- b[c >> 1] = o;
- break
- } else {
- b[c >> 1] = k;
- b[l >> 1] = o;
- break
- }
- }
- } else b[l >> 1] = o; while (0);
- p = p + 1 << 16 >> 16;
- } while (p << 16 >> 16 < 10);
- r = D + 2 | 0;
- p = D + 4 | 0;
- n = D + 6 | 0;
- m = D + 8 | 0;
- l = D + 10 | 0;
- c = D + 12 | 0;
- k = D + 14 | 0;
- a = D + 16 | 0;
- s = D + 18 | 0;
- t = 40;
- u = d + (0 - (b[C >> 1] | 0) << 1) | 0;
- v = d + (0 - (b[C + 2 >> 1] | 0) << 1) | 0;
- w = d + (0 - (b[C + 4 >> 1] | 0) << 1) | 0;
- x = d + (0 - (b[C + 6 >> 1] | 0) << 1) | 0;
- y = d + (0 - (b[C + 8 >> 1] | 0) << 1) | 0;
- z = d + (0 - (b[C + 10 >> 1] | 0) << 1) | 0;
- A = d + (0 - (b[C + 12 >> 1] | 0) << 1) | 0;
- B = d + (0 - (b[C + 14 >> 1] | 0) << 1) | 0;
- f = d + (0 - (b[C + 16 >> 1] | 0) << 1) | 0;
- q = d + (0 - (b[C + 18 >> 1] | 0) << 1) | 0;
- o = g;
- while (1) {
- K = (Z(b[D >> 1] | 0, b[u >> 1] | 0) | 0) >> 7;
- J = (Z(b[r >> 1] | 0, b[v >> 1] | 0) | 0) >> 7;
- I = (Z(b[p >> 1] | 0, b[w >> 1] | 0) | 0) >> 7;
- H = (Z(b[n >> 1] | 0, b[x >> 1] | 0) | 0) >> 7;
- G = (Z(b[m >> 1] | 0, b[y >> 1] | 0) | 0) >> 7;
- F = (Z(b[l >> 1] | 0, b[z >> 1] | 0) | 0) >> 7;
- C = (Z(b[c >> 1] | 0, b[A >> 1] | 0) | 0) >> 7;
- d = (Z(b[k >> 1] | 0, b[B >> 1] | 0) | 0) >>> 7;
- g = (Z(b[a >> 1] | 0, b[f >> 1] | 0) | 0) >>> 7;
- b[o >> 1] = (K + 128 + J + I + H + G + F + C + d + g + ((Z(b[s >> 1] | 0, b[q >> 1] | 0) | 0) >>> 7) | 0) >>> 8;
- t = t + -1 << 16 >> 16;
- if (!(t << 16 >> 16)) break; else {
- u = u + 2 | 0;
- v = v + 2 | 0;
- w = w + 2 | 0;
- x = x + 2 | 0;
- y = y + 2 | 0;
- z = z + 2 | 0;
- A = A + 2 | 0;
- B = B + 2 | 0;
- f = f + 2 | 0;
- q = q + 2 | 0;
- o = o + 2 | 0;
- }
- }
- c = 0;
- do {
- k = h + (c << 1) | 0;
- a = b[k >> 1] | 0;
- if ((c | 0) < 5) a = (e[j + ((a & 7) << 1) >> 1] | a & 8) & 65535; else a = b[j + ((a & 7) << 1) >> 1] | 0;
- b[k >> 1] = a;
- c = c + 1 | 0;
- } while ((c | 0) != 10);
- i = E;
- return
- }
- function Mb(a, d, e, f, g, h, j, k) {
- a = a | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- k = k | 0;
- var 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, J = 0, K = 0, L = 0, M = 0, N = 0;
- N = i;
- i = i + 3456 | 0;
- I = N + 3448 | 0;
- G = N + 3360 | 0;
- E = N + 3368 | 0;
- p = N + 3280 | 0;
- H = N + 3200 | 0;
- F = N;
- K = (f & 65535) << 17;
- M = e << 16 >> 16;
- J = e << 16 >> 16 < 40;
- if (J) {
- f = K >> 16;
- e = M;
- do {
- m = (Z(b[d + (e - M << 1) >> 1] | 0, f) | 0) >> 15;
- if ((m | 0) > 32767) {
- c[k >> 2] = 1;
- m = 32767;
- }
- D = d + (e << 1) | 0;
- b[D >> 1] = Rd(b[D >> 1] | 0, m & 65535, k) | 0;
- e = e + 1 | 0;
- } while ((e & 65535) << 16 >> 16 != 40)
- }
- hc(d, a, E, 1, k);
- qd(E, H, p, 8);
- fc(d, H, F, k);
- D = G + 2 | 0;
- b[G >> 1] = 0;
- b[D >> 1] = 1;
- a = 1;
- m = 0;
- o = 1;
- p = 0;
- n = -1;
- do {
- B = b[2830 + (p << 1) >> 1] | 0;
- C = B << 16 >> 16;
- A = 0;
- do {
- y = b[2834 + (A << 1) >> 1] | 0;
- z = y << 16 >> 16;
- x = a;
- v = C;
- u = o;
- w = B;
- t = n;
- while (1) {
- l = b[E + (v << 1) >> 1] | 0;
- r = b[F + (v * 80 | 0) + (v << 1) >> 1] | 0;
- e = z;
- o = 1;
- s = y;
- a = y;
- n = -1;
- while (1) {
- f = Rd(l, b[E + (e << 1) >> 1] | 0, k) | 0;
- f = f << 16 >> 16;
- f = (Z(f, f) | 0) >>> 15;
- q = (b[F + (v * 80 | 0) + (e << 1) >> 1] << 15) + 32768 + ((b[F + (e * 80 | 0) + (e << 1) >> 1] | 0) + r << 14) | 0;
- if (((Z(f << 16 >> 16, o << 16 >> 16) | 0) - (Z(q >> 16, n << 16 >> 16) | 0) << 1 | 0) > 0) {
- o = q >>> 16 & 65535;
- a = s;
- n = f & 65535;
- }
- q = e + 5 | 0;
- s = q & 65535;
- if (s << 16 >> 16 >= 40) break; else e = q << 16 >> 16;
- }
- if (((Z(n << 16 >> 16, u << 16 >> 16) | 0) - (Z(o << 16 >> 16, t << 16 >> 16) | 0) << 1 | 0) > 0) {
- b[G >> 1] = w;
- b[D >> 1] = a;
- m = w;
- } else {
- a = x;
- o = u;
- n = t;
- }
- q = v + 5 | 0;
- w = q & 65535;
- if (w << 16 >> 16 >= 40) break; else {
- x = a;
- v = q << 16 >> 16;
- u = o;
- t = n;
- }
- }
- A = A + 1 | 0;
- } while ((A | 0) != 4);
- p = p + 1 | 0;
- } while ((p | 0) != 2);
- r = a;
- s = m;
- f = g;
- e = f + 80 | 0;
- do {
- b[f >> 1] = 0;
- f = f + 2 | 0;
- } while ((f | 0) < (e | 0));
- o = s;
- e = 0;
- q = 0;
- f = 0;
- while (1) {
- m = o << 16 >> 16;
- l = b[H + (m << 1) >> 1] | 0;
- a = (m * 6554 | 0) >>> 15;
- o = a << 16;
- p = o >> 15;
- n = m - (p + (a << 3) << 16 >> 17) | 0;
- switch (n << 16 >> 16 | 0) {
- case 0: {
- p = o >> 10;
- a = 1;
- break
- }
- case 1: {
- if (!((e & 65535) << 16 >> 16)) a = 0; else {
- p = a << 22 >> 16 | 16;
- a = 1;
- }
- break
- }
- case 2: {
- p = a << 22 >> 16 | 32;
- a = 1;
- break
- }
- case 3: {
- p = a << 17 >> 16 | 1;
- a = 0;
- break
- }
- case 4: {
- p = a << 22 >> 16 | 48;
- a = 1;
- break
- }
- default: {
- p = a;
- a = n & 65535;
- }
- }
- p = p & 65535;
- n = g + (m << 1) | 0;
- if (l << 16 >> 16 > 0) {
- b[n >> 1] = 8191;
- b[I + (e << 1) >> 1] = 32767;
- m = a << 16 >> 16;
- if (a << 16 >> 16 < 0) {
- m = 0 - m << 16;
- if ((m | 0) < 983040) m = 1 >>> (m >> 16) & 65535; else m = 0;
- } else {
- F = 1 << m;
- m = (F << 16 >> 16 >> m | 0) == 1 ? F & 65535 : 32767;
- }
- f = Rd(f, m, k) | 0;
- } else {
- b[n >> 1] = -8192;
- b[I + (e << 1) >> 1] = -32768;
- }
- m = Rd(q, p, k) | 0;
- e = e + 1 | 0;
- if ((e | 0) == 2) {
- q = m;
- break
- }
- o = b[G + (e << 1) >> 1] | 0;
- q = m;
- }
- b[j >> 1] = f;
- p = I + 2 | 0;
- o = b[I >> 1] | 0;
- a = 0;
- n = d + (0 - (s << 16 >> 16) << 1) | 0;
- m = d + (0 - (r << 16 >> 16) << 1) | 0;
- do {
- f = Z(b[n >> 1] | 0, o) | 0;
- n = n + 2 | 0;
- if ((f | 0) != 1073741824 ? (L = f << 1, !((f | 0) > 0 & (L | 0) < 0)) : 0) l = L; else {
- c[k >> 2] = 1;
- l = 2147483647;
- }
- e = Z(b[p >> 1] | 0, b[m >> 1] | 0) | 0;
- m = m + 2 | 0;
- if ((e | 0) != 1073741824) {
- f = (e << 1) + l | 0;
- if ((e ^ l | 0) > 0 & (f ^ l | 0) < 0) {
- c[k >> 2] = 1;
- f = (l >>> 31) + 2147483647 | 0;
- }
- } else {
- c[k >> 2] = 1;
- f = 2147483647;
- }
- b[h + (a << 1) >> 1] = Ce(f, k) | 0;
- a = a + 1 | 0;
- } while ((a | 0) != 40);
- if (!J) {
- i = N;
- return q | 0
- }
- e = K >> 16;
- f = M;
- do {
- l = (Z(b[g + (f - M << 1) >> 1] | 0, e) | 0) >> 15;
- if ((l | 0) > 32767) {
- c[k >> 2] = 1;
- l = 32767;
- }
- h = g + (f << 1) | 0;
- b[h >> 1] = Rd(b[h >> 1] | 0, l & 65535, k) | 0;
- f = f + 1 | 0;
- } while ((f & 65535) << 16 >> 16 != 40);
- i = N;
- return q | 0
- }
- function Nb(a, d, e, f, g, h, j, k, l, m) {
- a = a | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- k = k | 0;
- l = l | 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;
- x = i;
- i = i + 3456 | 0;
- r = x + 3360 | 0;
- s = x + 3368 | 0;
- t = x + 3280 | 0;
- u = x + 3200 | 0;
- v = x;
- w = g << 16 >> 16;
- p = w << 1;
- if ((p | 0) == (w << 17 >> 16 | 0)) q = p; else {
- c[m >> 2] = 1;
- q = g << 16 >> 16 > 0 ? 32767 : -32768;
- }
- w = f << 16 >> 16;
- n = f << 16 >> 16 < 40;
- if (n) {
- g = q << 16 >> 16;
- o = w;
- do {
- f = e + (o << 1) | 0;
- p = (Z(b[e + (o - w << 1) >> 1] | 0, g) | 0) >> 15;
- if ((p | 0) > 32767) {
- c[m >> 2] = 1;
- p = 32767;
- }
- b[f >> 1] = Rd(b[f >> 1] | 0, p & 65535, m) | 0;
- o = o + 1 | 0;
- } while ((o & 65535) << 16 >> 16 != 40)
- }
- hc(e, d, s, 1, m);
- qd(s, u, t, 8);
- fc(e, u, v, m);
- Ob(a, s, v, l, r);
- p = Pb(a, r, u, h, e, j, k, m) | 0;
- if (!n) {
- i = x;
- return p | 0
- }
- o = q << 16 >> 16;
- g = w;
- do {
- f = h + (g << 1) | 0;
- n = (Z(b[h + (g - w << 1) >> 1] | 0, o) | 0) >> 15;
- if ((n | 0) > 32767) {
- c[m >> 2] = 1;
- n = 32767;
- }
- b[f >> 1] = Rd(b[f >> 1] | 0, n & 65535, m) | 0;
- g = g + 1 | 0;
- } while ((g & 65535) << 16 >> 16 != 40);
- i = x;
- return p | 0
- }
- function Ob(a, c, d, f, g) {
- a = a | 0;
- c = c | 0;
- d = d | 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, x = 0;
- x = g + 2 | 0;
- b[g >> 1] = 0;
- b[x >> 1] = 1;
- v = a << 16 >> 16 << 1;
- h = 1;
- w = 0;
- a = -1;
- do {
- u = (w << 3) + v << 16 >> 16;
- k = b[f + (u << 1) >> 1] | 0;
- u = b[f + ((u | 1) << 1) >> 1] | 0;
- i = k << 16 >> 16;
- a:do if (k << 16 >> 16 < 40) {
- t = u << 16 >> 16;
- if (u << 16 >> 16 < 40) s = h; else while (1) {
- if ((a << 16 >> 16 | 0) < (0 - (h << 16 >> 16) | 0)) {
- b[g >> 1] = k;
- b[x >> 1] = u;
- j = 1;
- a = -1;
- } else j = h;
- h = i + 5 | 0;
- k = h & 65535;
- if (k << 16 >> 16 >= 40) {
- h = j;
- break a
- } else {
- i = h << 16 >> 16;
- h = j;
- }
- }
- while (1) {
- q = b[d + (i * 80 | 0) + (i << 1) >> 1] | 0;
- p = e[c + (i << 1) >> 1] | 0;
- o = t;
- h = 1;
- r = u;
- j = u;
- l = -1;
- while (1) {
- n = (e[c + (o << 1) >> 1] | 0) + p << 16 >> 16;
- n = (Z(n, n) | 0) >>> 15;
- m = (b[d + (i * 80 | 0) + (o << 1) >> 1] << 15) + 32768 + ((b[d + (o * 80 | 0) + (o << 1) >> 1] | 0) + q << 14) | 0;
- if (((Z(n << 16 >> 16, h << 16 >> 16) | 0) - (Z(m >> 16, l << 16 >> 16) | 0) << 1 | 0) > 0) {
- h = m >>> 16 & 65535;
- j = r;
- l = n & 65535;
- }
- m = o + 5 | 0;
- r = m & 65535;
- if (r << 16 >> 16 >= 40) break; else o = m << 16 >> 16;
- }
- if (((Z(l << 16 >> 16, s << 16 >> 16) | 0) - (Z(h << 16 >> 16, a << 16 >> 16) | 0) << 1 | 0) > 0) {
- b[g >> 1] = k;
- b[x >> 1] = j;
- a = l;
- } else h = s;
- i = i + 5 | 0;
- k = i & 65535;
- if (k << 16 >> 16 >= 40) break; else {
- i = i << 16 >> 16;
- s = h;
- }
- }
- } while (0);
- w = w + 1 | 0;
- } while ((w | 0) != 2);
- return
- }
- function Pb(a, d, e, f, g, h, i, j) {
- a = a | 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, l = 0, m = 0, n = 0, o = 0, p = 0;
- k = f;
- l = k + 80 | 0;
- do {
- b[k >> 1] = 0;
- k = k + 2 | 0;
- } while ((k | 0) < (l | 0));
- k = b[d >> 1] | 0;
- o = (k * 6554 | 0) >>> 15;
- l = o << 16 >> 16;
- n = (748250 >>> ((k + (Z(l, -5) | 0) << 16 >> 16) + ((a << 16 >> 16) * 5 | 0) | 0) & 1 | 0) == 0;
- m = (b[e + (k << 1) >> 1] | 0) > 0;
- p = m ? 32767 : -32768;
- b[f + (k << 1) >> 1] = m ? 8191 : -8192;
- k = d + 2 | 0;
- a = b[k >> 1] | 0;
- f = f + (a << 1) | 0;
- if ((b[e + (a << 1) >> 1] | 0) > 0) {
- b[f >> 1] = 8191;
- e = 32767;
- f = (m & 1 | 2) & 65535;
- } else {
- b[f >> 1] = -8192;
- e = -32768;
- f = m & 1;
- }
- o = ((a * 6554 | 0) >>> 15 << 3) + (n ? o : l + 64 | 0) & 65535;
- b[i >> 1] = f;
- n = 0;
- m = g + (0 - (b[d >> 1] | 0) << 1) | 0;
- f = g + (0 - (b[k >> 1] | 0) << 1) | 0;
- do {
- k = Z(p, b[m >> 1] | 0) | 0;
- m = m + 2 | 0;
- if ((k | 0) == 1073741824) {
- c[j >> 2] = 1;
- a = 2147483647;
- } else a = k << 1;
- l = Z(e, b[f >> 1] | 0) | 0;
- f = f + 2 | 0;
- if ((l | 0) != 1073741824) {
- k = (l << 1) + a | 0;
- if ((l ^ a | 0) > 0 & (k ^ a | 0) < 0) {
- c[j >> 2] = 1;
- k = (a >>> 31) + 2147483647 | 0;
- }
- } else {
- c[j >> 2] = 1;
- k = 2147483647;
- }
- b[h + (n << 1) >> 1] = Ce(k, j) | 0;
- n = n + 1 | 0;
- } while ((n | 0) != 40);
- return o | 0
- }
- function Qb(a, d, f, g, h, j, k, l) {
- a = a | 0;
- d = d | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- k = k | 0;
- l = l | 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;
- U = i;
- i = i + 3440 | 0;
- M = U + 3360 | 0;
- N = U + 3280 | 0;
- P = U + 3200 | 0;
- O = U;
- R = (g & 65535) << 17;
- T = f << 16 >> 16;
- Q = f << 16 >> 16 < 40;
- if (Q) {
- f = R >> 16;
- m = T;
- do {
- g = (Z(b[d + (m - T << 1) >> 1] | 0, f) | 0) >> 15;
- if ((g | 0) > 32767) {
- c[l >> 2] = 1;
- g = 32767;
- }
- L = d + (m << 1) | 0;
- b[L >> 1] = Rd(b[L >> 1] | 0, g & 65535, l) | 0;
- m = m + 1 | 0;
- } while ((m & 65535) << 16 >> 16 != 40)
- }
- hc(d, a, M, 1, l);
- qd(M, P, N, 6);
- fc(d, P, O, l);
- L = 1;
- n = 2;
- o = 1;
- g = 0;
- m = 1;
- a = -1;
- p = 1;
- while (1) {
- K = 2;
- s = 2;
- while (1) {
- H = 0;
- I = 0;
- J = p;
- G = s;
- while (1) {
- if (I << 16 >> 16 < 40) {
- C = J << 16 >> 16;
- D = J << 16 >> 16 < 40;
- E = G << 16 >> 16;
- F = G << 16 >> 16 < 40;
- A = I << 16 >> 16;
- B = I;
- while (1) {
- if ((b[N + (A << 1) >> 1] | 0) > -1) {
- x = b[O + (A * 80 | 0) + (A << 1) >> 1] | 0;
- if (D) {
- y = e[M + (A << 1) >> 1] | 0;
- w = C;
- r = 1;
- z = J;
- f = J;
- s = 0;
- q = -1;
- while (1) {
- u = (e[M + (w << 1) >> 1] | 0) + y | 0;
- v = u << 16 >> 16;
- v = (Z(v, v) | 0) >>> 15;
- t = (b[O + (A * 80 | 0) + (w << 1) >> 1] << 15) + 32768 + ((b[O + (w * 80 | 0) + (w << 1) >> 1] | 0) + x << 14) | 0;
- if (((Z(v << 16 >> 16, r << 16 >> 16) | 0) - (Z(t >> 16, q << 16 >> 16) | 0) << 1 | 0) > 0) {
- r = t >>> 16 & 65535;
- f = z;
- s = u & 65535;
- q = v & 65535;
- }
- t = w + 5 | 0;
- z = t & 65535;
- if (z << 16 >> 16 >= 40) break; else w = t << 16 >> 16;
- }
- } else {
- r = 1;
- f = J;
- s = 0;
- }
- if (F) {
- y = s & 65535;
- z = f << 16 >> 16;
- w = (r << 16 >> 16 << 14) + 32768 | 0;
- v = E;
- s = 1;
- x = G;
- q = G;
- r = -1;
- while (1) {
- u = (e[M + (v << 1) >> 1] | 0) + y << 16 >> 16;
- u = (Z(u, u) | 0) >>> 15;
- t = w + (b[O + (v * 80 | 0) + (v << 1) >> 1] << 12) + ((b[O + (A * 80 | 0) + (v << 1) >> 1] | 0) + (b[O + (z * 80 | 0) + (v << 1) >> 1] | 0) << 13) | 0;
- if (((Z(u << 16 >> 16, s << 16 >> 16) | 0) - (Z(t >> 16, r << 16 >> 16) | 0) << 1 | 0) > 0) {
- s = t >>> 16 & 65535;
- q = x;
- r = u & 65535;
- }
- t = v + 5 | 0;
- x = t & 65535;
- if (x << 16 >> 16 >= 40) {
- w = s;
- v = r;
- break
- } else v = t << 16 >> 16;
- }
- } else {
- w = 1;
- q = G;
- v = -1;
- }
- s = Z(v << 16 >> 16, m << 16 >> 16) | 0;
- if ((s | 0) == 1073741824) {
- c[l >> 2] = 1;
- t = 2147483647;
- } else t = s << 1;
- s = Z(w << 16 >> 16, a << 16 >> 16) | 0;
- if ((s | 0) == 1073741824) {
- c[l >> 2] = 1;
- r = 2147483647;
- } else r = s << 1;
- s = t - r | 0;
- if (((s ^ t) & (r ^ t) | 0) < 0) {
- c[l >> 2] = 1;
- s = (t >>> 31) + 2147483647 | 0;
- }
- z = (s | 0) > 0;
- n = z ? q : n;
- o = z ? f : o;
- g = z ? B : g;
- m = z ? w : m;
- a = z ? v : a;
- }
- s = A + 5 | 0;
- B = s & 65535;
- if (B << 16 >> 16 >= 40) break; else A = s << 16 >> 16;
- }
- }
- H = H + 1 << 16 >> 16;
- if (H << 16 >> 16 >= 3) break; else {
- F = G;
- G = J;
- J = I;
- I = F;
- }
- }
- f = K + 2 | 0;
- s = f & 65535;
- if (s << 16 >> 16 >= 5) break; else K = f & 65535;
- }
- f = L + 2 | 0;
- p = f & 65535;
- if (p << 16 >> 16 < 4) L = f & 65535; else {
- s = n;
- n = o;
- break
- }
- }
- f = h;
- m = f + 80 | 0;
- do {
- b[f >> 1] = 0;
- f = f + 2 | 0;
- } while ((f | 0) < (m | 0));
- v = g << 16 >> 16;
- a = b[P + (v << 1) >> 1] | 0;
- g = (v * 6554 | 0) >>> 15;
- f = g << 16;
- m = v - (((f >> 16) * 327680 | 0) >>> 16) | 0;
- switch (m << 16 >> 16 | 0) {
- case 1: {
- g = f >> 12;
- break
- }
- case 2: {
- g = f >> 8;
- m = 2;
- break
- }
- case 3: {
- g = g << 20 >> 16 | 8;
- m = 1;
- break
- }
- case 4: {
- g = g << 24 >> 16 | 128;
- m = 2;
- break
- }
- default:
- }
- f = h + (v << 1) | 0;
- if (a << 16 >> 16 > 0) {
- b[f >> 1] = 8191;
- z = 32767;
- o = 65536 << (m << 16 >> 16) >>> 16 & 65535;
- } else {
- b[f >> 1] = -8192;
- z = -32768;
- o = 0;
- }
- t = n << 16 >> 16;
- n = b[P + (t << 1) >> 1] | 0;
- f = (t * 6554 | 0) >>> 15;
- m = f << 16;
- a = t - (((m >> 16) * 327680 | 0) >>> 16) | 0;
- switch (a << 16 >> 16 | 0) {
- case 1: {
- f = m >> 12;
- break
- }
- case 2: {
- f = m >> 8;
- a = 2;
- break
- }
- case 3: {
- f = f << 20 >> 16 | 8;
- a = 1;
- break
- }
- case 4: {
- f = f << 24 >> 16 | 128;
- a = 2;
- break
- }
- default:
- }
- m = h + (t << 1) | 0;
- if (n << 16 >> 16 > 0) {
- b[m >> 1] = 8191;
- u = 32767;
- o = (65536 << (a << 16 >> 16) >>> 16) + (o & 65535) & 65535;
- } else {
- b[m >> 1] = -8192;
- u = -32768;
- }
- p = f + g | 0;
- r = s << 16 >> 16;
- n = b[P + (r << 1) >> 1] | 0;
- g = (r * 6554 | 0) >>> 15;
- f = g << 16;
- m = r - (((f >> 16) * 327680 | 0) >>> 16) | 0;
- switch (m << 16 >> 16 | 0) {
- case 1: {
- f = f >> 12;
- break
- }
- case 2: {
- f = f >> 8;
- m = 2;
- break
- }
- case 3: {
- f = g << 20 >> 16 | 8;
- m = 1;
- break
- }
- case 4: {
- f = g << 24 >> 16 | 128;
- m = 2;
- break
- }
- default:
- f = g;
- }
- g = h + (r << 1) | 0;
- if (n << 16 >> 16 > 0) {
- b[g >> 1] = 8191;
- s = 32767;
- g = (65536 << (m << 16 >> 16) >>> 16) + (o & 65535) & 65535;
- } else {
- b[g >> 1] = -8192;
- s = -32768;
- g = o;
- }
- q = p + f | 0;
- b[k >> 1] = g;
- o = 0;
- p = d + (0 - v << 1) | 0;
- a = d + (0 - t << 1) | 0;
- n = d + (0 - r << 1) | 0;
- do {
- g = Z(b[p >> 1] | 0, z) | 0;
- p = p + 2 | 0;
- if ((g | 0) != 1073741824 ? (S = g << 1, !((g | 0) > 0 & (S | 0) < 0)) : 0) m = S; else {
- c[l >> 2] = 1;
- m = 2147483647;
- }
- g = Z(b[a >> 1] | 0, u) | 0;
- a = a + 2 | 0;
- if ((g | 0) != 1073741824) {
- f = (g << 1) + m | 0;
- if ((g ^ m | 0) > 0 & (f ^ m | 0) < 0) {
- c[l >> 2] = 1;
- f = (m >>> 31) + 2147483647 | 0;
- }
- } else {
- c[l >> 2] = 1;
- f = 2147483647;
- }
- m = Z(b[n >> 1] | 0, s) | 0;
- n = n + 2 | 0;
- if ((m | 0) != 1073741824) {
- g = (m << 1) + f | 0;
- if ((m ^ f | 0) > 0 & (g ^ f | 0) < 0) {
- c[l >> 2] = 1;
- g = (f >>> 31) + 2147483647 | 0;
- }
- } else {
- c[l >> 2] = 1;
- g = 2147483647;
- }
- b[j + (o << 1) >> 1] = Ce(g, l) | 0;
- o = o + 1 | 0;
- } while ((o | 0) != 40);
- g = q & 65535;
- if (!Q) {
- i = U;
- return g | 0
- }
- m = R >> 16;
- f = T;
- do {
- a = (Z(b[h + (f - T << 1) >> 1] | 0, m) | 0) >> 15;
- if ((a | 0) > 32767) {
- c[l >> 2] = 1;
- a = 32767;
- }
- j = h + (f << 1) | 0;
- b[j >> 1] = Rd(b[j >> 1] | 0, a & 65535, l) | 0;
- f = f + 1 | 0;
- } while ((f & 65535) << 16 >> 16 != 40);
- i = U;
- return g | 0
- }
- function Rb(a, d, f, g, h, j, k, l, m) {
- a = a | 0;
- d = d | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- k = k | 0;
- l = l | 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, O = 0, P = 0, Q = 0,
- R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0;
- da = i;
- i = i + 3456 | 0;
- _ = da + 3448 | 0;
- X = da + 3360 | 0;
- U = da + 3368 | 0;
- V = da + 3280 | 0;
- Y = da + 3200 | 0;
- W = da;
- aa = (g & 65535) << 17;
- ca = f << 16 >> 16;
- $ = f << 16 >> 16 < 40;
- if ($) {
- f = aa >> 16;
- n = ca;
- do {
- g = (Z(b[d + (n - ca << 1) >> 1] | 0, f) | 0) >> 15;
- if ((g | 0) > 32767) {
- c[m >> 2] = 1;
- g = 32767;
- }
- T = d + (n << 1) | 0;
- b[T >> 1] = Rd(b[T >> 1] | 0, g & 65535, m) | 0;
- n = n + 1 | 0;
- } while ((n & 65535) << 16 >> 16 != 40)
- }
- hc(d, a, U, 1, m);
- qd(U, Y, V, 4);
- fc(d, Y, W, m);
- R = X + 2 | 0;
- b[X >> 1] = 0;
- S = X + 4 | 0;
- b[R >> 1] = 1;
- T = X + 6 | 0;
- b[S >> 1] = 2;
- b[T >> 1] = 3;
- r = 3;
- p = 2;
- o = 1;
- g = 0;
- f = 1;
- n = -1;
- q = 3;
- do {
- M = 0;
- N = 0;
- O = q;
- P = 1;
- Q = 2;
- while (1) {
- if (N << 16 >> 16 < 40) {
- G = P << 16 >> 16;
- H = P << 16 >> 16 < 40;
- I = Q << 16 >> 16;
- J = Q << 16 >> 16 < 40;
- K = O << 16 >> 16;
- L = O << 16 >> 16 < 40;
- F = N << 16 >> 16;
- E = p;
- C = o;
- B = f;
- D = N;
- while (1) {
- if ((b[V + (F << 1) >> 1] | 0) > -1) {
- t = b[W + (F * 80 | 0) + (F << 1) >> 1] | 0;
- if (H) {
- s = e[U + (F << 1) >> 1] | 0;
- u = G;
- z = 1;
- p = P;
- o = P;
- x = 0;
- y = -1;
- while (1) {
- w = (e[U + (u << 1) >> 1] | 0) + s | 0;
- v = w << 16 >> 16;
- v = (Z(v, v) | 0) >>> 15;
- A = (b[W + (F * 80 | 0) + (u << 1) >> 1] << 15) + 32768 + ((b[W + (u * 80 | 0) + (u << 1) >> 1] | 0) + t << 14) | 0;
- if (((Z(v << 16 >> 16, z << 16 >> 16) | 0) - (Z(A >> 16, y << 16 >> 16) | 0) << 1 | 0) > 0) {
- z = A >>> 16 & 65535;
- o = p;
- x = w & 65535;
- y = v & 65535;
- }
- A = u + 5 | 0;
- p = A & 65535;
- if (p << 16 >> 16 >= 40) break; else u = A << 16 >> 16;
- }
- } else {
- z = 1;
- o = P;
- x = 0;
- }
- if (J) {
- f = x & 65535;
- a = o << 16 >> 16;
- t = (z << 16 >> 16 << 14) + 32768 | 0;
- u = I;
- A = 1;
- s = Q;
- p = Q;
- y = 0;
- x = -1;
- while (1) {
- w = (e[U + (u << 1) >> 1] | 0) + f | 0;
- v = w << 16 >> 16;
- v = (Z(v, v) | 0) >>> 15;
- z = t + (b[W + (u * 80 | 0) + (u << 1) >> 1] << 12) + ((b[W + (F * 80 | 0) + (u << 1) >> 1] | 0) + (b[W + (a * 80 | 0) + (u << 1) >> 1] | 0) << 13) | 0;
- if (((Z(v << 16 >> 16, A << 16 >> 16) | 0) - (Z(z >> 16, x << 16 >> 16) | 0) << 1 | 0) > 0) {
- A = z >>> 16 & 65535;
- p = s;
- y = w & 65535;
- x = v & 65535;
- }
- z = u + 5 | 0;
- s = z & 65535;
- if (s << 16 >> 16 >= 40) break; else u = z << 16 >> 16;
- }
- } else {
- A = 1;
- p = Q;
- y = 0;
- }
- if (L) {
- t = y & 65535;
- s = p << 16 >> 16;
- a = o << 16 >> 16;
- v = (A & 65535) << 16 | 32768;
- w = K;
- f = 1;
- u = O;
- z = O;
- A = -1;
- while (1) {
- x = (e[U + (w << 1) >> 1] | 0) + t << 16 >> 16;
- x = (Z(x, x) | 0) >>> 15;
- y = (b[W + (w * 80 | 0) + (w << 1) >> 1] << 12) + v + ((b[W + (a * 80 | 0) + (w << 1) >> 1] | 0) + (b[W + (s * 80 | 0) + (w << 1) >> 1] | 0) + (b[W + (F * 80 | 0) + (w << 1) >> 1] | 0) << 13) | 0;
- if (((Z(x << 16 >> 16, f << 16 >> 16) | 0) - (Z(y >> 16, A << 16 >> 16) | 0) << 1 | 0) > 0) {
- f = y >>> 16 & 65535;
- z = u;
- A = x & 65535;
- }
- y = w + 5 | 0;
- u = y & 65535;
- if (u << 16 >> 16 >= 40) break; else w = y << 16 >> 16;
- }
- } else {
- f = 1;
- z = O;
- A = -1;
- }
- if (((Z(A << 16 >> 16, B << 16 >> 16) | 0) - (Z(f << 16 >> 16, n << 16 >> 16) | 0) << 1 | 0) > 0) {
- b[X >> 1] = D;
- b[R >> 1] = o;
- b[S >> 1] = p;
- b[T >> 1] = z;
- r = z;
- g = D;
- n = A;
- } else {
- p = E;
- o = C;
- f = B;
- }
- } else {
- p = E;
- o = C;
- f = B;
- }
- w = F + 5 | 0;
- D = w & 65535;
- if (D << 16 >> 16 >= 40) break; else {
- F = w << 16 >> 16;
- E = p;
- C = o;
- B = f;
- }
- }
- }
- M = M + 1 << 16 >> 16;
- if (M << 16 >> 16 >= 4) break; else {
- K = Q;
- L = O;
- Q = P;
- P = N;
- O = K;
- N = L;
- }
- }
- q = q + 1 << 16 >> 16;
- } while (q << 16 >> 16 < 5);
- A = r;
- z = p;
- y = o;
- x = g;
- g = h;
- f = g + 80 | 0;
- do {
- b[g >> 1] = 0;
- g = g + 2 | 0;
- } while ((g | 0) < (f | 0));
- a = x;
- f = 0;
- n = 0;
- g = 0;
- while (1) {
- p = a << 16 >> 16;
- q = b[Y + (p << 1) >> 1] | 0;
- a = p * 13108 >> 16;
- o = p - ((a * 327680 | 0) >>> 16) | 0;
- a = b[l + (a << 1) >> 1] | 0;
- switch (o << 16 >> 16 | 0) {
- case 1: {
- r = a << 16 >> 16 << 3 & 65535;
- break
- }
- case 2: {
- r = a << 16 >> 16 << 6 & 65535;
- break
- }
- case 3: {
- r = a << 16 >> 16 << 10 & 65535;
- break
- }
- case 4: {
- r = ((a & 65535) << 10 | 512) & 65535;
- o = 3;
- break
- }
- default:
- r = a;
- }
- a = h + (p << 1) | 0;
- if (q << 16 >> 16 > 0) {
- b[a >> 1] = 8191;
- a = 32767;
- g = (65536 << (o << 16 >> 16) >>> 16) + (g & 65535) & 65535;
- } else {
- b[a >> 1] = -8192;
- a = -32768;
- }
- b[_ + (f << 1) >> 1] = a;
- n = (r & 65535) + (n & 65535) | 0;
- f = f + 1 | 0;
- if ((f | 0) == 4) {
- w = n;
- break
- }
- a = b[X + (f << 1) >> 1] | 0;
- }
- b[k >> 1] = g;
- t = _ + 2 | 0;
- u = _ + 4 | 0;
- v = _ + 6 | 0;
- a = b[_ >> 1] | 0;
- s = 0;
- o = d + (0 - (x << 16 >> 16) << 1) | 0;
- p = d + (0 - (y << 16 >> 16) << 1) | 0;
- q = d + (0 - (z << 16 >> 16) << 1) | 0;
- r = d + (0 - (A << 16 >> 16) << 1) | 0;
- do {
- g = Z(b[o >> 1] | 0, a) | 0;
- o = o + 2 | 0;
- if ((g | 0) != 1073741824 ? (ba = g << 1, !((g | 0) > 0 & (ba | 0) < 0)) : 0) n = ba; else {
- c[m >> 2] = 1;
- n = 2147483647;
- }
- g = Z(b[t >> 1] | 0, b[p >> 1] | 0) | 0;
- p = p + 2 | 0;
- if ((g | 0) != 1073741824) {
- f = (g << 1) + n | 0;
- if ((g ^ n | 0) > 0 & (f ^ n | 0) < 0) {
- c[m >> 2] = 1;
- f = (n >>> 31) + 2147483647 | 0;
- }
- } else {
- c[m >> 2] = 1;
- f = 2147483647;
- }
- g = Z(b[u >> 1] | 0, b[q >> 1] | 0) | 0;
- q = q + 2 | 0;
- if ((g | 0) != 1073741824) {
- n = (g << 1) + f | 0;
- if ((g ^ f | 0) > 0 & (n ^ f | 0) < 0) {
- c[m >> 2] = 1;
- n = (f >>> 31) + 2147483647 | 0;
- }
- } else {
- c[m >> 2] = 1;
- n = 2147483647;
- }
- f = Z(b[v >> 1] | 0, b[r >> 1] | 0) | 0;
- r = r + 2 | 0;
- if ((f | 0) != 1073741824) {
- g = (f << 1) + n | 0;
- if ((f ^ n | 0) > 0 & (g ^ n | 0) < 0) {
- c[m >> 2] = 1;
- g = (n >>> 31) + 2147483647 | 0;
- }
- } else {
- c[m >> 2] = 1;
- g = 2147483647;
- }
- b[j + (s << 1) >> 1] = Ce(g, m) | 0;
- s = s + 1 | 0;
- } while ((s | 0) != 40);
- g = w & 65535;
- if (((ca << 16) + -2621440 | 0) > -1 | $ ^ 1) {
- i = da;
- return g | 0
- }
- n = aa >> 16;
- f = ca;
- do {
- a = (Z(b[h + (f - ca << 1) >> 1] | 0, n) | 0) >> 15;
- if ((a | 0) > 32767) {
- c[m >> 2] = 1;
- a = 32767;
- }
- j = h + (f << 1) | 0;
- b[j >> 1] = Rd(b[j >> 1] | 0, a & 65535, m) | 0;
- f = f + 1 | 0;
- } while ((f & 65535) << 16 >> 16 != 40);
- i = da;
- return g | 0
- }
- function Sb(a, d, f, g, h, j, k) {
- a = a | 0;
- d = d | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- k = k | 0;
- var 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, J = 0, K = 0, L = 0;
- L = i;
- i = i + 3440 | 0;
- t = L + 3424 | 0;
- G = L + 3408 | 0;
- H = L + 3240 | 0;
- u = L + 3224 | 0;
- E = L + 3328 | 0;
- s = L + 3248 | 0;
- F = L + 24 | 0;
- K = L + 16 | 0;
- J = L;
- gc(f, a, E, 2, 4, 4, k);
- rd(E, d, s, H, 4, G, 4, k);
- fc(f, s, F, k);
- pd(8, 4, 4, E, F, G, H, u, k);
- d = g;
- a = d + 80 | 0;
- do {
- b[d >> 1] = 0;
- d = d + 2 | 0;
- } while ((d | 0) < (a | 0));
- b[J >> 1] = -1;
- b[K >> 1] = -1;
- C = J + 2 | 0;
- b[C >> 1] = -1;
- D = K + 2 | 0;
- b[D >> 1] = -1;
- E = J + 4 | 0;
- b[E >> 1] = -1;
- F = K + 4 | 0;
- b[F >> 1] = -1;
- H = J + 6 | 0;
- b[H >> 1] = -1;
- G = K + 6 | 0;
- b[G >> 1] = -1;
- q = 0;
- do {
- o = b[u + (q << 1) >> 1] | 0;
- d = o >>> 2;
- m = d & 65535;
- a = o & 3;
- n = (b[s + (o << 1) >> 1] | 0) > 0;
- o = g + (o << 1) | 0;
- r = n & 1 ^ 1;
- b[o >> 1] = (e[o >> 1] | 0) + (n ? 8191 : 57345);
- b[t + (q << 1) >> 1] = n ? 32767 : -32768;
- n = J + (a << 1) | 0;
- o = b[n >> 1] | 0;
- do if (o << 16 >> 16 >= 0) {
- p = K + (a << 1) | 0;
- l = (o << 16 >> 16 | 0) <= (d << 16 >> 16 | 0);
- d = J + ((a | 4) << 1) | 0;
- if ((r & 65535 | 0) == (e[p >> 1] & 1 | 0)) if (l) {
- b[d >> 1] = m;
- break
- } else {
- b[d >> 1] = o;
- b[n >> 1] = m;
- b[p >> 1] = r;
- break
- } else if (l) {
- b[d >> 1] = o;
- b[n >> 1] = m;
- b[p >> 1] = r;
- break
- } else {
- b[d >> 1] = m;
- break
- }
- } else {
- b[n >> 1] = m;
- b[K + (a << 1) >> 1] = r;
- } while (0);
- q = q + 1 | 0;
- } while ((q | 0) != 8);
- v = t + 2 | 0;
- w = t + 4 | 0;
- x = t + 6 | 0;
- y = t + 8 | 0;
- z = t + 10 | 0;
- A = t + 12 | 0;
- B = t + 14 | 0;
- t = b[t >> 1] | 0;
- q = 0;
- p = f + (0 - (b[u >> 1] | 0) << 1) | 0;
- o = f + (0 - (b[u + 2 >> 1] | 0) << 1) | 0;
- n = f + (0 - (b[u + 4 >> 1] | 0) << 1) | 0;
- m = f + (0 - (b[u + 6 >> 1] | 0) << 1) | 0;
- d = f + (0 - (b[u + 8 >> 1] | 0) << 1) | 0;
- a = f + (0 - (b[u + 10 >> 1] | 0) << 1) | 0;
- l = f + (0 - (b[u + 12 >> 1] | 0) << 1) | 0;
- f = f + (0 - (b[u + 14 >> 1] | 0) << 1) | 0;
- do {
- r = Z(b[p >> 1] | 0, t) | 0;
- p = p + 2 | 0;
- if ((r | 0) != 1073741824 ? (I = r << 1, !((r | 0) > 0 & (I | 0) < 0)) : 0) r = I; else {
- c[k >> 2] = 1;
- r = 2147483647;
- }
- s = Z(b[v >> 1] | 0, b[o >> 1] | 0) | 0;
- o = o + 2 | 0;
- if ((s | 0) != 1073741824) {
- g = (s << 1) + r | 0;
- if ((s ^ r | 0) > 0 & (g ^ r | 0) < 0) {
- c[k >> 2] = 1;
- r = (r >>> 31) + 2147483647 | 0;
- } else r = g;
- } else {
- c[k >> 2] = 1;
- r = 2147483647;
- }
- s = Z(b[w >> 1] | 0, b[n >> 1] | 0) | 0;
- n = n + 2 | 0;
- if ((s | 0) != 1073741824) {
- g = (s << 1) + r | 0;
- if ((s ^ r | 0) > 0 & (g ^ r | 0) < 0) {
- c[k >> 2] = 1;
- g = (r >>> 31) + 2147483647 | 0;
- }
- } else {
- c[k >> 2] = 1;
- g = 2147483647;
- }
- s = Z(b[x >> 1] | 0, b[m >> 1] | 0) | 0;
- m = m + 2 | 0;
- if ((s | 0) != 1073741824) {
- r = (s << 1) + g | 0;
- if ((s ^ g | 0) > 0 & (r ^ g | 0) < 0) {
- c[k >> 2] = 1;
- r = (g >>> 31) + 2147483647 | 0;
- }
- } else {
- c[k >> 2] = 1;
- r = 2147483647;
- }
- s = Z(b[y >> 1] | 0, b[d >> 1] | 0) | 0;
- d = d + 2 | 0;
- if ((s | 0) != 1073741824) {
- g = (s << 1) + r | 0;
- if ((s ^ r | 0) > 0 & (g ^ r | 0) < 0) {
- c[k >> 2] = 1;
- g = (r >>> 31) + 2147483647 | 0;
- }
- } else {
- c[k >> 2] = 1;
- g = 2147483647;
- }
- s = Z(b[z >> 1] | 0, b[a >> 1] | 0) | 0;
- a = a + 2 | 0;
- if ((s | 0) != 1073741824) {
- r = (s << 1) + g | 0;
- if ((s ^ g | 0) > 0 & (r ^ g | 0) < 0) {
- c[k >> 2] = 1;
- r = (g >>> 31) + 2147483647 | 0;
- }
- } else {
- c[k >> 2] = 1;
- r = 2147483647;
- }
- s = Z(b[A >> 1] | 0, b[l >> 1] | 0) | 0;
- l = l + 2 | 0;
- if ((s | 0) != 1073741824) {
- g = (s << 1) + r | 0;
- if ((s ^ r | 0) > 0 & (g ^ r | 0) < 0) {
- c[k >> 2] = 1;
- g = (r >>> 31) + 2147483647 | 0;
- }
- } else {
- c[k >> 2] = 1;
- g = 2147483647;
- }
- s = Z(b[B >> 1] | 0, b[f >> 1] | 0) | 0;
- f = f + 2 | 0;
- if ((s | 0) != 1073741824) {
- r = (s << 1) + g | 0;
- if ((s ^ g | 0) > 0 & (r ^ g | 0) < 0) {
- c[k >> 2] = 1;
- r = (g >>> 31) + 2147483647 | 0;
- }
- } else {
- c[k >> 2] = 1;
- r = 2147483647;
- }
- b[h + (q << 1) >> 1] = Ce(r, k) | 0;
- q = q + 1 | 0;
- } while ((q | 0) != 40);
- b[j >> 1] = b[K >> 1] | 0;
- b[j + 2 >> 1] = b[D >> 1] | 0;
- b[j + 4 >> 1] = b[F >> 1] | 0;
- b[j + 6 >> 1] = b[G >> 1] | 0;
- a = b[J >> 1] | 0;
- d = b[J + 8 >> 1] | 0;
- l = b[C >> 1] | 0;
- b[j + 8 >> 1] = d << 1 & 2 | a & 1 | l << 2 & 4 | (((d >> 1) * 327680 | 0) + (a >>> 1 << 16) + (Z(l >> 1, 1638400) | 0) | 0) >>> 13 & 65528;
- l = b[E >> 1] | 0;
- a = b[J + 12 >> 1] | 0;
- d = b[J + 10 >> 1] | 0;
- b[j + 10 >> 1] = a << 1 & 2 | l & 1 | d << 2 & 4 | (((a >> 1) * 327680 | 0) + (l >>> 1 << 16) + (Z(d >> 1, 1638400) | 0) | 0) >>> 13 & 65528;
- d = b[J + 14 >> 1] | 0;
- l = b[H >> 1] | 0;
- a = l << 16 >> 16 >>> 1;
- if (!(d & 2)) {
- h = a;
- k = d << 16 >> 16;
- K = k >> 1;
- K = K * 327680 | 0;
- h = h << 16;
- K = h + K | 0;
- K = K << 5;
- K = K >> 16;
- K = K | 12;
- K = K * 2622 | 0;
- K = K >>> 16;
- h = l & 65535;
- h = h & 1;
- k = k << 17;
- k = k & 131072;
- K = K << 18;
- k = K | k;
- k = k >>> 16;
- h = k | h;
- h = h & 65535;
- j = j + 12 | 0;
- b[j >> 1] = h;
- i = L;
- return
- }
- h = 4 - (a << 16 >> 16) | 0;
- k = d << 16 >> 16;
- K = k >> 1;
- K = K * 327680 | 0;
- h = h << 16;
- K = h + K | 0;
- K = K << 5;
- K = K >> 16;
- K = K | 12;
- K = K * 2622 | 0;
- K = K >>> 16;
- h = l & 65535;
- h = h & 1;
- k = k << 17;
- k = k & 131072;
- K = K << 18;
- k = K | k;
- k = k >>> 16;
- h = k | h;
- h = h & 65535;
- j = j + 12 | 0;
- b[j >> 1] = h;
- i = L;
- return
- }
- function Tb(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, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0;
- r = e << 16 >> 16;
- h = 0 - r | 0;
- e = g + (h << 2) | 0;
- g = ((r - (f << 16 >> 16) | 0) >>> 2) + 1 & 65535;
- if (g << 16 >> 16 <= 0) return;
- r = d << 16 >> 16 >>> 1 & 65535;
- if (!(r << 16 >> 16)) {
- while (1) {
- c[e >> 2] = 0;
- c[e + 4 >> 2] = 0;
- c[e + 8 >> 2] = 0;
- c[e + 12 >> 2] = 0;
- if (g << 16 >> 16 > 1) {
- e = e + 16 | 0;
- g = g + -1 << 16 >> 16;
- } else break
- }
- return
- }
- q = a + (h << 1) | 0;
- while (1) {
- l = q + 4 | 0;
- n = b[l >> 1] | 0;
- j = b[q >> 1] | 0;
- m = n;
- k = r;
- o = a;
- p = q;
- q = q + 8 | 0;
- i = 0;
- h = 0;
- f = 0;
- d = 0;
- while (1) {
- t = b[o >> 1] | 0;
- s = (Z(j << 16 >> 16, t) | 0) + i | 0;
- i = b[p + 2 >> 1] | 0;
- h = (Z(i, t) | 0) + h | 0;
- j = (Z(m << 16 >> 16, t) | 0) + f | 0;
- f = b[p + 6 >> 1] | 0;
- m = (Z(f, t) | 0) + d | 0;
- d = b[o + 2 >> 1] | 0;
- i = s + (Z(d, i) | 0) | 0;
- h = h + (Z(n << 16 >> 16, d) | 0) | 0;
- l = l + 4 | 0;
- f = j + (Z(d, f) | 0) | 0;
- j = b[l >> 1] | 0;
- d = m + (Z(j << 16 >> 16, d) | 0) | 0;
- k = k + -1 << 16 >> 16;
- if (!(k << 16 >> 16)) break;
- t = n;
- m = j;
- n = b[p + 8 >> 1] | 0;
- o = o + 4 | 0;
- p = p + 4 | 0;
- j = t;
- }
- c[e >> 2] = i << 1;
- c[e + 4 >> 2] = h << 1;
- c[e + 8 >> 2] = f << 1;
- c[e + 12 >> 2] = d << 1;
- if (g << 16 >> 16 <= 1) break; else {
- e = e + 16 | 0;
- g = g + -1 << 16 >> 16;
- }
- }
- return
- }
- function Ub(a, d, f, g, h, j, k, l, m) {
- a = a | 0;
- d = d | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- k = k | 0;
- l = l | 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;
- y = i;
- i = i + 16 | 0;
- w = y + 2 | 0;
- x = y;
- do if (h << 16 >> 16 > 0) {
- s = g << 16 >> 16;
- u = 0;
- p = 0;
- g = 0;
- o = 0;
- t = 0;
- while (1) {
- n = b[a + (u << 1) >> 1] | 0;
- q = n << 16 >> 16;
- p = (Z(q, q) | 0) + p | 0;
- q = b[d + (u << 1) >> 1] | 0;
- g = (Z(q, q) | 0) + g | 0;
- o = (Z(b[f + (u << 1) >> 1] | 0, q) | 0) + o | 0;
- q = Z(q, s) | 0;
- if ((q | 0) == 1073741824) {
- c[m >> 2] = 1;
- r = 2147483647;
- } else r = q << 1;
- q = r << 1;
- q = (Ge(n, Ce((q >> 1 | 0) == (r | 0) ? q : r >> 31 ^ 2147483647, m) | 0, m) | 0) << 16 >> 16;
- q = Z(q, q) | 0;
- if ((q | 0) != 1073741824) {
- n = (q << 1) + t | 0;
- if ((q ^ t | 0) > 0 & (n ^ t | 0) < 0) {
- c[m >> 2] = 1;
- n = (t >>> 31) + 2147483647 | 0;
- }
- } else {
- c[m >> 2] = 1;
- n = 2147483647;
- }
- u = u + 1 | 0;
- if ((u & 65535) << 16 >> 16 == h << 16 >> 16) {
- t = n;
- break
- } else t = n;
- }
- p = p << 1;
- g = g << 1;
- o = o << 1;
- if ((p | 0) >= 0) {
- if ((p | 0) < 400) {
- n = t;
- v = 14;
- break
- }
- } else {
- c[m >> 2] = 1;
- p = 2147483647;
- }
- r = pe(p) | 0;
- q = r << 16 >> 16;
- if (r << 16 >> 16 > 0) {
- n = p << q;
- if ((n >> q | 0) != (p | 0)) n = p >> 31 ^ 2147483647;
- } else {
- n = 0 - q << 16;
- if ((n | 0) < 2031616) n = p >> (n >> 16); else n = 0;
- }
- b[j >> 1] = n >>> 16;
- p = g;
- s = o;
- n = t;
- g = 15 - (r & 65535) & 65535;
- } else {
- g = 0;
- o = 0;
- n = 0;
- v = 14;
- } while (0);
- if ((v | 0) == 14) {
- b[j >> 1] = 0;
- p = g;
- s = o;
- g = -15;
- }
- b[k >> 1] = g;
- if ((p | 0) < 0) {
- c[m >> 2] = 1;
- p = 2147483647;
- }
- q = pe(p) | 0;
- o = q << 16 >> 16;
- if (q << 16 >> 16 > 0) {
- g = p << o;
- if ((g >> o | 0) != (p | 0)) g = p >> 31 ^ 2147483647;
- } else {
- g = 0 - o << 16;
- if ((g | 0) < 2031616) g = p >> (g >> 16); else g = 0;
- }
- b[j + 2 >> 1] = g >>> 16;
- b[k + 2 >> 1] = 15 - (q & 65535);
- p = pe(s) | 0;
- o = p << 16 >> 16;
- if (p << 16 >> 16 > 0) {
- g = s << o;
- if ((g >> o | 0) != (s | 0)) g = s >> 31 ^ 2147483647;
- } else {
- g = 0 - o << 16;
- if ((g | 0) < 2031616) g = s >> (g >> 16); else g = 0;
- }
- b[j + 4 >> 1] = g >>> 16;
- b[k + 4 >> 1] = 2 - (p & 65535);
- p = pe(n) | 0;
- g = p << 16 >> 16;
- if (p << 16 >> 16 > 0) {
- o = n << g;
- if ((o >> g | 0) != (n | 0)) o = n >> 31 ^ 2147483647;
- } else {
- g = 0 - g << 16;
- if ((g | 0) < 2031616) o = n >> (g >> 16); else o = 0;
- }
- g = o >>> 16 & 65535;
- n = 15 - (p & 65535) & 65535;
- b[j + 6 >> 1] = g;
- b[k + 6 >> 1] = n;
- if ((o >> 16 | 0) <= 0) {
- m = 0;
- b[l >> 1] = m;
- i = y;
- return
- }
- o = b[j >> 1] | 0;
- if (!(o << 16 >> 16)) {
- m = 0;
- b[l >> 1] = m;
- i = y;
- return
- }
- g = Td(De(o, 1, m) | 0, g) | 0;
- g = (g & 65535) << 16;
- o = ((Ge(n, b[k >> 1] | 0, m) | 0) & 65535) + 3 | 0;
- n = o & 65535;
- o = o << 16 >> 16;
- if (n << 16 >> 16 > 0) n = n << 16 >> 16 < 31 ? g >> o : 0; else {
- k = 0 - o << 16 >> 16;
- n = g << k;
- n = (n >> k | 0) == (g | 0) ? n : g >> 31 ^ 2147483647;
- }
- de(n, w, x, m);
- x = Ic((e[w >> 1] | 0) + 65509 & 65535, b[x >> 1] | 0, m) | 0;
- w = x << 13;
- m = Ce((w >> 13 | 0) == (x | 0) ? w : x >> 31 ^ 2147483647, m) | 0;
- b[l >> 1] = m;
- i = y;
- return
- }
- function Vb(a, d, f, g, h, j, k, l, m, n, o) {
- a = a | 0;
- d = d | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- k = k | 0;
- l = l | 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;
- y = i;
- i = i + 80 | 0;
- v = y;
- b[k >> 1] = b[j >> 1] | 0;
- b[l >> 1] = b[j + 2 >> 1] | 0;
- r = b[j + 4 >> 1] | 0;
- if (r << 16 >> 16 == -32768) r = 32767; else r = 0 - (r & 65535) & 65535;
- b[k + 2 >> 1] = r;
- b[l + 2 >> 1] = (e[j + 6 >> 1] | 0) + 1;
- switch (a | 0) {
- case 0:
- case 5: {
- u = 0;
- q = 0;
- p = 0;
- t = 0;
- break
- }
- default: {
- u = 0;
- q = 1;
- p = 1;
- t = 1;
- }
- }
- while (1) {
- s = (b[h + (u << 1) >> 1] | 0) >>> 3;
- b[v + (u << 1) >> 1] = s;
- s = s << 16 >> 16;
- r = Z(s, s) | 0;
- if ((r | 0) != 1073741824) {
- j = (r << 1) + q | 0;
- if ((r ^ q | 0) > 0 & (j ^ q | 0) < 0) {
- c[o >> 2] = 1;
- q = (q >>> 31) + 2147483647 | 0;
- } else q = j;
- } else {
- c[o >> 2] = 1;
- q = 2147483647;
- }
- r = Z(b[d + (u << 1) >> 1] | 0, s) | 0;
- if ((r | 0) != 1073741824) {
- j = (r << 1) + p | 0;
- if ((r ^ p | 0) > 0 & (j ^ p | 0) < 0) {
- c[o >> 2] = 1;
- p = (p >>> 31) + 2147483647 | 0;
- } else p = j;
- } else {
- c[o >> 2] = 1;
- p = 2147483647;
- }
- r = Z(b[g + (u << 1) >> 1] | 0, s) | 0;
- if ((r | 0) != 1073741824) {
- j = (r << 1) + t | 0;
- if ((r ^ t | 0) > 0 & (j ^ t | 0) < 0) {
- c[o >> 2] = 1;
- j = (t >>> 31) + 2147483647 | 0;
- }
- } else {
- c[o >> 2] = 1;
- j = 2147483647;
- }
- u = u + 1 | 0;
- if ((u | 0) == 40) {
- g = j;
- s = p;
- break
- } else t = j;
- }
- p = pe(q) | 0;
- j = p << 16 >> 16;
- if (p << 16 >> 16 > 0) {
- r = q << j;
- if ((r >> j | 0) != (q | 0)) r = q >> 31 ^ 2147483647;
- } else {
- r = 0 - j << 16;
- if ((r | 0) < 2031616) r = q >> (r >> 16); else r = 0;
- }
- h = k + 4 | 0;
- b[h >> 1] = r >>> 16;
- d = l + 4 | 0;
- b[d >> 1] = -3 - (p & 65535);
- q = pe(s) | 0;
- j = q << 16 >> 16;
- if (q << 16 >> 16 > 0) {
- r = s << j;
- if ((r >> j | 0) != (s | 0)) r = s >> 31 ^ 2147483647;
- } else {
- r = 0 - j << 16;
- if ((r | 0) < 2031616) r = s >> (r >> 16); else r = 0;
- }
- j = r >>> 16;
- b[k + 6 >> 1] = (j | 0) == 32768 ? 32767 : 0 - j & 65535;
- b[l + 6 >> 1] = 7 - (q & 65535);
- q = pe(g) | 0;
- j = q << 16 >> 16;
- if (q << 16 >> 16 > 0) {
- r = g << j;
- if ((r >> j | 0) != (g | 0)) r = g >> 31 ^ 2147483647;
- } else {
- r = 0 - j << 16;
- if ((r | 0) < 2031616) r = g >> (r >> 16); else r = 0;
- }
- b[k + 8 >> 1] = r >>> 16;
- b[l + 8 >> 1] = 7 - (q & 65535);
- switch (a | 0) {
- case 0:
- case 5: {
- r = 0;
- p = 0;
- break
- }
- default: {
- i = y;
- return
- }
- }
- do {
- p = (Z(b[v + (r << 1) >> 1] | 0, b[f + (r << 1) >> 1] | 0) | 0) + p | 0;
- r = r + 1 | 0;
- } while ((r | 0) != 40);
- j = p << 1;
- r = pe(j) | 0;
- q = r << 16 >> 16;
- if (r << 16 >> 16 > 0) {
- p = j << q;
- if ((p >> q | 0) == (j | 0)) {
- w = p;
- x = 40;
- } else {
- w = j >> 31 ^ 2147483647;
- x = 40;
- }
- } else {
- p = 0 - q << 16;
- if ((p | 0) < 2031616) {
- w = j >> (p >> 16);
- x = 40;
- }
- }
- if ((x | 0) == 40 ? (w >> 16 | 0) >= 1 : 0) {
- o = De(w >>> 16 & 65535, 1, o) | 0;
- b[m >> 1] = Td(o, b[h >> 1] | 0) | 0;
- b[n >> 1] = 65528 - (r & 65535) - (e[d >> 1] | 0);
- i = y;
- return
- }
- b[m >> 1] = 0;
- b[n >> 1] = 0;
- i = y;
- return
- }
- function Wb(a, d, e, f) {
- a = a | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- var g = 0, h = 0, i = 0;
- h = 0;
- g = 0;
- do {
- i = b[a + (h << 1) >> 1] | 0;
- g = (Z(i, i) | 0) + g | 0;
- h = h + 1 | 0;
- } while ((h | 0) != 40);
- if ((g | 0) < 0) {
- c[f >> 2] = 1;
- g = 2147483647;
- }
- f = pe(g) | 0;
- a = f << 16 >> 16;
- if (f << 16 >> 16 > 0) {
- h = g << a;
- if ((h >> a | 0) == (g | 0)) g = h; else g = g >> 31 ^ 2147483647;
- } else {
- a = 0 - a << 16;
- if ((a | 0) < 2031616) g = g >> (a >> 16); else g = 0;
- }
- b[e >> 1] = g >>> 16;
- b[d >> 1] = 16 - (f & 65535);
- return
- }
- function Xb(a, d, e, f, g, h, j, k, l, m, n, o, p) {
- a = a | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- k = k | 0;
- l = l | 0;
- m = m | 0;
- n = n | 0;
- o = o | 0;
- p = p | 0;
- var q = 0, r = 0, s = 0, t = 0;
- r = i;
- i = i + 16 | 0;
- q = r;
- if (m >>> 0 < 2) {
- j = Nb(n, a, d, e, f, j, k, q, c[o + 76 >> 2] | 0, p) | 0;
- p = c[l >> 2] | 0;
- b[p >> 1] = j;
- j = b[q >> 1] | 0;
- c[l >> 2] = p + 4;
- b[p + 2 >> 1] = j;
- i = r;
- return
- }
- switch (m | 0) {
- case 2: {
- j = Mb(a, d, e, f, j, k, q, p) | 0;
- p = c[l >> 2] | 0;
- b[p >> 1] = j;
- j = b[q >> 1] | 0;
- c[l >> 2] = p + 4;
- b[p + 2 >> 1] = j;
- i = r;
- return
- }
- case 3: {
- j = Qb(a, d, e, f, j, k, q, p) | 0;
- p = c[l >> 2] | 0;
- b[p >> 1] = j;
- j = b[q >> 1] | 0;
- c[l >> 2] = p + 4;
- b[p + 2 >> 1] = j;
- i = r;
- return
- }
- default: {
- if ((m & -2 | 0) == 4) {
- j = Rb(a, d, e, f, j, k, q, c[o + 36 >> 2] | 0, p) | 0;
- p = c[l >> 2] | 0;
- b[p >> 1] = j;
- j = b[q >> 1] | 0;
- c[l >> 2] = p + 4;
- b[p + 2 >> 1] = j;
- i = r;
- return
- }
- if ((m | 0) != 6) {
- n = g << 16 >> 16;
- n = (n << 17 >> 17 | 0) == (n | 0) ? n << 1 : n >>> 15 ^ 32767;
- g = e << 16 >> 16 < 40;
- if (!g) {
- Lb(a, h, d, j, k, c[l >> 2] | 0, c[o + 36 >> 2] | 0, p);
- c[l >> 2] = (c[l >> 2] | 0) + 20;
- i = r;
- return
- }
- q = e << 16 >> 16;
- m = n << 16 >> 16;
- f = q;
- do {
- t = (Z(b[d + (f - q << 1) >> 1] | 0, m) | 0) >>> 15 & 65535;
- s = d + (f << 1) | 0;
- b[s >> 1] = Rd(b[s >> 1] | 0, t, p) | 0;
- f = f + 1 | 0;
- } while ((f & 65535) << 16 >> 16 != 40);
- Lb(a, h, d, j, k, c[l >> 2] | 0, c[o + 36 >> 2] | 0, p);
- c[l >> 2] = (c[l >> 2] | 0) + 20;
- if (!g) {
- i = r;
- return
- }
- g = e << 16 >> 16;
- m = n << 16 >> 16;
- q = g;
- do {
- f = (Z(b[j + (q - g << 1) >> 1] | 0, m) | 0) >> 15;
- if ((f | 0) > 32767) {
- c[p >> 2] = 1;
- f = 32767;
- }
- t = j + (q << 1) | 0;
- b[t >> 1] = Rd(b[t >> 1] | 0, f & 65535, p) | 0;
- q = q + 1 | 0;
- } while ((q & 65535) << 16 >> 16 != 40);
- i = r;
- return
- }
- o = f << 16 >> 16;
- o = (o << 17 >> 17 | 0) == (o | 0) ? o << 1 : o >>> 15 ^ 32767;
- n = e << 16 >> 16 < 40;
- if (!n) {
- Sb(a, h, d, j, k, c[l >> 2] | 0, p);
- c[l >> 2] = (c[l >> 2] | 0) + 14;
- i = r;
- return
- }
- q = e << 16 >> 16;
- m = o << 16 >> 16;
- f = q;
- do {
- g = (Z(b[d + (f - q << 1) >> 1] | 0, m) | 0) >> 15;
- if ((g | 0) > 32767) {
- c[p >> 2] = 1;
- g = 32767;
- }
- t = d + (f << 1) | 0;
- b[t >> 1] = Rd(b[t >> 1] | 0, g & 65535, p) | 0;
- f = f + 1 | 0;
- } while ((f & 65535) << 16 >> 16 != 40);
- Sb(a, h, d, j, k, c[l >> 2] | 0, p);
- c[l >> 2] = (c[l >> 2] | 0) + 14;
- if (!n) {
- i = r;
- return
- }
- g = e << 16 >> 16;
- m = o << 16 >> 16;
- q = g;
- do {
- f = (Z(b[j + (q - g << 1) >> 1] | 0, m) | 0) >> 15;
- if ((f | 0) > 32767) {
- c[p >> 2] = 1;
- f = 32767;
- }
- t = j + (q << 1) | 0;
- b[t >> 1] = Rd(b[t >> 1] | 0, f & 65535, p) | 0;
- q = q + 1 | 0;
- } while ((q & 65535) << 16 >> 16 != 40);
- i = r;
- return
- }
- }
- }
- function Yb(a) {
- a = a | 0;
- var b = 0;
- if (!a) {
- a = -1;
- return a | 0
- }
- c[a >> 2] = 0;
- b = Je(4) | 0;
- if (!b) {
- a = -1;
- return a | 0
- }
- if (!((Uc(b) | 0) << 16 >> 16)) {
- Vc(c[b >> 2] | 0) | 0;
- c[a >> 2] = b;
- a = 0;
- return a | 0
- } else {
- Wc(b);
- Ke(b);
- a = -1;
- return a | 0
- }
- return 0
- }
- function Zb(a) {
- a = a | 0;
- var b = 0;
- if (!a) return;
- b = c[a >> 2] | 0;
- if (!b) return;
- Wc(b);
- Ke(c[a >> 2] | 0);
- c[a >> 2] = 0;
- return
- }
- function _b(a) {
- a = a | 0;
- if (!a) {
- a = -1;
- return a | 0
- }
- Vc(c[a >> 2] | 0) | 0;
- a = 0;
- return a | 0
- }
- function $b(a, d, f, g, h, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) {
- a = a | 0;
- d = d | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- k = k | 0;
- l = l | 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;
- u = u | 0;
- v = v | 0;
- w = w | 0;
- x = x | 0;
- var y = 0, z = 0, A = 0, B = 0;
- z = i;
- i = i + 16 | 0;
- B = z + 2 | 0;
- A = z;
- b[q >> 1] = Xc(c[a >> 2] | 0, f, h, k, m, j, 40, g, r, A, B, x) | 0;
- a = b[B >> 1] | 0;
- g = c[u >> 2] | 0;
- c[u >> 2] = g + 2;
- b[g >> 1] = a;
- se(k, b[q >> 1] | 0, b[r >> 1] | 0, 40, b[A >> 1] | 0, x);
- ec(k, j, p, 40);
- b[s >> 1] = Dc(f, m, p, t, 40, x) | 0;
- b[v >> 1] = 32767;
- if (n << 16 >> 16 != 0 ? (y = b[s >> 1] | 0, y << 16 >> 16 > 15565) : 0) y = Ed(d, y, x) | 0; else y = 0;
- if (f >>> 0 < 2) {
- B = b[s >> 1] | 0;
- b[s >> 1] = B << 16 >> 16 > 13926 ? 13926 : B;
- if (y << 16 >> 16) b[v >> 1] = 15565;
- } else {
- if (y << 16 >> 16) {
- b[v >> 1] = 15565;
- b[s >> 1] = 15565;
- }
- if ((f | 0) == 7) {
- A = nd(7, b[v >> 1] | 0, s, 0, 0, w, x) | 0;
- B = c[u >> 2] | 0;
- c[u >> 2] = B + 2;
- b[B >> 1] = A;
- }
- }
- q = b[s >> 1] | 0;
- y = 0;
- while (1) {
- A = Z(b[p >> 1] | 0, q) | 0;
- b[o >> 1] = (e[m >> 1] | 0) - (A >>> 14);
- A = (Z(b[k >> 1] | 0, q) | 0) >>> 14;
- B = l + (y << 1) | 0;
- b[B >> 1] = (e[B >> 1] | 0) - A;
- y = y + 1 | 0;
- if ((y | 0) == 40) break; else {
- k = k + 2 | 0;
- m = m + 2 | 0;
- o = o + 2 | 0;
- p = p + 2 | 0;
- }
- }
- i = z;
- return
- }
- function ac(a, b) {
- a = a | 0;
- b = b | 0;
- var d = 0, e = 0, f = 0, g = 0;
- g = i;
- i = i + 16 | 0;
- f = g;
- if (!a) {
- a = -1;
- i = g;
- return a | 0
- }
- c[a >> 2] = 0;
- d = Je(2532) | 0;
- c[f >> 2] = d;
- if (!d) {
- a = -1;
- i = g;
- return a | 0
- }
- Yd(d + 2392 | 0);
- c[d + 2188 >> 2] = 0;
- c[(c[f >> 2] | 0) + 2192 >> 2] = 0;
- c[(c[f >> 2] | 0) + 2196 >> 2] = 0;
- c[(c[f >> 2] | 0) + 2200 >> 2] = 0;
- c[(c[f >> 2] | 0) + 2204 >> 2] = 0;
- c[(c[f >> 2] | 0) + 2208 >> 2] = 0;
- c[(c[f >> 2] | 0) + 2212 >> 2] = 0;
- c[(c[f >> 2] | 0) + 2220 >> 2] = 0;
- e = c[f >> 2] | 0;
- c[e + 2216 >> 2] = b;
- c[e + 2528 >> 2] = 0;
- d = e;
- if ((((((((Yb(e + 2196 | 0) | 0) << 16 >> 16 == 0 ? (ie(e + 2192 | 0) | 0) << 16 >> 16 == 0 : 0) ? (yc(e + 2200 | 0) | 0) << 16 >> 16 == 0 : 0) ? (_c(e + 2204 | 0) | 0) << 16 >> 16 == 0 : 0) ? (Ad(e + 2208 | 0) | 0) << 16 >> 16 == 0 : 0) ? (Gd(e + 2212 | 0) | 0) << 16 >> 16 == 0 : 0) ? (jc(e + 2220 | 0, c[e + 2432 >> 2] | 0) | 0) << 16 >> 16 == 0 : 0) ? (Pc(e + 2188 | 0) | 0) << 16 >> 16 == 0 : 0) {
- cc(e) | 0;
- c[a >> 2] = d;
- a = 0;
- i = g;
- return a | 0
- }
- bc(f);
- a = -1;
- i = g;
- return a | 0
- }
- function bc(a) {
- a = a | 0;
- var b = 0;
- if (!a) return;
- b = c[a >> 2] | 0;
- if (!b) return;
- Qc(b + 2188 | 0);
- ke((c[a >> 2] | 0) + 2192 | 0);
- zc((c[a >> 2] | 0) + 2200 | 0);
- Zb((c[a >> 2] | 0) + 2196 | 0);
- ad((c[a >> 2] | 0) + 2204 | 0);
- Cd((c[a >> 2] | 0) + 2208 | 0);
- Id((c[a >> 2] | 0) + 2212 | 0);
- lc((c[a >> 2] | 0) + 2220 | 0);
- Ke(c[a >> 2] | 0);
- c[a >> 2] = 0;
- return
- }
- function cc(a) {
- a = a | 0;
- var d = 0, e = 0, f = 0, g = 0;
- if (!a) {
- g = -1;
- return g | 0
- }
- c[a + 652 >> 2] = a + 320;
- c[a + 640 >> 2] = a + 240;
- c[a + 644 >> 2] = a + 160;
- c[a + 648 >> 2] = a + 80;
- c[a + 1264 >> 2] = a + 942;
- c[a + 1912 >> 2] = a + 1590;
- f = a + 1938 | 0;
- c[a + 2020 >> 2] = f;
- c[a + 2384 >> 2] = a + 2304;
- d = a + 2028 | 0;
- c[a + 2024 >> 2] = a + 2108;
- c[a + 2528 >> 2] = 0;
- Qe(a | 0, 0, 640) | 0;
- Qe(a + 1282 | 0, 0, 308) | 0;
- Qe(a + 656 | 0, 0, 286) | 0;
- e = a + 2224 | 0;
- g = f + 80 | 0;
- do {
- b[f >> 1] = 0;
- f = f + 2 | 0;
- } while ((f | 0) < (g | 0));
- f = d;
- g = f + 80 | 0;
- do {
- b[f >> 1] = 0;
- f = f + 2 | 0;
- } while ((f | 0) < (g | 0));
- d = a + 1268 | 0;
- f = e;
- g = f + 80 | 0;
- do {
- b[f >> 1] = 0;
- f = f + 2 | 0;
- } while ((f | 0) < (g | 0));
- b[d >> 1] = 40;
- b[a + 1270 >> 1] = 40;
- b[a + 1272 >> 1] = 40;
- b[a + 1274 >> 1] = 40;
- b[a + 1276 >> 1] = 40;
- Rc(c[a + 2188 >> 2] | 0) | 0;
- je(c[a + 2192 >> 2] | 0) | 0;
- _b(c[a + 2196 >> 2] | 0) | 0;
- Ac(c[a + 2200 >> 2] | 0) | 0;
- $c(c[a + 2204 >> 2] | 0) | 0;
- Bd(c[a + 2208 >> 2] | 0) | 0;
- Hd(c[a + 2212 >> 2] | 0) | 0;
- kc(c[a + 2220 >> 2] | 0, c[a + 2432 >> 2] | 0) | 0;
- b[a + 2388 >> 1] = 0;
- g = 0;
- return g | 0
- }
- function dc(a, d, e, f, g, h) {
- a = a | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- var 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, 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;
- qa = i;
- i = i + 1184 | 0;
- T = qa;
- n = qa + 1096 | 0;
- o = qa + 1008 | 0;
- l = qa + 904 | 0;
- ka = qa + 928 | 0;
- la = qa + 824 | 0;
- X = qa + 744 | 0;
- na = qa + 664 | 0;
- oa = qa + 584 | 0;
- Z = qa + 328 | 0;
- ha = qa + 504 | 0;
- ia = qa + 424 | 0;
- ma = qa + 344 | 0;
- pa = qa + 248 | 0;
- Y = qa + 168 | 0;
- da = qa + 88 | 0;
- fa = qa + 68 | 0;
- ga = qa + 48 | 0;
- ea = qa + 28 | 0;
- ja = qa + 24 | 0;
- ba = qa + 22 | 0;
- $ = qa + 20 | 0;
- W = qa + 16 | 0;
- U = qa + 12 | 0;
- V = qa + 10 | 0;
- aa = qa + 8 | 0;
- _ = qa + 6 | 0;
- ca = qa + 4 | 0;
- c[T >> 2] = f;
- S = a + 2528 | 0;
- j = a + 652 | 0;
- Oe(c[j >> 2] | 0, e | 0, 320) | 0;
- c[g >> 2] = d;
- m = a + 2216 | 0;
- if (!(c[m >> 2] | 0)) {
- e = a + 2220 | 0;
- f = 0;
- } else {
- f = Nd(c[a + 2212 >> 2] | 0, c[j >> 2] | 0, S) | 0;
- R = a + 2220 | 0;
- e = R;
- f = oc(c[R >> 2] | 0, f, g, S) | 0;
- }
- R = a + 2392 | 0;
- Sc(c[a + 2188 >> 2] | 0, d, c[a + 644 >> 2] | 0, c[a + 648 >> 2] | 0, n, R, S);
- k = a + 2192 | 0;
- le(c[k >> 2] | 0, d, c[g >> 2] | 0, n, o, l, T, S);
- nc(c[e >> 2] | 0, l, c[j >> 2] | 0, S);
- if ((c[g >> 2] | 0) == 8) {
- mc(c[e >> 2] | 0, f, c[(c[k >> 2] | 0) + 40 >> 2] | 0, (c[a + 2200 >> 2] | 0) + 32 | 0, T, S);
- Qe(a + 1282 | 0, 0, 308) | 0;
- j = a + 2244 | 0;
- q = j + 20 | 0;
- do {
- b[j >> 1] = 0;
- j = j + 2 | 0;
- } while ((j | 0) < (q | 0));
- j = a + 2284 | 0;
- q = j + 20 | 0;
- do {
- b[j >> 1] = 0;
- j = j + 2 | 0;
- } while ((j | 0) < (q | 0));
- j = c[a + 2020 >> 2] | 0;
- q = j + 80 | 0;
- do {
- b[j >> 1] = 0;
- j = j + 2 | 0;
- } while ((j | 0) < (q | 0));
- j = a + 2028 | 0;
- q = j + 80 | 0;
- do {
- b[j >> 1] = 0;
- j = j + 2 | 0;
- } while ((j | 0) < (q | 0));
- je(c[k >> 2] | 0) | 0;
- j = c[k >> 2] | 0;
- e = l;
- q = j + 20 | 0;
- do {
- b[j >> 1] = b[e >> 1] | 0;
- j = j + 2 | 0;
- e = e + 2 | 0;
- } while ((j | 0) < (q | 0));
- j = (c[k >> 2] | 0) + 20 | 0;
- e = l;
- q = j + 20 | 0;
- do {
- b[j >> 1] = b[e >> 1] | 0;
- j = j + 2 | 0;
- e = e + 2 | 0;
- } while ((j | 0) < (q | 0));
- _b(c[a + 2196 >> 2] | 0) | 0;
- b[a + 2388 >> 1] = 0;
- Q = 0;
- } else Q = Dd(c[a + 2208 >> 2] | 0, c[k >> 2] | 0, S) | 0;
- N = a + 640 | 0;
- k = a + 2264 | 0;
- j = a + 1264 | 0;
- e = a + 2204 | 0;
- f = a + 2212 | 0;
- O = a + 1268 | 0;
- P = a + 1278 | 0;
- cd(d, 2842, 2862, 2882, n, 0, c[N >> 2] | 0, k, c[j >> 2] | 0, S);
- if (d >>> 0 > 1) {
- Tc(c[e >> 2] | 0, c[f >> 2] | 0, d, c[j >> 2] | 0, W, O, P, 0, c[m >> 2] | 0, S);
- cd(d, 2842, 2862, 2882, n, 80, c[N >> 2] | 0, k, c[j >> 2] | 0, S);
- Tc(c[e >> 2] | 0, c[f >> 2] | 0, d, (c[j >> 2] | 0) + 160 | 0, W + 2 | 0, O, P, 1, c[m >> 2] | 0, S);
- } else {
- cd(d, 2842, 2862, 2882, n, 80, c[N >> 2] | 0, k, c[j >> 2] | 0, S);
- Tc(c[e >> 2] | 0, c[f >> 2] | 0, d, c[j >> 2] | 0, W, O, P, 1, c[m >> 2] | 0, S);
- b[W + 2 >> 1] = b[W >> 1] | 0;
- }
- if (c[m >> 2] | 0) Md(c[f >> 2] | 0, W, S);
- if ((c[g >> 2] | 0) == 8) {
- oa = a + 656 | 0;
- pa = a + 976 | 0;
- Oe(oa | 0, pa | 0, 286) | 0;
- pa = a + 320 | 0;
- Oe(a | 0, pa | 0, 320) | 0;
- i = qa;
- return 0
- }
- z = a + 2224 | 0;
- A = a + 2244 | 0;
- B = a + 2284 | 0;
- C = a + 2388 | 0;
- D = a + 2020 | 0;
- E = a + 1916 | 0;
- F = a + 1912 | 0;
- G = a + 2024 | 0;
- H = a + 2384 | 0;
- I = a + 2196 | 0;
- J = a + 2208 | 0;
- K = a + 2464 | 0;
- L = a + 2200 | 0;
- M = a + 2224 | 0;
- w = a + 2244 | 0;
- x = a + 1270 | 0;
- y = a + 1280 | 0;
- v = 0;
- m = 0;
- l = 0;
- s = 0;
- t = 0;
- k = 0;
- u = -1;
- while (1) {
- p = u;
- u = u + 1 << 16 >> 16;
- s = 1 - (s << 16 >> 16) | 0;
- f = s & 65535;
- r = (s & 65535 | 0) != 0;
- e = c[g >> 2] | 0;
- j = (e | 0) == 0;
- do if (r) if (j) {
- j = fa;
- e = z;
- q = j + 20 | 0;
- do {
- b[j >> 1] = b[e >> 1] | 0;
- j = j + 2 | 0;
- e = e + 2 | 0;
- } while ((j | 0) < (q | 0));
- j = ga;
- e = A;
- q = j + 20 | 0;
- do {
- b[j >> 1] = b[e >> 1] | 0;
- j = j + 2 | 0;
- e = e + 2 | 0;
- } while ((j | 0) < (q | 0));
- j = ea;
- e = B;
- q = j + 20 | 0;
- do {
- b[j >> 1] = b[e >> 1] | 0;
- j = j + 2 | 0;
- e = e + 2 | 0;
- } while ((j | 0) < (q | 0));
- b[ja >> 1] = b[C >> 1] | 0;
- d = (c[N >> 2] | 0) + (v << 1) | 0;
- j = 20;
- break
- } else {
- d = (c[N >> 2] | 0) + (v << 1) | 0;
- j = 19;
- break
- } else {
- d = (c[N >> 2] | 0) + (v << 1) | 0;
- if (j) j = 20; else j = 19;
- } while (0);
- if ((j | 0) == 19) yd(e, 2842, 2862, 2882, n, o, d, B, w, c[D >> 2] | 0, E, (c[F >> 2] | 0) + (v << 1) | 0, c[G >> 2] | 0, ka, ha, c[H >> 2] | 0); else if ((j | 0) == 20 ? (yd(0, 2842, 2862, 2882, n, o, d, B, ga, c[D >> 2] | 0, E, (c[F >> 2] | 0) + (v << 1) | 0, c[G >> 2] | 0, ka, ha, c[H >> 2] | 0), r) : 0) {
- j = da;
- e = c[G >> 2] | 0;
- q = j + 80 | 0;
- do {
- b[j >> 1] = b[e >> 1] | 0;
- j = j + 2 | 0;
- e = e + 2 | 0;
- } while ((j | 0) < (q | 0))
- }
- j = ia;
- e = ha;
- q = j + 80 | 0;
- do {
- b[j >> 1] = b[e >> 1] | 0;
- j = j + 2 | 0;
- e = e + 2 | 0;
- } while ((j | 0) < (q | 0));
- $b(c[I >> 2] | 0, c[J >> 2] | 0, c[g >> 2] | 0, t, W, c[G >> 2] | 0, (c[F >> 2] | 0) + (v << 1) | 0, ia, ka, Q, la, na, U, V, aa, Z, T, ca, c[K >> 2] | 0, S);
- switch (p << 16 >> 16) {
- case -1: {
- if ((b[P >> 1] | 0) > 0) b[x >> 1] = b[U >> 1] | 0;
- break
- }
- case 2: {
- if ((b[y >> 1] | 0) > 0) b[O >> 1] = b[U >> 1] | 0;
- break
- }
- default:
- }
- Xb(la, c[G >> 2] | 0, b[U >> 1] | 0, b[C >> 1] | 0, b[aa >> 1] | 0, ia, X, oa, T, c[g >> 2] | 0, u, R, S);
- Bc(c[L >> 2] | 0, c[g >> 2] | 0, ha, (c[F >> 2] | 0) + (v << 1) | 0, X, ka, la, na, oa, Z, f, b[ca >> 1] | 0, ba, $, aa, _, T, R, S);
- Fd(c[J >> 2] | 0, b[aa >> 1] | 0, S);
- d = c[g >> 2] | 0;
- do if (!d) if (r) {
- j = ma;
- e = ka;
- q = j + 80 | 0;
- do {
- b[j >> 1] = b[e >> 1] | 0;
- j = j + 2 | 0;
- e = e + 2 | 0;
- } while ((j | 0) < (q | 0));
- j = pa;
- e = oa;
- q = j + 80 | 0;
- do {
- b[j >> 1] = b[e >> 1] | 0;
- j = j + 2 | 0;
- e = e + 2 | 0;
- } while ((j | 0) < (q | 0));
- j = Y;
- e = X;
- q = j + 80 | 0;
- do {
- b[j >> 1] = b[e >> 1] | 0;
- j = j + 2 | 0;
- e = e + 2 | 0;
- } while ((j | 0) < (q | 0));
- l = b[U >> 1] | 0;
- m = b[V >> 1] | 0;
- zd(c[N >> 2] | 0, 0, t, b[aa >> 1] | 0, b[_ >> 1] | 0, o, h, ka, X, na, oa, fa, B, ga, c[F >> 2] | 0, C, S);
- b[C >> 1] = b[ja >> 1] | 0;
- k = t;
- break
- } else {
- j = B;
- e = ea;
- q = j + 20 | 0;
- do {
- b[j >> 1] = b[e >> 1] | 0;
- j = j + 2 | 0;
- e = e + 2 | 0;
- } while ((j | 0) < (q | 0));
- r = k << 16 >> 16;
- se((c[F >> 2] | 0) + (r << 1) | 0, l, m, 40, 1, S);
- ec((c[F >> 2] | 0) + (r << 1) | 0, da, na, 40);
- zd(c[N >> 2] | 0, c[g >> 2] | 0, k, b[ba >> 1] | 0, b[$ >> 1] | 0, o + -22 | 0, h, ma, Y, na, pa, M, B, w, c[F >> 2] | 0, ja, S);
- yd(c[g >> 2] | 0, 2842, 2862, 2882, n, o, (c[N >> 2] | 0) + (v << 1) | 0, B, w, c[D >> 2] | 0, E, (c[F >> 2] | 0) + (v << 1) | 0, c[G >> 2] | 0, ka, ha, c[H >> 2] | 0);
- se((c[F >> 2] | 0) + (v << 1) | 0, b[U >> 1] | 0, b[V >> 1] | 0, 40, 1, S);
- ec((c[F >> 2] | 0) + (v << 1) | 0, c[G >> 2] | 0, na, 40);
- zd(c[N >> 2] | 0, c[g >> 2] | 0, t, b[aa >> 1] | 0, b[_ >> 1] | 0, o, h, ka, X, na, oa, M, B, w, c[F >> 2] | 0, C, S);
- break
- } else zd(c[N >> 2] | 0, d, t, b[aa >> 1] | 0, b[_ >> 1] | 0, o, h, ka, X, na, oa, M, B, w, c[F >> 2] | 0, C, S); while (0);
- d = v + 40 | 0;
- t = d & 65535;
- if (t << 16 >> 16 >= 160) break; else {
- v = d << 16 >> 16;
- n = n + 22 | 0;
- o = o + 22 | 0;
- }
- }
- Oe(a + 1282 | 0, a + 1602 | 0, 308) | 0;
- oa = a + 656 | 0;
- pa = a + 976 | 0;
- Oe(oa | 0, pa | 0, 286) | 0;
- pa = a + 320 | 0;
- Oe(a | 0, pa | 0, 320) | 0;
- i = qa;
- return 0
- }
- function ec(a, c, d, e) {
- a = a | 0;
- c = c | 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;
- o = e << 16 >> 16;
- if (e << 16 >> 16 > 1) n = 1; else return;
- while (1) {
- f = b[a >> 1] | 0;
- i = c + (n + -1 << 1) | 0;
- e = Z(b[c + (n << 1) >> 1] | 0, f) | 0;
- k = b[i >> 1] | 0;
- f = Z(k << 16 >> 16, f) | 0;
- h = (n + 131071 | 0) >>> 1;
- j = h & 65535;
- g = b[a + 2 >> 1] | 0;
- if (!(j << 16 >> 16)) {
- c = i;
- h = k;
- } else {
- l = (h << 1) + 131070 & 131070;
- m = n - l | 0;
- h = a;
- do {
- q = (Z(k << 16 >> 16, g) | 0) + e | 0;
- p = h;
- h = h + 4 | 0;
- e = b[i + -2 >> 1] | 0;
- g = (Z(e, g) | 0) + f | 0;
- f = b[h >> 1] | 0;
- i = i + -4 | 0;
- e = q + (Z(f, e) | 0) | 0;
- k = b[i >> 1] | 0;
- f = g + (Z(k << 16 >> 16, f) | 0) | 0;
- j = j + -1 << 16 >> 16;
- g = b[p + 6 >> 1] | 0;
- } while (j << 16 >> 16 != 0);
- h = c + (m + -3 << 1) | 0;
- a = a + (l + 2 << 1) | 0;
- c = h;
- h = b[h >> 1] | 0;
- }
- e = (Z(h << 16 >> 16, g) | 0) + e | 0;
- b[d >> 1] = f >>> 12;
- b[d + 2 >> 1] = e >>> 12;
- e = (n << 16) + 131072 >> 16;
- if ((e | 0) < (o | 0)) {
- d = d + 4 | 0;
- a = a + (1 - n << 1) | 0;
- n = e;
- } else break
- }
- return
- }
- function fc(a, c, d, e) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- e = e | 0;
- var f = 0, g = 0, h = 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;
- z = i;
- i = i + 80 | 0;
- y = z;
- h = 20;
- g = a;
- f = 1;
- while (1) {
- x = b[g >> 1] | 0;
- x = (Z(x, x) | 0) + f | 0;
- f = b[g + 2 >> 1] | 0;
- f = x + (Z(f, f) | 0) | 0;
- h = h + -1 << 16 >> 16;
- if (!(h << 16 >> 16)) break; else g = g + 4 | 0;
- }
- f = f << 1;
- if ((f | 0) < 0) {
- g = 20;
- f = a;
- e = y;
- while (1) {
- b[e >> 1] = (b[f >> 1] | 0) >>> 1;
- b[e + 2 >> 1] = (b[f + 2 >> 1] | 0) >>> 1;
- g = g + -1 << 16 >> 16;
- if (!(g << 16 >> 16)) {
- x = y;
- break
- } else {
- f = f + 4 | 0;
- e = e + 4 | 0;
- }
- }
- } else {
- f = ce(f >> 1, e) | 0;
- if ((f | 0) < 16777215) f = ((f >> 9) * 32440 | 0) >>> 15 << 16 >> 16; else f = 32440;
- h = 20;
- g = a;
- e = y;
- while (1) {
- b[e >> 1] = ((Z(b[g >> 1] | 0, f) | 0) + 32 | 0) >>> 6;
- b[e + 2 >> 1] = ((Z(b[g + 2 >> 1] | 0, f) | 0) + 32 | 0) >>> 6;
- h = h + -1 << 16 >> 16;
- if (!(h << 16 >> 16)) {
- x = y;
- break
- } else {
- g = g + 4 | 0;
- e = e + 4 | 0;
- }
- }
- }
- h = 20;
- g = x;
- e = d + 3198 | 0;
- f = 0;
- while (1) {
- w = b[g >> 1] | 0;
- w = (Z(w, w) | 0) + f | 0;
- b[e >> 1] = (w + 16384 | 0) >>> 15;
- v = b[g + 2 >> 1] | 0;
- f = (Z(v, v) | 0) + w | 0;
- b[e + -82 >> 1] = (f + 16384 | 0) >>> 15;
- h = h + -1 << 16 >> 16;
- if (!(h << 16 >> 16)) break; else {
- g = g + 4 | 0;
- e = e + -164 | 0;
- }
- }
- w = c + 78 | 0;
- v = 1;
- while (1) {
- f = 39 - v | 0;
- a = d + 3120 + (f << 1) | 0;
- e = d + (f * 80 | 0) + 78 | 0;
- f = c + (f << 1) | 0;
- k = y + (v << 1) | 0;
- g = 65575 - v | 0;
- j = g & 65535;
- h = b[x >> 1] | 0;
- if (!(j << 16 >> 16)) {
- j = w;
- g = 0;
- } else {
- r = g + 65535 & 65535;
- t = r * 41 | 0;
- u = (Z(v, -40) | 0) - t | 0;
- s = 0 - v | 0;
- t = s - t | 0;
- s = s - r | 0;
- q = v + r | 0;
- p = b[k >> 1] | 0;
- n = x;
- o = w;
- l = d + ((38 - v | 0) * 80 | 0) + 78 | 0;
- g = 0;
- m = 0;
- while (1) {
- k = k + 2 | 0;
- g = (Z(p << 16 >> 16, h) | 0) + g | 0;
- n = n + 2 | 0;
- p = b[k >> 1] | 0;
- m = (Z(p << 16 >> 16, h) | 0) + m | 0;
- B = f;
- f = f + -2 | 0;
- h = b[f >> 1] | 0;
- A = b[o >> 1] << 1;
- B = (Z((Z(A, b[B >> 1] | 0) | 0) >> 16, (g << 1) + 32768 >> 16) | 0) >>> 15 & 65535;
- b[e >> 1] = B;
- b[a >> 1] = B;
- h = (Z((Z(A, h) | 0) >> 16, (m << 1) + 32768 >> 16) | 0) >>> 15 & 65535;
- b[a + -2 >> 1] = h;
- b[l >> 1] = h;
- j = j + -1 << 16 >> 16;
- h = b[n >> 1] | 0;
- if (!(j << 16 >> 16)) break; else {
- o = o + -2 | 0;
- a = a + -82 | 0;
- e = e + -82 | 0;
- l = l + -82 | 0;
- }
- }
- k = y + (q + 1 << 1) | 0;
- j = c + (38 - r << 1) | 0;
- f = c + (s + 38 << 1) | 0;
- a = d + 3040 + (t + 38 << 1) | 0;
- e = d + 3040 + (u + 38 << 1) | 0;
- }
- B = (Z(b[k >> 1] | 0, h) | 0) + g | 0;
- B = (Z((B << 1) + 32768 >> 16, (Z(b[j >> 1] << 1, b[f >> 1] | 0) | 0) >> 16) | 0) >>> 15 & 65535;
- b[a >> 1] = B;
- b[e >> 1] = B;
- e = (v << 16) + 131072 | 0;
- if ((e | 0) < 2621440) v = e >> 16; else break
- }
- i = z;
- return
- }
- function gc(a, d, e, f, g, h, j) {
- a = a | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- var k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0;
- r = i;
- i = i + 160 | 0;
- q = r;
- if (g << 16 >> 16 > 0) {
- o = h & 65535;
- p = 0;
- k = 5;
- do {
- if ((p | 0) < 40) {
- n = p;
- m = p & 65535;
- h = 0;
- while (1) {
- if (m << 16 >> 16 < 40) {
- m = m << 16 >> 16;
- l = 0;
- do {
- l = (Z(b[a + (m - n << 1) >> 1] | 0, b[d + (m << 1) >> 1] | 0) | 0) + l | 0;
- m = m + 1 | 0;
- } while ((m & 65535) << 16 >> 16 != 40)
- } else l = 0;
- l = l << 1;
- c[q + (n << 2) >> 2] = l;
- l = Gc(l) | 0;
- h = (l | 0) > (h | 0) ? l : h;
- l = n + o | 0;
- m = l & 65535;
- if (m << 16 >> 16 >= 40) break; else n = l << 16 >> 16;
- }
- } else h = 0;
- k = (h >> 1) + k | 0;
- p = p + 1 | 0;
- } while ((p & 65535) << 16 >> 16 != g << 16 >> 16)
- } else k = 5;
- f = ((pe(k) | 0) & 65535) - (f & 65535) | 0;
- h = f << 16 >> 16;
- l = 0 - h << 16;
- k = (l | 0) < 2031616;
- l = l >> 16;
- if ((f & 65535) << 16 >> 16 > 0) if (k) {
- k = 0;
- do {
- f = c[q + (k << 2) >> 2] | 0;
- d = f << h;
- b[e + (k << 1) >> 1] = Ce((d >> h | 0) == (f | 0) ? d : f >> 31 ^ 2147483647, j) | 0;
- k = k + 1 | 0;
- } while ((k | 0) != 40);
- i = r;
- return
- } else {
- k = 0;
- do {
- f = c[q + (k << 2) >> 2] | 0;
- d = f << h;
- b[e + (k << 1) >> 1] = Ce((d >> h | 0) == (f | 0) ? d : f >> 31 ^ 2147483647, j) | 0;
- k = k + 1 | 0;
- } while ((k | 0) != 40);
- i = r;
- return
- } else if (k) {
- k = 0;
- do {
- b[e + (k << 1) >> 1] = Ce(c[q + (k << 2) >> 2] >> l, j) | 0;
- k = k + 1 | 0;
- } while ((k | 0) != 40);
- i = r;
- return
- } else {
- k = 0;
- do {
- b[e + (k << 1) >> 1] = Ce(0, j) | 0;
- k = k + 1 | 0;
- } while ((k | 0) != 40);
- i = r;
- return
- }
- }
- function hc(a, d, e, f, g) {
- a = a | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- g = g | 0;
- var h = 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;
- z = i;
- i = i + 160 | 0;
- y = z;
- v = a + 2 | 0;
- w = b[a >> 1] | 0;
- x = 0;
- g = 5;
- do {
- u = x;
- k = 0;
- while (1) {
- n = d + (u << 1) | 0;
- t = 40 - u | 0;
- h = (t + 131071 | 0) >>> 1 & 65535;
- l = d + (u + 1 << 1) | 0;
- j = Z(b[n >> 1] << 1, w) | 0;
- if (!(h << 16 >> 16)) h = v; else {
- s = 131111 - u + 131070 & 131070;
- r = u + s | 0;
- q = v;
- p = a;
- o = n;
- while (1) {
- m = o + 4 | 0;
- n = p + 4 | 0;
- j = (Z(b[l >> 1] << 1, b[q >> 1] | 0) | 0) + j | 0;
- h = h + -1 << 16 >> 16;
- j = (Z(b[m >> 1] << 1, b[n >> 1] | 0) | 0) + j | 0;
- if (!(h << 16 >> 16)) break; else {
- l = o + 6 | 0;
- q = p + 6 | 0;
- p = n;
- o = m;
- }
- }
- l = d + (r + 3 << 1) | 0;
- h = a + (s + 3 << 1) | 0;
- }
- if (!(t & 1)) j = (Z(b[l >> 1] << 1, b[h >> 1] | 0) | 0) + j | 0;
- c[y + (u << 2) >> 2] = j;
- j = (j | 0) < 0 ? 0 - j | 0 : j;
- k = (j | 0) > (k | 0) ? j : k;
- j = u + 5 | 0;
- if ((j & 65535) << 16 >> 16 < 40) u = j << 16 >> 16; else break
- }
- g = (k >> 1) + g | 0;
- x = x + 1 | 0;
- } while ((x | 0) != 5);
- f = ((pe(g) | 0) & 65535) - (f & 65535) | 0;
- j = f << 16 >> 16;
- g = 0 - j << 16;
- k = g >> 16;
- if ((f & 65535) << 16 >> 16 > 0) {
- h = 20;
- g = y;
- while (1) {
- y = c[g >> 2] | 0;
- f = y << j;
- b[e >> 1] = (((f >> j | 0) == (y | 0) ? f : y >> 31 ^ 2147483647) + 32768 | 0) >>> 16;
- y = c[g + 4 >> 2] | 0;
- f = y << j;
- b[e + 2 >> 1] = (((f >> j | 0) == (y | 0) ? f : y >> 31 ^ 2147483647) + 32768 | 0) >>> 16;
- h = h + -1 << 16 >> 16;
- if (!(h << 16 >> 16)) break; else {
- e = e + 4 | 0;
- g = g + 8 | 0;
- }
- }
- i = z;
- return
- }
- if ((g | 0) < 2031616) {
- h = 20;
- g = y;
- while (1) {
- b[e >> 1] = ((c[g >> 2] >> k) + 32768 | 0) >>> 16;
- b[e + 2 >> 1] = ((c[g + 4 >> 2] >> k) + 32768 | 0) >>> 16;
- h = h + -1 << 16 >> 16;
- if (!(h << 16 >> 16)) break; else {
- e = e + 4 | 0;
- g = g + 8 | 0;
- }
- }
- i = z;
- return
- } else {
- b[e >> 1] = 0;
- y = e + 4 | 0;
- b[e + 2 >> 1] = 0;
- b[y >> 1] = 0;
- f = y + 4 | 0;
- b[y + 2 >> 1] = 0;
- b[f >> 1] = 0;
- y = f + 4 | 0;
- b[f + 2 >> 1] = 0;
- b[y >> 1] = 0;
- f = y + 4 | 0;
- b[y + 2 >> 1] = 0;
- b[f >> 1] = 0;
- y = f + 4 | 0;
- b[f + 2 >> 1] = 0;
- b[y >> 1] = 0;
- f = y + 4 | 0;
- b[y + 2 >> 1] = 0;
- b[f >> 1] = 0;
- y = f + 4 | 0;
- b[f + 2 >> 1] = 0;
- b[y >> 1] = 0;
- f = y + 4 | 0;
- b[y + 2 >> 1] = 0;
- b[f >> 1] = 0;
- y = f + 4 | 0;
- b[f + 2 >> 1] = 0;
- b[y >> 1] = 0;
- f = y + 4 | 0;
- b[y + 2 >> 1] = 0;
- b[f >> 1] = 0;
- y = f + 4 | 0;
- b[f + 2 >> 1] = 0;
- b[y >> 1] = 0;
- f = y + 4 | 0;
- b[y + 2 >> 1] = 0;
- b[f >> 1] = 0;
- y = f + 4 | 0;
- b[f + 2 >> 1] = 0;
- b[y >> 1] = 0;
- f = y + 4 | 0;
- b[y + 2 >> 1] = 0;
- b[f >> 1] = 0;
- y = f + 4 | 0;
- b[f + 2 >> 1] = 0;
- b[y >> 1] = 0;
- f = y + 4 | 0;
- b[y + 2 >> 1] = 0;
- b[f >> 1] = 0;
- y = f + 4 | 0;
- b[f + 2 >> 1] = 0;
- b[y >> 1] = 0;
- f = y + 4 | 0;
- b[y + 2 >> 1] = 0;
- b[f >> 1] = 0;
- y = f + 4 | 0;
- b[f + 2 >> 1] = 0;
- b[y >> 1] = 0;
- b[y + 2 >> 1] = 0;
- i = z;
- return
- }
- }
- function ic(a, b, d, e) {
- a = a | 0;
- b = b | 0;
- d = d | 0;
- e = e | 0;
- var f = 0, g = 0, h = 0;
- h = (Td(16383, b) | 0) << 16 >> 16;
- b = Z(h, b << 16 >> 16) | 0;
- if ((b | 0) == 1073741824) {
- c[e >> 2] = 1;
- f = 2147483647;
- } else f = b << 1;
- g = (Z(h, d << 16 >> 16) | 0) >> 15;
- b = f + (g << 1) | 0;
- if ((f ^ g | 0) > 0 & (b ^ f | 0) < 0) {
- c[e >> 2] = 1;
- b = (f >>> 31) + 2147483647 | 0;
- }
- f = 2147483647 - b | 0;
- d = f >> 16;
- b = Z(d, h) | 0;
- if ((b | 0) == 1073741824) {
- c[e >> 2] = 1;
- g = 2147483647;
- } else g = b << 1;
- h = (Z((f >>> 1) - (d << 15) << 16 >> 16, h) | 0) >> 15;
- b = g + (h << 1) | 0;
- if ((g ^ h | 0) > 0 & (b ^ g | 0) < 0) {
- c[e >> 2] = 1;
- b = (g >>> 31) + 2147483647 | 0;
- }
- g = b >> 16;
- h = a >> 16;
- d = Z(g, h) | 0;
- d = (d | 0) == 1073741824 ? 2147483647 : d << 1;
- f = (Z((b >>> 1) - (g << 15) << 16 >> 16, h) | 0) >> 15;
- e = (f << 1) + d | 0;
- e = (f ^ d | 0) > 0 & (e ^ d | 0) < 0 ? (d >>> 31) + 2147483647 | 0 : e;
- h = (Z(g, (a >>> 1) - (h << 15) << 16 >> 16) | 0) >> 15;
- a = e + (h << 1) | 0;
- a = (e ^ h | 0) > 0 & (a ^ e | 0) < 0 ? (e >>> 31) + 2147483647 | 0 : a;
- e = a << 2;
- return ((e >> 2 | 0) == (a | 0) ? e : a >> 31 ^ 2147483647) | 0
- }
- function jc(a, d) {
- a = a | 0;
- d = d | 0;
- var e = 0, f = 0, g = 0, h = 0;
- if (!a) {
- h = -1;
- return h | 0
- }
- c[a >> 2] = 0;
- e = Je(192) | 0;
- if (!e) {
- h = -1;
- return h | 0
- }
- f = e + 176 | 0;
- b[f >> 1] = 0;
- b[f + 2 >> 1] = 0;
- b[f + 4 >> 1] = 0;
- b[f + 6 >> 1] = 0;
- b[f + 8 >> 1] = 0;
- b[f + 10 >> 1] = 0;
- f = e;
- g = d;
- h = f + 20 | 0;
- do {
- b[f >> 1] = b[g >> 1] | 0;
- f = f + 2 | 0;
- g = g + 2 | 0;
- } while ((f | 0) < (h | 0));
- f = e + 20 | 0;
- g = d;
- h = f + 20 | 0;
- do {
- b[f >> 1] = b[g >> 1] | 0;
- f = f + 2 | 0;
- g = g + 2 | 0;
- } while ((f | 0) < (h | 0));
- f = e + 40 | 0;
- g = d;
- h = f + 20 | 0;
- do {
- b[f >> 1] = b[g >> 1] | 0;
- f = f + 2 | 0;
- g = g + 2 | 0;
- } while ((f | 0) < (h | 0));
- f = e + 60 | 0;
- g = d;
- h = f + 20 | 0;
- do {
- b[f >> 1] = b[g >> 1] | 0;
- f = f + 2 | 0;
- g = g + 2 | 0;
- } while ((f | 0) < (h | 0));
- f = e + 80 | 0;
- g = d;
- h = f + 20 | 0;
- do {
- b[f >> 1] = b[g >> 1] | 0;
- f = f + 2 | 0;
- g = g + 2 | 0;
- } while ((f | 0) < (h | 0));
- f = e + 100 | 0;
- g = d;
- h = f + 20 | 0;
- do {
- b[f >> 1] = b[g >> 1] | 0;
- f = f + 2 | 0;
- g = g + 2 | 0;
- } while ((f | 0) < (h | 0));
- f = e + 120 | 0;
- g = d;
- h = f + 20 | 0;
- do {
- b[f >> 1] = b[g >> 1] | 0;
- f = f + 2 | 0;
- g = g + 2 | 0;
- } while ((f | 0) < (h | 0));
- f = e + 140 | 0;
- g = d;
- h = f + 20 | 0;
- do {
- b[f >> 1] = b[g >> 1] | 0;
- f = f + 2 | 0;
- g = g + 2 | 0;
- } while ((f | 0) < (h | 0));
- f = e + 160 | 0;
- h = f + 20 | 0;
- do {
- b[f >> 1] = 0;
- f = f + 2 | 0;
- } while ((f | 0) < (h | 0));
- b[e + 188 >> 1] = 7;
- b[e + 190 >> 1] = 32767;
- c[a >> 2] = e;
- h = 0;
- return h | 0
- }
- function kc(a, c) {
- a = a | 0;
- c = c | 0;
- var d = 0, e = 0, f = 0;
- if (!a) {
- f = -1;
- return f | 0
- }
- d = a + 176 | 0;
- b[d >> 1] = 0;
- b[d + 2 >> 1] = 0;
- b[d + 4 >> 1] = 0;
- b[d + 6 >> 1] = 0;
- b[d + 8 >> 1] = 0;
- b[d + 10 >> 1] = 0;
- d = a;
- e = c;
- f = d + 20 | 0;
- do {
- b[d >> 1] = b[e >> 1] | 0;
- d = d + 2 | 0;
- e = e + 2 | 0;
- } while ((d | 0) < (f | 0));
- d = a + 20 | 0;
- e = c;
- f = d + 20 | 0;
- do {
- b[d >> 1] = b[e >> 1] | 0;
- d = d + 2 | 0;
- e = e + 2 | 0;
- } while ((d | 0) < (f | 0));
- d = a + 40 | 0;
- e = c;
- f = d + 20 | 0;
- do {
- b[d >> 1] = b[e >> 1] | 0;
- d = d + 2 | 0;
- e = e + 2 | 0;
- } while ((d | 0) < (f | 0));
- d = a + 60 | 0;
- e = c;
- f = d + 20 | 0;
- do {
- b[d >> 1] = b[e >> 1] | 0;
- d = d + 2 | 0;
- e = e + 2 | 0;
- } while ((d | 0) < (f | 0));
- d = a + 80 | 0;
- e = c;
- f = d + 20 | 0;
- do {
- b[d >> 1] = b[e >> 1] | 0;
- d = d + 2 | 0;
- e = e + 2 | 0;
- } while ((d | 0) < (f | 0));
- d = a + 100 | 0;
- e = c;
- f = d + 20 | 0;
- do {
- b[d >> 1] = b[e >> 1] | 0;
- d = d + 2 | 0;
- e = e + 2 | 0;
- } while ((d | 0) < (f | 0));
- d = a + 120 | 0;
- e = c;
- f = d + 20 | 0;
- do {
- b[d >> 1] = b[e >> 1] | 0;
- d = d + 2 | 0;
- e = e + 2 | 0;
- } while ((d | 0) < (f | 0));
- d = a + 140 | 0;
- e = c;
- f = d + 20 | 0;
- do {
- b[d >> 1] = b[e >> 1] | 0;
- d = d + 2 | 0;
- e = e + 2 | 0;
- } while ((d | 0) < (f | 0));
- d = a + 160 | 0;
- f = d + 20 | 0;
- do {
- b[d >> 1] = 0;
- d = d + 2 | 0;
- } while ((d | 0) < (f | 0));
- b[a + 188 >> 1] = 7;
- b[a + 190 >> 1] = 32767;
- f = 1;
- return f | 0
- }
- function lc(a) {
- a = a | 0;
- var b = 0;
- if (!a) return;
- b = c[a >> 2] | 0;
- if (!b) return;
- Ke(b);
- c[a >> 2] = 0;
- return
- }
- function mc(a, d, e, f, g, h) {
- a = a | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- var 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;
- C = i;
- i = i + 112 | 0;
- z = C + 80 | 0;
- A = C + 60 | 0;
- B = C + 40 | 0;
- y = C;
- if (d << 16 >> 16 == 0 ? (j = a + 178 | 0, (b[j >> 1] | 0) != 0) : 0) {
- B = a + 180 | 0;
- h = a + 182 | 0;
- e = j;
- B = b[B >> 1] | 0;
- f = c[g >> 2] | 0;
- A = f + 2 | 0;
- b[f >> 1] = B;
- h = b[h >> 1] | 0;
- B = f + 4 | 0;
- b[A >> 1] = h;
- A = a + 184 | 0;
- A = b[A >> 1] | 0;
- h = f + 6 | 0;
- b[B >> 1] = A;
- B = a + 186 | 0;
- B = b[B >> 1] | 0;
- a = f + 8 | 0;
- b[h >> 1] = B;
- e = b[e >> 1] | 0;
- f = f + 10 | 0;
- c[g >> 2] = f;
- b[a >> 1] = e;
- i = C;
- return
- }
- s = y + 36 | 0;
- t = y + 32 | 0;
- u = y + 28 | 0;
- v = y + 24 | 0;
- w = y + 20 | 0;
- x = y + 16 | 0;
- p = y + 12 | 0;
- q = y + 8 | 0;
- r = y + 4 | 0;
- d = y;
- j = d + 40 | 0;
- do {
- c[d >> 2] = 0;
- d = d + 4 | 0;
- } while ((d | 0) < (j | 0));
- o = 7;
- d = 0;
- while (1) {
- n = b[a + 160 + (o << 1) >> 1] | 0;
- j = n << 16 >> 16;
- if (n << 16 >> 16 < 0) j = ~((j ^ -4) >> 2); else j = j >>> 2;
- d = Rd(d, j & 65535, h) | 0;
- l = o * 10 | 0;
- n = 9;
- while (1) {
- m = y + (n << 2) | 0;
- k = c[m >> 2] | 0;
- D = b[a + (n + l << 1) >> 1] | 0;
- j = D + k | 0;
- if ((D ^ k | 0) > -1 & (j ^ k | 0) < 0) {
- c[h >> 2] = 1;
- j = (k >>> 31) + 2147483647 | 0;
- }
- c[m >> 2] = j;
- if ((n | 0) > 0) n = n + -1 | 0; else break
- }
- if ((o | 0) > 0) o = o + -1 | 0; else break
- }
- j = d << 16 >> 16;
- if (d << 16 >> 16 < 0) j = ~((j ^ -2) >> 1); else j = j >>> 1;
- b[A + 18 >> 1] = (c[s >> 2] | 0) >>> 3;
- b[A + 16 >> 1] = (c[t >> 2] | 0) >>> 3;
- b[A + 14 >> 1] = (c[u >> 2] | 0) >>> 3;
- b[A + 12 >> 1] = (c[v >> 2] | 0) >>> 3;
- b[A + 10 >> 1] = (c[w >> 2] | 0) >>> 3;
- b[A + 8 >> 1] = (c[x >> 2] | 0) >>> 3;
- b[A + 6 >> 1] = (c[p >> 2] | 0) >>> 3;
- b[A + 4 >> 1] = (c[q >> 2] | 0) >>> 3;
- b[A + 2 >> 1] = (c[r >> 2] | 0) >>> 3;
- b[A >> 1] = (c[y >> 2] | 0) >>> 3;
- d = a + 178 | 0;
- j = (((j << 16) + 167772160 | 0) >>> 16) + 128 | 0;
- b[d >> 1] = j;
- j = j << 16;
- if ((j | 0) < 0) j = ~((j >> 16 ^ -256) >> 8); else j = j >> 24;
- b[d >> 1] = j;
- if ((j | 0) <= 63) {
- if ((j | 0) < 0) {
- b[d >> 1] = 0;
- j = 0;
- }
- } else {
- b[d >> 1] = 63;
- j = 63;
- }
- D = Ge(j << 8 & 65535, 11560, h) | 0;
- D = D << 16 >> 16 > 0 ? 0 : D << 16 >> 16 < -14436 ? -14436 : D;
- b[f >> 1] = D;
- b[f + 2 >> 1] = D;
- b[f + 4 >> 1] = D;
- b[f + 6 >> 1] = D;
- D = ((D << 16 >> 16) * 5443 | 0) >>> 15 & 65535;
- b[f + 8 >> 1] = D;
- b[f + 10 >> 1] = D;
- b[f + 12 >> 1] = D;
- b[f + 14 >> 1] = D;
- ne(A, z, 10, h);
- Ae(z, 205, 10, h);
- me(z, A, 10, h);
- f = a + 182 | 0;
- D = a + 180 | 0;
- te(e, 8, A, B, f, D, h);
- h = f;
- f = d;
- D = b[D >> 1] | 0;
- e = c[g >> 2] | 0;
- B = e + 2 | 0;
- b[e >> 1] = D;
- h = b[h >> 1] | 0;
- D = e + 4 | 0;
- b[B >> 1] = h;
- B = a + 184 | 0;
- B = b[B >> 1] | 0;
- h = e + 6 | 0;
- b[D >> 1] = B;
- a = a + 186 | 0;
- a = b[a >> 1] | 0;
- D = e + 8 | 0;
- b[h >> 1] = a;
- a = b[f >> 1] | 0;
- e = e + 10 | 0;
- c[g >> 2] = e;
- b[D >> 1] = a;
- i = C;
- return
- }
- function nc(a, d, f, g) {
- a = a | 0;
- d = d | 0;
- f = f | 0;
- g = g | 0;
- var h = 0, j = 0, k = 0, l = 0, m = 0, n = 0;
- n = i;
- i = i + 16 | 0;
- k = n + 2 | 0;
- m = n;
- l = a + 176 | 0;
- j = (e[l >> 1] | 0) + 1 | 0;
- j = (j & 65535 | 0) == 8 ? 0 : j & 65535;
- b[l >> 1] = j;
- j = a + ((j << 16 >> 16) * 10 << 1) | 0;
- h = j + 20 | 0;
- do {
- b[j >> 1] = b[d >> 1] | 0;
- j = j + 2 | 0;
- d = d + 2 | 0;
- } while ((j | 0) < (h | 0));
- d = 0;
- h = 160;
- while (1) {
- j = b[f >> 1] | 0;
- d = (Z(j << 1, j) | 0) + d | 0;
- if ((d | 0) < 0) {
- d = 2147483647;
- break
- }
- h = h + -1 << 16 >> 16;
- if (!(h << 16 >> 16)) break; else f = f + 2 | 0;
- }
- de(d, k, m, g);
- d = b[k >> 1] | 0;
- k = d << 16 >> 16;
- f = k << 10;
- if ((f | 0) != (k << 26 >> 16 | 0)) {
- c[g >> 2] = 1;
- f = d << 16 >> 16 > 0 ? 32767 : -32768;
- }
- b[a + 160 + (b[l >> 1] << 1) >> 1] = (((b[m >> 1] | 0) >>> 5) + f << 16) + -558432256 >> 17;
- i = n;
- return
- }
- function oc(a, d, e, f) {
- a = a | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- var g = 0, h = 0, i = 0;
- h = a + 190 | 0;
- i = Rd(b[h >> 1] | 0, 1, f) | 0;
- b[h >> 1] = i;
- g = a + 188 | 0;
- do if (!(d << 16 >> 16)) {
- a = b[g >> 1] | 0;
- if (!(a << 16 >> 16)) {
- b[h >> 1] = 0;
- c[e >> 2] = 8;
- a = 1;
- break
- }
- h = (a & 65535) + 65535 & 65535;
- b[g >> 1] = h;
- if ((Rd(i, h, f) | 0) << 16 >> 16 < 30) {
- c[e >> 2] = 8;
- a = 0;
- } else a = 0;
- } else {
- b[g >> 1] = 7;
- a = 0;
- } while (0);
- return a | 0
- }
- function pc(a, b, c, d, e, f, g, h) {
- a = a | 0;
- b = b | 0;
- c = c | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- if (!(f << 16 >> 16)) {
- f = a << 16 >> 16;
- if (((f << 16) + -5570560 | 0) < 65536) {
- b = (f * 3 | 0) + -58 + (b << 16 >> 16) | 0;
- b = b & 65535;
- return b | 0
- } else {
- b = f + 112 | 0;
- b = b & 65535;
- return b | 0
- }
- }
- if (!(g << 16 >> 16)) {
- h = (a & 65535) - (d & 65535) << 16;
- b = (b << 16 >> 16) + 2 + (h >> 15) + (h >> 16) | 0;
- b = b & 65535;
- return b | 0
- }
- d = d << 16 >> 16;
- d = (((c & 65535) - d << 16) + -327680 | 0) > 0 ? d + 5 & 65535 : c;
- e = e << 16 >> 16;
- c = a << 16 >> 16;
- d = (((e - (d & 65535) << 16) + -262144 | 0) > 0 ? e + 65532 & 65535 : d) << 16 >> 16;
- e = d * 196608 | 0;
- a = e + -393216 >> 16;
- f = ((b & 65535) << 16) + (c * 196608 | 0) >> 16;
- if (!(a - f & 32768)) {
- b = c + 5 - d | 0;
- b = b & 65535;
- return b | 0
- }
- if ((e + 196608 >> 16 | 0) > (f | 0)) {
- b = f + 3 - a | 0;
- b = b & 65535;
- return b | 0
- } else {
- b = c + 11 - d | 0;
- b = b & 65535;
- return b | 0
- }
- return 0
- }
- function qc(a, b, c, d, e) {
- a = a | 0;
- b = b | 0;
- c = c | 0;
- d = d | 0;
- e = e | 0;
- e = a << 16 >> 16;
- do if (!(d << 16 >> 16)) if (a << 16 >> 16 < 95) {
- e = ((e * 393216 | 0) + -6881280 >> 16) + (b << 16 >> 16) | 0;
- break
- } else {
- e = e + 368 | 0;
- break
- } else e = ((((e - (c & 65535) | 0) * 393216 | 0) + 196608 | 0) >>> 16) + (b & 65535) | 0; while (0);
- return e & 65535 | 0
- }
- function rc(d, f, g, h) {
- d = d | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- var i = 0, j = 0, k = 0, l = 0, m = 0, n = 0;
- i = c[h + 96 >> 2] | 0;
- if (d >>> 0 < 8) {
- m = (c[h + 100 >> 2] | 0) + (d << 2) | 0;
- l = c[m >> 2] | 0;
- a[g >> 0] = b[f + (b[l >> 1] << 1) >> 1] << 4 | d | b[f + (b[l + 2 >> 1] << 1) >> 1] << 5 | b[f + (b[l + 4 >> 1] << 1) >> 1] << 6 | b[f + (b[l + 6 >> 1] << 1) >> 1] << 7;
- l = i + (d << 1) | 0;
- h = b[l >> 1] | 0;
- if ((h + -7 | 0) > 4) {
- i = 4;
- k = 4;
- d = 1;
- while (1) {
- n = b[f + (b[(c[m >> 2] | 0) + (i << 1) >> 1] << 1) >> 1] | 0;
- h = g + (d << 16 >> 16) | 0;
- a[h >> 0] = n;
- n = e[f + (b[(c[m >> 2] | 0) + ((k | 1) << 16 >> 16 << 1) >> 1] << 1) >> 1] << 1 | n & 65535;
- a[h >> 0] = n;
- n = e[f + (b[(c[m >> 2] | 0) + ((k | 2) << 16 >> 16 << 1) >> 1] << 1) >> 1] << 2 | n;
- a[h >> 0] = n;
- n = e[f + (b[(c[m >> 2] | 0) + ((k | 3) << 16 >> 16 << 1) >> 1] << 1) >> 1] << 3 | n;
- a[h >> 0] = n;
- n = e[f + (b[(c[m >> 2] | 0) + (k + 4 << 16 >> 16 << 16 >> 16 << 1) >> 1] << 1) >> 1] << 4 | n;
- a[h >> 0] = n;
- n = e[f + (b[(c[m >> 2] | 0) + (k + 5 << 16 >> 16 << 16 >> 16 << 1) >> 1] << 1) >> 1] << 5 | n;
- a[h >> 0] = n;
- n = e[f + (b[(c[m >> 2] | 0) + (k + 6 << 16 >> 16 << 16 >> 16 << 1) >> 1] << 1) >> 1] << 6 | n;
- a[h >> 0] = n;
- j = k + 8 << 16 >> 16;
- d = d + 1 << 16 >> 16;
- a[h >> 0] = e[f + (b[(c[m >> 2] | 0) + (k + 7 << 16 >> 16 << 16 >> 16 << 1) >> 1] << 1) >> 1] << 7 | n;
- i = j << 16 >> 16;
- h = b[l >> 1] | 0;
- if ((i | 0) >= (h + -7 | 0)) break; else k = j;
- }
- } else {
- j = 4;
- d = 1;
- }
- l = h + 4 & 7;
- if (!l) return;
- i = g + (d << 16 >> 16) | 0;
- a[i >> 0] = 0;
- h = 0;
- k = 0;
- d = 0;
- while (1) {
- k = (e[f + (b[(c[m >> 2] | 0) + (j << 16 >> 16 << 1) >> 1] << 1) >> 1] & 255) << h | k & 255;
- a[i >> 0] = k;
- d = d + 1 << 16 >> 16;
- h = d << 16 >> 16;
- if ((h | 0) >= (l | 0)) break; else j = j + 1 << 16 >> 16;
- }
- return
- }
- if ((d | 0) == 15) {
- a[g >> 0] = 15;
- return
- }
- a[g >> 0] = b[f >> 1] << 4 | d | b[f + 2 >> 1] << 5 | b[f + 4 >> 1] << 6 | b[f + 6 >> 1] << 7;
- h = i + (d << 1) | 0;
- d = b[h >> 1] | 0;
- i = ((d & 65535) << 16) + 262144 >> 16;
- m = i & -8;
- k = (m + 524281 | 0) >>> 3 & 65535;
- if (k << 16 >> 16 > 0) {
- i = ((i & -8) + 524281 | 0) >>> 3;
- l = ((i << 3) + 524280 & 524280) + 12 | 0;
- j = 1;
- d = f + 8 | 0;
- while (1) {
- a[g + (j << 16 >> 16) >> 0] = e[d + 2 >> 1] << 1 | e[d >> 1] | e[d + 4 >> 1] << 2 | e[d + 6 >> 1] << 3 | e[d + 8 >> 1] << 4 | e[d + 10 >> 1] << 5 | e[d + 12 >> 1] << 6 | e[d + 14 >> 1] << 7;
- if (k << 16 >> 16 > 1) {
- k = k + -1 << 16 >> 16;
- j = j + 1 << 16 >> 16;
- d = d + 16 | 0;
- } else break
- }
- d = b[h >> 1] | 0;
- j = (i << 16) + 65536 >> 16;
- } else {
- l = 4;
- j = 1;
- }
- d = (0 - m | 4) + (d & 65535) << 16;
- k = d >> 16;
- if (!k) return;
- j = g + j | 0;
- a[j >> 0] = 0;
- if ((d | 0) > 0) {
- d = 0;
- i = 0;
- h = 0;
- } else return;
- do {
- i = i & 255 | b[f + (l + d << 1) >> 1] << d;
- a[j >> 0] = i;
- h = h + 1 << 16 >> 16;
- d = h << 16 >> 16;
- } while ((d | 0) < (k | 0));
- return
- }
- function sc(d, f, g, h) {
- d = d | 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;
- o = c[h + 100 >> 2] | 0;
- n = c[h + 96 >> 2] | 0;
- a[g >> 0] = d & 15;
- n = n + (d << 1) | 0;
- i = b[n >> 1] | 0;
- if (d >>> 0 >= 8) {
- l = ((i & 65535) << 16) + -458752 | 0;
- if ((l | 0) > 0) {
- m = 1;
- k = f;
- while (1) {
- f = k + 16 | 0;
- h = m + 1 << 16 >> 16;
- a[g + (m << 16 >> 16) >> 0] = e[k + 14 >> 1] | e[k + 12 >> 1] << 1 | ((e[k + 2 >> 1] << 6 | e[k >> 1] << 7 | e[k + 4 >> 1] << 5 | e[k + 6 >> 1] << 4) & 240 | e[k + 8 >> 1] << 3 | e[k + 10 >> 1] << 2) & 252;
- l = l + -524288 & -65536;
- if ((l | 0) <= 0) break; else {
- m = h;
- k = f;
- }
- }
- i = b[n >> 1] | 0;
- } else h = 1;
- m = i & 7;
- i = g + (h << 16 >> 16) | 0;
- a[i >> 0] = 0;
- if (!m) return; else {
- j = 0;
- k = 0;
- l = 0;
- h = f;
- }
- while (1) {
- k = k & 255 | b[h >> 1] << 7 - j;
- a[i >> 0] = k;
- l = l + 1 << 16 >> 16;
- j = l << 16 >> 16;
- if ((j | 0) >= (m | 0)) break; else h = h + 2 | 0;
- }
- return
- }
- k = i << 16 >> 16;
- if (i << 16 >> 16 > 7) {
- i = o + (d << 2) | 0;
- h = 0;
- m = 0;
- j = 1;
- while (1) {
- p = e[f + (b[(c[i >> 2] | 0) + (h << 1) >> 1] << 1) >> 1] << 7;
- k = g + (j << 16 >> 16) | 0;
- a[k >> 0] = p;
- p = e[f + (b[(c[i >> 2] | 0) + ((m | 1) << 16 >> 16 << 1) >> 1] << 1) >> 1] << 6 | p;
- a[k >> 0] = p;
- p = e[f + (b[(c[i >> 2] | 0) + ((m | 2) << 16 >> 16 << 1) >> 1] << 1) >> 1] << 5 | p;
- a[k >> 0] = p;
- p = e[f + (b[(c[i >> 2] | 0) + ((m | 3) << 16 >> 16 << 1) >> 1] << 1) >> 1] << 4 | p;
- a[k >> 0] = p;
- p = e[f + (b[(c[i >> 2] | 0) + ((m | 4) << 16 >> 16 << 1) >> 1] << 1) >> 1] << 3 | p & 240;
- a[k >> 0] = p;
- p = e[f + (b[(c[i >> 2] | 0) + ((m | 5) << 16 >> 16 << 1) >> 1] << 1) >> 1] << 2 | p;
- a[k >> 0] = p;
- p = e[f + (b[(c[i >> 2] | 0) + ((m | 6) << 16 >> 16 << 1) >> 1] << 1) >> 1] << 1 | p;
- a[k >> 0] = p;
- l = m + 8 << 16 >> 16;
- j = j + 1 << 16 >> 16;
- a[k >> 0] = p & 254 | e[f + (b[(c[i >> 2] | 0) + ((m | 7) << 16 >> 16 << 1) >> 1] << 1) >> 1];
- h = l << 16 >> 16;
- k = b[n >> 1] | 0;
- if ((h | 0) >= (k + -7 | 0)) break; else m = l;
- }
- } else {
- l = 0;
- j = 1;
- }
- n = k & 7;
- m = g + (j << 16 >> 16) | 0;
- a[m >> 0] = 0;
- if (!n) return;
- j = o + (d << 2) | 0;
- i = 0;
- h = 0;
- k = 0;
- while (1) {
- h = (e[f + (b[(c[j >> 2] | 0) + (l << 16 >> 16 << 1) >> 1] << 1) >> 1] & 255) << 7 - i | h & 255;
- a[m >> 0] = h;
- k = k + 1 << 16 >> 16;
- i = k << 16 >> 16;
- if ((i | 0) >= (n | 0)) break; else l = l + 1 << 16 >> 16;
- }
- return
- }
- function tc(d, f, g, h) {
- d = d | 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;
- o = c[h + 100 >> 2] | 0;
- n = c[h + 96 >> 2] | 0;
- a[g >> 0] = d << 3;
- n = n + (d << 1) | 0;
- i = b[n >> 1] | 0;
- if (d >>> 0 >= 8) {
- l = ((i & 65535) << 16) + -458752 | 0;
- if ((l | 0) > 0) {
- m = 1;
- k = f;
- while (1) {
- f = k + 16 | 0;
- h = m + 1 << 16 >> 16;
- a[g + (m << 16 >> 16) >> 0] = e[k + 14 >> 1] | e[k + 12 >> 1] << 1 | ((e[k + 2 >> 1] << 6 | e[k >> 1] << 7 | e[k + 4 >> 1] << 5 | e[k + 6 >> 1] << 4) & 240 | e[k + 8 >> 1] << 3 | e[k + 10 >> 1] << 2) & 252;
- l = l + -524288 & -65536;
- if ((l | 0) <= 0) break; else {
- m = h;
- k = f;
- }
- }
- i = b[n >> 1] | 0;
- } else h = 1;
- m = i & 7;
- i = g + (h << 16 >> 16) | 0;
- a[i >> 0] = 0;
- if (!m) return; else {
- j = 0;
- k = 0;
- l = 0;
- h = f;
- }
- while (1) {
- k = k & 255 | b[h >> 1] << 7 - j;
- a[i >> 0] = k;
- l = l + 1 << 16 >> 16;
- j = l << 16 >> 16;
- if ((j | 0) >= (m | 0)) break; else h = h + 2 | 0;
- }
- return
- }
- k = i << 16 >> 16;
- if (i << 16 >> 16 > 7) {
- i = o + (d << 2) | 0;
- h = 0;
- m = 0;
- j = 1;
- while (1) {
- p = e[f + (b[(c[i >> 2] | 0) + (h << 1) >> 1] << 1) >> 1] << 7;
- k = g + (j << 16 >> 16) | 0;
- a[k >> 0] = p;
- p = e[f + (b[(c[i >> 2] | 0) + ((m | 1) << 16 >> 16 << 1) >> 1] << 1) >> 1] << 6 | p;
- a[k >> 0] = p;
- p = e[f + (b[(c[i >> 2] | 0) + ((m | 2) << 16 >> 16 << 1) >> 1] << 1) >> 1] << 5 | p;
- a[k >> 0] = p;
- p = e[f + (b[(c[i >> 2] | 0) + ((m | 3) << 16 >> 16 << 1) >> 1] << 1) >> 1] << 4 | p;
- a[k >> 0] = p;
- p = e[f + (b[(c[i >> 2] | 0) + ((m | 4) << 16 >> 16 << 1) >> 1] << 1) >> 1] << 3 | p & 240;
- a[k >> 0] = p;
- p = e[f + (b[(c[i >> 2] | 0) + ((m | 5) << 16 >> 16 << 1) >> 1] << 1) >> 1] << 2 | p;
- a[k >> 0] = p;
- p = e[f + (b[(c[i >> 2] | 0) + ((m | 6) << 16 >> 16 << 1) >> 1] << 1) >> 1] << 1 | p;
- a[k >> 0] = p;
- l = m + 8 << 16 >> 16;
- j = j + 1 << 16 >> 16;
- a[k >> 0] = p & 254 | e[f + (b[(c[i >> 2] | 0) + ((m | 7) << 16 >> 16 << 1) >> 1] << 1) >> 1];
- h = l << 16 >> 16;
- k = b[n >> 1] | 0;
- if ((h | 0) >= (k + -7 | 0)) break; else m = l;
- }
- } else {
- l = 0;
- j = 1;
- }
- n = k & 7;
- m = g + (j << 16 >> 16) | 0;
- a[m >> 0] = 0;
- if (!n) return;
- j = o + (d << 2) | 0;
- i = 0;
- h = 0;
- k = 0;
- while (1) {
- h = (e[f + (b[(c[j >> 2] | 0) + (l << 16 >> 16 << 1) >> 1] << 1) >> 1] & 255) << 7 - i | h & 255;
- a[m >> 0] = h;
- k = k + 1 << 16 >> 16;
- i = k << 16 >> 16;
- if ((i | 0) >= (n | 0)) break; else l = l + 1 << 16 >> 16;
- }
- return
- }
- function uc(a) {
- a = a | 0;
- var d = 0;
- if (!a) {
- a = -1;
- return a | 0
- }
- c[a >> 2] = 0;
- d = Je(16) | 0;
- if (!d) {
- a = -1;
- return a | 0
- }
- b[d >> 1] = 0;
- b[d + 2 >> 1] = 0;
- b[d + 4 >> 1] = 0;
- b[d + 6 >> 1] = 0;
- b[d + 8 >> 1] = 0;
- b[d + 10 >> 1] = 0;
- b[d + 12 >> 1] = 0;
- b[d + 14 >> 1] = 0;
- c[a >> 2] = d;
- a = 0;
- return a | 0
- }
- function vc(a) {
- a = a | 0;
- if (!a) {
- a = -1;
- return a | 0
- }
- b[a >> 1] = 0;
- b[a + 2 >> 1] = 0;
- b[a + 4 >> 1] = 0;
- b[a + 6 >> 1] = 0;
- b[a + 8 >> 1] = 0;
- b[a + 10 >> 1] = 0;
- b[a + 12 >> 1] = 0;
- b[a + 14 >> 1] = 0;
- a = 0;
- return a | 0
- }
- function wc(a) {
- a = a | 0;
- var b = 0;
- if (!a) return;
- b = c[a >> 2] | 0;
- if (!b) return;
- Ke(b);
- c[a >> 2] = 0;
- return
- }
- function xc(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, l = 0;
- j = d << 16 >> 16 < 2722 ? 0 : d << 16 >> 16 < 5444 ? 1 : 2;
- i = Ee(e, 1, g) | 0;
- l = a + 4 | 0;
- if (!(e << 16 >> 16 > 200 ? i << 16 >> 16 > (b[l >> 1] | 0) : 0)) {
- i = b[a >> 1] | 0;
- if (i << 16 >> 16) {
- h = i + -1 << 16 >> 16;
- b[a >> 1] = h;
- h = h << 16 >> 16 != 0;
- k = 5;
- }
- } else {
- b[a >> 1] = 8;
- h = 1;
- k = 5;
- }
- if ((k | 0) == 5) if ((j & 65535) < 2 & h) j = (j & 65535) + 1 & 65535;
- k = a + 6 | 0;
- b[k >> 1] = d;
- h = Zd(k, 5) | 0;
- if (!(j << 16 >> 16 != 0 | h << 16 >> 16 > 5443)) if (h << 16 >> 16 < 0) h = 16384; else {
- h = h << 16 >> 16;
- h = (((h << 18 >> 18 | 0) == (h | 0) ? h << 2 : h >>> 15 ^ 32767) << 16 >> 16) * 24660 >> 15;
- if ((h | 0) > 32767) {
- c[g >> 2] = 1;
- h = 32767;
- }
- h = 16384 - h & 65535;
- } else h = 0;
- i = a + 2 | 0;
- if (!(b[i >> 1] | 0)) h = De(h, 1, g) | 0;
- b[f >> 1] = h;
- b[i >> 1] = h;
- b[l >> 1] = e;
- f = a + 12 | 0;
- b[a + 14 >> 1] = b[f >> 1] | 0;
- e = a + 10 | 0;
- b[f >> 1] = b[e >> 1] | 0;
- a = a + 8 | 0;
- b[e >> 1] = b[a >> 1] | 0;
- b[a >> 1] = b[k >> 1] | 0;
- return
- }
- function yc(a) {
- a = a | 0;
- var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0;
- if (!a) {
- a = -1;
- return a | 0
- }
- c[a >> 2] = 0;
- d = Je(68) | 0;
- f = d;
- if (!d) {
- a = -1;
- return a | 0
- }
- c[d + 28 >> 2] = 0;
- g = d + 64 | 0;
- c[g >> 2] = 0;
- h = d + 32 | 0;
- if (((Ud(h) | 0) << 16 >> 16 == 0 ? (i = d + 48 | 0, (Ud(i) | 0) << 16 >> 16 == 0) : 0) ? (uc(g) | 0) << 16 >> 16 == 0 : 0) {
- e = d + 32 | 0;
- do {
- b[d >> 1] = 0;
- d = d + 2 | 0;
- } while ((d | 0) < (e | 0));
- Ud(h) | 0;
- Ud(i) | 0;
- vc(c[g >> 2] | 0) | 0;
- c[a >> 2] = f;
- a = 0;
- return a | 0
- }
- wc(g);
- Ke(d);
- a = -1;
- return a | 0
- }
- function zc(a) {
- a = a | 0;
- var b = 0;
- if (!a) return;
- b = c[a >> 2] | 0;
- if (!b) return;
- wc(b + 64 | 0);
- Ke(c[a >> 2] | 0);
- c[a >> 2] = 0;
- return
- }
- function Ac(a) {
- a = a | 0;
- var d = 0, e = 0, f = 0;
- if (!a) {
- f = -1;
- return f | 0
- }
- d = a + 32 | 0;
- e = a;
- f = e + 32 | 0;
- do {
- b[e >> 1] = 0;
- e = e + 2 | 0;
- } while ((e | 0) < (f | 0));
- Ud(d) | 0;
- Ud(a + 48 | 0) | 0;
- vc(c[a + 64 >> 2] | 0) | 0;
- f = 0;
- return f | 0
- }
- function Bc(a, d, f, g, h, j, k, l, m, n, o, p, q, r, s, t, u, v, w) {
- a = a | 0;
- d = d | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- k = k | 0;
- l = l | 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;
- u = u | 0;
- v = v | 0;
- w = w | 0;
- var x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0;
- H = i;
- i = i + 48 | 0;
- y = H + 34 | 0;
- A = H + 32 | 0;
- C = H + 30 | 0;
- B = H + 28 | 0;
- z = H + 18 | 0;
- x = H + 8 | 0;
- D = H + 6 | 0;
- E = H + 4 | 0;
- F = H + 2 | 0;
- G = H;
- if (d) {
- o = a + 32 | 0;
- Vd(o, d, h, y, A, D, E, w);
- do if ((d | 0) != 7) {
- Vb(d, j, k, l, m, n, z, x, G, F, w);
- if ((d | 0) == 5) {
- ld(c[a + 64 >> 2] | 0, f, g, h, z, x, b[D >> 1] | 0, b[E >> 1] | 0, b[y >> 1] | 0, b[A >> 1] | 0, 40, b[G >> 1] | 0, b[F >> 1] | 0, p, s, t, C, B, u, v, w);
- break
- } else {
- a = od(d, b[y >> 1] | 0, b[A >> 1] | 0, z, x, p, s, t, C, B, v, w) | 0;
- j = c[u >> 2] | 0;
- c[u >> 2] = j + 2;
- b[j >> 1] = a;
- break
- }
- } else {
- b[t >> 1] = Cc(k, m, w) | 0;
- a = md(7, b[y >> 1] | 0, b[A >> 1] | 0, t, C, B, c[v + 68 >> 2] | 0, w) | 0;
- j = c[u >> 2] | 0;
- c[u >> 2] = j + 2;
- b[j >> 1] = a;
- } while (0);
- Wd(o, b[C >> 1] | 0, b[B >> 1] | 0);
- i = H;
- return
- }
- if (!(o << 16 >> 16)) {
- Vd(a + 48 | 0, 0, h, y, A, D, E, w);
- Vb(0, j, k, l, m, n, z, x, G, F, w);
- Wb(j, D, E, w);
- j = jd(a + 32 | 0, b[a >> 1] | 0, b[a + 2 >> 1] | 0, a + 8 | 0, a + 18 | 0, b[a + 4 >> 1] | 0, b[a + 6 >> 1] | 0, h, b[y >> 1] | 0, b[A >> 1] | 0, x, z, b[D >> 1] | 0, b[E >> 1] | 0, p, q, r, s, t, w) | 0;
- b[c[a + 28 >> 2] >> 1] = j;
- i = H;
- return
- }
- o = c[u >> 2] | 0;
- c[u >> 2] = o + 2;
- c[a + 28 >> 2] = o;
- o = a + 48 | 0;
- f = a + 32 | 0;
- q = f;
- q = e[q >> 1] | e[q + 2 >> 1] << 16;
- f = f + 4 | 0;
- f = e[f >> 1] | e[f + 2 >> 1] << 16;
- u = o;
- r = u;
- b[r >> 1] = q;
- b[r + 2 >> 1] = q >>> 16;
- u = u + 4 | 0;
- b[u >> 1] = f;
- b[u + 2 >> 1] = f >>> 16;
- u = a + 40 | 0;
- f = u;
- f = e[f >> 1] | e[f + 2 >> 1] << 16;
- u = u + 4 | 0;
- u = e[u >> 1] | e[u + 2 >> 1] << 16;
- r = a + 56 | 0;
- q = r;
- b[q >> 1] = f;
- b[q + 2 >> 1] = f >>> 16;
- r = r + 4 | 0;
- b[r >> 1] = u;
- b[r + 2 >> 1] = u >>> 16;
- r = a + 2 | 0;
- Vd(o, 0, h, a, r, D, E, w);
- Vb(0, j, k, l, m, n, a + 18 | 0, a + 8 | 0, G, F, w);
- l = (e[F >> 1] | 0) + 1 | 0;
- u = b[G >> 1] | 0;
- q = l << 16 >> 16;
- if ((l & 65535) << 16 >> 16 < 0) {
- v = 0 - q << 16;
- if ((v | 0) < 983040) v = u << 16 >> 16 >> (v >> 16) & 65535; else v = 0;
- } else {
- u = u << 16 >> 16;
- v = u << q;
- if ((v << 16 >> 16 >> q | 0) == (u | 0)) v = v & 65535; else v = (u >>> 15 ^ 32767) & 65535;
- }
- b[t >> 1] = v;
- Wb(j, a + 4 | 0, a + 6 | 0, w);
- id(o, b[a >> 1] | 0, b[r >> 1] | 0, b[F >> 1] | 0, b[G >> 1] | 0, w);
- i = H;
- return
- }
- function Cc(a, c, d) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- var e = 0, f = 0, g = 0;
- f = 10;
- d = a;
- e = c;
- a = 0;
- while (1) {
- a = (Z(b[e >> 1] >> 1, b[d >> 1] | 0) | 0) + a | 0;
- a = a + (Z(b[e + 2 >> 1] >> 1, b[d + 2 >> 1] | 0) | 0) | 0;
- a = a + (Z(b[e + 4 >> 1] >> 1, b[d + 4 >> 1] | 0) | 0) | 0;
- a = a + (Z(b[e + 6 >> 1] >> 1, b[d + 6 >> 1] | 0) | 0) | 0;
- f = f + -1 << 16 >> 16;
- if (!(f << 16 >> 16)) break; else {
- d = d + 8 | 0;
- e = e + 8 | 0;
- }
- }
- d = a << 1;
- f = pe(d | 1) | 0;
- g = f << 16 >> 16;
- d = (f << 16 >> 16 < 17 ? d >> 17 - g : d << g + -17) & 65535;
- if (d << 16 >> 16 < 1) {
- c = 0;
- return c | 0
- } else {
- f = 20;
- e = c;
- a = 0;
- }
- while (1) {
- c = b[e >> 1] >> 1;
- c = ((Z(c, c) | 0) >>> 2) + a | 0;
- a = b[e + 2 >> 1] >> 1;
- a = c + ((Z(a, a) | 0) >>> 2) | 0;
- f = f + -1 << 16 >> 16;
- if (!(f << 16 >> 16)) break; else e = e + 4 | 0;
- }
- a = a << 3;
- f = pe(a) | 0;
- c = f << 16 >> 16;
- d = Td(d, (f << 16 >> 16 < 16 ? a >> 16 - c : a << c + -16) & 65535) | 0;
- c = (g << 16) + 327680 - (c << 16) | 0;
- a = c >> 16;
- if ((c | 0) > 65536) a = d << 16 >> 16 >> a + -1; else a = d << 16 >> 16 << 1 - a;
- c = a & 65535;
- return c | 0
- }
- function Dc(a, d, e, f, g, h) {
- a = a | 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;
- c[h >> 2] = 0;
- m = g << 16 >> 16;
- k = m >>> 2 & 65535;
- o = k << 16 >> 16 == 0;
- if (o) j = 0; else {
- l = k;
- i = e;
- j = 0;
- while (1) {
- p = b[i >> 1] | 0;
- p = (Z(p, p) | 0) + j | 0;
- j = b[i + 2 >> 1] | 0;
- j = p + (Z(j, j) | 0) | 0;
- p = b[i + 4 >> 1] | 0;
- p = j + (Z(p, p) | 0) | 0;
- j = b[i + 6 >> 1] | 0;
- j = p + (Z(j, j) | 0) | 0;
- l = l + -1 << 16 >> 16;
- if (!(l << 16 >> 16)) break; else i = i + 8 | 0;
- }
- }
- if (!((j >>> 31 ^ 1) & (j | 0) < 1073741824)) {
- j = m >>> 1 & 65535;
- if (!(j << 16 >> 16)) j = 1; else {
- i = j;
- l = e;
- j = 0;
- while (1) {
- p = b[l >> 1] >> 2;
- p = (Z(p, p) | 0) + j | 0;
- j = b[l + 2 >> 1] >> 2;
- j = p + (Z(j, j) | 0) | 0;
- i = i + -1 << 16 >> 16;
- if (!(i << 16 >> 16)) break; else l = l + 4 | 0;
- }
- j = j << 1 | 1;
- }
- p = (pe(j) | 0) << 16 >> 16;
- n = p + 65532 & 65535;
- p = Ce(j << p, h) | 0;
- } else {
- m = j << 1 | 1;
- p = pe(m) | 0;
- n = p;
- p = Ce(m << (p << 16 >> 16), h) | 0;
- }
- c[h >> 2] = 0;
- do if (!(g << 16 >> 16)) {
- j = 1;
- q = 14;
- } else {
- m = g;
- l = d;
- j = e;
- g = 0;
- while (1) {
- r = Z(b[j >> 1] | 0, b[l >> 1] | 0) | 0;
- i = r + g | 0;
- if ((r ^ g | 0) > 0 & (i ^ g | 0) < 0) break;
- m = m + -1 << 16 >> 16;
- if (!(m << 16 >> 16)) {
- q = 13;
- break
- } else {
- l = l + 2 | 0;
- j = j + 2 | 0;
- g = i;
- }
- }
- if ((q | 0) == 13) {
- j = i << 1 | 1;
- q = 14;
- break
- }
- c[h >> 2] = 1;
- if (o) j = 1; else {
- j = d;
- i = 0;
- while (1) {
- i = (Z(b[e >> 1] >> 2, b[j >> 1] | 0) | 0) + i | 0;
- i = i + (Z(b[e + 2 >> 1] >> 2, b[j + 2 >> 1] | 0) | 0) | 0;
- i = i + (Z(b[e + 4 >> 1] >> 2, b[j + 4 >> 1] | 0) | 0) | 0;
- i = i + (Z(b[e + 6 >> 1] >> 2, b[j + 6 >> 1] | 0) | 0) | 0;
- k = k + -1 << 16 >> 16;
- if (!(k << 16 >> 16)) break; else {
- j = j + 8 | 0;
- e = e + 8 | 0;
- }
- }
- j = i << 1 | 1;
- }
- e = (pe(j) | 0) << 16 >> 16;
- i = e + 65532 & 65535;
- e = Ce(j << e, h) | 0;
- } while (0);
- if ((q | 0) == 14) {
- e = pe(j) | 0;
- i = e;
- e = Ce(j << (e << 16 >> 16), h) | 0;
- }
- b[f >> 1] = p;
- j = n << 16 >> 16;
- b[f + 2 >> 1] = 15 - j;
- b[f + 4 >> 1] = e;
- i = i << 16 >> 16;
- b[f + 6 >> 1] = 15 - i;
- if (e << 16 >> 16 < 4) {
- r = 0;
- return r | 0
- }
- i = De(Td(e << 16 >> 16 >>> 1 & 65535, p) | 0, i - j & 65535, h) | 0;
- i = i << 16 >> 16 > 19661 ? 19661 : i;
- if ((a | 0) != 7) {
- r = i;
- return r | 0
- }
- r = i & 65532;
- return r | 0
- }
- function Ec(a, d, e, f, g, h, i) {
- a = a | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- i = i | 0;
- var j = 0, k = 0, l = 0, m = 0, n = 0, o = 0;
- k = (f & 65535) + 65535 & 65535;
- if (k << 16 >> 16 > g << 16 >> 16) {
- n = f + -1 << 16 >> 16 << 16 >> 16;
- f = -2147483648;
- while (1) {
- l = c[a + (0 - n << 2) >> 2] | 0;
- j = l << 1;
- l = (j >> 1 | 0) == (l | 0) ? j : l >> 31 ^ 2147483647;
- j = c[a + (~n << 2) >> 2] | 0;
- m = l - j | 0;
- if (((m ^ l) & (l ^ j) | 0) < 0) {
- c[i >> 2] = 1;
- m = (l >>> 31) + 2147483647 | 0;
- }
- l = c[a + (1 - n << 2) >> 2] | 0;
- j = m - l | 0;
- if (((j ^ m) & (l ^ m) | 0) < 0) {
- c[i >> 2] = 1;
- j = (m >>> 31) + 2147483647 | 0;
- }
- m = Gc(j) | 0;
- f = (m | 0) < (f | 0) ? f : m;
- k = k + -1 << 16 >> 16;
- if (k << 16 >> 16 <= g << 16 >> 16) {
- g = f;
- break
- } else n = n + -1 | 0;
- }
- } else g = -2147483648;
- a = e << 16 >> 16 > 0;
- if (a) {
- f = 0;
- j = d;
- k = 0;
- while (1) {
- m = b[j >> 1] | 0;
- m = Z(m, m) | 0;
- if ((m | 0) != 1073741824) {
- l = (m << 1) + k | 0;
- if ((m ^ k | 0) > 0 & (l ^ k | 0) < 0) {
- c[i >> 2] = 1;
- k = (k >>> 31) + 2147483647 | 0;
- } else k = l;
- } else {
- c[i >> 2] = 1;
- k = 2147483647;
- }
- f = f + 1 << 16 >> 16;
- if (f << 16 >> 16 >= e << 16 >> 16) break; else j = j + 2 | 0;
- }
- if (a) {
- a = 0;
- n = d;
- f = d + -2 | 0;
- j = 0;
- while (1) {
- m = Z(b[f >> 1] | 0, b[n >> 1] | 0) | 0;
- if ((m | 0) != 1073741824) {
- l = (m << 1) + j | 0;
- if ((m ^ j | 0) > 0 & (l ^ j | 0) < 0) {
- c[i >> 2] = 1;
- j = (j >>> 31) + 2147483647 | 0;
- } else j = l;
- } else {
- c[i >> 2] = 1;
- j = 2147483647;
- }
- a = a + 1 << 16 >> 16;
- if (a << 16 >> 16 >= e << 16 >> 16) break; else {
- n = n + 2 | 0;
- f = f + 2 | 0;
- }
- }
- } else j = 0;
- } else {
- k = 0;
- j = 0;
- }
- f = k << 1;
- f = (f >> 1 | 0) == (k | 0) ? f : k >> 31 ^ 2147483647;
- e = j << 1;
- e = (e >> 1 | 0) == (j | 0) ? e : j >> 31 ^ 2147483647;
- k = f - e | 0;
- if (((k ^ f) & (e ^ f) | 0) < 0) {
- c[i >> 2] = 1;
- k = (f >>> 31) + 2147483647 | 0;
- }
- a = Gc(k) | 0;
- n = ((pe(g) | 0) & 65535) + 65535 | 0;
- k = n << 16 >> 16;
- if ((n & 65535) << 16 >> 16 > 0) {
- f = g << k;
- if ((f >> k | 0) != (g | 0)) f = g >> 31 ^ 2147483647;
- } else {
- k = 0 - k << 16;
- if ((k | 0) < 2031616) f = g >> (k >> 16); else f = 0;
- }
- m = pe(a) | 0;
- j = m << 16 >> 16;
- if (m << 16 >> 16 > 0) {
- k = a << j;
- if ((k >> j | 0) == (a | 0)) o = 33; else {
- k = a >> 31 ^ 2147483647;
- o = 33;
- }
- } else {
- k = 0 - j << 16;
- if ((k | 0) < 2031616) {
- k = a >> (k >> 16);
- o = 33;
- } else l = 0;
- }
- if ((o | 0) == 33) if (k >>> 0 > 65535) l = Td(f >>> 16 & 65535, k >>> 16 & 65535) | 0; else l = 0;
- k = m & 65535;
- o = (n & 65535) - k | 0;
- f = o & 65535;
- if (!(o & 32768)) {
- i = De(l, f, i) | 0;
- b[h >> 1] = i;
- return 0
- }
- if (f << 16 >> 16 != -32768) {
- i = k - n | 0;
- j = i << 16 >> 16;
- if ((i & 65535) << 16 >> 16 < 0) {
- j = 0 - j << 16;
- if ((j | 0) >= 983040) {
- i = 0;
- b[h >> 1] = i;
- return 0
- }
- i = l << 16 >> 16 >> (j >> 16) & 65535;
- b[h >> 1] = i;
- return 0
- }
- } else j = 32767;
- f = l << 16 >> 16;
- k = f << j;
- if ((k << 16 >> 16 >> j | 0) == (f | 0)) {
- i = k & 65535;
- b[h >> 1] = i;
- return 0
- }
- i = (f >>> 15 ^ 32767) & 65535;
- b[h >> 1] = i;
- return 0
- }
- function Fc(a, c, d, e) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- e = e | 0;
- if (d << 16 >> 16) c = c << 16 >> 16 << 1 & 65535;
- if (c << 16 >> 16 < 0) {
- a = a + -2 | 0;
- c = (c & 65535) + 6 & 65535;
- }
- d = c << 16 >> 16;
- e = 6 - d << 16 >> 16;
- c = (Z(b[3468 + (d << 1) >> 1] | 0, b[a >> 1] | 0) | 0) + 16384 | 0;
- c = c + (Z(b[3468 + (e << 1) >> 1] | 0, b[a + 2 >> 1] | 0) | 0) | 0;
- c = c + (Z(b[3468 + (d + 6 << 1) >> 1] | 0, b[a + -2 >> 1] | 0) | 0) | 0;
- c = c + (Z(b[3468 + (e + 6 << 1) >> 1] | 0, b[a + 4 >> 1] | 0) | 0) | 0;
- c = (Z(b[3468 + (d + 12 << 1) >> 1] | 0, b[a + -4 >> 1] | 0) | 0) + c | 0;
- c = c + (Z(b[3468 + (e + 12 << 1) >> 1] | 0, b[a + 6 >> 1] | 0) | 0) | 0;
- d = c + (Z(b[3468 + (d + 18 << 1) >> 1] | 0, b[a + -6 >> 1] | 0) | 0) | 0;
- return (d + (Z(b[3468 + (e + 18 << 1) >> 1] | 0, b[a + 8 >> 1] | 0) | 0) | 0) >>> 15 & 65535 | 0
- }
- function Gc(a) {
- a = a | 0;
- a = a - (a >>> 31) | 0;
- return a >> 31 ^ a | 0
- }
- function Hc(a, c, d, e) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- e = e | 0;
- var f = 0, g = 0, h = 0, i = 0, j = 0;
- if (!(a << 16 >> 16)) return; else {
- f = 3518;
- g = 3538;
- e = d;
- }
- while (1) {
- e = e + 2 | 0;
- c = c + 2 | 0;
- j = b[c >> 1] | 0;
- i = b[f >> 1] | 0;
- d = Z(i, j) | 0;
- d = (d | 0) == 1073741824 ? 2147483647 : d << 1;
- j = (Z(b[g >> 1] | 0, j) | 0) >> 15;
- h = (j << 1) + d | 0;
- h = (d ^ j | 0) > 0 & (h ^ d | 0) < 0 ? (d >>> 31) + 2147483647 | 0 : h;
- i = (Z(i, b[e >> 1] | 0) | 0) >> 15;
- d = h + (i << 1) | 0;
- d = (h ^ i | 0) > 0 & (d ^ h | 0) < 0 ? (h >>> 31) + 2147483647 | 0 : d;
- b[c >> 1] = d >>> 16;
- b[e >> 1] = (d >>> 1) - (d >> 16 << 15);
- a = a + -1 << 16 >> 16;
- if (!(a << 16 >> 16)) break; else {
- f = f + 2 | 0;
- g = g + 2 | 0;
- }
- }
- return
- }
- function Ic(a, b, d) {
- a = a | 0;
- b = b | 0;
- d = d | 0;
- var e = 0, f = 0;
- e = a & 65535;
- f = e << 16;
- b = b << 16 >> 16;
- a = (b << 1) + f | 0;
- if (!((b ^ f | 0) > 0 & (a ^ f | 0) < 0)) {
- f = a;
- return f | 0
- }
- c[d >> 2] = 1;
- f = (e >>> 15) + 2147483647 | 0;
- return f | 0
- }
- function Jc(a) {
- a = a | 0;
- var d = 0, e = 0, f = 0;
- if (!a) {
- f = -1;
- return f | 0
- }
- c[a >> 2] = 0;
- d = Je(22) | 0;
- if (!d) {
- f = -1;
- return f | 0
- }
- b[d >> 1] = 4096;
- e = d + 2 | 0;
- f = e + 20 | 0;
- do {
- b[e >> 1] = 0;
- e = e + 2 | 0;
- } while ((e | 0) < (f | 0));
- c[a >> 2] = d;
- f = 0;
- return f | 0
- }
- function Kc(a) {
- a = a | 0;
- var c = 0;
- if (!a) {
- c = -1;
- return c | 0
- }
- b[a >> 1] = 4096;
- a = a + 2 | 0;
- c = a + 20 | 0;
- do {
- b[a >> 1] = 0;
- a = a + 2 | 0;
- } while ((a | 0) < (c | 0));
- c = 0;
- return c | 0
- }
- function Lc(a) {
- a = a | 0;
- var b = 0;
- if (!a) return;
- b = c[a >> 2] | 0;
- if (!b) return;
- Ke(b);
- c[a >> 2] = 0;
- return
- }
- function Mc(a, c, d, f, g, h) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- var 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, J = 0, K = 0, L = 0, M = 0;
- K = i;
- i = i + 96 | 0;
- I = K + 66 | 0;
- J = K + 44 | 0;
- H = K + 22 | 0;
- k = K;
- D = c + 2 | 0;
- G = d + 2 | 0;
- F = (b[G >> 1] << 1) + (e[D >> 1] << 16) | 0;
- j = Gc(F) | 0;
- j = ic(j, b[c >> 1] | 0, b[d >> 1] | 0, h) | 0;
- if ((F | 0) > 0) j = Oc(j) | 0;
- B = j >> 16;
- b[g >> 1] = Ce(j, h) | 0;
- v = j >> 20;
- E = I + 2 | 0;
- b[E >> 1] = v;
- F = J + 2 | 0;
- b[F >> 1] = (j >>> 5) - (v << 15);
- v = Z(B, B) | 0;
- v = (v | 0) == 1073741824 ? 2147483647 : v << 1;
- B = (Z((j >>> 1) - (B << 15) << 16 >> 16, B) | 0) >> 15;
- C = B << 1;
- A = C + v | 0;
- A = (B ^ v | 0) > 0 & (A ^ v | 0) < 0 ? (v >>> 31) + 2147483647 | 0 : A;
- C = A + C | 0;
- C = 2147483647 - (Gc((A ^ B | 0) > 0 & (C ^ A | 0) < 0 ? (A >>> 31) + 2147483647 | 0 : C) | 0) | 0;
- A = C >> 16;
- B = b[c >> 1] | 0;
- v = Z(A, B) | 0;
- v = (v | 0) == 1073741824 ? 2147483647 : v << 1;
- B = (Z((C >>> 1) - (A << 15) << 16 >> 16, B) | 0) >> 15;
- C = (B << 1) + v | 0;
- C = (B ^ v | 0) > 0 & (C ^ v | 0) < 0 ? (v >>> 31) + 2147483647 | 0 : C;
- A = (Z(b[d >> 1] | 0, A) | 0) >> 15;
- v = C + (A << 1) | 0;
- v = (C ^ A | 0) > 0 & (v ^ C | 0) < 0 ? (C >>> 31) + 2147483647 | 0 : v;
- C = pe(v) | 0;
- v = v << (C << 16 >> 16);
- A = H + 2 | 0;
- B = k + 2 | 0;
- l = v;
- v = (v >>> 1) - (v >> 16 << 15) | 0;
- w = k + 4 | 0;
- x = H + 4 | 0;
- y = 2;
- z = 2;
- while (1) {
- u = l >>> 16;
- j = u & 65535;
- r = v & 65535;
- s = z + -1 | 0;
- n = I + (s << 1) | 0;
- t = J + (s << 1) | 0;
- q = 1;
- p = n;
- o = t;
- m = D;
- k = G;
- l = 0;
- while (1) {
- L = b[m >> 1] | 0;
- M = ((Z(b[o >> 1] | 0, L) | 0) >> 15) + l | 0;
- l = b[p >> 1] | 0;
- l = M + (Z(l, L) | 0) + ((Z(l, b[k >> 1] | 0) | 0) >> 15) | 0;
- q = q + 1 << 16 >> 16;
- if ((q << 16 >> 16 | 0) >= (z | 0)) break; else {
- p = p + -2 | 0;
- o = o + -2 | 0;
- m = m + 2 | 0;
- k = k + 2 | 0;
- }
- }
- M = (e[c + (z << 1) >> 1] << 16) + (l << 5) + (b[d + (z << 1) >> 1] << 1) | 0;
- l = ic(Gc(M) | 0, j, r, h) | 0;
- if ((M | 0) > 0) l = Oc(l) | 0;
- k = C << 16 >> 16;
- if (C << 16 >> 16 > 0) {
- j = l << k;
- if ((j >> k | 0) != (l | 0)) j = l >> 31 ^ 2147483647;
- } else {
- k = 0 - k << 16;
- if ((k | 0) < 2031616) j = l >> (k >> 16); else j = 0;
- }
- q = j >> 16;
- if ((z | 0) < 5) b[g + (s << 1) >> 1] = (j + 32768 | 0) >>> 16;
- M = (j >>> 16) - (j >>> 31) | 0;
- if (((M << 16 >> 31 ^ M) & 65535) << 16 >> 16 > 32750) {
- j = 16;
- break
- }
- o = (j >>> 1) - (q << 15) << 16 >> 16;
- p = 1;
- l = t;
- k = A;
- m = B;
- while (1) {
- L = (Z(b[l >> 1] | 0, q) | 0) >> 15;
- t = b[n >> 1] | 0;
- M = (Z(t, o) | 0) >> 15;
- t = Z(t, q) | 0;
- M = t + L + (b[J + (p << 1) >> 1] | 0) + (b[I + (p << 1) >> 1] << 15) + M | 0;
- b[k >> 1] = M >>> 15;
- b[m >> 1] = M & 32767;
- p = p + 1 | 0;
- if ((p & 65535) << 16 >> 16 == y << 16 >> 16) break; else {
- n = n + -2 | 0;
- l = l + -2 | 0;
- k = k + 2 | 0;
- m = m + 2 | 0;
- }
- }
- b[x >> 1] = j >> 20;
- b[w >> 1] = (j >>> 5) - (b[H + (z << 1) >> 1] << 15);
- L = Z(q, q) | 0;
- L = (L | 0) == 1073741824 ? 2147483647 : L << 1;
- j = (Z(o, q) | 0) >> 15;
- M = j << 1;
- k = M + L | 0;
- k = (j ^ L | 0) > 0 & (k ^ L | 0) < 0 ? (L >>> 31) + 2147483647 | 0 : k;
- M = k + M | 0;
- M = 2147483647 - (Gc((k ^ j | 0) > 0 & (M ^ k | 0) < 0 ? (k >>> 31) + 2147483647 | 0 : M) | 0) | 0;
- k = M >> 16;
- j = u << 16 >> 16;
- j = ((Z(k, v << 16 >> 16) | 0) >> 15) + (Z(k, j) | 0) + ((Z((M >>> 1) - (k << 15) << 16 >> 16, j) | 0) >> 15) << 1;
- k = (pe(j) | 0) << 16 >> 16;
- j = j << k;
- M = z << 1;
- Oe(E | 0, A | 0, M | 0) | 0;
- Oe(F | 0, B | 0, M | 0) | 0;
- z = z + 1 | 0;
- if ((z | 0) >= 11) {
- j = 20;
- break
- } else {
- C = k + (C & 65535) & 65535;
- l = j;
- v = (j >> 1) - (j >> 16 << 15) | 0;
- w = w + 2 | 0;
- x = x + 2 | 0;
- y = y + 1 << 16 >> 16;
- }
- }
- if ((j | 0) == 16) {
- j = f + 22 | 0;
- do {
- b[f >> 1] = b[a >> 1] | 0;
- f = f + 2 | 0;
- a = a + 2 | 0;
- } while ((f | 0) < (j | 0));
- M = g;
- L = M;
- b[L >> 1] = 0;
- b[L + 2 >> 1] = 0 >>> 16;
- M = M + 4 | 0;
- b[M >> 1] = 0;
- b[M + 2 >> 1] = 0 >>> 16;
- i = K;
- return 0
- } else if ((j | 0) == 20) {
- b[f >> 1] = 4096;
- M = ((b[F >> 1] | 0) + 8192 + (b[E >> 1] << 15) | 0) >>> 14 & 65535;
- b[f + 2 >> 1] = M;
- b[a + 2 >> 1] = M;
- M = ((b[J + 4 >> 1] | 0) + 8192 + (b[I + 4 >> 1] << 15) | 0) >>> 14 & 65535;
- b[f + 4 >> 1] = M;
- b[a + 4 >> 1] = M;
- M = ((b[J + 6 >> 1] | 0) + 8192 + (b[I + 6 >> 1] << 15) | 0) >>> 14 & 65535;
- b[f + 6 >> 1] = M;
- b[a + 6 >> 1] = M;
- M = ((b[J + 8 >> 1] | 0) + 8192 + (b[I + 8 >> 1] << 15) | 0) >>> 14 & 65535;
- b[f + 8 >> 1] = M;
- b[a + 8 >> 1] = M;
- M = ((b[J + 10 >> 1] | 0) + 8192 + (b[I + 10 >> 1] << 15) | 0) >>> 14 & 65535;
- b[f + 10 >> 1] = M;
- b[a + 10 >> 1] = M;
- M = ((b[J + 12 >> 1] | 0) + 8192 + (b[I + 12 >> 1] << 15) | 0) >>> 14 & 65535;
- b[f + 12 >> 1] = M;
- b[a + 12 >> 1] = M;
- M = ((b[J + 14 >> 1] | 0) + 8192 + (b[I + 14 >> 1] << 15) | 0) >>> 14 & 65535;
- b[f + 14 >> 1] = M;
- b[a + 14 >> 1] = M;
- M = ((b[J + 16 >> 1] | 0) + 8192 + (b[I + 16 >> 1] << 15) | 0) >>> 14 & 65535;
- b[f + 16 >> 1] = M;
- b[a + 16 >> 1] = M;
- M = ((b[J + 18 >> 1] | 0) + 8192 + (b[I + 18 >> 1] << 15) | 0) >>> 14 & 65535;
- b[f + 18 >> 1] = M;
- b[a + 18 >> 1] = M;
- M = ((b[J + 20 >> 1] | 0) + 8192 + (b[I + 20 >> 1] << 15) | 0) >>> 14 & 65535;
- b[f + 20 >> 1] = M;
- b[a + 20 >> 1] = M;
- i = K;
- return 0
- }
- return 0
- }
- function Nc(a, c, d, e) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- e = e | 0;
- e = a >> 16;
- b[c >> 1] = e;
- b[d >> 1] = (a >>> 1) - (e << 15);
- return
- }
- function Oc(a) {
- a = a | 0;
- return ((a | 0) == -2147483648 ? 2147483647 : 0 - a | 0) | 0
- }
- function Pc(a) {
- a = a | 0;
- var b = 0;
- if (!a) {
- a = -1;
- return a | 0
- }
- c[a >> 2] = 0;
- b = Je(4) | 0;
- if (!b) {
- a = -1;
- return a | 0
- }
- c[b >> 2] = 0;
- if (!((Jc(b) | 0) << 16 >> 16)) {
- Kc(c[b >> 2] | 0) | 0;
- c[a >> 2] = b;
- a = 0;
- return a | 0
- } else {
- Lc(b);
- Ke(b);
- a = -1;
- return a | 0
- }
- return 0
- }
- function Qc(a) {
- a = a | 0;
- var b = 0;
- if (!a) return;
- b = c[a >> 2] | 0;
- if (!b) return;
- Lc(b);
- Ke(c[a >> 2] | 0);
- c[a >> 2] = 0;
- return
- }
- function Rc(a) {
- a = a | 0;
- if (!a) {
- a = -1;
- return a | 0
- }
- Kc(c[a >> 2] | 0) | 0;
- a = 0;
- return a | 0
- }
- function Sc(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 j = 0, k = 0, l = 0, m = 0;
- m = i;
- i = i + 64 | 0;
- l = m + 48 | 0;
- k = m + 22 | 0;
- j = m;
- if ((b | 0) == 7) {
- d = c[g + 116 >> 2] | 0;
- Kb(e, 10, j, k, c[g + 112 >> 2] | 0, h) | 0;
- Hc(10, j, k, h);
- Mc(c[a >> 2] | 0, j, k, f + 22 | 0, l, h) | 0;
- Kb(e, 10, j, k, d, h) | 0;
- Hc(10, j, k, h);
- Mc(c[a >> 2] | 0, j, k, f + 66 | 0, l, h) | 0;
- i = m;
- return
- } else {
- Kb(d, 10, j, k, c[g + 108 >> 2] | 0, h) | 0;
- Hc(10, j, k, h);
- Mc(c[a >> 2] | 0, j, k, f + 66 | 0, l, h) | 0;
- i = m;
- return
- }
- }
- function Tc(a, c, d, e, f, g, h, i, j, k) {
- a = a | 0;
- c = c | 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;
- if ((d | 0) == 6) {
- b[f >> 1] = bd(a, c, e, 20, 143, 80, g, h, i, j, k) | 0;
- return
- }
- b[h >> 1] = 0;
- b[h + 2 >> 1] = 0;
- if (d >>> 0 < 2) {
- b[f >> 1] = Yc(c, d, e, 20, 143, 160, i, j, k) | 0;
- return
- }
- if (d >>> 0 < 6) {
- b[f >> 1] = Yc(c, d, e, 20, 143, 80, i, j, k) | 0;
- return
- } else {
- b[f >> 1] = Yc(c, d, e, 18, 143, 80, i, j, k) | 0;
- return
- }
- }
- function Uc(a) {
- a = a | 0;
- var d = 0;
- if ((a | 0) != 0 ? (c[a >> 2] = 0, d = Je(2) | 0, (d | 0) != 0) : 0) {
- b[d >> 1] = 0;
- c[a >> 2] = d;
- d = 0;
- } else d = -1;
- return d | 0
- }
- function Vc(a) {
- a = a | 0;
- if (!a) a = -1; else {
- b[a >> 1] = 0;
- a = 0;
- }
- return a | 0
- }
- function Wc(a) {
- a = a | 0;
- var b = 0;
- if (!a) return;
- b = c[a >> 2] | 0;
- if (!b) return;
- Ke(b);
- c[a >> 2] = 0;
- return
- }
- function Xc(a, c, d, f, g, h, j, k, l, m, n, o) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- k = k | 0;
- l = l | 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, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0,
- T = 0, U = 0;
- U = i;
- i = i + 240 | 0;
- u = U + 160 | 0;
- v = U + 80 | 0;
- O = U;
- N = b[3558 + (c * 18 | 0) >> 1] | 0;
- T = b[3558 + (c * 18 | 0) + 2 >> 1] | 0;
- p = b[3558 + (c * 18 | 0) + 4 >> 1] | 0;
- P = b[3558 + (c * 18 | 0) + 6 >> 1] | 0;
- s = b[3558 + (c * 18 | 0) + 12 >> 1] | 0;
- r = b[3558 + (c * 18 | 0) + 14 >> 1] | 0;
- q = b[3558 + (c * 18 | 0) + 16 >> 1] | 0;
- a:do switch (k << 16 >> 16) {
- case 0:
- case 80:
- if (c >>> 0 < 2 & k << 16 >> 16 == 80) {
- Q = (e[a >> 1] | 0) - (s & 65535) | 0;
- Q = (Q << 16 >> 16 | 0) < (q << 16 >> 16 | 0) ? q : Q & 65535;
- M = r << 16 >> 16;
- R = (Q & 65535) + M & 65535;
- S = R << 16 >> 16 > 143;
- Q = S ? 143 - M & 65535 : Q;
- R = S ? 143 : R;
- S = 1;
- break a
- } else {
- Q = (e[d + ((k << 16 >> 16 != 0 & 1) << 1) >> 1] | 0) - (e[3558 + (c * 18 | 0) + 8 >> 1] | 0) | 0;
- Q = (Q << 16 >> 16 | 0) < (q << 16 >> 16 | 0) ? q : Q & 65535;
- M = b[3558 + (c * 18 | 0) + 10 >> 1] | 0;
- R = (Q & 65535) + M & 65535;
- S = R << 16 >> 16 > 143;
- Q = S ? 143 - M & 65535 : Q;
- R = S ? 143 : R;
- S = 0;
- break a
- }
- default: {
- Q = (e[a >> 1] | 0) - (s & 65535) | 0;
- Q = (Q << 16 >> 16 | 0) < (q << 16 >> 16 | 0) ? q : Q & 65535;
- M = r << 16 >> 16;
- R = (Q & 65535) + M & 65535;
- S = R << 16 >> 16 > 143;
- Q = S ? 143 - M & 65535 : Q;
- R = S ? 143 : R;
- S = 1;
- }
- } while (0);
- L = Q & 65535;
- k = L + 65532 | 0;
- t = k & 65535;
- K = (R & 65535) + 4 & 65535;
- M = k << 16 >> 16;
- k = 0 - (k & 65535) | 0;
- s = k & 65535;
- ec(f + (k << 16 >> 16 << 1) | 0, h, u, j);
- k = j << 16 >> 16;
- B = k >>> 1 & 65535;
- w = B << 16 >> 16 == 0;
- if (w) j = 1; else {
- j = B;
- q = u;
- d = v;
- r = 0;
- while (1) {
- J = b[q >> 1] | 0;
- b[d >> 1] = J >>> 2;
- J = (Z(J, J) | 0) + r | 0;
- r = b[q + 2 >> 1] | 0;
- b[d + 2 >> 1] = r >>> 2;
- r = J + (Z(r, r) | 0) | 0;
- j = j + -1 << 16 >> 16;
- if (!(j << 16 >> 16)) break; else {
- q = q + 4 | 0;
- d = d + 4 | 0;
- }
- }
- j = (r | 0) < 33554433;
- }
- J = j ? 0 : 2;
- A = j ? u : v;
- x = j ? u : v;
- b:do if (t << 16 >> 16 <= K << 16 >> 16) {
- y = k + -1 | 0;
- G = A + (y << 1) | 0;
- H = h + (y << 1) | 0;
- I = A + (k + -2 << 1) | 0;
- D = y >>> 1;
- E = D & 65535;
- z = E << 16 >> 16 == 0;
- F = j ? 12 : 14;
- D = (D << 1) + 131070 & 131070;
- d = k + -3 - D | 0;
- C = A + (d << 1) | 0;
- D = A + (k + -4 - D << 1) | 0;
- h = h + (d << 1) | 0;
- if (!w) {
- w = M;
- while (1) {
- v = B;
- u = x;
- q = g;
- r = 0;
- j = 0;
- while (1) {
- v = v + -1 << 16 >> 16;
- k = b[u >> 1] | 0;
- r = (Z(k, b[q >> 1] | 0) | 0) + r | 0;
- k = (Z(k, k) | 0) + j | 0;
- j = b[u + 2 >> 1] | 0;
- r = r + (Z(j, b[q + 2 >> 1] | 0) | 0) | 0;
- j = k + (Z(j, j) | 0) | 0;
- if (!(v << 16 >> 16)) break; else {
- u = u + 4 | 0;
- q = q + 4 | 0;
- }
- }
- u = ce(j << 1, o) | 0;
- j = u >> 16;
- q = r << 1 >> 16;
- v = Z(j, q) | 0;
- v = (v | 0) == 1073741824 ? 2147483647 : v << 1;
- q = (Z((u >>> 1) - (j << 15) << 16 >> 16, q) | 0) >> 15;
- u = (q << 1) + v | 0;
- u = (q ^ v | 0) > 0 & (u ^ v | 0) < 0 ? (v >>> 31) + 2147483647 | 0 : u;
- j = (Z(j, r & 32767) | 0) >> 15;
- v = u + (j << 1) | 0;
- b[O + (w - M << 1) >> 1] = (u ^ j | 0) > 0 & (v ^ u | 0) < 0 ? (u >>> 31) + 65535 | 0 : v;
- if (t << 16 >> 16 != K << 16 >> 16) {
- s = s + -1 << 16 >> 16;
- v = b[f + (s << 16 >> 16 << 1) >> 1] | 0;
- if (z) {
- u = y;
- j = I;
- r = H;
- q = G;
- } else {
- u = E;
- j = I;
- r = H;
- q = G;
- while (1) {
- w = (Z(b[r >> 1] | 0, v) | 0) >> F;
- b[q >> 1] = w + (e[j >> 1] | 0);
- w = (Z(b[r + -2 >> 1] | 0, v) | 0) >> F;
- b[q + -2 >> 1] = w + (e[j + -2 >> 1] | 0);
- u = u + -1 << 16 >> 16;
- if (!(u << 16 >> 16)) {
- u = d;
- j = D;
- r = h;
- q = C;
- break
- } else {
- j = j + -4 | 0;
- r = r + -4 | 0;
- q = q + -4 | 0;
- }
- }
- }
- w = (Z(b[r >> 1] | 0, v) | 0) >> F;
- b[q >> 1] = w + (e[j >> 1] | 0);
- b[A + (u + -1 << 1) >> 1] = v >> J;
- }
- t = t + 1 << 16 >> 16;
- if (t << 16 >> 16 > K << 16 >> 16) break b; else w = t << 16 >> 16;
- }
- }
- if (z) {
- j = A + (k + -2 << 1) | 0;
- r = M;
- while (1) {
- ce(0, o) | 0;
- b[O + (r - M << 1) >> 1] = 0;
- if (t << 16 >> 16 != K << 16 >> 16) {
- s = s + -1 << 16 >> 16;
- g = b[f + (s << 16 >> 16 << 1) >> 1] | 0;
- E = (Z(b[H >> 1] | 0, g) | 0) >> F;
- b[G >> 1] = E + (e[I >> 1] | 0);
- b[j >> 1] = g >> J;
- }
- t = t + 1 << 16 >> 16;
- if (t << 16 >> 16 > K << 16 >> 16) break b; else r = t << 16 >> 16;
- }
- }
- u = A + (d + -1 << 1) | 0;
- j = M;
- while (1) {
- ce(0, o) | 0;
- b[O + (j - M << 1) >> 1] = 0;
- if (t << 16 >> 16 != K << 16 >> 16) {
- s = s + -1 << 16 >> 16;
- j = b[f + (s << 16 >> 16 << 1) >> 1] | 0;
- r = E;
- q = I;
- d = H;
- k = G;
- while (1) {
- g = (Z(b[d >> 1] | 0, j) | 0) >> F;
- b[k >> 1] = g + (e[q >> 1] | 0);
- g = (Z(b[d + -2 >> 1] | 0, j) | 0) >> F;
- b[k + -2 >> 1] = g + (e[q + -2 >> 1] | 0);
- r = r + -1 << 16 >> 16;
- if (!(r << 16 >> 16)) break; else {
- q = q + -4 | 0;
- d = d + -4 | 0;
- k = k + -4 | 0;
- }
- }
- g = (Z(b[h >> 1] | 0, j) | 0) >> F;
- b[C >> 1] = g + (e[D >> 1] | 0);
- b[u >> 1] = j >> J;
- }
- t = t + 1 << 16 >> 16;
- if (t << 16 >> 16 > K << 16 >> 16) break; else j = t << 16 >> 16;
- }
- } while (0);
- t = Q << 16 >> 16;
- d = L + 1 & 65535;
- if (d << 16 >> 16 > R << 16 >> 16) h = Q; else {
- s = Q;
- k = b[O + (t - M << 1) >> 1] | 0;
- while (1) {
- r = b[O + ((d << 16 >> 16) - M << 1) >> 1] | 0;
- q = r << 16 >> 16 < k << 16 >> 16;
- s = q ? s : d;
- d = d + 1 << 16 >> 16;
- if (d << 16 >> 16 > R << 16 >> 16) {
- h = s;
- break
- } else k = q ? k : r;
- }
- }
- c:do if (!(S << 16 >> 16 == 0 ? h << 16 >> 16 > N << 16 >> 16 : 0)) {
- if (!(c >>> 0 < 4 & S << 16 >> 16 != 0)) {
- s = O + ((h << 16 >> 16) - M << 1) | 0;
- r = Fc(s, p, T, o) | 0;
- d = (p & 65535) + 1 & 65535;
- if (d << 16 >> 16 <= P << 16 >> 16) while (1) {
- q = Fc(s, d, T, o) | 0;
- k = q << 16 >> 16 > r << 16 >> 16;
- p = k ? d : p;
- d = d + 1 << 16 >> 16;
- if (d << 16 >> 16 > P << 16 >> 16) break; else r = k ? q : r;
- }
- if ((c + -7 | 0) >>> 0 < 2) {
- P = p << 16 >> 16 == -3;
- d = (P << 31 >> 31) + h << 16 >> 16;
- p = P ? 3 : p;
- break
- }
- switch (p << 16 >> 16) {
- case -2: {
- d = h + -1 << 16 >> 16;
- p = 1;
- break c
- }
- case 2: {
- d = h + 1 << 16 >> 16;
- p = -1;
- break c
- }
- default: {
- d = h;
- break c
- }
- }
- }
- N = b[a >> 1] | 0;
- N = ((N << 16 >> 16) - t | 0) > 5 ? t + 5 & 65535 : N;
- k = R << 16 >> 16;
- N = (k - (N << 16 >> 16) | 0) > 4 ? k + 65532 & 65535 : N;
- k = h << 16 >> 16;
- d = N << 16 >> 16;
- if ((k | 0) == (d + -1 | 0) ? 1 : h << 16 >> 16 == N << 16 >> 16) {
- s = O + (k - M << 1) | 0;
- k = Fc(s, p, T, o) | 0;
- d = (p & 65535) + 1 & 65535;
- if (d << 16 >> 16 <= P << 16 >> 16) while (1) {
- r = Fc(s, d, T, o) | 0;
- q = r << 16 >> 16 > k << 16 >> 16;
- p = q ? d : p;
- d = d + 1 << 16 >> 16;
- if (d << 16 >> 16 > P << 16 >> 16) break; else k = q ? r : k;
- }
- if ((c + -7 | 0) >>> 0 < 2) {
- P = p << 16 >> 16 == -3;
- d = (P << 31 >> 31) + h << 16 >> 16;
- p = P ? 3 : p;
- break
- }
- switch (p << 16 >> 16) {
- case -2: {
- d = h + -1 << 16 >> 16;
- p = 1;
- break c
- }
- case 2: {
- d = h + 1 << 16 >> 16;
- p = -1;
- break c
- }
- default: {
- d = h;
- break c
- }
- }
- }
- if ((k | 0) == (d + -2 | 0)) {
- d = O + (k - M << 1) | 0;
- k = Fc(d, 0, T, o) | 0;
- if ((c | 0) != 8) {
- p = 0;
- s = 1;
- while (1) {
- r = Fc(d, s, T, o) | 0;
- q = r << 16 >> 16 > k << 16 >> 16;
- p = q ? s : p;
- s = s + 1 << 16 >> 16;
- if (s << 16 >> 16 > P << 16 >> 16) break; else k = q ? r : k;
- }
- if ((c + -7 | 0) >>> 0 >= 2) switch (p << 16 >> 16) {
- case -2: {
- d = h + -1 << 16 >> 16;
- p = 1;
- break c
- }
- case 2: {
- d = h + 1 << 16 >> 16;
- p = -1;
- break c
- }
- default: {
- d = h;
- break c
- }
- }
- } else p = 0;
- P = p << 16 >> 16 == -3;
- d = (P << 31 >> 31) + h << 16 >> 16;
- p = P ? 3 : p;
- break
- }
- if ((k | 0) == (d + 1 | 0)) {
- s = O + (k - M << 1) | 0;
- d = Fc(s, p, T, o) | 0;
- k = (p & 65535) + 1 & 65535;
- if (k << 16 >> 16 <= 0) while (1) {
- q = Fc(s, k, T, o) | 0;
- r = q << 16 >> 16 > d << 16 >> 16;
- p = r ? k : p;
- k = k + 1 << 16 >> 16;
- if (k << 16 >> 16 > 0) break; else d = r ? q : d;
- }
- if ((c + -7 | 0) >>> 0 < 2) {
- P = p << 16 >> 16 == -3;
- d = (P << 31 >> 31) + h << 16 >> 16;
- p = P ? 3 : p;
- break
- }
- switch (p << 16 >> 16) {
- case -2: {
- d = h + -1 << 16 >> 16;
- p = 1;
- break c
- }
- case 2: {
- d = h + 1 << 16 >> 16;
- p = -1;
- break c
- }
- default: {
- d = h;
- break c
- }
- }
- } else {
- d = h;
- p = 0;
- }
- } else {
- d = h;
- p = 0;
- } while (0);
- if ((c + -7 | 0) >>> 0 > 1) {
- P = a;
- a = pc(d, p, b[a >> 1] | 0, Q, R, S, c >>> 0 < 4 & 1, o) | 0;
- b[n >> 1] = a;
- b[P >> 1] = d;
- b[m >> 1] = T;
- b[l >> 1] = p;
- i = U;
- return d | 0
- } else {
- o = qc(d, p, Q, S, o) | 0;
- b[n >> 1] = o;
- b[a >> 1] = d;
- b[m >> 1] = T;
- b[l >> 1] = p;
- i = U;
- return d | 0
- }
- return 0
- }
- function Yc(a, d, e, f, g, h, j, k, l) {
- a = a | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- k = k | 0;
- l = l | 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;
- D = i;
- i = i + 1200 | 0;
- B = D + 1188 | 0;
- A = D + 580 | 0;
- C = D + 578 | 0;
- z = D + 576 | 0;
- v = D;
- x = D + 582 | 0;
- y = (k | 0) != 0;
- do if (y) if (d >>> 0 < 2) {
- Ld(a, 1, l);
- break
- } else {
- Ld(a, 0, l);
- break
- } while (0);
- w = g << 16 >> 16;
- o = 0 - w | 0;
- n = e + (o << 1) | 0;
- o = o & 65535;
- s = h << 16 >> 16;
- do if (o << 16 >> 16 < h << 16 >> 16) {
- r = o;
- q = n;
- o = 0;
- while (1) {
- t = b[q >> 1] | 0;
- o = (Z(t << 1, t) | 0) + o | 0;
- if ((o | 0) < 0) break;
- r = r + 1 << 16 >> 16;
- if (r << 16 >> 16 >= h << 16 >> 16) {
- u = 14;
- break
- } else q = q + 2 | 0;
- }
- if ((u | 0) == 14) {
- if ((o | 0) < 1048576) {
- u = 15;
- break
- }
- Oe(x | 0, n | 0, s + w << 1 | 0) | 0;
- t = 0;
- break
- }
- m = s + w | 0;
- p = m >>> 1;
- r = p & 65535;
- if (!(r << 16 >> 16)) o = x; else {
- t = ((p << 1) + 131070 & 131070) + 2 | 0;
- s = t - w | 0;
- q = x;
- while (1) {
- b[q >> 1] = (b[n >> 1] | 0) >>> 3;
- b[q + 2 >> 1] = (b[n + 2 >> 1] | 0) >>> 3;
- r = r + -1 << 16 >> 16;
- if (!(r << 16 >> 16)) break; else {
- n = n + 4 | 0;
- q = q + 4 | 0;
- }
- }
- n = e + (s << 1) | 0;
- o = x + (t << 1) | 0;
- }
- if (!(m & 1)) t = 3; else {
- b[o >> 1] = (b[n >> 1] | 0) >>> 3;
- t = 3;
- }
- } else u = 15; while (0);
- if ((u | 0) == 15) {
- t = s + w | 0;
- o = t >>> 1;
- p = o & 65535;
- if (!(p << 16 >> 16)) o = x; else {
- s = ((o << 1) + 131070 & 131070) + 2 | 0;
- q = s - w | 0;
- r = x;
- while (1) {
- b[r >> 1] = b[n >> 1] << 3;
- b[r + 2 >> 1] = b[n + 2 >> 1] << 3;
- p = p + -1 << 16 >> 16;
- if (!(p << 16 >> 16)) break; else {
- n = n + 4 | 0;
- r = r + 4 | 0;
- }
- }
- n = e + (q << 1) | 0;
- o = x + (s << 1) | 0;
- }
- if (!(t & 1)) t = -3; else {
- b[o >> 1] = b[n >> 1] << 3;
- t = -3;
- }
- }
- s = v + (w << 2) | 0;
- q = x + (w << 1) | 0;
- Tb(q, h, g, f, s);
- m = (d | 0) == 7 & 1;
- o = f << 16 >> 16;
- n = o << 2;
- if ((n | 0) != (o << 18 >> 16 | 0)) {
- c[l >> 2] = 1;
- n = f << 16 >> 16 > 0 ? 32767 : -32768;
- }
- r = Zc(a, s, q, t, m, h, g, n & 65535, B, k, l) | 0;
- o = o << 1;
- p = Zc(a, s, q, t, m, h, n + 65535 & 65535, o & 65535, A, k, l) | 0;
- o = Zc(a, s, q, t, m, h, o + 65535 & 65535, f, C, k, l) | 0;
- if (j << 16 >> 16 == 1 & y) {
- Ec(s, q, h, g, f, z, l) | 0;
- Jd(a, b[z >> 1] | 0);
- }
- n = b[B >> 1] | 0;
- m = b[A >> 1] | 0;
- if (((n << 16 >> 16) * 55706 >> 16 | 0) >= (m << 16 >> 16 | 0)) {
- A = n;
- B = r;
- A = A << 16 >> 16;
- A = A * 55706 | 0;
- A = A >> 16;
- C = b[C >> 1] | 0;
- C = C << 16 >> 16;
- C = (A | 0) < (C | 0);
- C = C ? o : B;
- i = D;
- return C | 0
- }
- b[B >> 1] = m;
- A = m;
- B = p;
- A = A << 16 >> 16;
- A = A * 55706 | 0;
- A = A >> 16;
- C = b[C >> 1] | 0;
- C = C << 16 >> 16;
- C = (A | 0) < (C | 0);
- C = C ? o : B;
- i = D;
- return C | 0
- }
- function Zc(a, d, e, f, g, h, i, j, k, l, m) {
- a = a | 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;
- l = l | 0;
- m = m | 0;
- var n = 0, o = 0, p = 0, q = 0, r = 0;
- if (i << 16 >> 16 < j << 16 >> 16) {
- j = -2147483648;
- p = i;
- } else {
- p = i;
- n = -2147483648;
- o = d + (0 - (i << 16 >> 16) << 2) | 0;
- d = i;
- while (1) {
- i = c[o >> 2] | 0;
- r = (i | 0) < (n | 0);
- d = r ? d : p;
- n = r ? n : i;
- p = p + -1 << 16 >> 16;
- if (p << 16 >> 16 < j << 16 >> 16) {
- j = n;
- p = d;
- break
- } else o = o + 4 | 0;
- }
- }
- d = h << 16 >> 16 >>> 2 & 65535;
- if (!(d << 16 >> 16)) d = 0; else {
- n = d;
- i = e + (0 - (p << 16 >> 16) << 1) | 0;
- d = 0;
- while (1) {
- r = b[i >> 1] | 0;
- r = (Z(r, r) | 0) + d | 0;
- d = b[i + 2 >> 1] | 0;
- d = r + (Z(d, d) | 0) | 0;
- r = b[i + 4 >> 1] | 0;
- r = d + (Z(r, r) | 0) | 0;
- d = b[i + 6 >> 1] | 0;
- d = r + (Z(d, d) | 0) | 0;
- n = n + -1 << 16 >> 16;
- if (!(n << 16 >> 16)) break; else i = i + 8 | 0;
- }
- d = d << 1;
- }
- if (l) Kd(a, j, d, m);
- d = ce(d, m) | 0;
- i = g << 16 >> 16 != 0;
- if (i) d = (d | 0) > 1073741823 ? 2147483647 : d << 1;
- g = j >> 16;
- a = d >> 16;
- m = Z(a, g) | 0;
- m = (m | 0) == 1073741824 ? 2147483647 : m << 1;
- d = (Z((d >>> 1) - (a << 15) << 16 >> 16, g) | 0) >> 15;
- r = (d << 1) + m | 0;
- r = (d ^ m | 0) > 0 & (r ^ m | 0) < 0 ? (m >>> 31) + 2147483647 | 0 : r;
- g = (Z(a, (j >>> 1) - (g << 15) << 16 >> 16) | 0) >> 15;
- d = r + (g << 1) | 0;
- d = (r ^ g | 0) > 0 & (d ^ r | 0) < 0 ? (r >>> 31) + 2147483647 | 0 : d;
- if (!i) {
- b[k >> 1] = d;
- return p | 0
- }
- i = f << 16 >> 16;
- if (f << 16 >> 16 > 0) if (f << 16 >> 16 < 31) {
- i = d >> i;
- q = 16;
- } else i = 0; else {
- q = 0 - i << 16 >> 16;
- i = d << q;
- i = (i >> q | 0) == (d | 0) ? i : d >> 31 ^ 2147483647;
- q = 16;
- }
- if ((q | 0) == 16) {
- if ((i | 0) > 65535) {
- b[k >> 1] = 32767;
- return p | 0
- }
- if ((i | 0) < -65536) {
- b[k >> 1] = -32768;
- return p | 0
- }
- }
- b[k >> 1] = i >>> 1;
- return p | 0
- }
- function _c(a) {
- a = a | 0;
- var d = 0;
- if (!a) {
- a = -1;
- return a | 0
- }
- c[a >> 2] = 0;
- d = Je(6) | 0;
- if (!d) {
- a = -1;
- return a | 0
- }
- b[d >> 1] = 40;
- b[d + 2 >> 1] = 0;
- b[d + 4 >> 1] = 0;
- c[a >> 2] = d;
- a = 0;
- return a | 0
- }
- function $c(a) {
- a = a | 0;
- if (!a) {
- a = -1;
- return a | 0
- }
- b[a >> 1] = 40;
- b[a + 2 >> 1] = 0;
- b[a + 4 >> 1] = 0;
- a = 0;
- return a | 0
- }
- function ad(a) {
- a = a | 0;
- var b = 0;
- if (!a) return;
- b = c[a >> 2] | 0;
- if (!b) return;
- Ke(b);
- c[a >> 2] = 0;
- return
- }
- function bd(a, d, e, f, g, h, j, k, l, m, n) {
- a = a | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- k = k | 0;
- l = l | 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;
- F = i;
- i = i + 1200 | 0;
- w = F + 1186 | 0;
- x = F + 1184 | 0;
- E = F + 1182 | 0;
- v = F;
- z = F + 576 | 0;
- y = g << 16 >> 16;
- D = z + (y << 1) | 0;
- o = (0 - y & 65535) << 16 >> 16 < h << 16 >> 16;
- if (o) {
- s = 0 - g << 16 >> 16 << 16 >> 16;
- p = 0;
- do {
- r = b[e + (s << 1) >> 1] | 0;
- r = Z(r, r) | 0;
- if ((r | 0) != 1073741824) {
- q = (r << 1) + p | 0;
- if ((r ^ p | 0) > 0 & (q ^ p | 0) < 0) {
- c[n >> 2] = 1;
- p = (p >>> 31) + 2147483647 | 0;
- } else p = q;
- } else {
- c[n >> 2] = 1;
- p = 2147483647;
- }
- s = s + 1 | 0;
- } while ((s & 65535) << 16 >> 16 != h << 16 >> 16)
- } else p = 0;
- if ((2147483646 - p & p | 0) >= 0) if ((p | 0) == 2147483647) {
- if (o) {
- p = 0 - g << 16 >> 16 << 16 >> 16;
- do {
- b[z + (p + y << 1) >> 1] = De(b[e + (p << 1) >> 1] | 0, 3, n) | 0;
- p = p + 1 | 0;
- } while ((p & 65535) << 16 >> 16 != h << 16 >> 16)
- }
- } else t = 14; else {
- c[n >> 2] = 1;
- t = 14;
- }
- do if ((t | 0) == 14) {
- if ((1048575 - p & p | 0) < 0) {
- c[n >> 2] = 1;
- p = (p >>> 31) + 2147483647 | 0;
- } else p = p + -1048576 | 0;
- if ((p | 0) >= 0) {
- if (!o) break;
- C = 0 - g << 16 >> 16 << 16 >> 16;
- Oe(z + (y + C << 1) | 0, e + (C << 1) | 0, (((h + g << 16 >> 16) + -1 & 65535) << 1) + 2 | 0) | 0;
- break
- }
- if (o) {
- p = 0 - g << 16 >> 16 << 16 >> 16;
- do {
- C = b[e + (p << 1) >> 1] | 0;
- b[z + (p + y << 1) >> 1] = (C << 19 >> 19 | 0) == (C | 0) ? C << 3 : C >>> 15 ^ 32767;
- p = p + 1 | 0;
- } while ((p & 65535) << 16 >> 16 != h << 16 >> 16)
- }
- } while (0);
- B = v + (y << 2) | 0;
- Tb(D, h, g, f, B);
- s = b[a >> 1] | 0;
- C = a + 4 | 0;
- A = k + (l << 16 >> 16 << 1) | 0;
- a:do if (g << 16 >> 16 < f << 16 >> 16) u = g; else {
- if ((b[C >> 1] | 0) <= 0) {
- e = g;
- k = -2147483648;
- r = g;
- t = 3402;
- while (1) {
- Nc(c[v + (y - (e << 16 >> 16) << 2) >> 2] | 0, w, x, n);
- q = b[x >> 1] | 0;
- p = b[t >> 1] | 0;
- s = Z(p, b[w >> 1] | 0) | 0;
- if ((s | 0) == 1073741824) {
- c[n >> 2] = 1;
- o = 2147483647;
- } else o = s << 1;
- u = (Z(p, q << 16 >> 16) | 0) >> 15;
- s = o + (u << 1) | 0;
- if ((o ^ u | 0) > 0 & (s ^ o | 0) < 0) {
- c[n >> 2] = 1;
- s = (o >>> 31) + 2147483647 | 0;
- }
- q = (s | 0) < (k | 0);
- r = q ? r : e;
- e = e + -1 << 16 >> 16;
- if (e << 16 >> 16 < f << 16 >> 16) {
- u = r;
- break a
- } else {
- k = q ? k : s;
- t = t + -2 | 0;
- }
- }
- }
- k = g;
- o = -2147483648;
- r = g;
- u = 2902 + (y + 123 - (s << 16 >> 16) << 1) | 0;
- e = 3402;
- while (1) {
- Nc(c[v + (y - (k << 16 >> 16) << 2) >> 2] | 0, w, x, n);
- t = b[x >> 1] | 0;
- q = b[e >> 1] | 0;
- s = Z(q, b[w >> 1] | 0) | 0;
- if ((s | 0) == 1073741824) {
- c[n >> 2] = 1;
- p = 2147483647;
- } else p = s << 1;
- t = (Z(q, t << 16 >> 16) | 0) >> 15;
- s = p + (t << 1) | 0;
- if ((p ^ t | 0) > 0 & (s ^ p | 0) < 0) {
- c[n >> 2] = 1;
- s = (p >>> 31) + 2147483647 | 0;
- }
- Nc(s, w, x, n);
- t = b[x >> 1] | 0;
- q = b[u >> 1] | 0;
- s = Z(q, b[w >> 1] | 0) | 0;
- if ((s | 0) == 1073741824) {
- c[n >> 2] = 1;
- p = 2147483647;
- } else p = s << 1;
- t = (Z(q, t << 16 >> 16) | 0) >> 15;
- s = p + (t << 1) | 0;
- if ((p ^ t | 0) > 0 & (s ^ p | 0) < 0) {
- c[n >> 2] = 1;
- s = (p >>> 31) + 2147483647 | 0;
- }
- q = (s | 0) < (o | 0);
- r = q ? r : k;
- k = k + -1 << 16 >> 16;
- if (k << 16 >> 16 < f << 16 >> 16) {
- u = r;
- break
- } else {
- o = q ? o : s;
- u = u + -2 | 0;
- e = e + -2 | 0;
- }
- }
- } while (0);
- if (h << 16 >> 16 > 0) {
- k = 0;
- e = D;
- t = z + (y - (u << 16 >> 16) << 1) | 0;
- r = 0;
- p = 0;
- while (1) {
- s = b[t >> 1] | 0;
- q = Z(s, b[e >> 1] | 0) | 0;
- if ((q | 0) != 1073741824) {
- o = (q << 1) + r | 0;
- if ((q ^ r | 0) > 0 & (o ^ r | 0) < 0) {
- c[n >> 2] = 1;
- r = (r >>> 31) + 2147483647 | 0;
- } else r = o;
- } else {
- c[n >> 2] = 1;
- r = 2147483647;
- }
- o = Z(s, s) | 0;
- if ((o | 0) != 1073741824) {
- q = (o << 1) + p | 0;
- if ((o ^ p | 0) > 0 & (q ^ p | 0) < 0) {
- c[n >> 2] = 1;
- p = (p >>> 31) + 2147483647 | 0;
- } else p = q;
- } else {
- c[n >> 2] = 1;
- p = 2147483647;
- }
- k = k + 1 << 16 >> 16;
- if (k << 16 >> 16 >= h << 16 >> 16) break; else {
- e = e + 2 | 0;
- t = t + 2 | 0;
- }
- }
- } else {
- r = 0;
- p = 0;
- }
- q = (m | 0) == 0;
- if (!q) {
- Ld(d, 0, n);
- Kd(d, r, p, n);
- }
- o = (Ce(p, n) | 0) << 16 >> 16;
- if ((o * 13107 | 0) == 1073741824) {
- c[n >> 2] = 1;
- p = 2147483647;
- } else p = o * 26214 | 0;
- o = r - p | 0;
- if (((o ^ r) & (p ^ r) | 0) < 0) {
- c[n >> 2] = 1;
- o = (r >>> 31) + 2147483647 | 0;
- }
- m = Ce(o, n) | 0;
- b[A >> 1] = m;
- if (m << 16 >> 16 > 0) {
- o = j + 6 | 0;
- b[j + 8 >> 1] = b[o >> 1] | 0;
- m = j + 4 | 0;
- b[o >> 1] = b[m >> 1] | 0;
- o = j + 2 | 0;
- b[m >> 1] = b[o >> 1] | 0;
- b[o >> 1] = b[j >> 1] | 0;
- b[j >> 1] = u;
- b[a >> 1] = Zd(j, 5) | 0;
- b[a + 2 >> 1] = 32767;
- o = 32767;
- } else {
- b[a >> 1] = u;
- a = a + 2 | 0;
- o = ((b[a >> 1] | 0) * 29491 | 0) >>> 15 & 65535;
- b[a >> 1] = o;
- }
- b[C >> 1] = ((Ge(o, 9830, n) | 0) & 65535) >>> 15 ^ 1;
- if (q) {
- i = F;
- return u | 0
- }
- if ((Ge(l, 1, n) | 0) << 16 >> 16) {
- i = F;
- return u | 0
- }
- Ec(B, D, h, g, f, E, n) | 0;
- Jd(d, b[E >> 1] | 0);
- i = F;
- return u | 0
- }
- function cd(a, b, c, d, e, f, g, h, j, k) {
- a = a | 0;
- b = b | 0;
- c = c | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- k = k | 0;
- var l = 0, m = 0;
- k = i;
- i = i + 48 | 0;
- m = k + 22 | 0;
- l = k;
- b = a >>> 0 < 6 ? b : c;
- c = f << 16 >> 16 > 0 ? 22 : 0;
- a = e + (c << 1) | 0;
- Ie(a, b, m);
- Ie(a, d, l);
- a = f << 16 >> 16;
- f = j + (a << 1) | 0;
- Be(m, g + (a << 1) | 0, f, 40);
- He(l, f, f, 40, h, 1);
- c = e + (((c << 16) + 720896 | 0) >>> 16 << 1) | 0;
- Ie(c, b, m);
- Ie(c, d, l);
- a = (a << 16) + 2621440 >> 16;
- j = j + (a << 1) | 0;
- Be(m, g + (a << 1) | 0, j, 40);
- He(l, j, j, 40, h, 1);
- i = k;
- return
- }
- function dd(a) {
- a = a | 0;
- var d = 0;
- if (!a) {
- a = -1;
- return a | 0
- }
- c[a >> 2] = 0;
- d = Je(12) | 0;
- if (!d) {
- a = -1;
- return a | 0
- }
- b[d >> 1] = 0;
- b[d + 2 >> 1] = 0;
- b[d + 4 >> 1] = 0;
- b[d + 6 >> 1] = 0;
- b[d + 8 >> 1] = 0;
- b[d + 10 >> 1] = 0;
- c[a >> 2] = d;
- a = 0;
- return a | 0
- }
- function ed(a) {
- a = a | 0;
- if (!a) {
- a = -1;
- return a | 0
- }
- b[a >> 1] = 0;
- b[a + 2 >> 1] = 0;
- b[a + 4 >> 1] = 0;
- b[a + 6 >> 1] = 0;
- b[a + 8 >> 1] = 0;
- b[a + 10 >> 1] = 0;
- a = 0;
- return a | 0
- }
- function fd(a) {
- a = a | 0;
- var b = 0;
- if (!a) return;
- b = c[a >> 2] | 0;
- if (!b) return;
- Ke(b);
- c[a >> 2] = 0;
- return
- }
- function gd(a, c, d) {
- a = a | 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, n = 0, o = 0;
- m = a + 10 | 0;
- f = b[m >> 1] | 0;
- n = a + 8 | 0;
- e = b[n >> 1] | 0;
- if (!(d << 16 >> 16)) {
- a = e;
- l = f;
- b[m >> 1] = l;
- b[n >> 1] = a;
- return
- }
- i = a + 4 | 0;
- j = a + 6 | 0;
- k = a + 2 | 0;
- h = b[j >> 1] | 0;
- l = b[i >> 1] | 0;
- g = d;
- d = f;
- while (1) {
- o = (Z(b[a >> 1] | 0, -3733) | 0) + (((l << 16 >> 16) * 7807 | 0) + ((h << 16 >> 16) * 7807 >> 15)) | 0;
- b[a >> 1] = l;
- o = o + ((Z(b[k >> 1] | 0, -3733) | 0) >> 15) | 0;
- b[k >> 1] = h;
- o = ((d << 16 >> 16) * 1899 | 0) + o + (Z(e << 16 >> 16, -3798) | 0) | 0;
- d = b[c >> 1] | 0;
- o = o + ((d << 16 >> 16) * 1899 | 0) | 0;
- b[c >> 1] = (o + 2048 | 0) >>> 12;
- f = o >>> 12;
- l = f & 65535;
- b[i >> 1] = l;
- h = (o << 3) - (f << 15) & 65535;
- b[j >> 1] = h;
- g = g + -1 << 16 >> 16;
- if (!(g << 16 >> 16)) break; else {
- o = e;
- c = c + 2 | 0;
- e = d;
- d = o;
- }
- }
- b[m >> 1] = e;
- b[n >> 1] = d;
- return
- }
- function hd(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;
- g = b[(c[f + 88 >> 2] | 0) + (a << 1) >> 1] | 0;
- if (!(g << 16 >> 16)) return;
- j = e;
- i = c[(c[f + 92 >> 2] | 0) + (a << 2) >> 2] | 0;
- while (1) {
- e = b[i >> 1] | 0;
- if (!(e << 16 >> 16)) e = 0; else {
- a = b[d >> 1] | 0;
- h = e;
- f = j + ((e << 16 >> 16) + -1 << 1) | 0;
- while (1) {
- e = a << 16 >> 16;
- b[f >> 1] = e & 1;
- h = h + -1 << 16 >> 16;
- if (!(h << 16 >> 16)) break; else {
- a = e >>> 1 & 65535;
- f = f + -2 | 0;
- }
- }
- e = b[i >> 1] | 0;
- }
- d = d + 2 | 0;
- g = g + -1 << 16 >> 16;
- if (!(g << 16 >> 16)) break; else {
- j = j + (e << 16 >> 16 << 1) | 0;
- i = i + 2 | 0;
- }
- }
- return
- }
- function id(a, d, f, g, h, j) {
- a = a | 0;
- d = d | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- var k = 0, l = 0, m = 0, n = 0, o = 0;
- o = i;
- i = i + 16 | 0;
- m = o + 2 | 0;
- n = o;
- k = h << 16 >> 16;
- if (h << 16 >> 16 < 1) {
- j = -5443;
- n = -32768;
- Wd(a, n, j);
- i = o;
- return
- }
- l = re(14, f, j) | 0;
- if ((k | 0) < (l << 16 >> 16 | 0)) f = g; else {
- f = (g & 65535) + 1 & 65535;
- h = k >>> 1 & 65535;
- }
- g = Td(h, l & 65535) | 0;
- b[n >> 1] = g;
- de(g << 16 >> 16, m, n, j);
- b[m >> 1] = ((((f & 65535) - (d & 65535) << 16) + -65536 | 0) >>> 16) + (e[m >> 1] | 0);
- g = Ee(b[n >> 1] | 0, 5, j) | 0;
- k = b[m >> 1] | 0;
- g = ((k & 65535) << 10) + (g & 65535) & 65535;
- if (g << 16 >> 16 > 18284) {
- j = 3037;
- n = 18284;
- Wd(a, n, j);
- i = o;
- return
- }
- h = b[n >> 1] | 0;
- k = k << 16 >> 16;
- if ((k * 24660 | 0) == 1073741824) {
- c[j >> 2] = 1;
- f = 2147483647;
- } else f = k * 49320 | 0;
- n = (h << 16 >> 16) * 24660 >> 15;
- k = f + (n << 1) | 0;
- if ((f ^ n | 0) > 0 & (k ^ f | 0) < 0) {
- c[j >> 2] = 1;
- k = (f >>> 31) + 2147483647 | 0;
- }
- n = k << 13;
- j = Ce((n >> 13 | 0) == (k | 0) ? n : k >> 31 ^ 2147483647, j) | 0;
- n = g;
- Wd(a, n, j);
- i = o;
- return
- }
- function jd(a, d, f, g, h, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) {
- a = a | 0;
- d = d | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- k = k | 0;
- l = l | 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;
- u = u | 0;
- v = v | 0;
- w = w | 0;
- x = x | 0;
- var 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, _ = 0, $ = 0,
- aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0;
- ha = i;
- i = i + 80 | 0;
- da = ha + 66 | 0;
- ea = ha + 64 | 0;
- fa = ha + 62 | 0;
- ga = ha + 60 | 0;
- O = ha + 40 | 0;
- P = ha + 20 | 0;
- M = ha;
- b[da >> 1] = d;
- b[ea >> 1] = m;
- b[fa >> 1] = n;
- L = re(14, f, x) | 0;
- ca = L & 65535;
- b[ga >> 1] = ca;
- N = re(14, n, x) | 0;
- K = (e[g >> 1] | 0) + 65523 | 0;
- b[M >> 1] = K;
- E = (e[g + 2 >> 1] | 0) + 65522 | 0;
- F = M + 2 | 0;
- b[F >> 1] = E;
- G = ((d & 65535) << 16) + -720896 | 0;
- B = G >> 16;
- G = (G >>> 15) + 15 + (e[g + 4 >> 1] | 0) | 0;
- H = M + 4 | 0;
- b[H >> 1] = G;
- I = (e[g + 6 >> 1] | 0) + B | 0;
- J = M + 6 | 0;
- b[J >> 1] = I;
- B = B + 1 + (e[g + 8 >> 1] | 0) | 0;
- C = M + 8 | 0;
- b[C >> 1] = B;
- y = (e[o >> 1] | 0) + 65523 & 65535;
- b[M + 10 >> 1] = y;
- D = (e[o + 2 >> 1] | 0) + 65522 & 65535;
- b[M + 12 >> 1] = D;
- z = ((m & 65535) << 16) + -720896 | 0;
- g = z >> 16;
- z = (z >>> 15) + 15 + (e[o + 4 >> 1] | 0) & 65535;
- b[M + 14 >> 1] = z;
- A = (e[o + 6 >> 1] | 0) + g & 65535;
- b[M + 16 >> 1] = A;
- g = g + 1 + (e[o + 8 >> 1] | 0) & 65535;
- b[M + 18 >> 1] = g;
- aa = (j & 65535) - (q & 65535) << 16;
- m = aa >> 16;
- if ((aa | 0) > 0) {
- n = k;
- f = r << 16 >> 16 >> m & 65535;
- } else {
- n = k << 16 >> 16 >> 0 - m & 65535;
- f = r;
- }
- if ((Ee(f, 1, x) | 0) << 16 >> 16 > n << 16 >> 16) f = 1; else f = (((n << 16 >> 16) + 3 >> 2 | 0) > (f << 16 >> 16 | 0)) << 31 >> 31;
- o = K + f & 65535;
- b[M >> 1] = o;
- aa = E + f & 65535;
- b[F >> 1] = aa;
- $ = G + f & 65535;
- b[H >> 1] = $;
- _ = I + f & 65535;
- b[J >> 1] = _;
- Y = B + f & 65535;
- b[C >> 1] = Y;
- m = g << 16 >> 16 > o << 16 >> 16 ? g : o;
- m = A << 16 >> 16 > m << 16 >> 16 ? A : m;
- m = z << 16 >> 16 > m << 16 >> 16 ? z : m;
- m = D << 16 >> 16 > m << 16 >> 16 ? D : m;
- m = y << 16 >> 16 > m << 16 >> 16 ? y : m;
- m = Y << 16 >> 16 > m << 16 >> 16 ? Y : m;
- m = _ << 16 >> 16 > m << 16 >> 16 ? _ : m;
- m = $ << 16 >> 16 > m << 16 >> 16 ? $ : m;
- m = (aa << 16 >> 16 > m << 16 >> 16 ? aa : m) + 1 & 65535;
- g = 0;
- while (1) {
- f = m - (o & 65535) | 0;
- o = f & 65535;
- n = e[h >> 1] << 16;
- f = f << 16 >> 16;
- if (o << 16 >> 16 > 0) o = o << 16 >> 16 < 31 ? n >> f : 0; else {
- aa = 0 - f << 16 >> 16;
- o = n << aa;
- o = (o >> aa | 0) == (n | 0) ? o : n >> 31 ^ 2147483647;
- }
- aa = o >> 16;
- b[O + (g << 1) >> 1] = aa;
- b[P + (g << 1) >> 1] = (o >>> 1) - (aa << 15);
- g = g + 1 | 0;
- if ((g | 0) == 5) {
- f = 5;
- n = p;
- break
- }
- o = b[M + (g << 1) >> 1] | 0;
- h = h + 2 | 0;
- }
- while (1) {
- g = m - (y & 65535) | 0;
- y = g & 65535;
- o = e[n >> 1] << 16;
- g = g << 16 >> 16;
- if (y << 16 >> 16 > 0) o = y << 16 >> 16 < 31 ? o >> g : 0; else {
- $ = 0 - g << 16 >> 16;
- aa = o << $;
- o = (aa >> $ | 0) == (o | 0) ? aa : o >> 31 ^ 2147483647;
- }
- aa = o >> 16;
- b[O + (f << 1) >> 1] = aa;
- b[P + (f << 1) >> 1] = (o >>> 1) - (aa << 15);
- o = f + 1 | 0;
- if ((o & 65535) << 16 >> 16 == 10) break;
- y = b[M + (o << 1) >> 1] | 0;
- f = o;
- n = n + 2 | 0;
- }
- Q = L << 16 >> 16;
- R = b[O >> 1] | 0;
- S = b[P >> 1] | 0;
- T = b[O + 2 >> 1] | 0;
- U = b[P + 2 >> 1] | 0;
- V = b[O + 4 >> 1] | 0;
- W = b[P + 4 >> 1] | 0;
- X = b[O + 6 >> 1] | 0;
- Y = b[P + 6 >> 1] | 0;
- _ = b[O + 8 >> 1] | 0;
- $ = b[P + 8 >> 1] | 0;
- aa = s & 65535;
- q = N << 16 >> 16;
- j = b[O + 10 >> 1] | 0;
- A = b[P + 10 >> 1] | 0;
- z = b[O + 12 >> 1] | 0;
- h = b[P + 12 >> 1] | 0;
- f = b[O + 14 >> 1] | 0;
- n = b[P + 14 >> 1] | 0;
- g = b[O + 16 >> 1] | 0;
- y = b[P + 16 >> 1] | 0;
- B = b[O + 18 >> 1] | 0;
- P = b[P + 18 >> 1] | 0;
- m = 2147483647;
- O = 0;
- o = 0;
- C = 782;
- do {
- M = b[C >> 1] | 0;
- I = (Z(Q, b[C + 2 >> 1] | 0) | 0) >>> 15 << 16;
- p = I >> 16;
- G = M << 1;
- K = (Z(G, M) | 0) >> 16;
- r = Z(K, R) | 0;
- if ((r | 0) == 1073741824) {
- c[x >> 2] = 1;
- J = 2147483647;
- } else J = r << 1;
- N = (Z(S, K) | 0) >> 15;
- r = J + (N << 1) | 0;
- if ((J ^ N | 0) > 0 & (r ^ J | 0) < 0) {
- c[x >> 2] = 1;
- r = (J >>> 31) + 2147483647 | 0;
- }
- K = Z(T, M) | 0;
- if ((K | 0) == 1073741824) {
- c[x >> 2] = 1;
- J = 2147483647;
- } else J = K << 1;
- N = (Z(U, M) | 0) >> 15;
- K = J + (N << 1) | 0;
- if ((J ^ N | 0) > 0 & (K ^ J | 0) < 0) {
- c[x >> 2] = 1;
- K = (J >>> 31) + 2147483647 | 0;
- }
- I = (Z(I >> 15, p) | 0) >> 16;
- J = Z(V, I) | 0;
- if ((J | 0) == 1073741824) {
- c[x >> 2] = 1;
- H = 2147483647;
- } else H = J << 1;
- N = (Z(W, I) | 0) >> 15;
- J = H + (N << 1) | 0;
- if ((H ^ N | 0) > 0 & (J ^ H | 0) < 0) {
- c[x >> 2] = 1;
- J = (H >>> 31) + 2147483647 | 0;
- }
- I = Z(X, p) | 0;
- if ((I | 0) == 1073741824) {
- c[x >> 2] = 1;
- H = 2147483647;
- } else H = I << 1;
- N = (Z(Y, p) | 0) >> 15;
- I = H + (N << 1) | 0;
- if ((H ^ N | 0) > 0 & (I ^ H | 0) < 0) {
- c[x >> 2] = 1;
- N = (H >>> 31) + 2147483647 | 0;
- } else N = I;
- H = (Z(G, p) | 0) >> 16;
- I = Z(_, H) | 0;
- if ((I | 0) == 1073741824) {
- c[x >> 2] = 1;
- G = 2147483647;
- } else G = I << 1;
- L = (Z($, H) | 0) >> 15;
- I = G + (L << 1) | 0;
- if ((G ^ L | 0) > 0 & (I ^ G | 0) < 0) {
- c[x >> 2] = 1;
- I = (G >>> 31) + 2147483647 | 0;
- }
- H = b[C + 4 >> 1] | 0;
- G = b[C + 6 >> 1] | 0;
- C = C + 8 | 0;
- if ((M - aa & 65535) << 16 >> 16 < 1 ? (ba = H << 16 >> 16, H << 16 >> 16 <= s << 16 >> 16) : 0) {
- E = (Z(G << 16 >> 16, q) | 0) >>> 15 << 16;
- M = E >> 16;
- D = ba << 1;
- G = (Z(D, ba) | 0) >> 16;
- H = Z(j, G) | 0;
- if ((H | 0) == 1073741824) {
- c[x >> 2] = 1;
- F = 2147483647;
- } else F = H << 1;
- L = (Z(A, G) | 0) >> 15;
- H = F + (L << 1) | 0;
- if ((F ^ L | 0) > 0 & (H ^ F | 0) < 0) {
- c[x >> 2] = 1;
- H = (F >>> 31) + 2147483647 | 0;
- }
- G = Z(z, ba) | 0;
- if ((G | 0) == 1073741824) {
- c[x >> 2] = 1;
- F = 2147483647;
- } else F = G << 1;
- L = (Z(h, ba) | 0) >> 15;
- G = F + (L << 1) | 0;
- if ((F ^ L | 0) > 0 & (G ^ F | 0) < 0) {
- c[x >> 2] = 1;
- L = (F >>> 31) + 2147483647 | 0;
- } else L = G;
- F = (Z(E >> 15, M) | 0) >> 16;
- G = Z(f, F) | 0;
- if ((G | 0) == 1073741824) {
- c[x >> 2] = 1;
- E = 2147483647;
- } else E = G << 1;
- p = (Z(n, F) | 0) >> 15;
- G = E + (p << 1) | 0;
- if ((E ^ p | 0) > 0 & (G ^ E | 0) < 0) {
- c[x >> 2] = 1;
- p = (E >>> 31) + 2147483647 | 0;
- } else p = G;
- G = Z(g, M) | 0;
- if ((G | 0) == 1073741824) {
- c[x >> 2] = 1;
- F = 2147483647;
- } else F = G << 1;
- E = (Z(y, M) | 0) >> 15;
- G = F + (E << 1) | 0;
- if ((F ^ E | 0) > 0 & (G ^ F | 0) < 0) {
- c[x >> 2] = 1;
- k = (F >>> 31) + 2147483647 | 0;
- } else k = G;
- F = (Z(D, M) | 0) >> 16;
- G = Z(B, F) | 0;
- if ((G | 0) == 1073741824) {
- c[x >> 2] = 1;
- E = 2147483647;
- } else E = G << 1;
- M = (Z(P, F) | 0) >> 15;
- G = E + (M << 1) | 0;
- if ((E ^ M | 0) > 0 & (G ^ E | 0) < 0) {
- c[x >> 2] = 1;
- G = (E >>> 31) + 2147483647 | 0;
- }
- M = K + r + J + N + I + H + L + p + k + G | 0;
- N = (M | 0) < (m | 0);
- m = N ? M : m;
- o = N ? O : o;
- }
- O = O + 1 << 16 >> 16;
- } while (O << 16 >> 16 < 256);
- s = (o & 65535) << 18 >> 16;
- kd(a, 782 + (s << 1) | 0, ca, d, t, u, x);
- Vd(a, 0, l, ea, fa, da, ga, x);
- l = (re(14, b[fa >> 1] | 0, x) | 0) & 65535;
- kd(a, 782 + ((s | 2) << 1) | 0, l, b[ea >> 1] | 0, v, w, x);
- i = ha;
- return o | 0
- }
- function kd(a, d, f, g, h, j, k) {
- a = a | 0;
- d = d | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- k = k | 0;
- var l = 0, m = 0, n = 0, o = 0;
- o = i;
- i = i + 16 | 0;
- m = o + 2 | 0;
- n = o;
- b[h >> 1] = b[d >> 1] | 0;
- l = b[d + 2 >> 1] | 0;
- f = Z(f << 16 >> 16 << 1, l) | 0;
- h = 10 - (g & 65535) | 0;
- d = h & 65535;
- h = h << 16 >> 16;
- if (d << 16 >> 16 > 0) d = d << 16 >> 16 < 31 ? f >> h : 0; else {
- h = 0 - h << 16 >> 16;
- d = f << h;
- d = (d >> h | 0) == (f | 0) ? d : f >> 31 ^ 2147483647;
- }
- b[j >> 1] = d >>> 16;
- de(l, m, n, k);
- b[m >> 1] = (e[m >> 1] | 0) + 65524;
- h = Ee(b[n >> 1] | 0, 5, k) | 0;
- g = b[m >> 1] | 0;
- h = ((g & 65535) << 10) + (h & 65535) & 65535;
- f = b[n >> 1] | 0;
- g = g << 16 >> 16;
- if ((g * 24660 | 0) == 1073741824) {
- c[k >> 2] = 1;
- d = 2147483647;
- } else d = g * 49320 | 0;
- n = (f << 16 >> 16) * 24660 >> 15;
- g = d + (n << 1) | 0;
- if (!((d ^ n | 0) > 0 & (g ^ d | 0) < 0)) {
- k = g;
- k = k << 13;
- k = k + 32768 | 0;
- k = k >>> 16;
- k = k & 65535;
- Wd(a, h, k);
- i = o;
- return
- }
- c[k >> 2] = 1;
- k = (d >>> 31) + 2147483647 | 0;
- k = k << 13;
- k = k + 32768 | 0;
- k = k >>> 16;
- k = k & 65535;
- Wd(a, h, k);
- i = o;
- return
- }
- function ld(a, d, f, g, h, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) {
- a = a | 0;
- d = d | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- k = k | 0;
- l = l | 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;
- u = u | 0;
- v = v | 0;
- w = w | 0;
- x = x | 0;
- y = y | 0;
- var 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, _ = 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;
- la = i;
- i = i + 80 | 0;
- ia = la + 72 | 0;
- ja = la + 70 | 0;
- ka = la + 68 | 0;
- ga = la + 66 | 0;
- ha = la + 56 | 0;
- _ = la + 24 | 0;
- Y = la + 12 | 0;
- W = la + 48 | 0;
- X = la + 40 | 0;
- R = la + 34 | 0;
- T = la + 22 | 0;
- P = la + 6 | 0;
- Q = la;
- nd(5, r, s, P, Q, c[x + 72 >> 2] | 0, y) | 0;
- B = re(14, n, y) | 0;
- S = x + 68 | 0;
- O = c[S >> 2] | 0;
- V = m << 16 >> 16;
- U = V + 65526 | 0;
- r = (e[j >> 1] | 0) + 65523 & 65535;
- b[ha >> 1] = r;
- x = (e[j + 2 >> 1] | 0) + 65522 & 65535;
- b[ha + 2 >> 1] = x;
- da = U << 16 >> 16;
- ea = ((U << 17 >> 17 | 0) == (da | 0) ? U << 1 : da >>> 15 ^ 32767) + 15 + (e[j + 4 >> 1] | 0) & 65535;
- b[ha + 4 >> 1] = ea;
- fa = (e[j + 6 >> 1] | 0) + da & 65535;
- b[ha + 6 >> 1] = fa;
- j = da + 1 + (e[j + 8 >> 1] | 0) & 65535;
- b[ha + 8 >> 1] = j;
- x = x << 16 >> 16 > r << 16 >> 16 ? x : r;
- x = ea << 16 >> 16 > x << 16 >> 16 ? ea : x;
- x = fa << 16 >> 16 > x << 16 >> 16 ? fa : x;
- x = (Rd(j << 16 >> 16 > x << 16 >> 16 ? j : x, 1, y) | 0) & 65535;
- j = r;
- r = 0;
- while (1) {
- n = x - (j & 65535) | 0;
- j = n & 65535;
- A = e[h + (r << 1) >> 1] << 16;
- n = n << 16 >> 16;
- if (j << 16 >> 16 > 0) n = j << 16 >> 16 < 31 ? A >> n : 0; else {
- fa = 0 - n << 16 >> 16;
- n = A << fa;
- n = (n >> fa | 0) == (A | 0) ? n : A >> 31 ^ 2147483647;
- }
- Nc(n, _ + (r << 1) | 0, Y + (r << 1) | 0, y);
- n = r + 1 | 0;
- if ((n | 0) == 5) break;
- j = b[ha + (n << 1) >> 1] | 0;
- r = n;
- }
- M = _ + 2 | 0;
- N = Y + 2 | 0;
- fa = B << 16 >> 16;
- $ = _ + 4 | 0;
- aa = Y + 4 | 0;
- ba = _ + 6 | 0;
- ca = Y + 6 | 0;
- da = _ + 8 | 0;
- ea = Y + 8 | 0;
- E = 0;
- j = 2147483647;
- h = 0;
- n = 0;
- while (1) {
- L = b[P + (h << 1) >> 1] | 0;
- B = Z(L, L) | 0;
- if (B >>> 0 > 1073741823) {
- c[y >> 2] = 1;
- B = 32767;
- } else B = B >>> 15;
- x = b[Y >> 1] | 0;
- A = B << 16 >> 16;
- B = Z(A, b[_ >> 1] | 0) | 0;
- if ((B | 0) == 1073741824) {
- c[y >> 2] = 1;
- r = 2147483647;
- } else r = B << 1;
- K = (Z(x << 16 >> 16, A) | 0) >> 15;
- B = r + (K << 1) | 0;
- if ((r ^ K | 0) > 0 & (B ^ r | 0) < 0) {
- c[y >> 2] = 1;
- B = (r >>> 31) + 2147483647 | 0;
- }
- x = b[N >> 1] | 0;
- A = Z(b[M >> 1] | 0, L) | 0;
- if ((A | 0) != 1073741824) {
- r = (A << 1) + B | 0;
- if ((A ^ B | 0) > 0 & (r ^ B | 0) < 0) {
- c[y >> 2] = 1;
- r = (B >>> 31) + 2147483647 | 0;
- }
- } else {
- c[y >> 2] = 1;
- r = 2147483647;
- }
- B = (Z(x << 16 >> 16, L) | 0) >> 15;
- if ((B | 0) > 32767) {
- c[y >> 2] = 1;
- B = 32767;
- }
- K = B << 16;
- B = (K >> 15) + r | 0;
- if ((K >> 16 ^ r | 0) > 0 & (B ^ r | 0) < 0) {
- c[y >> 2] = 1;
- K = (r >>> 31) + 2147483647 | 0;
- } else K = B;
- I = (K >>> 31) + 2147483647 | 0;
- J = h & 65535;
- B = E;
- G = 0;
- H = O;
- do {
- A = (Z(b[H >> 1] | 0, fa) | 0) >> 15;
- H = H + 6 | 0;
- if ((A | 0) > 32767) {
- c[y >> 2] = 1;
- A = 32767;
- }
- F = A << 16 >> 16;
- A = Z(F, F) | 0;
- if ((A | 0) == 1073741824) {
- c[y >> 2] = 1;
- D = 2147483647;
- } else D = A << 1;
- Nc(D, ia, ja, y);
- A = Z(F, L) | 0;
- if ((A | 0) == 1073741824) {
- c[y >> 2] = 1;
- D = 2147483647;
- } else D = A << 1;
- Nc(D, ka, ga, y);
- r = b[aa >> 1] | 0;
- C = b[ja >> 1] | 0;
- A = b[$ >> 1] | 0;
- x = b[ia >> 1] | 0;
- E = Z(x, A) | 0;
- if ((E | 0) != 1073741824) {
- D = (E << 1) + K | 0;
- if ((E ^ K | 0) > 0 & (D ^ K | 0) < 0) {
- c[y >> 2] = 1;
- D = I;
- }
- } else {
- c[y >> 2] = 1;
- D = 2147483647;
- }
- E = (Z(C << 16 >> 16, A) | 0) >> 15;
- if ((E | 0) > 32767) {
- c[y >> 2] = 1;
- E = 32767;
- }
- C = E << 16;
- E = (C >> 15) + D | 0;
- if ((C >> 16 ^ D | 0) > 0 & (E ^ D | 0) < 0) {
- c[y >> 2] = 1;
- E = (D >>> 31) + 2147483647 | 0;
- }
- D = (Z(x, r << 16 >> 16) | 0) >> 15;
- if ((D | 0) > 32767) {
- c[y >> 2] = 1;
- D = 32767;
- }
- C = D << 16;
- D = (C >> 15) + E | 0;
- if ((C >> 16 ^ E | 0) > 0 & (D ^ E | 0) < 0) {
- c[y >> 2] = 1;
- D = (E >>> 31) + 2147483647 | 0;
- }
- A = b[ca >> 1] | 0;
- E = Z(b[ba >> 1] | 0, F) | 0;
- if ((E | 0) != 1073741824) {
- C = (E << 1) + D | 0;
- if ((E ^ D | 0) > 0 & (C ^ D | 0) < 0) {
- c[y >> 2] = 1;
- C = (D >>> 31) + 2147483647 | 0;
- }
- } else {
- c[y >> 2] = 1;
- C = 2147483647;
- }
- A = (Z(A << 16 >> 16, F) | 0) >> 15;
- if ((A | 0) > 32767) {
- c[y >> 2] = 1;
- A = 32767;
- }
- F = A << 16;
- A = (F >> 15) + C | 0;
- if ((F >> 16 ^ C | 0) > 0 & (A ^ C | 0) < 0) {
- c[y >> 2] = 1;
- A = (C >>> 31) + 2147483647 | 0;
- }
- x = b[ea >> 1] | 0;
- C = b[ga >> 1] | 0;
- r = b[da >> 1] | 0;
- z = b[ka >> 1] | 0;
- E = Z(z, r) | 0;
- do if ((E | 0) == 1073741824) {
- c[y >> 2] = 1;
- E = 2147483647;
- } else {
- D = (E << 1) + A | 0;
- if (!((E ^ A | 0) > 0 & (D ^ A | 0) < 0)) {
- E = D;
- break
- }
- c[y >> 2] = 1;
- E = (A >>> 31) + 2147483647 | 0;
- } while (0);
- D = (Z(C << 16 >> 16, r) | 0) >> 15;
- if ((D | 0) > 32767) {
- c[y >> 2] = 1;
- D = 32767;
- }
- F = D << 16;
- D = (F >> 15) + E | 0;
- if ((F >> 16 ^ E | 0) > 0 & (D ^ E | 0) < 0) {
- c[y >> 2] = 1;
- D = (E >>> 31) + 2147483647 | 0;
- }
- A = (Z(z, x << 16 >> 16) | 0) >> 15;
- if ((A | 0) > 32767) {
- c[y >> 2] = 1;
- A = 32767;
- }
- F = A << 16;
- A = (F >> 15) + D | 0;
- if ((F >> 16 ^ D | 0) > 0 & (A ^ D | 0) < 0) {
- c[y >> 2] = 1;
- A = (D >>> 31) + 2147483647 | 0;
- }
- F = (A | 0) < (j | 0);
- B = F ? G : B;
- n = F ? J : n;
- j = F ? A : j;
- G = G + 1 << 16 >> 16;
- } while (G << 16 >> 16 < 32);
- h = h + 1 | 0;
- if ((h | 0) == 3) {
- A = B;
- h = n;
- break
- } else E = B;
- }
- N = (A << 16 >> 16) * 3 | 0;
- j = b[O + (N << 1) >> 1] | 0;
- b[u >> 1] = b[O + (N + 1 << 1) >> 1] | 0;
- b[v >> 1] = b[O + (N + 2 << 1) >> 1] | 0;
- j = Z(j << 16 >> 16, fa) | 0;
- if ((j | 0) == 1073741824) {
- c[y >> 2] = 1;
- B = 2147483647;
- } else B = j << 1;
- N = 9 - V | 0;
- O = N & 65535;
- N = N << 16 >> 16;
- M = O << 16 >> 16 > 0;
- if (M) B = O << 16 >> 16 < 31 ? B >> N : 0; else {
- K = 0 - N << 16 >> 16;
- L = B << K;
- B = (L >> K | 0) == (B | 0) ? L : B >> 31 ^ 2147483647;
- }
- b[t >> 1] = B >>> 16;
- L = h << 16 >> 16;
- P = b[P + (L << 1) >> 1] | 0;
- b[s >> 1] = P;
- Q = b[Q + (L << 1) >> 1] | 0;
- Ub(d, f, g, P, o, W, X, R, y);
- xc(a, b[R >> 1] | 0, b[t >> 1] | 0, T, y);
- if (!((b[W >> 1] | 0) != 0 & (b[T >> 1] | 0) > 0)) {
- y = A;
- u = c[w >> 2] | 0;
- t = u + 2 | 0;
- b[u >> 1] = Q;
- u = u + 4 | 0;
- c[w >> 2] = u;
- b[t >> 1] = y;
- i = la;
- return
- }
- F = W + 6 | 0;
- b[F >> 1] = l;
- D = X + 6 | 0;
- b[D >> 1] = k;
- m = ((Ge(q, m, y) | 0) & 65535) + 10 | 0;
- x = m << 16 >> 16;
- if ((m & 65535) << 16 >> 16 < 0) {
- n = 0 - x << 16;
- if ((n | 0) < 983040) p = p << 16 >> 16 >> (n >> 16) & 65535; else p = 0;
- } else {
- n = p << 16 >> 16;
- r = n << x;
- if ((r << 16 >> 16 >> x | 0) == (n | 0)) p = r & 65535; else p = (n >>> 15 ^ 32767) & 65535;
- }
- j = b[s >> 1] | 0;
- B = b[T >> 1] | 0;
- S = c[S >> 2] | 0;
- r = b[t >> 1] | 0;
- T = 10 - V | 0;
- x = T << 16 >> 16;
- if ((T & 65535) << 16 >> 16 < 0) {
- n = 0 - x << 16;
- if ((n | 0) < 983040) l = r << 16 >> 16 >> (n >> 16) & 65535; else l = 0;
- } else {
- n = r << 16 >> 16;
- r = n << x;
- if ((r << 16 >> 16 >> x | 0) == (n | 0)) l = r & 65535; else l = (n >>> 15 ^ 32767) & 65535;
- }
- h = j << 16 >> 16;
- n = Z(h, h) | 0;
- if (n >>> 0 > 1073741823) {
- c[y >> 2] = 1;
- j = 32767;
- } else j = n >>> 15;
- A = Rd(32767 - (B & 65535) & 65535, 1, y) | 0;
- B = B << 16 >> 16;
- n = Z(b[W + 2 >> 1] | 0, B) | 0;
- if ((n | 0) == 1073741824) {
- c[y >> 2] = 1;
- n = 2147483647;
- } else n = n << 1;
- T = n << 1;
- n = Z(((T >> 1 | 0) == (n | 0) ? T : n >> 31 ^ 2147418112) >> 16, j << 16 >> 16) | 0;
- if ((n | 0) == 1073741824) {
- c[y >> 2] = 1;
- E = 2147483647;
- } else E = n << 1;
- C = (e[X + 2 >> 1] | 0) + 65521 | 0;
- x = C & 65535;
- n = Z(b[W + 4 >> 1] | 0, B) | 0;
- if ((n | 0) == 1073741824) {
- c[y >> 2] = 1;
- j = 2147483647;
- } else j = n << 1;
- n = j << 1;
- n = (Z(((n >> 1 | 0) == (j | 0) ? n : j >> 31 ^ 2147418112) >> 16, h) | 0) >> 15;
- if ((n | 0) > 32767) {
- c[y >> 2] = 1;
- n = 32767;
- }
- b[$ >> 1] = n;
- j = U & 65535;
- b[ia >> 1] = j;
- j = Rd(b[X + 4 >> 1] | 0, j, y) | 0;
- n = Z(b[F >> 1] | 0, B) | 0;
- if ((n | 0) == 1073741824) {
- c[y >> 2] = 1;
- n = 2147483647;
- } else n = n << 1;
- z = n << 1;
- b[ba >> 1] = ((z >> 1 | 0) == (n | 0) ? z : n >> 31 ^ 2147418112) >>> 16;
- z = ((V << 17 >> 17 | 0) == (V | 0) ? V << 1 : V >>> 15 ^ 32767) + 65529 & 65535;
- b[ia >> 1] = z;
- z = Rd(b[D >> 1] | 0, z, y) | 0;
- n = (Z(b[F >> 1] | 0, A << 16 >> 16) | 0) >> 15;
- if ((n | 0) > 32767) {
- c[y >> 2] = 1;
- n = 32767;
- }
- b[da >> 1] = n;
- A = Rd(z, 1, y) | 0;
- r = Z(b[W >> 1] | 0, B) | 0;
- if ((r | 0) == 1073741824) {
- c[y >> 2] = 1;
- n = 2147483647;
- } else n = r << 1;
- D = Fe(n, ia, y) | 0;
- h = (e[ia >> 1] | 0) + 47 | 0;
- b[ia >> 1] = h;
- h = (e[X >> 1] | 0) - (h & 65535) | 0;
- B = h + 31 & 65535;
- B = x << 16 >> 16 > B << 16 >> 16 ? x : B;
- B = j << 16 >> 16 > B << 16 >> 16 ? j : B;
- B = z << 16 >> 16 > B << 16 >> 16 ? z : B;
- B = (A << 16 >> 16 > B << 16 >> 16 ? A : B) << 16 >> 16;
- r = B - (C & 65535) | 0;
- n = r & 65535;
- r = r << 16 >> 16;
- if (n << 16 >> 16 > 0) K = n << 16 >> 16 < 31 ? E >> r : 0; else {
- X = 0 - r << 16 >> 16;
- K = E << X;
- K = (K >> X | 0) == (E | 0) ? K : E >> 31 ^ 2147483647;
- }
- x = B - (j & 65535) | 0;
- n = x & 65535;
- r = e[$ >> 1] << 16;
- x = x << 16 >> 16;
- if (n << 16 >> 16 > 0) r = n << 16 >> 16 < 31 ? r >> x : 0; else {
- W = 0 - x << 16 >> 16;
- X = r << W;
- r = (X >> W | 0) == (r | 0) ? X : r >> 31 ^ 2147483647;
- }
- Nc(r, $, aa, y);
- z = B - (z & 65535) | 0;
- r = z & 65535;
- x = e[ba >> 1] << 16;
- z = z << 16 >> 16;
- if (r << 16 >> 16 > 0) r = r << 16 >> 16 < 31 ? x >> z : 0; else {
- X = 0 - z << 16 >> 16;
- r = x << X;
- r = (r >> X | 0) == (x | 0) ? r : x >> 31 ^ 2147483647;
- }
- Nc(r, ba, ca, y);
- z = B - (A & 65535) | 0;
- r = z & 65535;
- x = e[da >> 1] << 16;
- z = z << 16 >> 16;
- if (r << 16 >> 16 > 0) r = r << 16 >> 16 < 31 ? x >> z : 0; else {
- X = 0 - z << 16 >> 16;
- r = x << X;
- r = (r >> X | 0) == (x | 0) ? r : x >> 31 ^ 2147483647;
- }
- Nc(r, da, ea, y);
- z = B + 65505 | 0;
- b[ia >> 1] = z;
- z = z - (h & 65535) | 0;
- r = De(z & 65535, 1, y) | 0;
- x = r << 16 >> 16;
- if (r << 16 >> 16 > 0) x = r << 16 >> 16 < 31 ? D >> x : 0; else {
- X = 0 - x << 16 >> 16;
- x = D << X;
- x = (x >> X | 0) == (D | 0) ? x : D >> 31 ^ 2147483647;
- }
- do if (!(z & 1)) E = x; else {
- Nc(x, _, Y, y);
- r = b[Y >> 1] | 0;
- x = b[_ >> 1] | 0;
- if ((x * 23170 | 0) == 1073741824) {
- c[y >> 2] = 1;
- z = 2147483647;
- } else z = x * 46340 | 0;
- _ = (r << 16 >> 16) * 23170 >> 15;
- x = z + (_ << 1) | 0;
- if (!((z ^ _ | 0) > 0 & (x ^ z | 0) < 0)) {
- E = x;
- break
- }
- c[y >> 2] = 1;
- E = (z >>> 31) + 2147483647 | 0;
- } while (0);
- F = (K >>> 31) + 2147483647 | 0;
- D = 2147483647;
- C = 0;
- x = 0;
- G = S;
- while (1) {
- r = (Z(b[G >> 1] | 0, fa) | 0) >> 15;
- G = G + 6 | 0;
- if ((r | 0) > 32767) {
- c[y >> 2] = 1;
- r = 32767;
- }
- z = r & 65535;
- if (z << 16 >> 16 >= l << 16 >> 16) break;
- j = r << 16 >> 16;
- r = Z(j, j) | 0;
- if ((r | 0) == 1073741824) {
- c[y >> 2] = 1;
- n = 2147483647;
- } else n = r << 1;
- Nc(n, ja, ka, y);
- r = (Ge(z, p, y) | 0) << 16 >> 16;
- r = Z(r, r) | 0;
- if ((r | 0) == 1073741824) {
- c[y >> 2] = 1;
- r = 2147483647;
- } else r = r << 1;
- Nc(r, ga, ha, y);
- z = b[aa >> 1] | 0;
- n = Z(b[$ >> 1] | 0, j) | 0;
- do if ((n | 0) == 1073741824) {
- c[y >> 2] = 1;
- n = 2147483647;
- } else {
- r = (n << 1) + K | 0;
- if (!((n ^ K | 0) > 0 & (r ^ K | 0) < 0)) {
- n = r;
- break
- }
- c[y >> 2] = 1;
- n = F;
- } while (0);
- r = (Z(z << 16 >> 16, j) | 0) >> 15;
- if ((r | 0) > 32767) {
- c[y >> 2] = 1;
- r = 32767;
- }
- _ = r << 16;
- r = (_ >> 15) + n | 0;
- if ((_ >> 16 ^ n | 0) > 0 & (r ^ n | 0) < 0) {
- c[y >> 2] = 1;
- r = (n >>> 31) + 2147483647 | 0;
- }
- h = b[ca >> 1] | 0;
- A = b[ka >> 1] | 0;
- j = b[ba >> 1] | 0;
- B = b[ja >> 1] | 0;
- n = Z(B, j) | 0;
- do if ((n | 0) == 1073741824) {
- c[y >> 2] = 1;
- z = 2147483647;
- } else {
- z = (n << 1) + r | 0;
- if (!((n ^ r | 0) > 0 & (z ^ r | 0) < 0)) break;
- c[y >> 2] = 1;
- z = (r >>> 31) + 2147483647 | 0;
- } while (0);
- n = (Z(A << 16 >> 16, j) | 0) >> 15;
- if ((n | 0) > 32767) {
- c[y >> 2] = 1;
- n = 32767;
- }
- _ = n << 16;
- n = (_ >> 15) + z | 0;
- if ((_ >> 16 ^ z | 0) > 0 & (n ^ z | 0) < 0) {
- c[y >> 2] = 1;
- n = (z >>> 31) + 2147483647 | 0;
- }
- r = (Z(B, h << 16 >> 16) | 0) >> 15;
- if ((r | 0) > 32767) {
- c[y >> 2] = 1;
- r = 32767;
- }
- _ = r << 16;
- r = (_ >> 15) + n | 0;
- if ((_ >> 16 ^ n | 0) > 0 & (r ^ n | 0) < 0) {
- c[y >> 2] = 1;
- r = (n >>> 31) + 2147483647 | 0;
- }
- r = Fe(r, ia, y) | 0;
- z = De(b[ia >> 1] | 0, 1, y) | 0;
- n = z << 16 >> 16;
- if (z << 16 >> 16 > 0) z = z << 16 >> 16 < 31 ? r >> n : 0; else {
- _ = 0 - n << 16 >> 16;
- z = r << _;
- z = (z >> _ | 0) == (r | 0) ? z : r >> 31 ^ 2147483647;
- }
- r = z - E | 0;
- if (((r ^ z) & (z ^ E) | 0) < 0) {
- c[y >> 2] = 1;
- r = (z >>> 31) + 2147483647 | 0;
- }
- r = (Ce(r, y) | 0) << 16 >> 16;
- r = Z(r, r) | 0;
- if ((r | 0) == 1073741824) {
- c[y >> 2] = 1;
- z = 2147483647;
- } else z = r << 1;
- B = b[ea >> 1] | 0;
- j = b[ha >> 1] | 0;
- A = b[da >> 1] | 0;
- h = b[ga >> 1] | 0;
- n = Z(h, A) | 0;
- do if ((n | 0) == 1073741824) {
- c[y >> 2] = 1;
- r = 2147483647;
- } else {
- r = (n << 1) + z | 0;
- if (!((n ^ z | 0) > 0 & (r ^ z | 0) < 0)) break;
- c[y >> 2] = 1;
- r = (z >>> 31) + 2147483647 | 0;
- } while (0);
- n = (Z(j << 16 >> 16, A) | 0) >> 15;
- if ((n | 0) > 32767) {
- c[y >> 2] = 1;
- n = 32767;
- }
- _ = n << 16;
- n = (_ >> 15) + r | 0;
- if ((_ >> 16 ^ r | 0) > 0 & (n ^ r | 0) < 0) {
- c[y >> 2] = 1;
- n = (r >>> 31) + 2147483647 | 0;
- }
- r = (Z(h, B << 16 >> 16) | 0) >> 15;
- if ((r | 0) > 32767) {
- c[y >> 2] = 1;
- r = 32767;
- }
- _ = r << 16;
- r = (_ >> 15) + n | 0;
- if ((_ >> 16 ^ n | 0) > 0 & (r ^ n | 0) < 0) {
- c[y >> 2] = 1;
- r = (n >>> 31) + 2147483647 | 0;
- }
- n = (r | 0) < (D | 0);
- x = n ? C : x;
- C = C + 1 << 16 >> 16;
- if (C << 16 >> 16 >= 32) break; else D = n ? r : D;
- }
- ka = (x << 16 >> 16) * 3 | 0;
- z = b[S + (ka << 1) >> 1] | 0;
- b[u >> 1] = b[S + (ka + 1 << 1) >> 1] | 0;
- b[v >> 1] = b[S + (ka + 2 << 1) >> 1] | 0;
- z = Z(z << 16 >> 16, fa) | 0;
- if ((z | 0) == 1073741824) {
- c[y >> 2] = 1;
- z = 2147483647;
- } else z = z << 1;
- if (M) z = O << 16 >> 16 < 31 ? z >> N : 0; else {
- u = 0 - N << 16 >> 16;
- y = z << u;
- z = (y >> u | 0) == (z | 0) ? y : z >> 31 ^ 2147483647;
- }
- b[t >> 1] = z >>> 16;
- y = x;
- u = c[w >> 2] | 0;
- t = u + 2 | 0;
- b[u >> 1] = Q;
- u = u + 4 | 0;
- c[w >> 2] = u;
- b[t >> 1] = y;
- i = la;
- return
- }
- function md(a, c, d, e, f, g, h, i) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- i = i | 0;
- var j = 0, k = 0, l = 0, m = 0, n = 0;
- n = (a | 0) == 7;
- j = b[e >> 1] | 0;
- if (n) {
- j = j << 16 >> 16 >>> 1 & 65535;
- m = re(c, d, i) | 0;
- c = m << 16;
- a = c >> 16;
- if ((m << 20 >> 20 | 0) == (a | 0)) a = c >> 12; else a = a >>> 15 ^ 32767;
- } else {
- m = re(c, d, i) | 0;
- c = m << 16;
- a = c >> 16;
- if ((m << 21 >> 21 | 0) == (a | 0)) a = c >> 11; else a = a >>> 15 ^ 32767;
- }
- m = a << 16 >> 16;
- i = j << 16 >> 16;
- c = i - ((Z(m, b[h >> 1] | 0) | 0) >>> 15 & 65535) | 0;
- c = ((c & 32768 | 0) != 0 ? 0 - c | 0 : c) & 65535;
- k = 1;
- a = 0;
- l = h;
- while (1) {
- l = l + 6 | 0;
- j = i - ((Z(b[l >> 1] | 0, m) | 0) >>> 15 & 65535) | 0;
- d = j << 16;
- j = (d | 0) < 0 ? 0 - (d >> 16) | 0 : j;
- d = (j << 16 >> 16 | 0) < (c << 16 >> 16 | 0);
- a = d ? k : a;
- k = k + 1 << 16 >> 16;
- if (k << 16 >> 16 >= 32) break; else c = d ? j & 65535 : c;
- }
- l = (a << 16 >> 16) * 196608 >> 16;
- b[e >> 1] = (Z(b[h + (l << 1) >> 1] | 0, m) | 0) >>> 15 << (n & 1);
- b[f >> 1] = b[h + (l + 1 << 1) >> 1] | 0;
- b[g >> 1] = b[h + (l + 2 << 1) >> 1] | 0;
- return a | 0
- }
- function nd(a, c, d, e, f, g, h) {
- a = a | 0;
- c = c | 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;
- i = Ge(b[d >> 1] | 0, b[g >> 1] | 0, h) | 0;
- i = (i & 65535) - ((i & 65535) >>> 15 & 65535) | 0;
- i = (i << 16 >> 31 ^ i) & 65535;
- k = 0;
- l = 1;
- while (1) {
- j = b[g + (l << 1) >> 1] | 0;
- if (j << 16 >> 16 > c << 16 >> 16) j = i; else {
- j = Ge(b[d >> 1] | 0, j, h) | 0;
- j = (j & 65535) - ((j & 65535) >>> 15 & 65535) | 0;
- j = (j << 16 >> 31 ^ j) & 65535;
- n = j << 16 >> 16 < i << 16 >> 16;
- j = n ? j : i;
- k = n ? l & 65535 : k;
- }
- l = l + 1 | 0;
- if ((l | 0) == 16) break; else i = j;
- }
- if ((a | 0) != 5) {
- i = b[g + (k << 16 >> 16 << 1) >> 1] | 0;
- if ((a | 0) == 7) {
- b[d >> 1] = i & 65532;
- return k | 0
- } else {
- b[d >> 1] = i;
- return k | 0
- }
- }
- j = k << 16 >> 16;
- switch (k << 16 >> 16) {
- case 0: {
- i = 0;
- break
- }
- case 15: {
- m = 8;
- break
- }
- default:
- if ((b[g + (j + 1 << 1) >> 1] | 0) > c << 16 >> 16) m = 8; else i = j + 65535 & 65535;
- }
- if ((m | 0) == 8) i = j + 65534 & 65535;
- b[f >> 1] = i;
- n = i << 16 >> 16;
- b[e >> 1] = b[g + (n << 1) >> 1] | 0;
- n = n + 1 | 0;
- b[f + 2 >> 1] = n;
- n = n << 16 >> 16;
- b[e + 2 >> 1] = b[g + (n << 1) >> 1] | 0;
- n = n + 1 | 0;
- b[f + 4 >> 1] = n;
- b[e + 4 >> 1] = b[g + (n << 16 >> 16 << 1) >> 1] | 0;
- b[d >> 1] = b[g + (j << 1) >> 1] | 0;
- return k | 0
- }
- function od(a, d, f, g, h, j, k, l, m, n, o, p) {
- a = a | 0;
- d = d | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- k = k | 0;
- l = l | 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;
- K = i;
- i = i + 32 | 0;
- s = K + 20 | 0;
- t = K + 10 | 0;
- r = K;
- switch (a | 0) {
- case 3:
- case 4:
- case 6: {
- o = o + 84 | 0;
- J = 128;
- break
- }
- default: {
- o = o + 80 | 0;
- J = 64;
- }
- }
- I = c[o >> 2] | 0;
- q = re(14, f, p) | 0;
- H = d << 16 >> 16;
- G = H + 65525 | 0;
- a = (e[h >> 1] | 0) + 65523 & 65535;
- b[r >> 1] = a;
- d = (e[h + 2 >> 1] | 0) + 65522 & 65535;
- b[r + 2 >> 1] = d;
- F = G << 16 >> 16;
- F = Rd(b[h + 4 >> 1] | 0, ((G << 17 >> 17 | 0) == (F | 0) ? G << 1 : F >>> 15 ^ 32767) + 15 & 65535, p) | 0;
- b[r + 4 >> 1] = F;
- G = Rd(b[h + 6 >> 1] | 0, G & 65535, p) | 0;
- b[r + 6 >> 1] = G;
- h = Rd(b[h + 8 >> 1] | 0, H + 65526 & 65535, p) | 0;
- b[r + 8 >> 1] = h;
- d = d << 16 >> 16 > a << 16 >> 16 ? d : a;
- d = F << 16 >> 16 > d << 16 >> 16 ? F : d;
- d = G << 16 >> 16 > d << 16 >> 16 ? G : d;
- d = (h << 16 >> 16 > d << 16 >> 16 ? h : d) + 1 & 65535;
- h = 0;
- while (1) {
- f = d - (a & 65535) | 0;
- o = f & 65535;
- a = e[g + (h << 1) >> 1] << 16;
- f = f << 16 >> 16;
- if (o << 16 >> 16 > 0) o = o << 16 >> 16 < 31 ? a >> f : 0; else {
- G = 0 - f << 16 >> 16;
- o = a << G;
- o = (o >> G | 0) == (a | 0) ? o : a >> 31 ^ 2147483647;
- }
- Nc(o, s + (h << 1) | 0, t + (h << 1) | 0, p);
- o = h + 1 | 0;
- if ((o | 0) == 5) break;
- a = b[r + (o << 1) >> 1] | 0;
- h = o;
- }
- G = q << 16 >> 16;
- y = b[s >> 1] | 0;
- z = b[t >> 1] | 0;
- A = b[s + 2 >> 1] | 0;
- B = b[t + 2 >> 1] | 0;
- C = b[s + 4 >> 1] | 0;
- D = b[t + 4 >> 1] | 0;
- E = b[s + 6 >> 1] | 0;
- F = b[t + 6 >> 1] | 0;
- x = b[s + 8 >> 1] | 0;
- u = b[t + 8 >> 1] | 0;
- d = 2147483647;
- v = 0;
- o = 0;
- w = I;
- while (1) {
- h = b[w >> 1] | 0;
- if (h << 16 >> 16 > j << 16 >> 16) q = d; else {
- q = (Z(b[w + 2 >> 1] | 0, G) | 0) >> 15;
- if ((q | 0) > 32767) {
- c[p >> 2] = 1;
- q = 32767;
- }
- t = h << 16 >> 16;
- h = Z(t, t) | 0;
- if (h >>> 0 > 1073741823) {
- c[p >> 2] = 1;
- r = 32767;
- } else r = h >>> 15;
- f = q << 16 >> 16;
- q = Z(f, f) | 0;
- if (q >>> 0 > 1073741823) {
- c[p >> 2] = 1;
- s = 32767;
- } else s = q >>> 15;
- g = (Z(f, t) | 0) >> 15;
- if ((g | 0) > 32767) {
- c[p >> 2] = 1;
- g = 32767;
- }
- q = r << 16 >> 16;
- r = Z(y, q) | 0;
- if ((r | 0) == 1073741824) {
- c[p >> 2] = 1;
- h = 2147483647;
- } else h = r << 1;
- q = (Z(z, q) | 0) >> 15;
- r = h + (q << 1) | 0;
- if ((h ^ q | 0) > 0 & (r ^ h | 0) < 0) {
- c[p >> 2] = 1;
- r = (h >>> 31) + 2147483647 | 0;
- }
- q = Z(A, t) | 0;
- if ((q | 0) == 1073741824) {
- c[p >> 2] = 1;
- h = 2147483647;
- } else h = q << 1;
- t = (Z(B, t) | 0) >> 15;
- q = h + (t << 1) | 0;
- if ((h ^ t | 0) > 0 & (q ^ h | 0) < 0) {
- c[p >> 2] = 1;
- q = (h >>> 31) + 2147483647 | 0;
- }
- h = q + r | 0;
- if ((q ^ r | 0) > -1 & (h ^ r | 0) < 0) {
- c[p >> 2] = 1;
- h = (r >>> 31) + 2147483647 | 0;
- }
- q = s << 16 >> 16;
- r = Z(C, q) | 0;
- if ((r | 0) == 1073741824) {
- c[p >> 2] = 1;
- a = 2147483647;
- } else a = r << 1;
- t = (Z(D, q) | 0) >> 15;
- r = a + (t << 1) | 0;
- if ((a ^ t | 0) > 0 & (r ^ a | 0) < 0) {
- c[p >> 2] = 1;
- r = (a >>> 31) + 2147483647 | 0;
- }
- q = r + h | 0;
- if ((r ^ h | 0) > -1 & (q ^ h | 0) < 0) {
- c[p >> 2] = 1;
- a = (h >>> 31) + 2147483647 | 0;
- } else a = q;
- q = Z(E, f) | 0;
- if ((q | 0) == 1073741824) {
- c[p >> 2] = 1;
- r = 2147483647;
- } else r = q << 1;
- t = (Z(F, f) | 0) >> 15;
- q = r + (t << 1) | 0;
- if ((r ^ t | 0) > 0 & (q ^ r | 0) < 0) {
- c[p >> 2] = 1;
- q = (r >>> 31) + 2147483647 | 0;
- }
- h = q + a | 0;
- if ((q ^ a | 0) > -1 & (h ^ a | 0) < 0) {
- c[p >> 2] = 1;
- r = (a >>> 31) + 2147483647 | 0;
- } else r = h;
- h = g << 16 >> 16;
- q = Z(x, h) | 0;
- if ((q | 0) == 1073741824) {
- c[p >> 2] = 1;
- a = 2147483647;
- } else a = q << 1;
- t = (Z(u, h) | 0) >> 15;
- q = a + (t << 1) | 0;
- if ((a ^ t | 0) > 0 & (q ^ a | 0) < 0) {
- c[p >> 2] = 1;
- h = (a >>> 31) + 2147483647 | 0;
- } else h = q;
- q = h + r | 0;
- if ((h ^ r | 0) > -1 & (q ^ r | 0) < 0) {
- c[p >> 2] = 1;
- q = (r >>> 31) + 2147483647 | 0;
- }
- t = (q | 0) < (d | 0);
- q = t ? q : d;
- o = t ? v : o;
- }
- w = w + 8 | 0;
- v = v + 1 << 16 >> 16;
- if ((v << 16 >> 16 | 0) >= (J | 0)) break; else d = q;
- }
- j = o << 16 >> 16;
- j = ((j << 18 >> 18 | 0) == (j | 0) ? j << 2 : j >>> 15 ^ 32767) << 16 >> 16;
- b[k >> 1] = b[I + (j << 1) >> 1] | 0;
- d = b[I + (j + 1 << 1) >> 1] | 0;
- b[m >> 1] = b[I + (j + 2 << 1) >> 1] | 0;
- b[n >> 1] = b[I + (j + 3 << 1) >> 1] | 0;
- d = Z(d << 16 >> 16, G) | 0;
- if ((d | 0) == 1073741824) {
- c[p >> 2] = 1;
- a = 2147483647;
- } else a = d << 1;
- f = 10 - H | 0;
- d = f & 65535;
- f = f << 16 >> 16;
- if (d << 16 >> 16 > 0) {
- p = d << 16 >> 16 < 31 ? a >> f : 0;
- p = p >>> 16;
- p = p & 65535;
- b[l >> 1] = p;
- i = K;
- return o | 0
- } else {
- m = 0 - f << 16 >> 16;
- p = a << m;
- p = (p >> m | 0) == (a | 0) ? p : a >> 31 ^ 2147483647;
- p = p >>> 16;
- p = p & 65535;
- b[l >> 1] = p;
- i = K;
- return o | 0
- }
- return 0
- }
- function pd(a, c, d, f, g, h, j, k, l) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- k = k | 0;
- l = l | 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, _ = 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;
- wa = i;
- i = i + 160 | 0;
- va = wa;
- n = a << 16 >> 16;
- ta = a << 16 >> 16 == 10;
- ua = b[j + (b[h >> 1] << 1) >> 1] | 0;
- if (a << 16 >> 16 > 0) {
- l = 0;
- m = k;
- while (1) {
- b[m >> 1] = l;
- l = l + 1 << 16 >> 16;
- if (l << 16 >> 16 >= a << 16 >> 16) break; else m = m + 2 | 0;
- }
- }
- if (d << 16 >> 16 <= 1) {
- i = wa;
- return
- }
- ra = h + 2 | 0;
- sa = ua << 16 >> 16;
- oa = f + (sa << 1) | 0;
- pa = g + (sa * 80 | 0) + (sa << 1) | 0;
- qa = h + 6 | 0;
- X = c & 65535;
- Y = h + 4 | 0;
- _ = h + 10 | 0;
- $ = h + 8 | 0;
- aa = h + 14 | 0;
- ba = h + 12 | 0;
- ca = h + 18 | 0;
- da = h + 16 | 0;
- ea = k + 2 | 0;
- fa = k + 4 | 0;
- ga = k + 6 | 0;
- ha = k + 8 | 0;
- ia = k + 10 | 0;
- ja = k + 12 | 0;
- ka = k + 14 | 0;
- la = k + 16 | 0;
- ma = k + 18 | 0;
- na = a << 16 >> 16 > 2;
- V = h + (n + -1 << 1) | 0;
- T = 1;
- W = 1;
- N = 0;
- O = 0;
- U = -1;
- while (1) {
- S = b[j + (b[ra >> 1] << 1) >> 1] | 0;
- R = S << 16 >> 16;
- c = (e[f + (R << 1) >> 1] | 0) + (e[oa >> 1] | 0) | 0;
- m = (b[g + (sa * 80 | 0) + (R << 1) >> 1] << 13) + 32768 + ((b[g + (R * 80 | 0) + (R << 1) >> 1] | 0) + (b[pa >> 1] | 0) << 12) | 0;
- n = b[qa >> 1] | 0;
- if (n << 16 >> 16 < 40) {
- n = n << 16 >> 16;
- o = va;
- while (1) {
- P = (b[g + (n * 80 | 0) + (n << 1) >> 1] | 0) >>> 1;
- M = b[g + (n * 80 | 0) + (sa << 1) >> 1] | 0;
- Q = b[g + (n * 80 | 0) + (R << 1) >> 1] | 0;
- b[o >> 1] = c + (e[f + (n << 1) >> 1] | 0);
- b[o + 2 >> 1] = (M + 2 + P + Q | 0) >>> 2;
- n = n + X | 0;
- if ((n & 65535) << 16 >> 16 < 40) {
- n = n << 16 >> 16;
- o = o + 4 | 0;
- } else break
- }
- B = b[qa >> 1] | 0;
- } else B = n;
- c = b[Y >> 1] | 0;
- A = m >> 12;
- n = c << 16 >> 16;
- a:do if (c << 16 >> 16 < 40) {
- z = B << 16 >> 16;
- if (B << 16 >> 16 < 40) {
- o = 1;
- q = c;
- s = B;
- r = 0;
- p = -1;
- } else while (1) {
- n = n + X | 0;
- if ((n & 65535) << 16 >> 16 < 40) n = n << 16 >> 16; else {
- o = 1;
- Q = c;
- P = B;
- n = 0;
- break a
- }
- }
- while (1) {
- y = ((b[g + (n * 80 | 0) + (n << 1) >> 1] | 0) + A >> 1) + (b[g + (n * 80 | 0) + (sa << 1) >> 1] | 0) + (b[g + (n * 80 | 0) + (R << 1) >> 1] | 0) | 0;
- x = e[f + (n << 1) >> 1] | 0;
- v = z;
- w = B;
- u = va;
- t = r;
- while (1) {
- m = (e[u >> 1] | 0) + x | 0;
- l = m << 16 >> 16;
- l = (Z(l, l) | 0) >>> 15;
- r = (y + (b[g + (n * 80 | 0) + (v << 1) >> 1] | 0) >> 2) + (b[u + 2 >> 1] | 0) >> 1;
- if ((Z(l << 16 >> 16, o << 16 >> 16) | 0) > (Z(r, p << 16 >> 16) | 0)) {
- o = r & 65535;
- q = c;
- s = w;
- r = m & 65535;
- p = l & 65535;
- } else r = t;
- m = v + X | 0;
- w = m & 65535;
- if (w << 16 >> 16 >= 40) break; else {
- v = m << 16 >> 16;
- u = u + 4 | 0;
- t = r;
- }
- }
- n = n + X | 0;
- c = n & 65535;
- if (c << 16 >> 16 < 40) n = n << 16 >> 16; else {
- Q = q;
- P = s;
- n = r;
- break
- }
- }
- } else {
- o = 1;
- Q = c;
- P = B;
- n = 0;
- } while (0);
- q = o << 16 >> 16 << 15;
- o = b[_ >> 1] | 0;
- if (o << 16 >> 16 < 40) {
- m = Q << 16 >> 16;
- l = P << 16 >> 16;
- c = n & 65535;
- o = o << 16 >> 16;
- n = va;
- while (1) {
- J = b[g + (o * 80 | 0) + (o << 1) >> 1] >> 1;
- I = b[g + (o * 80 | 0) + (sa << 1) >> 1] | 0;
- K = b[g + (o * 80 | 0) + (R << 1) >> 1] | 0;
- L = b[g + (o * 80 | 0) + (m << 1) >> 1] | 0;
- M = b[g + (o * 80 | 0) + (l << 1) >> 1] | 0;
- b[n >> 1] = (e[f + (o << 1) >> 1] | 0) + c;
- b[n + 2 >> 1] = (I + 2 + J + K + L + M | 0) >>> 2;
- o = o + X | 0;
- if ((o & 65535) << 16 >> 16 < 40) {
- o = o << 16 >> 16;
- n = n + 4 | 0;
- } else break
- }
- J = b[_ >> 1] | 0;
- } else J = o;
- p = b[$ >> 1] | 0;
- o = p << 16 >> 16;
- b:do if (p << 16 >> 16 < 40) {
- C = Q << 16 >> 16;
- D = P << 16 >> 16;
- E = J << 16 >> 16;
- B = q + 32768 | 0;
- if (J << 16 >> 16 < 40) {
- r = 1;
- q = p;
- c = J;
- s = p;
- n = 0;
- p = -1;
- } else while (1) {
- o = o + X | 0;
- if ((o & 65535) << 16 >> 16 < 40) o = o << 16 >> 16; else {
- o = 1;
- M = p;
- L = J;
- n = 0;
- break b
- }
- }
- while (1) {
- l = e[f + (o << 1) >> 1] | 0;
- A = (b[g + (o * 80 | 0) + (R << 1) >> 1] | 0) + (b[g + (o * 80 | 0) + (sa << 1) >> 1] | 0) + (b[g + (o * 80 | 0) + (C << 1) >> 1] | 0) + (b[g + (o * 80 | 0) + (D << 1) >> 1] | 0) | 0;
- z = B + (b[g + (o * 80 | 0) + (o << 1) >> 1] << 11) | 0;
- x = E;
- v = J;
- y = va;
- while (1) {
- t = (e[y >> 1] | 0) + l | 0;
- m = z + (b[y + 2 >> 1] << 14) + (A + (b[g + (o * 80 | 0) + (x << 1) >> 1] | 0) << 12) | 0;
- u = t << 16 >> 16;
- u = (Z(u, u) | 0) >>> 15;
- if ((Z(u << 16 >> 16, r << 16 >> 16) | 0) > (Z(m >> 16, p << 16 >> 16) | 0)) {
- r = m >>> 16 & 65535;
- w = s;
- c = v;
- n = t & 65535;
- p = u & 65535;
- } else w = q;
- q = x + X | 0;
- v = q & 65535;
- if (v << 16 >> 16 >= 40) {
- q = w;
- break
- } else {
- x = q << 16 >> 16;
- q = w;
- y = y + 4 | 0;
- }
- }
- o = o + X | 0;
- s = o & 65535;
- if (s << 16 >> 16 < 40) o = o << 16 >> 16; else {
- o = r;
- M = q;
- L = c;
- break
- }
- }
- } else {
- o = 1;
- M = p;
- L = J;
- n = 0;
- } while (0);
- r = o << 16 >> 16 << 15;
- o = b[aa >> 1] | 0;
- if (o << 16 >> 16 < 40) {
- m = Q << 16 >> 16;
- l = P << 16 >> 16;
- p = M << 16 >> 16;
- q = L << 16 >> 16;
- c = n & 65535;
- o = o << 16 >> 16;
- n = va;
- while (1) {
- F = b[g + (o * 80 | 0) + (o << 1) >> 1] >> 1;
- E = b[g + (sa * 80 | 0) + (o << 1) >> 1] | 0;
- G = b[g + (R * 80 | 0) + (o << 1) >> 1] | 0;
- H = b[g + (m * 80 | 0) + (o << 1) >> 1] | 0;
- I = b[g + (l * 80 | 0) + (o << 1) >> 1] | 0;
- J = b[g + (p * 80 | 0) + (o << 1) >> 1] | 0;
- K = b[g + (q * 80 | 0) + (o << 1) >> 1] | 0;
- b[n >> 1] = (e[f + (o << 1) >> 1] | 0) + c;
- b[n + 2 >> 1] = (E + 4 + F + G + H + I + J + K | 0) >>> 3;
- o = o + X | 0;
- if ((o & 65535) << 16 >> 16 < 40) {
- o = o << 16 >> 16;
- n = n + 4 | 0;
- } else break
- }
- c = b[aa >> 1] | 0;
- } else c = o;
- s = b[ba >> 1] | 0;
- if (s << 16 >> 16 < 40) {
- J = Q << 16 >> 16;
- F = P << 16 >> 16;
- E = M << 16 >> 16;
- D = L << 16 >> 16;
- C = c << 16 >> 16;
- B = c << 16 >> 16 < 40;
- G = r + 32768 | 0;
- I = s << 16 >> 16;
- l = 1;
- w = s;
- v = c;
- H = s;
- q = 0;
- o = -1;
- while (1) {
- if (B) {
- r = e[f + (I << 1) >> 1] | 0;
- n = (b[g + (I * 80 | 0) + (R << 1) >> 1] | 0) + (b[g + (I * 80 | 0) + (sa << 1) >> 1] | 0) + (b[g + (I * 80 | 0) + (J << 1) >> 1] | 0) + (b[g + (I * 80 | 0) + (F << 1) >> 1] | 0) + (b[g + (I * 80 | 0) + (E << 1) >> 1] | 0) + (b[g + (I * 80 | 0) + (D << 1) >> 1] | 0) | 0;
- p = G + (b[g + (I * 80 | 0) + (I << 1) >> 1] << 10) | 0;
- u = C;
- s = c;
- z = v;
- A = va;
- while (1) {
- y = (e[A >> 1] | 0) + r | 0;
- v = p + (b[A + 2 >> 1] << 14) + (n + (b[g + (I * 80 | 0) + (u << 1) >> 1] | 0) << 11) | 0;
- x = y << 16 >> 16;
- x = (Z(x, x) | 0) >>> 15;
- if ((Z(x << 16 >> 16, l << 16 >> 16) | 0) > (Z(v >> 16, o << 16 >> 16) | 0)) {
- l = v >>> 16 & 65535;
- w = H;
- v = s;
- q = y & 65535;
- o = x & 65535;
- } else v = z;
- t = u + X | 0;
- s = t & 65535;
- if (s << 16 >> 16 >= 40) break; else {
- u = t << 16 >> 16;
- z = v;
- A = A + 4 | 0;
- }
- }
- }
- s = I + X | 0;
- H = s & 65535;
- if (H << 16 >> 16 >= 40) {
- K = v;
- break
- } else I = s << 16 >> 16;
- }
- } else {
- l = 1;
- w = s;
- K = c;
- q = 0;
- o = -1;
- }
- if (ta) {
- u = l << 16 >> 16 << 15;
- o = b[ca >> 1] | 0;
- if (o << 16 >> 16 < 40) {
- n = Q << 16 >> 16;
- c = P << 16 >> 16;
- m = M << 16 >> 16;
- l = L << 16 >> 16;
- r = w << 16 >> 16;
- s = K << 16 >> 16;
- p = q & 65535;
- o = o << 16 >> 16;
- q = va;
- while (1) {
- E = b[g + (o * 80 | 0) + (o << 1) >> 1] >> 1;
- D = b[g + (sa * 80 | 0) + (o << 1) >> 1] | 0;
- F = b[g + (R * 80 | 0) + (o << 1) >> 1] | 0;
- G = b[g + (n * 80 | 0) + (o << 1) >> 1] | 0;
- H = b[g + (c * 80 | 0) + (o << 1) >> 1] | 0;
- I = b[g + (m * 80 | 0) + (o << 1) >> 1] | 0;
- J = b[g + (l * 80 | 0) + (o << 1) >> 1] | 0;
- N = b[g + (r * 80 | 0) + (o << 1) >> 1] | 0;
- O = b[g + (s * 80 | 0) + (o << 1) >> 1] | 0;
- b[q >> 1] = (e[f + (o << 1) >> 1] | 0) + p;
- b[q + 2 >> 1] = (D + 4 + E + F + G + H + I + J + N + O | 0) >>> 3;
- o = o + X | 0;
- if ((o & 65535) << 16 >> 16 < 40) {
- o = o << 16 >> 16;
- q = q + 4 | 0;
- } else break
- }
- J = b[ca >> 1] | 0;
- } else J = o;
- r = b[da >> 1] | 0;
- if (r << 16 >> 16 < 40) {
- E = Q << 16 >> 16;
- D = P << 16 >> 16;
- C = M << 16 >> 16;
- m = L << 16 >> 16;
- F = w << 16 >> 16;
- G = K << 16 >> 16;
- H = J << 16 >> 16;
- I = J << 16 >> 16 < 40;
- B = u + 32768 | 0;
- n = r << 16 >> 16;
- l = 1;
- s = r;
- q = J;
- c = r;
- o = -1;
- while (1) {
- if (I) {
- u = e[f + (n << 1) >> 1] | 0;
- p = (b[g + (R * 80 | 0) + (n << 1) >> 1] | 0) + (b[g + (sa * 80 | 0) + (n << 1) >> 1] | 0) + (b[g + (E * 80 | 0) + (n << 1) >> 1] | 0) + (b[g + (D * 80 | 0) + (n << 1) >> 1] | 0) + (b[g + (C * 80 | 0) + (n << 1) >> 1] | 0) + (b[g + (m * 80 | 0) + (n << 1) >> 1] | 0) + (b[g + (F * 80 | 0) + (n << 1) >> 1] | 0) + (b[g + (G * 80 | 0) + (n << 1) >> 1] | 0) | 0;
- r = B + (b[g + (n * 80 | 0) + (n << 1) >> 1] << 9) | 0;
- A = H;
- x = J;
- z = va;
- while (1) {
- y = (e[z >> 1] | 0) + u << 16 >> 16;
- y = (Z(y, y) | 0) >>> 15;
- v = r + (b[z + 2 >> 1] << 13) + (p + (b[g + (n * 80 | 0) + (A << 1) >> 1] | 0) << 10) | 0;
- if ((Z(y << 16 >> 16, l << 16 >> 16) | 0) > (Z(v >> 16, o << 16 >> 16) | 0)) {
- l = v >>> 16 & 65535;
- s = c;
- q = x;
- o = y & 65535;
- }
- t = A + X | 0;
- x = t & 65535;
- if (x << 16 >> 16 >= 40) break; else {
- A = t << 16 >> 16;
- z = z + 4 | 0;
- }
- }
- }
- r = n + X | 0;
- c = r & 65535;
- if (c << 16 >> 16 >= 40) break; else n = r << 16 >> 16;
- }
- } else {
- l = 1;
- s = r;
- q = J;
- o = -1;
- }
- } else {
- s = N;
- q = O;
- }
- if ((Z(o << 16 >> 16, T << 16 >> 16) | 0) > (Z(l << 16 >> 16, U << 16 >> 16) | 0)) {
- b[k >> 1] = ua;
- b[ea >> 1] = S;
- b[fa >> 1] = Q;
- b[ga >> 1] = P;
- b[ha >> 1] = M;
- b[ia >> 1] = L;
- b[ja >> 1] = w;
- b[ka >> 1] = K;
- if (ta) {
- b[la >> 1] = s;
- b[ma >> 1] = q;
- }
- } else {
- l = T;
- o = U;
- }
- n = b[ra >> 1] | 0;
- if (na) {
- c = 1;
- m = 2;
- while (1) {
- b[h + (c << 1) >> 1] = b[h + (m << 1) >> 1] | 0;
- m = m + 1 | 0;
- if ((m & 65535) << 16 >> 16 == a << 16 >> 16) break; else c = c + 1 | 0;
- }
- }
- b[V >> 1] = n;
- W = W + 1 << 16 >> 16;
- if (W << 16 >> 16 >= d << 16 >> 16) break; else {
- T = l;
- N = s;
- O = q;
- U = o;
- }
- }
- i = wa;
- return
- }
- function qd(a, c, d, e) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- e = e | 0;
- var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0;
- i = 39;
- while (1) {
- h = a + (i << 1) | 0;
- g = b[h >> 1] | 0;
- f = c + (i << 1) | 0;
- if (g << 16 >> 16 > -1) b[f >> 1] = 32767; else {
- b[f >> 1] = -32767;
- if (g << 16 >> 16 == -32768) g = 32767; else g = 0 - (g & 65535) & 65535;
- b[h >> 1] = g;
- }
- b[d + (i << 1) >> 1] = g;
- if ((i | 0) > 0) i = i + -1 | 0; else break
- }
- k = 8 - (e << 16 >> 16) | 0;
- if ((k | 0) > 0) {
- j = 0;
- f = 0;
- } else return;
- do {
- e = 0;
- a = 0;
- h = 32767;
- while (1) {
- c = b[d + (e << 1) >> 1] | 0;
- i = c << 16 >> 16 > -1 ? c << 16 >> 16 < h << 16 >> 16 : 0;
- f = i ? a : f;
- g = e + 5 | 0;
- a = g & 65535;
- if (a << 16 >> 16 >= 40) break; else {
- e = g << 16 >> 16;
- h = i ? c : h;
- }
- }
- b[d + (f << 16 >> 16 << 1) >> 1] = -1;
- j = j + 1 << 16 >> 16;
- } while ((j << 16 >> 16 | 0) < (k | 0));
- j = 0;
- do {
- c = 1;
- a = 1;
- g = 32767;
- while (1) {
- e = b[d + (c << 1) >> 1] | 0;
- i = e << 16 >> 16 > -1 ? e << 16 >> 16 < g << 16 >> 16 : 0;
- f = i ? a : f;
- h = c + 5 | 0;
- a = h & 65535;
- if (a << 16 >> 16 >= 40) break; else {
- c = h << 16 >> 16;
- g = i ? e : g;
- }
- }
- b[d + (f << 16 >> 16 << 1) >> 1] = -1;
- j = j + 1 << 16 >> 16;
- } while ((j << 16 >> 16 | 0) < (k | 0));
- j = 0;
- do {
- c = 2;
- a = 2;
- g = 32767;
- while (1) {
- e = b[d + (c << 1) >> 1] | 0;
- i = e << 16 >> 16 > -1 ? e << 16 >> 16 < g << 16 >> 16 : 0;
- f = i ? a : f;
- h = c + 5 | 0;
- a = h & 65535;
- if (a << 16 >> 16 >= 40) break; else {
- c = h << 16 >> 16;
- g = i ? e : g;
- }
- }
- b[d + (f << 16 >> 16 << 1) >> 1] = -1;
- j = j + 1 << 16 >> 16;
- } while ((j << 16 >> 16 | 0) < (k | 0));
- j = 0;
- while (1) {
- c = 3;
- a = 3;
- g = 32767;
- while (1) {
- e = b[d + (c << 1) >> 1] | 0;
- i = e << 16 >> 16 > -1 ? e << 16 >> 16 < g << 16 >> 16 : 0;
- f = i ? a : f;
- h = c + 5 | 0;
- a = h & 65535;
- if (a << 16 >> 16 >= 40) {
- g = f;
- break
- } else {
- c = h << 16 >> 16;
- g = i ? e : g;
- }
- }
- b[d + (g << 16 >> 16 << 1) >> 1] = -1;
- j = j + 1 << 16 >> 16;
- if ((j << 16 >> 16 | 0) >= (k | 0)) {
- f = 0;
- break
- } else f = g;
- }
- do {
- c = 4;
- a = 4;
- j = 32767;
- while (1) {
- e = b[d + (c << 1) >> 1] | 0;
- i = e << 16 >> 16 > -1 ? e << 16 >> 16 < j << 16 >> 16 : 0;
- g = i ? a : g;
- h = c + 5 | 0;
- a = h & 65535;
- if (a << 16 >> 16 >= 40) break; else {
- c = h << 16 >> 16;
- j = i ? e : j;
- }
- }
- b[d + (g << 16 >> 16 << 1) >> 1] = -1;
- f = f + 1 << 16 >> 16;
- } while ((f << 16 >> 16 | 0) < (k | 0));
- return
- }
- function rd(a, d, e, f, g, h, j, k) {
- a = a | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- k = k | 0;
- var 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;
- y = i;
- i = i + 80 | 0;
- x = y;
- p = 40;
- q = d;
- r = a;
- m = 256;
- n = 256;
- while (1) {
- l = b[q >> 1] | 0;
- q = q + 2 | 0;
- l = Z(l, l) | 0;
- if ((l | 0) != 1073741824) {
- o = (l << 1) + m | 0;
- if ((l ^ m | 0) > 0 & (o ^ m | 0) < 0) {
- c[k >> 2] = 1;
- m = (m >>> 31) + 2147483647 | 0;
- } else m = o;
- } else {
- c[k >> 2] = 1;
- m = 2147483647;
- }
- w = b[r >> 1] | 0;
- n = (Z(w << 1, w) | 0) + n | 0;
- p = p + -1 << 16 >> 16;
- if (!(p << 16 >> 16)) break; else r = r + 2 | 0;
- }
- w = ce(m, k) | 0;
- u = w << 5;
- w = ((u >> 5 | 0) == (w | 0) ? u : w >> 31 ^ 2147418112) >> 16;
- u = (ce(n, k) | 0) << 5 >> 16;
- v = 39;
- s = d + 78 | 0;
- t = x + 78 | 0;
- l = e + 78 | 0;
- while (1) {
- r = Z(b[s >> 1] | 0, w) | 0;
- s = s + -2 | 0;
- q = r << 1;
- d = a + (v << 1) | 0;
- m = b[d >> 1] | 0;
- p = Z(m << 16 >> 16, u) | 0;
- if ((p | 0) != 1073741824) {
- o = (p << 1) + q | 0;
- if ((p ^ q | 0) > 0 & (o ^ q | 0) < 0) {
- c[k >> 2] = 1;
- o = (r >>> 30 & 1) + 2147483647 | 0;
- }
- } else {
- c[k >> 2] = 1;
- o = 2147483647;
- }
- n = o << 10;
- n = Ce((n >> 10 | 0) == (o | 0) ? n : o >> 31 ^ 2147483647, k) | 0;
- if (n << 16 >> 16 > -1) b[l >> 1] = 32767; else {
- b[l >> 1] = -32767;
- if (n << 16 >> 16 == -32768) n = 32767; else n = 0 - (n & 65535) & 65535;
- if (m << 16 >> 16 == -32768) o = 32767; else o = 0 - (m & 65535) & 65535;
- b[d >> 1] = o;
- }
- l = l + -2 | 0;
- b[t >> 1] = n;
- if ((v | 0) <= 0) break; else {
- v = v + -1 | 0;
- t = t + -2 | 0;
- }
- }
- d = g << 16 >> 16;
- if (g << 16 >> 16 <= 0) {
- b[h + (d << 1) >> 1] = b[h >> 1] | 0;
- i = y;
- return
- }
- r = j & 65535;
- q = 0;
- p = -1;
- l = 0;
- while (1) {
- if ((q | 0) < 40) {
- n = q;
- o = q & 65535;
- m = -1;
- while (1) {
- k = b[x + (n << 1) >> 1] | 0;
- j = k << 16 >> 16 > m << 16 >> 16;
- m = j ? k : m;
- l = j ? o : l;
- n = n + r | 0;
- o = n & 65535;
- if (o << 16 >> 16 >= 40) break; else n = n << 16 >> 16;
- }
- } else m = -1;
- b[f + (q << 1) >> 1] = l;
- if (m << 16 >> 16 > p << 16 >> 16) b[h >> 1] = q; else m = p;
- q = q + 1 | 0;
- if ((q & 65535) << 16 >> 16 == g << 16 >> 16) break; else p = m;
- }
- l = b[h >> 1] | 0;
- b[h + (d << 1) >> 1] = l;
- if (g << 16 >> 16 > 1) m = 1; else {
- i = y;
- return
- }
- do {
- f = l + 1 << 16 >> 16;
- l = f << 16 >> 16 >= g << 16 >> 16 ? 0 : f;
- b[h + (m << 1) >> 1] = l;
- b[h + (m + d << 1) >> 1] = l;
- m = m + 1 | 0;
- } while ((m & 65535) << 16 >> 16 != g << 16 >> 16);
- i = y;
- return
- }
- function sd(a) {
- a = a | 0;
- var d = 0;
- if (!a) {
- a = -1;
- return a | 0
- }
- c[a >> 2] = 0;
- d = Je(12) | 0;
- if (!d) {
- a = -1;
- return a | 0
- }
- b[d >> 1] = 8;
- c[a >> 2] = d;
- b[d + 2 >> 1] = 3;
- b[d + 4 >> 1] = 0;
- c[d + 8 >> 2] = 0;
- a = 0;
- return a | 0
- }
- function td(a) {
- a = a | 0;
- var b = 0;
- if (!a) return;
- b = c[a >> 2] | 0;
- if (!b) return;
- Ke(b);
- c[a >> 2] = 0;
- return
- }
- function ud(a, d, e) {
- a = a | 0;
- d = d | 0;
- e = e | 0;
- var f = 0, g = 0, h = 0;
- do if ((d | 0) == 8) {
- f = a + 2 | 0;
- g = (b[f >> 1] | 0) + -1 << 16 >> 16;
- b[f >> 1] = g;
- d = a + 8 | 0;
- if (!(c[d >> 2] | 0)) {
- c[e >> 2] = 1;
- b[f >> 1] = 3;
- break
- }
- h = a + 4 | 0;
- if (g << 16 >> 16 > 2 & (b[h >> 1] | 0) > 0) {
- c[e >> 2] = 2;
- b[h >> 1] = (b[h >> 1] | 0) + -1 << 16 >> 16;
- break
- }
- if (!(g << 16 >> 16)) {
- c[e >> 2] = 2;
- b[f >> 1] = b[a >> 1] | 0;
- break
- } else {
- c[e >> 2] = 3;
- break
- }
- } else {
- b[a + 2 >> 1] = b[a >> 1] | 0;
- c[e >> 2] = 0;
- d = a + 8 | 0;
- } while (0);
- c[d >> 2] = c[e >> 2];
- return
- }
- function vd(a, b, d) {
- a = a | 0;
- b = b | 0;
- d = d | 0;
- var e = 0, f = 0, g = 0;
- if (!a) {
- a = -1;
- return a | 0
- }
- c[a >> 2] = 0;
- d = Je(12) | 0;
- e = d;
- if (!d) {
- a = -1;
- return a | 0
- }
- c[d >> 2] = 0;
- f = d + 4 | 0;
- c[f >> 2] = 0;
- g = d + 8 | 0;
- c[g >> 2] = b;
- if ((dd(d) | 0) << 16 >> 16 == 0 ? (ac(f, c[g >> 2] | 0) | 0) << 16 >> 16 == 0 : 0) {
- ed(c[d >> 2] | 0) | 0;
- cc(c[f >> 2] | 0) | 0;
- c[a >> 2] = e;
- a = 0;
- return a | 0
- }
- fd(d);
- bc(f);
- Ke(d);
- a = -1;
- return a | 0
- }
- function wd(a) {
- a = a | 0;
- var b = 0;
- if (!a) return;
- b = c[a >> 2] | 0;
- if (!b) return;
- fd(b);
- bc((c[a >> 2] | 0) + 4 | 0);
- Ke(c[a >> 2] | 0);
- c[a >> 2] = 0;
- return
- }
- function xd(a, d, f, g, h) {
- a = a | 0;
- d = d | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- var j = 0, k = 0, l = 0, m = 0, n = 0;
- m = i;
- i = i + 448 | 0;
- k = m + 320 | 0;
- l = m;
- Qe(g | 0, 0, 488) | 0;
- j = 0;
- do {
- n = f + (j << 1) | 0;
- b[n >> 1] = (e[n >> 1] | 0) & 65528;
- j = j + 1 | 0;
- } while ((j | 0) != 160);
- gd(c[a >> 2] | 0, f, 160);
- n = a + 4 | 0;
- dc(c[n >> 2] | 0, d, f, k, h, l) | 0;
- hd(c[h >> 2] | 0, k, g, (c[n >> 2] | 0) + 2392 | 0);
- i = m;
- return
- }
- function yd(a, c, d, e, f, g, h, j, k, l, m, n, o, p, q, r) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- k = k | 0;
- l = l | 0;
- m = m | 0;
- n = n | 0;
- o = o | 0;
- p = p | 0;
- q = q | 0;
- r = r | 0;
- var s = 0, t = 0, u = 0;
- u = i;
- i = i + 48 | 0;
- s = u + 22 | 0;
- t = u;
- Ie(f, (a & -2 | 0) == 6 ? d : c, s);
- Ie(f, e, t);
- d = m;
- c = s;
- f = d + 22 | 0;
- do {
- b[d >> 1] = b[c >> 1] | 0;
- d = d + 2 | 0;
- c = c + 2 | 0;
- } while ((d | 0) < (f | 0));
- He(g, m, o, 40, l, 0);
- He(t, o, o, 40, l, 0);
- Be(g, h, q, 40);
- d = n;
- c = q;
- f = d + 80 | 0;
- do {
- b[d >> 1] = b[c >> 1] | 0;
- d = d + 2 | 0;
- c = c + 2 | 0;
- } while ((d | 0) < (f | 0));
- He(g, n, r, 40, j, 0);
- Be(s, r, p, 40);
- He(t, p, p, 40, k, 0);
- i = u;
- return
- }
- function zd(a, c, d, f, g, h, i, j, k, l, m, n, o, p, q, r, s) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- i = i | 0;
- j = j | 0;
- k = k | 0;
- l = l | 0;
- m = m | 0;
- n = n | 0;
- o = o | 0;
- p = p | 0;
- q = q | 0;
- r = r | 0;
- s = s | 0;
- var t = 0, u = 0, v = 0, w = 0, x = 0;
- if ((c | 0) == 7) {
- v = 11;
- c = f << 16 >> 16 >>> 1 & 65535;
- t = 2;
- } else {
- v = 13;
- c = f;
- t = 1;
- }
- b[r >> 1] = f << 16 >> 16 < 13017 ? f : 13017;
- u = d << 16 >> 16;
- q = q + (u << 1) | 0;
- r = c << 16 >> 16;
- g = g << 16 >> 16;
- d = 20;
- c = k;
- s = q;
- while (1) {
- k = s + 2 | 0;
- x = Z(b[s >> 1] | 0, r) | 0;
- w = Z(b[k >> 1] | 0, r) | 0;
- x = (Z(b[c >> 1] | 0, g) | 0) + x << 1;
- w = (Z(b[c + 2 >> 1] | 0, g) | 0) + w << 1 << t;
- b[s >> 1] = ((x << t) + 32768 | 0) >>> 16;
- b[k >> 1] = (w + 32768 | 0) >>> 16;
- d = d + -1 << 16 >> 16;
- if (!(d << 16 >> 16)) break; else {
- c = c + 4 | 0;
- s = s + 4 | 0;
- }
- }
- c = f << 16 >> 16;
- He(h, q, i + (u << 1) | 0, 40, n, 1);
- d = 30;
- s = 0;
- while (1) {
- w = d + u | 0;
- b[o + (s << 1) >> 1] = (e[a + (w << 1) >> 1] | 0) - (e[i + (w << 1) >> 1] | 0);
- w = Z(b[l + (d << 1) >> 1] | 0, c) | 0;
- x = (Z(b[m + (d << 1) >> 1] | 0, g) | 0) >> v;
- b[p + (s << 1) >> 1] = (e[j + (d << 1) >> 1] | 0) - (w >>> 14) - x;
- s = s + 1 | 0;
- if ((s | 0) == 10) break; else d = d + 1 | 0;
- }
- return
- }
- function Ad(a) {
- a = a | 0;
- var d = 0;
- if (!a) {
- a = -1;
- return a | 0
- }
- c[a >> 2] = 0;
- d = Je(16) | 0;
- if (!d) {
- a = -1;
- return a | 0
- }
- b[d >> 1] = 0;
- b[d + 2 >> 1] = 0;
- b[d + 4 >> 1] = 0;
- b[d + 6 >> 1] = 0;
- b[d + 8 >> 1] = 0;
- b[d + 10 >> 1] = 0;
- b[d + 12 >> 1] = 0;
- b[d + 14 >> 1] = 0;
- c[a >> 2] = d;
- a = 0;
- return a | 0
- }
- function Bd(a) {
- a = a | 0;
- if (!a) {
- a = -1;
- return a | 0
- }
- b[a >> 1] = 0;
- b[a + 2 >> 1] = 0;
- b[a + 4 >> 1] = 0;
- b[a + 6 >> 1] = 0;
- b[a + 8 >> 1] = 0;
- b[a + 10 >> 1] = 0;
- b[a + 12 >> 1] = 0;
- b[a + 14 >> 1] = 0;
- a = 0;
- return a | 0
- }
- function Cd(a) {
- a = a | 0;
- var b = 0;
- if (!a) return;
- b = c[a >> 2] | 0;
- if (!b) return;
- Ke(b);
- c[a >> 2] = 0;
- return
- }
- function Dd(a, c, d) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- var f = 0, g = 0, h = 0, i = 0;
- f = e[c + 6 >> 1] | 0;
- d = e[c + 8 >> 1] | 0;
- g = f - d | 0;
- g = (g & 65535 | 0) != 32767 ? g & 65535 : 32767;
- h = e[c + 10 >> 1] | 0;
- d = d - h | 0;
- g = (d << 16 >> 16 | 0) < (g << 16 >> 16 | 0) ? d & 65535 : g;
- d = e[c + 12 >> 1] | 0;
- h = h - d | 0;
- g = (h << 16 >> 16 | 0) < (g << 16 >> 16 | 0) ? h & 65535 : g;
- h = e[c + 14 >> 1] | 0;
- d = d - h | 0;
- g = (d << 16 >> 16 | 0) < (g << 16 >> 16 | 0) ? d & 65535 : g;
- h = h - (e[c + 16 >> 1] | 0) | 0;
- d = b[c + 2 >> 1] | 0;
- i = e[c + 4 >> 1] | 0;
- c = (d & 65535) - i | 0;
- c = (c & 65535 | 0) != 32767 ? c & 65535 : 32767;
- f = i - f | 0;
- if (((h << 16 >> 16 | 0) < (g << 16 >> 16 | 0) ? h & 65535 : g) << 16 >> 16 < 1500 ? 1 : (((f << 16 >> 16 | 0) < (c << 16 >> 16 | 0) ? f & 65535 : c) << 16 >> 16 | 0) < ((d << 16 >> 16 > 32e3 ? 600 : d << 16 >> 16 > 30500 ? 800 : 1100) | 0)) {
- h = (b[a >> 1] | 0) + 1 << 16 >> 16;
- i = h << 16 >> 16 > 11;
- b[a >> 1] = i ? 12 : h;
- return i & 1 | 0
- } else {
- b[a >> 1] = 0;
- return 0
- }
- return 0
- }
- function Ed(a, c, d) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- c = De(c, 3, d) | 0;
- c = Rd(c, b[a + 2 >> 1] | 0, d) | 0;
- c = Rd(c, b[a + 4 >> 1] | 0, d) | 0;
- c = Rd(c, b[a + 6 >> 1] | 0, d) | 0;
- c = Rd(c, b[a + 8 >> 1] | 0, d) | 0;
- c = Rd(c, b[a + 10 >> 1] | 0, d) | 0;
- c = Rd(c, b[a + 12 >> 1] | 0, d) | 0;
- return (Rd(c, b[a + 14 >> 1] | 0, d) | 0) << 16 >> 16 > 15565 | 0
- }
- function Fd(a, c, d) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- var e = 0;
- d = a + 4 | 0;
- b[a + 2 >> 1] = b[d >> 1] | 0;
- e = a + 6 | 0;
- b[d >> 1] = b[e >> 1] | 0;
- d = a + 8 | 0;
- b[e >> 1] = b[d >> 1] | 0;
- e = a + 10 | 0;
- b[d >> 1] = b[e >> 1] | 0;
- d = a + 12 | 0;
- b[e >> 1] = b[d >> 1] | 0;
- a = a + 14 | 0;
- b[d >> 1] = b[a >> 1] | 0;
- b[a >> 1] = c << 16 >> 16 >>> 3;
- return
- }
- function Gd(a) {
- a = a | 0;
- var d = 0, e = 0, f = 0;
- if (!a) {
- f = -1;
- return f | 0
- }
- c[a >> 2] = 0;
- d = Je(128) | 0;
- if (!d) {
- f = -1;
- return f | 0
- }
- e = d + 72 | 0;
- f = e + 46 | 0;
- do {
- b[e >> 1] = 0;
- e = e + 2 | 0;
- } while ((e | 0) < (f | 0));
- b[d >> 1] = 150;
- b[d + 36 >> 1] = 150;
- b[d + 18 >> 1] = 150;
- b[d + 54 >> 1] = 0;
- b[d + 2 >> 1] = 150;
- b[d + 38 >> 1] = 150;
- b[d + 20 >> 1] = 150;
- b[d + 56 >> 1] = 0;
- b[d + 4 >> 1] = 150;
- b[d + 40 >> 1] = 150;
- b[d + 22 >> 1] = 150;
- b[d + 58 >> 1] = 0;
- b[d + 6 >> 1] = 150;
- b[d + 42 >> 1] = 150;
- b[d + 24 >> 1] = 150;
- b[d + 60 >> 1] = 0;
- b[d + 8 >> 1] = 150;
- b[d + 44 >> 1] = 150;
- b[d + 26 >> 1] = 150;
- b[d + 62 >> 1] = 0;
- b[d + 10 >> 1] = 150;
- b[d + 46 >> 1] = 150;
- b[d + 28 >> 1] = 150;
- b[d + 64 >> 1] = 0;
- b[d + 12 >> 1] = 150;
- b[d + 48 >> 1] = 150;
- b[d + 30 >> 1] = 150;
- b[d + 66 >> 1] = 0;
- b[d + 14 >> 1] = 150;
- b[d + 50 >> 1] = 150;
- b[d + 32 >> 1] = 150;
- b[d + 68 >> 1] = 0;
- b[d + 16 >> 1] = 150;
- b[d + 52 >> 1] = 150;
- b[d + 34 >> 1] = 150;
- b[d + 70 >> 1] = 0;
- b[d + 118 >> 1] = 13106;
- b[d + 120 >> 1] = 0;
- b[d + 122 >> 1] = 0;
- b[d + 124 >> 1] = 0;
- b[d + 126 >> 1] = 13106;
- c[a >> 2] = d;
- f = 0;
- return f | 0
- }
- function Hd(a) {
- a = a | 0;
- var c = 0, d = 0;
- if (!a) {
- d = -1;
- return d | 0
- }
- c = a + 72 | 0;
- d = c + 46 | 0;
- do {
- b[c >> 1] = 0;
- c = c + 2 | 0;
- } while ((c | 0) < (d | 0));
- b[a >> 1] = 150;
- b[a + 36 >> 1] = 150;
- b[a + 18 >> 1] = 150;
- b[a + 54 >> 1] = 0;
- b[a + 2 >> 1] = 150;
- b[a + 38 >> 1] = 150;
- b[a + 20 >> 1] = 150;
- b[a + 56 >> 1] = 0;
- b[a + 4 >> 1] = 150;
- b[a + 40 >> 1] = 150;
- b[a + 22 >> 1] = 150;
- b[a + 58 >> 1] = 0;
- b[a + 6 >> 1] = 150;
- b[a + 42 >> 1] = 150;
- b[a + 24 >> 1] = 150;
- b[a + 60 >> 1] = 0;
- b[a + 8 >> 1] = 150;
- b[a + 44 >> 1] = 150;
- b[a + 26 >> 1] = 150;
- b[a + 62 >> 1] = 0;
- b[a + 10 >> 1] = 150;
- b[a + 46 >> 1] = 150;
- b[a + 28 >> 1] = 150;
- b[a + 64 >> 1] = 0;
- b[a + 12 >> 1] = 150;
- b[a + 48 >> 1] = 150;
- b[a + 30 >> 1] = 150;
- b[a + 66 >> 1] = 0;
- b[a + 14 >> 1] = 150;
- b[a + 50 >> 1] = 150;
- b[a + 32 >> 1] = 150;
- b[a + 68 >> 1] = 0;
- b[a + 16 >> 1] = 150;
- b[a + 52 >> 1] = 150;
- b[a + 34 >> 1] = 150;
- b[a + 70 >> 1] = 0;
- b[a + 118 >> 1] = 13106;
- b[a + 120 >> 1] = 0;
- b[a + 122 >> 1] = 0;
- b[a + 124 >> 1] = 0;
- b[a + 126 >> 1] = 13106;
- d = 0;
- return d | 0
- }
- function Id(a) {
- a = a | 0;
- var b = 0;
- if (!a) return;
- b = c[a >> 2] | 0;
- if (!b) return;
- Ke(b);
- c[a >> 2] = 0;
- return
- }
- function Jd(a, c) {
- a = a | 0;
- c = c | 0;
- b[a + 118 >> 1] = c;
- return
- }
- function Kd(a, d, f, g) {
- a = a | 0;
- d = d | 0;
- f = f | 0;
- g = g | 0;
- var h = 0;
- f = Ce(f, g) | 0;
- if (f << 16 >> 16 <= 0) return;
- f = f << 16 >> 16;
- if ((f * 21298 | 0) == 1073741824) {
- c[g >> 2] = 1;
- h = 2147483647;
- } else h = f * 42596 | 0;
- f = d - h | 0;
- if (((f ^ d) & (h ^ d) | 0) < 0) {
- c[g >> 2] = 1;
- f = (d >>> 31) + 2147483647 | 0;
- }
- if ((f | 0) <= 0) return;
- a = a + 104 | 0;
- b[a >> 1] = e[a >> 1] | 0 | 16384;
- return
- }
- function Ld(a, c, d) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- var e = 0;
- a = a + 104 | 0;
- e = De(b[a >> 1] | 0, 1, d) | 0;
- b[a >> 1] = e;
- if (!(c << 16 >> 16)) return;
- b[a >> 1] = (De(e, 1, d) | 0) & 65535 | 8192;
- return
- }
- function Md(a, c, d) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- var f = 0, g = 0, h = 0;
- g = a + 112 | 0;
- f = Ge(b[g >> 1] | 0, b[c >> 1] | 0, d) | 0;
- f = (f & 65535) - ((f & 65535) >>> 15 & 65535) | 0;
- f = ((f << 16 >> 31 ^ f) & 65535) << 16 >> 16 < 4;
- h = b[c >> 1] | 0;
- b[g >> 1] = h;
- c = c + 2 | 0;
- h = Ge(h, b[c >> 1] | 0, d) | 0;
- h = (h & 65535) - ((h & 65535) >>> 15 & 65535) | 0;
- f = ((h << 16 >> 31 ^ h) & 65535) << 16 >> 16 < 4 ? (f ? 2 : 1) : f & 1;
- b[g >> 1] = b[c >> 1] | 0;
- g = a + 102 | 0;
- b[g >> 1] = De(b[g >> 1] | 0, 1, d) | 0;
- c = a + 110 | 0;
- if ((Rd(b[c >> 1] | 0, f, d) | 0) << 16 >> 16 <= 3) {
- b[c >> 1] = f;
- return
- }
- b[g >> 1] = e[g >> 1] | 0 | 16384;
- b[c >> 1] = f;
- return
- }
- function Nd(a, d, f) {
- a = a | 0;
- d = d | 0;
- f = f | 0;
- var g = 0, h = 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;
- D = i;
- i = i + 352 | 0;
- n = D + 24 | 0;
- B = D;
- k = 0;
- h = 0;
- do {
- g = b[d + (k + -40 << 1) >> 1] | 0;
- g = Z(g, g) | 0;
- if ((g | 0) != 1073741824) {
- j = (g << 1) + h | 0;
- if ((g ^ h | 0) > 0 & (j ^ h | 0) < 0) {
- c[f >> 2] = 1;
- h = (h >>> 31) + 2147483647 | 0;
- } else h = j;
- } else {
- c[f >> 2] = 1;
- h = 2147483647;
- }
- k = k + 1 | 0;
- } while ((k | 0) != 160);
- o = h;
- if ((343039 - o & o | 0) < 0) {
- c[f >> 2] = 1;
- h = (o >>> 31) + 2147483647 | 0;
- } else h = o + -343040 | 0;
- if ((h | 0) < 0) {
- A = a + 102 | 0;
- b[A >> 1] = e[A >> 1] & 16383;
- }
- m = o + -15e3 | 0;
- p = (14999 - o & o | 0) < 0;
- if (p) {
- c[f >> 2] = 1;
- j = (o >>> 31) + 2147483647 | 0;
- } else j = m;
- if ((j | 0) < 0) {
- A = a + 108 | 0;
- b[A >> 1] = e[A >> 1] & 16383;
- }
- g = a + 72 | 0;
- l = a + 74 | 0;
- j = b[g >> 1] | 0;
- k = b[l >> 1] | 0;
- h = 0;
- do {
- A = h << 2;
- y = Ge((b[d + (A << 1) >> 1] | 0) >>> 2 & 65535, ((j << 16 >> 16) * 21955 | 0) >>> 15 & 65535, f) | 0;
- v = ((y << 16 >> 16) * 21955 | 0) >>> 15 & 65535;
- u = Rd(j, v, f) | 0;
- x = A | 1;
- z = Ge((b[d + (x << 1) >> 1] | 0) >>> 2 & 65535, ((k << 16 >> 16) * 6390 | 0) >>> 15 & 65535, f) | 0;
- w = ((z << 16 >> 16) * 6390 | 0) >>> 15 & 65535;
- j = Rd(k, w, f) | 0;
- b[n + (A << 1) >> 1] = Rd(u, j, f) | 0;
- b[n + (x << 1) >> 1] = Ge(u, j, f) | 0;
- x = A | 2;
- j = Ge((b[d + (x << 1) >> 1] | 0) >>> 2 & 65535, v, f) | 0;
- y = Rd(y, ((j << 16 >> 16) * 21955 | 0) >>> 15 & 65535, f) | 0;
- A = A | 3;
- k = Ge((b[d + (A << 1) >> 1] | 0) >>> 2 & 65535, w, f) | 0;
- z = Rd(z, ((k << 16 >> 16) * 6390 | 0) >>> 15 & 65535, f) | 0;
- b[n + (x << 1) >> 1] = Rd(y, z, f) | 0;
- b[n + (A << 1) >> 1] = Ge(y, z, f) | 0;
- h = h + 1 | 0;
- } while ((h | 0) != 40);
- b[g >> 1] = j;
- b[l >> 1] = k;
- k = a + 76 | 0;
- j = a + 80 | 0;
- h = 0;
- do {
- A = h << 2;
- Od(n + (A << 1) | 0, n + ((A | 2) << 1) | 0, k, f);
- Od(n + ((A | 1) << 1) | 0, n + ((A | 3) << 1) | 0, j, f);
- h = h + 1 | 0;
- } while ((h | 0) != 40);
- k = a + 84 | 0;
- j = a + 86 | 0;
- h = a + 92 | 0;
- g = 0;
- do {
- A = g << 3;
- Pd(n + (A << 1) | 0, n + ((A | 4) << 1) | 0, k, f);
- Pd(n + ((A | 2) << 1) | 0, n + ((A | 6) << 1) | 0, j, f);
- Pd(n + ((A | 3) << 1) | 0, n + ((A | 7) << 1) | 0, h, f);
- g = g + 1 | 0;
- } while ((g | 0) != 20);
- k = a + 88 | 0;
- j = a + 90 | 0;
- h = 0;
- do {
- A = h << 4;
- Pd(n + (A << 1) | 0, n + ((A | 8) << 1) | 0, k, f);
- Pd(n + ((A | 4) << 1) | 0, n + ((A | 12) << 1) | 0, j, f);
- h = h + 1 | 0;
- } while ((h | 0) != 10);
- t = Qd(n, a + 70 | 0, 32, 40, 4, 1, 15, f) | 0;
- b[B + 16 >> 1] = t;
- u = Qd(n, a + 68 | 0, 16, 20, 8, 7, 16, f) | 0;
- b[B + 14 >> 1] = u;
- v = Qd(n, a + 66 | 0, 16, 20, 8, 3, 16, f) | 0;
- b[B + 12 >> 1] = v;
- w = Qd(n, a + 64 | 0, 16, 20, 8, 2, 16, f) | 0;
- b[B + 10 >> 1] = w;
- x = Qd(n, a + 62 | 0, 16, 20, 8, 6, 16, f) | 0;
- b[B + 8 >> 1] = x;
- y = Qd(n, a + 60 | 0, 8, 10, 16, 4, 16, f) | 0;
- b[B + 6 >> 1] = y;
- z = Qd(n, a + 58 | 0, 8, 10, 16, 12, 16, f) | 0;
- b[B + 4 >> 1] = z;
- A = Qd(n, a + 56 | 0, 8, 10, 16, 8, 16, f) | 0;
- b[B + 2 >> 1] = A;
- s = Qd(n, a + 54 | 0, 8, 10, 16, 0, 16, f) | 0;
- b[B >> 1] = s;
- k = 0;
- g = 0;
- do {
- j = a + (g << 1) | 0;
- d = qe(b[j >> 1] | 0) | 0;
- j = b[j >> 1] | 0;
- h = d << 16 >> 16;
- if (d << 16 >> 16 < 0) {
- l = 0 - h << 16;
- if ((l | 0) < 983040) l = j << 16 >> 16 >> (l >> 16) & 65535; else l = 0;
- } else {
- l = j << 16 >> 16;
- j = l << h;
- if ((j << 16 >> 16 >> h | 0) == (l | 0)) l = j & 65535; else l = (l >>> 15 ^ 32767) & 65535;
- }
- j = Td(De(b[B + (g << 1) >> 1] | 0, 1, f) | 0, l) | 0;
- r = Ge(d, 5, f) | 0;
- h = r << 16 >> 16;
- if (r << 16 >> 16 < 0) {
- l = 0 - h << 16;
- if ((l | 0) < 983040) l = j << 16 >> 16 >> (l >> 16); else l = 0;
- } else {
- j = j << 16 >> 16;
- l = j << h;
- if ((l << 16 >> 16 >> h | 0) != (j | 0)) l = j >>> 15 ^ 32767;
- }
- l = l << 16 >> 16;
- l = Z(l, l) | 0;
- if ((l | 0) != 1073741824) {
- j = (l << 1) + k | 0;
- if ((l ^ k | 0) > 0 & (j ^ k | 0) < 0) {
- c[f >> 2] = 1;
- k = (k >>> 31) + 2147483647 | 0;
- } else k = j;
- } else {
- c[f >> 2] = 1;
- k = 2147483647;
- }
- g = g + 1 | 0;
- } while ((g | 0) != 9);
- r = k << 6;
- k = (((r >> 6 | 0) == (k | 0) ? r : k >> 31 ^ 2147418112) >> 16) * 3641 >> 15;
- if ((k | 0) > 32767) {
- c[f >> 2] = 1;
- k = 32767;
- }
- r = b[a >> 1] | 0;
- l = r << 16 >> 16;
- q = b[a + 2 >> 1] | 0;
- j = (q << 16 >> 16) + l | 0;
- if ((q ^ r) << 16 >> 16 > -1 & (j ^ l | 0) < 0) {
- c[f >> 2] = 1;
- j = (l >>> 31) + 2147483647 | 0;
- }
- r = b[a + 4 >> 1] | 0;
- l = r + j | 0;
- if ((r ^ j | 0) > -1 & (l ^ j | 0) < 0) {
- c[f >> 2] = 1;
- l = (j >>> 31) + 2147483647 | 0;
- }
- r = b[a + 6 >> 1] | 0;
- j = r + l | 0;
- if ((r ^ l | 0) > -1 & (j ^ l | 0) < 0) {
- c[f >> 2] = 1;
- j = (l >>> 31) + 2147483647 | 0;
- }
- r = b[a + 8 >> 1] | 0;
- l = r + j | 0;
- if ((r ^ j | 0) > -1 & (l ^ j | 0) < 0) {
- c[f >> 2] = 1;
- l = (j >>> 31) + 2147483647 | 0;
- }
- r = b[a + 10 >> 1] | 0;
- j = r + l | 0;
- if ((r ^ l | 0) > -1 & (j ^ l | 0) < 0) {
- c[f >> 2] = 1;
- j = (l >>> 31) + 2147483647 | 0;
- }
- r = b[a + 12 >> 1] | 0;
- l = r + j | 0;
- if ((r ^ j | 0) > -1 & (l ^ j | 0) < 0) {
- c[f >> 2] = 1;
- l = (j >>> 31) + 2147483647 | 0;
- }
- r = b[a + 14 >> 1] | 0;
- j = r + l | 0;
- if ((r ^ l | 0) > -1 & (j ^ l | 0) < 0) {
- c[f >> 2] = 1;
- j = (l >>> 31) + 2147483647 | 0;
- }
- r = b[a + 16 >> 1] | 0;
- l = r + j | 0;
- if ((r ^ j | 0) > -1 & (l ^ j | 0) < 0) {
- c[f >> 2] = 1;
- l = (j >>> 31) + 2147483647 | 0;
- }
- q = l << 13;
- q = ((q >> 13 | 0) == (l | 0) ? q : l >> 31 ^ 2147418112) >>> 16 & 65535;
- l = (Z((Ge(q, 0, f) | 0) << 16 >> 16, -2808) | 0) >> 15;
- if ((l | 0) > 32767) {
- c[f >> 2] = 1;
- l = 32767;
- }
- n = Rd(l & 65535, 1260, f) | 0;
- r = a + 100 | 0;
- l = De(b[r >> 1] | 0, 1, f) | 0;
- if ((k << 16 >> 16 | 0) > ((n << 16 >> 16 < 720 ? 720 : n << 16 >> 16) | 0)) l = (l & 65535 | 16384) & 65535;
- b[r >> 1] = l;
- if (p) {
- c[f >> 2] = 1;
- m = (o >>> 31) + 2147483647 | 0;
- }
- h = b[a + 118 >> 1] | 0;
- p = a + 126 | 0;
- l = b[p >> 1] | 0;
- g = l << 16 >> 16 < 19660;
- g = h << 16 >> 16 < l << 16 >> 16 ? (g ? 2621 : 6553) : g ? 2621 : 655;
- d = l & 65535;
- k = d << 16;
- l = Z(g, l << 16 >> 16) | 0;
- if ((l | 0) == 1073741824) {
- c[f >> 2] = 1;
- l = 2147483647;
- } else l = l << 1;
- j = k - l | 0;
- if (((j ^ k) & (l ^ k) | 0) < 0) {
- c[f >> 2] = 1;
- j = (d >>> 15) + 2147483647 | 0;
- }
- k = Z(g, h << 16 >> 16) | 0;
- do if ((k | 0) == 1073741824) {
- c[f >> 2] = 1;
- l = 2147483647;
- } else {
- l = j + (k << 1) | 0;
- if (!((j ^ k | 0) > 0 & (l ^ j | 0) < 0)) break;
- c[f >> 2] = 1;
- l = (j >>> 31) + 2147483647 | 0;
- } while (0);
- d = Ce(l, f) | 0;
- o = (m | 0) > -1;
- b[p >> 1] = o ? (d << 16 >> 16 < 13106 ? 13106 : d) : 13106;
- d = a + 106 | 0;
- b[d >> 1] = De(b[d >> 1] | 0, 1, f) | 0;
- j = a + 108 | 0;
- l = De(b[j >> 1] | 0, 1, f) | 0;
- b[j >> 1] = l;
- k = b[p >> 1] | 0;
- a:do if (o) {
- do if (k << 16 >> 16 > 19660) b[d >> 1] = e[d >> 1] | 16384; else {
- if (k << 16 >> 16 > 16383) break;
- k = a + 116 | 0;
- l = 0;
- break a
- } while (0);
- b[j >> 1] = l & 65535 | 16384;
- C = 62;
- } else C = 62; while (0);
- do if ((C | 0) == 62) {
- l = a + 116 | 0;
- if (k << 16 >> 16 <= 22936) {
- k = l;
- l = 0;
- break
- }
- k = l;
- l = Rd(b[l >> 1] | 0, 1, f) | 0;
- } while (0);
- b[k >> 1] = l;
- if ((b[d >> 1] & 32640) != 32640) {
- n = (b[j >> 1] & 32767) == 32767;
- b[a + 122 >> 1] = n & 1;
- if (n) C = 67;
- } else {
- b[a + 122 >> 1] = 1;
- C = 67;
- }
- do if ((C | 0) == 67) {
- k = a + 98 | 0;
- if ((b[k >> 1] | 0) >= 5) break;
- b[k >> 1] = 5;
- } while (0);
- n = a + 102 | 0;
- do if ((b[n >> 1] & 24576) == 24576) C = 71; else {
- if ((b[a + 104 >> 1] & 31744) == 31744) {
- C = 71;
- break
- }
- if (!(b[r >> 1] & 32640)) {
- b[a + 98 >> 1] = 20;
- j = 32767;
- break
- } else {
- j = s;
- k = 0;
- l = 0;
- }
- while (1) {
- g = b[a + 18 + (k << 1) >> 1] | 0;
- h = j << 16 >> 16 > g << 16 >> 16;
- m = h ? j : g;
- j = h ? g : j;
- m = m << 16 >> 16 < 184 ? 184 : m;
- j = j << 16 >> 16 < 184 ? 184 : j;
- g = qe(j) | 0;
- h = g << 16 >> 16;
- do if (g << 16 >> 16 < 0) {
- d = 0 - h << 16;
- if ((d | 0) >= 983040) {
- d = 0;
- break
- }
- d = j << 16 >> 16 >> (d >> 16) & 65535;
- } else {
- d = j << 16 >> 16;
- j = d << h;
- if ((j << 16 >> 16 >> h | 0) == (d | 0)) {
- d = j & 65535;
- break
- }
- d = (d >>> 15 ^ 32767) & 65535;
- } while (0);
- m = Td(De(m, 1, f) | 0, d) | 0;
- l = Rd(l, De(m, Ge(8, g, f) | 0, f) | 0, f) | 0;
- k = k + 1 | 0;
- if ((k | 0) == 9) break;
- j = b[B + (k << 1) >> 1] | 0;
- }
- if (l << 16 >> 16 > 1e3) {
- b[a + 98 >> 1] = 20;
- j = 32767;
- break
- }
- j = b[r >> 1] | 0;
- k = a + 98 | 0;
- l = b[k >> 1] | 0;
- do if (!(j & 16384)) C = 86; else {
- if (!(l << 16 >> 16)) {
- l = j;
- break
- }
- l = Ge(l, 1, f) | 0;
- b[k >> 1] = l;
- C = 86;
- } while (0);
- if ((C | 0) == 86) {
- if (l << 16 >> 16 == 20) {
- j = 32767;
- break
- }
- l = b[r >> 1] | 0;
- }
- j = (l & 16384) == 0 ? 16383 : 3276;
- } while (0);
- if ((C | 0) == 71) {
- b[a + 98 >> 1] = 20;
- j = 32767;
- }
- k = s;
- l = 0;
- while (1) {
- m = a + 18 + (l << 1) | 0;
- d = oe(j, Ge(k, b[m >> 1] | 0, f) | 0, f) | 0;
- b[m >> 1] = Rd(b[m >> 1] | 0, d, f) | 0;
- l = l + 1 | 0;
- if ((l | 0) == 9) break;
- k = b[B + (l << 1) >> 1] | 0;
- }
- do if (!(b[r >> 1] & 30720)) {
- if (b[n >> 1] & 30720) {
- C = 95;
- break
- }
- if (!(b[a + 114 >> 1] | 0)) {
- h = 2097;
- g = 1638;
- d = 2;
- } else C = 95;
- } else C = 95; while (0);
- do if ((C | 0) == 95) {
- if ((b[a + 98 >> 1] | 0) == 0 ? (b[a + 114 >> 1] | 0) == 0 : 0) {
- h = 1867;
- g = 491;
- d = 2;
- break
- }
- h = 1638;
- g = 0;
- d = 0;
- } while (0);
- j = 0;
- do {
- k = a + (j << 1) | 0;
- l = Ge(b[a + 36 + (j << 1) >> 1] | 0, b[k >> 1] | 0, f) | 0;
- if (l << 16 >> 16 < 0) {
- l = oe(h, l, f) | 0;
- l = Rd(-2, Rd(b[k >> 1] | 0, l, f) | 0, f) | 0;
- l = l << 16 >> 16 < 40 ? 40 : l;
- } else {
- l = oe(g, l, f) | 0;
- l = Rd(d, Rd(b[k >> 1] | 0, l, f) | 0, f) | 0;
- l = l << 16 >> 16 > 16e3 ? 16e3 : l;
- }
- b[k >> 1] = l;
- j = j + 1 | 0;
- } while ((j | 0) != 9);
- b[a + 36 >> 1] = s;
- b[a + 38 >> 1] = A;
- b[a + 40 >> 1] = z;
- b[a + 42 >> 1] = y;
- b[a + 44 >> 1] = x;
- b[a + 46 >> 1] = w;
- b[a + 48 >> 1] = v;
- b[a + 50 >> 1] = u;
- b[a + 52 >> 1] = t;
- k = q << 16 >> 16 > 100;
- j = k ? 7 : 4;
- k = k ? 4 : 5;
- if (!o) {
- b[a + 94 >> 1] = 0;
- b[a + 96 >> 1] = 0;
- b[a + 114 >> 1] = 0;
- b[a + 116 >> 1] = 0;
- f = 0;
- a = a + 120 | 0;
- b[a >> 1] = f;
- i = D;
- return f | 0
- }
- h = a + 114 | 0;
- g = b[h >> 1] | 0;
- do if ((b[a + 116 >> 1] | 0) <= 100) {
- if (g << 16 >> 16) break;
- g = b[r >> 1] | 0;
- do if (!(g & 16368)) {
- if ((b[p >> 1] | 0) > 21298) g = 1; else break;
- a = a + 120 | 0;
- b[a >> 1] = g;
- i = D;
- return g | 0
- } while (0);
- h = a + 94 | 0;
- if (!(g & 16384)) {
- b[h >> 1] = 0;
- g = a + 96 | 0;
- h = b[g >> 1] | 0;
- if (h << 16 >> 16 <= 0) {
- f = 0;
- a = a + 120 | 0;
- b[a >> 1] = f;
- i = D;
- return f | 0
- }
- b[g >> 1] = Ge(h, 1, f) | 0;
- f = 1;
- a = a + 120 | 0;
- b[a >> 1] = f;
- i = D;
- return f | 0
- } else {
- f = Rd(b[h >> 1] | 0, 1, f) | 0;
- b[h >> 1] = f;
- if ((f << 16 >> 16 | 0) < (k | 0)) {
- f = 1;
- a = a + 120 | 0;
- b[a >> 1] = f;
- i = D;
- return f | 0
- }
- b[a + 96 >> 1] = j;
- f = 1;
- a = a + 120 | 0;
- b[a >> 1] = f;
- i = D;
- return f | 0
- }
- } else {
- if (g << 16 >> 16 >= 250) break;
- b[h >> 1] = 250;
- g = 250;
- } while (0);
- b[a + 94 >> 1] = 4;
- b[h >> 1] = Ge(g, 1, f) | 0;
- f = 1;
- a = a + 120 | 0;
- b[a >> 1] = f;
- i = D;
- return f | 0
- }
- function Od(a, d, e, f) {
- a = a | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- var g = 0, h = 0, i = 0;
- g = (b[e >> 1] | 0) * 21955 >> 15;
- if ((g | 0) > 32767) {
- c[f >> 2] = 1;
- g = 32767;
- }
- h = Ge(b[a >> 1] | 0, g & 65535, f) | 0;
- g = (h << 16 >> 16) * 21955 >> 15;
- if ((g | 0) > 32767) {
- c[f >> 2] = 1;
- g = 32767;
- }
- i = Rd(b[e >> 1] | 0, g & 65535, f) | 0;
- b[e >> 1] = h;
- e = e + 2 | 0;
- g = (b[e >> 1] | 0) * 6390 >> 15;
- if ((g | 0) > 32767) {
- c[f >> 2] = 1;
- g = 32767;
- }
- h = Ge(b[d >> 1] | 0, g & 65535, f) | 0;
- g = (h << 16 >> 16) * 6390 >> 15;
- if ((g | 0) > 32767) {
- c[f >> 2] = 1;
- g = 32767;
- }
- g = Rd(b[e >> 1] | 0, g & 65535, f) | 0;
- b[e >> 1] = h;
- b[a >> 1] = De(Rd(i, g, f) | 0, 1, f) | 0;
- b[d >> 1] = De(Ge(i, g, f) | 0, 1, f) | 0;
- return
- }
- function Pd(a, d, e, f) {
- a = a | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- var g = 0, h = 0;
- g = (b[e >> 1] | 0) * 13363 >> 15;
- if ((g | 0) > 32767) {
- c[f >> 2] = 1;
- g = 32767;
- }
- h = Ge(b[d >> 1] | 0, g & 65535, f) | 0;
- g = (h << 16 >> 16) * 13363 >> 15;
- if ((g | 0) > 32767) {
- c[f >> 2] = 1;
- g = 32767;
- }
- g = Rd(b[e >> 1] | 0, g & 65535, f) | 0;
- b[e >> 1] = h;
- b[d >> 1] = De(Ge(b[a >> 1] | 0, g, f) | 0, 1, f) | 0;
- b[a >> 1] = De(Rd(b[a >> 1] | 0, g, f) | 0, 1, f) | 0;
- return
- }
- function Qd(a, d, e, f, g, h, i, j) {
- a = a | 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, l = 0, m = 0, n = 0, o = 0, p = 0;
- if (e << 16 >> 16 < f << 16 >> 16) {
- n = g << 16 >> 16;
- k = h << 16 >> 16;
- o = e << 16 >> 16;
- l = 0;
- do {
- p = b[a + ((Z(o, n) | 0) + k << 1) >> 1] | 0;
- p = (p & 65535) - ((p & 65535) >>> 15 & 65535) | 0;
- p = (p << 16 >> 31 ^ p) << 16;
- m = (p >> 15) + l | 0;
- if ((p >> 16 ^ l | 0) > 0 & (m ^ l | 0) < 0) {
- c[j >> 2] = 1;
- l = (l >>> 31) + 2147483647 | 0;
- } else l = m;
- o = o + 1 | 0;
- } while ((o & 65535) << 16 >> 16 != f << 16 >> 16);
- o = l;
- } else o = 0;
- l = b[d >> 1] | 0;
- p = Ge(16, i, j) | 0;
- k = p << 16 >> 16;
- if (p << 16 >> 16 > 0) {
- f = l << k;
- if ((f >> k | 0) != (l | 0)) f = l >> 31 ^ 2147483647;
- } else {
- k = 0 - k << 16;
- if ((k | 0) < 2031616) f = l >> (k >> 16); else f = 0;
- }
- k = f + o | 0;
- if ((f ^ o | 0) > -1 & (k ^ o | 0) < 0) {
- c[j >> 2] = 1;
- k = (o >>> 31) + 2147483647 | 0;
- }
- p = i << 16 >> 16;
- i = i << 16 >> 16 > 0;
- if (i) {
- f = o << p;
- if ((f >> p | 0) != (o | 0)) f = o >> 31 ^ 2147483647;
- } else {
- f = 0 - p << 16;
- if ((f | 0) < 2031616) f = o >> (f >> 16); else f = 0;
- }
- b[d >> 1] = f >>> 16;
- if (e << 16 >> 16 > 0) {
- n = g << 16 >> 16;
- l = h << 16 >> 16;
- m = 0;
- do {
- h = b[a + ((Z(m, n) | 0) + l << 1) >> 1] | 0;
- h = (h & 65535) - ((h & 65535) >>> 15 & 65535) | 0;
- h = (h << 16 >> 31 ^ h) << 16;
- f = (h >> 15) + k | 0;
- if ((h >> 16 ^ k | 0) > 0 & (f ^ k | 0) < 0) {
- c[j >> 2] = 1;
- k = (k >>> 31) + 2147483647 | 0;
- } else k = f;
- m = m + 1 | 0;
- } while ((m & 65535) << 16 >> 16 != e << 16 >> 16)
- }
- if (i) {
- f = k << p;
- if ((f >> p | 0) == (k | 0)) {
- j = f;
- j = j >>> 16;
- j = j & 65535;
- return j | 0
- }
- j = k >> 31 ^ 2147483647;
- j = j >>> 16;
- j = j & 65535;
- return j | 0
- } else {
- f = 0 - p << 16;
- if ((f | 0) >= 2031616) {
- j = 0;
- j = j >>> 16;
- j = j & 65535;
- return j | 0
- }
- j = k >> (f >> 16);
- j = j >>> 16;
- j = j & 65535;
- return j | 0
- }
- return 0
- }
- function Rd(a, b, d) {
- a = a | 0;
- b = b | 0;
- d = d | 0;
- a = (b << 16 >> 16) + (a << 16 >> 16) | 0;
- if ((a | 0) <= 32767) {
- if ((a | 0) < -32768) {
- c[d >> 2] = 1;
- a = -32768;
- }
- } else {
- c[d >> 2] = 1;
- a = 32767;
- }
- return a & 65535 | 0
- }
- function Sd(a, c, d, e) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- e = e | 0;
- var f = 0, g = 0, h = 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;
- y = i;
- i = i + 32 | 0;
- w = y + 12 | 0;
- x = y;
- b[w >> 1] = 1024;
- b[x >> 1] = 1024;
- k = b[a + 2 >> 1] | 0;
- h = b[a + 20 >> 1] | 0;
- e = ((h + k | 0) >>> 2) + 64512 | 0;
- b[w + 2 >> 1] = e;
- h = ((k - h | 0) >>> 2) + 1024 | 0;
- b[x + 2 >> 1] = h;
- k = b[a + 4 >> 1] | 0;
- f = b[a + 18 >> 1] | 0;
- e = ((f + k | 0) >>> 2) - e | 0;
- b[w + 4 >> 1] = e;
- h = ((k - f | 0) >>> 2) + h | 0;
- b[x + 4 >> 1] = h;
- f = b[a + 6 >> 1] | 0;
- k = b[a + 16 >> 1] | 0;
- e = ((k + f | 0) >>> 2) - e | 0;
- b[w + 6 >> 1] = e;
- h = ((f - k | 0) >>> 2) + h | 0;
- b[x + 6 >> 1] = h;
- k = b[a + 8 >> 1] | 0;
- f = b[a + 14 >> 1] | 0;
- e = ((f + k | 0) >>> 2) - e | 0;
- b[w + 8 >> 1] = e;
- h = ((k - f | 0) >>> 2) + h | 0;
- b[x + 8 >> 1] = h;
- f = b[a + 10 >> 1] | 0;
- k = b[a + 12 >> 1] | 0;
- e = ((k + f | 0) >>> 2) - e | 0;
- b[w + 10 >> 1] = e;
- b[x + 10 >> 1] = ((f - k | 0) >>> 2) + h;
- h = b[3454] | 0;
- k = h << 16 >> 16;
- a = b[w + 2 >> 1] | 0;
- f = (a << 16 >> 16 << 14) + (k << 10) | 0;
- s = f & -65536;
- f = (f >>> 1) - (f >> 16 << 15) << 16;
- v = (((Z(f >> 16, k) | 0) >> 15) + (Z(s >> 16, k) | 0) << 2) + -16777216 | 0;
- v = (b[w + 4 >> 1] << 14) + v | 0;
- j = v >> 16;
- v = (v >>> 1) - (j << 15) << 16;
- s = (((Z(v >> 16, k) | 0) >> 15) + (Z(j, k) | 0) << 2) - ((f >> 15) + s) | 0;
- s = (b[w + 6 >> 1] << 14) + s | 0;
- f = s >> 16;
- s = (s >>> 1) - (f << 15) << 16;
- j = (((Z(s >> 16, k) | 0) >> 15) + (Z(f, k) | 0) << 2) - ((v >> 15) + (j << 16)) | 0;
- j = (b[w + 8 >> 1] << 14) + j | 0;
- v = j >> 16;
- f = (e << 16 >> 3) + ((((Z((j >>> 1) - (v << 15) << 16 >> 16, k) | 0) >> 15) + (Z(v, k) | 0) << 1) - ((s >> 15) + (f << 16))) | 0;
- s = w + 4 | 0;
- k = w;
- v = 0;
- j = 0;
- e = 0;
- r = w + 10 | 0;
- f = (f + 33554432 | 0) >>> 0 < 67108863 ? f >>> 10 & 65535 : (f | 0) > 33554431 ? 32767 : -32768;
- a:while (1) {
- t = a << 16 >> 16 << 14;
- q = k + 6 | 0;
- p = k + 8 | 0;
- o = j << 16 >> 16;
- while (1) {
- if ((o | 0) >= 60) break a;
- k = (o & 65535) + 1 << 16 >> 16;
- l = b[6908 + (k << 16 >> 16 << 1) >> 1] | 0;
- u = l << 16 >> 16;
- j = t + (u << 10) | 0;
- g = j & -65536;
- j = (j >>> 1) - (j >> 16 << 15) << 16;
- m = (((Z(j >> 16, u) | 0) >> 15) + (Z(g >> 16, u) | 0) << 2) + -16777216 | 0;
- n = b[s >> 1] | 0;
- m = (n << 16 >> 16 << 14) + m | 0;
- B = m >> 16;
- m = (m >>> 1) - (B << 15) << 16;
- g = (((Z(m >> 16, u) | 0) >> 15) + (Z(B, u) | 0) << 2) - ((j >> 15) + g) | 0;
- j = b[q >> 1] | 0;
- g = (j << 16 >> 16 << 14) + g | 0;
- a = g >> 16;
- g = (g >>> 1) - (a << 15) << 16;
- B = (((Z(g >> 16, u) | 0) >> 15) + (Z(a, u) | 0) << 2) - ((m >> 15) + (B << 16)) | 0;
- m = b[p >> 1] | 0;
- B = (m << 16 >> 16 << 14) + B | 0;
- A = B >> 16;
- a = (((Z((B >>> 1) - (A << 15) << 16 >> 16, u) | 0) >> 15) + (Z(A, u) | 0) << 1) - ((g >> 15) + (a << 16)) | 0;
- g = b[r >> 1] | 0;
- a = (g << 16 >> 16 << 13) + a | 0;
- a = (a + 33554432 | 0) >>> 0 < 67108863 ? a >>> 10 & 65535 : (a | 0) > 33554431 ? 32767 : -32768;
- if ((Z(a << 16 >> 16, f << 16 >> 16) | 0) < 1) {
- u = k;
- k = n;
- break
- } else {
- o = o + 1 | 0;
- h = l;
- f = a;
- }
- }
- s = g << 16 >> 16 << 13;
- r = k << 16 >> 16 << 14;
- n = j << 16 >> 16 << 14;
- p = m << 16 >> 16 << 14;
- g = l << 16 >> 16;
- o = 4;
- while (1) {
- A = (h << 16 >> 16 >>> 1) + (g >>> 1) | 0;
- g = A << 16;
- q = g >> 16;
- g = t + (g >> 6) | 0;
- B = g & -65536;
- g = (g >>> 1) - (g >> 16 << 15) << 16;
- m = r + ((((Z(g >> 16, q) | 0) >> 15) + (Z(B >> 16, q) | 0) << 2) + -16777216) | 0;
- k = m >> 16;
- m = (m >>> 1) - (k << 15) << 16;
- B = n + ((((Z(m >> 16, q) | 0) >> 15) + (Z(k, q) | 0) << 2) - ((g >> 15) + B)) | 0;
- g = B >> 16;
- B = (B >>> 1) - (g << 15) << 16;
- k = p + ((((Z(B >> 16, q) | 0) >> 15) + (Z(g, q) | 0) << 2) - ((m >> 15) + (k << 16))) | 0;
- m = k >> 16;
- A = A & 65535;
- g = s + ((((Z((k >>> 1) - (m << 15) << 16 >> 16, q) | 0) >> 15) + (Z(m, q) | 0) << 1) - ((B >> 15) + (g << 16))) | 0;
- g = (g + 33554432 | 0) >>> 0 < 67108863 ? g >>> 10 & 65535 : (g | 0) > 33554431 ? 32767 : -32768;
- B = (Z(g << 16 >> 16, a << 16 >> 16) | 0) < 1;
- q = B ? l : A;
- a = B ? a : g;
- h = B ? A : h;
- f = B ? g : f;
- o = o + -1 << 16 >> 16;
- g = q << 16 >> 16;
- if (!(o << 16 >> 16)) {
- l = g;
- j = h;
- h = q;
- break
- } else l = q;
- }
- k = e << 16 >> 16;
- g = a << 16 >> 16;
- a = (f & 65535) - g | 0;
- f = a << 16;
- if (f) {
- B = (a & 65535) - (a >>> 15 & 1) | 0;
- B = B << 16 >> 31 ^ B;
- a = (qe(B & 65535) | 0) << 16 >> 16;
- a = (Z((Td(16383, B << 16 >> 16 << a & 65535) | 0) << 16 >> 16, (j & 65535) - l << 16 >> 16) | 0) >> 19 - a;
- if ((f | 0) < 0) a = 0 - (a << 16 >> 16) | 0;
- h = l - ((Z(a << 16 >> 16, g) | 0) >>> 10) & 65535;
- }
- b[c + (k << 1) >> 1] = h;
- f = v << 16 >> 16 == 0 ? x : w;
- A = h << 16 >> 16;
- a = b[f + 2 >> 1] | 0;
- g = (a << 16 >> 16 << 14) + (A << 10) | 0;
- B = g & -65536;
- g = (g >>> 1) - (g >> 16 << 15) << 16;
- t = (((Z(g >> 16, A) | 0) >> 15) + (Z(B >> 16, A) | 0) << 2) + -16777216 | 0;
- t = (b[f + 4 >> 1] << 14) + t | 0;
- s = t >> 16;
- t = (t >>> 1) - (s << 15) << 16;
- B = (((Z(t >> 16, A) | 0) >> 15) + (Z(s, A) | 0) << 2) - ((g >> 15) + B) | 0;
- B = (b[f + 6 >> 1] << 14) + B | 0;
- g = B >> 16;
- B = (B >>> 1) - (g << 15) << 16;
- s = (((Z(B >> 16, A) | 0) >> 15) + (Z(g, A) | 0) << 2) - ((t >> 15) + (s << 16)) | 0;
- s = (b[f + 8 >> 1] << 14) + s | 0;
- t = s >> 16;
- e = e + 1 << 16 >> 16;
- g = (((Z((s >>> 1) - (t << 15) << 16 >> 16, A) | 0) >> 15) + (Z(t, A) | 0) << 1) - ((B >> 15) + (g << 16)) | 0;
- g = (b[f + 10 >> 1] << 13) + g | 0;
- if (e << 16 >> 16 < 10) {
- s = f + 4 | 0;
- k = f;
- v = v ^ 1;
- j = u;
- r = f + 10 | 0;
- f = (g + 33554432 | 0) >>> 0 < 67108863 ? g >>> 10 & 65535 : (g | 0) > 33554431 ? 32767 : -32768;
- } else {
- z = 13;
- break
- }
- }
- if ((z | 0) == 13) {
- i = y;
- return
- }
- b[c >> 1] = b[d >> 1] | 0;
- b[c + 2 >> 1] = b[d + 2 >> 1] | 0;
- b[c + 4 >> 1] = b[d + 4 >> 1] | 0;
- b[c + 6 >> 1] = b[d + 6 >> 1] | 0;
- b[c + 8 >> 1] = b[d + 8 >> 1] | 0;
- b[c + 10 >> 1] = b[d + 10 >> 1] | 0;
- b[c + 12 >> 1] = b[d + 12 >> 1] | 0;
- b[c + 14 >> 1] = b[d + 14 >> 1] | 0;
- b[c + 16 >> 1] = b[d + 16 >> 1] | 0;
- b[c + 18 >> 1] = b[d + 18 >> 1] | 0;
- i = y;
- return
- }
- function Td(a, b) {
- a = a | 0;
- b = b | 0;
- var c = 0, d = 0, e = 0, f = 0, g = 0, h = 0;
- e = b << 16 >> 16;
- if (a << 16 >> 16 < 1 ? 1 : a << 16 >> 16 > b << 16 >> 16) {
- e = 0;
- return e | 0
- }
- if (a << 16 >> 16 == b << 16 >> 16) {
- e = 32767;
- return e | 0
- }
- d = e << 1;
- c = e << 2;
- f = a << 16 >> 16 << 3;
- a = (f | 0) < (c | 0);
- f = f - (a ? 0 : c) | 0;
- a = a ? 0 : 4;
- g = (f | 0) < (d | 0);
- f = f - (g ? 0 : d) | 0;
- b = (f | 0) < (e | 0);
- a = (b & 1 | (g ? a : a | 2)) << 3 ^ 8;
- b = f - (b ? 0 : e) << 3;
- if ((b | 0) >= (c | 0)) {
- b = b - c | 0;
- a = a & 65528 | 4;
- }
- f = (b | 0) < (d | 0);
- g = b - (f ? 0 : d) | 0;
- b = (g | 0) < (e | 0);
- a = (b & 1 ^ 1 | (f ? a : a | 2)) << 16 >> 13;
- b = g - (b ? 0 : e) << 3;
- if ((b | 0) >= (c | 0)) {
- b = b - c | 0;
- a = a & 65528 | 4;
- }
- f = (b | 0) < (d | 0);
- g = b - (f ? 0 : d) | 0;
- b = (g | 0) < (e | 0);
- a = (b & 1 ^ 1 | (f ? a : a | 2)) << 16 >> 13;
- b = g - (b ? 0 : e) << 3;
- if ((b | 0) >= (c | 0)) {
- b = b - c | 0;
- a = a & 65528 | 4;
- }
- h = (b | 0) < (d | 0);
- f = b - (h ? 0 : d) | 0;
- g = (f | 0) < (e | 0);
- b = (g & 1 ^ 1 | (h ? a : a | 2)) << 16 >> 13;
- a = f - (g ? 0 : e) << 3;
- if ((a | 0) >= (c | 0)) {
- a = a - c | 0;
- b = b & 65528 | 4;
- }
- h = (a | 0) < (d | 0);
- h = ((a - (h ? 0 : d) | 0) >= (e | 0) | (h ? b : b | 2)) & 65535;
- return h | 0
- }
- function Ud(a) {
- a = a | 0;
- if (!a) {
- a = -1;
- return a | 0
- }
- b[a >> 1] = -14336;
- b[a + 8 >> 1] = -2381;
- b[a + 2 >> 1] = -14336;
- b[a + 10 >> 1] = -2381;
- b[a + 4 >> 1] = -14336;
- b[a + 12 >> 1] = -2381;
- b[a + 6 >> 1] = -14336;
- b[a + 14 >> 1] = -2381;
- a = 0;
- return a | 0
- }
- function Vd(a, d, f, g, h, j, k, l) {
- a = a | 0;
- d = d | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- k = k | 0;
- l = l | 0;
- var m = 0, n = 0, o = 0, p = 0, q = 0, r = 0;
- r = i;
- i = i + 16 | 0;
- p = r + 2 | 0;
- q = r;
- m = 0;
- n = 10;
- while (1) {
- o = b[f >> 1] | 0;
- o = ((Z(o, o) | 0) >>> 3) + m | 0;
- m = b[f + 2 >> 1] | 0;
- m = o + ((Z(m, m) | 0) >>> 3) | 0;
- o = b[f + 4 >> 1] | 0;
- o = m + ((Z(o, o) | 0) >>> 3) | 0;
- m = b[f + 6 >> 1] | 0;
- m = o + ((Z(m, m) | 0) >>> 3) | 0;
- n = n + -1 << 16 >> 16;
- if (!(n << 16 >> 16)) break; else f = f + 8 | 0;
- }
- n = m << 4;
- n = (n | 0) < 0 ? 2147483647 : n;
- if ((d | 0) == 7) {
- de(((Ce(n, l) | 0) << 16 >> 16) * 52428 | 0, p, q, l);
- o = e[p >> 1] << 16;
- n = b[q >> 1] << 1;
- d = b[a + 8 >> 1] | 0;
- m = (d << 16 >> 16) * 88 | 0;
- if (d << 16 >> 16 > -1 & (m | 0) < -783741) {
- c[l >> 2] = 1;
- f = 2147483647;
- } else f = m + 783741 | 0;
- d = (b[a + 10 >> 1] | 0) * 74 | 0;
- m = d + f | 0;
- if ((d ^ f | 0) > -1 & (m ^ f | 0) < 0) {
- c[l >> 2] = 1;
- f = (f >>> 31) + 2147483647 | 0;
- } else f = m;
- d = (b[a + 12 >> 1] | 0) * 44 | 0;
- m = d + f | 0;
- if ((d ^ f | 0) > -1 & (m ^ f | 0) < 0) {
- c[l >> 2] = 1;
- f = (f >>> 31) + 2147483647 | 0;
- } else f = m;
- a = (b[a + 14 >> 1] | 0) * 24 | 0;
- m = a + f | 0;
- if ((a ^ f | 0) > -1 & (m ^ f | 0) < 0) {
- c[l >> 2] = 1;
- m = (f >>> 31) + 2147483647 | 0;
- }
- a = o + -1966080 + n | 0;
- f = m - a | 0;
- if (((f ^ m) & (m ^ a) | 0) < 0) {
- c[l >> 2] = 1;
- f = (m >>> 31) + 2147483647 | 0;
- }
- l = f >> 17;
- b[g >> 1] = l;
- l = (f >> 2) - (l << 15) | 0;
- l = l & 65535;
- b[h >> 1] = l;
- i = r;
- return
- }
- o = pe(n) | 0;
- m = o << 16 >> 16;
- if (o << 16 >> 16 > 0) {
- f = n << m;
- if ((f >> m | 0) == (n | 0)) n = f; else n = n >> 31 ^ 2147483647;
- } else {
- m = 0 - m << 16;
- if ((m | 0) < 2031616) n = n >> (m >> 16); else n = 0;
- }
- ee(n, o, p, q);
- p = Z(b[p >> 1] | 0, -49320) | 0;
- m = (Z(b[q >> 1] | 0, -24660) | 0) >> 15;
- m = (m & 65536 | 0) == 0 ? m : m | -65536;
- q = m << 1;
- f = q + p | 0;
- if ((q ^ p | 0) > -1 & (f ^ q | 0) < 0) {
- c[l >> 2] = 1;
- f = (m >>> 30 & 1) + 2147483647 | 0;
- }
- switch (d | 0) {
- case 6: {
- m = f + 2134784 | 0;
- if ((f | 0) > -1 & (m ^ f | 0) < 0) {
- c[l >> 2] = 1;
- m = (f >>> 31) + 2147483647 | 0;
- }
- break
- }
- case 5: {
- b[k >> 1] = n >>> 16;
- b[j >> 1] = -11 - (o & 65535);
- m = f + 2183936 | 0;
- if ((f | 0) > -1 & (m ^ f | 0) < 0) {
- c[l >> 2] = 1;
- m = (f >>> 31) + 2147483647 | 0;
- }
- break
- }
- case 4: {
- m = f + 2085632 | 0;
- if ((f | 0) > -1 & (m ^ f | 0) < 0) {
- c[l >> 2] = 1;
- m = (f >>> 31) + 2147483647 | 0;
- }
- break
- }
- case 3: {
- m = f + 2065152 | 0;
- if ((f | 0) > -1 & (m ^ f | 0) < 0) {
- c[l >> 2] = 1;
- m = (f >>> 31) + 2147483647 | 0;
- }
- break
- }
- default: {
- m = f + 2134784 | 0;
- if ((f | 0) > -1 & (m ^ f | 0) < 0) {
- c[l >> 2] = 1;
- m = (f >>> 31) + 2147483647 | 0;
- }
- }
- }
- do if ((m | 0) <= 2097151) if ((m | 0) < -2097152) {
- c[l >> 2] = 1;
- f = -2147483648;
- break
- } else {
- f = m << 10;
- break
- } else {
- c[l >> 2] = 1;
- f = 2147483647;
- } while (0);
- k = (b[a >> 1] | 0) * 11142 | 0;
- m = k + f | 0;
- if ((k ^ f | 0) > -1 & (m ^ f | 0) < 0) {
- c[l >> 2] = 1;
- m = (f >>> 31) + 2147483647 | 0;
- }
- k = (b[a + 2 >> 1] | 0) * 9502 | 0;
- f = k + m | 0;
- if ((k ^ m | 0) > -1 & (f ^ m | 0) < 0) {
- c[l >> 2] = 1;
- f = (m >>> 31) + 2147483647 | 0;
- }
- k = (b[a + 4 >> 1] | 0) * 5570 | 0;
- m = k + f | 0;
- if ((k ^ f | 0) > -1 & (m ^ f | 0) < 0) {
- c[l >> 2] = 1;
- m = (f >>> 31) + 2147483647 | 0;
- }
- a = (b[a + 6 >> 1] | 0) * 3112 | 0;
- f = a + m | 0;
- if ((a ^ m | 0) > -1 & (f ^ m | 0) < 0) {
- c[l >> 2] = 1;
- f = (m >>> 31) + 2147483647 | 0;
- }
- f = Z(f >> 16, (d | 0) == 4 ? 10878 : 10886) | 0;
- if ((f | 0) < 0) f = ~((f ^ -256) >> 8); else f = f >> 8;
- b[g >> 1] = f >>> 16;
- if ((f | 0) < 0) m = ~((f ^ -2) >> 1); else m = f >> 1;
- g = f >> 16 << 15;
- f = m - g | 0;
- if (((f ^ m) & (g ^ m) | 0) >= 0) {
- l = f;
- l = l & 65535;
- b[h >> 1] = l;
- i = r;
- return
- }
- c[l >> 2] = 1;
- l = (m >>> 31) + 2147483647 | 0;
- l = l & 65535;
- b[h >> 1] = l;
- i = r;
- return
- }
- function Wd(a, c, d) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- var e = 0, f = 0, g = 0;
- f = a + 4 | 0;
- b[a + 6 >> 1] = b[f >> 1] | 0;
- g = a + 12 | 0;
- b[a + 14 >> 1] = b[g >> 1] | 0;
- e = a + 2 | 0;
- b[f >> 1] = b[e >> 1] | 0;
- f = a + 10 | 0;
- b[g >> 1] = b[f >> 1] | 0;
- b[e >> 1] = b[a >> 1] | 0;
- e = a + 8 | 0;
- b[f >> 1] = b[e >> 1] | 0;
- b[e >> 1] = c;
- b[a >> 1] = d;
- return
- }
- function Xd(a, c, d, e) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- e = e | 0;
- var f = 0, g = 0;
- g = Rd(0, b[a + 8 >> 1] | 0, e) | 0;
- g = Rd(g, b[a + 10 >> 1] | 0, e) | 0;
- g = Rd(g, b[a + 12 >> 1] | 0, e) | 0;
- g = Rd(g, b[a + 14 >> 1] | 0, e) | 0;
- f = g << 16 >> 16 >> 2;
- f = (g << 16 >> 16 < 0 ? f | 49152 : f) & 65535;
- b[c >> 1] = f << 16 >> 16 < -2381 ? -2381 : f;
- c = Rd(0, b[a >> 1] | 0, e) | 0;
- c = Rd(c, b[a + 2 >> 1] | 0, e) | 0;
- c = Rd(c, b[a + 4 >> 1] | 0, e) | 0;
- e = Rd(c, b[a + 6 >> 1] | 0, e) | 0;
- a = e << 16 >> 16 >> 2;
- a = (e << 16 >> 16 < 0 ? a | 49152 : a) & 65535;
- b[d >> 1] = a << 16 >> 16 < -14336 ? -14336 : a;
- return
- }
- function Yd(a) {
- a = a | 0;
- c[a >> 2] = 6892;
- c[a + 4 >> 2] = 8180;
- c[a + 8 >> 2] = 21e3;
- c[a + 12 >> 2] = 9716;
- c[a + 16 >> 2] = 22024;
- c[a + 20 >> 2] = 12788;
- c[a + 24 >> 2] = 24072;
- c[a + 28 >> 2] = 26120;
- c[a + 32 >> 2] = 28168;
- c[a + 36 >> 2] = 6876;
- c[a + 40 >> 2] = 7452;
- c[a + 44 >> 2] = 8140;
- c[a + 48 >> 2] = 20980;
- c[a + 52 >> 2] = 16884;
- c[a + 56 >> 2] = 17908;
- c[a + 60 >> 2] = 7980;
- c[a + 64 >> 2] = 8160;
- c[a + 68 >> 2] = 6678;
- c[a + 72 >> 2] = 6646;
- c[a + 76 >> 2] = 6614;
- c[a + 80 >> 2] = 29704;
- c[a + 84 >> 2] = 28680;
- c[a + 88 >> 2] = 3720;
- c[a + 92 >> 2] = 8;
- c[a + 96 >> 2] = 4172;
- c[a + 100 >> 2] = 44;
- c[a + 104 >> 2] = 3436;
- c[a + 108 >> 2] = 30316;
- c[a + 112 >> 2] = 30796;
- c[a + 116 >> 2] = 31276;
- c[a + 120 >> 2] = 7472;
- c[a + 124 >> 2] = 7552;
- c[a + 128 >> 2] = 7632;
- c[a + 132 >> 2] = 7712;
- return
- }
- function Zd(a, c) {
- a = a | 0;
- c = c | 0;
- var d = 0, e = 0, f = 0, g = 0, h = 0, j = 0, k = 0, l = 0, m = 0, n = 0;
- n = i;
- i = i + 48 | 0;
- l = n + 18 | 0;
- m = n;
- k = c << 16 >> 16;
- Oe(m | 0, a | 0, k << 1 | 0) | 0;
- if (c << 16 >> 16 > 0) {
- d = 0;
- e = 0;
- } else {
- m = k >> 1;
- m = l + (m << 1) | 0;
- m = b[m >> 1] | 0;
- m = m << 16 >> 16;
- m = a + (m << 1) | 0;
- m = b[m >> 1] | 0;
- i = n;
- return m | 0
- }
- do {
- j = 0;
- h = -32767;
- while (1) {
- f = b[m + (j << 1) >> 1] | 0;
- g = f << 16 >> 16 < h << 16 >> 16;
- e = g ? e : j & 65535;
- j = j + 1 | 0;
- if ((j & 65535) << 16 >> 16 == c << 16 >> 16) break; else h = g ? h : f;
- }
- b[m + (e << 16 >> 16 << 1) >> 1] = -32768;
- b[l + (d << 1) >> 1] = e;
- d = d + 1 | 0;
- } while ((d & 65535) << 16 >> 16 != c << 16 >> 16);
- m = k >> 1;
- m = l + (m << 1) | 0;
- m = b[m >> 1] | 0;
- m = m << 16 >> 16;
- m = a + (m << 1) | 0;
- m = b[m >> 1] | 0;
- i = n;
- return m | 0
- }
- function _d(a, c, d, e, f) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- var g = 0, h = 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;
- g = i;
- i = i + 32 | 0;
- h = g;
- A = c + 2 | 0;
- z = h + 2 | 0;
- b[h >> 1] = ((b[c >> 1] | 0) >>> 1) + ((b[a >> 1] | 0) >>> 1);
- y = c + 4 | 0;
- x = h + 4 | 0;
- b[z >> 1] = ((b[A >> 1] | 0) >>> 1) + ((b[a + 2 >> 1] | 0) >>> 1);
- w = c + 6 | 0;
- v = h + 6 | 0;
- b[x >> 1] = ((b[y >> 1] | 0) >>> 1) + ((b[a + 4 >> 1] | 0) >>> 1);
- u = c + 8 | 0;
- t = h + 8 | 0;
- b[v >> 1] = ((b[w >> 1] | 0) >>> 1) + ((b[a + 6 >> 1] | 0) >>> 1);
- s = c + 10 | 0;
- r = h + 10 | 0;
- b[t >> 1] = ((b[u >> 1] | 0) >>> 1) + ((b[a + 8 >> 1] | 0) >>> 1);
- q = c + 12 | 0;
- p = h + 12 | 0;
- b[r >> 1] = ((b[s >> 1] | 0) >>> 1) + ((b[a + 10 >> 1] | 0) >>> 1);
- o = c + 14 | 0;
- n = h + 14 | 0;
- b[p >> 1] = ((b[q >> 1] | 0) >>> 1) + ((b[a + 12 >> 1] | 0) >>> 1);
- m = c + 16 | 0;
- l = h + 16 | 0;
- b[n >> 1] = ((b[o >> 1] | 0) >>> 1) + ((b[a + 14 >> 1] | 0) >>> 1);
- k = c + 18 | 0;
- j = h + 18 | 0;
- b[l >> 1] = ((b[m >> 1] | 0) >>> 1) + ((b[a + 16 >> 1] | 0) >>> 1);
- b[j >> 1] = ((b[k >> 1] | 0) >>> 1) + ((b[a + 18 >> 1] | 0) >>> 1);
- he(h, e, f);
- he(c, e + 22 | 0, f);
- b[h >> 1] = ((b[d >> 1] | 0) >>> 1) + ((b[c >> 1] | 0) >>> 1);
- b[z >> 1] = ((b[d + 2 >> 1] | 0) >>> 1) + ((b[A >> 1] | 0) >>> 1);
- b[x >> 1] = ((b[d + 4 >> 1] | 0) >>> 1) + ((b[y >> 1] | 0) >>> 1);
- b[v >> 1] = ((b[d + 6 >> 1] | 0) >>> 1) + ((b[w >> 1] | 0) >>> 1);
- b[t >> 1] = ((b[d + 8 >> 1] | 0) >>> 1) + ((b[u >> 1] | 0) >>> 1);
- b[r >> 1] = ((b[d + 10 >> 1] | 0) >>> 1) + ((b[s >> 1] | 0) >>> 1);
- b[p >> 1] = ((b[d + 12 >> 1] | 0) >>> 1) + ((b[q >> 1] | 0) >>> 1);
- b[n >> 1] = ((b[d + 14 >> 1] | 0) >>> 1) + ((b[o >> 1] | 0) >>> 1);
- b[l >> 1] = ((b[d + 16 >> 1] | 0) >>> 1) + ((b[m >> 1] | 0) >>> 1);
- b[j >> 1] = ((b[d + 18 >> 1] | 0) >>> 1) + ((b[k >> 1] | 0) >>> 1);
- he(h, e + 44 | 0, f);
- he(d, e + 66 | 0, f);
- i = g;
- return
- }
- function $d(a, c, d, e, f) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- var g = 0, h = 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;
- g = i;
- i = i + 32 | 0;
- h = g;
- A = c + 2 | 0;
- z = h + 2 | 0;
- b[h >> 1] = ((b[c >> 1] | 0) >>> 1) + ((b[a >> 1] | 0) >>> 1);
- y = c + 4 | 0;
- x = h + 4 | 0;
- b[z >> 1] = ((b[A >> 1] | 0) >>> 1) + ((b[a + 2 >> 1] | 0) >>> 1);
- w = c + 6 | 0;
- v = h + 6 | 0;
- b[x >> 1] = ((b[y >> 1] | 0) >>> 1) + ((b[a + 4 >> 1] | 0) >>> 1);
- u = c + 8 | 0;
- t = h + 8 | 0;
- b[v >> 1] = ((b[w >> 1] | 0) >>> 1) + ((b[a + 6 >> 1] | 0) >>> 1);
- s = c + 10 | 0;
- r = h + 10 | 0;
- b[t >> 1] = ((b[u >> 1] | 0) >>> 1) + ((b[a + 8 >> 1] | 0) >>> 1);
- q = c + 12 | 0;
- p = h + 12 | 0;
- b[r >> 1] = ((b[s >> 1] | 0) >>> 1) + ((b[a + 10 >> 1] | 0) >>> 1);
- o = c + 14 | 0;
- n = h + 14 | 0;
- b[p >> 1] = ((b[q >> 1] | 0) >>> 1) + ((b[a + 12 >> 1] | 0) >>> 1);
- m = c + 16 | 0;
- l = h + 16 | 0;
- b[n >> 1] = ((b[o >> 1] | 0) >>> 1) + ((b[a + 14 >> 1] | 0) >>> 1);
- k = c + 18 | 0;
- j = h + 18 | 0;
- b[l >> 1] = ((b[m >> 1] | 0) >>> 1) + ((b[a + 16 >> 1] | 0) >>> 1);
- b[j >> 1] = ((b[k >> 1] | 0) >>> 1) + ((b[a + 18 >> 1] | 0) >>> 1);
- he(h, e, f);
- b[h >> 1] = ((b[d >> 1] | 0) >>> 1) + ((b[c >> 1] | 0) >>> 1);
- b[z >> 1] = ((b[d + 2 >> 1] | 0) >>> 1) + ((b[A >> 1] | 0) >>> 1);
- b[x >> 1] = ((b[d + 4 >> 1] | 0) >>> 1) + ((b[y >> 1] | 0) >>> 1);
- b[v >> 1] = ((b[d + 6 >> 1] | 0) >>> 1) + ((b[w >> 1] | 0) >>> 1);
- b[t >> 1] = ((b[d + 8 >> 1] | 0) >>> 1) + ((b[u >> 1] | 0) >>> 1);
- b[r >> 1] = ((b[d + 10 >> 1] | 0) >>> 1) + ((b[s >> 1] | 0) >>> 1);
- b[p >> 1] = ((b[d + 12 >> 1] | 0) >>> 1) + ((b[q >> 1] | 0) >>> 1);
- b[n >> 1] = ((b[d + 14 >> 1] | 0) >>> 1) + ((b[o >> 1] | 0) >>> 1);
- b[l >> 1] = ((b[d + 16 >> 1] | 0) >>> 1) + ((b[m >> 1] | 0) >>> 1);
- b[j >> 1] = ((b[d + 18 >> 1] | 0) >>> 1) + ((b[k >> 1] | 0) >>> 1);
- he(h, e + 44 | 0, f);
- i = g;
- return
- }
- function ae(a, c, d, e) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- e = e | 0;
- var f = 0, g = 0, h = 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, J = 0;
- f = i;
- i = i + 32 | 0;
- g = f;
- H = b[a >> 1] | 0;
- b[g >> 1] = H - (H >>> 2) + ((b[c >> 1] | 0) >>> 2);
- H = a + 2 | 0;
- E = b[H >> 1] | 0;
- I = c + 2 | 0;
- G = g + 2 | 0;
- b[G >> 1] = E - (E >>> 2) + ((b[I >> 1] | 0) >>> 2);
- E = a + 4 | 0;
- B = b[E >> 1] | 0;
- F = c + 4 | 0;
- D = g + 4 | 0;
- b[D >> 1] = B - (B >>> 2) + ((b[F >> 1] | 0) >>> 2);
- B = a + 6 | 0;
- y = b[B >> 1] | 0;
- C = c + 6 | 0;
- A = g + 6 | 0;
- b[A >> 1] = y - (y >>> 2) + ((b[C >> 1] | 0) >>> 2);
- y = a + 8 | 0;
- v = b[y >> 1] | 0;
- z = c + 8 | 0;
- x = g + 8 | 0;
- b[x >> 1] = v - (v >>> 2) + ((b[z >> 1] | 0) >>> 2);
- v = a + 10 | 0;
- s = b[v >> 1] | 0;
- w = c + 10 | 0;
- u = g + 10 | 0;
- b[u >> 1] = s - (s >>> 2) + ((b[w >> 1] | 0) >>> 2);
- s = a + 12 | 0;
- p = b[s >> 1] | 0;
- t = c + 12 | 0;
- r = g + 12 | 0;
- b[r >> 1] = p - (p >>> 2) + ((b[t >> 1] | 0) >>> 2);
- p = a + 14 | 0;
- m = b[p >> 1] | 0;
- q = c + 14 | 0;
- o = g + 14 | 0;
- b[o >> 1] = m - (m >>> 2) + ((b[q >> 1] | 0) >>> 2);
- m = a + 16 | 0;
- j = b[m >> 1] | 0;
- n = c + 16 | 0;
- l = g + 16 | 0;
- b[l >> 1] = j - (j >>> 2) + ((b[n >> 1] | 0) >>> 2);
- j = a + 18 | 0;
- J = b[j >> 1] | 0;
- k = c + 18 | 0;
- h = g + 18 | 0;
- b[h >> 1] = J - (J >>> 2) + ((b[k >> 1] | 0) >>> 2);
- he(g, d, e);
- b[g >> 1] = ((b[a >> 1] | 0) >>> 1) + ((b[c >> 1] | 0) >>> 1);
- b[G >> 1] = ((b[H >> 1] | 0) >>> 1) + ((b[I >> 1] | 0) >>> 1);
- b[D >> 1] = ((b[E >> 1] | 0) >>> 1) + ((b[F >> 1] | 0) >>> 1);
- b[A >> 1] = ((b[B >> 1] | 0) >>> 1) + ((b[C >> 1] | 0) >>> 1);
- b[x >> 1] = ((b[y >> 1] | 0) >>> 1) + ((b[z >> 1] | 0) >>> 1);
- b[u >> 1] = ((b[v >> 1] | 0) >>> 1) + ((b[w >> 1] | 0) >>> 1);
- b[r >> 1] = ((b[s >> 1] | 0) >>> 1) + ((b[t >> 1] | 0) >>> 1);
- b[o >> 1] = ((b[p >> 1] | 0) >>> 1) + ((b[q >> 1] | 0) >>> 1);
- b[l >> 1] = ((b[m >> 1] | 0) >>> 1) + ((b[n >> 1] | 0) >>> 1);
- b[h >> 1] = ((b[j >> 1] | 0) >>> 1) + ((b[k >> 1] | 0) >>> 1);
- he(g, d + 22 | 0, e);
- J = b[c >> 1] | 0;
- b[g >> 1] = J - (J >>> 2) + ((b[a >> 1] | 0) >>> 2);
- a = b[I >> 1] | 0;
- b[G >> 1] = a - (a >>> 2) + ((b[H >> 1] | 0) >>> 2);
- a = b[F >> 1] | 0;
- b[D >> 1] = a - (a >>> 2) + ((b[E >> 1] | 0) >>> 2);
- a = b[C >> 1] | 0;
- b[A >> 1] = a - (a >>> 2) + ((b[B >> 1] | 0) >>> 2);
- a = b[z >> 1] | 0;
- b[x >> 1] = a - (a >>> 2) + ((b[y >> 1] | 0) >>> 2);
- a = b[w >> 1] | 0;
- b[u >> 1] = a - (a >>> 2) + ((b[v >> 1] | 0) >>> 2);
- a = b[t >> 1] | 0;
- b[r >> 1] = a - (a >>> 2) + ((b[s >> 1] | 0) >>> 2);
- a = b[q >> 1] | 0;
- b[o >> 1] = a - (a >>> 2) + ((b[p >> 1] | 0) >>> 2);
- a = b[n >> 1] | 0;
- b[l >> 1] = a - (a >>> 2) + ((b[m >> 1] | 0) >>> 2);
- a = b[k >> 1] | 0;
- b[h >> 1] = a - (a >>> 2) + ((b[j >> 1] | 0) >>> 2);
- he(g, d + 44 | 0, e);
- he(c, d + 66 | 0, e);
- i = f;
- return
- }
- function be(a, c, d, e) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- e = e | 0;
- var f = 0, g = 0, h = 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, J = 0;
- f = i;
- i = i + 32 | 0;
- g = f;
- H = b[a >> 1] | 0;
- b[g >> 1] = H - (H >>> 2) + ((b[c >> 1] | 0) >>> 2);
- H = a + 2 | 0;
- E = b[H >> 1] | 0;
- I = c + 2 | 0;
- G = g + 2 | 0;
- b[G >> 1] = E - (E >>> 2) + ((b[I >> 1] | 0) >>> 2);
- E = a + 4 | 0;
- B = b[E >> 1] | 0;
- F = c + 4 | 0;
- D = g + 4 | 0;
- b[D >> 1] = B - (B >>> 2) + ((b[F >> 1] | 0) >>> 2);
- B = a + 6 | 0;
- y = b[B >> 1] | 0;
- C = c + 6 | 0;
- A = g + 6 | 0;
- b[A >> 1] = y - (y >>> 2) + ((b[C >> 1] | 0) >>> 2);
- y = a + 8 | 0;
- v = b[y >> 1] | 0;
- z = c + 8 | 0;
- x = g + 8 | 0;
- b[x >> 1] = v - (v >>> 2) + ((b[z >> 1] | 0) >>> 2);
- v = a + 10 | 0;
- s = b[v >> 1] | 0;
- w = c + 10 | 0;
- u = g + 10 | 0;
- b[u >> 1] = s - (s >>> 2) + ((b[w >> 1] | 0) >>> 2);
- s = a + 12 | 0;
- p = b[s >> 1] | 0;
- t = c + 12 | 0;
- r = g + 12 | 0;
- b[r >> 1] = p - (p >>> 2) + ((b[t >> 1] | 0) >>> 2);
- p = a + 14 | 0;
- m = b[p >> 1] | 0;
- q = c + 14 | 0;
- o = g + 14 | 0;
- b[o >> 1] = m - (m >>> 2) + ((b[q >> 1] | 0) >>> 2);
- m = a + 16 | 0;
- j = b[m >> 1] | 0;
- n = c + 16 | 0;
- l = g + 16 | 0;
- b[l >> 1] = j - (j >>> 2) + ((b[n >> 1] | 0) >>> 2);
- j = a + 18 | 0;
- J = b[j >> 1] | 0;
- k = c + 18 | 0;
- h = g + 18 | 0;
- b[h >> 1] = J - (J >>> 2) + ((b[k >> 1] | 0) >>> 2);
- he(g, d, e);
- b[g >> 1] = ((b[a >> 1] | 0) >>> 1) + ((b[c >> 1] | 0) >>> 1);
- b[G >> 1] = ((b[H >> 1] | 0) >>> 1) + ((b[I >> 1] | 0) >>> 1);
- b[D >> 1] = ((b[E >> 1] | 0) >>> 1) + ((b[F >> 1] | 0) >>> 1);
- b[A >> 1] = ((b[B >> 1] | 0) >>> 1) + ((b[C >> 1] | 0) >>> 1);
- b[x >> 1] = ((b[y >> 1] | 0) >>> 1) + ((b[z >> 1] | 0) >>> 1);
- b[u >> 1] = ((b[v >> 1] | 0) >>> 1) + ((b[w >> 1] | 0) >>> 1);
- b[r >> 1] = ((b[s >> 1] | 0) >>> 1) + ((b[t >> 1] | 0) >>> 1);
- b[o >> 1] = ((b[p >> 1] | 0) >>> 1) + ((b[q >> 1] | 0) >>> 1);
- b[l >> 1] = ((b[m >> 1] | 0) >>> 1) + ((b[n >> 1] | 0) >>> 1);
- b[h >> 1] = ((b[j >> 1] | 0) >>> 1) + ((b[k >> 1] | 0) >>> 1);
- he(g, d + 22 | 0, e);
- c = b[c >> 1] | 0;
- b[g >> 1] = c - (c >>> 2) + ((b[a >> 1] | 0) >>> 2);
- a = b[I >> 1] | 0;
- b[G >> 1] = a - (a >>> 2) + ((b[H >> 1] | 0) >>> 2);
- a = b[F >> 1] | 0;
- b[D >> 1] = a - (a >>> 2) + ((b[E >> 1] | 0) >>> 2);
- a = b[C >> 1] | 0;
- b[A >> 1] = a - (a >>> 2) + ((b[B >> 1] | 0) >>> 2);
- a = b[z >> 1] | 0;
- b[x >> 1] = a - (a >>> 2) + ((b[y >> 1] | 0) >>> 2);
- a = b[w >> 1] | 0;
- b[u >> 1] = a - (a >>> 2) + ((b[v >> 1] | 0) >>> 2);
- a = b[t >> 1] | 0;
- b[r >> 1] = a - (a >>> 2) + ((b[s >> 1] | 0) >>> 2);
- a = b[q >> 1] | 0;
- b[o >> 1] = a - (a >>> 2) + ((b[p >> 1] | 0) >>> 2);
- a = b[n >> 1] | 0;
- b[l >> 1] = a - (a >>> 2) + ((b[m >> 1] | 0) >>> 2);
- a = b[k >> 1] | 0;
- b[h >> 1] = a - (a >>> 2) + ((b[j >> 1] | 0) >>> 2);
- he(g, d + 44 | 0, e);
- i = f;
- return
- }
- function ce(a, c) {
- a = a | 0;
- c = c | 0;
- var d = 0, f = 0;
- if ((a | 0) < 1) {
- c = 1073741823;
- return c | 0
- }
- d = (pe(a) | 0) << 16 >> 16;
- c = 30 - d | 0;
- a = a << d >> (c & 1 ^ 1);
- d = (a >> 25 << 16) + -1048576 >> 16;
- f = b[7030 + (d << 1) >> 1] | 0;
- c = (f << 16) - (Z(f - (e[7030 + (d + 1 << 1) >> 1] | 0) << 16 >> 15, a >>> 10 & 32767) | 0) >> (c << 16 >> 17) + 1;
- return c | 0
- }
- function de(a, b, c, d) {
- a = a | 0;
- b = b | 0;
- c = c | 0;
- d = d | 0;
- d = pe(a) | 0;
- ee(a << (d << 16 >> 16), d, b, c);
- return
- }
- function ee(a, c, d, f) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- f = f | 0;
- if ((a | 0) < 1) {
- b[d >> 1] = 0;
- d = 0;
- b[f >> 1] = d;
- return
- } else {
- b[d >> 1] = 30 - (c & 65535);
- d = (a >> 25 << 16) + -2097152 >> 16;
- c = b[7128 + (d << 1) >> 1] | 0;
- d = ((c << 16) - (Z(a >>> 9 & 65534, c - (e[7128 + (d + 1 << 1) >> 1] | 0) << 16 >> 16) | 0) | 0) >>> 16 & 65535;
- b[f >> 1] = d;
- return
- }
- }
- function fe(a, c, d) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- var f = 0, g = 0;
- f = a + 2 | 0;
- d = b[f >> 1] | 0;
- b[c >> 1] = d;
- g = a + 4 | 0;
- b[c + 2 >> 1] = (e[g >> 1] | 0) - (e[a >> 1] | 0);
- b[c + 4 >> 1] = (e[a + 6 >> 1] | 0) - (e[f >> 1] | 0);
- f = a + 8 | 0;
- b[c + 6 >> 1] = (e[f >> 1] | 0) - (e[g >> 1] | 0);
- b[c + 8 >> 1] = (e[a + 10 >> 1] | 0) - (e[a + 6 >> 1] | 0);
- g = a + 12 | 0;
- b[c + 10 >> 1] = (e[g >> 1] | 0) - (e[f >> 1] | 0);
- b[c + 12 >> 1] = (e[a + 14 >> 1] | 0) - (e[a + 10 >> 1] | 0);
- b[c + 14 >> 1] = (e[a + 16 >> 1] | 0) - (e[g >> 1] | 0);
- b[c + 16 >> 1] = (e[a + 18 >> 1] | 0) - (e[a + 14 >> 1] | 0);
- b[c + 18 >> 1] = 16384 - (e[a + 16 >> 1] | 0);
- a = 10;
- g = c;
- while (1) {
- d = d << 16 >> 16;
- c = (d << 16) + -120782848 | 0;
- if ((c | 0) > 0) c = 1843 - ((c >> 16) * 12484 >> 16) | 0; else c = 3427 - ((d * 56320 | 0) >>> 16) | 0;
- f = g + 2 | 0;
- b[g >> 1] = c << 3;
- a = a + -1 << 16 >> 16;
- if (!(a << 16 >> 16)) break;
- d = b[f >> 1] | 0;
- g = f;
- }
- return
- }
- function ge(a, b, c) {
- a = a | 0;
- b = b | 0;
- c = c | 0;
- c = b << 16 >> 16;
- if (b << 16 >> 16 > 31) {
- b = 0;
- return b | 0
- }
- if (b << 16 >> 16 > 0) return ((1 << c + -1 & a | 0) != 0 & 1) + (b << 16 >> 16 < 31 ? a >> c : 0) | 0;
- c = 0 - c << 16 >> 16;
- b = a << c;
- b = (b >> c | 0) == (a | 0) ? b : a >> 31 ^ 2147483647;
- return b | 0
- }
- function he(a, d, e) {
- a = a | 0;
- d = d | 0;
- e = e | 0;
- var f = 0, g = 0, h = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0;
- s = i;
- i = i + 48 | 0;
- q = s + 24 | 0;
- r = s;
- o = q + 4 | 0;
- c[q >> 2] = 16777216;
- f = 0 - (b[a >> 1] | 0) | 0;
- p = q + 8 | 0;
- c[o >> 2] = f << 10;
- g = b[a + 4 >> 1] | 0;
- l = f >> 6;
- c[p >> 2] = 33554432 - (((Z((f << 9) - (l << 15) << 16 >> 16, g) | 0) >> 15) + (Z(l, g) | 0) << 2);
- l = q + 4 | 0;
- g = (c[l >> 2] | 0) - (g << 10) | 0;
- c[l >> 2] = g;
- l = q + 12 | 0;
- f = q + 4 | 0;
- c[l >> 2] = g;
- e = b[a + 8 >> 1] | 0;
- h = g;
- m = 1;
- while (1) {
- k = l + -4 | 0;
- j = c[k >> 2] | 0;
- n = j >> 16;
- c[l >> 2] = h + g - (((Z((j >>> 1) - (n << 15) << 16 >> 16, e) | 0) >> 15) + (Z(n, e) | 0) << 2);
- if ((m | 0) == 2) break;
- h = c[l + -12 >> 2] | 0;
- l = k;
- g = j;
- m = m + 1 | 0;
- }
- c[f >> 2] = (c[f >> 2] | 0) - (e << 10);
- e = q + 16 | 0;
- f = c[q + 8 >> 2] | 0;
- c[e >> 2] = f;
- k = b[a + 12 >> 1] | 0;
- g = f;
- l = 1;
- while (1) {
- j = e + -4 | 0;
- h = c[j >> 2] | 0;
- n = h >> 16;
- c[e >> 2] = g + f - (((Z((h >>> 1) - (n << 15) << 16 >> 16, k) | 0) >> 15) + (Z(n, k) | 0) << 2);
- if ((l | 0) == 3) break;
- g = c[e + -12 >> 2] | 0;
- e = j;
- f = h;
- l = l + 1 | 0;
- }
- e = q + 4 | 0;
- c[e >> 2] = (c[e >> 2] | 0) - (k << 10);
- e = q + 20 | 0;
- g = c[q + 12 >> 2] | 0;
- c[e >> 2] = g;
- f = b[a + 16 >> 1] | 0;
- h = g;
- l = 1;
- while (1) {
- k = e + -4 | 0;
- j = c[k >> 2] | 0;
- n = j >> 16;
- c[e >> 2] = h + g - (((Z((j >>> 1) - (n << 15) << 16 >> 16, f) | 0) >> 15) + (Z(n, f) | 0) << 2);
- if ((l | 0) == 4) break;
- h = c[e + -12 >> 2] | 0;
- e = k;
- g = j;
- l = l + 1 | 0;
- }
- l = q + 4 | 0;
- c[l >> 2] = (c[l >> 2] | 0) - (f << 10);
- c[r >> 2] = 16777216;
- l = 0 - (b[a + 2 >> 1] | 0) | 0;
- n = r + 8 | 0;
- c[r + 4 >> 2] = l << 10;
- f = b[a + 6 >> 1] | 0;
- m = l >> 6;
- c[n >> 2] = 33554432 - (((Z((l << 9) - (m << 15) << 16 >> 16, f) | 0) >> 15) + (Z(m, f) | 0) << 2);
- m = r + 4 | 0;
- f = (c[m >> 2] | 0) - (f << 10) | 0;
- c[m >> 2] = f;
- m = r + 12 | 0;
- l = r + 4 | 0;
- c[m >> 2] = f;
- k = b[a + 10 >> 1] | 0;
- g = f;
- e = 1;
- while (1) {
- j = m + -4 | 0;
- h = c[j >> 2] | 0;
- t = h >> 16;
- c[m >> 2] = g + f - (((Z((h >>> 1) - (t << 15) << 16 >> 16, k) | 0) >> 15) + (Z(t, k) | 0) << 2);
- if ((e | 0) == 2) break;
- g = c[m + -12 >> 2] | 0;
- m = j;
- f = h;
- e = e + 1 | 0;
- }
- c[l >> 2] = (c[l >> 2] | 0) - (k << 10);
- l = r + 16 | 0;
- f = c[r + 8 >> 2] | 0;
- c[l >> 2] = f;
- k = b[a + 14 >> 1] | 0;
- g = f;
- e = 1;
- while (1) {
- j = l + -4 | 0;
- h = c[j >> 2] | 0;
- t = h >> 16;
- c[l >> 2] = g + f - (((Z((h >>> 1) - (t << 15) << 16 >> 16, k) | 0) >> 15) + (Z(t, k) | 0) << 2);
- if ((e | 0) == 3) break;
- g = c[l + -12 >> 2] | 0;
- l = j;
- f = h;
- e = e + 1 | 0;
- }
- e = r + 4 | 0;
- c[e >> 2] = (c[e >> 2] | 0) - (k << 10);
- e = r + 20 | 0;
- k = c[r + 12 >> 2] | 0;
- c[e >> 2] = k;
- f = b[a + 18 >> 1] | 0;
- j = k;
- l = 1;
- while (1) {
- g = e + -4 | 0;
- h = c[g >> 2] | 0;
- t = h >> 16;
- c[e >> 2] = j + k - (((Z((h >>> 1) - (t << 15) << 16 >> 16, f) | 0) >> 15) + (Z(t, f) | 0) << 2);
- if ((l | 0) == 4) break;
- j = c[e + -12 >> 2] | 0;
- e = g;
- k = h;
- l = l + 1 | 0;
- }
- j = (c[r + 4 >> 2] | 0) - (f << 10) | 0;
- m = q + 20 | 0;
- k = r + 20 | 0;
- l = c[q + 16 >> 2] | 0;
- a = (c[m >> 2] | 0) + l | 0;
- c[m >> 2] = a;
- m = c[r + 16 >> 2] | 0;
- t = (c[k >> 2] | 0) - m | 0;
- c[k >> 2] = t;
- k = c[q + 12 >> 2] | 0;
- l = l + k | 0;
- c[q + 16 >> 2] = l;
- h = c[r + 12 >> 2] | 0;
- m = m - h | 0;
- c[r + 16 >> 2] = m;
- f = c[p >> 2] | 0;
- k = k + f | 0;
- c[q + 12 >> 2] = k;
- g = c[n >> 2] | 0;
- p = h - g | 0;
- c[r + 12 >> 2] = p;
- h = c[o >> 2] | 0;
- n = f + h | 0;
- c[q + 8 >> 2] = n;
- o = g - j | 0;
- c[r + 8 >> 2] = o;
- q = h + (c[q >> 2] | 0) | 0;
- r = j - (c[r >> 2] | 0) | 0;
- b[d >> 1] = 4096;
- q = q + 4096 | 0;
- b[d + 2 >> 1] = (q + r | 0) >>> 13;
- b[d + 20 >> 1] = (q - r | 0) >>> 13;
- r = n + 4096 | 0;
- b[d + 4 >> 1] = (r + o | 0) >>> 13;
- b[d + 18 >> 1] = (r - o | 0) >>> 13;
- r = k + 4096 | 0;
- b[d + 6 >> 1] = (r + p | 0) >>> 13;
- b[d + 16 >> 1] = (r - p | 0) >>> 13;
- r = l + 4096 | 0;
- b[d + 8 >> 1] = (r + m | 0) >>> 13;
- b[d + 14 >> 1] = (r - m | 0) >>> 13;
- r = a + 4096 | 0;
- b[d + 10 >> 1] = (r + t | 0) >>> 13;
- b[d + 12 >> 1] = (r - t | 0) >>> 13;
- i = s;
- return
- }
- function ie(a) {
- a = a | 0;
- var d = 0, e = 0, f = 0, g = 0, h = 0;
- if (!a) {
- h = -1;
- return h | 0
- }
- c[a >> 2] = 0;
- d = Je(44) | 0;
- if (!d) {
- h = -1;
- return h | 0
- }
- e = d + 40 | 0;
- if ((xe(e) | 0) << 16 >> 16) {
- h = -1;
- return h | 0
- }
- f = d;
- g = 7452;
- h = f + 20 | 0;
- do {
- b[f >> 1] = b[g >> 1] | 0;
- f = f + 2 | 0;
- g = g + 2 | 0;
- } while ((f | 0) < (h | 0));
- f = d + 20 | 0;
- g = 7452;
- h = f + 20 | 0;
- do {
- b[f >> 1] = b[g >> 1] | 0;
- f = f + 2 | 0;
- g = g + 2 | 0;
- } while ((f | 0) < (h | 0));
- ye(c[e >> 2] | 0) | 0;
- c[a >> 2] = d;
- h = 0;
- return h | 0
- }
- function je(a) {
- a = a | 0;
- var d = 0, e = 0, f = 0;
- if (!a) {
- f = -1;
- return f | 0
- }
- d = a;
- e = 7452;
- f = d + 20 | 0;
- do {
- b[d >> 1] = b[e >> 1] | 0;
- d = d + 2 | 0;
- e = e + 2 | 0;
- } while ((d | 0) < (f | 0));
- d = a + 20 | 0;
- e = 7452;
- f = d + 20 | 0;
- do {
- b[d >> 1] = b[e >> 1] | 0;
- d = d + 2 | 0;
- e = e + 2 | 0;
- } while ((d | 0) < (f | 0));
- ye(c[a + 40 >> 2] | 0) | 0;
- f = 0;
- return f | 0
- }
- function ke(a) {
- a = a | 0;
- var b = 0;
- if (!a) return;
- b = c[a >> 2] | 0;
- if (!b) return;
- ze(b + 40 | 0);
- Ke(c[a >> 2] | 0);
- c[a >> 2] = 0;
- return
- }
- function le(a, d, e, f, g, h, j, k) {
- a = a | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- k = k | 0;
- var l = 0, m = 0, n = 0, o = 0, p = 0;
- p = i;
- i = i + 64 | 0;
- o = p + 44 | 0;
- l = p + 24 | 0;
- m = p + 4 | 0;
- n = p;
- if ((d | 0) == 7) {
- Sd(f + 22 | 0, l, a, k);
- Sd(f + 66 | 0, h, l, k);
- $d(a, l, h, f, k);
- if ((e | 0) == 8) f = 6; else {
- ve(c[a + 40 >> 2] | 0, l, h, m, o, c[j >> 2] | 0, k);
- _d(a + 20 | 0, m, o, g, k);
- g = (c[j >> 2] | 0) + 10 | 0;
- f = 7;
- }
- } else {
- Sd(f + 66 | 0, h, a, k);
- be(a, h, f, k);
- if ((e | 0) == 8) f = 6; else {
- te(c[a + 40 >> 2] | 0, d, h, o, c[j >> 2] | 0, n, k);
- ae(a + 20 | 0, o, g, k);
- g = (c[j >> 2] | 0) + 6 | 0;
- f = 7;
- }
- }
- if ((f | 0) == 6) {
- f = a;
- g = f + 20 | 0;
- do {
- b[f >> 1] = b[h >> 1] | 0;
- f = f + 2 | 0;
- h = h + 2 | 0;
- } while ((f | 0) < (g | 0));
- i = p;
- return
- } else if ((f | 0) == 7) {
- c[j >> 2] = g;
- f = a;
- g = f + 20 | 0;
- do {
- b[f >> 1] = b[h >> 1] | 0;
- f = f + 2 | 0;
- h = h + 2 | 0;
- } while ((f | 0) < (g | 0));
- f = a + 20 | 0;
- h = o;
- g = f + 20 | 0;
- do {
- b[f >> 1] = b[h >> 1] | 0;
- f = f + 2 | 0;
- h = h + 2 | 0;
- } while ((f | 0) < (g | 0));
- i = p;
- return
- }
- }
- function me(a, c, d, e) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- e = e | 0;
- var f = 0, g = 0, h = 0;
- if (d << 16 >> 16 > 0) e = 0; else return;
- do {
- g = b[a + (e << 1) >> 1] | 0;
- h = g >> 8;
- f = b[7194 + (h << 1) >> 1] | 0;
- b[c + (e << 1) >> 1] = ((Z((b[7194 + (h + 1 << 1) >> 1] | 0) - f | 0, g & 255) | 0) >>> 8) + f;
- e = e + 1 | 0;
- } while ((e & 65535) << 16 >> 16 != d << 16 >> 16);
- return
- }
- function ne(a, c, d, e) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- e = e | 0;
- var f = 0, g = 0, h = 0;
- e = (d << 16 >> 16) + -1 | 0;
- d = e & 65535;
- if (d << 16 >> 16 <= -1) return;
- f = 63;
- h = c + (e << 1) | 0;
- g = a + (e << 1) | 0;
- while (1) {
- a = b[g >> 1] | 0;
- c = f;
- while (1) {
- e = c << 16 >> 16;
- f = b[7194 + (e << 1) >> 1] | 0;
- if (a << 16 >> 16 > f << 16 >> 16) c = c + -1 << 16 >> 16; else break
- }
- b[h >> 1] = (((Z(b[7324 + (e << 1) >> 1] | 0, (a << 16 >> 16) - (f << 16 >> 16) | 0) | 0) + 2048 | 0) >>> 12) + (e << 8);
- d = d + -1 << 16 >> 16;
- if (d << 16 >> 16 > -1) {
- f = c;
- h = h + -2 | 0;
- g = g + -2 | 0;
- } else break
- }
- return
- }
- function oe(a, b, d) {
- a = a | 0;
- b = b | 0;
- d = d | 0;
- a = (Z(b << 16 >> 16, a << 16 >> 16) | 0) + 16384 >> 15;
- a = a | 0 - (a & 65536);
- if ((a | 0) <= 32767) {
- if ((a | 0) < -32768) {
- c[d >> 2] = 1;
- a = -32768;
- }
- } else {
- c[d >> 2] = 1;
- a = 32767;
- }
- return a & 65535 | 0
- }
- function pe(a) {
- a = a | 0;
- var b = 0;
- a:do if ((a | 0) != 0 ? (b = a - (a >>> 31) | 0, b = b >> 31 ^ b, (b & 1073741824 | 0) == 0) : 0) {
- a = b;
- b = 0;
- while (1) {
- if (a & 536870912) {
- a = 7;
- break
- }
- if (a & 268435456) {
- a = 8;
- break
- }
- if (a & 134217728) {
- a = 9;
- break
- }
- b = b + 4 << 16 >> 16;
- a = a << 4;
- if (a & 1073741824) break a
- }
- if ((a | 0) == 7) {
- b = b | 1;
- break
- } else if ((a | 0) == 8) {
- b = b | 2;
- break
- } else if ((a | 0) == 9) {
- b = b | 3;
- break
- }
- } else b = 0; while (0);
- return b | 0
- }
- function qe(a) {
- a = a | 0;
- var b = 0, c = 0;
- if (!(a << 16 >> 16)) {
- c = 0;
- return c | 0
- }
- b = (a & 65535) - ((a & 65535) >>> 15 & 65535) | 0;
- b = (b << 16 >> 31 ^ b) << 16;
- a = b >> 16;
- if (!(a & 16384)) {
- c = b;
- b = 0;
- } else {
- c = 0;
- return c | 0
- }
- while (1) {
- if (a & 8192) {
- a = b;
- c = 7;
- break
- }
- if (a & 4096) {
- a = b;
- c = 8;
- break
- }
- if (a & 2048) {
- a = b;
- c = 9;
- break
- }
- b = b + 4 << 16 >> 16;
- c = c << 4;
- a = c >> 16;
- if (a & 16384) {
- a = b;
- c = 10;
- break
- }
- }
- if ((c | 0) == 7) {
- c = a | 1;
- return c | 0
- } else if ((c | 0) == 8) {
- c = a | 2;
- return c | 0
- } else if ((c | 0) == 9) {
- c = a | 3;
- return c | 0
- } else if ((c | 0) == 10) return a | 0;
- return 0
- }
- function re(a, d, f) {
- a = a | 0;
- d = d | 0;
- f = f | 0;
- var g = 0, h = 0, i = 0;
- d = d << 16 >> 16;
- if ((d & 134217727 | 0) == 33554432) {
- c[f >> 2] = 1;
- d = 2147483647;
- } else d = d << 6;
- g = d >>> 16 & 31;
- i = b[7792 + (g << 1) >> 1] | 0;
- h = i << 16;
- d = Z(i - (e[7792 + (g + 1 << 1) >> 1] | 0) << 16 >> 16, d >>> 1 & 32767) | 0;
- if ((d | 0) == 1073741824) {
- c[f >> 2] = 1;
- g = 2147483647;
- } else g = d << 1;
- d = h - g | 0;
- if (((d ^ h) & (g ^ h) | 0) >= 0) {
- i = d;
- a = a & 65535;
- a = 30 - a | 0;
- a = a & 65535;
- f = ge(i, a, f) | 0;
- return f | 0
- }
- c[f >> 2] = 1;
- i = (i >>> 15 & 1) + 2147483647 | 0;
- a = a & 65535;
- a = 30 - a | 0;
- a = a & 65535;
- f = ge(i, a, f) | 0;
- return f | 0
- }
- function se(a, c, d, e, f, g) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- g = g | 0;
- var h = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0;
- o = i;
- i = i + 48 | 0;
- n = o;
- m = 0 - (d & 65535) | 0;
- m = f << 16 >> 16 == 0 ? m : m << 1 & 131070;
- d = m & 65535;
- m = (d << 16 >> 16 < 0 ? m + 6 | 0 : m) << 16 >> 16;
- g = 6 - m | 0;
- b[n >> 1] = b[7858 + (m << 1) >> 1] | 0;
- b[n + 2 >> 1] = b[7858 + (g << 1) >> 1] | 0;
- b[n + 4 >> 1] = b[7858 + (m + 6 << 1) >> 1] | 0;
- b[n + 6 >> 1] = b[7858 + (g + 6 << 1) >> 1] | 0;
- b[n + 8 >> 1] = b[7858 + (m + 12 << 1) >> 1] | 0;
- b[n + 10 >> 1] = b[7858 + (g + 12 << 1) >> 1] | 0;
- b[n + 12 >> 1] = b[7858 + (m + 18 << 1) >> 1] | 0;
- b[n + 14 >> 1] = b[7858 + (g + 18 << 1) >> 1] | 0;
- b[n + 16 >> 1] = b[7858 + (m + 24 << 1) >> 1] | 0;
- b[n + 18 >> 1] = b[7858 + (g + 24 << 1) >> 1] | 0;
- b[n + 20 >> 1] = b[7858 + (m + 30 << 1) >> 1] | 0;
- b[n + 22 >> 1] = b[7858 + (g + 30 << 1) >> 1] | 0;
- b[n + 24 >> 1] = b[7858 + (m + 36 << 1) >> 1] | 0;
- b[n + 26 >> 1] = b[7858 + (g + 36 << 1) >> 1] | 0;
- b[n + 28 >> 1] = b[7858 + (m + 42 << 1) >> 1] | 0;
- b[n + 30 >> 1] = b[7858 + (g + 42 << 1) >> 1] | 0;
- b[n + 32 >> 1] = b[7858 + (m + 48 << 1) >> 1] | 0;
- b[n + 34 >> 1] = b[7858 + (g + 48 << 1) >> 1] | 0;
- b[n + 36 >> 1] = b[7858 + (m + 54 << 1) >> 1] | 0;
- b[n + 38 >> 1] = b[7858 + (g + 54 << 1) >> 1] | 0;
- g = e << 16 >> 16 >>> 1 & 65535;
- if (!(g << 16 >> 16)) {
- i = o;
- return
- }
- m = a + ((d << 16 >> 16 >> 15 << 16 >> 16) - (c << 16 >> 16) << 1) | 0;
- while (1) {
- l = m + 2 | 0;
- h = b[l >> 1] | 0;
- c = h;
- e = m;
- j = 5;
- k = n;
- f = 16384;
- d = 16384;
- while (1) {
- q = b[k >> 1] | 0;
- r = (Z(q, c << 16 >> 16) | 0) + d | 0;
- p = b[l + -2 >> 1] | 0;
- d = (Z(p, q) | 0) + f | 0;
- q = e;
- e = e + 4 | 0;
- s = b[k + 2 >> 1] | 0;
- d = d + (Z(s, h << 16 >> 16) | 0) | 0;
- f = b[e >> 1] | 0;
- s = r + (Z(f, s) | 0) | 0;
- l = l + -4 | 0;
- r = b[k + 4 >> 1] | 0;
- p = s + (Z(r, p) | 0) | 0;
- c = b[l >> 1] | 0;
- r = d + (Z(c << 16 >> 16, r) | 0) | 0;
- d = b[k + 6 >> 1] | 0;
- f = r + (Z(d, f) | 0) | 0;
- h = b[q + 6 >> 1] | 0;
- d = p + (Z(h << 16 >> 16, d) | 0) | 0;
- if (j << 16 >> 16 <= 1) break; else {
- j = j + -1 << 16 >> 16;
- k = k + 8 | 0;
- }
- }
- b[a >> 1] = f >>> 15;
- b[a + 2 >> 1] = d >>> 15;
- g = g + -1 << 16 >> 16;
- if (!(g << 16 >> 16)) break; else {
- m = m + 4 | 0;
- a = a + 4 | 0;
- }
- }
- i = o;
- return
- }
- function te(a, c, d, f, g, h, j) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- var 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;
- C = i;
- i = i + 144 | 0;
- t = C + 120 | 0;
- y = C + 100 | 0;
- A = C + 80 | 0;
- B = C + 60 | 0;
- z = C + 40 | 0;
- q = C + 20 | 0;
- r = C;
- ne(d, t, 10, j);
- fe(t, y, j);
- if ((c | 0) == 8) {
- b[h >> 1] = 0;
- l = 2147483647;
- s = 0;
- while (1) {
- n = s * 10 | 0;
- d = 0;
- m = 0;
- do {
- x = (e[7980 + (m + n << 1) >> 1] | 0) + (e[8140 + (m << 1) >> 1] | 0) | 0;
- b[r + (m << 1) >> 1] = x;
- x = (e[t + (m << 1) >> 1] | 0) - (x & 65535) | 0;
- b[q + (m << 1) >> 1] = x;
- x = x << 16;
- d = (Z(x >> 15, x >> 16) | 0) + d | 0;
- m = m + 1 | 0;
- } while ((m | 0) != 10);
- if ((d | 0) < (l | 0)) {
- u = B;
- p = q;
- o = u + 20 | 0;
- do {
- b[u >> 1] = b[p >> 1] | 0;
- u = u + 2 | 0;
- p = p + 2 | 0;
- } while ((u | 0) < (o | 0));
- u = A;
- p = r;
- o = u + 20 | 0;
- do {
- b[u >> 1] = b[p >> 1] | 0;
- u = u + 2 | 0;
- p = p + 2 | 0;
- } while ((u | 0) < (o | 0));
- u = a;
- p = 7980 + (n << 1) | 0;
- o = u + 20 | 0;
- do {
- b[u >> 1] = b[p >> 1] | 0;
- u = u + 2 | 0;
- p = p + 2 | 0;
- } while ((u | 0) < (o | 0));
- b[h >> 1] = s;
- } else d = l;
- s = s + 1 | 0;
- if ((s | 0) == 8) break; else l = d;
- }
- } else {
- d = 0;
- do {
- x = Z(b[8160 + (d << 1) >> 1] | 0, b[a + (d << 1) >> 1] | 0) | 0;
- x = (x >>> 15) + (e[8140 + (d << 1) >> 1] | 0) | 0;
- b[A + (d << 1) >> 1] = x;
- b[B + (d << 1) >> 1] = (e[t + (d << 1) >> 1] | 0) - x;
- d = d + 1 | 0;
- } while ((d | 0) != 10)
- }
- do if (c >>> 0 >= 2) {
- x = B + 2 | 0;
- w = B + 4 | 0;
- v = e[B >> 1] | 0;
- u = b[y >> 1] << 1;
- t = e[x >> 1] | 0;
- q = b[y + 2 >> 1] << 1;
- p = e[w >> 1] | 0;
- o = b[y + 4 >> 1] << 1;
- if ((c | 0) == 5) {
- r = 2147483647;
- h = 0;
- d = 0;
- s = 17908;
- while (1) {
- m = (Z(v - (e[s >> 1] | 0) << 16 >> 16, u) | 0) >> 16;
- m = Z(m, m) | 0;
- n = (Z(t - (e[s + 2 >> 1] | 0) << 16 >> 16, q) | 0) >> 16;
- m = (Z(n, n) | 0) + m | 0;
- n = (Z(p - (e[s + 4 >> 1] | 0) << 16 >> 16, o) | 0) >> 16;
- n = m + (Z(n, n) | 0) | 0;
- m = (n | 0) < (r | 0);
- d = m ? h : d;
- h = h + 1 << 16 >> 16;
- if (h << 16 >> 16 >= 512) break; else {
- r = m ? n : r;
- s = s + 6 | 0;
- }
- }
- n = (d << 16 >> 16) * 3 | 0;
- b[B >> 1] = b[17908 + (n << 1) >> 1] | 0;
- b[x >> 1] = b[17908 + (n + 1 << 1) >> 1] | 0;
- b[w >> 1] = b[17908 + (n + 2 << 1) >> 1] | 0;
- b[g >> 1] = d;
- n = B + 6 | 0;
- m = B + 8 | 0;
- v = B + 10 | 0;
- s = e[n >> 1] | 0;
- h = b[y + 6 >> 1] << 1;
- r = e[m >> 1] | 0;
- q = b[y + 8 >> 1] << 1;
- p = e[v >> 1] | 0;
- o = b[y + 10 >> 1] << 1;
- k = 2147483647;
- t = 0;
- d = 0;
- u = 9716;
- while (1) {
- l = (Z(h, s - (e[u >> 1] | 0) << 16 >> 16) | 0) >> 16;
- l = Z(l, l) | 0;
- c = (Z(q, r - (e[u + 2 >> 1] | 0) << 16 >> 16) | 0) >> 16;
- l = (Z(c, c) | 0) + l | 0;
- c = (Z(o, p - (e[u + 4 >> 1] | 0) << 16 >> 16) | 0) >> 16;
- c = l + (Z(c, c) | 0) | 0;
- l = (c | 0) < (k | 0);
- d = l ? t : d;
- t = t + 1 << 16 >> 16;
- if (t << 16 >> 16 >= 512) break; else {
- k = l ? c : k;
- u = u + 6 | 0;
- }
- }
- k = (d << 16 >> 16) * 3 | 0;
- b[n >> 1] = b[9716 + (k << 1) >> 1] | 0;
- b[m >> 1] = b[9716 + (k + 1 << 1) >> 1] | 0;
- b[v >> 1] = b[9716 + (k + 2 << 1) >> 1] | 0;
- b[g + 2 >> 1] = d;
- k = B + 12 | 0;
- b[g + 4 >> 1] = ue(k, 12788, y + 12 | 0, 512) | 0;
- t = x;
- s = w;
- d = v;
- l = B;
- break
- } else {
- r = 2147483647;
- h = 0;
- d = 0;
- s = 8180;
- while (1) {
- m = (Z(v - (e[s >> 1] | 0) << 16 >> 16, u) | 0) >> 16;
- m = Z(m, m) | 0;
- n = (Z(t - (e[s + 2 >> 1] | 0) << 16 >> 16, q) | 0) >> 16;
- m = (Z(n, n) | 0) + m | 0;
- n = (Z(p - (e[s + 4 >> 1] | 0) << 16 >> 16, o) | 0) >> 16;
- n = m + (Z(n, n) | 0) | 0;
- m = (n | 0) < (r | 0);
- d = m ? h : d;
- h = h + 1 << 16 >> 16;
- if (h << 16 >> 16 >= 256) break; else {
- r = m ? n : r;
- s = s + 6 | 0;
- }
- }
- n = (d << 16 >> 16) * 3 | 0;
- b[B >> 1] = b[8180 + (n << 1) >> 1] | 0;
- b[x >> 1] = b[8180 + (n + 1 << 1) >> 1] | 0;
- b[w >> 1] = b[8180 + (n + 2 << 1) >> 1] | 0;
- b[g >> 1] = d;
- n = B + 6 | 0;
- m = B + 8 | 0;
- v = B + 10 | 0;
- s = e[n >> 1] | 0;
- h = b[y + 6 >> 1] << 1;
- r = e[m >> 1] | 0;
- q = b[y + 8 >> 1] << 1;
- p = e[v >> 1] | 0;
- o = b[y + 10 >> 1] << 1;
- k = 2147483647;
- t = 0;
- d = 0;
- u = 9716;
- while (1) {
- l = (Z(h, s - (e[u >> 1] | 0) << 16 >> 16) | 0) >> 16;
- l = Z(l, l) | 0;
- c = (Z(q, r - (e[u + 2 >> 1] | 0) << 16 >> 16) | 0) >> 16;
- l = (Z(c, c) | 0) + l | 0;
- c = (Z(o, p - (e[u + 4 >> 1] | 0) << 16 >> 16) | 0) >> 16;
- c = l + (Z(c, c) | 0) | 0;
- l = (c | 0) < (k | 0);
- d = l ? t : d;
- t = t + 1 << 16 >> 16;
- if (t << 16 >> 16 >= 512) break; else {
- k = l ? c : k;
- u = u + 6 | 0;
- }
- }
- k = (d << 16 >> 16) * 3 | 0;
- b[n >> 1] = b[9716 + (k << 1) >> 1] | 0;
- b[m >> 1] = b[9716 + (k + 1 << 1) >> 1] | 0;
- b[v >> 1] = b[9716 + (k + 2 << 1) >> 1] | 0;
- b[g + 2 >> 1] = d;
- k = B + 12 | 0;
- b[g + 4 >> 1] = ue(k, 12788, y + 12 | 0, 512) | 0;
- t = x;
- s = w;
- d = v;
- l = B;
- break
- }
- } else {
- w = B + 2 | 0;
- x = B + 4 | 0;
- n = e[B >> 1] | 0;
- m = b[y >> 1] << 1;
- l = e[w >> 1] | 0;
- k = b[y + 2 >> 1] << 1;
- c = e[x >> 1] | 0;
- o = b[y + 4 >> 1] << 1;
- r = 2147483647;
- h = 0;
- d = 0;
- s = 8180;
- while (1) {
- q = (Z(m, n - (e[s >> 1] | 0) << 16 >> 16) | 0) >> 16;
- q = Z(q, q) | 0;
- p = (Z(k, l - (e[s + 2 >> 1] | 0) << 16 >> 16) | 0) >> 16;
- q = (Z(p, p) | 0) + q | 0;
- p = (Z(o, c - (e[s + 4 >> 1] | 0) << 16 >> 16) | 0) >> 16;
- p = q + (Z(p, p) | 0) | 0;
- q = (p | 0) < (r | 0);
- d = q ? h : d;
- h = h + 1 << 16 >> 16;
- if (h << 16 >> 16 >= 256) break; else {
- r = q ? p : r;
- s = s + 6 | 0;
- }
- }
- n = (d << 16 >> 16) * 3 | 0;
- b[B >> 1] = b[8180 + (n << 1) >> 1] | 0;
- b[w >> 1] = b[8180 + (n + 1 << 1) >> 1] | 0;
- b[x >> 1] = b[8180 + (n + 2 << 1) >> 1] | 0;
- b[g >> 1] = d;
- n = B + 6 | 0;
- m = B + 8 | 0;
- v = B + 10 | 0;
- s = e[n >> 1] | 0;
- h = b[y + 6 >> 1] << 1;
- r = e[m >> 1] | 0;
- q = b[y + 8 >> 1] << 1;
- p = e[v >> 1] | 0;
- o = b[y + 10 >> 1] << 1;
- k = 2147483647;
- t = 0;
- d = 0;
- u = 9716;
- while (1) {
- l = (Z(h, s - (e[u >> 1] | 0) << 16 >> 16) | 0) >> 16;
- l = Z(l, l) | 0;
- c = (Z(q, r - (e[u + 2 >> 1] | 0) << 16 >> 16) | 0) >> 16;
- l = (Z(c, c) | 0) + l | 0;
- c = (Z(o, p - (e[u + 4 >> 1] | 0) << 16 >> 16) | 0) >> 16;
- c = l + (Z(c, c) | 0) | 0;
- l = (c | 0) < (k | 0);
- d = l ? t : d;
- t = t + 1 << 16 >> 16;
- if (t << 16 >> 16 >= 256) break; else {
- k = l ? c : k;
- u = u + 12 | 0;
- }
- }
- k = (d << 16 >> 16) * 6 | 0;
- b[n >> 1] = b[9716 + (k << 1) >> 1] | 0;
- b[m >> 1] = b[9716 + ((k | 1) << 1) >> 1] | 0;
- b[v >> 1] = b[9716 + (k + 2 << 1) >> 1] | 0;
- b[g + 2 >> 1] = d;
- k = B + 12 | 0;
- b[g + 4 >> 1] = ue(k, 16884, y + 12 | 0, 128) | 0;
- t = w;
- s = x;
- d = v;
- l = B;
- } while (0);
- u = a;
- p = B;
- o = u + 20 | 0;
- do {
- b[u >> 1] = b[p >> 1] | 0;
- u = u + 2 | 0;
- p = p + 2 | 0;
- } while ((u | 0) < (o | 0));
- b[z >> 1] = (e[A >> 1] | 0) + (e[l >> 1] | 0);
- b[z + 2 >> 1] = (e[A + 2 >> 1] | 0) + (e[t >> 1] | 0);
- b[z + 4 >> 1] = (e[A + 4 >> 1] | 0) + (e[s >> 1] | 0);
- b[z + 6 >> 1] = (e[A + 6 >> 1] | 0) + (e[n >> 1] | 0);
- b[z + 8 >> 1] = (e[A + 8 >> 1] | 0) + (e[m >> 1] | 0);
- b[z + 10 >> 1] = (e[A + 10 >> 1] | 0) + (e[d >> 1] | 0);
- b[z + 12 >> 1] = (e[A + 12 >> 1] | 0) + (e[k >> 1] | 0);
- b[z + 14 >> 1] = (e[A + 14 >> 1] | 0) + (e[B + 14 >> 1] | 0);
- b[z + 16 >> 1] = (e[A + 16 >> 1] | 0) + (e[B + 16 >> 1] | 0);
- b[z + 18 >> 1] = (e[A + 18 >> 1] | 0) + (e[B + 18 >> 1] | 0);
- Ae(z, 205, 10, j);
- me(z, f, 10, j);
- i = C;
- return
- }
- function ue(a, c, d, f) {
- a = a | 0;
- c = c | 0;
- d = d | 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;
- t = a + 2 | 0;
- u = a + 4 | 0;
- v = a + 6 | 0;
- if (f << 16 >> 16 > 0) {
- m = e[a >> 1] | 0;
- n = b[d >> 1] << 1;
- o = e[t >> 1] | 0;
- p = b[d + 2 >> 1] << 1;
- q = e[u >> 1] | 0;
- r = b[d + 4 >> 1] << 1;
- s = e[v >> 1] | 0;
- g = b[d + 6 >> 1] << 1;
- j = 2147483647;
- k = 0;
- d = 0;
- l = c;
- while (1) {
- h = (Z(n, m - (e[l >> 1] | 0) << 16 >> 16) | 0) >> 16;
- h = Z(h, h) | 0;
- i = (Z(p, o - (e[l + 2 >> 1] | 0) << 16 >> 16) | 0) >> 16;
- h = (Z(i, i) | 0) + h | 0;
- i = (Z(r, q - (e[l + 4 >> 1] | 0) << 16 >> 16) | 0) >> 16;
- i = h + (Z(i, i) | 0) | 0;
- h = (Z(g, s - (e[l + 6 >> 1] | 0) << 16 >> 16) | 0) >> 16;
- h = i + (Z(h, h) | 0) | 0;
- i = (h | 0) < (j | 0);
- d = i ? k : d;
- k = k + 1 << 16 >> 16;
- if (k << 16 >> 16 >= f << 16 >> 16) break; else {
- j = i ? h : j;
- l = l + 8 | 0;
- }
- }
- } else d = 0;
- f = d << 16 >> 16 << 2;
- s = f | 1;
- b[a >> 1] = b[c + (f << 1) >> 1] | 0;
- b[t >> 1] = b[c + (s << 1) >> 1] | 0;
- b[u >> 1] = b[c + (s + 1 << 1) >> 1] | 0;
- b[v >> 1] = b[c + ((f | 3) << 1) >> 1] | 0;
- return d | 0
- }
- function ve(a, c, d, f, g, h, j) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- j = j | 0;
- var 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, J = 0, K = 0;
- I = i;
- i = i + 192 | 0;
- m = I + 160 | 0;
- l = I + 140 | 0;
- C = I + 120 | 0;
- D = I + 100 | 0;
- E = I + 80 | 0;
- F = I + 60 | 0;
- k = I + 40 | 0;
- G = I + 20 | 0;
- H = I;
- ne(c, m, 10, j);
- ne(d, l, 10, j);
- fe(m, C, j);
- fe(l, D, j);
- n = 0;
- d = E;
- c = F;
- o = k;
- while (1) {
- B = (((b[a + (n << 1) >> 1] | 0) * 21299 | 0) >>> 15) + (e[20980 + (n << 1) >> 1] | 0) | 0;
- b[d >> 1] = B;
- b[c >> 1] = (e[m >> 1] | 0) - B;
- b[o >> 1] = (e[l >> 1] | 0) - B;
- n = n + 1 | 0;
- if ((n | 0) == 10) break; else {
- m = m + 2 | 0;
- l = l + 2 | 0;
- d = d + 2 | 0;
- c = c + 2 | 0;
- o = o + 2 | 0;
- }
- }
- b[h >> 1] = we(F, k, 21e3, b[C >> 1] | 0, b[C + 2 >> 1] | 0, b[D >> 1] | 0, b[D + 2 >> 1] | 0, 128) | 0;
- b[h + 2 >> 1] = we(F + 4 | 0, k + 4 | 0, 22024, b[C + 4 >> 1] | 0, b[C + 6 >> 1] | 0, b[D + 4 >> 1] | 0, b[D + 6 >> 1] | 0, 256) | 0;
- y = F + 8 | 0;
- z = k + 8 | 0;
- A = F + 10 | 0;
- B = k + 10 | 0;
- d = b[y >> 1] | 0;
- p = b[C + 8 >> 1] << 1;
- q = b[A >> 1] | 0;
- r = b[C + 10 >> 1] << 1;
- s = b[z >> 1] | 0;
- t = b[D + 8 >> 1] << 1;
- u = b[B >> 1] | 0;
- v = b[D + 10 >> 1] << 1;
- l = 2147483647;
- w = 0;
- o = 0;
- x = 24072;
- c = 0;
- while (1) {
- m = b[x >> 1] | 0;
- n = (Z(d - m << 16 >> 16, p) | 0) >> 16;
- n = Z(n, n) | 0;
- m = (Z(m + d << 16 >> 16, p) | 0) >> 16;
- m = Z(m, m) | 0;
- J = b[x + 2 >> 1] | 0;
- K = (Z(q - J << 16 >> 16, r) | 0) >> 16;
- n = (Z(K, K) | 0) + n | 0;
- J = (Z(J + q << 16 >> 16, r) | 0) >> 16;
- m = (Z(J, J) | 0) + m | 0;
- if ((n | 0) < (l | 0) | (m | 0) < (l | 0)) {
- K = b[x + 4 >> 1] | 0;
- J = (Z(s - K << 16 >> 16, t) | 0) >> 16;
- J = (Z(J, J) | 0) + n | 0;
- K = (Z(K + s << 16 >> 16, t) | 0) >> 16;
- K = (Z(K, K) | 0) + m | 0;
- m = b[x + 6 >> 1] | 0;
- n = (Z(u - m << 16 >> 16, v) | 0) >> 16;
- n = J + (Z(n, n) | 0) | 0;
- m = (Z(m + u << 16 >> 16, v) | 0) >> 16;
- m = K + (Z(m, m) | 0) | 0;
- K = (n | 0) < (l | 0);
- n = K ? n : l;
- J = (m | 0) < (n | 0);
- n = J ? m : n;
- o = K | J ? w : o;
- c = J ? 1 : K ? 0 : c;
- } else n = l;
- w = w + 1 << 16 >> 16;
- if (w << 16 >> 16 >= 256) break; else {
- l = n;
- x = x + 8 | 0;
- }
- }
- n = o << 16 >> 16;
- m = n << 2;
- o = m | 1;
- l = 24072 + (o << 1) | 0;
- d = b[24072 + (m << 1) >> 1] | 0;
- if (!(c << 16 >> 16)) {
- b[y >> 1] = d;
- b[A >> 1] = b[l >> 1] | 0;
- b[z >> 1] = b[24072 + (o + 1 << 1) >> 1] | 0;
- b[B >> 1] = b[24072 + ((m | 3) << 1) >> 1] | 0;
- c = n << 1;
- } else {
- b[y >> 1] = 0 - (d & 65535);
- b[A >> 1] = 0 - (e[l >> 1] | 0);
- b[z >> 1] = 0 - (e[24072 + (o + 1 << 1) >> 1] | 0);
- b[B >> 1] = 0 - (e[24072 + ((m | 3) << 1) >> 1] | 0);
- c = n << 1 & 65534 | 1;
- }
- b[h + 4 >> 1] = c;
- b[h + 6 >> 1] = we(F + 12 | 0, k + 12 | 0, 26120, b[C + 12 >> 1] | 0, b[C + 14 >> 1] | 0, b[D + 12 >> 1] | 0, b[D + 14 >> 1] | 0, 256) | 0;
- b[h + 8 >> 1] = we(F + 16 | 0, k + 16 | 0, 28168, b[C + 16 >> 1] | 0, b[C + 18 >> 1] | 0, b[D + 16 >> 1] | 0, b[D + 18 >> 1] | 0, 64) | 0;
- l = 0;
- m = G;
- n = H;
- d = E;
- c = F;
- while (1) {
- J = e[d >> 1] | 0;
- b[m >> 1] = J + (e[c >> 1] | 0);
- K = b[k >> 1] | 0;
- b[n >> 1] = J + (K & 65535);
- b[a + (l << 1) >> 1] = K;
- l = l + 1 | 0;
- if ((l | 0) == 10) break; else {
- m = m + 2 | 0;
- n = n + 2 | 0;
- d = d + 2 | 0;
- c = c + 2 | 0;
- k = k + 2 | 0;
- }
- }
- Ae(G, 205, 10, j);
- Ae(H, 205, 10, j);
- me(G, f, 10, j);
- me(H, g, 10, j);
- i = I;
- return
- }
- function we(a, c, d, e, f, g, h, i) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- g = g | 0;
- h = h | 0;
- i = i | 0;
- var 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;
- o = b[a >> 1] | 0;
- u = a + 2 | 0;
- q = b[u >> 1] | 0;
- s = b[c >> 1] | 0;
- v = c + 2 | 0;
- t = b[v >> 1] | 0;
- if (i << 16 >> 16 > 0) {
- n = e << 16 >> 16 << 1;
- m = f << 16 >> 16 << 1;
- l = g << 16 >> 16 << 1;
- f = h << 16 >> 16 << 1;
- g = 2147483647;
- j = 0;
- e = 0;
- k = d;
- while (1) {
- h = (Z(n, o - (b[k >> 1] | 0) | 0) | 0) >> 16;
- h = Z(h, h) | 0;
- if (((h | 0) < (g | 0) ? (p = (Z(m, q - (b[k + 2 >> 1] | 0) | 0) | 0) >> 16, p = (Z(p, p) | 0) + h | 0, (p | 0) < (g | 0)) : 0) ? (r = (Z(l, s - (b[k + 4 >> 1] | 0) | 0) | 0) >> 16, r = (Z(r, r) | 0) + p | 0, (r | 0) < (g | 0)) : 0) {
- h = (Z(f, t - (b[k + 6 >> 1] | 0) | 0) | 0) >> 16;
- h = (Z(h, h) | 0) + r | 0;
- w = (h | 0) < (g | 0);
- h = w ? h : g;
- e = w ? j : e;
- } else h = g;
- j = j + 1 << 16 >> 16;
- if (j << 16 >> 16 >= i << 16 >> 16) break; else {
- g = h;
- k = k + 8 | 0;
- }
- }
- } else e = 0;
- w = e << 16 >> 16 << 2;
- i = w | 1;
- b[a >> 1] = b[d + (w << 1) >> 1] | 0;
- b[u >> 1] = b[d + (i << 1) >> 1] | 0;
- b[c >> 1] = b[d + (i + 1 << 1) >> 1] | 0;
- b[v >> 1] = b[d + ((w | 3) << 1) >> 1] | 0;
- return e | 0
- }
- function xe(a) {
- a = a | 0;
- var d = 0, e = 0, f = 0;
- if (!a) {
- f = -1;
- return f | 0
- }
- c[a >> 2] = 0;
- d = Je(20) | 0;
- if (!d) {
- f = -1;
- return f | 0
- }
- e = d;
- f = e + 20 | 0;
- do {
- b[e >> 1] = 0;
- e = e + 2 | 0;
- } while ((e | 0) < (f | 0));
- c[a >> 2] = d;
- f = 0;
- return f | 0
- }
- function ye(a) {
- a = a | 0;
- var c = 0;
- if (!a) {
- c = -1;
- return c | 0
- }
- c = a + 20 | 0;
- do {
- b[a >> 1] = 0;
- a = a + 2 | 0;
- } while ((a | 0) < (c | 0));
- c = 0;
- return c | 0
- }
- function ze(a) {
- a = a | 0;
- var b = 0;
- if (!a) return;
- b = c[a >> 2] | 0;
- if (!b) return;
- Ke(b);
- c[a >> 2] = 0;
- return
- }
- function Ae(a, c, d, e) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- e = e | 0;
- var f = 0, g = 0, h = 0;
- if (d << 16 >> 16 <= 0) return;
- f = c << 16 >> 16;
- g = c & 65535;
- h = 0;
- while (1) {
- e = b[a >> 1] | 0;
- if (e << 16 >> 16 < c << 16 >> 16) {
- b[a >> 1] = c;
- e = (c << 16 >> 16) + f | 0;
- } else e = (e & 65535) + g | 0;
- h = h + 1 << 16 >> 16;
- if (h << 16 >> 16 >= d << 16 >> 16) break; else {
- c = e & 65535;
- a = a + 2 | 0;
- }
- }
- return
- }
- function Be(a, c, d, e) {
- a = a | 0;
- c = c | 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 = e << 16 >> 16;
- e = f >>> 2 & 65535;
- if (!(e << 16 >> 16)) return;
- n = f + -1 | 0;
- t = a + 20 | 0;
- p = c + (f + -4 << 1) | 0;
- q = c + (f + -3 << 1) | 0;
- r = c + (f + -2 << 1) | 0;
- s = c + (n << 1) | 0;
- o = c + (f + -11 << 1) | 0;
- n = d + (n << 1) | 0;
- while (1) {
- c = b[t >> 1] | 0;
- h = 5;
- i = t;
- j = o;
- k = o + -2 | 0;
- l = o + -4 | 0;
- m = o + -6 | 0;
- g = 2048;
- a = 2048;
- f = 2048;
- d = 2048;
- while (1) {
- g = (Z(b[j >> 1] | 0, c) | 0) + g | 0;
- a = (Z(b[k >> 1] | 0, c) | 0) + a | 0;
- f = (Z(b[l >> 1] | 0, c) | 0) + f | 0;
- c = (Z(b[m >> 1] | 0, c) | 0) + d | 0;
- d = b[i + -2 >> 1] | 0;
- g = g + (Z(b[j + 2 >> 1] | 0, d) | 0) | 0;
- a = a + (Z(b[k + 2 >> 1] | 0, d) | 0) | 0;
- f = f + (Z(b[l + 2 >> 1] | 0, d) | 0) | 0;
- i = i + -4 | 0;
- d = c + (Z(b[m + 2 >> 1] | 0, d) | 0) | 0;
- h = h + -1 << 16 >> 16;
- c = b[i >> 1] | 0;
- if (!(h << 16 >> 16)) break; else {
- j = j + 4 | 0;
- k = k + 4 | 0;
- l = l + 4 | 0;
- m = m + 4 | 0;
- }
- }
- j = (Z(b[s >> 1] | 0, c) | 0) + g | 0;
- k = (Z(b[r >> 1] | 0, c) | 0) + a | 0;
- l = (Z(b[q >> 1] | 0, c) | 0) + f | 0;
- m = (Z(b[p >> 1] | 0, c) | 0) + d | 0;
- b[n >> 1] = j >>> 12;
- b[n + -2 >> 1] = k >>> 12;
- b[n + -4 >> 1] = l >>> 12;
- b[n + -6 >> 1] = m >>> 12;
- e = e + -1 << 16 >> 16;
- if (!(e << 16 >> 16)) break; else {
- p = p + -8 | 0;
- q = q + -8 | 0;
- r = r + -8 | 0;
- s = s + -8 | 0;
- o = o + -8 | 0;
- n = n + -8 | 0;
- }
- }
- return
- }
- function Ce(a, b) {
- a = a | 0;
- b = b | 0;
- var d = 0;
- d = a + 32768 | 0;
- if ((a | 0) > -1 & (d ^ a | 0) < 0) {
- c[b >> 2] = 1;
- d = (a >>> 31) + 2147483647 | 0;
- }
- return d >>> 16 & 65535 | 0
- }
- function De(a, b, d) {
- a = a | 0;
- b = b | 0;
- d = d | 0;
- var e = 0, f = 0;
- e = b << 16 >> 16;
- if (!(b << 16 >> 16)) return a | 0;
- if (b << 16 >> 16 > 0) {
- a = a << 16 >> 16 >> (b << 16 >> 16 > 15 ? 15 : e) & 65535;
- return a | 0
- }
- f = 0 - e | 0;
- b = a << 16 >> 16;
- f = (f & 65535) << 16 >> 16 > 15 ? 15 : f << 16 >> 16;
- e = b << f;
- if ((e << 16 >> 16 >> f | 0) == (b | 0)) {
- f = e & 65535;
- return f | 0
- }
- c[d >> 2] = 1;
- f = a << 16 >> 16 > 0 ? 32767 : -32768;
- return f | 0
- }
- function Ee(a, b, c) {
- a = a | 0;
- b = b | 0;
- c = c | 0;
- if (b << 16 >> 16 > 15) {
- b = 0;
- return b | 0
- }
- c = De(a, b, c) | 0;
- if (b << 16 >> 16 > 0) return c + ((1 << (b << 16 >> 16) + -1 & a << 16 >> 16 | 0) != 0 & 1) << 16 >> 16 | 0; else {
- b = c;
- return b | 0
- }
- return 0
- }
- function Fe(a, d, f) {
- a = a | 0;
- d = d | 0;
- f = f | 0;
- var g = 0, h = 0, i = 0;
- if ((a | 0) < 1) {
- b[d >> 1] = 0;
- f = 0;
- return f | 0
- }
- h = (pe(a) | 0) & 65534;
- i = h & 65535;
- h = h << 16 >> 16;
- if (i << 16 >> 16 > 0) {
- g = a << h;
- if ((g >> h | 0) != (a | 0)) g = a >> 31 ^ 2147483647;
- } else {
- h = 0 - h << 16;
- if ((h | 0) < 2031616) g = a >> (h >> 16); else g = 0;
- }
- b[d >> 1] = i;
- d = g >>> 25 & 63;
- d = d >>> 0 > 15 ? d + -16 | 0 : d;
- i = b[30216 + (d << 1) >> 1] | 0;
- a = i << 16;
- g = Z(i - (e[30216 + (d + 1 << 1) >> 1] | 0) << 16 >> 16, g >>> 10 & 32767) | 0;
- if ((g | 0) == 1073741824) {
- c[f >> 2] = 1;
- h = 2147483647;
- } else h = g << 1;
- g = a - h | 0;
- if (((g ^ a) & (h ^ a) | 0) >= 0) {
- f = g;
- return f | 0
- }
- c[f >> 2] = 1;
- f = (i >>> 15 & 1) + 2147483647 | 0;
- return f | 0
- }
- function Ge(a, b, d) {
- a = a | 0;
- b = b | 0;
- d = d | 0;
- a = (a << 16 >> 16) - (b << 16 >> 16) | 0;
- if ((a + 32768 | 0) >>> 0 <= 65535) {
- d = a;
- d = d & 65535;
- return d | 0
- }
- c[d >> 2] = 1;
- d = (a | 0) > 32767 ? 32767 : -32768;
- d = d & 65535;
- return d | 0
- }
- function He(a, c, d, e, f, g) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- e = e | 0;
- f = f | 0;
- g = g | 0;
- var h = 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;
- A = i;
- i = i + 48 | 0;
- o = A;
- k = o;
- h = f;
- j = k + 20 | 0;
- do {
- b[k >> 1] = b[h >> 1] | 0;
- k = k + 2 | 0;
- h = h + 2 | 0;
- } while ((k | 0) < (j | 0));
- n = o + 18 | 0;
- s = a + 2 | 0;
- t = a + 4 | 0;
- p = c + 20 | 0;
- u = a + 6 | 0;
- v = a + 8 | 0;
- w = a + 10 | 0;
- x = a + 12 | 0;
- y = a + 14 | 0;
- z = a + 16 | 0;
- q = a + 18 | 0;
- r = a + 20 | 0;
- j = b[n >> 1] | 0;
- h = 5;
- l = c;
- m = d;
- k = o + 20 | 0;
- while (1) {
- D = b[a >> 1] | 0;
- C = (Z(D, b[l >> 1] | 0) | 0) + 2048 | 0;
- D = (Z(b[l + 2 >> 1] | 0, D) | 0) + 2048 | 0;
- o = j << 16 >> 16;
- C = C - (Z(o, b[s >> 1] | 0) | 0) | 0;
- B = b[t >> 1] | 0;
- o = D - (Z(o, B) | 0) | 0;
- D = b[n + -2 >> 1] | 0;
- B = C - (Z(D, B) | 0) | 0;
- C = b[u >> 1] | 0;
- D = o - (Z(C, D) | 0) | 0;
- o = b[n + -4 >> 1] | 0;
- C = B - (Z(o, C) | 0) | 0;
- B = b[v >> 1] | 0;
- o = D - (Z(B, o) | 0) | 0;
- D = b[n + -6 >> 1] | 0;
- B = C - (Z(D, B) | 0) | 0;
- C = b[w >> 1] | 0;
- D = o - (Z(D, C) | 0) | 0;
- o = b[n + -8 >> 1] | 0;
- C = B - (Z(o, C) | 0) | 0;
- B = b[x >> 1] | 0;
- o = D - (Z(B, o) | 0) | 0;
- D = b[n + -10 >> 1] | 0;
- B = C - (Z(D, B) | 0) | 0;
- C = b[y >> 1] | 0;
- D = o - (Z(C, D) | 0) | 0;
- o = b[n + -12 >> 1] | 0;
- C = B - (Z(o, C) | 0) | 0;
- B = b[z >> 1] | 0;
- o = D - (Z(o, B) | 0) | 0;
- D = b[n + -14 >> 1] | 0;
- B = C - (Z(D, B) | 0) | 0;
- C = b[q >> 1] | 0;
- D = o - (Z(C, D) | 0) | 0;
- o = b[n + -16 >> 1] | 0;
- C = B - (Z(o, C) | 0) | 0;
- B = b[r >> 1] | 0;
- o = D - (Z(B, o) | 0) | 0;
- B = C - (Z(b[n + -18 >> 1] | 0, B) | 0) | 0;
- B = (B + 134217728 | 0) >>> 0 < 268435455 ? B >>> 12 & 65535 : (B | 0) > 134217727 ? 32767 : -32768;
- o = o - (Z(b[s >> 1] | 0, B << 16 >> 16) | 0) | 0;
- n = k + 2 | 0;
- b[k >> 1] = B;
- b[m >> 1] = B;
- j = (o + 134217728 | 0) >>> 0 < 268435455 ? o >>> 12 & 65535 : (o | 0) > 134217727 ? 32767 : -32768;
- b[n >> 1] = j;
- b[m + 2 >> 1] = j;
- h = h + -1 << 16 >> 16;
- if (!(h << 16 >> 16)) break; else {
- l = l + 4 | 0;
- m = m + 4 | 0;
- k = k + 4 | 0;
- }
- }
- e = (e << 16 >> 16) + -10 | 0;
- k = e >>> 1 & 65535;
- if (k << 16 >> 16) {
- o = d + 18 | 0;
- j = c + 16 | 0;
- n = b[o >> 1] | 0;
- l = p;
- h = d + 20 | 0;
- while (1) {
- B = b[a >> 1] | 0;
- m = (Z(B, b[l >> 1] | 0) | 0) + 2048 | 0;
- B = (Z(b[j + 6 >> 1] | 0, B) | 0) + 2048 | 0;
- j = b[s >> 1] | 0;
- C = n << 16 >> 16;
- m = m - (Z(C, j) | 0) | 0;
- D = b[t >> 1] | 0;
- C = B - (Z(C, D) | 0) | 0;
- B = b[o + -2 >> 1] | 0;
- D = m - (Z(B, D) | 0) | 0;
- m = b[u >> 1] | 0;
- B = C - (Z(m, B) | 0) | 0;
- C = b[o + -4 >> 1] | 0;
- m = D - (Z(C, m) | 0) | 0;
- D = b[v >> 1] | 0;
- C = B - (Z(D, C) | 0) | 0;
- B = b[o + -6 >> 1] | 0;
- D = m - (Z(B, D) | 0) | 0;
- m = b[w >> 1] | 0;
- B = C - (Z(B, m) | 0) | 0;
- C = b[o + -8 >> 1] | 0;
- m = D - (Z(C, m) | 0) | 0;
- D = b[x >> 1] | 0;
- C = B - (Z(D, C) | 0) | 0;
- B = b[o + -10 >> 1] | 0;
- D = m - (Z(B, D) | 0) | 0;
- m = b[y >> 1] | 0;
- B = C - (Z(m, B) | 0) | 0;
- C = b[o + -12 >> 1] | 0;
- m = D - (Z(C, m) | 0) | 0;
- D = b[z >> 1] | 0;
- C = B - (Z(C, D) | 0) | 0;
- B = b[o + -14 >> 1] | 0;
- D = m - (Z(B, D) | 0) | 0;
- m = b[q >> 1] | 0;
- B = C - (Z(m, B) | 0) | 0;
- C = b[o + -16 >> 1] | 0;
- m = D - (Z(C, m) | 0) | 0;
- D = b[r >> 1] | 0;
- C = B - (Z(D, C) | 0) | 0;
- D = m - (Z(b[o + -18 >> 1] | 0, D) | 0) | 0;
- m = l + 4 | 0;
- D = (D + 134217728 | 0) >>> 0 < 268435455 ? D >>> 12 & 65535 : (D | 0) > 134217727 ? 32767 : -32768;
- j = C - (Z(j, D << 16 >> 16) | 0) | 0;
- o = h + 2 | 0;
- b[h >> 1] = D;
- do if ((j + 134217728 | 0) >>> 0 >= 268435455) {
- h = h + 4 | 0;
- if ((j | 0) > 134217727) {
- b[o >> 1] = 32767;
- j = 32767;
- break
- } else {
- b[o >> 1] = -32768;
- j = -32768;
- break
- }
- } else {
- j = j >>> 12 & 65535;
- b[o >> 1] = j;
- h = h + 4 | 0;
- } while (0);
- k = k + -1 << 16 >> 16;
- if (!(k << 16 >> 16)) break; else {
- D = l;
- n = j;
- l = m;
- j = D;
- }
- }
- }
- if (!(g << 16 >> 16)) {
- i = A;
- return
- }
- k = f;
- h = d + (e << 1) | 0;
- j = k + 20 | 0;
- do {
- b[k >> 1] = b[h >> 1] | 0;
- k = k + 2 | 0;
- h = h + 2 | 0;
- } while ((k | 0) < (j | 0));
- i = A;
- return
- }
- function Ie(a, c, d) {
- a = a | 0;
- c = c | 0;
- d = d | 0;
- b[d >> 1] = b[a >> 1] | 0;
- b[d + 2 >> 1] = ((Z(b[c >> 1] | 0, b[a + 2 >> 1] | 0) | 0) + 16384 | 0) >>> 15;
- b[d + 4 >> 1] = ((Z(b[c + 2 >> 1] | 0, b[a + 4 >> 1] | 0) | 0) + 16384 | 0) >>> 15;
- b[d + 6 >> 1] = ((Z(b[c + 4 >> 1] | 0, b[a + 6 >> 1] | 0) | 0) + 16384 | 0) >>> 15;
- b[d + 8 >> 1] = ((Z(b[c + 6 >> 1] | 0, b[a + 8 >> 1] | 0) | 0) + 16384 | 0) >>> 15;
- b[d + 10 >> 1] = ((Z(b[c + 8 >> 1] | 0, b[a + 10 >> 1] | 0) | 0) + 16384 | 0) >>> 15;
- b[d + 12 >> 1] = ((Z(b[c + 10 >> 1] | 0, b[a + 12 >> 1] | 0) | 0) + 16384 | 0) >>> 15;
- b[d + 14 >> 1] = ((Z(b[c + 12 >> 1] | 0, b[a + 14 >> 1] | 0) | 0) + 16384 | 0) >>> 15;
- b[d + 16 >> 1] = ((Z(b[c + 14 >> 1] | 0, b[a + 16 >> 1] | 0) | 0) + 16384 | 0) >>> 15;
- b[d + 18 >> 1] = ((Z(b[c + 16 >> 1] | 0, b[a + 18 >> 1] | 0) | 0) + 16384 | 0) >>> 15;
- b[d + 20 >> 1] = ((Z(b[c + 18 >> 1] | 0, b[a + 20 >> 1] | 0) | 0) + 16384 | 0) >>> 15;
- return
- }
- function Je(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, 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;
- do if (a >>> 0 < 245) {
- s = a >>> 0 < 11 ? 16 : a + 11 & -8;
- a = s >>> 3;
- m = c[26] | 0;
- j = m >>> a;
- if (j & 3) {
- e = (j & 1 ^ 1) + a | 0;
- b = e << 1;
- d = 144 + (b << 2) | 0;
- b = 144 + (b + 2 << 2) | 0;
- f = c[b >> 2] | 0;
- g = f + 8 | 0;
- h = c[g >> 2] | 0;
- do if ((d | 0) == (h | 0)) c[26] = m & ~(1 << e); else {
- if (h >>> 0 >= (c[30] | 0) >>> 0 ? (l = h + 12 | 0, (c[l >> 2] | 0) == (f | 0)) : 0) {
- c[l >> 2] = d;
- c[b >> 2] = h;
- break
- }
- ea();
- } while (0);
- U = e << 3;
- c[f + 4 >> 2] = U | 3;
- U = f + (U | 4) | 0;
- c[U >> 2] = c[U >> 2] | 1;
- break
- }
- b = c[28] | 0;
- if (s >>> 0 > b >>> 0) {
- if (j) {
- f = 2 << a;
- f = j << a & (f | 0 - f);
- f = (f & 0 - f) + -1 | 0;
- g = f >>> 12 & 16;
- f = f >>> g;
- e = f >>> 5 & 8;
- f = f >>> e;
- d = f >>> 2 & 4;
- f = f >>> d;
- h = f >>> 1 & 2;
- f = f >>> h;
- i = f >>> 1 & 1;
- i = (e | g | d | h | i) + (f >>> i) | 0;
- f = i << 1;
- h = 144 + (f << 2) | 0;
- f = 144 + (f + 2 << 2) | 0;
- d = c[f >> 2] | 0;
- g = d + 8 | 0;
- e = c[g >> 2] | 0;
- do if ((h | 0) == (e | 0)) {
- c[26] = m & ~(1 << i);
- n = b;
- } else {
- if (e >>> 0 >= (c[30] | 0) >>> 0 ? (k = e + 12 | 0, (c[k >> 2] | 0) == (d | 0)) : 0) {
- c[k >> 2] = h;
- c[f >> 2] = e;
- n = c[28] | 0;
- break
- }
- ea();
- } while (0);
- U = i << 3;
- b = U - s | 0;
- c[d + 4 >> 2] = s | 3;
- j = d + s | 0;
- c[d + (s | 4) >> 2] = b | 1;
- c[d + U >> 2] = b;
- if (n) {
- d = c[31] | 0;
- e = n >>> 3;
- h = e << 1;
- i = 144 + (h << 2) | 0;
- f = c[26] | 0;
- e = 1 << e;
- if (f & e) {
- f = 144 + (h + 2 << 2) | 0;
- h = c[f >> 2] | 0;
- if (h >>> 0 < (c[30] | 0) >>> 0) ea(); else {
- p = f;
- q = h;
- }
- } else {
- c[26] = f | e;
- p = 144 + (h + 2 << 2) | 0;
- q = i;
- }
- c[p >> 2] = d;
- c[q + 12 >> 2] = d;
- c[d + 8 >> 2] = q;
- c[d + 12 >> 2] = i;
- }
- c[28] = b;
- c[31] = j;
- break
- }
- a = c[27] | 0;
- if (a) {
- f = (a & 0 - a) + -1 | 0;
- T = f >>> 12 & 16;
- f = f >>> T;
- S = f >>> 5 & 8;
- f = f >>> S;
- U = f >>> 2 & 4;
- f = f >>> U;
- h = f >>> 1 & 2;
- f = f >>> h;
- j = f >>> 1 & 1;
- j = c[408 + ((S | T | U | h | j) + (f >>> j) << 2) >> 2] | 0;
- f = (c[j + 4 >> 2] & -8) - s | 0;
- h = j;
- while (1) {
- i = c[h + 16 >> 2] | 0;
- if (!i) {
- i = c[h + 20 >> 2] | 0;
- if (!i) {
- b = f;
- break
- }
- }
- h = (c[i + 4 >> 2] & -8) - s | 0;
- U = h >>> 0 < f >>> 0;
- f = U ? h : f;
- h = i;
- j = U ? i : j;
- }
- a = c[30] | 0;
- if (j >>> 0 >= a >>> 0 ? (v = j + s | 0, j >>> 0 < v >>> 0) : 0) {
- e = c[j + 24 >> 2] | 0;
- i = c[j + 12 >> 2] | 0;
- do if ((i | 0) == (j | 0)) {
- h = j + 20 | 0;
- i = c[h >> 2] | 0;
- if (!i) {
- h = j + 16 | 0;
- i = c[h >> 2] | 0;
- if (!i) {
- t = 0;
- break
- }
- }
- while (1) {
- g = i + 20 | 0;
- f = c[g >> 2] | 0;
- if (f) {
- i = f;
- h = g;
- continue
- }
- g = i + 16 | 0;
- f = c[g >> 2] | 0;
- if (!f) break; else {
- i = f;
- h = g;
- }
- }
- if (h >>> 0 < a >>> 0) ea(); else {
- c[h >> 2] = 0;
- t = i;
- break
- }
- } else {
- h = c[j + 8 >> 2] | 0;
- if ((h >>> 0 >= a >>> 0 ? (d = h + 12 | 0, (c[d >> 2] | 0) == (j | 0)) : 0) ? (o = i + 8 | 0, (c[o >> 2] | 0) == (j | 0)) : 0) {
- c[d >> 2] = i;
- c[o >> 2] = h;
- t = i;
- break
- }
- ea();
- } while (0);
- do if (e) {
- h = c[j + 28 >> 2] | 0;
- g = 408 + (h << 2) | 0;
- if ((j | 0) == (c[g >> 2] | 0)) {
- c[g >> 2] = t;
- if (!t) {
- c[27] = c[27] & ~(1 << h);
- break
- }
- } else {
- if (e >>> 0 < (c[30] | 0) >>> 0) ea();
- h = e + 16 | 0;
- if ((c[h >> 2] | 0) == (j | 0)) c[h >> 2] = t; else c[e + 20 >> 2] = t;
- if (!t) break
- }
- g = c[30] | 0;
- if (t >>> 0 < g >>> 0) ea();
- c[t + 24 >> 2] = e;
- h = c[j + 16 >> 2] | 0;
- do if (h) if (h >>> 0 < g >>> 0) ea(); else {
- c[t + 16 >> 2] = h;
- c[h + 24 >> 2] = t;
- break
- } while (0);
- h = c[j + 20 >> 2] | 0;
- if (h) if (h >>> 0 < (c[30] | 0) >>> 0) ea(); else {
- c[t + 20 >> 2] = h;
- c[h + 24 >> 2] = t;
- break
- }
- } while (0);
- if (b >>> 0 < 16) {
- U = b + s | 0;
- c[j + 4 >> 2] = U | 3;
- U = j + (U + 4) | 0;
- c[U >> 2] = c[U >> 2] | 1;
- } else {
- c[j + 4 >> 2] = s | 3;
- c[j + (s | 4) >> 2] = b | 1;
- c[j + (b + s) >> 2] = b;
- e = c[28] | 0;
- if (e) {
- d = c[31] | 0;
- f = e >>> 3;
- h = f << 1;
- i = 144 + (h << 2) | 0;
- g = c[26] | 0;
- f = 1 << f;
- if (g & f) {
- h = 144 + (h + 2 << 2) | 0;
- g = c[h >> 2] | 0;
- if (g >>> 0 < (c[30] | 0) >>> 0) ea(); else {
- u = h;
- w = g;
- }
- } else {
- c[26] = g | f;
- u = 144 + (h + 2 << 2) | 0;
- w = i;
- }
- c[u >> 2] = d;
- c[w + 12 >> 2] = d;
- c[d + 8 >> 2] = w;
- c[d + 12 >> 2] = i;
- }
- c[28] = b;
- c[31] = v;
- }
- g = j + 8 | 0;
- break
- }
- ea();
- } else V = 154;
- } else V = 154;
- } else if (a >>> 0 <= 4294967231) {
- a = a + 11 | 0;
- w = a & -8;
- m = c[27] | 0;
- if (m) {
- j = 0 - w | 0;
- a = a >>> 8;
- if (a) if (w >>> 0 > 16777215) l = 31; else {
- v = (a + 1048320 | 0) >>> 16 & 8;
- V = a << v;
- u = (V + 520192 | 0) >>> 16 & 4;
- V = V << u;
- l = (V + 245760 | 0) >>> 16 & 2;
- l = 14 - (u | v | l) + (V << l >>> 15) | 0;
- l = w >>> (l + 7 | 0) & 1 | l << 1;
- } else l = 0;
- a = c[408 + (l << 2) >> 2] | 0;
- a:do if (!a) {
- i = 0;
- a = 0;
- V = 86;
- } else {
- d = j;
- i = 0;
- b = w << ((l | 0) == 31 ? 0 : 25 - (l >>> 1) | 0);
- k = a;
- a = 0;
- while (1) {
- e = c[k + 4 >> 2] & -8;
- j = e - w | 0;
- if (j >>> 0 < d >>> 0) if ((e | 0) == (w | 0)) {
- e = k;
- a = k;
- V = 90;
- break a
- } else a = k; else j = d;
- V = c[k + 20 >> 2] | 0;
- k = c[k + 16 + (b >>> 31 << 2) >> 2] | 0;
- i = (V | 0) == 0 | (V | 0) == (k | 0) ? i : V;
- if (!k) {
- V = 86;
- break
- } else {
- d = j;
- b = b << 1;
- }
- }
- } while (0);
- if ((V | 0) == 86) {
- if ((i | 0) == 0 & (a | 0) == 0) {
- a = 2 << l;
- a = m & (a | 0 - a);
- if (!a) {
- s = w;
- V = 154;
- break
- }
- a = (a & 0 - a) + -1 | 0;
- t = a >>> 12 & 16;
- a = a >>> t;
- q = a >>> 5 & 8;
- a = a >>> q;
- u = a >>> 2 & 4;
- a = a >>> u;
- v = a >>> 1 & 2;
- a = a >>> v;
- i = a >>> 1 & 1;
- i = c[408 + ((q | t | u | v | i) + (a >>> i) << 2) >> 2] | 0;
- a = 0;
- }
- if (!i) {
- q = j;
- p = a;
- } else {
- e = i;
- V = 90;
- }
- }
- if ((V | 0) == 90) while (1) {
- V = 0;
- v = (c[e + 4 >> 2] & -8) - w | 0;
- i = v >>> 0 < j >>> 0;
- j = i ? v : j;
- a = i ? e : a;
- i = c[e + 16 >> 2] | 0;
- if (i) {
- e = i;
- V = 90;
- continue
- }
- e = c[e + 20 >> 2] | 0;
- if (!e) {
- q = j;
- p = a;
- break
- } else V = 90;
- }
- if ((p | 0) != 0 ? q >>> 0 < ((c[28] | 0) - w | 0) >>> 0 : 0) {
- a = c[30] | 0;
- if (p >>> 0 >= a >>> 0 ? (H = p + w | 0, p >>> 0 < H >>> 0) : 0) {
- j = c[p + 24 >> 2] | 0;
- i = c[p + 12 >> 2] | 0;
- do if ((i | 0) == (p | 0)) {
- h = p + 20 | 0;
- i = c[h >> 2] | 0;
- if (!i) {
- h = p + 16 | 0;
- i = c[h >> 2] | 0;
- if (!i) {
- y = 0;
- break
- }
- }
- while (1) {
- g = i + 20 | 0;
- f = c[g >> 2] | 0;
- if (f) {
- i = f;
- h = g;
- continue
- }
- g = i + 16 | 0;
- f = c[g >> 2] | 0;
- if (!f) break; else {
- i = f;
- h = g;
- }
- }
- if (h >>> 0 < a >>> 0) ea(); else {
- c[h >> 2] = 0;
- y = i;
- break
- }
- } else {
- h = c[p + 8 >> 2] | 0;
- if ((h >>> 0 >= a >>> 0 ? (r = h + 12 | 0, (c[r >> 2] | 0) == (p | 0)) : 0) ? (s = i + 8 | 0, (c[s >> 2] | 0) == (p | 0)) : 0) {
- c[r >> 2] = i;
- c[s >> 2] = h;
- y = i;
- break
- }
- ea();
- } while (0);
- do if (j) {
- i = c[p + 28 >> 2] | 0;
- h = 408 + (i << 2) | 0;
- if ((p | 0) == (c[h >> 2] | 0)) {
- c[h >> 2] = y;
- if (!y) {
- c[27] = c[27] & ~(1 << i);
- break
- }
- } else {
- if (j >>> 0 < (c[30] | 0) >>> 0) ea();
- h = j + 16 | 0;
- if ((c[h >> 2] | 0) == (p | 0)) c[h >> 2] = y; else c[j + 20 >> 2] = y;
- if (!y) break
- }
- i = c[30] | 0;
- if (y >>> 0 < i >>> 0) ea();
- c[y + 24 >> 2] = j;
- h = c[p + 16 >> 2] | 0;
- do if (h) if (h >>> 0 < i >>> 0) ea(); else {
- c[y + 16 >> 2] = h;
- c[h + 24 >> 2] = y;
- break
- } while (0);
- h = c[p + 20 >> 2] | 0;
- if (h) if (h >>> 0 < (c[30] | 0) >>> 0) ea(); else {
- c[y + 20 >> 2] = h;
- c[h + 24 >> 2] = y;
- break
- }
- } while (0);
- b:do if (q >>> 0 >= 16) {
- c[p + 4 >> 2] = w | 3;
- c[p + (w | 4) >> 2] = q | 1;
- c[p + (q + w) >> 2] = q;
- i = q >>> 3;
- if (q >>> 0 < 256) {
- g = i << 1;
- e = 144 + (g << 2) | 0;
- f = c[26] | 0;
- h = 1 << i;
- if (f & h) {
- h = 144 + (g + 2 << 2) | 0;
- g = c[h >> 2] | 0;
- if (g >>> 0 < (c[30] | 0) >>> 0) ea(); else {
- z = h;
- A = g;
- }
- } else {
- c[26] = f | h;
- z = 144 + (g + 2 << 2) | 0;
- A = e;
- }
- c[z >> 2] = H;
- c[A + 12 >> 2] = H;
- c[p + (w + 8) >> 2] = A;
- c[p + (w + 12) >> 2] = e;
- break
- }
- d = q >>> 8;
- if (d) if (q >>> 0 > 16777215) i = 31; else {
- T = (d + 1048320 | 0) >>> 16 & 8;
- U = d << T;
- S = (U + 520192 | 0) >>> 16 & 4;
- U = U << S;
- i = (U + 245760 | 0) >>> 16 & 2;
- i = 14 - (S | T | i) + (U << i >>> 15) | 0;
- i = q >>> (i + 7 | 0) & 1 | i << 1;
- } else i = 0;
- h = 408 + (i << 2) | 0;
- c[p + (w + 28) >> 2] = i;
- c[p + (w + 20) >> 2] = 0;
- c[p + (w + 16) >> 2] = 0;
- g = c[27] | 0;
- f = 1 << i;
- if (!(g & f)) {
- c[27] = g | f;
- c[h >> 2] = H;
- c[p + (w + 24) >> 2] = h;
- c[p + (w + 12) >> 2] = H;
- c[p + (w + 8) >> 2] = H;
- break
- }
- d = c[h >> 2] | 0;
- c:do if ((c[d + 4 >> 2] & -8 | 0) != (q | 0)) {
- i = q << ((i | 0) == 31 ? 0 : 25 - (i >>> 1) | 0);
- while (1) {
- b = d + 16 + (i >>> 31 << 2) | 0;
- h = c[b >> 2] | 0;
- if (!h) break;
- if ((c[h + 4 >> 2] & -8 | 0) == (q | 0)) {
- C = h;
- break c
- } else {
- i = i << 1;
- d = h;
- }
- }
- if (b >>> 0 < (c[30] | 0) >>> 0) ea(); else {
- c[b >> 2] = H;
- c[p + (w + 24) >> 2] = d;
- c[p + (w + 12) >> 2] = H;
- c[p + (w + 8) >> 2] = H;
- break b
- }
- } else C = d; while (0);
- d = C + 8 | 0;
- b = c[d >> 2] | 0;
- U = c[30] | 0;
- if (b >>> 0 >= U >>> 0 & C >>> 0 >= U >>> 0) {
- c[b + 12 >> 2] = H;
- c[d >> 2] = H;
- c[p + (w + 8) >> 2] = b;
- c[p + (w + 12) >> 2] = C;
- c[p + (w + 24) >> 2] = 0;
- break
- } else ea();
- } else {
- U = q + w | 0;
- c[p + 4 >> 2] = U | 3;
- U = p + (U + 4) | 0;
- c[U >> 2] = c[U >> 2] | 1;
- } while (0);
- g = p + 8 | 0;
- break
- }
- ea();
- } else {
- s = w;
- V = 154;
- }
- } else {
- s = w;
- V = 154;
- }
- } else {
- s = -1;
- V = 154;
- } while (0);
- d:do if ((V | 0) == 154) {
- a = c[28] | 0;
- if (a >>> 0 >= s >>> 0) {
- b = a - s | 0;
- d = c[31] | 0;
- if (b >>> 0 > 15) {
- c[31] = d + s;
- c[28] = b;
- c[d + (s + 4) >> 2] = b | 1;
- c[d + a >> 2] = b;
- c[d + 4 >> 2] = s | 3;
- } else {
- c[28] = 0;
- c[31] = 0;
- c[d + 4 >> 2] = a | 3;
- V = d + (a + 4) | 0;
- c[V >> 2] = c[V >> 2] | 1;
- }
- g = d + 8 | 0;
- break
- }
- a = c[29] | 0;
- if (a >>> 0 > s >>> 0) {
- V = a - s | 0;
- c[29] = V;
- g = c[32] | 0;
- c[32] = g + s;
- c[g + (s + 4) >> 2] = V | 1;
- c[g + 4 >> 2] = s | 3;
- g = g + 8 | 0;
- break
- }
- if (!(c[144] | 0)) Me();
- m = s + 48 | 0;
- d = c[146] | 0;
- l = s + 47 | 0;
- e = d + l | 0;
- d = 0 - d | 0;
- k = e & d;
- if (k >>> 0 > s >>> 0) {
- a = c[136] | 0;
- if ((a | 0) != 0 ? (C = c[134] | 0, H = C + k | 0, H >>> 0 <= C >>> 0 | H >>> 0 > a >>> 0) : 0) {
- g = 0;
- break
- }
- e:do if (!(c[137] & 4)) {
- a = c[32] | 0;
- f:do if (a) {
- i = 552;
- while (1) {
- j = c[i >> 2] | 0;
- if (j >>> 0 <= a >>> 0 ? (x = i + 4 | 0, (j + (c[x >> 2] | 0) | 0) >>> 0 > a >>> 0) : 0) {
- g = i;
- a = x;
- break
- }
- i = c[i + 8 >> 2] | 0;
- if (!i) {
- V = 172;
- break f
- }
- }
- j = e - (c[29] | 0) & d;
- if (j >>> 0 < 2147483647) {
- i = ga(j | 0) | 0;
- H = (i | 0) == ((c[g >> 2] | 0) + (c[a >> 2] | 0) | 0);
- a = H ? j : 0;
- if (H) {
- if ((i | 0) != (-1 | 0)) {
- A = i;
- t = a;
- V = 192;
- break e
- }
- } else V = 182;
- } else a = 0;
- } else V = 172; while (0);
- do if ((V | 0) == 172) {
- g = ga(0) | 0;
- if ((g | 0) != (-1 | 0)) {
- a = g;
- j = c[145] | 0;
- i = j + -1 | 0;
- if (!(i & a)) j = k; else j = k - a + (i + a & 0 - j) | 0;
- a = c[134] | 0;
- i = a + j | 0;
- if (j >>> 0 > s >>> 0 & j >>> 0 < 2147483647) {
- H = c[136] | 0;
- if ((H | 0) != 0 ? i >>> 0 <= a >>> 0 | i >>> 0 > H >>> 0 : 0) {
- a = 0;
- break
- }
- i = ga(j | 0) | 0;
- V = (i | 0) == (g | 0);
- a = V ? j : 0;
- if (V) {
- A = g;
- t = a;
- V = 192;
- break e
- } else V = 182;
- } else a = 0;
- } else a = 0;
- } while (0);
- g:do if ((V | 0) == 182) {
- g = 0 - j | 0;
- do if (m >>> 0 > j >>> 0 & (j >>> 0 < 2147483647 & (i | 0) != (-1 | 0)) ? (B = c[146] | 0, B = l - j + B & 0 - B, B >>> 0 < 2147483647) : 0) if ((ga(B | 0) | 0) == (-1 | 0)) {
- ga(g | 0) | 0;
- break g
- } else {
- j = B + j | 0;
- break
- } while (0);
- if ((i | 0) != (-1 | 0)) {
- A = i;
- t = j;
- V = 192;
- break e
- }
- } while (0);
- c[137] = c[137] | 4;
- V = 189;
- } else {
- a = 0;
- V = 189;
- } while (0);
- if ((((V | 0) == 189 ? k >>> 0 < 2147483647 : 0) ? (D = ga(k | 0) | 0, E = ga(0) | 0, D >>> 0 < E >>> 0 & ((D | 0) != (-1 | 0) & (E | 0) != (-1 | 0))) : 0) ? (F = E - D | 0, G = F >>> 0 > (s + 40 | 0) >>> 0, G) : 0) {
- A = D;
- t = G ? F : a;
- V = 192;
- }
- if ((V | 0) == 192) {
- j = (c[134] | 0) + t | 0;
- c[134] = j;
- if (j >>> 0 > (c[135] | 0) >>> 0) c[135] = j;
- q = c[32] | 0;
- h:do if (q) {
- g = 552;
- do {
- a = c[g >> 2] | 0;
- j = g + 4 | 0;
- i = c[j >> 2] | 0;
- if ((A | 0) == (a + i | 0)) {
- I = a;
- J = j;
- K = i;
- L = g;
- V = 202;
- break
- }
- g = c[g + 8 >> 2] | 0;
- } while ((g | 0) != 0);
- if (((V | 0) == 202 ? (c[L + 12 >> 2] & 8 | 0) == 0 : 0) ? q >>> 0 < A >>> 0 & q >>> 0 >= I >>> 0 : 0) {
- c[J >> 2] = K + t;
- V = (c[29] | 0) + t | 0;
- U = q + 8 | 0;
- U = (U & 7 | 0) == 0 ? 0 : 0 - U & 7;
- T = V - U | 0;
- c[32] = q + U;
- c[29] = T;
- c[q + (U + 4) >> 2] = T | 1;
- c[q + (V + 4) >> 2] = 40;
- c[33] = c[148];
- break
- }
- j = c[30] | 0;
- if (A >>> 0 < j >>> 0) {
- c[30] = A;
- j = A;
- }
- i = A + t | 0;
- a = 552;
- while (1) {
- if ((c[a >> 2] | 0) == (i | 0)) {
- g = a;
- i = a;
- V = 210;
- break
- }
- a = c[a + 8 >> 2] | 0;
- if (!a) {
- i = 552;
- break
- }
- }
- if ((V | 0) == 210) if (!(c[i + 12 >> 2] & 8)) {
- c[g >> 2] = A;
- o = i + 4 | 0;
- c[o >> 2] = (c[o >> 2] | 0) + t;
- o = A + 8 | 0;
- o = (o & 7 | 0) == 0 ? 0 : 0 - o & 7;
- l = A + (t + 8) | 0;
- l = (l & 7 | 0) == 0 ? 0 : 0 - l & 7;
- i = A + (l + t) | 0;
- p = o + s | 0;
- n = A + p | 0;
- a = i - (A + o) - s | 0;
- c[A + (o + 4) >> 2] = s | 3;
- i:do if ((i | 0) != (q | 0)) {
- if ((i | 0) == (c[31] | 0)) {
- V = (c[28] | 0) + a | 0;
- c[28] = V;
- c[31] = n;
- c[A + (p + 4) >> 2] = V | 1;
- c[A + (V + p) >> 2] = V;
- break
- }
- b = t + 4 | 0;
- h = c[A + (b + l) >> 2] | 0;
- if ((h & 3 | 0) == 1) {
- k = h & -8;
- e = h >>> 3;
- j:do if (h >>> 0 >= 256) {
- d = c[A + ((l | 24) + t) >> 2] | 0;
- g = c[A + (t + 12 + l) >> 2] | 0;
- k:do if ((g | 0) == (i | 0)) {
- f = l | 16;
- g = A + (b + f) | 0;
- h = c[g >> 2] | 0;
- if (!h) {
- g = A + (f + t) | 0;
- h = c[g >> 2] | 0;
- if (!h) {
- R = 0;
- break
- }
- }
- while (1) {
- f = h + 20 | 0;
- e = c[f >> 2] | 0;
- if (e) {
- h = e;
- g = f;
- continue
- }
- f = h + 16 | 0;
- e = c[f >> 2] | 0;
- if (!e) break; else {
- h = e;
- g = f;
- }
- }
- if (g >>> 0 < j >>> 0) ea(); else {
- c[g >> 2] = 0;
- R = h;
- break
- }
- } else {
- f = c[A + ((l | 8) + t) >> 2] | 0;
- do if (f >>> 0 >= j >>> 0) {
- j = f + 12 | 0;
- if ((c[j >> 2] | 0) != (i | 0)) break;
- h = g + 8 | 0;
- if ((c[h >> 2] | 0) != (i | 0)) break;
- c[j >> 2] = g;
- c[h >> 2] = f;
- R = g;
- break k
- } while (0);
- ea();
- } while (0);
- if (!d) break;
- j = c[A + (t + 28 + l) >> 2] | 0;
- h = 408 + (j << 2) | 0;
- do if ((i | 0) != (c[h >> 2] | 0)) {
- if (d >>> 0 < (c[30] | 0) >>> 0) ea();
- h = d + 16 | 0;
- if ((c[h >> 2] | 0) == (i | 0)) c[h >> 2] = R; else c[d + 20 >> 2] = R;
- if (!R) break j
- } else {
- c[h >> 2] = R;
- if (R) break;
- c[27] = c[27] & ~(1 << j);
- break j
- } while (0);
- j = c[30] | 0;
- if (R >>> 0 < j >>> 0) ea();
- c[R + 24 >> 2] = d;
- i = l | 16;
- h = c[A + (i + t) >> 2] | 0;
- do if (h) if (h >>> 0 < j >>> 0) ea(); else {
- c[R + 16 >> 2] = h;
- c[h + 24 >> 2] = R;
- break
- } while (0);
- i = c[A + (b + i) >> 2] | 0;
- if (!i) break;
- if (i >>> 0 < (c[30] | 0) >>> 0) ea(); else {
- c[R + 20 >> 2] = i;
- c[i + 24 >> 2] = R;
- break
- }
- } else {
- h = c[A + ((l | 8) + t) >> 2] | 0;
- g = c[A + (t + 12 + l) >> 2] | 0;
- f = 144 + (e << 1 << 2) | 0;
- do if ((h | 0) != (f | 0)) {
- if (h >>> 0 >= j >>> 0 ? (c[h + 12 >> 2] | 0) == (i | 0) : 0) break;
- ea();
- } while (0);
- if ((g | 0) == (h | 0)) {
- c[26] = c[26] & ~(1 << e);
- break
- }
- do if ((g | 0) == (f | 0)) M = g + 8 | 0; else {
- if (g >>> 0 >= j >>> 0 ? (N = g + 8 | 0, (c[N >> 2] | 0) == (i | 0)) : 0) {
- M = N;
- break
- }
- ea();
- } while (0);
- c[h + 12 >> 2] = g;
- c[M >> 2] = h;
- } while (0);
- i = A + ((k | l) + t) | 0;
- a = k + a | 0;
- }
- i = i + 4 | 0;
- c[i >> 2] = c[i >> 2] & -2;
- c[A + (p + 4) >> 2] = a | 1;
- c[A + (a + p) >> 2] = a;
- i = a >>> 3;
- if (a >>> 0 < 256) {
- g = i << 1;
- e = 144 + (g << 2) | 0;
- f = c[26] | 0;
- h = 1 << i;
- do if (!(f & h)) {
- c[26] = f | h;
- S = 144 + (g + 2 << 2) | 0;
- T = e;
- } else {
- h = 144 + (g + 2 << 2) | 0;
- g = c[h >> 2] | 0;
- if (g >>> 0 >= (c[30] | 0) >>> 0) {
- S = h;
- T = g;
- break
- }
- ea();
- } while (0);
- c[S >> 2] = n;
- c[T + 12 >> 2] = n;
- c[A + (p + 8) >> 2] = T;
- c[A + (p + 12) >> 2] = e;
- break
- }
- d = a >>> 8;
- do if (!d) i = 0; else {
- if (a >>> 0 > 16777215) {
- i = 31;
- break
- }
- T = (d + 1048320 | 0) >>> 16 & 8;
- V = d << T;
- S = (V + 520192 | 0) >>> 16 & 4;
- V = V << S;
- i = (V + 245760 | 0) >>> 16 & 2;
- i = 14 - (S | T | i) + (V << i >>> 15) | 0;
- i = a >>> (i + 7 | 0) & 1 | i << 1;
- } while (0);
- h = 408 + (i << 2) | 0;
- c[A + (p + 28) >> 2] = i;
- c[A + (p + 20) >> 2] = 0;
- c[A + (p + 16) >> 2] = 0;
- g = c[27] | 0;
- f = 1 << i;
- if (!(g & f)) {
- c[27] = g | f;
- c[h >> 2] = n;
- c[A + (p + 24) >> 2] = h;
- c[A + (p + 12) >> 2] = n;
- c[A + (p + 8) >> 2] = n;
- break
- }
- d = c[h >> 2] | 0;
- l:do if ((c[d + 4 >> 2] & -8 | 0) != (a | 0)) {
- i = a << ((i | 0) == 31 ? 0 : 25 - (i >>> 1) | 0);
- while (1) {
- b = d + 16 + (i >>> 31 << 2) | 0;
- h = c[b >> 2] | 0;
- if (!h) break;
- if ((c[h + 4 >> 2] & -8 | 0) == (a | 0)) {
- U = h;
- break l
- } else {
- i = i << 1;
- d = h;
- }
- }
- if (b >>> 0 < (c[30] | 0) >>> 0) ea(); else {
- c[b >> 2] = n;
- c[A + (p + 24) >> 2] = d;
- c[A + (p + 12) >> 2] = n;
- c[A + (p + 8) >> 2] = n;
- break i
- }
- } else U = d; while (0);
- d = U + 8 | 0;
- b = c[d >> 2] | 0;
- V = c[30] | 0;
- if (b >>> 0 >= V >>> 0 & U >>> 0 >= V >>> 0) {
- c[b + 12 >> 2] = n;
- c[d >> 2] = n;
- c[A + (p + 8) >> 2] = b;
- c[A + (p + 12) >> 2] = U;
- c[A + (p + 24) >> 2] = 0;
- break
- } else ea();
- } else {
- V = (c[29] | 0) + a | 0;
- c[29] = V;
- c[32] = n;
- c[A + (p + 4) >> 2] = V | 1;
- } while (0);
- g = A + (o | 8) | 0;
- break d
- } else i = 552;
- while (1) {
- g = c[i >> 2] | 0;
- if (g >>> 0 <= q >>> 0 ? (h = c[i + 4 >> 2] | 0, f = g + h | 0, f >>> 0 > q >>> 0) : 0) break;
- i = c[i + 8 >> 2] | 0;
- }
- i = g + (h + -39) | 0;
- i = g + (h + -47 + ((i & 7 | 0) == 0 ? 0 : 0 - i & 7)) | 0;
- j = q + 16 | 0;
- i = i >>> 0 < j >>> 0 ? q : i;
- h = i + 8 | 0;
- g = A + 8 | 0;
- g = (g & 7 | 0) == 0 ? 0 : 0 - g & 7;
- V = t + -40 - g | 0;
- c[32] = A + g;
- c[29] = V;
- c[A + (g + 4) >> 2] = V | 1;
- c[A + (t + -36) >> 2] = 40;
- c[33] = c[148];
- g = i + 4 | 0;
- c[g >> 2] = 27;
- c[h >> 2] = c[138];
- c[h + 4 >> 2] = c[139];
- c[h + 8 >> 2] = c[140];
- c[h + 12 >> 2] = c[141];
- c[138] = A;
- c[139] = t;
- c[141] = 0;
- c[140] = h;
- h = i + 28 | 0;
- c[h >> 2] = 7;
- if ((i + 32 | 0) >>> 0 < f >>> 0) do {
- V = h;
- h = h + 4 | 0;
- c[h >> 2] = 7;
- } while ((V + 8 | 0) >>> 0 < f >>> 0);
- if ((i | 0) != (q | 0)) {
- a = i - q | 0;
- c[g >> 2] = c[g >> 2] & -2;
- c[q + 4 >> 2] = a | 1;
- c[i >> 2] = a;
- f = a >>> 3;
- if (a >>> 0 < 256) {
- h = f << 1;
- i = 144 + (h << 2) | 0;
- g = c[26] | 0;
- e = 1 << f;
- if (g & e) {
- d = 144 + (h + 2 << 2) | 0;
- b = c[d >> 2] | 0;
- if (b >>> 0 < (c[30] | 0) >>> 0) ea(); else {
- O = d;
- P = b;
- }
- } else {
- c[26] = g | e;
- O = 144 + (h + 2 << 2) | 0;
- P = i;
- }
- c[O >> 2] = q;
- c[P + 12 >> 2] = q;
- c[q + 8 >> 2] = P;
- c[q + 12 >> 2] = i;
- break
- }
- d = a >>> 8;
- if (d) if (a >>> 0 > 16777215) h = 31; else {
- U = (d + 1048320 | 0) >>> 16 & 8;
- V = d << U;
- T = (V + 520192 | 0) >>> 16 & 4;
- V = V << T;
- h = (V + 245760 | 0) >>> 16 & 2;
- h = 14 - (T | U | h) + (V << h >>> 15) | 0;
- h = a >>> (h + 7 | 0) & 1 | h << 1;
- } else h = 0;
- e = 408 + (h << 2) | 0;
- c[q + 28 >> 2] = h;
- c[q + 20 >> 2] = 0;
- c[j >> 2] = 0;
- d = c[27] | 0;
- b = 1 << h;
- if (!(d & b)) {
- c[27] = d | b;
- c[e >> 2] = q;
- c[q + 24 >> 2] = e;
- c[q + 12 >> 2] = q;
- c[q + 8 >> 2] = q;
- break
- }
- d = c[e >> 2] | 0;
- m:do if ((c[d + 4 >> 2] & -8 | 0) != (a | 0)) {
- h = a << ((h | 0) == 31 ? 0 : 25 - (h >>> 1) | 0);
- while (1) {
- b = d + 16 + (h >>> 31 << 2) | 0;
- e = c[b >> 2] | 0;
- if (!e) break;
- if ((c[e + 4 >> 2] & -8 | 0) == (a | 0)) {
- Q = e;
- break m
- } else {
- h = h << 1;
- d = e;
- }
- }
- if (b >>> 0 < (c[30] | 0) >>> 0) ea(); else {
- c[b >> 2] = q;
- c[q + 24 >> 2] = d;
- c[q + 12 >> 2] = q;
- c[q + 8 >> 2] = q;
- break h
- }
- } else Q = d; while (0);
- d = Q + 8 | 0;
- b = c[d >> 2] | 0;
- V = c[30] | 0;
- if (b >>> 0 >= V >>> 0 & Q >>> 0 >= V >>> 0) {
- c[b + 12 >> 2] = q;
- c[d >> 2] = q;
- c[q + 8 >> 2] = b;
- c[q + 12 >> 2] = Q;
- c[q + 24 >> 2] = 0;
- break
- } else ea();
- }
- } else {
- V = c[30] | 0;
- if ((V | 0) == 0 | A >>> 0 < V >>> 0) c[30] = A;
- c[138] = A;
- c[139] = t;
- c[141] = 0;
- c[35] = c[144];
- c[34] = -1;
- d = 0;
- do {
- V = d << 1;
- U = 144 + (V << 2) | 0;
- c[144 + (V + 3 << 2) >> 2] = U;
- c[144 + (V + 2 << 2) >> 2] = U;
- d = d + 1 | 0;
- } while ((d | 0) != 32);
- V = A + 8 | 0;
- V = (V & 7 | 0) == 0 ? 0 : 0 - V & 7;
- U = t + -40 - V | 0;
- c[32] = A + V;
- c[29] = U;
- c[A + (V + 4) >> 2] = U | 1;
- c[A + (t + -36) >> 2] = 40;
- c[33] = c[148];
- } while (0);
- b = c[29] | 0;
- if (b >>> 0 > s >>> 0) {
- V = b - s | 0;
- c[29] = V;
- g = c[32] | 0;
- c[32] = g + s;
- c[g + (s + 4) >> 2] = V | 1;
- c[g + 4 >> 2] = s | 3;
- g = g + 8 | 0;
- break
- }
- }
- c[(Le() | 0) >> 2] = 12;
- g = 0;
- } else g = 0;
- } while (0);
- return g | 0
- }
- function Ke(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;
- a:do if (a) {
- f = a + -8 | 0;
- k = c[30] | 0;
- b:do if (f >>> 0 >= k >>> 0 ? (e = c[a + -4 >> 2] | 0, d = e & 3, (d | 0) != 1) : 0) {
- v = e & -8;
- w = a + (v + -8) | 0;
- do if (!(e & 1)) {
- f = c[f >> 2] | 0;
- if (!d) break a;
- l = -8 - f | 0;
- n = a + l | 0;
- o = f + v | 0;
- if (n >>> 0 < k >>> 0) break b;
- if ((n | 0) == (c[31] | 0)) {
- g = a + (v + -4) | 0;
- f = c[g >> 2] | 0;
- if ((f & 3 | 0) != 3) {
- B = n;
- g = o;
- break
- }
- c[28] = o;
- c[g >> 2] = f & -2;
- c[a + (l + 4) >> 2] = o | 1;
- c[w >> 2] = o;
- break a
- }
- d = f >>> 3;
- if (f >>> 0 < 256) {
- e = c[a + (l + 8) >> 2] | 0;
- g = c[a + (l + 12) >> 2] | 0;
- f = 144 + (d << 1 << 2) | 0;
- do if ((e | 0) != (f | 0)) {
- if (e >>> 0 >= k >>> 0 ? (c[e + 12 >> 2] | 0) == (n | 0) : 0) break;
- ea();
- } while (0);
- if ((g | 0) == (e | 0)) {
- c[26] = c[26] & ~(1 << d);
- B = n;
- g = o;
- break
- }
- do if ((g | 0) == (f | 0)) b = g + 8 | 0; else {
- if (g >>> 0 >= k >>> 0 ? (h = g + 8 | 0, (c[h >> 2] | 0) == (n | 0)) : 0) {
- b = h;
- break
- }
- ea();
- } while (0);
- c[e + 12 >> 2] = g;
- c[b >> 2] = e;
- B = n;
- g = o;
- break
- }
- h = c[a + (l + 24) >> 2] | 0;
- f = c[a + (l + 12) >> 2] | 0;
- do if ((f | 0) == (n | 0)) {
- e = a + (l + 20) | 0;
- f = c[e >> 2] | 0;
- if (!f) {
- e = a + (l + 16) | 0;
- f = c[e >> 2] | 0;
- if (!f) {
- m = 0;
- break
- }
- }
- while (1) {
- d = f + 20 | 0;
- b = c[d >> 2] | 0;
- if (b) {
- f = b;
- e = d;
- continue
- }
- d = f + 16 | 0;
- b = c[d >> 2] | 0;
- if (!b) break; else {
- f = b;
- e = d;
- }
- }
- if (e >>> 0 < k >>> 0) ea(); else {
- c[e >> 2] = 0;
- m = f;
- break
- }
- } else {
- e = c[a + (l + 8) >> 2] | 0;
- if ((e >>> 0 >= k >>> 0 ? (i = e + 12 | 0, (c[i >> 2] | 0) == (n | 0)) : 0) ? (j = f + 8 | 0, (c[j >> 2] | 0) == (n | 0)) : 0) {
- c[i >> 2] = f;
- c[j >> 2] = e;
- m = f;
- break
- }
- ea();
- } while (0);
- if (h) {
- f = c[a + (l + 28) >> 2] | 0;
- e = 408 + (f << 2) | 0;
- if ((n | 0) == (c[e >> 2] | 0)) {
- c[e >> 2] = m;
- if (!m) {
- c[27] = c[27] & ~(1 << f);
- B = n;
- g = o;
- break
- }
- } else {
- if (h >>> 0 < (c[30] | 0) >>> 0) ea();
- f = h + 16 | 0;
- if ((c[f >> 2] | 0) == (n | 0)) c[f >> 2] = m; else c[h + 20 >> 2] = m;
- if (!m) {
- B = n;
- g = o;
- break
- }
- }
- e = c[30] | 0;
- if (m >>> 0 < e >>> 0) ea();
- c[m + 24 >> 2] = h;
- f = c[a + (l + 16) >> 2] | 0;
- do if (f) if (f >>> 0 < e >>> 0) ea(); else {
- c[m + 16 >> 2] = f;
- c[f + 24 >> 2] = m;
- break
- } while (0);
- f = c[a + (l + 20) >> 2] | 0;
- if (f) if (f >>> 0 < (c[30] | 0) >>> 0) ea(); else {
- c[m + 20 >> 2] = f;
- c[f + 24 >> 2] = m;
- B = n;
- g = o;
- break
- } else {
- B = n;
- g = o;
- }
- } else {
- B = n;
- g = o;
- }
- } else {
- B = f;
- g = v;
- } while (0);
- if (B >>> 0 < w >>> 0 ? (p = a + (v + -4) | 0, q = c[p >> 2] | 0, (q & 1 | 0) != 0) : 0) {
- if (!(q & 2)) {
- if ((w | 0) == (c[32] | 0)) {
- A = (c[29] | 0) + g | 0;
- c[29] = A;
- c[32] = B;
- c[B + 4 >> 2] = A | 1;
- if ((B | 0) != (c[31] | 0)) break a;
- c[31] = 0;
- c[28] = 0;
- break a
- }
- if ((w | 0) == (c[31] | 0)) {
- A = (c[28] | 0) + g | 0;
- c[28] = A;
- c[31] = B;
- c[B + 4 >> 2] = A | 1;
- c[B + A >> 2] = A;
- break a
- }
- j = (q & -8) + g | 0;
- d = q >>> 3;
- do if (q >>> 0 >= 256) {
- b = c[a + (v + 16) >> 2] | 0;
- g = c[a + (v | 4) >> 2] | 0;
- do if ((g | 0) == (w | 0)) {
- f = a + (v + 12) | 0;
- g = c[f >> 2] | 0;
- if (!g) {
- f = a + (v + 8) | 0;
- g = c[f >> 2] | 0;
- if (!g) {
- x = 0;
- break
- }
- }
- while (1) {
- e = g + 20 | 0;
- d = c[e >> 2] | 0;
- if (d) {
- g = d;
- f = e;
- continue
- }
- e = g + 16 | 0;
- d = c[e >> 2] | 0;
- if (!d) break; else {
- g = d;
- f = e;
- }
- }
- if (f >>> 0 < (c[30] | 0) >>> 0) ea(); else {
- c[f >> 2] = 0;
- x = g;
- break
- }
- } else {
- f = c[a + v >> 2] | 0;
- if ((f >>> 0 >= (c[30] | 0) >>> 0 ? (t = f + 12 | 0, (c[t >> 2] | 0) == (w | 0)) : 0) ? (u = g + 8 | 0, (c[u >> 2] | 0) == (w | 0)) : 0) {
- c[t >> 2] = g;
- c[u >> 2] = f;
- x = g;
- break
- }
- ea();
- } while (0);
- if (b) {
- g = c[a + (v + 20) >> 2] | 0;
- f = 408 + (g << 2) | 0;
- if ((w | 0) == (c[f >> 2] | 0)) {
- c[f >> 2] = x;
- if (!x) {
- c[27] = c[27] & ~(1 << g);
- break
- }
- } else {
- if (b >>> 0 < (c[30] | 0) >>> 0) ea();
- g = b + 16 | 0;
- if ((c[g >> 2] | 0) == (w | 0)) c[g >> 2] = x; else c[b + 20 >> 2] = x;
- if (!x) break
- }
- g = c[30] | 0;
- if (x >>> 0 < g >>> 0) ea();
- c[x + 24 >> 2] = b;
- f = c[a + (v + 8) >> 2] | 0;
- do if (f) if (f >>> 0 < g >>> 0) ea(); else {
- c[x + 16 >> 2] = f;
- c[f + 24 >> 2] = x;
- break
- } while (0);
- d = c[a + (v + 12) >> 2] | 0;
- if (d) if (d >>> 0 < (c[30] | 0) >>> 0) ea(); else {
- c[x + 20 >> 2] = d;
- c[d + 24 >> 2] = x;
- break
- }
- }
- } else {
- e = c[a + v >> 2] | 0;
- g = c[a + (v | 4) >> 2] | 0;
- f = 144 + (d << 1 << 2) | 0;
- do if ((e | 0) != (f | 0)) {
- if (e >>> 0 >= (c[30] | 0) >>> 0 ? (c[e + 12 >> 2] | 0) == (w | 0) : 0) break;
- ea();
- } while (0);
- if ((g | 0) == (e | 0)) {
- c[26] = c[26] & ~(1 << d);
- break
- }
- do if ((g | 0) == (f | 0)) r = g + 8 | 0; else {
- if (g >>> 0 >= (c[30] | 0) >>> 0 ? (s = g + 8 | 0, (c[s >> 2] | 0) == (w | 0)) : 0) {
- r = s;
- break
- }
- ea();
- } while (0);
- c[e + 12 >> 2] = g;
- c[r >> 2] = e;
- } while (0);
- c[B + 4 >> 2] = j | 1;
- c[B + j >> 2] = j;
- if ((B | 0) == (c[31] | 0)) {
- c[28] = j;
- break a
- } else g = j;
- } else {
- c[p >> 2] = q & -2;
- c[B + 4 >> 2] = g | 1;
- c[B + g >> 2] = g;
- }
- f = g >>> 3;
- if (g >>> 0 < 256) {
- e = f << 1;
- g = 144 + (e << 2) | 0;
- b = c[26] | 0;
- d = 1 << f;
- if (b & d) {
- d = 144 + (e + 2 << 2) | 0;
- b = c[d >> 2] | 0;
- if (b >>> 0 < (c[30] | 0) >>> 0) ea(); else {
- y = d;
- z = b;
- }
- } else {
- c[26] = b | d;
- y = 144 + (e + 2 << 2) | 0;
- z = g;
- }
- c[y >> 2] = B;
- c[z + 12 >> 2] = B;
- c[B + 8 >> 2] = z;
- c[B + 12 >> 2] = g;
- break a
- }
- b = g >>> 8;
- if (b) if (g >>> 0 > 16777215) f = 31; else {
- y = (b + 1048320 | 0) >>> 16 & 8;
- z = b << y;
- a = (z + 520192 | 0) >>> 16 & 4;
- z = z << a;
- f = (z + 245760 | 0) >>> 16 & 2;
- f = 14 - (a | y | f) + (z << f >>> 15) | 0;
- f = g >>> (f + 7 | 0) & 1 | f << 1;
- } else f = 0;
- d = 408 + (f << 2) | 0;
- c[B + 28 >> 2] = f;
- c[B + 20 >> 2] = 0;
- c[B + 16 >> 2] = 0;
- b = c[27] | 0;
- e = 1 << f;
- c:do if (b & e) {
- d = c[d >> 2] | 0;
- d:do if ((c[d + 4 >> 2] & -8 | 0) != (g | 0)) {
- f = g << ((f | 0) == 31 ? 0 : 25 - (f >>> 1) | 0);
- while (1) {
- b = d + 16 + (f >>> 31 << 2) | 0;
- e = c[b >> 2] | 0;
- if (!e) break;
- if ((c[e + 4 >> 2] & -8 | 0) == (g | 0)) {
- A = e;
- break d
- } else {
- f = f << 1;
- d = e;
- }
- }
- if (b >>> 0 < (c[30] | 0) >>> 0) ea(); else {
- c[b >> 2] = B;
- c[B + 24 >> 2] = d;
- c[B + 12 >> 2] = B;
- c[B + 8 >> 2] = B;
- break c
- }
- } else A = d; while (0);
- b = A + 8 | 0;
- d = c[b >> 2] | 0;
- z = c[30] | 0;
- if (d >>> 0 >= z >>> 0 & A >>> 0 >= z >>> 0) {
- c[d + 12 >> 2] = B;
- c[b >> 2] = B;
- c[B + 8 >> 2] = d;
- c[B + 12 >> 2] = A;
- c[B + 24 >> 2] = 0;
- break
- } else ea();
- } else {
- c[27] = b | e;
- c[d >> 2] = B;
- c[B + 24 >> 2] = d;
- c[B + 12 >> 2] = B;
- c[B + 8 >> 2] = B;
- } while (0);
- B = (c[34] | 0) + -1 | 0;
- c[34] = B;
- if (!B) b = 560; else break a;
- while (1) {
- b = c[b >> 2] | 0;
- if (!b) break; else b = b + 8 | 0;
- }
- c[34] = -1;
- break a
- }
- } while (0);
- ea();
- } while (0);
- return
- }
- function Le() {
- var a = 0;
- a = 600;
- return a | 0
- }
- function Me() {
- var a = 0;
- do if (!(c[144] | 0)) {
- a = ca(30) | 0;
- if (!(a + -1 & a)) {
- c[146] = a;
- c[145] = a;
- c[147] = -1;
- c[148] = -1;
- c[149] = 0;
- c[137] = 0;
- c[144] = (ha(0) | 0) & -16 ^ 1431655768;
- break
- } else ea();
- } while (0);
- return
- }
- function Ne() {
- }
- function Oe(b, d, e) {
- b = b | 0;
- d = d | 0;
- e = e | 0;
- var f = 0;
- if ((e | 0) >= 4096) return ja(b | 0, d | 0, e | 0) | 0;
- f = b | 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;
- }
- while ((e | 0) >= 4) {
- c[b >> 2] = c[d >> 2];
- b = b + 4 | 0;
- d = d + 4 | 0;
- e = e - 4 | 0;
- }
- }
- while ((e | 0) > 0) {
- a[b >> 0] = a[d >> 0] | 0;
- b = b + 1 | 0;
- d = d + 1 | 0;
- e = e - 1 | 0;
- }
- return f | 0
- }
- function Pe(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 Oe(b, c, d) | 0;
- return b | 0
- }
- function Qe(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;
- if ((e | 0) >= 20) {
- d = d & 255;
- h = b & 3;
- i = d | d << 8 | d << 16 | d << 24;
- g = f & ~3;
- if (h) {
- h = b + 4 - h | 0;
- while ((b | 0) < (h | 0)) {
- a[b >> 0] = d;
- b = b + 1 | 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 b - e | 0
- }
- // EMSCRIPTEN_END_FUNCS
- return {
- _free: Ke,
- ___errno_location: Le,
- _memmove: Pe,
- _Decoder_Interface_Decode: xa,
- _Decoder_Interface_exit: wa,
- _Encoder_Interface_init: ya,
- _memset: Qe,
- _malloc: Je,
- _memcpy: Oe,
- _Encoder_Interface_exit: za,
- _Decoder_Interface_init: va,
- _Encoder_Interface_Encode: Aa,
- runPostSets: Ne,
- stackAlloc: ma,
- stackSave: na,
- stackRestore: oa,
- establishStackSpace: pa,
- setThrew: qa,
- setTempRet0: ta,
- getTempRet0: ua
- }
- })
- // EMSCRIPTEN_END_ASM
- (Module.asmGlobalArg, Module.asmLibraryArg, buffer);
- var _Encoder_Interface_Encode = Module["_Encoder_Interface_Encode"] = asm["_Encoder_Interface_Encode"];
- var _free = Module["_free"] = asm["_free"];
- var runPostSets = Module["runPostSets"] = asm["runPostSets"];
- var _memmove = Module["_memmove"] = asm["_memmove"];
- var _Decoder_Interface_exit = Module["_Decoder_Interface_exit"] = asm["_Decoder_Interface_exit"];
- var _Encoder_Interface_init = Module["_Encoder_Interface_init"] = asm["_Encoder_Interface_init"];
- var _memset = Module["_memset"] = asm["_memset"];
- var _malloc = Module["_malloc"] = asm["_malloc"];
- var _memcpy = Module["_memcpy"] = asm["_memcpy"];
- var _Decoder_Interface_Decode = Module["_Decoder_Interface_Decode"] = asm["_Decoder_Interface_Decode"];
- var _Decoder_Interface_init = Module["_Decoder_Interface_init"] = asm["_Decoder_Interface_init"];
- var _Encoder_Interface_exit = Module["_Encoder_Interface_exit"] = asm["_Encoder_Interface_exit"];
- var ___errno_location = Module["___errno_location"] = asm["___errno_location"];
- Runtime.stackAlloc = asm["stackAlloc"];
- Runtime.stackSave = asm["stackSave"];
- Runtime.stackRestore = asm["stackRestore"];
- Runtime.establishStackSpace = asm["establishStackSpace"];
- Runtime.setTempRet0 = asm["setTempRet0"];
- Runtime.getTempRet0 = asm["getTempRet0"];
- 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;
- };
- Module["callMain"] = Module.callMain = function callMain(args) {
- assert(runDependencies == 0, "cannot call main when async dependencies remain! (listen on __ATMAIN__)");
- assert(__ATPRERUN__.length == 0, "cannot call main when preRun functions remain to be called");
- args = args || [];
- ensureInitRuntime();
- var argc = args.length + 1;
- function pad() {
- for (var i = 0; i < 4 - 1; i++) {
- argv.push(0);
- }
- }
- var argv = [allocate(intArrayFromString(Module["thisProgram"]), "i8", ALLOC_NORMAL)];
- pad();
- for (var i = 0; i < argc - 1; i = i + 1) {
- argv.push(allocate(intArrayFromString(args[i]), "i8", ALLOC_NORMAL));
- pad();
- }
- argv.push(0);
- argv = allocate(argv, "i32", ALLOC_NORMAL);
- initialStackTop = Runtime.stackSave();
- try {
- var ret = Module["_main"](argc, argv, 0);
- exit(ret, true);
- } catch (e) {
- if (e instanceof ExitStatus) {
- return
- } else if (e == "SimulateInfiniteLoop") {
- Module["noExitRuntime"] = true;
- Runtime.stackRestore(initialStackTop);
- return
- } else {
- if (e && typeof e === "object" && e.stack) Module.printErr("exception thrown: " + [e, e.stack]);
- throw e
- }
- } finally {
- }
- };
- 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"]();
- if (Module["_main"] && shouldRunNow) Module["callMain"](args);
- postRun();
- }
- if (Module["setStatus"]) {
- Module["setStatus"]("Running...");
- setTimeout((function () {
- setTimeout((function () {
- Module["setStatus"]("");
- }), 1);
- doRun();
- }), 1);
- } else {
- doRun();
- }
- }
- Module["run"] = Module.run = run;
- function exit(status, implicit) {
- if (implicit && Module["noExitRuntime"]) {
- return
- }
- if (Module["noExitRuntime"]) ; else {
- ABORT = true;
- STACKTOP = initialStackTop;
- exitRuntime();
- if (Module["onExit"]) Module["onExit"](status);
- }
- if (ENVIRONMENT_IS_SHELL && typeof quit === "function") {
- quit(status);
- }
- throw new ExitStatus(status)
- }
- Module["exit"] = Module.exit = exit;
- var abortDecorators = [];
- function abort(what) {
- if (what !== undefined) {
- Module.print(what);
- Module.printErr(what);
- what = JSON.stringify(what);
- } else {
- what = "";
- }
- ABORT = true;
- var extra = "\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";
- var output = "abort(" + what + ") at " + stackTrace() + extra;
- if (abortDecorators) {
- abortDecorators.forEach((function (decorator) {
- output = decorator(output, what);
- }));
- }
- throw output
- }
- Module["abort"] = Module.abort = abort;
- if (Module["preInit"]) {
- if (typeof Module["preInit"] == "function") Module["preInit"] = [Module["preInit"]];
- while (Module["preInit"].length > 0) {
- Module["preInit"].pop()();
- }
- }
- var shouldRunNow = true;
- if (Module["noInitialRun"]) {
- shouldRunNow = false;
- }
- Module["noExitRuntime"] = true;
- run();
- return AMR;
- })();
- self.onmessage = function (e) {
- switch(e.data.command){
- case 'encode':
- encode(e.data.samples, e.data.sampleRate);
- break;
- case 'decode':
- decode(e.data.buffer);
- break;
- }
- };
- function encode(samples, sampleRate) {
- sampleRate = sampleRate || 8000;
- self.postMessage({
- command: 'encode',
- amr: AMR.encode(samples, sampleRate, 7)
- });
- }
- function decode(u8Array) {
- self.postMessage({
- command: 'decode',
- amr: AMR.decode(u8Array)
- });
- }
- };
- /**
- * @file AMR 录音、转换、播放器
- * @author BenzLeung(https://github.com/BenzLeung)
- * @date 2017/11/12
- * Created by JetBrains PhpStorm.
- *
- * 每位工程师都有保持代码优雅的义务
- * each engineer has a duty to keep the code elegant
- */
- const amrWorkerStr = amrnb.toString().replace(/^\s*function.*?\(\)\s*{/, '').replace(/}\s*$/, '');
- const amrWorkerURLObj = (window.URL || window.webkitURL).createObjectURL(new Blob([amrWorkerStr], {
- type: "text/javascript"
- }));
- class BenzAMRRecorder {
- constructor() {
- this._isInit = false;
- this._isInitRecorder = false;
- this._recorderControl = new RecorderControl();
- this._samples = new Float32Array(0);
- this._rawData = new Uint8Array(0);
- this._blob = null;
- this._onEnded = null;
- this._onAutoEnded = null;
- this._onPlay = null;
- this._onStop = null;
- this._onStartRecord = null;
- this._onCancelRecord = null;
- this._onFinishRecord = null;
- this._isPlaying = false;
- this._playEmpty = () => {
- this._recorderControl.playPcm(new Float32Array(10), 24000);
- };
- this._onEndCallback = () => {
- if (this._isPlaying) {
- this._isPlaying = false;
- if (this._onStop) {
- this._onStop();
- }
- if (this._onAutoEnded) {
- this._onAutoEnded();
- }
- }
- if (this._onEnded) {
- this._onEnded();
- }
- };
- this._runAMRWorker = (msg, resolve) => {
- const amrWorker = new Worker(amrWorkerURLObj);
- amrWorker.postMessage(msg);
- amrWorker.onmessage = e => {
- resolve(e.data.amr);
- amrWorker.terminate();
- };
- };
- }
- /**
- * 是否已经初始化
- * @return {boolean}
- */
- isInit() {
- return this._isInit;
- }
- /**
- * 使用浮点数据初始化
- * @param {Float32Array} array
- * @return {Promise}
- */
- initWithArrayBuffer(array) {
- if (this._isInit || this._isInitRecorder) {
- throw new Error('AMR has been initialized. For a new AMR, please generate a new BenzAMRRecorder().');
- }
- this._playEmpty();
- return new Promise((resolve, reject) => {
- let u8Array = new Uint8Array(array);
- this.decodeAMRAsync(u8Array).then(samples => {
- this._samples = samples;
- this._isInit = true;
- if (!this._samples) {
- RecorderControl.decodeAudioArrayBufferByContext(array).then(data => {
- this._isInit = true;
- return this.encodeAMRAsync(data, RecorderControl.getCtxSampleRate());
- }).then(rawData => {
- this._rawData = rawData;
- this._blob = BenzAMRRecorder.rawAMRData2Blob(rawData);
- return this.decodeAMRAsync(rawData);
- }).then(sample => {
- this._samples = sample;
- resolve();
- }).catch(() => {
- reject(new Error('Failed to decode.'));
- });
- } else {
- this._rawData = u8Array;
- resolve();
- }
- });
- });
- }
- /**
- * 使用 Blob 对象初始化( <input type="file">)
- * @param {Blob} blob
- * @return {Promise}
- */
- initWithBlob(blob) {
- if (this._isInit || this._isInitRecorder) {
- throw new Error('AMR has been initialized. For a new AMR, please generate a new BenzAMRRecorder().');
- }
- this._playEmpty();
- this._blob = blob;
- const p = new Promise(resolve => {
- let reader = new FileReader();
- reader.onload = function (e) {
- resolve(e.target.result);
- };
- reader.readAsArrayBuffer(blob);
- });
- return p.then(data => {
- return this.initWithArrayBuffer(data);
- });
- }
- /**
- * 使用 url 初始化
- * @param {string} url
- * @return {Promise}
- */
- initWithUrl(url) {
- if (this._isInit || this._isInitRecorder) {
- throw new Error('AMR has been initialized. For a new AMR, please generate a new BenzAMRRecorder().');
- }
- this._playEmpty();
- const p = new Promise((resolve, reject) => {
- let xhr = new XMLHttpRequest();
- xhr.open('GET', url, true);
- xhr.responseType = 'arraybuffer';
- xhr.onload = function () {
- resolve(this.response);
- };
- xhr.onerror = function () {
- reject(new Error('Failed to fetch ' + url));
- };
- xhr.send();
- });
- return p.then(array => {
- return this.initWithArrayBuffer(array);
- });
- }
- /**
- * 初始化录音
- * @return {Promise}
- */
- initWithRecord() {
- if (this._isInit || this._isInitRecorder) {
- throw new Error('AMR has been initialized. For a new AMR, please generate a new BenzAMRRecorder().');
- }
- this._playEmpty();
- return new Promise((resolve, reject) => {
- this._recorderControl.initRecorder().then(() => {
- this._isInitRecorder = true;
- resolve();
- }).catch(e => {
- reject(e);
- });
- });
- }
- /**
- * init 之前先播放一个空音频。
- * 因为有些环境(如iOS)播放首个音频时禁止自动、异步播放,
- * 播放空音频防止加载后立即播放的功能失效。
- * 但即使如此,init* 仍然须放入一个用户事件中
- * @private
- */
- on(action, fn) {
- if (typeof fn === 'function') {
- switch (action) {
- case 'play':
- this._onPlay = fn;
- break;
- case 'stop':
- this._onStop = fn;
- break;
- case 'ended':
- this._onEnded = fn;
- break;
- case 'autoEnded':
- this._onAutoEnded = fn;
- break;
- case 'startRecord':
- this._onStartRecord = fn;
- break;
- case 'cancelRecord':
- this._onCancelRecord = fn;
- break;
- case 'finishRecord':
- this._onFinishRecord = fn;
- break;
- default:
- }
- }
- }
- /**
- * 播放事件
- * @param {Function} fn
- */
- onPlay(fn) {
- this.on('play', fn);
- }
- /**
- * 停止事件(包括播放结束)
- * @param {Function} fn
- */
- onStop(fn) {
- this.on('stop', fn);
- }
- /**
- * 播放结束事件
- * @param {Function} fn
- */
- onEnded(fn) {
- this.on('ended', fn);
- }
- /**
- * 播放完毕自动结束事件
- * @param {Function} fn
- */
- onAutoEnded(fn) {
- this.on('autoEnded', fn);
- }
- /**
- * 开始录音事件
- * @param {Function} fn
- */
- onStartRecord(fn) {
- this.on('startRecord', fn);
- }
- /**
- * 结束录音事件
- * @param {Function} fn
- */
- onFinishRecord(fn) {
- this.on('finishRecord', fn);
- }
- /**
- * 放弃录音事件
- * @param {Function} fn
- */
- onCancelRecord(fn) {
- this.on('cancelRecord', fn);
- }
- /**
- * 播放
- */
- play() {
- if (!this._isInit) {
- throw new Error('Please init AMR first.');
- }
- if (this._onPlay) {
- this._onPlay();
- }
- this._isPlaying = true;
- this._recorderControl.playPcm(this._samples, this._isInitRecorder ? RecorderControl.getCtxSampleRate() : 8000, this._onEndCallback.bind(this));
- }
- /**
- * 停止
- */
- stop() {
- this._recorderControl.stopPcm();
- this._isPlaying = false;
- if (this._onStop) {
- this._onStop();
- }
- }
- /**
- * 是否正在播放
- * @return {boolean}
- */
- isPlaying() {
- return this._isPlaying;
- }
- /**
- * 开始录音
- */
- startRecord() {
- this._recorderControl.startRecord();
- if (this._onStartRecord) {
- this._onStartRecord();
- }
- }
- /**
- * 结束录音,并把录制的音频转换成 AMR
- * @return {Promise}
- */
- finishRecord() {
- return new Promise(resolve => {
- this._recorderControl.stopRecord();
- this._recorderControl.generateRecordSamples().then(samples => {
- this._samples = samples;
- return this.encodeAMRAsync(samples, RecorderControl.getCtxSampleRate());
- }).then(rawData => {
- this._rawData = rawData;
- this._blob = BenzAMRRecorder.rawAMRData2Blob(this._rawData);
- this._isInit = true;
- if (this._onFinishRecord) {
- this._onFinishRecord();
- }
- this._recorderControl.releaseRecord();
- resolve();
- });
- });
- }
- /**
- * 放弃录音
- */
- cancelRecord() {
- this._recorderControl.stopRecord();
- this._recorderControl.releaseRecord();
- if (this._onCancelRecord) {
- this._onCancelRecord();
- }
- }
- /**
- * 是否正在录音
- * @return {boolean}
- */
- isRecording() {
- return this._recorderControl.isRecording();
- }
- /**
- * 获取音频的时间长度(单位:秒)
- * @return {Number}
- */
- getDuration() {
- let rate = this._isInitRecorder ? RecorderControl.getCtxSampleRate() : 8000;
- return this._samples.length / rate;
- }
- getBlob() {
- return this._blob;
- }
- /*
- static encodeAMR(samples, sampleRate) {
- sampleRate = sampleRate || 8000;
- return AMR.encode(samples, sampleRate, 7);
- }
- */
- encodeAMRAsync(samples, sampleRate) {
- return new Promise(resolve => {
- this._runAMRWorker({
- command: 'encode',
- samples: samples,
- sampleRate: sampleRate
- }, resolve);
- });
- }
- decodeAMRAsync(u8Array) {
- return new Promise(resolve => {
- this._runAMRWorker({
- command: 'decode',
- buffer: u8Array
- }, resolve);
- });
- }
- static rawAMRData2Blob(data) {
- return new Blob([data.buffer], {
- type: 'audio/amr'
- });
- }
- }
- return BenzAMRRecorder;
- }));
- //# sourceMappingURL=BenzAMRRecorder.js.map
|